repost gle for Purchase Invoice with update stock
diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
index 1c9bcbc..22de07f 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.py
@@ -305,25 +305,8 @@
if not self.grand_total:
return
- self.auto_accounting_for_stock = \
- cint(frappe.defaults.get_global_default("auto_accounting_for_stock"))
-
- self.stock_received_but_not_billed = self.get_company_default("stock_received_but_not_billed")
- self.expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
- self.negative_expense_to_be_booked = 0.0
- gl_entries = []
-
-
- self.make_supplier_gl_entry(gl_entries)
- self.make_item_gl_entries(gl_entries)
- self.make_tax_gl_entries(gl_entries)
-
- gl_entries = merge_similar_entries(gl_entries)
-
- self.make_payment_gl_entries(gl_entries)
-
- self.make_write_off_gl_entry(gl_entries)
-
+ gl_entries = self.get_gl_entries()
+
if gl_entries:
update_outstanding = "No" if (cint(self.is_paid) or self.write_off_account) else "Yes"
@@ -342,6 +325,26 @@
elif self.docstatus == 2 and cint(self.update_stock) and self.auto_accounting_for_stock:
delete_gl_entries(voucher_type=self.doctype, voucher_no=self.name)
+ def get_gl_entries(self, warehouse_account=None):
+ self.auto_accounting_for_stock = \
+ cint(frappe.defaults.get_global_default("auto_accounting_for_stock"))
+
+ self.stock_received_but_not_billed = self.get_company_default("stock_received_but_not_billed")
+ self.expenses_included_in_valuation = self.get_company_default("expenses_included_in_valuation")
+ self.negative_expense_to_be_booked = 0.0
+ gl_entries = []
+
+
+ self.make_supplier_gl_entry(gl_entries)
+ self.make_item_gl_entries(gl_entries)
+ self.make_tax_gl_entries(gl_entries)
+
+ gl_entries = merge_similar_entries(gl_entries)
+
+ self.make_payment_gl_entries(gl_entries)
+ self.make_write_off_gl_entry(gl_entries)
+
+ return gl_entries
def make_supplier_gl_entry(self, gl_entries):
if self.grand_total:
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index e5cdb1a..d694ef4 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -341,4 +341,5 @@
erpnext.patches.v7_0.repost_bin_qty_and_item_projected_qty
erpnext.patches.v7_1.set_prefered_contact_email
execute:frappe.db.sql("update `tabSingles` set value = 1 where field = 'unlink_payment_on_cancellation_of_invoice' and doctype = 'Accounts Settings'")
-execute:frappe.db.sql("update `tabStock Entry` set total_amount = null where purpose in('Repack', 'Manufacture')")
\ No newline at end of file
+execute:frappe.db.sql("update `tabStock Entry` set total_amount = null where purpose in('Repack', 'Manufacture')")
+erpnext.patches.v7_1.repost_gle_for_pi_with_update_stock
\ No newline at end of file
diff --git a/erpnext/patches/v7_1/repost_gle_for_pi_with_update_stock.py b/erpnext/patches/v7_1/repost_gle_for_pi_with_update_stock.py
new file mode 100644
index 0000000..2355d53
--- /dev/null
+++ b/erpnext/patches/v7_1/repost_gle_for_pi_with_update_stock.py
@@ -0,0 +1,16 @@
+# 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
+from frappe.utils import cint
+
+def execute():
+ if not cint(frappe.defaults.get_global_default("auto_accounting_for_stock")):
+ return
+
+ for pi in frappe.db.sql("""select name from `tabPurchase Invoice`
+ where update_stock=1 and docstatus=1 order by posting_date asc""", as_dict=1):
+ pi_doc = frappe.get_doc("Purchase Invoice", pi.name)
+ pi_doc.make_gl_entries()
+ frappe.db.commit()
\ No newline at end of file