added hide/show fields in property tax return

This commit is contained in:
Ali 2025-12-24 20:29:48 +04:00
parent ce0305e21e
commit d396b431ff
1 changed files with 118 additions and 0 deletions

View File

@ -36,6 +36,11 @@ frappe.ui.form.on('Property tax return', {
// Toggle field readonly based on il_erzinde checkbox
toggle_field_readonly(frm);
// Apply conditional table logic after client scripts have populated tables
setTimeout(() => {
apply_conditional_table_logic(frm);
}, 100);
// Calculate binalar totals on load
calculate_binalar_totals(frm);
@ -60,6 +65,9 @@ frappe.ui.form.on('Property tax return', {
frm.set_value('il_erzinde', 0);
toggle_field_readonly(frm);
// Apply conditional logic when switching to tam_il
apply_conditional_table_logic(frm);
// Clear warnings when switching to tam_il
validate_minimum_asset_value(frm);
@ -77,6 +85,9 @@ frappe.ui.form.on('Property tax return', {
frm.set_value('tam_il', 0);
toggle_field_readonly(frm);
// Apply conditional logic when switching to il_erzinde
apply_conditional_table_logic(frm);
// Validate when checking il_erzinde
validate_minimum_asset_value(frm);
@ -127,6 +138,113 @@ function toggle_field_readonly(frm) {
}
}
// ==================== CONDITIONAL TABLE VISIBILITY AND FILTERING ====================
// Show/hide tables and filter rows based on tam_il vs il_erzinde selection
function apply_conditional_table_logic(frm) {
const is_tam_il = frm.doc.tam_il;
const is_il_erzinde = frm.doc.il_erzinde;
toggle_vergi_hesab_1ci_tables(frm, is_tam_il, is_il_erzinde);
filter_vergi_hesab_5ci_rows(frm, is_tam_il, is_il_erzinde);
filter_vergi_hesab_6ci_rows(frm, is_tam_il, is_il_erzinde);
}
function toggle_vergi_hesab_1ci_tables(frm, is_tam_il, is_il_erzinde) {
// Hide vergi_hesab_1ci if il_erzinde is checked
frm.set_df_property('vergi_hesab_1ci', 'hidden', is_il_erzinde ? 1 : 0);
// Hide vergi_hesab_1ci_1 if tam_il is checked
frm.set_df_property('vergi_hesab_1ci_1', 'hidden', is_tam_il ? 1 : 0);
frm.refresh_field('vergi_hesab_1ci');
frm.refresh_field('vergi_hesab_1ci_1');
}
function filter_vergi_hesab_5ci_rows(frm, is_tam_il, is_il_erzinde) {
// Initialize global storage for saved values
if (!window.property_tax_saved_values) {
window.property_tax_saved_values = {
vergi_hesab_5ci: {},
vergi_hesab_6ci: {}
};
}
// Save current values before clearing
(frm.doc.vergi_hesab_5ci || []).forEach(row => {
if (row.göstəricilər) {
window.property_tax_saved_values.vergi_hesab_5ci[row.göstəricilər] = row.manatla || 0;
}
});
// Define which rows should exist for current mode
let required_rows = [];
if (is_tam_il) {
required_rows = [
'509.1 Vergi ödəyicisi il ərzində tam fəaliyyət göstərdiyi halda:',
'510 Vergi məcəlləsinin 199.21-ci maddəsinə əsasən azaldılmalı əmlak vergisinin məbləği'
];
} else if (is_il_erzinde) {
required_rows = [
'509.2 Hesabat ili ərzində yaradıldığı (uçota alındığı) və ya əmlak vergisi ödəyicisi olduğu halda:',
'510 Vergi məcəlləsinin 199.21-ci maddəsinə əsasən azaldılmalı əmlak vergisinin məbləği'
];
}
// Clear table and recreate with required rows
frm.clear_table('vergi_hesab_5ci');
required_rows.forEach(row_text => {
let new_row = frm.add_child('vergi_hesab_5ci');
new_row.göstəricilər = row_text;
// Restore saved value if exists, otherwise 0
new_row.manatla = window.property_tax_saved_values.vergi_hesab_5ci[row_text] || 0;
});
frm.refresh_field('vergi_hesab_5ci');
}
function filter_vergi_hesab_6ci_rows(frm, is_tam_il, is_il_erzinde) {
// Initialize global storage for saved values (if not already done)
if (!window.property_tax_saved_values) {
window.property_tax_saved_values = {
vergi_hesab_5ci: {},
vergi_hesab_6ci: {}
};
}
// Save current values before clearing
(frm.doc.vergi_hesab_6ci || []).forEach(row => {
if (row.göstəricilər) {
window.property_tax_saved_values.vergi_hesab_6ci[row.göstəricilər] = row.manatla || 0;
}
});
// Define which rows should exist for current mode
let required_rows = [];
if (is_tam_il) {
required_rows = [
'511.1 Müəssisə il ərzində tam fəaliyyət göstərdiyi halda'
];
} else if (is_il_erzinde) {
required_rows = [
'511.2 Müəssisə il ərzində yarandığı halda'
];
}
// Clear table and recreate with required rows
frm.clear_table('vergi_hesab_6ci');
required_rows.forEach(row_text => {
let new_row = frm.add_child('vergi_hesab_6ci');
new_row.göstəricilər = row_text;
// Restore saved value if exists, otherwise 0
new_row.manatla = window.property_tax_saved_values.vergi_hesab_6ci[row_text] || 0;
});
frm.refresh_field('vergi_hesab_6ci');
}
// ==================== END CONDITIONAL LOGIC ====================
function calculate_binalar_totals(frm) {
if (!frm.doc.elave_2 || !frm.doc.elave_2.length) {
return;