Merge pull request #3395 from nabinhait/develop
GL Entries for Journal Entries with multiple Party
diff --git a/erpnext/accounts/general_ledger.py b/erpnext/accounts/general_ledger.py
index 75dcbbf..d2ea4cd 100644
--- a/erpnext/accounts/general_ledger.py
+++ b/erpnext/accounts/general_ledger.py
@@ -56,12 +56,13 @@
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 f9590a9..d40db97 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -161,3 +161,4 @@
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 0000000..da58ae2
--- /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
diff --git a/erpnext/setup/doctype/company/company.js b/erpnext/setup/doctype/company/company.js
index 2c9d4f5..e8e2e73 100644
--- a/erpnext/setup/doctype/company/company.js
+++ b/erpnext/setup/doctype/company/company.js
@@ -124,9 +124,9 @@
["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 @@
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);
@@ -146,13 +146,12 @@
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