Цитата:
Сообщение от
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); // ценовая группа
и не получаю тех значение, которые рассчитываются при создание строки заказа. Дело в том что в мапе, помимо всего, передаются данные из "складской аналитики". Спасибо, Всем, за участие!