From 91969059a7f1407b0bc3f225acdb0d60fd0d38ff 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 7f9c363aef6..f980be7482d 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -983,6 +983,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"): @@ -1020,8 +1021,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") @@ -1034,6 +1036,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 806c7bb1162d6b165f3260d0c1dd1b9b6e768ffb 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 f980be7482d..116490de1c2 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -983,7 +983,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 66936d7ddcf0b94266b417753be0d004e5156382 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 116490de1c2..aa125d23637 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1020,6 +1020,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 378e0e327340db40e8169ce50509eca94ff8de1e 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 aa125d23637..c8e50387dff 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1020,12 +1020,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") @@ -1038,8 +1032,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 a2aa61538298bb3c46dcf4568363bb1afb4b78af 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 c8e50387dff..82cef6fce8d 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1032,6 +1032,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