insurance calcs

This commit is contained in:
Ali 2026-01-07 19:44:41 +04:00
parent beab57505c
commit 0e8fa91f9a
2 changed files with 26 additions and 10 deletions

View File

@ -384,7 +384,7 @@ function calculate_elave_2_totals(frm) {
'ləğvolunmatarixinəəsasvəsaitlərinqalıqdəyəri', // 502.1
'hesabatilierzindeuçotaalınan', // 503.1
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri', // 504.1
'artıqqiymətəəsasvəsaitlərindəyəri505' // 505.1
'artıqqiymətəəsasvəsaitlərindəyəri505' // 505.1 (страхование)
];
fields_to_sum.forEach(field => {

View File

@ -52,7 +52,8 @@ def populate_property_tax_tables(company, year, from_date, to_date, calculation_
elave_2_data[matching_key] = {
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri': data['value_as_on_from_date'],
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri': data['net_asset_value_as_on_to_date'],
'hesabatilierzindeuçotaalınan': 0
'hesabatilierzindeuçotaalınan': 0,
'artıqqiymətəəsasvəsaitlərindəyəri505': data['insurance_value']
}
else: # il_erzinde
# Бизнес-правило: Для компаний, созданных в течение года (İl Ərzində),
@ -61,14 +62,16 @@ def populate_property_tax_tables(company, year, from_date, to_date, calculation_
elave_2_data[matching_key] = {
'hesabatilierzindeuçotaalınan': data['value_of_new_purchase'],
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri': data['net_asset_value_as_on_to_date'],
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri': 0
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri': 0,
'artıqqiymətəəsasvəsaitlərindəyəri505': data['insurance_value']
}
else:
# Нет новых покупок - очистить все поля
elave_2_data[matching_key] = {
'hesabatilierzindeuçotaalınan': 0,
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri': 0,
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri': 0
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri': 0,
'artıqqiymətəəsasvəsaitlərindəyəri505': 0
}
# Map to rows with fuzzy matching for Əlavə 1 (Tax Exempt Assets)
@ -82,7 +85,8 @@ def populate_property_tax_tables(company, year, from_date, to_date, calculation_
elave_1_data[matching_key] = {
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012': data['value_as_on_from_date'],
'ilinsonunaəsasvəsaitlərinqalıqdəyəri': data['net_asset_value_as_on_to_date'],
'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': 0
'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': 0,
'artıqqiymətəəsasvəsaitlərindəyəri': data['insurance_value']
}
else: # il_erzinde
# Бизнес-правило: Для компаний, созданных в течение года (İl Ərzində),
@ -91,14 +95,16 @@ def populate_property_tax_tables(company, year, from_date, to_date, calculation_
elave_1_data[matching_key] = {
'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': data['value_of_new_purchase'],
'ilinsonunaəsasvəsaitlərinqalıqdəyəri': data['net_asset_value_as_on_to_date'],
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012': 0
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012': 0,
'artıqqiymətəəsasvəsaitlərindəyəri': data['insurance_value']
}
else:
# Нет новых покупок - очистить все поля
elave_1_data[matching_key] = {
'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': 0,
'ilinsonunaəsasvəsaitlərinqalıqdəyəri': 0,
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012': 0
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012': 0,
'artıqqiymətəəsasvəsaitlərindəyəri': 0
}
return {
@ -170,13 +176,15 @@ def get_taxable_assets_aggregated(company, from_date, to_date):
aggregated[asset_type] = {
'value_as_on_from_date': 0.0,
'value_of_new_purchase': 0.0,
'net_asset_value_as_on_to_date': 0.0
'net_asset_value_as_on_to_date': 0.0,
'insurance_value': 0.0
}
# Accumulate values
aggregated[asset_type]['value_as_on_from_date'] += flt(balance.get('value_as_on_from_date', 0))
aggregated[asset_type]['value_of_new_purchase'] += flt(balance.get('value_of_new_purchase', 0))
aggregated[asset_type]['net_asset_value_as_on_to_date'] += flt(balance.get('net_asset_value_as_on_to_date', 0))
aggregated[asset_type]['insurance_value'] += flt(balance.get('insurance_value', 0))
return aggregated
@ -246,13 +254,15 @@ def get_tax_exempt_assets_aggregated(company, from_date, to_date):
aggregated[article_number] = {
'value_as_on_from_date': 0.0,
'value_of_new_purchase': 0.0,
'net_asset_value_as_on_to_date': 0.0
'net_asset_value_as_on_to_date': 0.0,
'insurance_value': 0.0
}
# Accumulate values
aggregated[article_number]['value_as_on_from_date'] += flt(balance.get('value_as_on_from_date', 0))
aggregated[article_number]['value_of_new_purchase'] += flt(balance.get('value_of_new_purchase', 0))
aggregated[article_number]['net_asset_value_as_on_to_date'] += flt(balance.get('net_asset_value_as_on_to_date', 0))
aggregated[article_number]['insurance_value'] += flt(balance.get('insurance_value', 0))
return aggregated
@ -430,12 +440,18 @@ def get_asset_balances_using_standard_logic(company, from_date, to_date, asset_n
value_as_on_to_date - accumulated_depreciation_as_on_to_date
)
# Calculate insurance value (Insured value - Gross Purchase Amount)
insured_value = flt(frappe.db.get_value('Asset', asset_name, 'insured_value') or 0)
gross_purchase_amount = flt(frappe.db.get_value('Asset', asset_name, 'gross_purchase_amount') or 0)
insurance_difference = insured_value - gross_purchase_amount
balance_result = {
'asset': asset_name,
'value_as_on_from_date': value_as_on_from_date,
'value_of_new_purchase': value_of_new_purchase,
'net_asset_value_as_on_from_date': net_asset_value_as_on_from_date,
'net_asset_value_as_on_to_date': net_asset_value_as_on_to_date
'net_asset_value_as_on_to_date': net_asset_value_as_on_to_date,
'insurance_value': insurance_difference
}
result.append(balance_result)