Забавно... ВЕСЬ функционал для этого есть. Не хватает только самой малости - непосредственно даты заказа / закупки (не создания, а именно даты, которую можно менять и которая, в общем случае, равна дате заказа/закупки).
Зачем? Да просто на эту дату можно производить поиск ценовых соглашений, и подтягивать цену не сегодняшнюю (как в функционале), а на старую дату - дату создания заказа.
Модификация чрезвычайно простая, думаю, многим пригодиться. Просто пару строк подправить.
С Уважением,
Георгий.
Кстати, вот и модификация, сразу уж.
класс PriceDisc метод newFromSalesPurchLine
PHP код:
static PriceDisc newFromSalesPurchLine( SalesPurchLine _salesPurchLine,
InventDim _inventDim = _salesPurchLine.inventDim(),
//SalesPriceDate_GNRD -->
TransDate _salesPurchdate = systemDateGet())
//SalesPriceDate_GNRD <--
{
return new PriceDisc(_salesPurchLine.moduleType(),
_salesPurchLine.itemId,
_inventDim,
_salesPurchLine.purchSalesUnit,
_salesPurchDate, //systemDateGet <-- SalesPriceDate_GNRD
_salesPurchLine.salesPurchQty,
_salesPurchLine.orderAccount(),
_salesPurchLine.currencyCode);
}
Мап SalesPurchLine метод setPriceAgreement
PHP код:
server void setPriceAgreement(InventDim _inventDim,
//SalesPriceDate_GNRD -->
TransDate _salesPurchDate = systemDateGet()
//SalesPriceDate_GNRD <--
)
{
PriceDisc priceDisc;
;
priceDisc = PriceDisc::newFromSalesPurchLine(this, _inventDim, _salesPurchDate);
.........
}
Теперь осталось подкорректировать только поиск ценовых соглашений. В заказе, например, это происходит в методе setPriceAgreement таблицы SalesLine
PHP код:
client server void setPriceAgreement(InventDim _inventDim)
{
this.SalesPurchLine::setPriceAgreement(_inventDim,
//SalesPriceDate_GNRD -->
this.salesTable().SalesDate_FLX //SalesDate - это наша "прикрученная" дата заказа
//SalesPriceDate_GNRD <--
);
}
Удачи всем!
С Уважением,
Георгий