From 47a69ca19b73d6e43c1f23e15932fc30ff5e4c72 Mon Sep 17 00:00:00 2001 From: Ali <010109ali@gmail.com> Date: Tue, 23 Dec 2025 19:55:42 +0400 Subject: [PATCH] added alert for less than 500 azn --- .../property_tax_return.js | 149 ++++++++++++++++++ .../property_tax_return.json | 12 ++ 2 files changed, 161 insertions(+) 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 184ad0b..a5dc210 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 @@ -42,6 +42,9 @@ frappe.ui.form.on('Property tax return', { // Calculate totals for Elave 1 and Elave 2 calculate_elave_1_totals(frm); calculate_elave_2_totals(frm); + + // Validate minimum asset values + validate_minimum_asset_value(frm); }, // Handle year changes @@ -69,13 +72,24 @@ frappe.ui.form.on('Property tax return', { if (frm.doc.il_erzinde) { frm.set_value('tam_il', 0); toggle_field_readonly(frm); + + // Validate when checking il_erzinde + validate_minimum_asset_value(frm); + if (frm.doc.il) { reload_property_tax_data(frm); } } else if (!frm.doc.tam_il) { // If unchecking il_erzinde and tam_il is also unchecked, default to tam_il frm.set_value('tam_il', 1); + } else { + // Clear warnings when unchecking il_erzinde + validate_minimum_asset_value(frm); } + }, + + validate: function(frm) { + return validate_minimum_asset_value(frm); } }); @@ -341,11 +355,146 @@ function update_child_table_values(frm, table_name, data_map) { if (table_name === 'elave_2') { calculate_binalar_totals(frm); calculate_elave_2_totals(frm); + // Validate after auto-populating Əlavə 2 + try { + validate_minimum_asset_value(frm); + } catch (e) { + console.log('Validation error:', e); + } } else if (table_name === 'elave_1') { calculate_elave_1_totals(frm); + // Validate after auto-populating Əlavə 1 + try { + validate_minimum_asset_value(frm); + } catch (e) { + console.log('Validation error:', e); + } } } +// ==================== MINIMUM ASSET VALUE VALIDATION ==================== +// Validate that asset values in columns 503.1 and 503.2 are >= 500 AZN +// when il_erzinde mode is selected + +function validate_minimum_asset_value(frm) { + // Only run if il_erzinde is checked + if (!frm.doc.il_erzinde) { + // Hide warnings and allow save + const field1 = frm.get_field('warning_elave_1_html'); + const field2 = frm.get_field('warning_elave_2_html'); + if (field1) field1.$wrapper.hide(); + if (field2) field2.$wrapper.hide(); + return true; + } + + let has_error_elave_1 = false; + let has_error_elave_2 = false; + let invalid_rows_1 = []; + let invalid_rows_2 = []; + + // Check Əlavə 1 (column 503.2) + (frm.doc.elave_1 || []).forEach((row, idx) => { + let value = row.hesabatiliərzindəəsasvəsaitlərinqalıqdəyəri || 0; + if (value > 0 && value < 500) { + has_error_elave_1 = true; + invalid_rows_1.push({row: idx + 1, value: value, category: row.azadolmasəbəbi}); + } + }); + + // Check Əlavə 2 (column 503.1) + (frm.doc.elave_2 || []).forEach((row, idx) => { + let value = row.hesabatilierzindeuçotaalınan || 0; + if (value > 0 && value < 500) { + has_error_elave_2 = true; + invalid_rows_2.push({row: idx + 1, value: value, category: row.vergiyəcəlbolunanəmlaklarınkateqoriyası}); + } + }); + + // Debug logging + if (invalid_rows_1.length > 0) { + console.log('Əlavə 1 invalid rows:', invalid_rows_1); + } + if (invalid_rows_2.length > 0) { + console.log('Əlavə 2 invalid rows:', invalid_rows_2); + } + + // Show/hide warnings and set validation state + show_warning_if_needed(frm, 'elave_1', has_error_elave_1); + show_warning_if_needed(frm, 'elave_2', has_error_elave_2); + + // Block save if any errors + if (has_error_elave_1 || has_error_elave_2) { + frm.validated = false; + return false; + } + + return true; +} + +function show_warning_if_needed(frm, table_name, has_error) { + const field_name = `warning_${table_name}_html`; + const field = frm.get_field(field_name); + + if (!field) return; + + if (has_error) { + // Unhide the field + frm.set_df_property(field_name, 'hidden', 0); + + // Show red warning message + const warning_html = ` +
+ ⚠️ Əsas vəsaitlərin dəyəri 500 manatdan az ola bilməz +
+Vergiyə cəlb olunan əsas vəsaitin dəyəri haqqında məlumat
" }, + { + "fieldname": "warning_elave_1_html", + "fieldtype": "HTML", + "hidden": 1 + }, + { + "fieldname": "warning_elave_2_html", + "fieldtype": "HTML", + "hidden": 1 + }, { "fieldname": "əmlak_vergisinin_hesablanması_tab", "fieldtype": "Tab Break",