added total functionality
This commit is contained in:
parent
e685d1fca5
commit
ae46a008bb
|
|
@ -38,6 +38,10 @@ frappe.ui.form.on('Property tax return', {
|
||||||
|
|
||||||
// Calculate binalar totals on load
|
// Calculate binalar totals on load
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
|
||||||
|
// Calculate totals for Elave 1 and Elave 2
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
// Handle year changes
|
// Handle year changes
|
||||||
|
|
@ -149,6 +153,94 @@ function calculate_binalar_totals(frm) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function calculate_elave_1_totals(frm) {
|
||||||
|
if (!frm.doc.elave_1 || !frm.doc.elave_1.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Найти итоговую строку "Vergidən azad olunan əmlakın CƏMİ dəyəri:"
|
||||||
|
let total_row = null;
|
||||||
|
const other_rows = [];
|
||||||
|
|
||||||
|
frm.doc.elave_1.forEach(row => {
|
||||||
|
const azadolma = row.azadolmasəbəbi || '';
|
||||||
|
|
||||||
|
if (azadolma === 'Vergidən azad olunan əmlakın CƏMİ dəyəri:') {
|
||||||
|
total_row = row;
|
||||||
|
} else {
|
||||||
|
// Все остальные строки для суммирования
|
||||||
|
other_rows.push(row);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Если нет итоговой строки, ничего не делаем
|
||||||
|
if (!total_row) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Суммируем все числовые поля из всех строк (кроме итоговой)
|
||||||
|
const fields_to_sum = [
|
||||||
|
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012', // 501.2
|
||||||
|
'ləğvolunmatarxinəəsasvəsaitlərinqalıqdəyəri', // 502.2
|
||||||
|
'hesabatiližrzindəəsasvəsaitlərinqalıqdəyəri', // 503.2
|
||||||
|
'ilinsonunaəsasvəsaitlərinqalıqdəyəri', // 504.2
|
||||||
|
'artıqqiymətəəsasvəsaitlərindəyəri' // 505.2
|
||||||
|
];
|
||||||
|
|
||||||
|
fields_to_sum.forEach(field => {
|
||||||
|
let total = 0;
|
||||||
|
other_rows.forEach(row => {
|
||||||
|
total += flt(row[field]);
|
||||||
|
});
|
||||||
|
|
||||||
|
frappe.model.set_value(total_row.doctype, total_row.name, field, total);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function calculate_elave_2_totals(frm) {
|
||||||
|
if (!frm.doc.elave_2 || !frm.doc.elave_2.length) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Найти итоговую строку "Vergiyə cəlb olunan əmlakın CƏMİ dəyəri:"
|
||||||
|
let total_row = null;
|
||||||
|
const other_rows = [];
|
||||||
|
|
||||||
|
frm.doc.elave_2.forEach(row => {
|
||||||
|
const category = row.vergiyəcəlbolunanəmlaklarınkateqoriyası || '';
|
||||||
|
|
||||||
|
if (category === 'Vergiyə cəlb olunan əmlakın CƏMİ dəyəri:') {
|
||||||
|
total_row = row;
|
||||||
|
} else {
|
||||||
|
// Все остальные строки для суммирования
|
||||||
|
other_rows.push(row);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Если нет итоговой строки, ничего не делаем
|
||||||
|
if (!total_row) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Суммируем все числовые поля из всех строк (кроме итоговой)
|
||||||
|
const fields_to_sum = [
|
||||||
|
'hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri', // 501.1
|
||||||
|
'ləğvolunmatarxinəə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
|
||||||
|
];
|
||||||
|
|
||||||
|
fields_to_sum.forEach(field => {
|
||||||
|
let total = 0;
|
||||||
|
other_rows.forEach(row => {
|
||||||
|
total += flt(row[field]);
|
||||||
|
});
|
||||||
|
|
||||||
|
frappe.model.set_value(total_row.doctype, total_row.name, field, total);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function reload_property_tax_data(frm) {
|
function reload_property_tax_data(frm) {
|
||||||
// Validate required fields
|
// Validate required fields
|
||||||
if (!frm.doc.il) {
|
if (!frm.doc.il) {
|
||||||
|
|
@ -245,9 +337,12 @@ function update_child_table_values(frm, table_name, data_map) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// After updating all rows, recalculate binalar totals for elave_2
|
// After updating all rows, recalculate totals
|
||||||
if (table_name === 'elave_2') {
|
if (table_name === 'elave_2') {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
|
} else if (table_name === 'elave_1') {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -261,23 +356,29 @@ frappe.ui.form.on('Property tax return Elave 2', {
|
||||||
// При изменении любого числового поля - пересчитать totals
|
// При изменении любого числового поля - пересчитать totals
|
||||||
hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
},
|
},
|
||||||
ləğvolunmatarxinəəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
ləğvolunmatarxinəəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
},
|
},
|
||||||
hesabatilierzindeuçotaalınan: function(frm, cdt, cdn) {
|
hesabatilierzindeuçotaalınan: function(frm, cdt, cdn) {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
},
|
},
|
||||||
hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
hesabatilinsonunaəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
},
|
},
|
||||||
artıqqiymətəəsasvəsaitlərindəyəri505: function(frm, cdt, cdn) {
|
artıqqiymətəəsasvəsaitlərindəyəri505: function(frm, cdt, cdn) {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
},
|
},
|
||||||
|
|
||||||
// При удалении строки - пересчитать
|
// При удалении строки - пересчитать
|
||||||
elave_2_remove: function(frm, cdt, cdn) {
|
elave_2_remove: function(frm, cdt, cdn) {
|
||||||
calculate_binalar_totals(frm);
|
calculate_binalar_totals(frm);
|
||||||
|
calculate_elave_2_totals(frm);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -286,5 +387,27 @@ frappe.ui.form.on('Property tax return Elave 1', {
|
||||||
form_render: function(frm, cdt, cdn) {
|
form_render: function(frm, cdt, cdn) {
|
||||||
// Скрыть колонку при рендеринге формы строки
|
// Скрыть колонку при рендеринге формы строки
|
||||||
toggle_field_readonly(frm);
|
toggle_field_readonly(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
// При изменении любого числового поля - пересчитать totals
|
||||||
|
hesabatilininəvvəlinəəsasvəsaitlərinqalıqdəyərimanatla5012: function(frm, cdt, cdn) {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
|
},
|
||||||
|
ləğvolunmatarxinəəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
|
},
|
||||||
|
hesabatiližrzindəəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
|
},
|
||||||
|
ilinsonunaəsasvəsaitlərinqalıqdəyəri: function(frm, cdt, cdn) {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
|
},
|
||||||
|
artıqqiymətəəsasvəsaitlərindəyəri: function(frm, cdt, cdn) {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
|
},
|
||||||
|
|
||||||
|
// При удалении строки - пересчитать
|
||||||
|
elave_1_remove: function(frm, cdt, cdn) {
|
||||||
|
calculate_elave_1_totals(frm);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Loading…
Reference in New Issue