// Copyright (C), 2015, CEU Co., Ltd.
// USR Changed by 2015-01-30T16:14:10 Fandy Xie 谢宇帆
// Version : 1.0
// Description : 负库存批号调整,后进先出
// Return :
static void fandy_adjustInventBatch(Args _args)
{
inventSum inventSum, parmInventSum;
inventDimParm parmInventDimParm;
inventBatch inventBatch;
inventDim inventDim, parmInventDim, inventDimLocal;
qty remainQty = -45;
InventDimGroupId dimGroupId;
;
parmInventDim = inventDim::find("V200224796");
parmInventSum = inventSum::find("IK50204", parmInventDim.inventDimId);
dimGroupId = parmInventSum.inventTable().DimGroupId;
setprefix(strfmt("%1,%2,%3",parmInventSum.ItemId, parmInventDim.preFixNotItemDim(dimGroupId), parmInventSum.PhysicalInvent));
parmInventDimParm.initPhysicalInvent(dimGroupId);
parmInventDimParm.InventBatchIdFlag = Noyes::No;
while select inventSum
where inventSum.ItemId == parmInventSum.ItemId &&
inventSum.Closed == NoYes::No &&
inventSum.AvailPhysical > 0
#inventDimJoin(inventSum.InventDimId, inventDim, parmInventDim, parmInventDimParm)
/*
join inventDim
where inventDim.inventDimId == inventSum.InventDimId &&
inventDim.InventLocationId == parmInventDim.InventLocationId &&
inventDim.inventSerialId == parmInventDim.inventSerialId &&
inventDim.InventSiteId == parmInventDim.InventSiteId &&
inventDim.InventColorId == parmInventDim.InventColorId
*/
join inventBatch
order by ProdDate
where inventBatch.inventBatchId == inventDim.inventBatchId &&
inventBatch.itemId == inventSum.ItemId
{
inventDimLocal = inventSum.inventDim();
if (abs(remainQty) > inventSum.AvailPhysical)
{
// doInsertJournalTrans(inventSum, - inventSum.AvailPhysical);
info(strfmt("%1,%2,%3", inventSum.ItemId, inventDimLocal.preFix(), - inventSum.AvailPhysical));
remainQty += inventSum.AvailPhysical;
}
else
{
//doInsertJournalTrans(inventSum, remainQty);
info(strfmt("%1,%2,%3", inventSum.ItemId, inventDimLocal.preFix(), remainQty));
remainQty = 0;
}
if (remainQty == 0)
break;
}
}
转载于:https://my.oschina.net/fandyx/blog/373690