Changeset 609 in base

Timestamp:
Jul 13, 2026, 3:38:25 PM (3 days ago)
Author:
Denis_N
Message:

Исправлен баг: "Первичный прием": не вводятся строчные буквы наименования изделия.

Раньше было так: пользователь вводил ve-02, и JS сразу переписывал содержимое поля в VE-02 через .toUpperCase(). Поэтому backend получал уже измененное значение, проверял его строгим запросом where name = ?, а в products сохранялся $_POSTname. То есть корректность держалась на том, что frontend заранее насильно приводил ввод к верхнему регистру.

Сейчас поле Название изделия больше не переписывается. Если пользователь ввел ve-02, он визуально так и видит ve-02. Но при заполнении Тип и при сохранении система ищет соответствие в list_of_products: сначала точное совпадение, затем единственное совпадение без учета регистра. Если такое совпадение найдено, backend берет каноническое имя из справочника, например VE-02, и именно его сохраняет в products.name.

Если в list_of_products есть два разных справочных имени Ve-02 и vE-02, а пользователь вручную вводит ve-02, то сохранения не будет.
Почему: точного совпадения с ve-02 нет, а поиск без учета регистра найдет сразу два варианта: Ve-02 и vE-02. Это неоднозначность, поэтому backend вернет текущую ошибку “Некорректно введено название изделия”, и произвольное имя в products не попадет.

close #1436

(No files)

Note: See TracChangeset for help on using the changeset viewer.