mirror of
https://github.com/frappe/erpnext.git
synced 2026-03-10 05:48:15 +00:00
* fix: failing subcontracting patch
(cherry picked from commit 14b47e81ce)
# Conflicts:
# erpnext/patches.txt
* chore: resolve conflicts
---------
Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
This commit is contained in:
@@ -416,6 +416,6 @@ erpnext.patches.v15_0.update_payment_ledger_entries_against_advance_doctypes
|
||||
erpnext.patches.v15_0.rename_price_list_to_buying_price_list
|
||||
erpnext.patches.v15_0.patch_missing_buying_price_list_in_material_request
|
||||
erpnext.patches.v15_0.remove_sales_partner_from_consolidated_sales_invoice
|
||||
erpnext.patches.v15_0.repost_gl_entries_with_no_account_subcontracting #2025-07-31
|
||||
erpnext.patches.v15_0.repost_gl_entries_with_no_account_subcontracting #2025-08-04
|
||||
execute:frappe.db.set_single_value("Accounts Settings", "fetch_valuation_rate_for_internal_transaction", 1)
|
||||
erpnext.patches.v15_0.add_company_payment_gateway_account
|
||||
|
||||
@@ -2,24 +2,31 @@ import frappe
|
||||
|
||||
|
||||
def execute():
|
||||
def cancel_incorrect_gl_entries(gl_entries):
|
||||
table = frappe.qb.DocType("GL Entry")
|
||||
frappe.qb.update(table).set(table.is_cancelled, 1).where(table.name.isin(gl_entries)).run()
|
||||
|
||||
def recreate_gl_entries(voucher_nos):
|
||||
for doc in voucher_nos:
|
||||
doc = frappe.get_doc("Subcontracting Receipt", doc)
|
||||
for item in doc.supplied_items:
|
||||
account, cost_center = frappe.db.get_values(
|
||||
"Subcontracting Receipt Item", item.reference_name, ["expense_account", "cost_center"]
|
||||
)[0]
|
||||
|
||||
if not item.expense_account:
|
||||
item.db_set("expense_account", account)
|
||||
if not item.cost_center:
|
||||
item.db_set("cost_center", cost_center)
|
||||
|
||||
doc.make_gl_entries()
|
||||
|
||||
docs = frappe.get_all(
|
||||
"GL Entry",
|
||||
fields=["name", "voucher_no"],
|
||||
filters={"voucher_type": "Subcontracting Receipt", "account": ["is", "not set"], "is_cancelled": 0},
|
||||
pluck="voucher_no",
|
||||
)
|
||||
for doc in docs:
|
||||
doc = frappe.get_doc("Subcontracting Receipt", doc)
|
||||
for item in doc.supplied_items:
|
||||
account, cost_center = frappe.db.get_values(
|
||||
"Subcontracting Receipt Item", item.reference_name, ["expense_account", "cost_center"]
|
||||
)[0]
|
||||
|
||||
if not item.expense_account:
|
||||
item.db_set("expense_account", account)
|
||||
if not item.cost_center:
|
||||
item.db_set("cost_center", cost_center)
|
||||
|
||||
doc.docstatus = 2
|
||||
doc.make_gl_entries_on_cancel()
|
||||
doc.docstatus = 1
|
||||
doc.make_gl_entries()
|
||||
if docs:
|
||||
cancel_incorrect_gl_entries([d.name for d in docs])
|
||||
recreate_gl_entries([d.voucher_no for d in docs])
|
||||
|
||||
Reference in New Issue
Block a user