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 b774761..cb5a035 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 @@ -50,6 +50,9 @@ frappe.ui.form.on('Property tax return', { // Validate minimum asset values validate_minimum_asset_value(frm); + + // Calculate 509.2 on load + calculate_509_2(frm); }, // Handle year changes @@ -57,6 +60,7 @@ frappe.ui.form.on('Property tax return', { if (frm.doc.il && (frm.doc.tam_il || frm.doc.il_erzinde)) { reload_property_tax_data(frm); } + calculate_509_2(frm); }, // Checkbox handlers - ensure mutual exclusivity @@ -71,6 +75,9 @@ frappe.ui.form.on('Property tax return', { // Clear warnings when switching to tam_il validate_minimum_asset_value(frm); + // Calculate 509.2 + calculate_509_2(frm); + if (frm.doc.il) { reload_property_tax_data(frm); } @@ -91,6 +98,9 @@ frappe.ui.form.on('Property tax return', { // Validate when checking il_erzinde validate_minimum_asset_value(frm); + // Calculate 509.2 + calculate_509_2(frm); + if (frm.doc.il) { reload_property_tax_data(frm); } @@ -100,6 +110,7 @@ frappe.ui.form.on('Property tax return', { } else { // Clear warnings when unchecking il_erzinde validate_minimum_asset_value(frm); + calculate_509_2(frm); } }, @@ -427,6 +438,9 @@ function reload_property_tax_data(frm) { frm.refresh_fields(); + // Calculate 509.2 after data reload + calculate_509_2(frm); + frappe.show_alert({ message: __('Property tax data loaded successfully'), indicator: 'green' @@ -737,6 +751,50 @@ function highlight_invalid_cells(frm, invalid_rows_1, invalid_rows_2) { // ==================== END VALIDATION ==================== +// ==================== FORMULA 509.2 CALCULATION ==================== +// Calculate field 509.2 based on formula: ((503.1 + 504.1) / 24 * 507) * 1% + +function calculate_509_2(frm) { + // Only calculate when il_erzinde is checked + if (!frm.doc.il_erzinde) { + return; + } + + // Get value from field 507 (ayla from vergi_hesab_4cu_1 first row) + let value_507 = 0; + if (frm.doc.vergi_hesab_4cu_1 && frm.doc.vergi_hesab_4cu_1.length > 0) { + value_507 = flt(frm.doc.vergi_hesab_4cu_1[0].ayla); + } + + // Get value from field 503.1 (manatla from vergi_hesab_1ci_1) + let value_503_1 = 0; + (frm.doc.vergi_hesab_1ci_1 || []).forEach(row => { + if (row.göstəricilər && row.göstəricilər.startsWith('503.1')) { + value_503_1 = flt(row.manatla); + } + }); + + // Get value from field 504.1 (manatla from vergi_hesab_2ci) + let value_504_1 = 0; + (frm.doc.vergi_hesab_2ci || []).forEach(row => { + if (row.göstəricilər && row.göstəricilər.startsWith('504.1')) { + value_504_1 = flt(row.manatla); + } + }); + + // Calculate: ((503.1 + 504.1) / 24 * 507) * 1% + let result = ((value_503_1 + value_504_1) / 24 * value_507) * 0.01; + + // Set value to field 509.2 (manatla in vergi_hesab_5ci) + (frm.doc.vergi_hesab_5ci || []).forEach(row => { + if (row.göstəricilər && row.göstəricilər.startsWith('509.2')) { + frappe.model.set_value(row.doctype, row.name, 'manatla', result); + } + }); +} + +// ==================== END FORMULA 509.2 ==================== + // Обработчики для дочерней таблицы Elave 2 - автоматический пересчет суммы binalar frappe.ui.form.on('Property tax return Elave 2', { form_render: function(frm, cdt, cdn) { @@ -803,4 +861,27 @@ frappe.ui.form.on('Property tax return Elave 1', { elave_1_remove: function(frm, cdt, cdn) { calculate_elave_1_totals(frm); } +}); + +// ==================== CHILD TABLE EVENT HANDLERS FOR 509.2 FORMULA ==================== + +// Event handler for vergi_hesab_4cu_1 changes (field 507) +frappe.ui.form.on('Property tax return Emlak vergi hesablamasi 4cu cedvel 1', { + ayla: function(frm, cdt, cdn) { + calculate_509_2(frm); + } +}); + +// Event handler for vergi_hesab_1ci_1 changes (field 503.1) +frappe.ui.form.on('Property tax return Emlak vergi hesablamasi 1ci cedvel 1', { + manatla: function(frm, cdt, cdn) { + calculate_509_2(frm); + } +}); + +// Event handler for vergi_hesab_2ci changes (field 504.1) +frappe.ui.form.on('Property tax return Emlak vergi hesablamasi 2ci cedvel', { + manatla: function(frm, cdt, cdn) { + calculate_509_2(frm); + } }); \ No newline at end of file