14.12.2005, 16:34 | #1 |
Участник
|
Скидка с датой.
Может уже обсуждалось...
Есть скидка у которой указан интервал: март 2006 - 5% Есть скидка у которой интервал не указан - 10% Логика: в марте 2006 запланировали клиенту отпускать по 5%, все остальное время по 10%. Но у меня не подставляется скидка в 5%, если я создаю заказ мартовской датой. В чем причина? |
|
14.12.2005, 17:16 | #2 |
Moderator
|
Для Аксапты относительно ваших настроек в марте действительны обе скидки, и она предлагает наиболее выгодную для клиента, о чем прямо указано в хелпе. Поиграйтесь с галочкой "Найти далее", а лучше задайте жесткие непересекающиеся интервалы дат.
__________________
Андрей. |
|
14.12.2005, 17:27 | #3 |
Участник
|
Цитата:
Сообщение от Dron AKA andy
Для Аксапты относительно ваших настроек в марте действительны обе скидки, и она предлагает наиболее выгодную для клиента
1. Почему должна Акса действовать с позиции выгоды клиента а не предприятия (по вашим словам)? 2. Меняя значения скидки местами происходит тоже самое; |
|
14.12.2005, 17:34 | #4 |
Moderator
|
Это я не рассуждаю, а пишу о реализации как есть. Номер соответствующей главы из "Управления торговлей и логистикой" не приведу, т.к. не помню.
Цитата:
Сообщение от slava09
Меняя значения скидки местами происходит тоже самое;
__________________
Андрей. |
|
14.12.2005, 17:43 | #5 |
Участник
|
Есть скидка у которой указан интервал: март 2006 - 10%
Есть скидка у которой интервал не указан - 5% Аксапта выбирает всеравно скидку 5% Вот что я имел ввиду. |
|
14.12.2005, 17:58 | #6 |
Участник
|
Цитата:
Сообщение от Dron AKA andy
Поиск другой сделки после нахождения первой попавшейся определяется упомянутой галочкой "Найти далее".
|
|
14.12.2005, 18:01 | #7 |
Moderator
|
Цитата:
Сообщение от slava09
Это не просто поиск, это суммирование скидок.
__________________
Андрей. |
|
14.12.2005, 18:32 | #8 |
Участник
|
Ну всетаки. Возвращаясь к теме.
По всей видимости Аксапта игнорирует скидку с интервалом, если есть скидка без интервала. Независимо выгодна ли она клиенту или нет. Но, если следовать такому логическому рассуждению, что скидка с интервалом должна уточнять условия в определенный интервал времени, то выходит что Аксапта работает не правильно. А если не следовать, то работает не понятно как Точнее, не так как я ожидал (я только про себя говорю). Последний раз редактировалось slava09; 14.12.2005 в 18:49. |
|
14.12.2005, 19:06 | #9 |
Участник
|
Обратите внимание - класс PriceDisc, метод findDisc()
X++: while select priceDiscTable index [u]PriceDiscIdx[/u] // equals order by QuantityAmount where ... Либо разбивайте бессрочную скидку на две - одна действует до начала (например, 28.02.2005), а другая - после начала (например, 02.03.2006) дополнительной скидки. Либо настройте дополнительную скидку таким образом, чтобы значение одного из полей, входящих в индекс, было меньше чем для бессрочной (если это возможно)
__________________
Axapta v.3.0 sp5 kr2 |
|
14.12.2005, 19:07 | #10 |
Участник
|
Сталкивался с такой ФИЧЕЙ на проекте. Спасло только создание 3-х строк с конкретными датами действия скидки. В код не лезли по определенным причинам.
__________________
ИМХО. С уважением, Владимир Ю. |
|
14.12.2005, 19:15 | #11 |
Модератор
|
Цитата:
Сообщение от slava09
Но, если следовать такому логическому рассуждению, что скидка с интервалом должна уточнять условия в определенный интервал времени, то выходит что Аксапта работает не правильно
У Вас текущая дата попадает в ДВА интервала - какой из них "правильнее" ? Где в документации можно почитать про принцип "уточнения" одного интервала другим ? А закладываться на Код: index PriceDiscIdx // equals order by QuantityAmount Код: order by QuantityAmount
__________________
-ТСЯ или -ТЬСЯ ? |
|
14.12.2005, 19:23 | #12 |
Участник
|
Так согласно findDisc, или согласно того что выгоднее клиенту?
Мне тут сказали, что в документации так и написано. Конечно, для вас это очевидно, что пустая дата, это "01.01.1900", но для пользователя, это выглядит несколько иначе. В документации про "принцип уточнения" ничего не сказано, я же сказал - по моему личному мнению. Не надо меня тыкать носом в документацию. Кстати, в конечной дате стоит тоже пустое значение, а следовательно "01.01.1900", так что у меня только одна текущая дата получается! |
|
14.12.2005, 19:44 | #13 |
Участник
|
2 vadik
Цитата:
А закладываться на PriceDiscIdx по-моему как-то нездОрово - ибо, судя по комментариям, какой-либо сортировки по ДАТЕ здесь не планировалось
Добавление order by QuantityAmount принципиально ситуацию не изменит (это поле и так входит в индекс).
__________________
Axapta v.3.0 sp5 kr2 |
|
14.12.2005, 19:53 | #14 |
Модератор
|
Цитата:
Сообщение от slava09
или согласно того что выгоднее клиенту? Мне тут сказали, что в документации так и написано
Цитата:
Не надо меня тыкать носом в документацию.
Цитата:
Кстати, в конечной дате стоит тоже пустое значение, а следовательно "01.01.1900", так что у меня только одна текущая дата получается!
__________________
-ТСЯ или -ТЬСЯ ? |
|
14.12.2005, 20:02 | #15 |
Модератор
|
Цитата:
Сообщение от AndyD
2 vadik
Добавление order by QuantityAmount принципиально ситуацию не изменит (это поле и так входит в индекс). - какая-нибудь неугомонная личность отключит индексные хинты на уровне конфигурации - она же закомментирует index hint или укажет в нем другой индекс - она же изменит индекс, поменяв поля местами на "а ты не лезь туда грязными руками" отвечу только, что не всем повезло работать с клиентами, пересчитывающими прайс в нескольких валютах каждый день и желающих хранить историю по прайсу "хотя бы" пару месяцев а ORDER BY - он и в африке ORDER BY
__________________
-ТСЯ или -ТЬСЯ ? |
|
14.12.2005, 20:03 | #16 |
Moderator
|
Цитата:
Сообщение от slava09
Так согласно findDisc, или согласно того что выгоднее клиенту?
Мне тут сказали, что в документации так и написано. А механизм поиска по дате работает одинаково что для цен, что для скидок.
__________________
Андрей. |
|
14.12.2005, 20:06 | #17 |
Участник
|
Цитата:
Сообщение от Vadik
Извините, больше не буду. Это же шутка была
Насчет заботы о клиентах, это слова товарища Dron AKA andy. Он имел ввиду цены. По поводу интервалов: конечно можно представить самый простой случай когда текущая дата попадает в несколько интервалов заданных в прайсах (даже без пустых дат). И можно сказать, что Аксапта не имеет никакого предпочтения в их выборе. Согласен, что ситуация когда нужно разбивать на несколько интервалов, чтобы добиться желаемого эффекта вполне нормальна, но достаточно хлопотна. |
|
14.12.2005, 21:44 | #18 |
Участник
|
2 vadik
Во-первых, против лома нет приема. Во-вторых, QuantityAmount являетеся далеко не первым полем в индексе. Если строить сортировку только по нему, то предсказать, какая из скидок сработает будет весьма затруднительно - для этого придется проверять какая из записей создавалась ранее. По-моему, порядок сортировки должен быть такой ORDER BY itemCode, accountCode, QuantityAmount, FromDate В-третьих. Если есть желание и возможность изменять чтобы-то ни было - это ваше право. Но какое это имеет отношение к работе стандартного приложения? Или вы не согласны, что стандартная Axapta выбирает скидки именно так? 2 slava09 Цитата:
Конечно, для вас это очевидно, что пустая дата, это "01.01.1900", но для пользователя, это выглядит несколько иначе.
__________________
Axapta v.3.0 sp5 kr2 |
|
14.12.2005, 22:19 | #19 |
Модератор
|
Цитата:
Сообщение от AndyD
Во-первых, против лома нет приема
Цитата:
Во-вторых, QuantityAmount являетеся далеко не первым полем в индексе. Если строить сортировку только по нему, то предсказать, какая из скидок сработает будет весьма затруднительно - для этого придется проверять какая из записей создавалась ранее. По-моему, порядок сортировки должен быть такой
ORDER BY itemCode, accountCode, QuantityAmount, FromDate P.S. А вообще - наличие скидок на несколько пересекающихся периодов при включенном "найти далее" (а поле по умолчанию включается при ручном вводе) позволяет обеспечить клиентам хорошую "халяву" Причем сугубо штатными средствами
__________________
-ТСЯ или -ТЬСЯ ? |
|
14.12.2005, 22:34 | #20 |
Участник
|
Вдогонку.
index idx и index hint idx - это разные вещи и первое не отключишь конфигурационной утилитой. Цитата:
Все верно. Маленькое уточнение - сортировки по QuantityAmount достаточно, потому что все остальные поля уже "зажаты" в WHERE
PS Точнее запутался А FromDate?
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 14.12.2005 в 22:42. |
|