From 31173b154edbbd63b31bc01c77bd2b03ac19731e Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 15 Feb 2024 14:24:55 +0100 Subject: [PATCH 1/5] fix: Use parent cost center by default when creating a sales invoice --- erpnext/selling/doctype/sales_order/sales_order.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 8f1e55519ad..4b5fecb2ccf 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -985,6 +985,7 @@ def make_delivery_note(source_name, target_doc=None, kwargs=None): @frappe.whitelist() def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): def postprocess(source, target): + print("postprocess") set_missing_values(source, target) # Get the advance paid Journal Entries in Sales Invoice Advance if target.get("allocate_advances_automatically"): @@ -1022,8 +1023,9 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): else source.qty - source.returned_qty ) - if source_parent.project: - target.cost_center = frappe.db.get_value("Project", source_parent.project, "cost_center") + if source_parent.cost_center: + target.cost_center = source_parent.cost_center + if target.item_code: item = get_item_defaults( target.item_code, source_parent.company, source_parent.get("tax_category") @@ -1036,6 +1038,9 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): if cost_center: target.cost_center = cost_center + if target.project: + target.cost_center = frappe.db.get_value("Project", target.project, "cost_center") + doclist = get_mapped_doc( "Sales Order", source_name, -- GitLab From bf8a285b4f1702c762ef2ee37204d4d1934ecdb6 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 15 Feb 2024 14:27:03 +0100 Subject: [PATCH 2/5] fix: cleanup print statement --- erpnext/selling/doctype/sales_order/sales_order.py | 1 - 1 file changed, 1 deletion(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 4b5fecb2ccf..19990764d19 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -985,7 +985,6 @@ def make_delivery_note(source_name, target_doc=None, kwargs=None): @frappe.whitelist() def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): def postprocess(source, target): - print("postprocess") set_missing_values(source, target) # Get the advance paid Journal Entries in Sales Invoice Advance if target.get("allocate_advances_automatically"): -- GitLab From 148bf76d95d04f8360e5c435ab301b294f834e86 Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 15 Feb 2024 14:31:51 +0100 Subject: [PATCH 3/5] fix: Improve determination logic --- erpnext/selling/doctype/sales_order/sales_order.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 19990764d19..878fa0b5aad 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1022,6 +1022,9 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): else source.qty - source.returned_qty ) + if source_parent.project: + target.project = source_parent.project + if source_parent.cost_center: target.cost_center = source_parent.cost_center -- GitLab From e0986800545cc6083687f7217c4165f0bacaf7fa Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 15 Feb 2024 14:34:16 +0100 Subject: [PATCH 4/5] fix: Syntax --- erpnext/selling/doctype/sales_order/sales_order.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 878fa0b5aad..bc318c230d1 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1022,12 +1022,6 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): else source.qty - source.returned_qty ) - if source_parent.project: - target.project = source_parent.project - - if source_parent.cost_center: - target.cost_center = source_parent.cost_center - if target.item_code: item = get_item_defaults( target.item_code, source_parent.company, source_parent.get("tax_category") @@ -1040,8 +1034,12 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): if cost_center: target.cost_center = cost_center - if target.project: - target.cost_center = frappe.db.get_value("Project", target.project, "cost_center") + if source_parent.project: + target.project = source_parent.project + project_cost_center = frappe.db.get_value("Project", target.project, "cost_center") + + if source_parent.cost_center or project_cost_center: + target.cost_center = source_parent.cost_center or project_cost_center doclist = get_mapped_doc( "Sales Order", -- GitLab From b31055f637fa2359f7db0ce8170b6c30010703ee Mon Sep 17 00:00:00 2001 From: Charles-Henri Decultot Date: Thu, 15 Feb 2024 19:00:19 +0100 Subject: [PATCH 5/5] fix: Initialize variable --- erpnext/selling/doctype/sales_order/sales_order.py | 1 + 1 file changed, 1 insertion(+) diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index bc318c230d1..8c080ef2cdc 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1034,6 +1034,7 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): if cost_center: target.cost_center = cost_center + project_cost_center = None if source_parent.project: target.project = source_parent.project project_cost_center = frappe.db.get_value("Project", target.project, "cost_center") -- GitLab