1b.app
Скопирована ссылка -

Система не фіксує в історію зміни продукта якщо додали спереду 0 або прибрали в полі артикул

Ось історія зміни по товару https://baza.cn.ua/admin/shop/products/64906/history/?userid=&filter2_key=va...
По товару робили зміну поля артикул
Артикул був спочатку "785641001" додали "0" ось так "0785641001"
В історії система цього не зафіксувала
Коли додали "0785641001+" в артикул історію зберегло
Прошу виправити помилку, або описати чому система себе так веде

Ответы:

при записи истории изменений используется не строгое сравнение старого и нового значений
https://www.php.net/manual/ru/language.operators.comparison.php - собственно при сравнении "785641001" = "0785641001" так как считает обе строки равнозначными числами
19.11.2021, 16:18

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)

Тындык Максим Вадимович

OneBox production писал/а:
при записи истории изменений используется не строгое сравнение старого и нового значений
https://www.php.net/manual/ru/language.operators.comparison.php - собственно при сравнении "785641001" = "0785641001" так как считает обе строки равнозначными числами

У вас помилка в коді, ви використовуєте "Сравнение типов", а треба порівнювати не "число" з "строкой", а треба порівнювати "сроку" з "строкой" и тоді ці значення будуть не рівнозначними, виправте помилку або напишіть чому ви приводите артикул до числового типу, якщо це "строка"
19.11.2021, 16:58


У вас помилка в коді, ви використовуєте "Сравнение типов", а треба порівнювати не "число" з "строкой", а треба порівнювати "сроку" з "строкой" и тоді ці значення будуть не рівнозначними, виправте помилку або напишіть чому ви приводите артикул до числового типу, якщо це "строка"

Ещё раз - используется не строгое сравнение - в таком случае язык данные 2 значения равнозначны как числа. Это сделано специально, чтобы не засорять историю сравнения по типу "0 = 0.00", "1.1 = 1.10" и т.д.
Если вас подобное не устраивает - без проблем, мы можем для вас доработать настройку чтобы у вас было строгое сравнение - это займёт 3 часа (продукты / процессы / контакты). Ответственность за "мусор" в истории (по примеру вышеуказанного) остаётся за вами.

P.S.: если Вы утверждаете об ошибке, что что-то должно работать иначе - аргументируйте это какой-либо технической документацией (как минимум техническим заданием на разработку функционала). В противном случае ваша "логика" является не более, чем вашей потребностью.
22.11.2021, 12:30

Куприян Владислав Валерьевич
Baza.cn.ua / Integrator (FOP Kupriyan)
Ви можете пояснити чому ви використовуєте логіку для числових полів в строкових полях і чому ми тоді не використовуєте цю логіку в фільтрах ?

Якось просто виходить нелогічно, артикул це "строка" не "число", для чого використовувати тут порівняння для числових полів незрозуміло
24.11.2021, 12:04


Ви можете пояснити чому ви використовуєте логіку для числових полів в строкових полях і чому ми тоді не використовуєте цю логіку в фільтрах ?

Я уже указал как работает функционал.

Якось просто виходить нелогічно, артикул це "строка" не "число", для чого використовувати тут порівняння для числових полів незрозуміло

Логика - абстрактное понятие, которое в большинстве случаев основывается лишь на восприятии конкретной индивидуума той или иной ситуации.
Выше я предложил вам решение, указав на возможные последствия - вы в праве пойти путём его реализации или нет.

P.S: у вас коробочная версия продукта (по модели AS IS) - и то, что вам кажется "не логичным" не означает, что работает не правильно или должно работать иначе.
24.11.2021, 15:35

Пожалуйста, присоединяйтесь к диалогу. Если вам есть что сказать - пожалуйста, напишите комментарий. Для входа потребуется мобильный телефон и смс-код для идентификации. Войти и написать комментарий