Стандарт пересчитывает цены и скидки, ориентируясь на системную дату. Поэтому ,если текущая дата устраивает, достаточно пробежаться по строкам заказа, установив системную дату, и вызвать метод строки заказа setPriceDisc.
Но, часто бывает, что цены и скидки нужно устанавливать по какой-то заданной дате (дате заказа на продажу, дате предложения, дате договора и т.п.). В этом случае придется модифицировать приложение. В частности, нужно протягивать дату в следующих местах (список не полный):
- Класс PriceDisc, метод newFromSalesPurchLine добавить параметр даты (дать ему значение по умолчанию systemDateGet()) и при создании PriceDisc вместо systemDateGet() передавать параметр
- Map SalesPurchLine, метод setPriceAgreement добавить параметр с датой, передавать его в метод newFromSalesPurchLine класса PriceDisc.
- В методе setPriceAgreement таблицы salesLine передавать дату, которую получаем по условиям работы с конкретным клиентом.
В частности, в качестве дополнения к этому механизму нужно будет менять функционал планирования продаж - там тоже рассчитываются цены и скидки.
В итоге - если есть возможность, то лучше менять системную дату перед расчетом.
|