Исправлен баг: "Первичный прием": не вводятся строчные буквы наименования изделия.
Раньше было так: пользователь вводил 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