From 65efc7e9507ad6240ebf894eef563b5734321043 Mon Sep 17 00:00:00 2001 From: Diptanil Saha Date: Fri, 18 Jul 2025 11:09:32 +0530 Subject: [PATCH] fix: sales partner in pos invoice (#48670) * Merge pull request #48667 from diptanilsaha/fix_pos_sales_partner fix: sales partner on pos invoice * fix: remove incorrect report conditions and unset sales partner on consolidated sales invoice (#48669) * fix: undo query changes for sales partner related reports * fix: patch to remove sales partner from consolidated sales invoice --- .../doctype/pos_invoice/pos_invoice.json | 4 +++- .../pos_invoice_merge_log.py | 5 +++++ .../sales_partners_commission.json | 14 ++++++++------ erpnext/patches.txt | 1 + ...partner_from_consolidated_sales_invoice.py | 19 +++++++++++++++++++ .../sales_partner_commission_summary.js | 2 +- ...ner_target_variance_based_on_item_group.js | 2 +- .../sales_partner_transaction_summary.js | 2 +- 8 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 erpnext/patches/v15_0/remove_sales_partner_from_consolidated_sales_invoice.py diff --git a/erpnext/accounts/doctype/pos_invoice/pos_invoice.json b/erpnext/accounts/doctype/pos_invoice/pos_invoice.json index c15309df294..aaf5142362f 100644 --- a/erpnext/accounts/doctype/pos_invoice/pos_invoice.json +++ b/erpnext/accounts/doctype/pos_invoice/pos_invoice.json @@ -1443,6 +1443,8 @@ "width": "50%" }, { + "fetch_from": "sales_partner.commission_rate", + "fetch_if_empty": 1, "fieldname": "commission_rate", "fieldtype": "Float", "label": "Commission Rate (%)", @@ -1571,7 +1573,7 @@ "icon": "fa fa-file-text", "is_submittable": 1, "links": [], - "modified": "2024-11-26 13:10:50.309570", + "modified": "2025-07-17 16:51:40.886083", "modified_by": "Administrator", "module": "Accounts", "name": "POS Invoice", diff --git a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py index fedc6a7772d..913ab7e6c47 100644 --- a/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py +++ b/erpnext/accounts/doctype/pos_invoice_merge_log/pos_invoice_merge_log.py @@ -337,6 +337,11 @@ class POSInvoiceMergeLog(Document): invoice.flags.ignore_pos_profile = True invoice.pos_profile = "" + # Unset Commission Section + invoice.set("sales_partner", None) + invoice.set("commission_rate", 0) + invoice.set("total_commission", 0) + return invoice def get_new_sales_invoice(self): diff --git a/erpnext/accounts/report/sales_partners_commission/sales_partners_commission.json b/erpnext/accounts/report/sales_partners_commission/sales_partners_commission.json index 9dd4e437f7f..9a1131e069b 100644 --- a/erpnext/accounts/report/sales_partners_commission/sales_partners_commission.json +++ b/erpnext/accounts/report/sales_partners_commission/sales_partners_commission.json @@ -1,21 +1,22 @@ { "add_total_row": 0, + "add_translate_data": 0, "columns": [], "creation": "2013-05-06 12:28:23", - "disable_prepared_report": 0, "disabled": 0, "docstatus": 0, "doctype": "Report", "filters": [], - "idx": 3, + "idx": 6, "is_standard": "Yes", - "modified": "2021-10-06 06:26:07.881340", + "letterhead": null, + "modified": "2025-07-17 23:16:19.892044", "modified_by": "Administrator", "module": "Accounts", "name": "Sales Partners Commission", "owner": "Administrator", "prepared_report": 0, - "query": "SELECT\n sales_partner as \"Sales Partner:Link/Sales Partner:220\",\n\tsum(base_net_total) as \"Invoiced Amount (Excl. Tax):Currency:220\",\n\tsum(amount_eligible_for_commission) as \"Amount Eligible for Commission:Currency:220\",\n\tsum(total_commission) as \"Total Commission:Currency:170\",\n\tsum(total_commission)*100/sum(amount_eligible_for_commission) as \"Average Commission Rate:Percent:220\"\nFROM\n\t`tabSales Invoice`\nWHERE\n\tdocstatus = 1 and ifnull(base_net_total, 0) > 0 and ifnull(total_commission, 0) > 0\nGROUP BY\n\tsales_partner\nORDER BY\n\t\"Total Commission:Currency:120\"", + "query": "SELECT\n sales_partner as \"Sales Partner:Link / Sales Partner:220\",\n sum(base_net_total) as \"Invoiced Amount (Excl. Tax):Currency:220\",\n sum(amount_eligible_for_commission) as \"Amount Eligible for Commission:Currency:220\",\n sum(total_commission) as \"Total Commission:Currency:170\",\n sum(total_commission)*100 / sum(amount_eligible_for_commission) as \"Average Commission Rate:Percent:220\"\nFROM\n (\n SELECT\n sales_partner,\n base_net_total,\n total_commission,\n amount_eligible_for_commission\n FROM\n `tabSales Invoice` \n WHERE\n docstatus = 1\n AND IFNULL(base_net_total, 0) > 0\n AND IFNULL(total_commission, 0) > 0\n\n UNION ALL\n\n SELECT\n sales_partner,\n base_net_total,\n total_commission,\n amount_eligible_for_commission\n FROM\n `tabPOS Invoice`\n WHERE\n docstatus = 1\n AND IFNULL(base_net_total, 0) > 0\n AND IFNULL(total_commission, 0) > 0\n ) AS sub\nGROUP BY\n sales_partner\nORDER BY\n \"Total Commission:Currency:120\"", "ref_doctype": "Sales Invoice", "report_name": "Sales Partners Commission", "report_type": "Query Report", @@ -26,5 +27,6 @@ { "role": "Accounts User" } - ] -} \ No newline at end of file + ], + "timeout": 0 +} diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 447e264ad75..5f4c3672228 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -413,3 +413,4 @@ erpnext.patches.v15_0.update_pick_list_fields erpnext.patches.v15_0.update_pegged_currencies erpnext.patches.v15_0.set_company_on_pos_inv_merge_log erpnext.patches.v15_0.rename_price_list_to_buying_price_list +erpnext.patches.v15_0.remove_sales_partner_from_consolidated_sales_invoice diff --git a/erpnext/patches/v15_0/remove_sales_partner_from_consolidated_sales_invoice.py b/erpnext/patches/v15_0/remove_sales_partner_from_consolidated_sales_invoice.py new file mode 100644 index 00000000000..ac1daeef44d --- /dev/null +++ b/erpnext/patches/v15_0/remove_sales_partner_from_consolidated_sales_invoice.py @@ -0,0 +1,19 @@ +import frappe + + +def execute(): + SalesInvoice = frappe.qb.DocType("Sales Invoice") + + query = ( + frappe.qb.update(SalesInvoice) + .set(SalesInvoice.sales_partner, "") + .set(SalesInvoice.commission_rate, 0) + .set(SalesInvoice.total_commission, 0) + .where(SalesInvoice.is_consolidated == 1) + ) + + # For develop/version-16 + if frappe.db.has_column("Sales Invoice", "is_created_using_pos"): + query = query.where(SalesInvoice.is_created_using_pos == 0) + + query.run() diff --git a/erpnext/selling/report/sales_partner_commission_summary/sales_partner_commission_summary.js b/erpnext/selling/report/sales_partner_commission_summary/sales_partner_commission_summary.js index 4a1ebabbccf..1150de86b80 100644 --- a/erpnext/selling/report/sales_partner_commission_summary/sales_partner_commission_summary.js +++ b/erpnext/selling/report/sales_partner_commission_summary/sales_partner_commission_summary.js @@ -13,7 +13,7 @@ frappe.query_reports["Sales Partner Commission Summary"] = { fieldname: "doctype", label: __("Document Type"), fieldtype: "Select", - options: "Sales Order\nDelivery Note\nSales Invoice", + options: "Sales Order\nDelivery Note\nSales Invoice\nPOS Invoice", default: "Sales Order", }, { diff --git a/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/sales_partner_target_variance_based_on_item_group.js b/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/sales_partner_target_variance_based_on_item_group.js index 6809b38c7ed..8373e886ce5 100644 --- a/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/sales_partner_target_variance_based_on_item_group.js +++ b/erpnext/selling/report/sales_partner_target_variance_based_on_item_group/sales_partner_target_variance_based_on_item_group.js @@ -21,7 +21,7 @@ frappe.query_reports["Sales Partner Target Variance based on Item Group"] = { fieldname: "doctype", label: __("Document Type"), fieldtype: "Select", - options: "Sales Order\nDelivery Note\nSales Invoice", + options: "Sales Order\nDelivery Note\nSales Invoice\nPOS Invoice", default: "Sales Order", }, { diff --git a/erpnext/selling/report/sales_partner_transaction_summary/sales_partner_transaction_summary.js b/erpnext/selling/report/sales_partner_transaction_summary/sales_partner_transaction_summary.js index b7bca8ae5fa..f6f7c3f3cf3 100644 --- a/erpnext/selling/report/sales_partner_transaction_summary/sales_partner_transaction_summary.js +++ b/erpnext/selling/report/sales_partner_transaction_summary/sales_partner_transaction_summary.js @@ -13,7 +13,7 @@ frappe.query_reports["Sales Partner Transaction Summary"] = { fieldname: "doctype", label: __("Document Type"), fieldtype: "Select", - options: "Sales Order\nDelivery Note\nSales Invoice", + options: "Sales Order\nDelivery Note\nSales Invoice\nPOS Invoice", default: "Sales Order", }, {