|
09.01.2013, 13:20 | #1 |
Участник
|
Загрузка каталога поставщика
Добрый день! Есть проблема. Система AX2012 R2 При загрузке каталога поставщика, если загружать каталог с открытой датой окончания, то система создает по товару/поставщику отдельные журналы коммерческих соглашений и разносит их, в итоге получаем отдельные независимые друг от друга цены покупки (PriceDiscTable), ну а при формировании заявки на покупку система подбирает наименьшую цену независимо от того последней ли ее прогрузили или первой т.к. присутствуют несколько цен покупки с открытой датой окончания. На мой взгляд довольно странно что система не ищет уже существующую цену покупки и не обновляет ее. Я что-то не так делаю или для такого поведения необходимы доработки?
Последний раз редактировалось Greggy; 09.01.2013 в 13:48. |
|
09.01.2013, 15:44 | #2 |
Участник
|
При проведении журнала коммерческих соглашений можно изменять существующие записи в ценах. Для этого в таблице PriceDiscAdmTrans должно быть заполнено поле PriceDiscTableRef.
Так как вы сами загружаете откуда-то строки, то обязанность наполнить таблицу PriceDiscAdmTrans закрываемыми строками лежит на вас. То есть, должно быть что-то подобное: Заполнили строку в PriceDiscAdmTrans. Начали выборку с подбором закрываемых строк: X++: select priceDiscTable where (!priceDiscTable.FromDate || priceDiscTable.FromDate <= fromDate) && (!priceDiscTable.ToDate || priceDiscTable.ToDate >= fromDate) && priceDiscTable.AccountCode == _priceTrans.AccountCode && priceDiscTable.AccountRelation == _priceTrans.AccountRelation && priceDiscTable.ItemCode == _priceTrans.ItemCode && priceDiscTable.ItemRelation == _priceTrans.ItemRelation && priceDiscTable.Currency == _priceTrans.Currency && priceDiscTable.InventDimId == _priceTrans.InventDimId && priceDiscTable.relation == _priceTrans.relation && priceDiscTable.Module == _priceTrans.Module X++: while (priceDiscTable) { ttsBegin; priceDiscAdmTrans.clear(); priceDiscAdmTrans.initFromPriceDiscTable_OVK(priceDiscTable); priceDiscAdmTrans.ToDate = fromDate - 1; priceDiscAdmTrans.JournalNum = _journalNum; priceDiscAdmTrans.insert(); ttsCommit; next priceDiscTable; } X++: void initFromPriceDiscTable_OVK(PriceDiscTable _priceDiscTable)
{
;
this.ItemCode = _priceDiscTable.ItemCode;
this.AccountCode = _priceDiscTable.AccountCode;
this.ItemRelation = _priceDiscTable.ItemRelation;
this.AccountRelation = _priceDiscTable.AccountRelation;
this.QuantityAmount = _priceDiscTable.QuantityAmount;
this.FromDate = _priceDiscTable.FromDate;
this.ToDate = _priceDiscTable.ToDate;
this.Amount = _priceDiscTable.Amount;
this.Currency = _priceDiscTable.Currency;
this.Percent1 = _priceDiscTable.Percent1;
this.Percent2 = _priceDiscTable.Percent2;
this.DeliveryTime = _priceDiscTable.DeliveryTime;
this.SearchAgain = _priceDiscTable.SearchAgain;
this.PriceUnit = _priceDiscTable.PriceUnit;
this.relation = _priceDiscTable.relation;
this.UnitId = _priceDiscTable.UnitId;
this.Markup = _priceDiscTable.Markup;
this.AllocateMarkup = _priceDiscTable.AllocateMarkup;
this.Module = _priceDiscTable.Module;
this.InventDimId = _priceDiscTable.InventDimId;
this.PriceDiscTableRef = _priceDiscTable.RecId;
} |
|
09.01.2013, 19:10 | #3 |
Участник
|
Дело в том что я загружаю неоткуда то а по стандартному функционалу импорта каталога поставщика. Про связь через PriceDiscTableRef я знаю, но я предполагал что она должна создаваться автоматически при создании нового журнала при импорте. Который в дальнейшем автоматом же разносится. Просто чисто логически я предполагал такое поведение системы
|
|