Buscar en este blog

viernes, 6 de octubre de 2017

Autoliquidación de transacciones (Auto settlement) por código X++ - Dynamics Ax 2012

Para hacer la liquidación en automático de dos transacciones podemos usar el siguiente código:

static void autoSettlementExWill(Args _args)
{
    VendTrans                   vendTransFrom, vendTransTO;
    VendTransOpen               vendTransOpenFrom, vendTransOpenTo;
    CustVendOpenTransManager    SettleManager;
    Common                      originator;
    boolean                     settled;

    try
    {
        vendTransFrom = vendTrans::find(5637155127);
        vendTransTO = vendTrans::find(5637155128);
               
        //Revisando que no esten erradas las transacciones
        if(!vendTransFrom.Closed && !vendTransTo.Closed)
        {
            select firstonly vendTransOpenFrom
                where vendTransOpenFrom.RefRecId == vendTransFrom.RecId
                && vendTransOpenFrom.AccountNum == vendTransFrom.AccountNum;

            select firstonly vendTransOpenTo
                where vendTransOpenTo.RefRecId == vendTransTo.RecId
                && vendTransOpenTo.AccountNum == vendTransTo.AccountNum;

            originator = vendTransFrom.vendInvoiceJour().vendTable_InvoiceAccount();
            SettleManager = custVendOpenTransManager::construct(originator);  //en el originator solo hay custtable y vendtable en el swicht
            SettleManager.updateTransMarked(vendTransOpenFrom, true);
            SettleManager.updateTransMarked(vendTransOpenTo, true);
            settled = SettleManager.settleMarkedTrans();
           
            info(strFmt("Asiento liquidado: %1, con %2", vendTransFrom.Voucher, vendTransTO.Voucher));
        }
        else
            warning(strFmt("Las transacciones de los asientos: %1 y %2, no estan abiertas.", vendTransFrom.Voucher, vendTransTO.Voucher));
    }
    catch
    {
        error(strFmt("No fue posible liquidar las transacciones de proveedor. Asientos no liquidados: %1, con %2",
        vendTransFrom.Voucher, vendTransTO.Voucher));
    }

}




Post relacionados:
Crear y postear un LedgerVoucher en Ax 2012
Usuario actual, nombre de usuario, moneda de la empresa Dynamics Ax 2012
Lookup para dimensiones financieras personalizadas - Microsoft Dynamics Ax 2012 R2



No olvides que te puedes unir a la página en Facebook Aprendiendo Dynamics Ax donde únicamente se tratan temas de desarrollo y se busca crear una comunidad de desarrollador@s de Ax en nuestro idioma. 




No hay comentarios.:

Publicar un comentario