domingo, 2 de julio de 2017

Registrar lineas de la orden de devolución

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;

No hay comentarios: