From 2e11ac922688b9b7b3fc1c3b87e4119a87338d93 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 --- .../doctype/sales_invoice/sales_invoice.py | 76 ++++++++++--------- 1 file changed, 40 insertions(+), 36 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index f58a49a86f..cddb50a1c5 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1384,6 +1384,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) @@ -1440,46 +1444,46 @@ 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 - or self.is_down_payment_invoice - ) - else item.deferred_revenue_account - ) - amount, base_amount = self.get_amount_and_base_amount( - item, enable_discount_accounting + income_account = ( + item.income_account + if ( + not item.enable_deferred_revenue + or self.is_return + or self.is_down_payment_invoice # @dokos ) + else item.deferred_revenue_account + ) - account_currency = get_account_currency(income_account) - gl_dict = 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, - "remarks": item.get("remarks") - or f'{_("Item")}: {item.qty} {item.item_code} - {_(item.uom)} / {_("Customer")}: {self.customer}', - "accounting_journal": self.accounting_journal, - }, - account_currency, - item=item, - ) + amount, base_amount = self.get_amount_and_base_amount(item, enable_discount_accounting) + + remarks = item.get("remarks") + if not remarks: # @dokos + remarks = f'{_("Item")}: {item.qty} {item.item_code} - {_(item.uom)} / {_("Customer")}: {self.customer}' + + account_currency = get_account_currency(income_account) + gl_dict = 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, + "remarks": remarks, # @dokos + "accounting_journal": self.accounting_journal, # @dokos + }, + account_currency, + item=item, + ) - if self.is_down_payment_invoice: - gl_dict.update({"party_type": "Customer", "party": self.customer}) + if self.is_down_payment_invoice: + gl_dict.update({"party_type": "Customer", "party": self.customer}) - gl_entries.append(gl_dict) + gl_entries.append(gl_dict) # expense account gl entries if cint(self.update_stock) and erpnext.is_perpetual_inventory_enabled(self.company): -- GitLab