05.05.2009, 16:34 | #1 |
Участник
|
Как найти цену?
Уважаемы послетители форума!
Подскажите, пожалуйста, как найти цену из таблицы PriceDiscTable если известны только ItemId, InventDimId и дата? Хотелось бы не запросом, а с помощью функции.
__________________
AX 3.0, Build #9.3 |
|
05.05.2009, 16:42 | #2 |
Участник
|
Цитата:
для определения цены нужно еще по крайней мере Валюту. А также хорошо было бы получить информацию о количестве, клиенте/поставщике, договоре и о других параметрах. См. класс PriceDisc |
|
05.05.2009, 16:46 | #3 |
AX*****
|
__________________
О, как беден, как груб наш русский язык! [c] А.С.Пушкин |
|
05.05.2009, 16:46 | #4 |
Участник
|
Валюта - рубли. Информации о клиенте\поставщике нет (оцениваю стоимотсть готовой продукции, поступившей на склад). С этими данными возможно?
__________________
AX 3.0, Build #9.3 |
|
05.05.2009, 16:50 | #5 |
Участник
|
Посмотрела. С ним не получилось, т.к. нет информации о клиенте/поставщике. С классом PriceDisc_Price получилось, но нет полной уверенности в правильности. Может быть, кто-нибудь поможет ссылкой на описание класса PriceDisc_Price?
__________________
AX 3.0, Build #9.3 |
|
05.05.2009, 16:59 | #6 |
AX*****
|
__________________
О, как беден, как груб наш русский язык! [c] А.С.Пушкин |
|
|
За это сообщение автора поблагодарили: chanchala (1). |
05.05.2009, 18:05 | #7 |
Ищущий знания...
|
вот пример поиска цены с помощью классе PriceDisc, может подойдет:
X++: static void testFindPrice(Args _args) { InventTable inventTable; InventTableModule inventTableModule; Container conPrice; InventDimId inventDimId; TransDate transDate = systemDateGet(); ItemId itemId; ; select firstonly inventTable where inventTable.ItemId == itemId; inventTableModule = inventTable.inventTableModuleSales(); conPrice = PriceDisc::findItemPriceAgreement(ModuleInventPurchSales::Sales, // модуль inventTable.ItemId, // номенклатура InventDim::find(inventDimId), // аналитики inventTableModule.UnitId, // ед изм transDate, // дата inventTableModule.PriceUnit, // кол-во (цена) "", // код клиента CompanyInfo::find().CurrencyCode,// валюта из компании ""); // ценовая группа info(strFmt('Цена - %1', conPeek(conPrice, 1))); // первым номеро в контейнере это цена номенклатуры }
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|
За это сообщение автора поблагодарили: АртемМелихов (1). |
18.08.2015, 10:25 | #8 |
Участник
|
Добрый день, решил апнуть тему, потому что не понятно как найти цену и скиду используя PriceDisc_Price и PriceDisc_LineDisc, имея только itemId, номер клиента и дату. Спасибо!
|
|
18.08.2015, 10:33 | #9 |
Участник
|
Зачем вам PriceDisc_Price и PriceDisc_LineDisc? Используйте PriceDisc, пример вызова приведен выше.
|
|
18.08.2015, 11:52 | #10 |
Участник
|
В постановке требуется сделать расчет, аналогично расчету при создание строки на продажу. А при создание строки используются , описанные выше , классы, наследуемые от PriceDisc. Я до конца не разобрался в них. Я попробовал пример выше и при имеющихся данных(номенклатура,клиент,дата) я не получаю цену, но если создавать на этого клиента заказ, с данной номенклатурой, то цена будет расчитана
|
|
18.08.2015, 12:09 | #11 |
Гость
|
|
|
18.08.2015, 12:18 | #12 |
Участник
|
|
|
18.08.2015, 12:32 | #13 |
Гость
|
Ок. ок. не хотел никого обидеть: просто в списке параметров не упомянули вот и удивился.
Может конечно меня глючит но PriceDisc_Price и PriceDisc_LineDisc не наследуются от PriceDisc в 12 версии во всяком случае, но активно используют PriceDisc при расчетах в соответствующих методах find...Agreement Инициализацию параметров можно подсмотреть в чем то типа метода priceDisc_PriceCache на мапе SalesPurchLine Последний раз редактировалось axm2013; 18.08.2015 в 12:35. |
|
18.08.2015, 12:37 | #14 |
Сенбернар
|
Цитата:
Цитата:
Сообщение от АртемМелихов
В постановке требуется сделать расчет, аналогично расчету при создание строки на продажу. А при создание строки используются , описанные выше , классы, наследуемые от 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, 12:57 | #15 |
Участник
|
Цитата:
Сообщение от axm2013
Ок. ок. не хотел никого обидеть: просто в списке параметров не упомянули вот и удивился.
Может конечно меня глючит но PriceDisc_Price и PriceDisc_LineDisc не наследуются от PriceDisc в 12 версии во всяком случае, но активно используют PriceDisc при расчетах в соответствующих методах find...Agreement Инициализацию параметров можно подсмотреть в чем то типа метода priceDisc_PriceCache на мапе SalesPurchLine |
|
18.08.2015, 13:49 | #16 |
Участник
|
Цитата:
Сообщение от 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); // ценовая группа |
|
18.08.2015, 14:53 | #17 |
Участник
|
Далее, попробовал создать объект PriceDisc_Price и заполнить его аналогично заполнению в SalesPurchLine.priceDisc_PriceCache(...). После заполнения через parm методы, я вызываю PriceDisc_Price.findPriceAgreement(), но получаю нули. Хотя для данного клиента\период\номенклатуру цена ед., при создание строки заказа имеется. Подскажите, может быть нужно вызывать не .findPriceAgreement()?
|
|
19.05.2017, 13:33 | #18 |
Снова балуюсь косаптой :)
|
X++: static void msk_getActualPrice_final(Args _args) { SalesLine SalesLine; InventTable inventTable = InventTable::find("10848834"); ; SalesLine.CurrencyCode = 'EUR'; SalesLine.ItemId = inventTable.ItemId; SalesLine.CustAccount = "420407"; SalesLine.initFromCustTable(); SalesLine.initFromInventTable(inventTable); salesLine.setPriceDisc(salesLine.inventDim()); info(strfmt("Price = %1", salesLine.SalesPrice)); }
__________________
Бесты и регарды! |
|
|
За это сообщение автора поблагодарили: smailik (1). |
Теги |
pricedisc, готовая продукция, законченный пример, поиск цены, цена |
|
Похожие темы | ||||
Тема | Ответов | |||
как найти файл? | 8 | |||
Найти ошибки компиляции | 6 | |||
Исчезновение формы "Найти" | 3 | |||
Как найти отчет для правки в АОТ? | 3 | |||
Как найти нужную номерную серию? | 3 |
|