Ошибку удалось исправить смодификацией метода calcMarkedCostValue таблицы InventTrans
<div class='XPPtop'>X++</div><div class='XPP'>
[color=:blue]static[/color] [color=:blue]container[/color] calcMarkedCostValue(
InventRefTransId _refTransId,
ItemId _itemId,
InventDimId _inventDimId,
Boolean _inclPhysicalCostValue
)
{
InventTrans inventTrans;
InventQty qty;
CostAmount value;
[color=:blue]select[/color] [color=:blue]sum[/color](qty),[color=:blue]sum[/color](costAmountPosted),[color=:blue]sum[/color](costAmountAdjustment) [color=:blue]from[/color] inventTrans
[color=:blue]index[/color] hint TransIdIdx
[color=:blue]where[/color] inventTrans.inventTransId [color=:blue]==[/color] _refTransId &&
inventTrans.statusIssue [color=:blue]==[/color] StatusIssue::None &&
inventTrans.statusReceipt [color=:blue]==[/color] StatusReceipt::Purchased &&
[color=:green]//добавил проверку -->
[/color] inventTrans.PackingSlipReturned [color=:blue]==[/color] NoYes::No &&
[color=:green]//добавил проверку <--
[/color] inventTrans.ItemId [color=:blue]==[/color] _itemId;
qty += inventTrans.qty;
value += inventTrans.costValue();
[color=:blue]if[/color] (_inclPhysicalCostValue)
{
[color=:blue]select[/color] [color=:blue]sum[/color](qty),[color=:blue]sum[/color](costAmountPhysical) [color=:blue]from[/color] inventTrans
[color=:blue]index[/color] hint TransIdIdx
[color=:blue]where[/color] inventTrans.inventTransId [color=:blue]==[/color] _refTransId &&
inventTrans.statusIssue [color=:blue]==[/color] StatusIssue::None &&
inventTrans.statusReceipt [color=:blue]==[/color] StatusReceipt::Received &&
inventTrans.ItemId [color=:blue]==[/color] _itemId;
qty += inventTrans.qty;
value += inventTrans.CostAmountPhysical;
}
[color=:blue]return[/color] [qty,value];
}</div>
Вопрос - на сколько это корректно?
|