public void registerTransaction(SalesLine salesLine)
    {
        InventTrans             inventTrans,inventTransIdReturn;
        InventDim               inventDim,_inventDim;
        InventTransWMS_Register inventTransWMS_register;
        TmpInventTransWMS       tmpInventTransWMS;
        InventTransOrigin       inventTransOrigin;
 
        inventTrans = InventTrans::findTransId(salesLine.InventTransId);
        if(inventTrans && inventTrans.StatusReceipt != StatusReceipt::Registered)
        {
            inventDim = inventTrans.inventDim();
            inventTransWMS_register = inventTransWMS_register::newStandard(tmpInventTransWMS);
             
            while select inventTransIdReturn
                      join inventTransOrigin
                  where inventTransOrigin.InventTransId == salesLine.InventTransIdReturn
                            && inventTransIdReturn.InventTransOrigin == inventTransOrigin.RecId
                            && inventTransIdReturn.DataAreaId == inventTransOrigin.DataAreaId
                    join _inventDim
                          where _inventDim.inventDimId == inventTransIdReturn.inventDimId
                            && inventTransIdReturn.DataAreaId == _inventDim.DataAreaId
                            && inventTransIdReturn.DataAreaId ==curExt()
            {
                tmpInventTransWMS.clear();
                tmpInventTransWMS.initFromInventTrans(inventTrans);

                if(_inventDim.inventSerialId)
                {
                    tmpInventTransWMS.InventQty = 1;
                    inventDim.inventSerialId= InventDim::find(inventTransIdReturn.InventDimId).inventSerialId;                    
                    inventDim.wmsLocationId  = InventLocation::find(_inventDim.inventLocationId).RetailWMSLocationIdDefaultReturn;
                }
                tmpInventTransWMS.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;
                tmpInventTransWMS.insert();
            }
         
            inventTransWMS_register.writeTmpInventTransWMS(tmpInventTransWMS,
                                                   inventTrans,
                                                   inventTrans.inventDim());
            inventTransWMS_register.updateInvent(inventTrans);
        }
    }

=============================================================

dev sample:

static void DEV_InventTransRegistrationFromCode(Args _args)
{
    InventTransWMS_Register inventTransWMS_register;
    InventTrans             inventTrans = InventTrans::findTransId( "<inventTransId>");
    InventSerialId          id1 = "<serialId1>", id2 = "<serialId2>" ;
    TmpInventTransWMS       tmpInventTransWMS;
    InventDim               inventDim = inventTrans.inventDim();
   
    inventTransWMS_register = inventTransWMS_register::newStandard(tmpInventTransWMS);
   
    tmpInventTransWMS.clear();
    tmpInventTransWMS.initFromInventTrans(inventTrans);
    tmpInventTransWMS.InventQty = 1;
    inventDim.inventSerialId = id1;
    tmpInventTransWMS.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;
    tmpInventTransWMS.insert();
   
    inventTransWMS_register.writeTmpInventTransWMS(tmpInventTransWMS,
                                                   inventTrans,
                                                   inventTrans.inventDim());
   
    tmpInventTransWMS.clear();
    tmpInventTransWMS.initFromInventTrans(inventTrans);
    tmpInventTransWMS.InventQty = 1;
    inventDim.inventSerialId = id2;
    tmpInventTransWMS.InventDimId = inventDim::findOrCreate(inventDim).inventDimId;
    tmpInventTransWMS.insert();
   
    inventTransWMS_register.writeTmpInventTransWMS(tmpInventTransWMS,
                                                   inventTrans,
                                                   inventTrans.inventDim());
   
    inventTransWMS_register.updateInvent(inventTrans);   
}

 


 

arrow
arrow
    文章標籤
    dynamic ax D365 return order
    全站熱搜

    lionlionchopper 發表在 痞客邦 留言(0) 人氣()