diff --git a/taxes_az/taxes_az/doctype/tax_article/tax_article.js b/taxes_az/taxes_az/doctype/tax_article/tax_article.js index 9e6f0fc..82cc050 100644 --- a/taxes_az/taxes_az/doctype/tax_article/tax_article.js +++ b/taxes_az/taxes_az/doctype/tax_article/tax_article.js @@ -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 - }; } \ No newline at end of file diff --git a/taxes_az/taxes_az/doctype/tax_article/tax_article.json b/taxes_az/taxes_az/doctype/tax_article/tax_article.json index eeb1851..26f1aa9 100644 --- a/taxes_az/taxes_az/doctype/tax_article/tax_article.json +++ b/taxes_az/taxes_az/doctype/tax_article/tax_article.json @@ -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",