CustTable Form Button Click method to Update customer status under the current customer account mapped to child accounts
void clicked()
{
CustTable custTableLoc;
CustTable custTableCur = CustTable::find(custTable.AccountNum);
GOD_CustStatusChangeTracking statusTracking;
int counter;
super();
info(strFmt("%1 - %2", custTableCur.GOD_StatusChangeReason, custTableCur.GOD_CustStatus));
ttsBegin;
while select forUpdate custTableLoc
where custTableLoc.GOD_ParentCustomer == custTableCur.AccountNum
&& custTableLoc.InvoiceAccount == custTableCur.AccountNum
&& custTableLoc.AccountNum != custTableCur.AccountNum
{
if(custTableLoc.GOD_CustStatus != GOD_CustStatus::None)
{
custTableLoc.Blocked = CustVendorBlocked::All;
}
else
{
custTableLoc.Blocked = CustVendorBlocked::No;
}
custTableLoc.GOD_StatusChangeReason = custTableCur.GOD_StatusChangeReason;
custTableLoc.GOD_CustStatus = custTableCur.GOD_CustStatus;
custTableLoc.update();
statusTracking.clear();
statusTracking.OldCustStatus = custTableLoc.GOD_CustStatus;
statusTracking.AccountNum = custTableLoc.AccountNum;
statusTracking.ReasonNotes = custTableCur.GOD_StatusChangeReason;
statusTracking.NewCustStatus = custTableLoc.orig().GOD_CustStatus;
statusTracking.insert();
counter++;
}
ttsCommit;
info(strFmt("%1 child account's status has been changed", counter));
}
No comments:
Post a Comment