Friday, February 18, 2022

Production Order Reset status functionality using X++

  public void prodStatusChange(ProdId _productionId)

    {

        ProdMultiStatusDecrease prodMultiStatusDecrease;

        ProdParmStatusDecrease prodParmStatusDecrease;

        ProdTable prodTable;        


        ProdId prodId = _productionId;

        Args   args    = new Args();

        ttsbegin;


        prodTable = ProdTable::find(prodId,true);


        if (prodTable.ProdStatus != prodStatus::Created)

        {

            args.record(prodTable);

                

            prodParmStatusDecrease.clear();


            prodParmStatusDecrease.initFromProdTable(prodTable);

            if(prodTable.ProdStatus == ProdStatus::CostEstimated)

            {

                prodParmStatusDecrease.WantedStatus = ProdStatus::Created;

            }

            else if (prodTable.ProdStatus == ProdStatus::Scheduled)

            {

                prodParmStatusDecrease.WantedStatus = ProdStatus::CostEstimated;


            }


            prodParmStatusDecrease.ParmId = NumberSeq::newGetNum(CompanyInfo::numRefParmId()).num();

            prodParmStatusDecrease.insert();


            prodMultiStatusDecrease = prodMultiStatusDecrease::construct();

            prodMultiStatusDecrease.initParmBuffer(prodParmStatusDecrease);

            prodMultiStatusDecrease.parmId(prodParmStatusDecrease.ParmId);

            prodMultiStatusDecrease.runOperation();

        }

        ttsCommit;      

    }

No comments:

Post a Comment

Sample Dialog Syntax - 1

 class AffiliationAutoAssignment extends RunBaseBatch {     // 1. Class Declaration and Pack variables     #define.CurrentVersion(1)     #de...