Fixed bug with tax exempt area

This commit is contained in:
Ali 2025-10-27 15:55:53 +04:00
parent 3ff83212ec
commit 482db61cf7
2 changed files with 16 additions and 8 deletions

View File

@ -82,7 +82,6 @@ function process_agricultural_assets_silent(frm, table_fieldname, assets, resolv
unique_purposes.forEach(purpose_id => {
console.log(`Загрузка данных для назначения ID: "${purpose_id}"`);
// ИСПРАВЛЕНО: Используем frappe.client.get и ищем по name (ID)
frappe.call({
method: 'frappe.client.get',
args: {
@ -228,7 +227,6 @@ function create_agricultural_row_with_calculation_silent(frm, table_fieldname, a
fill_agricultural_row_fields(row, asset, agricultural_purposes, total_area, group_info);
console.log('Поля строки заполнены:', row);
// ИСПРАВЛЕНО: Передаем agricultural_purposes в функцию расчета
calculate_agricultural_tax_for_row_silent(row, asset, total_area, group_info, callback, agricultural_purposes);
}
@ -275,7 +273,6 @@ function fill_agricultural_row_fields(row, asset, agricultural_purposes, total_a
if (total_area > 0) {
row.torpaqsahəsi6001kodlarüzrəkvmetrlə6002kodlarüzrəhektarlaümumi = total_area;
// ИСПРАВЛЕНО: Определяем единицу измерения из purpose_name
let unit = 'единиц';
if (asset.agricultural_purpose && agricultural_purposes[asset.agricultural_purpose]) {
let purpose_name = agricultural_purposes[asset.agricultural_purpose].purpose_name;
@ -292,7 +289,6 @@ function fill_agricultural_row_fields(row, asset, agricultural_purposes, total_a
function calculate_agricultural_tax_for_row_silent(row, asset, total_area, group_info, callback, agricultural_purposes) {
console.log('=== calculate_agricultural_tax_for_row_silent ===');
// ИСПРАВЛЕНО: Получаем purpose_name из agricultural_purposes
let agricultural_purpose_name = null;
if (asset.agricultural_purpose && agricultural_purposes && agricultural_purposes[asset.agricultural_purpose]) {
agricultural_purpose_name = agricultural_purposes[asset.agricultural_purpose].purpose_name;
@ -319,7 +315,7 @@ function calculate_agricultural_tax_for_row_silent(row, asset, total_area, group
cadastral_district_name: asset.cadastral_district_name,
quality_groups: asset.quality_groups,
agricultural_land_purpose: asset.agricultural_land_purpose,
agricultural_purpose_name: agricultural_purpose_name // ИСПРАВЛЕНО: Теперь это текст
agricultural_purpose_name: agricultural_purpose_name
},
callback: function(response) {
console.log('Результат расчета налога:', response);
@ -412,6 +408,7 @@ function group_and_create_industrial_rows_silent(frm, table_fieldname, assets, r
grouped_assets[group_key] = {
asset: asset,
total_area: 0,
total_tax_exempt_area: 0, // ← ДОБАВЛЕНО
count: 0,
asset_names: []
};
@ -419,6 +416,7 @@ function group_and_create_industrial_rows_silent(frm, table_fieldname, assets, r
}
grouped_assets[group_key].total_area += (asset.area || 0);
grouped_assets[group_key].total_tax_exempt_area += (asset.tax_exempt_area || 0); // ← ДОБАВЛЕНО
grouped_assets[group_key].count += 1;
grouped_assets[group_key].asset_names.push(asset.name);
});
@ -431,6 +429,7 @@ function group_and_create_industrial_rows_silent(frm, table_fieldname, assets, r
console.log(`Группа "${key}":`, {
количество_активов: group.count,
общая_площадь: group.total_area,
tax_exempt_area: group.total_tax_exempt_area, // ← ДОБАВЛЕНО
активы: group.asset_names
});
});
@ -473,6 +472,7 @@ function create_industrial_group_key(asset) {
function create_industrial_row_with_calculation_silent(frm, table_fieldname, asset, total_area, group_info, callback) {
console.log('=== create_industrial_row_with_calculation_silent ===');
console.log('Актив:', asset.name, 'Общая площадь:', total_area, 'кв.м');
console.log('Tax-exempt площадь:', group_info.total_tax_exempt_area, 'кв.м'); // ← ДОБАВЛЕНО
let row = frm.add_child(table_fieldname);
console.log('Строка добавлена в таблицу');
@ -518,6 +518,12 @@ function fill_industrial_row_fields(row, asset, total_area, group_info) {
row.torpaqsahəsikvmetrləümumisahə = total_area;
console.log('Общая площадь:', total_area, 'м²');
}
// ← ДОБАВЛЕНО: Заполнение tax_exempt_area
if (group_info.total_tax_exempt_area > 0) {
row.torpaqsahəsikvmetrləocümlədənvergiyəcəlbolunmayansahə = group_info.total_tax_exempt_area;
console.log('Tax-exempt площадь:', group_info.total_tax_exempt_area, 'м²');
}
}
function calculate_industrial_tax_for_row_silent(row, asset, total_area, group_info, callback) {

View File

@ -468,7 +468,7 @@ def get_assets_for_year(asset_type, year):
'cadastral_district_code',
'quality_groups',
'agricultural_land_purpose',
'area', # ← ИЗМЕНЕНО с hectare на area
'area',
'purchase_date'
]
asset_type_short = "Сельхоз земли"
@ -480,7 +480,8 @@ def get_assets_for_year(asset_type, year):
'territorial_unit_code',
'industrial_land_purpose',
'mining_note',
'area', # ← ИЗМЕНЕНО с hectare на area
'area',
'tax_exempt_area', # ← ДОБАВЛЕНО
'purchase_date'
]
asset_type_short = "Промышленные земли"
@ -508,7 +509,8 @@ def get_assets_for_year(asset_type, year):
if purchase_year == target_year:
filtered_assets.append(asset)
area_value = asset.get('area', 0)
frappe.log_error("Asset Matched", f"Актив подходит: {asset['name']} (дата: {asset['purchase_date']}, площадь: {area_value})")
tax_exempt = asset.get('tax_exempt_area', 0)
frappe.log_error("Asset Matched", f"Актив подходит: {asset['name']} (дата: {asset['purchase_date']}, площадь: {area_value}, tax_exempt: {tax_exempt})")
else:
skipped_wrong_year += 1
frappe.log_error("Asset Skipped", f"Актив пропущен: {asset['name']} (год: {purchase_year}, нужен {target_year})")