Показать сообщение отдельно
Старый 11.04.2009, 14:28   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Стандарт пересчитывает цены и скидки, ориентируясь на системную дату. Поэтому ,если текущая дата устраивает, достаточно пробежаться по строкам заказа, установив системную дату, и вызвать метод строки заказа setPriceDisc.
Но, часто бывает, что цены и скидки нужно устанавливать по какой-то заданной дате (дате заказа на продажу, дате предложения, дате договора и т.п.). В этом случае придется модифицировать приложение. В частности, нужно протягивать дату в следующих местах (список не полный):
- Класс PriceDisc, метод newFromSalesPurchLine добавить параметр даты (дать ему значение по умолчанию systemDateGet()) и при создании PriceDisc вместо systemDateGet() передавать параметр
- Map SalesPurchLine, метод setPriceAgreement добавить параметр с датой, передавать его в метод newFromSalesPurchLine класса PriceDisc.
- В методе setPriceAgreement таблицы salesLine передавать дату, которую получаем по условиям работы с конкретным клиентом.
В частности, в качестве дополнения к этому механизму нужно будет менять функционал планирования продаж - там тоже рассчитываются цены и скидки.
В итоге - если есть возможность, то лучше менять системную дату перед расчетом.
За это сообщение автора поблагодарили: Starling (1).