Sunday 26 February 2017

Reversing NumberSequence

public void revSequenceByOne(ItemGroupId _groupId)
{
NumberSequenceTable     numberSeqTableRev,numberSeqLastRec;
InventItemGroup         invItemGroup;
str                     autonumber;
   
          ttsBegin;
          invItemGroup = InventItemGroup::find(_groupId);
   
          if (invItemGroup && invItemGroup.NumberSequenceCode)
          {
              autonumber = invItemGroup.NumberSequenceCode;
              numberSeqTableRev      = NumberSequenceTable::findByNaturalKey(autonumber);
   
              select forUpdate firstOnly numberSeqLastRec
                  where numberSeqLastRec.RecId == numberSeqTableRev.RecId;
              if (numberSeqLastRec.RecId && numberSeqLastRec.NextRec != 1)
              {
                 numberSeqLastRec.NextRec -= 1;
                 numberSeqLastRec.update();
              }
          }
          ttsCommit;
}

2 comments:

  1. Single line code: NumberSeq::releaseNumber(REMParameters::numElvAccessId().NumberSequenceId, sel);
    //sel is Num seq regeneration such as sel = NumberSeq::newGetNum(REMParameters::numElvAccessId()).num();*/

    ReplyDelete