From 7673a12027e090e695de25be1978fe5821003cb7 Mon Sep 17 00:00:00 2001 From: cursor-agent Date: Thu, 26 Feb 2026 12:34:58 +0000 Subject: [PATCH] =?UTF-8?q?Fix:=20=D0=BF=D0=BE=D0=BB=D0=B5=20=D0=A6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D1=8F=D0=B5?= =?UTF-8?q?=D1=82=20=D0=B2=D0=B2=D0=BE=D0=B4=20=D1=81=20=D0=BA=D0=BB=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=B0=D1=82=D1=83=D1=80=D1=8B=20(=D1=83=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B2=20inp?= =?UTF-8?q?ut=20type=3Dnumber)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- HISTORY.md | 12 ++++++++++ app/templates/documents/order_form.html | 22 ------------------- .../documents/supplier_order_form.html | 22 ------------------- 3 files changed, 12 insertions(+), 44 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index c009313..7c59ee6 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,6 +2,18 @@ # История изменений ERP WaterSurf +## 2025-02-25 22:45 UTC – Поле «Цена»: ввод с клавиатуры сохраняется + +**Проблема**: В табличной части заказа в поле «Цена» сохранялось только изменение стрелками вверх/вниз, введённое с клавиатуры значение не сохранялось. + +**Причина**: При blur в поле подставлялось отформатированное значение с пробелами («1 851 635.00»). Для `input type="number"` такие значения недопустимы, браузер сбрасывал поле. + +**Решение**: Форматирование с пробелами убрано из самого поля «Цена». Разделитель разрядов остаётся только в ячейке «Стоимость» (обновляется по input). Обработчики blur/focus для поля цены и начальное форматирование при загрузке удалены в order_form.html и supplier_order_form.html. Перед отправкой формы по-прежнему выполняется удаление пробелов из значений цены. + +**Изменения**: documents/order_form.html, documents/supplier_order_form.html. + +--- + ## 2025-02-25 22:40 UTC – Убрана горизонтальная полоса прокрутки в таблице товаров **Проблема**: В табличной части заказа по-прежнему отображалась горизонтальная полоса прокрутки. diff --git a/app/templates/documents/order_form.html b/app/templates/documents/order_form.html index 7debfdb..bd630f8 100644 --- a/app/templates/documents/order_form.html +++ b/app/templates/documents/order_form.html @@ -124,27 +124,12 @@ form.addEventListener('input', updateRowAmounts); - form.querySelectorAll('#order-items input[name$="-price"]').forEach(function(input) { - input.addEventListener('blur', function() { - var v = parseNum(this.value); - if (!isNaN(v) && this.value.trim() !== '') this.value = formatNum(v).replace(',', '.'); - }); - input.addEventListener('focus', function() { - this.value = String(this.value).replace(/\s/g, '').replace(',', '.'); - }); - }); form.addEventListener('submit', function() { form.querySelectorAll('input[name$="-price"]').forEach(function(input) { input.value = String(input.value).replace(/\s/g, '').replace(',', '.'); }); }); - document.querySelectorAll('#order-items input[name$="-price"]').forEach(function(input) { - if (input.value && input.value.trim() !== '') { - var v = parseNum(input.value); - input.value = formatNum(v).replace(',', '.'); - } - }); updateRowAmounts(); document.getElementById('add-order-row').addEventListener('click', function() { @@ -170,13 +155,6 @@ }); var amountCell = clone.querySelector('.row-amount'); if (amountCell) amountCell.textContent = '—'; - clone.querySelector('input[name$="-price"]')?.addEventListener('blur', function() { - var v = parseNum(this.value); - if (!isNaN(v) && this.value.trim() !== '') this.value = formatNum(v).replace(',', '.'); - }); - clone.querySelector('input[name$="-price"]')?.addEventListener('focus', function() { - this.value = String(this.value).replace(/\s/g, '').replace(',', '.'); - }); tbody.appendChild(clone); totalInput.value = nextIndex + 1; }); diff --git a/app/templates/documents/supplier_order_form.html b/app/templates/documents/supplier_order_form.html index 0980a4a..3256a98 100644 --- a/app/templates/documents/supplier_order_form.html +++ b/app/templates/documents/supplier_order_form.html @@ -130,27 +130,12 @@ form.addEventListener('input', updateRowAmounts); - form.querySelectorAll('#supplier-order-items input[name$="-price"]').forEach(function(input) { - input.addEventListener('blur', function() { - var v = parseNum(this.value); - if (!isNaN(v) && this.value.trim() !== '') this.value = formatNum(v).replace(',', '.'); - }); - input.addEventListener('focus', function() { - this.value = String(this.value).replace(/\s/g, '').replace(',', '.'); - }); - }); form.addEventListener('submit', function() { form.querySelectorAll('input[name$="-price"]').forEach(function(input) { input.value = String(input.value).replace(/\s/g, '').replace(',', '.'); }); }); - document.querySelectorAll('#supplier-order-items input[name$="-price"]').forEach(function(input) { - if (input.value && input.value.trim() !== '') { - var v = parseNum(input.value); - input.value = formatNum(v).replace(',', '.'); - } - }); updateRowAmounts(); document.getElementById('add-supplier-order-row').addEventListener('click', function() { @@ -176,13 +161,6 @@ }); var amountCell = clone.querySelector('.row-amount'); if (amountCell) amountCell.textContent = '—'; - clone.querySelector('input[name$="-price"]')?.addEventListener('blur', function() { - var v = parseNum(this.value); - if (!isNaN(v) && this.value.trim() !== '') this.value = formatNum(v).replace(',', '.'); - }); - clone.querySelector('input[name$="-price"]')?.addEventListener('focus', function() { - this.value = String(this.value).replace(/\s/g, '').replace(',', '.'); - }); tbody.appendChild(clone); totalInput.value = nextIndex + 1; });