fix: asset depreciations and balances report correction (#41824)

* fix: asset depreciations and balances report correction

* chore: suppress linter warnings with # nosemgrep
This commit is contained in:
Khushi Rawat
2024-06-11 14:27:28 +05:30
committed by GitHub
parent 8d7e68d355
commit 857c689405

View File

@@ -69,48 +69,50 @@ def get_asset_categories_for_grouped_by_category(filters):
condition = "" condition = ""
if filters.get("asset_category"): if filters.get("asset_category"):
condition += " and asset_category = %(asset_category)s" condition += " and asset_category = %(asset_category)s"
# nosemgrep
return frappe.db.sql( return frappe.db.sql(
f""" f"""
SELECT asset_category, SELECT a.asset_category,
ifnull(sum(case when purchase_date < %(from_date)s then ifnull(sum(case when a.purchase_date < %(from_date)s then
case when ifnull(disposal_date, 0) = 0 or disposal_date >= %(from_date)s then case when ifnull(a.disposal_date, 0) = 0 or a.disposal_date >= %(from_date)s then
gross_purchase_amount a.gross_purchase_amount
else else
0 0
end end
else else
0 0
end), 0) as cost_as_on_from_date, end), 0) as cost_as_on_from_date,
ifnull(sum(case when purchase_date >= %(from_date)s then ifnull(sum(case when a.purchase_date >= %(from_date)s then
gross_purchase_amount a.gross_purchase_amount
else else
0 0
end), 0) as cost_of_new_purchase, end), 0) as cost_of_new_purchase,
ifnull(sum(case when ifnull(disposal_date, 0) != 0 ifnull(sum(case when ifnull(a.disposal_date, 0) != 0
and disposal_date >= %(from_date)s and a.disposal_date >= %(from_date)s
and disposal_date <= %(to_date)s then and a.disposal_date <= %(to_date)s then
case when status = "Sold" then case when a.status = "Sold" then
gross_purchase_amount a.gross_purchase_amount
else else
0 0
end end
else else
0 0
end), 0) as cost_of_sold_asset, end), 0) as cost_of_sold_asset,
ifnull(sum(case when ifnull(disposal_date, 0) != 0 ifnull(sum(case when ifnull(a.disposal_date, 0) != 0
and disposal_date >= %(from_date)s and a.disposal_date >= %(from_date)s
and disposal_date <= %(to_date)s then and a.disposal_date <= %(to_date)s then
case when status = "Scrapped" then case when a.status = "Scrapped" then
gross_purchase_amount a.gross_purchase_amount
else else
0 0
end end
else else
0 0
end), 0) as cost_of_scrapped_asset end), 0) as cost_of_scrapped_asset
from `tabAsset` from `tabAsset` a
where docstatus=1 and company=%(company)s and purchase_date <= %(to_date)s {condition} where docstatus=1 and company=%(company)s and purchase_date <= %(to_date)s {condition}
group by asset_category and not exists(select name from `tabAsset Capitalization Asset Item` where asset = a.name)
group by a.asset_category
""", """,
{ {
"to_date": filters.to_date, "to_date": filters.to_date,