From 5495bc54a5106264d3aea8eee0b812897bb05a72 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 19 May 2015 12:00:34 +0530 Subject: [PATCH] [enhancement] default terms in company, fixes #3231 --- erpnext/accounts/utils.py | 5 ---- erpnext/public/js/controllers/transaction.js | 8 +++++- erpnext/public/js/utils.js | 16 +---------- erpnext/setup/doctype/company/company.json | 30 +++++++++++++------- erpnext/setup/doctype/company/company.py | 6 ++-- erpnext/startup/boot.py | 5 ++-- 6 files changed, 34 insertions(+), 36 deletions(-) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index e0f0e3bd2a..1853fc9316 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -421,8 +421,3 @@ def get_outstanding_invoices(amount_query, account, party_type, party): }) return all_outstanding_vouchers - -@frappe.whitelist() -def get_letter_head(company): - return frappe.db.get_value("Company",company,"default_letter_head") - diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index a96f5e97d9..c8b2b64684 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -194,6 +194,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ var fn = function() { if(me.frm.doc.company && me.frm.fields_dict.currency) { var company_currency = me.get_company_currency(); + var company_doc = frappe.get_doc(":Company", me.frm.doc.company); if (!me.frm.doc.currency) { me.frm.set_value("currency", company_currency); } @@ -204,6 +205,12 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ if (me.frm.doc.price_list_currency == company_currency) { me.frm.set_value('plc_conversion_rate', 1.0); } + if (company_doc.default_letter_head) { + me.frm.set_value("letter_head", company_doc.default_letter_head); + } + if (company_doc.default_terms) { + me.frm.set_value("tc_name", company_doc.default_terms); + } me.frm.script_manager.trigger("currency"); me.apply_pricing_rule(); @@ -213,7 +220,6 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ if (this.frm.doc.posting_date) var date = this.frm.doc.posting_date; else var date = this.frm.doc.transaction_date; erpnext.get_fiscal_year(this.frm.doc.company, date, fn); - erpnext.get_letter_head(this.frm.doc.company); if(this.frm.doc.company) { erpnext.last_selected_company = this.frm.doc.company; diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index 355fe7d148..5476d147ab 100644 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -105,21 +105,7 @@ $.extend(erpnext, { d.show(); }); - }, - - get_letter_head: function(company) { - frappe.call({ - type:"GET", - method: "erpnext.accounts.utils.get_letter_head", - args: { - "company": company - }, - callback: function(r) { - if (!r.exe) cur_frm.set_value("letter_head", r.message); - } - }); - }, - + } }); diff --git a/erpnext/setup/doctype/company/company.json b/erpnext/setup/doctype/company/company.json index 0e7b17a148..db71d0f2a2 100644 --- a/erpnext/setup/doctype/company/company.json +++ b/erpnext/setup/doctype/company/company.json @@ -52,14 +52,6 @@ "permlevel": 0, "read_only": 0 }, - { - "fieldname": "default_letter_head", - "fieldtype": "Link", - "label": "Default Letter Head", - "options": "Letter Head", - "permlevel": 0, - "precision": "" - }, { "fieldname": "domain", "fieldtype": "Select", @@ -72,9 +64,17 @@ "fieldname": "charts_section", "fieldtype": "Section Break", "hidden": 0, - "label": "Country Settings", + "label": "Default Values", "permlevel": 0 }, + { + "fieldname": "default_letter_head", + "fieldtype": "Link", + "label": "Default Letter Head", + "options": "Letter Head", + "permlevel": 0, + "precision": "" + }, { "fieldname": "default_holiday_list", "fieldtype": "Link", @@ -117,10 +117,18 @@ "options": "", "permlevel": 0 }, + { + "fieldname": "default_terms", + "fieldtype": "Link", + "label": "Default Terms", + "options": "Terms and Conditions", + "permlevel": 0, + "precision": "" + }, { "fieldname": "default_settings", "fieldtype": "Section Break", - "label": "Default Settings", + "label": "Accounts Settings", "oldfieldtype": "Section Break", "permlevel": 0, "read_only": 0 @@ -406,7 +414,7 @@ ], "icon": "icon-building", "idx": 1, - "modified": "2015-05-04 11:22:42.116328", + "modified": "2015-05-19 02:00:41.055138", "modified_by": "Administrator", "module": "Setup", "name": "Company", diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index ad89114bd4..d35892813c 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -63,6 +63,8 @@ class Company(Document): if self.default_currency: frappe.db.set_value("Currency", self.default_currency, "enabled", 1) + frappe.clear_cache() + def install_country_fixtures(self): if os.path.exists(os.path.join(os.path.dirname(__file__), "fixtures", self.country.lower())): frappe.get_attr("erpnext.setup.doctype.company.fixtures.{0}.install".format(self.country.lower()))(self) @@ -167,7 +169,7 @@ class Company(Document): where defkey='Company' and defvalue=%s""", (newdn, olddn)) frappe.defaults.clear_cache() - + def on_trash(self): """ Trash accounts and cost centers for this company if no gl entry exists @@ -178,7 +180,7 @@ class Company(Document): frappe.db.sql("delete from `tabAccount` where company = %s", self.name) # delete cost center child table - budget detail - frappe.db.sql("""delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc + frappe.db.sql("""delete bd.* from `tabBudget Detail` bd, `tabCost Center` cc where bd.parent = cc.name and cc.company = %s""", self.name) #delete cost center frappe.db.sql("delete from `tabCost Center` WHERE company = %s", self.name) diff --git a/erpnext/startup/boot.py b/erpnext/startup/boot.py index 48efa2777c..474af2cfd4 100644 --- a/erpnext/startup/boot.py +++ b/erpnext/startup/boot.py @@ -29,8 +29,9 @@ def boot_session(bootinfo): bootinfo.setup_complete = frappe.db.sql("""select name from tabCompany limit 1""") and 'Yes' or 'No' - bootinfo.docs += frappe.db.sql("""select name, default_currency, cost_center - from `tabCompany`""", as_dict=1, update={"doctype":":Company"}) + bootinfo.docs += frappe.db.sql("""select name, default_currency, cost_center, + default_terms, default_letter_head from `tabCompany`""", + as_dict=1, update={"doctype":":Company"}) def load_country_and_currency(bootinfo): country = frappe.db.get_default("country")