From 97cadfe5d360128934aaaac9346537a47515cf75 Mon Sep 17 00:00:00 2001 From: ljain112 Date: Tue, 23 Jul 2024 17:44:37 +0530 Subject: [PATCH] fix: allow sale of asset for internal transfer (cherry picked from commit 972329cc166c18138cf5c745755144235b158679) --- .../doctype/sales_invoice/sales_invoice.py | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index 24e61b0d221..a0eef4a4f3e 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1316,6 +1316,10 @@ class SalesInvoice(SellingController): for item in self.get("items"): if flt(item.base_net_amount, item.precision("base_net_amount")): + # Do not book income for transfer within same company + if self.is_internal_transfer(): + continue + if item.is_fixed_asset: asset = self.get_asset(item) @@ -1374,37 +1378,33 @@ class SalesInvoice(SellingController): self.set_asset_status(asset) else: - # Do not book income for transfer within same company - if not self.is_internal_transfer(): - income_account = ( - item.income_account - if (not item.enable_deferred_revenue or self.is_return) - else item.deferred_revenue_account - ) + income_account = ( + item.income_account + if (not item.enable_deferred_revenue or self.is_return) + else item.deferred_revenue_account + ) - amount, base_amount = self.get_amount_and_base_amount( - item, enable_discount_accounting - ) + amount, base_amount = self.get_amount_and_base_amount(item, enable_discount_accounting) - account_currency = get_account_currency(income_account) - gl_entries.append( - self.get_gl_dict( - { - "account": income_account, - "against": self.customer, - "credit": flt(base_amount, item.precision("base_net_amount")), - "credit_in_account_currency": ( - flt(base_amount, item.precision("base_net_amount")) - if account_currency == self.company_currency - else flt(amount, item.precision("net_amount")) - ), - "cost_center": item.cost_center, - "project": item.project or self.project, - }, - account_currency, - item=item, - ) + account_currency = get_account_currency(income_account) + gl_entries.append( + self.get_gl_dict( + { + "account": income_account, + "against": self.customer, + "credit": flt(base_amount, item.precision("base_net_amount")), + "credit_in_account_currency": ( + flt(base_amount, item.precision("base_net_amount")) + if account_currency == self.company_currency + else flt(amount, item.precision("net_amount")) + ), + "cost_center": item.cost_center, + "project": item.project or self.project, + }, + account_currency, + item=item, ) + ) # expense account gl entries if cint(self.update_stock) and erpnext.is_perpetual_inventory_enabled(self.company):