From c17dff4b013bc4af67e77815cfc86a1b2e92411c Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 1 Jun 2015 15:14:38 +0530 Subject: [PATCH 1/3] default account's custom query in company --- erpnext/setup/doctype/company/company.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js index 2c9d4f57cc..47f699d618 100644 --- a/erpnext/setup/doctype/company/company.js +++ b/erpnext/setup/doctype/company/company.js @@ -124,9 +124,9 @@ erpnext.company.setup_queries = function(frm) { ["default_cash_account", {"account_type": "Cash"}], ["default_receivable_account", {"account_type": "Receivable"}], ["default_payable_account", {"account_type": "Payable"}], - ["default_expense_account", {"report_type": "Profit and Loss"}], - ["default_income_account", {"report_type": "Profit and Loss"}], - ["round_off_account", {"account_type": "Profit and Loss"}], + ["default_expense_account", {"root_type": "Expense"}], + ["default_income_account", {"root_type": "Income"}], + ["round_off_account", {"root_type": "Expense"}], ["cost_center", {}], ["round_off_cost_center", {}] ], function(i, v) { @@ -135,8 +135,8 @@ erpnext.company.setup_queries = function(frm) { if (sys_defaults.auto_accounting_for_stock) { $.each([ - ["stock_adjustment_account", {"report_type": "Profit and Loss"}], - ["expenses_included_in_valuation", {"report_type": "Profit and Loss"}], + ["stock_adjustment_account", {"root_type": "Expense"}], + ["expenses_included_in_valuation", {"root_type": "Expense"}], ["stock_received_but_not_billed", {"report_type": "Balance Sheet"}] ], function(i, v) { erpnext.company.set_custom_query(frm, v); From a19150ddaf80e9db49f6d4f61ae46974c1b80cb1 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 1 Jun 2015 15:32:43 +0530 Subject: [PATCH 2/3] default account's custom query in company --- erpnext/setup/doctype/company/company.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js index 47f699d618..e8e2e73a7a 100644 --- a/erpnext/setup/doctype/company/company.js +++ b/erpnext/setup/doctype/company/company.js @@ -146,13 +146,12 @@ erpnext.company.setup_queries = function(frm) { erpnext.company.set_custom_query = function(frm, v) { var filters = { - "company": frm.doc.company, + "company": frm.doc.name, "is_group": 0 }; - for (var key in v[1]) filters[key] = v[1][key]; - + frm.set_query(v[0], function() { return { filters: filters From 11190268ab4131e17312d324b7d8ed3be4ef70e5 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 1 Jun 2015 16:21:25 +0530 Subject: [PATCH 3/3] [fix][patch] GL Entries for Journal Entries with multiple Party, merge entries considering party --- erpnext/accounts/general_ledger.py | 13 +++++----- erpnext/patches.txt | 1 + .../repost_gle_for_jv_with_multiple_party.py | 26 +++++++++++++++++++ 3 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py index 75dcbbf603..d2ea4cd316 100644 --- a/erpnext/accounts/general_ledger.py +++ b/erpnext/accounts/general_ledger.py @@ -56,12 +56,13 @@ def merge_similar_entries(gl_map): def check_if_in_list(gle, gl_map): for e in gl_map: - if e.account == gle.account and \ - cstr(e.get('against_voucher'))==cstr(gle.get('against_voucher')) \ - and cstr(e.get('against_voucher_type')) == \ - cstr(gle.get('against_voucher_type')) \ - and cstr(e.get('cost_center')) == cstr(gle.get('cost_center')): - return e + if e.account == gle.account \ + and cstr(e.get('party_type'))==cstr(gle.get('party_type')) \ + and cstr(e.get('party'))==cstr(gle.get('party')) \ + and cstr(e.get('against_voucher'))==cstr(gle.get('against_voucher')) \ + and cstr(e.get('against_voucher_type')) == cstr(gle.get('against_voucher_type')) \ + and cstr(e.get('cost_center')) == cstr(gle.get('cost_center')): + return e def save_entries(gl_map, adv_adj, update_outstanding): validate_account_for_auto_accounting_for_stock(gl_map) diff --git a/erpnext/patches.txt b/erpnext/patches.txt index f9590a9fe0..d40db971b4 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -161,3 +161,4 @@ erpnext.patches.v5_0.set_footer_address execute:frappe.db.set_value("Backup Manager", None, "send_backups_to_dropbox", 1 if frappe.db.get_value("Backup Manager", None, "upload_backups_to_dropbox") in ("Daily", "Weekly") else 0) execute:frappe.db.sql_list("delete from `tabDocPerm` where parent='Issue' and modified_by='Administrator' and role='Guest'") erpnext.patches.v5_0.update_item_and_description_again +erpnext.patches.v5_0.repost_gle_for_jv_with_multiple_party \ No newline at end of file diff --git a/erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py b/erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py new file mode 100644 index 0000000000..da58ae2349 --- /dev/null +++ b/erpnext/patches/v5_0/repost_gle_for_jv_with_multiple_party.py @@ -0,0 +1,26 @@ +# 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 frappe + +def execute(): + je_list = frappe.db.sql_list(""" + select par.name from `tabJournal Entry` par + where par.docstatus=1 and par.creation > '2015-03-01' + and (select count(distinct child.party) from `tabJournal Entry Account` child + where par.name=child.parent and ifnull(child.party, '') != '') > 1 + """) + + for d in je_list: + # delete existing gle + frappe.db.sql("delete from `tabGL Entry` where voucher_type='Journal Entry' and voucher_no=%s", d) + + # repost gl entries + je = frappe.get_doc("Journal Entry", d) + je.make_gl_entries() + + if je_list: + print je_list + + \ No newline at end of file