tax article date changed

This commit is contained in:
Ali 2025-11-05 15:19:41 +04:00
parent 5ef7666ad8
commit 4da6bf8bcf
2 changed files with 4 additions and 106 deletions

View File

@ -1,68 +1,7 @@
frappe.ui.form.on('Tax Article', {
// Инициализация: сохраняем начальные значения
refresh: function(frm) {
store_last_values(frm);
},
// При изменении date_from
date_from: function(frm) {
if (!frm._is_calculating) {
frm._is_calculating = true;
if (frm.doc.date_from && frm.doc.date_to) {
// Если есть date_to, всегда пересчитываем duration
calculate_duration(frm);
// Валидация
validate_dates(frm);
}
store_last_values(frm);
frm._is_calculating = false;
}
},
// При изменении date_to
date_to: function(frm) {
if (!frm._is_calculating) {
frm._is_calculating = true;
if (frm.doc.date_to && frm.doc.date_from) {
// Валидация
if (validate_dates(frm)) {
// Пересчитываем duration
calculate_duration(frm);
}
}
store_last_values(frm);
frm._is_calculating = false;
}
},
// При изменении duration
duration: function(frm) {
if (!frm._is_calculating) {
frm._is_calculating = true;
if (frm.doc.duration && frm.doc.date_from) {
// Пересчитываем date_to
calculate_date_to(frm);
// Валидация
validate_dates(frm);
}
store_last_values(frm);
frm._is_calculating = false;
}
},
// Валидация перед сохранением
validate: function(frm) {
if (frm.doc.date_from && frm.doc.date_to) {
validate_dates(frm);
}
calculate_date_to(frm);
}
});
@ -75,46 +14,4 @@ function calculate_date_to(frm) {
to_date.setFullYear(to_date.getFullYear() + frm.doc.duration);
frm.set_value('date_to', frappe.datetime.obj_to_str(to_date));
}
// Рассчитать duration на основе date_from и date_to
function calculate_duration(frm) {
if (!frm.doc.date_from || !frm.doc.date_to) return;
let from_date = frappe.datetime.str_to_obj(frm.doc.date_from);
let to_date = frappe.datetime.str_to_obj(frm.doc.date_to);
// Рассчитываем разницу в годах
let years = (to_date - from_date) / (365.25 * 24 * 60 * 60 * 1000);
let rounded_years = Math.round(years);
frm.set_value('duration', rounded_years);
}
// Валидация: date_to должна быть >= date_from
function validate_dates(frm) {
if (!frm.doc.date_from || !frm.doc.date_to) return true;
let from_date = frappe.datetime.str_to_obj(frm.doc.date_from);
let to_date = frappe.datetime.str_to_obj(frm.doc.date_to);
if (to_date < from_date) {
frappe.msgprint({
title: __('Invalid Date Range'),
indicator: 'red',
message: __('Date To cannot be earlier than Date From')
});
return false;
}
return true;
}
// Сохранить текущие значения полей
function store_last_values(frm) {
frm._last_values = {
date_from: frm.doc.date_from,
date_to: frm.doc.date_to,
duration: frm.doc.duration
};
}

View File

@ -99,13 +99,14 @@
{
"fieldname": "date_to",
"fieldtype": "Date",
"label": "Date To"
"label": "Date To",
"read_only": 1
}
],
"index_web_pages_for_search": 1,
"is_tree": 1,
"links": [],
"modified": "2025-10-31 17:17:26.936793",
"modified": "2025-11-05 15:17:12.899246",
"modified_by": "Administrator",
"module": "Taxes Az",
"name": "Tax Article",