Мне нужно обновить заказы на покупку, которые были созданы ранее. Требуется обновить закупочную цену, применив новые торговые соглашения, которые были созданы позже в системе после создания заказа на поставку. Я написал фрагмент кода, но комбинации в торговом соглашении бесконечны.
Есть ли более быстрый способ узнать цену, активную для комбинаций?
Спасибо
public static PriceDiscTable checkPriceDiscTable(PriceDiscAccountRelation _accountRelation,
PriceDiscItemRelation _itemRelation,
InventLocationId _inventLocationId)
{
RecId priceDiscTableRec;
PriceDiscTable priceDiscTable;
TableGroupAll accountCode, ItemCode;
PriceDiscAccountRelation accountRelation;
PriceDiscItemRelation itemRelation;
int totalcases = 3;
int prioritycase = 0;
while(prioritycase < totalcases)
{
switch (priorityCase)
{
case 0:
accountCode = TableGroupAll::Table;
accountRelation = _accountRelation;
itemCode = TableGroupAll::Table;
itemRelation = _itemRelation;
priceDiscTableRec = DAL_PriceFromAgrement::findPriceDiscTable(accountCode, accountRelation,
itemCode, itemRelation, _inventLocationId);
priceDiscTable = PriceDiscTable::findRecId(priceDiscTableRec);
if(priceDiscTable.recId)
{
return priceDiscTable;
}
break;
case 1:
accountCode = TableGroupAll::GroupId;
accountRelation = _accountRelation;
itemCode = TableGroupAll::Table;
itemRelation = _itemRelation;
priceDiscTableRec = DAL_PriceFromAgrement::findPriceDiscTable(accountCode, accountRelation,
itemCode, itemRelation, _inventLocationId);
if(priceDiscTable.recId)
{
return priceDiscTable;
}
break;
case 2:
accountCode = TableGroupAll::All;
accountRelation = "";
itemCode = TableGroupAll::Table;
itemRelation = _itemRelation;
priceDiscTableRec = DAL_PriceFromAgrement::findPriceDiscTable(accountCode, accountRelation,
itemCode, itemRelation, _inventLocationId);
if(priceDiscTable.recId)
{
return priceDiscTable;
}
break;
}
prioritycase++;
}
return priceDiscTable;
}