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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.08.2015, 12:09   #1  
axm2013
Гость
 
n/a
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
.. как найти цену и скиду используя PriceDisc_Price и PriceDisc_LineDisc, имея только itemId, номер клиента и дату. Спасибо!
А почему вас не интересует к примеру количество? Вдруг скидка зависит от нее?
Старый 18.08.2015, 12:18   #2  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от axm2013 Посмотреть сообщение
А почему вас не интересует к примеру количество? Вдруг скидка зависит от нее?
я, конечно, нуб, но не на столько. Количество, дергаю как на примере выше.
Старый 18.08.2015, 12:32   #3  
axm2013
Гость
 
n/a
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
я, конечно, нуб, но не на столько...
Ок. ок. не хотел никого обидеть: просто в списке параметров не упомянули вот и удивился.
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
классы, наследуемые от PriceDisc
...
Может конечно меня глючит но PriceDisc_Price и PriceDisc_LineDisc не наследуются от PriceDisc в 12 версии во всяком случае, но активно используют PriceDisc при расчетах в соответствующих методах find...Agreement
Инициализацию параметров можно подсмотреть в чем то типа метода priceDisc_PriceCache на мапе SalesPurchLine

Последний раз редактировалось axm2013; 18.08.2015 в 12:35.
Старый 18.08.2015, 12:57   #4  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от axm2013 Посмотреть сообщение
Ок. ок. не хотел никого обидеть: просто в списке параметров не упомянули вот и удивился.

Может конечно меня глючит но PriceDisc_Price и PriceDisc_LineDisc не наследуются от PriceDisc в 12 версии во всяком случае, но активно используют PriceDisc при расчетах в соответствующих методах find...Agreement
Инициализацию параметров можно подсмотреть в чем то типа метода priceDisc_PriceCache на мапе SalesPurchLine
Прошу прощение, про наследование мой косяк.
Старый 18.08.2015, 12:37   #5  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
я, конечно, нуб, но не на столько. Количество, дергаю как на примере выше.
Вам не о том сказали. Скидка по строке может зависеть, в том числе, и от количества в строке.

Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
В постановке требуется сделать расчет, аналогично расчету при создание строки на продажу. А при создание строки используются , описанные выше , классы, наследуемые от PriceDisc. Я до конца не разобрался в них. Я попробовал пример выше и при имеющихся данных(номенклатура,клиент,дата) я не получаю цену, но если создавать на этого клиента заказ, с данной номенклатурой, то цена будет расчитана
В этом вызове :

X++:
conPrice    = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль
                                                    inventTable.ItemId,             // номенклатура
                                                    InventDim::find(inventDimId),   // аналитики
                                                    inventTableModule.UnitId,       // ед изм
                                                    transDate,                      // дата
                                                    inventTableModule.PriceUnit,    // кол-во (цена)
                                                    "",                             // код клиента
                                                    CompanyInfo::find().CurrencyCode,// валюта из компании
                                                    "");                            // ценовая группа
я бы, для начала, задал то количество, на которое создана ваша "эталонная" строка Заказа, и код клиента. Посмотрел бы на результат. Если не совпадает - начал бы копать дальше.

Более подробно не могу пока - ни одной Аксы нет под рукой, к сожалению.
__________________
Best Regards,
Roman
Старый 18.08.2015, 13:49   #6  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от RVS Посмотреть сообщение
Вам не о том сказали. Скидка по строке может зависеть, в том числе, и от количества в строке.



В этом вызове :

X++:
conPrice    = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль
                                                    inventTable.ItemId,             // номенклатура
                                                    InventDim::find(inventDimId),   // аналитики
                                                    inventTableModule.UnitId,       // ед изм
                                                    transDate,                      // дата
                                                    inventTableModule.PriceUnit,    // кол-во (цена)
                                                    "",                             // код клиента
                                                    CompanyInfo::find().CurrencyCode,// валюта из компании
                                                    "");                            // ценовая группа
я бы, для начала, задал то количество, на которое создана ваша "эталонная" строка Заказа, и код клиента. Посмотрел бы на результат. Если не совпадает - начал бы копать дальше.

Более подробно не могу пока - ни одной Аксы нет под рукой, к сожалению.
Попробую более подробнее описать. Я создаю строку в заказе, и модифицирую только поле "код номенклатуры", после это , как правильно заметили, по средствам методов мапа, рассчитывается "цена ед.измерения" и "процент скидки" для одной номенклатуры. Я попробовал приведенный пример, указав, почти все входные параметры
X++:
conPrice    = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль
                                                    inventTable.ItemId,             // номенклатура
                                                    InventDim::find(inventDimId),   // аналитики
                                                    inventTableModule.UnitId,       // ед изм
                                                    transDate,                      // дата
                                                    inventTableModule.PriceUnit,    // кол-во (цена)
                                                    custtable.accountNum,                             // код клиента
                                                    custtable.Currency,// валюта из компании
                                                    custtable.PriceGroup);                            // ценовая группа
и не получаю тех значение, которые рассчитываются при создание строки заказа. Дело в том что в мапе, помимо всего, передаются данные из "складской аналитики". Спасибо, Всем, за участие!
Теги
pricedisc, готовая продукция, законченный пример, поиск цены, цена

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
как найти файл? if_maks DAX: Программирование 8 01.02.2016 17:16
Найти ошибки компиляции Dozer DAX: База знаний и проекты 6 27.06.2008 23:13
Исчезновение формы "Найти" sssss DAX: Программирование 3 07.06.2007 11:40
Как найти отчет для правки в АОТ? Hobo DAX: Программирование 3 04.03.2004 09:06
Как найти нужную номерную серию? Pegiy DAX: Функционал 3 30.01.2004 17:29
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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