AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search Mark Forums Read

 
 
Thread Tools Search this Thread Display Modes
Old 14.12.2005, 16:34   #1  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Скидка с датой.
Может уже обсуждалось...
Есть скидка у которой указан интервал: март 2006 - 5%
Есть скидка у которой интервал не указан - 10%

Логика: в марте 2006 запланировали клиенту отпускать по 5%, все остальное время по 10%.

Но у меня не подставляется скидка в 5%, если я создаю заказ мартовской датой.

В чем причина?
Old 14.12.2005, 17:16   #2  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Для Аксапты относительно ваших настроек в марте действительны обе скидки, и она предлагает наиболее выгодную для клиента, о чем прямо указано в хелпе. Поиграйтесь с галочкой "Найти далее", а лучше задайте жесткие непересекающиеся интервалы дат.
__________________
Андрей.
Old 14.12.2005, 17:27   #3  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Quote:
Originally Posted by Dron AKA andy
Для Аксапты относительно ваших настроек в марте действительны обе скидки, и она предлагает наиболее выгодную для клиента
Красиво рассуждаете.
1. Почему должна Акса действовать с позиции выгоды клиента а не предприятия (по вашим словам)?
2. Меняя значения скидки местами происходит тоже самое;
Old 14.12.2005, 17:34   #4  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Это я не рассуждаю, а пишу о реализации как есть. Номер соответствующей главы из "Управления торговлей и логистикой" не приведу, т.к. не помню.
Quote:
Originally Posted by slava09
Меняя значения скидки местами происходит тоже самое;
Не понял, что и с чем вы меняете. Поиск другой сделки после нахождения первой попавшейся определяется упомянутой галочкой "Найти далее".
__________________
Андрей.
Old 14.12.2005, 17:43   #5  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Есть скидка у которой указан интервал: март 2006 - 10%
Есть скидка у которой интервал не указан - 5%

Аксапта выбирает всеравно скидку 5%
Вот что я имел ввиду.
Old 14.12.2005, 17:58   #6  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Quote:
Originally Posted by Dron AKA andy
Поиск другой сделки после нахождения первой попавшейся определяется упомянутой галочкой "Найти далее".
Это не просто поиск, это суммирование скидок.
Old 14.12.2005, 18:01   #7  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Quote:
Originally Posted by slava09
Это не просто поиск, это суммирование скидок.
Да, согласен, перепутал с ценовыми соглашениями.
__________________
Андрей.
Old 14.12.2005, 18:32   #8  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Ну всетаки. Возвращаясь к теме.
По всей видимости Аксапта игнорирует скидку с интервалом, если есть скидка без интервала.
Независимо выгодна ли она клиенту или нет.

Но, если следовать такому логическому рассуждению, что скидка с интервалом должна уточнять условия в определенный интервал времени, то выходит что Аксапта работает не правильно.

А если не следовать, то работает не понятно как Точнее, не так как я ожидал (я только про себя говорю).

Last edited by slava09; 14.12.2005 at 18:49.
Old 14.12.2005, 19:06   #9  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Join Date: 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
Old 14.12.2005, 19:07   #10  
Владимир Ю. is offline
Владимир Ю.
Участник
Владимир Ю.'s Avatar
 
251 / 9 (1) +
Join Date: 26.09.2003
Location: СПб
Сталкивался с такой ФИЧЕЙ на проекте. Спасло только создание 3-х строк с конкретными датами действия скидки. В код не лезли по определенным причинам.
__________________
ИМХО.
С уважением, Владимир Ю.
Old 14.12.2005, 19:15   #11  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by slava09
Но, если следовать такому логическому рассуждению, что скидка с интервалом должна уточнять условия в определенный интервал времени, то выходит что Аксапта работает не правильно
Скидка ищется согласно \Classes\PriceDisc\findDisc

У Вас текущая дата попадает в ДВА интервала - какой из них "правильнее" ? Где в документации можно почитать про принцип "уточнения" одного интервала другим ?

А закладываться на
Code:
index PriceDiscIdx  // equals order by QuantityAmount
по-моему как-то нездОрово - ибо, судя по комментариям, какой-либо сортировки по ДАТЕ здесь не планировалось

Code:
order by QuantityAmount
тоже imho не помешало бы.. так, на всякий случай
__________________
-ТСЯ или -ТЬСЯ ?
Old 14.12.2005, 19:23   #12  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Так согласно findDisc, или согласно того что выгоднее клиенту?
Мне тут сказали, что в документации так и написано.
Конечно, для вас это очевидно, что пустая дата, это "01.01.1900", но для пользователя, это выглядит несколько иначе.
В документации про "принцип уточнения" ничего не сказано, я же сказал - по моему личному мнению.
Не надо меня тыкать носом в документацию.
Кстати, в конечной дате стоит тоже пустое значение, а следовательно "01.01.1900", так что у меня только одна текущая дата получается!
Old 14.12.2005, 19:44   #13  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Join Date: 20.08.2005
2 vadik
Quote:
А закладываться на PriceDiscIdx по-моему как-то нездОрово - ибо, судя по комментариям, какой-либо сортировки по ДАТЕ здесь не планировалось
Это к чему?
Добавление order by QuantityAmount принципиально ситуацию не изменит (это поле и так входит в индекс).
__________________
Axapta v.3.0 sp5 kr2
Old 14.12.2005, 19:53   #14  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by slava09
или согласно того что выгоднее клиенту? Мне тут сказали, что в документации так и написано
Мне о такой трогательной заботе о клиентах неизвестно. Может быть, имелся в виду способ расчета скидки при наличии скидки по строке и многострочной (Расчеты с клиентами \ Параметры \ Цены \ Скидка) ?

Quote:
Не надо меня тыкать носом в документацию.
Извините, больше не буду. Это же шутка была

Quote:
Кстати, в конечной дате стоит тоже пустое значение, а следовательно "01.01.1900", так что у меня только одна текущая дата получается!
Если Вы имеет в виду то, что "сегодня" не должно попадать в период "с 1900.01.01 по 1900.01.01", попадает-попадает, и не только при поиске скидок. Довольно удобно, на мой взгляд
__________________
-ТСЯ или -ТЬСЯ ?
Old 14.12.2005, 20:02   #15  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by AndyD
2 vadik
Добавление order by QuantityAmount принципиально ситуацию не изменит (это поле и так входит в индекс).
ситуация изменится, если
- какая-нибудь неугомонная личность отключит индексные хинты на уровне конфигурации
- она же закомментирует index hint или укажет в нем другой индекс
- она же изменит индекс, поменяв поля местами

на "а ты не лезь туда грязными руками" отвечу только, что не всем повезло работать с клиентами, пересчитывающими прайс в нескольких валютах каждый день и желающих хранить историю по прайсу "хотя бы" пару месяцев

а ORDER BY - он и в африке ORDER BY
__________________
-ТСЯ или -ТЬСЯ ?
Old 14.12.2005, 20:03   #16  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Join Date: 27.03.2002
Location: Москва
Quote:
Originally Posted by slava09
Так согласно findDisc, или согласно того что выгоднее клиенту?
Мне тут сказали, что в документации так и написано.
Написал же выше, что перепутал с ценовыми соглашениями, где как раз ищется минимальное по величине значение цены (т.е. выгодное клиенту) при прочих равных.
А механизм поиска по дате работает одинаково что для цен, что для скидок.
__________________
Андрей.
Old 14.12.2005, 20:06   #17  
slava09 is offline
slava09
Участник
slava09's Avatar
MCBMSS
Дети Юза
1C
 
1,642 / 237 (11) ++++++
Join Date: 06.03.2003
Location: Украина, Киев
Quote:
Originally Posted by Vadik
Извините, больше не буду. Это же шутка была
Вы тоже меня звиняйте. Настроение никудышное совсем. Сорвался.

Насчет заботы о клиентах, это слова товарища Dron AKA andy. Он имел ввиду цены.

По поводу интервалов: конечно можно представить самый простой случай когда текущая дата попадает в несколько интервалов заданных в прайсах (даже без пустых дат). И можно сказать, что Аксапта не имеет никакого предпочтения в их выборе.
Согласен, что ситуация когда нужно разбивать на несколько интервалов, чтобы добиться желаемого эффекта вполне нормальна, но достаточно хлопотна.
Old 14.12.2005, 21:44   #18  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Join Date: 20.08.2005
2 vadik

Во-первых, против лома нет приема.

Во-вторых, QuantityAmount являетеся далеко не первым полем в индексе. Если строить сортировку только по нему, то предсказать, какая из скидок сработает будет весьма затруднительно - для этого придется проверять какая из записей создавалась ранее. По-моему, порядок сортировки должен быть такой

ORDER BY itemCode, accountCode, QuantityAmount, FromDate

В-третьих. Если есть желание и возможность изменять чтобы-то ни было - это ваше право. Но какое это имеет отношение к работе стандартного приложения? Или вы не согласны, что стандартная Axapta выбирает скидки именно так?

2 slava09
Quote:
Конечно, для вас это очевидно, что пустая дата, это "01.01.1900", но для пользователя, это выглядит несколько иначе.
Извините, но Axapta'у не я писал. И что должно быть очевидно для пользователей - не мне решать. Я лишь описал почему так происходит. И не понимаю в чем провинился перед вами
__________________
Axapta v.3.0 sp5 kr2
Old 14.12.2005, 22:19   #19  
Vadik is offline
Vadik
Модератор
Vadik's Avatar
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1853 (69) ++++++++
Join Date: 18.11.2002
Location: гражданин Москвы
Quote:
Originally Posted by AndyD
Во-первых, против лома нет приема
Факт

Quote:
Во-вторых, QuantityAmount являетеся далеко не первым полем в индексе. Если строить сортировку только по нему, то предсказать, какая из скидок сработает будет весьма затруднительно - для этого придется проверять какая из записей создавалась ранее. По-моему, порядок сортировки должен быть такой

ORDER BY itemCode, accountCode, QuantityAmount, FromDate
Все верно. Маленькое уточнение - сортировки по QuantityAmount достаточно, потому что все остальные поля уже "зажаты" в WHERE

P.S. А вообще - наличие скидок на несколько пересекающихся периодов при включенном "найти далее" (а поле по умолчанию включается при ручном вводе) позволяет обеспечить клиентам хорошую "халяву"

Причем сугубо штатными средствами
__________________
-ТСЯ или -ТЬСЯ ?
Old 14.12.2005, 22:34   #20  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Join Date: 20.08.2005
Вдогонку.

index idx и index hint idx - это разные вещи и первое не отключишь конфигурационной утилитой.

Quote:
Все верно. Маленькое уточнение - сортировки по QuantityAmount достаточно, потому что все остальные поля уже "зажаты" в WHERE
Точно! Стормозил

PS Точнее запутался А FromDate?
__________________
Axapta v.3.0 sp5 kr2

Last edited by AndyD; 14.12.2005 at 22:42.
Tags
как правильно, скидка

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Скидка - "Найти далее" AlexeyBP DAX: Функционал 13 11.08.2006 16:57
Скидка по оплате в предложении по оплате AlexeyBP DAX: Функционал 1 19.04.2006 10:57
Сопоставление выбранной датой Ann DAX: Функционал 4 17.05.2005 15:35
Ошибка при закрытии склада, при закрытии более ранней датой, чем пересчет Berkoff DAX: Функционал 2 25.10.2004 17:52
Скидка по строке и многострочная скидка efim DAX: Функционал 0 18.06.2003 16:32
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 10:20.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.