Para poder registrar las lineas de las ordenes de devolución por código he hecho esta solución, esto sirve para poder poder terminar de hacer el empaquetado de la orden, ustedes pueden implementarla para su desarrollo, a mi me ha servido hasta el momento, con este codigo solo es necesario detallar el SalesId de la SalesLine que van hacer recibidas y asignarla el ReturnDispositionCode:
TradeNonStockedRegisterForm tradeNonStockedRegisterForm;
TradeNonStockedRegisterTmp tradeNonStockedRegisterTmpUpdated;
SalesLine salesline;
str errorMsg = "";
System.Exception error;
ReturnDispositionCodeId returnDispositionCode = "Return"
try
{
while select forUpdate salesline
where salesline.SalesId == _salesId
&& salesline.ReturnStatus == ReturnStatusLine::Awaiting
{
salesline.ReturnDispositionCodeId = returnDispositionCode ;
ttsBegin;
salesline.doUpdate();
ttsCommit;
tradeNonStockedRegisterForm = TradeNonStockedRegisterForm::newFromSalesPurchLine(salesline);
tradeNonStockedRegisterForm.populatePendingQuantityRows(tradeNonStockedRegisterTmpUpdated);
tradeNonStockedRegisterForm.insertFromTradeNonStockedRegisterTmp(tradeNonStockedRegisterTmpUpdated, tradeNonStockedRegisterTmpUpdated,
tradeNonStockedRegisterTmpUpdated.StatusReceipt == StatusReceipt::Ordered? tradeNonStockedRegisterTmpUpdated.Quantity : -tradeNonStockedRegisterTmpUpdated.Quantity, true);
tradeNonStockedRegisterForm.parmSelectedToRegisterNow().in(tradeNonStockedRegisterTmpUpdated.RecId);
tradeNonStockedRegisterForm.register(tradeNonStockedRegisterTmpUpdated);
}
}
catch (Exception::CLRError)
{
error = CLRInterop::getLastException();
errorMsg = error.ToString();
}
tradeNonStockedRegisterForm.populatePendingQuantityRows(tradeNonStockedRegisterTmpUpdated);
return errorMsg;