Насколько я понял, класс InventSum и его потомки не подходят для моей задачи, т.к. возвращают не обороты по складу (приход/расход)
, а следующие величины [в наличии, получено, отгружено ] .
Поэтому я решил создать свои методы и опубликовать , чтобы выслушать критику и советы.
PHP код:
// Расход
public static InventQty getIssueQty(Itemid _itemId,InventDimId _inventDimId,TransDate _transDate){
InventTrans inventTrans;
;
select sum(qty)
from InventTrans
where InventTrans.itemid == _itemid
&& InventTrans.direction == inventdirection::Issue
&& ( InventTrans.transtype == InventTransType::InventTransfer
|| InventTrans.transtype == InventTransType::Sales
|| InventTrans.transtype == InventTransType::InventCounting )
&& ( InventTrans.statusissue == StatusIssue::Sold
|| InventTrans.statusissue == StatusIssue::Deducted
|| InventTrans.statusissue == StatusIssue::Picked
)
&& InventTrans.inventdimid == _InventDimId
&& InventTrans.datephysical == _transdate;
return InventTrans.Qty;
}
// Приход
public static InventQty getReceiptQty(Itemid _itemId,InventDimId _inventDimId,TransDate _transDate){
InventTrans inventTrans;
;
select sum(qty)
from InventTrans
where InventTrans.itemid == _itemid
&& InventTrans.direction == inventdirection::Receipt
&& (InventTrans.transtype == InventTransType::InventTransfer
|| InventTrans.transtype == InventTransType::Purch
|| InventTrans.transtype == InventTransType::InventCounting)
&& (InventTrans.statusreceipt == StatusReceipt::Purchased
|| InventTrans.statusreceipt == StatusReceipt::Received
|| InventTrans.statusreceipt == StatusReceipt::Arrived)
&& InventTrans.inventdimid == _InventDimId
&& InventTrans.datephysical == _transdate;
return InventTrans.Qty;
}