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 'ləğvolunmatarixinəəsasvəsaitlərinqalıqdəyəri', // 502.1
'hesabatilierzindeuçotaalınan', // 503.1 'hesabatilierzindeuçotaalınan', // 503.1
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri', // 504.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 => { 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] = { elave_2_data[matching_key] = {
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri': data['value_as_on_from_date'], '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'], '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 else: # il_erzinde
# Бизнес-правило: Для компаний, созданных в течение года (İl Ərzində), # Бизнес-правило: Для компаний, созданных в течение года (İl Ərzində),
@ -61,14 +62,16 @@ def populate_property_tax_tables(company, year, from_date, to_date, calculation_
elave_2_data[matching_key] = { elave_2_data[matching_key] = {
'hesabatilierzindeuçotaalınan': data['value_of_new_purchase'], 'hesabatilierzindeuçotaalınan': data['value_of_new_purchase'],
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri': data['net_asset_value_as_on_to_date'], '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: else:
# Нет новых покупок - очистить все поля # Нет новых покупок - очистить все поля
elave_2_data[matching_key] = { elave_2_data[matching_key] = {
'hesabatilierzindeuçotaalınan': 0, 'hesabatilierzindeuçotaalınan': 0,
'hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri': 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) # 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] = { elave_1_data[matching_key] = {
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012': data['value_as_on_from_date'], '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'], '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 else: # il_erzinde
# Бизнес-правило: Для компаний, созданных в течение года (İl Ərzində), # Бизнес-правило: Для компаний, созданных в течение года (İl Ərzində),
@ -91,14 +95,16 @@ def populate_property_tax_tables(company, year, from_date, to_date, calculation_
elave_1_data[matching_key] = { elave_1_data[matching_key] = {
'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': data['value_of_new_purchase'], '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'], '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: else:
# Нет новых покупок - очистить все поля # Нет новых покупок - очистить все поля
elave_1_data[matching_key] = { elave_1_data[matching_key] = {
'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': 0, 'hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri': 0,
'ilinsonunaə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 { return {
@ -170,13 +176,15 @@ def get_taxable_assets_aggregated(company, from_date, to_date):
aggregated[asset_type] = { aggregated[asset_type] = {
'value_as_on_from_date': 0.0, 'value_as_on_from_date': 0.0,
'value_of_new_purchase': 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 # Accumulate values
aggregated[asset_type]['value_as_on_from_date'] += flt(balance.get('value_as_on_from_date', 0)) 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]['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]['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 return aggregated
@ -246,13 +254,15 @@ def get_tax_exempt_assets_aggregated(company, from_date, to_date):
aggregated[article_number] = { aggregated[article_number] = {
'value_as_on_from_date': 0.0, 'value_as_on_from_date': 0.0,
'value_of_new_purchase': 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 # Accumulate values
aggregated[article_number]['value_as_on_from_date'] += flt(balance.get('value_as_on_from_date', 0)) 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]['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]['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 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 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 = { balance_result = {
'asset': asset_name, 'asset': asset_name,
'value_as_on_from_date': value_as_on_from_date, 'value_as_on_from_date': value_as_on_from_date,
'value_of_new_purchase': value_of_new_purchase, '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_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) result.append(balance_result)