diff --git a/accounts/doctype/fiscal_year/fiscal_year.js b/accounts/doctype/fiscal_year/fiscal_year.js index 5cd672bab6..6bf712937a 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.js +++ b/accounts/doctype/fiscal_year/fiscal_year.js @@ -21,16 +21,8 @@ $.extend(cur_frm.cscript, { year_start_date: function(doc, dt, dn) { var me = this; - wn.call({ - method: 'controllers.trends.get_period_date_ranges', - args: { - period: "Yearly", - year_start_date: this.frm.doc.year_start_date - }, - callback: function(r) { - if (!r.exc) - me.frm.set_value("year_end_date", r.message[0][1]) - } - }); + year_end_date = + wn.datetime.add_days(wn.datetime.add_months(this.frm.doc.year_start_date, 12), -1); + this.frm.set_value("year_end_date", year_end_date); }, }); \ No newline at end of file diff --git a/accounts/doctype/fiscal_year/fiscal_year.py b/accounts/doctype/fiscal_year/fiscal_year.py index 891c0a57c3..6eb5afb973 100644 --- a/accounts/doctype/fiscal_year/fiscal_year.py +++ b/accounts/doctype/fiscal_year/fiscal_year.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals import webnotes from webnotes import msgprint, _ +from webnotes.utils import getdate class DocType: def __init__(self, d, dl): @@ -19,9 +20,15 @@ class DocType: msgprint(self.doc.name + _(""" is now the default Fiscal Year. \ Please refresh your browser for the change to take effect.""")) - def on_update(self): - from webnotes.utils import getdate + def validate(self): + year_start_end_dates = webnotes.conn.sql("""select year_start_date, year_end_date + from `tabFiscal Year` where name=%s""", (self.doc.name)) + if getdate(self.doc.year_start_date) != year_start_end_dates[0][0] or getdate(self.doc.year_end_date) != year_start_end_dates[0][1]: + webnotes.throw(_("Cannot change Year Start Date and Year End Date \ + once the Fiscal Year is saved.")) + + def on_update(self): # validate year start date and year end date if getdate(self.doc.year_start_date) > getdate(self.doc.year_end_date): webnotes.throw(_("Year Start Date should not be greater than Year End Date")) diff --git a/patches/1311/p06_fix_report_columns.py b/patches/1311/p06_fix_report_columns.py new file mode 100644 index 0000000000..3516b38406 --- /dev/null +++ b/patches/1311/p06_fix_report_columns.py @@ -0,0 +1,35 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import webnotes +from webnotes.utils import cstr +import json + +def execute(): + doctypes_child_tables_map = {} + + # Get all saved report columns + columns = webnotes.conn.sql("""select defvalue, defkey from `tabDefaultValue` where + defkey like '_list_settings:%'""") + + # Make map of doctype and child tables + for value, key in columns: + doctype = key.split(':')[-1] + child_tables = webnotes.conn.sql_list("""select options from `tabDocField` + where parent=%s and fieldtype='Table'""", doctype) + doctypes_child_tables_map.setdefault(doctype, child_tables + [doctype]) + + # If defvalue contains child doctypes then only append the column + for value, key in columns: + new_columns = [] + column_doctype = key.split(':')[-1] + for child_doctype in doctypes_child_tables_map.get(column_doctype): + for field, field_doctype in json.loads(value): + if field_doctype == child_doctype: + new_columns.append([field, field_doctype]) + + if new_columns: + defkey = "_list_settings:" + column_doctype + webnotes.conn.sql("""update `tabDefaultValue` set defvalue=%s + where defkey=%s""" % ('%s', '%s'), (json.dumps(new_columns), defkey)) \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index d09cec1f40..7175b632a5 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -253,4 +253,5 @@ patch_list = [ "patches.1311.p04_update_year_end_date_of_fiscal_year", "patches.1311.p04_update_comments", "patches.1311.p05_website_brand_html", + "patches.1311.p06_fix_report_columns", ] \ No newline at end of file