From 48b5567af46d301e1103627ac773adf980792cf9 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 --- .../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 6e8f1b2bbf2..4c90c908db3 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -315,17 +315,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") @@ -344,12 +333,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") @@ -1444,7 +1428,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 9bd13184521..2299f2765fa 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -1091,6 +1091,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)