Для магазина полиграфических услуг ООО "Полиграфмастер" потребовался калькулятор расчета стоимости тиража. Я взял наш типовой калькулятор из Marketplace, но оказалось, что применить его для этой задачи без переделки невозможно. Порядок расчета был задан заказчиком вот так:
Как видно требовался расчет по формуле. Но это еще "полбеды". Основная "беда" была в таблице связей коэффициентов. Надо было реализовать логику при которой выбор значений в одном поле - изменял возможность выбора значений в другом. Стало ясно, что универсальный калькулятор далеко не так универсален, как хотелось бы.
Формулу удалось реализовать довольно просто и изящно. Добавил свойство следующего содержания: (K_1*K_4+40+K_2+K_3)*K_5, где K_1 ... N префиксы символьных кодов соответствующих свойств-коэффициентов, а вот с зависимыми полями пришлось попотеть...
В результате родился такой монстр к описанию поля Тип переплета (K2): fr=3&fra=dws&frf=3:1,2;5:1,2&fd=pereplet, что в переводе означает: fr (field relation) = 3 - услуга K_2 имеет связь с услугой K_3 fra (field relation action) = dws - действие по связи - скрыть, когда выбрано (dws - disabled when selected) frf (field relation field) = 3:1,2;5:1,2 - поля 3 и 5 услуги 2 связываются с полями 1 и 2 услуги 3 fd (field dictionary) = pereplet - услуга K_2 связывается со справкой в полиграфическом справочнике с кодом "pereplet" (раздел с кодом "pereplet";)
Вот так выкрутился. Полный скриншот настройки - приведен ниже. Там есть еще одна настройка fc (field check ) =int, что означает провести проверку поля на целое значение.
В общем появился повод серьезно задуматься над качественной и системной переработкой инструментария калькулятора, чтобы он оправдывал свое гордое название "универсальный".
Количество проверок было в рамках бюджета сайта И так я не ожидал, что вот такое придется строить, поэтому промахнулся в оценке трудоемкости. Проверки, по идее, надо делать какой-то стандартизованной библиотекой, например jquery.validate, но ведь еще и кастомные проверки могут быть, особенно по связанным полям. У меня пока архитектура не сложилась в голове как подключать кастомные проверки.
У Вас ведь есть в скрипте проверка на isNaN, судя по выпадающему alert, может стоит сделать тот же текст, что и в alert'е вместо NaN руб. = 1 экз. х NaN руб./экз. Не думаю, что типичный заказчик типографии осознает всю глубину NaN
Проблема в том, что еще калькулятор никак не хочет выводить количество элементов - перекопал весь код, но этот параметр он просто игнорирует. Может есть возможность посмотреть как этот функционал переделан на новом примере?
и еще на сайте примере обновленного калькулятора я заметил интересную штуку - отправить. Отправлять нам, наверное, не надо, а вот сохранить, например, в pdf было бы круто )
Здравствуйте, я тоже не понял про "то, что в параметрах калькулятора значится как "Отображать поле количества расч. единиц? (Нет=1)". Как можно ввести количество услуг?
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».