How to calculate On Hand Inventory Per Day
How to calculate On Hand Inventory Per Day
class KK_OnHandPerDay
{
/// <summary>
/// Runs the class with the specified arguments.
/// </summary>
/// <param name = "_args">The specified arguments.</param>
public static void main(Args _args)
{
ItemId itemId;
InventTrans inventTrans;
InventDim inventDimCriteria, inventDimLoc;
InventDimParm inventDimParm;
InventSumDateDim inventSumDateDim;
TransDate start, finish;
int c;
int onHandTotal;
InventLocationId inventLocationIdLoc;
start = str2date("6/24/2019", 213);//3/12/2019
finish = str2date("6/25/2019", 213);//3/30/2019
onHandTotal = 0;
while(start != finish)
{
c++;
//itemId = "00012B";
itemId = "BOMRM2";
while select inventTrans where inventTrans.ItemId == itemId
{
info(strFmt("ItemId-> %1--- InventDimId-> %2",inventTrans.ItemId, inventTrans.inventDimId));
while select inventDimLoc where inventDimLoc.inventDimId == inventTrans.inventDimId
{
info(strFmt("InventDimId-> %1--- InventLocationId-> %2", inventDimLoc.inventDimId,inventDimLoc.InventLocationId));
inventLocationIdLoc = inventDimLoc.InventLocationId;
inventDimCriteria.InventLocationId = inventLocationIdLoc;
info(strFmt("inventLocationIdLoc -> %1", inventLocationIdLoc));
inventDimParm.initFromInventDim(inventDimCriteria);
inventSumDateDim =
InventSumDateDim::newParameters(start,
itemId,
inventDimCriteria,
inventDimParm);
info(strfmt("Date: %1 on hand: %2", start, num2str(inventSumDateDim.postedQty() + inventSumDateDim.receivedQty() - inventSumDateDim.deductedQty(), 0, 2, 1, 1)));
info(strFmt("postedQty -%1 receivedQty -%2 deductedQty -%3",inventSumDateDim.postedQty(), inventSumDateDim.receivedQty(), inventSumDateDim.deductedQty()));
onHandTotal += (inventSumDateDim.postedQty() + inventSumDateDim.receivedQty() - inventSumDateDim.deductedQty());
}
}
start += 1;
}
info(strfmt("Avg on hand per year: %1", onHandTotal / 365));
}
}
Comments
Post a Comment