From 9a19650e5aa291cea3f9ec51721e1720cca9e358 Mon Sep 17 00:00:00 2001 From: David Date: Sat, 1 Jun 2024 16:42:42 +0200 Subject: [PATCH] fix: loyalty points application on si (cherry picked from commit 48b5567af46d301e1103627ac773adf980792cf9) --- .../doctype/sales_invoice/sales_invoice.py | 20 ++----------------- .../doctype/sales_order/sales_order.py | 1 + 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 1966a78ef49..be0f38a7c02 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -304,17 +304,6 @@ class SalesInvoice(SellingController): if not self.is_opening: self.is_opening = "No" - if self.redeem_loyalty_points: - lp = frappe.get_doc("Loyalty Program", self.loyalty_program) - self.loyalty_redemption_account = ( - lp.expense_account if not self.loyalty_redemption_account else self.loyalty_redemption_account - ) - self.loyalty_redemption_cost_center = ( - lp.cost_center - if not self.loyalty_redemption_cost_center - else self.loyalty_redemption_cost_center - ) - self.set_against_income_account() self.validate_time_sheets_are_submitted() self.validate_multiple_billing("Delivery Note", "dn_detail", "amount") @@ -333,12 +322,7 @@ class SalesInvoice(SellingController): if self.is_pos and self.is_return: self.verify_payment_amount_is_negative() - if ( - self.redeem_loyalty_points - and self.loyalty_program - and self.loyalty_points - and not self.is_consolidated - ): + if self.redeem_loyalty_points and self.loyalty_points and not self.is_consolidated: validate_loyalty_points(self, self.loyalty_points) self.reset_default_field_value("set_warehouse", "items", "warehouse") @@ -1438,7 +1422,7 @@ class SalesInvoice(SellingController): asset.set_status("Sold" if self.docstatus == 1 else None) def make_loyalty_point_redemption_gle(self, gl_entries): - if cint(self.redeem_loyalty_points): + if cint(self.redeem_loyalty_points and self.loyalty_points and not self.is_consolidated): gl_entries.append( self.get_gl_dict( { diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py index 570677aad78..9bc43c98ccc 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1078,6 +1078,7 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False): # set the redeem loyalty points if provided via shopping cart if source.loyalty_points and source.order_type == "Shopping Cart": target.redeem_loyalty_points = 1 + target.loyalty_points = source.loyalty_points target.debit_to = get_party_account("Customer", source.customer, source.company)