diff --git a/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.js b/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.js index 687730d..b63d9d0 100644 --- a/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.js +++ b/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.js @@ -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 => { diff --git a/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.py b/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.py index c90e297..c621e5e 100644 --- a/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.py +++ b/taxes_az/taxes_az/doctype/property_tax_return/property_tax_return.py @@ -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)