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.");
}
}
{
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