From f705bf2efe7bf079bb9b8af200f4c8cadfddd4ee Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Mon, 25 Sep 2023 20:10:01 +0530 Subject: [PATCH] fix: remove multiple accounts from against in capitalization --- .../asset_capitalization.py | 62 ++++++++++--------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py index 662e4b983b..ad91edc038 100644 --- a/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py +++ b/erpnext/assets/doctype/asset_capitalization/asset_capitalization.py @@ -390,6 +390,7 @@ class AssetCapitalization(StockController): self.get_gl_dict( { "account": account, + "against_type": "Account", "against": target_account, "cost_center": item_row.cost_center, "project": item_row.get("project") or self.get("project"), @@ -431,6 +432,7 @@ class AssetCapitalization(StockController): self.set_consumed_asset_status(asset) for gle in fixed_asset_gl_entries: + gle["against_type"] = "Account" gle["against"] = target_account gl_entries.append(self.get_gl_dict(gle, item=item)) target_against.add(gle["account"]) @@ -447,6 +449,7 @@ class AssetCapitalization(StockController): self.get_gl_dict( { "account": item_row.expense_account, + "against_type": "Account", "against": target_account, "cost_center": item_row.cost_center, "project": item_row.get("project") or self.get("project"), @@ -458,41 +461,44 @@ class AssetCapitalization(StockController): ) def get_gl_entries_for_target_item(self, gl_entries, target_against, precision): - if self.target_is_fixed_asset: - # Capitalization - gl_entries.append( - self.get_gl_dict( - { - "account": self.target_fixed_asset_account, - "against": ", ".join(target_against), - "remarks": self.get("remarks") or _("Accounting Entry for Asset"), - "debit": flt(self.total_value, precision), - "cost_center": self.get("cost_center"), - }, - item=self, - ) - ) - else: - # Target Stock Item - sle_list = self.sle_map.get(self.name) - for sle in sle_list: - stock_value_difference = flt(sle.stock_value_difference, precision) - account = self.warehouse_account[sle.warehouse]["account"] - + for target_account in target_against: + if self.target_is_fixed_asset: + # Capitalization gl_entries.append( self.get_gl_dict( { - "account": account, - "against": ", ".join(target_against), - "cost_center": self.cost_center, - "project": self.get("project"), - "remarks": self.get("remarks") or "Accounting Entry for Stock", - "debit": stock_value_difference, + "account": self.target_fixed_asset_account, + "against_type": "Account", + "against": target_account, + "remarks": self.get("remarks") or _("Accounting Entry for Asset"), + "debit": flt(self.total_value, precision) / len(target_against), + "cost_center": self.get("cost_center"), }, - self.warehouse_account[sle.warehouse]["account_currency"], item=self, ) ) + else: + # Target Stock Item + sle_list = self.sle_map.get(self.name) + for sle in sle_list: + stock_value_difference = flt(sle.stock_value_difference, precision) + account = self.warehouse_account[sle.warehouse]["account"] + + gl_entries.append( + self.get_gl_dict( + { + "account": account, + "against_type": "Account", + "against": target_account, + "cost_center": self.cost_center, + "project": self.get("project"), + "remarks": self.get("remarks") or "Accounting Entry for Stock", + "debit": stock_value_difference / len(target_against), + }, + self.warehouse_account[sle.warehouse]["account_currency"], + item=self, + ) + ) def create_target_asset(self): total_target_asset_value = flt(self.total_value, self.precision("total_value"))