Hi All,
I need your support to make customization to settle all open transaction of a customer.
I am using D365F&O version 10.0.21.
any help highly appreciated.
Thanks
i have already applied this below code but it is not working.. No error!
custTable = CustTable::find(settlement.CustAccount);
// Find the oldest invoice that has not been settled yet
// for this customer you can customize the query find the invoice that you want to settle
select firstonly invCustTrans
order by TransDate asc
where invCustTrans.AccountNum == custTable.AccountNum &&
invCustTrans.TransType == LedgerTransType::Sales &&
!invCustTrans.LastSettleDate;
// Find the oldest payment that has not been settled yet
// for this customer
select firstonly payCustTrans
order by TransDate asc
where payCustTrans.AccountNum == custTable.AccountNum &&
payCustTrans.TransType == LedgerTransType::Payment &&
!payCustTrans.LastSettleDate;
ttsbegin;
//Mark for settlement
specTransExecutionContext = SpecTransExecutionContext::newFromSource(custTable);
specTransManager = SpecTransManager::construct(specTransExecutionContext.parmSpecContext());
specTransManager.insert(invCustTrans.dataAreaId, invCustTrans.TableId, invCustTrans.RecId, invCustTrans.AmountCur, invCustTrans.CurrencyCode, NoYes::No);
specTransManager.insert(payCustTrans.dataAreaId, payCustTrans.TableId, payCustTrans.RecId, payCustTrans.AmountCur, payCustTrans.CurrencyCode, true);
//Settle
CustTrans::settleTransaction(
specTransExecutionContext,
CustTransSettleTransactionParameters::construct());
ttscommit;