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