AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.02.2005, 10:10   #1  
Leshiy_T is offline
Leshiy_T
Участник
Аватар для Leshiy_T
 
116 / 10 (1) +
Регистрация: 16.02.2005
Алгоритм поиска ценового соглашения и скидки
Есть такой вопрос:

Как в Axapta происходит расчет цен из ценовых соглашений, если условию удовлетворяют несколько соглашений?
Меня интересует такой случай:
1. Все параметры двух ценовых соглашений абсолютно одинаковы, кроме самой цены.
Галка "найти далее" не стоит. (ИМХО, должен подставить первую найденную, только какую?)
2. Галка установлена в обоих соглашениях.
Какая цена подставится в заказ/закупку в этих случаях?

И чуть более общий случай:
3. Есть 2 ценовых соглашения, одно на конкретный товар, одно на группу товаров;
товар в заказе попадает под оба этих соглашения. Какое будет активизировано? (опять же 2 случая - с галкой и без)

Т.е. интересует на самом деле алгоритм сортировки этих ценовых соглашений.
Наверняка алгоритм один и тот же для скидок и цен.
Должен же он быть зафиксирован где-нибудь??
Старый 22.02.2005, 10:47   #2  
Yprit is offline
Yprit
Злыдни
Аватар для Yprit
Злыдни
 
419 / 93 (4) ++++
Регистрация: 22.02.2004
Адрес: СПб
Зафиксирован в классе PriceDisc
Старый 22.02.2005, 10:57   #3  
olesh is offline
olesh
Участник
 
58 / 26 (1) +++
Регистрация: 02.04.2002
Адрес: Москва
1. Подставит первую найденную. Если все параметры одинаковы, то ту, которую раньше отдаст SQL Server. Скорее всего, которая была раньше создана, но не факт.
2. Подставится меньшая цена.
3. С галкой - меньшая. Без галки - соглашение на товар.

Для скидок тоже самое, только вместо поиска наименьшего значения скидки суммируются.

Алгоритм - что-то есть в справке, что-то в документации, а также в классе PriceDisc.
Старый 22.02.2005, 11:11   #4  
leshy is offline
leshy
Участник
 
118 / 11 (1) +
Регистрация: 23.02.2004
Адрес: Киев
В первом случае, если подходят две цены, то возьмет то соглашение, у которого меньше количество (см. индекс PriceDiscIdx).
Если стоит галочка «Найти далее», то система выберет наиболее выгодную из двух, т.е наименьшую цену с учетом накладных расходов.

Если есть цена на группу и товар, то более приоритетной является цена на товар. Если на товар не найдено, то ищется для группы (если активизированы данные цены/скидки). Что касается галок, то аналогично как и в первых двух случаях.

Относительно описания, то кое что есть в руководстве по торговле и логистике.
А вообще лучше всего на каком-нибудь примере посмотреть как оно работает
Старый 22.02.2005, 12:08   #5  
Leshiy_T is offline
Leshiy_T
Участник
Аватар для Leshiy_T
 
116 / 10 (1) +
Регистрация: 16.02.2005
Спасибо за ответы, руководство, встроенный хелп и форум я уже облазил, однако ответов не нашел.

В руководстве по поводу цен/скидок конечно написано, но уж очень обще.
И настолько подробно там, по-моему, ни одна операция не разбирается.

Конечно и ежу понятно, что тут надо смотреть код, только это немного не в моих силах.
Смотреть то конечно в силах, а вот где конкретно искать и понять, а что же это я нашел - нереально...

Вот есть такая вещь в PriceDisc:

static container findItemPriceAgreement(ModuleInventPurchSales _moduleType,
ItemId _itemId,
inventDim _inventDim,
UnitID _unitID,
TransDate _priceDate,
Qty _qty,
CustVendAC _accountId,
CurrencyCode _currency,
priceGroupId _priceGroupId)
{
PriceDisc priceDisc;
;
priceDisc = new PriceDisc(_moduleType,
_itemId,
_inventDim,
_unitId,
_priceDate,
_qty,
_accountId,
_currency);

priceDisc.findPrice(_priceGroupId);

return [priceDisc.price(),
priceDisc.markup(),
priceDisc.priceUnit(),
priceDisc.deliveryDays(),
priceDisc.calendarDays()];
}

а толку то?
запустил в поиске что такое ItemId; ищет уже 10 минут...

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

А теперь уточняющие вопросы:

Цитата:
Изначально опубликовано olesh
1. Подставит первую найденную. Если все параметры одинаковы, то ту, которую раньше отдаст SQL Server. Скорее всего, которая была раньше создана, но не факт.
А какую первую отдаст SQL Server?

Цитата:
2. Подставится меньшая цена.
3. С галкой - меньшая. Без галки - соглашение на товар.
Спасибо!

Цитата:
Алгоритм - что-то есть в справке, что-то в документации, а также в классе PriceDisc.
Ну не могу я понять, что там есть в этом классе...

Цитата:
Изначально опубликовано leshy
А вообще лучше всего на каком-нибудь примере посмотреть как оно работает
Вот на примере мы сами смогли узнать, что в случае "найти далее" подставляется меньшая цена.

Но чтобы реально перебрать все возможные комбинации, нужно неделю наверное потратить, что выяснить:
зависит ли алгоритм от даты соглашения, от кода связи контрагента и номенклатуры (это уже выяснили, но все же), от того где ценовое соглашение задействовано - в ценовых соглашениях или журнале ком. соглашений и т.д.
И ведь ладно просто выяснить зависит ли. Надо ж узнать еще как приоритеты расставлены. Т.е. порядок сортировки списка (к вопросу о SQL Server) по этим параметрам.

Если возможно, ткните хотя бы пальцем где конкретно это в коде.
Я не прошу прислать 50-страничное описание алгоритма (а хотелось бы!), просто конкретную ссылку. (PriceDisc такой большой и непонятный...)
Старый 22.02.2005, 12:24   #6  
leshy is offline
leshy
Участник
 
118 / 11 (1) +
Регистрация: 23.02.2004
Адрес: Киев
//
Вот на примере мы сами смогли узнать, что в случае "найти далее" подставляется меньшая цена.
//
Не меньшая цена, а меньшая (Цена и Накладные расходы)

//Если возможно, ткните хотя бы пальцем где конкретно это в коде.
PriceDisc.FindPriceAgreement (для цен)

Обратите внимание на индекс PriceDiscIdx, по нему производится поиск.
Старый 22.02.2005, 12:41   #7  
Leshiy_T is offline
Leshiy_T
Участник
Аватар для Leshiy_T
 
116 / 10 (1) +
Регистрация: 16.02.2005
Цитата:
Обратите внимание на индекс PriceDiscIdx, по нему производится поиск.
Ага. Спасибо.
Я правильно понял, что сортировка происходит в том порядке, в каком приведены поля в индексе?

Если да, тогда все предельно ясно
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Потеря фокуса при вызове формы поиска Paul_ST DAX: Программирование 21 03.08.2022 15:12
12 способов поиска ответов на вопросы Роман Кошелев DAX: База знаний и проекты 9 27.03.2008 12:20
aEremenko: Эмуляция поиска по всем таблицам Blog bot DAX Blogs 0 10.10.2007 22:52
Коммерческие соглашения в Axapta 3 soin DAX: Функционал 7 19.05.2005 17:30
Алгоритм расчета З/П nicko DAX: Функционал 2 26.02.2004 08:21
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:43.