30.03.2012 г.

Калькулятор услуг. Модернизация.

Для магазина полиграфических услуг ООО "Полиграфмастер" потребовался калькулятор расчета стоимости тиража. Оказалось, что для этой задачи штатных возможностей нашего типового калькулятора из 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 — еще одна настройка, не указанная в этом списке, используется в поле «Количество» и означает; — «Провести проверку поля на целое значение.»

«Пощелкать», как получилось в результате, можно здесь: http://printalbum.ru/products/album/.
Полный скриншот настройки приведен на рис. 1. ниже.

Рис. 1. Настройки полей в административном интерфейсе.


Опубликовано на сайте:
30.03.12