Settle Invoice X++ Ax2012



static void theAxapta_AutosettlePayment( AccountNum custAccount, str invoiceNum)
{
        CustTable custTable;
        CustTrans invCustTrans, payCustTrans;
        SpecTransManager manager;
        CustVendTransData custVendTransData;
        ;
        custTable = CustTable::find("Cust-0000002");
    
        // Find the oldest unsettled invoice
        select firstonly invCustTrans
      //  order by TransDate asc
        where invCustTrans.AccountNum == custTable.AccountNum &&
        invCustTrans.TransType == LedgerTransType::Sales &&
        invCustTrans.Invoice == "Inv21000029528" &&
        !invCustTrans.closed;
    
        // Find the oldest unsettled payment
        select firstonly payCustTrans
     //   order by TransDate asc
        where payCustTrans.AccountNum == custTable.AccountNum &&
        payCustTrans.TransType == LedgerTransType::Payment &&
        payCustTrans.Invoice =="Inv21000029528" ;
       
      //  &&   !payCustTrans.closed;
        ttsbegin;
    
        // Create an object of the CustVendTransData class with the invoice transaction as parameter
        custVendTransData = CustVendTransData::construct(invCustTrans);
    
        // Mark it for settlement
        custVendTransData.markForSettlement(CustTable);
    
        // Create an object of the CustVendTransData class with the payment transaction as parameter
        custVendTransData = CustVendTransData::construct(payCustTrans);
    
        //mark it for settlement
        custVendTransData.markForSettlement(CustTable);
        ttscommit;
        // Settle all marked transactions
        if(CustTrans::settleTransact(custTable, null, true,
        SettleDatePrinc::DateOfPayment, systemdateget()))
        info("Transactions settled");
}

Leave Comment

Your email address will not be published. Required fields are marked *