Tuesday, March 9, 2021

CustTable form Button Click to Update customer status

 

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