Un-mark settlement and reverse the customer payment journal transaction

Hi Folks, 

 This post is regarding un-marking the settlement which was done and reverse the transaction of customer. Please find the below piece of code.


public static void unsettlementAndReverse(Voucher _voucher)

{
    CustTable           custTable;
    CustTrans           findCustTrans;
    CustSettlement      custSettlement;
    SpecTransManager    specTransManager;
    AmountCur           balanceAmount;

    select firstonly * from findCustTrans
        where findCustTrans.Voucher == _voucher;
     if (findCustTrans.RecId)
     {
         balanceAmount = findCustTrans.remainAmountCur();
         if (balanceAmount == 0)
         {
             custTable = custTable::find(findCustTrans.AccountNum);
             
             select firstonly custSettlement
                   where custSettlement.TransCompany == findCustTrans.dataAreaId && custSettlement.TransRecId == findCustTrans.RecId && custSettlement.AccountNum == findCustTrans.AccountNum;

             specTransManager = SpecTransManager::newRefTableId(custTable, tablenum(custSettlement), true);
             specTransManager.insert(custSettlement.DataAreaId, custSettlement.TableId, custSettlement.RecId, 		    custSettlement.SettleAmountCur, findCustTrans.CurrencyCode);
             // custSettlement.CustVendSettlement::markOffsets(specTransManager, findCustTrans.CurrencyCode, true);
             // custSettlement.CustVendSettlement::unmarkThisAndRelatedOffsets(specTransManager);
             custSettlement.CustVendSettlement::markThisAndRelatedOffsets(specTransManager,findCustTrans.CurrencyCode);
             if (CustTrans::reverseTransact(custTable, null, settleDatePrinc::DateOfPayment, custSettlement.TransDate))
             {
                specTransManager.deleteAll();
	     }
         }
     }        
}
H@ppy D@xing!!!

No comments:

Post a Comment