Показать сообщение отдельно
Старый 14.12.2005, 19:06   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Регистрация: 20.08.2005
Обратите внимание - класс PriceDisc, метод findDisc()

X++:
    while select priceDiscTable
        index [u]PriceDiscIdx[/u]  // equals order by QuantityAmount
        where ...
В индекс PriceDiscIdx входит поле FromDate - дата начала действия скидки. Если не указывать дату в этом поле, то в таблицу запишется значение "01.01.1900". Т.е. при прочих равных условиях будет выбрана первой запись без срока начала действия. Из нее и выберется скидка.

Либо разбивайте бессрочную скидку на две - одна действует до начала (например, 28.02.2005), а другая - после начала (например, 02.03.2006) дополнительной скидки.

Либо настройте дополнительную скидку таким образом, чтобы значение одного из полей, входящих в индекс, было меньше чем для бессрочной (если это возможно)
__________________
Axapta v.3.0 sp5 kr2