Saturday, 4 July 2020

Picking list registration lines serial number x++

public void createOrderLine(WMSOrderTrans  _wmsOrderTrans, real  _qty)
{
EEMC_SalesSerialNumberTmp   salesSerialNumberTmp;
WMSPickingRoute             wmsPickingRoute, wmsPickingRouteLocal;
WMSOrderTrans               wmsOrderTrans, wmsOrderTransUpdate;
WMSJournalName              wmsJournalName;
InventTrans                 inventTrans;
InventDim                   inventDim, inventDimLocal;
real                        insertedQty = 0;
real                        tmpQty;

ttsbegin;
select count(RecId) from salesSerialNumberTmp;
tmpQty  =   salesSerialNumberTmp.RecId;
if(_qty >= tmpQty)
{
while select salesSerialNumberTmp
{
inventDim                           =   _wmsOrderTrans.inventDim();
wmsOrderTrans.ToInventDimId         =   _wmsOrderTrans.ToInventDimId;
wmsOrderTrans.customer              =   _wmsOrderTrans.customer;
wmsOrderTrans.DeliveryPostalAddress =   _wmsOrderTrans.DeliveryPostalAddress;
wmsOrderTrans.dlvDate               =   _wmsOrderTrans.dlvDate;
inventDim.inventSerialId            =   salesSerialNumberTmp.SerialNumber;
wmsOrderTrans.inventDimId           =   InventDim::findOrCreate(inventDim).InventDimId;
wmsOrderTrans.expeditionStatus      =   WMSExpeditionStatus::Activated;
wmsOrderTrans.inventTransRefId      =   _wmsOrderTrans.inventTransRefId;
wmsOrderTrans.orderType             =   _wmsOrderTrans.orderType;
wmsOrderTrans.shipmentId            =   _wmsOrderTrans.shipmentId;
wmsOrderTrans.shipmentIdOriginal    =   _wmsOrderTrans.shipmentIdOriginal;
wmsOrderTrans.orderId               =   _wmsOrderTrans.orderId;
wmsOrderTrans.routeId               =   _wmsOrderTrans.routeId;
wmsOrderTrans.ItemId                =   _wmsOrderTrans.ItemId;
wmsOrderTrans.Qty                   =   1;
wmsOrderTrans.orderType             =   WMSOrderType::OrderPick;
WMSOrderTransType::newWMSOrderTrans(wmsOrderTrans);
wmsOrderTrans.inventTransId         =   _wmsOrderTrans.inventTransId;

wmsOrderTrans.insert();
insertedQty++;
}
if(tmpQty == _qty)
{
delete_from wmsOrderTransUpdate where wmsOrderTransUpdate.RecId == _wmsOrderTrans.RecId;
}
else if(tmpQty < _qty)
{
select forupdate wmsOrderTransUpdate where wmsOrderTransUpdate.RecId == _wmsOrderTrans.RecId;
wmsOrderTransUpdate.qty = _qty - tmpQty;
wmsOrderTransUpdate.update();
}
ttscommit;
}
else
{
warning("Serial numbers are greater than selected line qty, process is aborted.");
}
}

No comments:

Post a Comment