Saturday, 4 July 2020

Item arravial journal x++

public void createJournalLines(WMSJournalTable  _wmsJournalTable, WMSJournalTrans  _wmsJournalTrans, real  _lineCount)
    {
        EEMC_SerialNumberTmp    serialNumberTmp;
        WMSJournalTable         wmsJournalTable, wmsJournalTableLocal;
        WMSJournalTrans         wmsJournalTrans, wmsJournalTransLocal;
        WMSJournalName          wmsJournalName;
        InventTrans             inventTrans;
        InventDim               inventDim, inventDimLocal;
        int                     lineNum = _lineCount + 1;
       
        ttsbegin;
        inventDim = _wmsJournalTrans.inventDim();
        wmsJournalTableLocal = _wmsJournalTrans.wmsJournalTable(true);
        while select serialNumberTmp
        {
            wmsJournalTrans.JournalId        =      _wmsJournalTable.journalId;
            wmsJournalTrans.LineNum          =      lineNum;
            wmsJournalTrans.TransDate        =      today();
            wmsJournalTrans.ItemId           =      _wmsJournalTrans.ItemId;
            wmsJournalTrans.Qty              =      1;
            wmsJournalTrans.inventTransId    =      _wmsJournalTrans.inventTransId;
            inventDim.inventSerialId         =      serialNumberTmp.SerialNumber;
            wmsJournalTrans.InventDimId      =      InventDim::findOrCreate(inventDim).InventDimId;
            wmsJournalTrans.insert();
            lineNum++;
        }
        select count(RecId) from wmsJournalTransLocal where wmsJournalTransLocal.journalId == _wmsJournalTable.journalId;
        wmsJournalTableLocal.numOfLines =  wmsJournalTransLocal.RecId - 1;
        wmsJournalTableLocal.update();
        ttscommit;
    }

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