Руководство по настройке Optima:Пример настройки калькуляции заказа
20.3. Пример настройки калькуляции заказа
В качестве примера расчёта стоимости заказа возьмём следующую формулу:
- СтЗак = СтИздСк + СтДопЗакСк + СтУслЗакСк,
где:
- СтЗак — итоговая стоимость заказа (у. е.);
- СтИздСк — сумма стоимостей всех изделий в заказе с учётом их количества и скидки на заказ (у. е.);
- СтДопЗакСк — сумма стоимостей дополнений к заказу с учётом скидки на дополнения к заказу (у. е.);
- СтУслЗакСк — сумма стоимостей услуг к заказу с учётом скидки на услуги к заказу (у. е.).
Перед вводом элементов калькуляции заказа нужно ввести необходимые параметры в разделе Параметры и переменные в части Калькуляция заказа (см. Параметры и переменные). Эти параметры сведены в табл. 4.8.
Таблица 4.8. Параметры для калькуляции заказа
Параметр | Встроенная функция | Описание |
---|---|---|
СтИзд | SumItemPriceAll | Сумма стоимостей изделий в заказе. |
СкЗакПр | OrdDiscountPrc | Скидка на заказ в процентах. |
СкЗакВл | OrdDiscount | Скидка на заказ в валюте. |
СтДопЗак | SumAddPrice | Стоимость дополнений к заказу. |
СкДопПр | OrdAddDiscountPrc | Скидка на дополнения к заказу в процентах. |
СкДопВл | OrdAddDiscount | Скидка на дополнения к заказу в валюте. |
СтУслЗак | SumServicePrice | Стоимость услуг к заказу. |
СкУслПр | OrdServDiscountPrc | Скидка на услуги к заказу в процентах. |
СкУслВл | OrdServDiscount | Скидка на услуги к заказу в валюте. |
Данные для настройки калькуляции заказа сведены в табл. 4.9. Элементы калькуляции с незаполненным полем Сокращение позволяют выводить справочную информацию. Доступ к ним из других элементов калькуляции невозможен.
Таблица 4.9. Пример калькуляции заказа
Номер | Наименование | Сокращение | Формула вычисления | Условие выполнения |
---|---|---|---|---|
10 | Стоимость всех изделий в заказе | СтИзд | Выполняется всегда | |
20 | Скидка на заказ | СкЗак | СкЗакВл + СтИзд * СкЗакПр / 100 | Выполняется всегда |
30 | Стоимость всех изделий со скидкой | СтИздСк | СтИзд — СкЗак | Выполняется всегда |
110 | Стоимость дополнений к заказу | СтДопЗак | Выполняется всегда | |
120 | Скидка на дополнения к заказу | СкДопЗак | СкДопВл + СтДопЗак * СкДопПр / 100 | Выполняется всегда |
130 | Стоимость дополнений к заказу со скидкой | СтДопЗакСк | СтДопЗак - СкДопЗак | Выполняется всегда |
210 | Стоимость услуг к заказу | СтУслЗак | Выполняется всегда | |
220 | Скидка на услуги к заказу | СкУслЗак | СкУслВл + СтУслЗак * СкУслПр / 100 | Выполняется всегда |
230 | Стоимость услуг к заказу со скидкой | СтУслЗакСк | СтУслЗак — СкУслЗак | Выполняется всегда |
500 | Итоговая стоимость заказа | СтЗак | СтИздСк + СтДопЗакСк + СтУслЗакСк | Выполняется всегда |
В результате после расчета заказа мы получим следующее:
Если при расчёте заказа будут обнаружены ошибки, то будет выведено соответствующее предупреждение, в котором будет приведён текст ошибочной формулы.
Пример настройки калькуляции для опытных пользователей
Реализуем модель калькуляции заказа из предыдущего примера, но с использованием встроенного макроязыка и с некоторыми дополнениями. Формулу для калькуляции заказа возьмём такую же:
- СтЗак = СтИздСк + СтДопЗакСк + СтУслЗакСк.
Помимо этого вычислим процент отчислений менеджеру, который рассчитывает заказ, в зависимости от его должности. Например, если это Старший менеджер, то ему положен 1 % от итоговой стоимости заказа, а если Младший менеджер — 0,5 % от итоговой стоимости заказа. На итоговую стоимость заказа эти отчисления не влияют. Но эти отчисления необходимо рассчитывать если суммарная площадь всех изделий в заказе превышает 100 м².
Для этого в разделе Должности на закладке «Пользователи» заведём соответствующие должности, а в разделе Параметры и переменные в дополнение к переменным, описанным в табл. 4.8, заведём следующие параметры (табл. 4.10).
Таблица 4.10. Дополнительные параметры для калькуляции заказа
Параметр | Формула вычисления значения | Описание |
---|---|---|
ДолжПольз | UserPos | Должность пользователя. |
ПлЗак | sumArea:=0; FOR i:=Low(Items) TO High(Items) DO sumArea:=sumArea+Items[i].Area; |
Сумма площадей всех изделий в заказе. |
Данные для настройки калькуляции заказа с использованием макроязыка сведены в табл. 4.11.
Таблица 4.11. Пример калькуляции заказа с использованием макроязыка
Номер | Наименование | Сокращение | Формула вычисления | Условие выполнения |
---|---|---|---|---|
10 | Стоимость всех изделий в заказе | СтИзд | Выполняется всегда | |
20 | Скидка на заказ | СкЗак | СкЗакВл + СтИзд * СкЗакПр/100 |
Выполняется всегда |
30 | Стоимость всех изделий со скидкой | СтИздСк | СтИзд — СкЗак | Выполняется всегда |
110 | Стоимость дополнений к заказу | СтДопЗак | Выполняется всегда | |
120 | Скидка на дополнения к заказу | СкДопЗак | СкДопВл + СтДопЗак * СкДопПр / 100 | Выполняется всегда |
130 | Стоимость дополнений к заказу со скидкой | СтДопЗакСк | СтДопЗак — СкДопЗак | Выполняется всегда |
210 | Стоимость услуг к заказу | СтУслЗак | Выполняется всегда | |
600 | Процент менеджера. | ПрМн | prc:=0; IF ДолжнПольз= 'Старший менеджер' THEN prc:=СтЗак*0.01; IF ДолжнПольз= 'Младший менеджер' THEN prc:=СтЗак*0.005; Result:=prc; |
ПлЗак > 100 |
1000 | Итоговая стоимость заказа. | ИтогЗак | СтЗак | Выполняется всегда |
Элемент калькуляции Процент менеджера удобнее завести в отдельной папке (например, Зарплата) для последующей обработки результата. |
Ввод формул расчёта рекомендуется производить при помощи дизайнера выражений и условий (см. рис. 4.17). Работа с дизайнером описана на Дизайнер выражений и условий.