Sales return registration through code
public boolean createSalesReturnRegistration(SalesTable _salesTable)
{
SalesLine salesLine;
SalesReturnOrderLineRegister salesReturnOrderLineRegister;
TradeOrderLineRegister tradeOrderlineRegister;
InventTrans inventTrans;
inventTransOrigin inventTransOrigin;
TmpInventTransWMS TmpInventTransWMS;
InventTransWMS_Register inventTransWMS_register;
boolean retValue = false;
WMSParameters wmsParameters = WMSParameters::find();
Args args = new Args();
try
{
while select forUpdate salesLine
where salesLine.SalesId == _salesTable.SalesId &&
salesLine.SalesType == SalesType::ReturnItem &&
(salesLine.ReturnStatus == ReturnStatusLine::Awaiting)
{
args.record(salesLine);
tradeOrderLineRegister = SalesReturnOrderLineRegister::construct();
tradeOrderLineRegister.parmArgs(args);
tradeOrderLineRegister.init();
salesReturnOrderLineRegister = tradeOrderLineRegister;
salesReturnOrderLineRegister.runPreSuper();
salesLine.ReturnDispositionCodeId = dispositionCode;
salesLine.update();
select firstOnly crossCompany inventTrans
join RecId, InventTransId from inventTransOrigin
where inventTransOrigin.InventTransId == salesLine.InventTransId
&& inventTrans.InventTransOrigin == inventTransOrigin.RecId;
inventTransWMS_register = inventTransWMS_register::newStandard(tmpInventTransWMS);
tmpInventTransWMS.clear();
tmpInventTransWMS.initFromInventTrans(inventTrans);
tmpInventTransWMS.ItemId = salesLine.ItemId;
tmpInventTransWMS.insert();
inventTransWMS_register.writeTmpInventTransWMS(tmpInventTransWMS,
inventTrans,
inventTrans.inventDim());
if (inventTransWMS_register.updateInvent(salesLine))
{
salesLine.reread();
if (salesLine.ReturnStatus != ReturnStatusLine::Registered)
{
retValue = false;
break;
}
retValue = true;
}
else
{
retValue = false;
}
}
}
catch
{
retValue = false;
}
return retValue;
}
Comments
Post a Comment