Index: Prod/GADef/KaderDeur.cls.xml =================================================================== diff -u -r1074 -r1842 --- Prod/GADef/KaderDeur.cls.xml (.../KaderDeur.cls.xml) (revision 1074) +++ Prod/GADef/KaderDeur.cls.xml (.../KaderDeur.cls.xml) (revision 1842) @@ -711,10 +711,7 @@ Quit:(%this.Dossier'="") New DosNr,Node Set Node=$S(..ProductieWijzeGetObjectId()="LPR":"PLNR", ..Toepassing.ItemID="GL":"GLNR",1:"HDNR") - Lock +^KPR(0,Node) - Set DosNr=$G(^KPR(0,Node))+1,$P(^KPR(0,Node),"\")=DosNr - Lock -^KPR(0,Node) - Set ..Dossier=##CLASS(%VHSys.Library).AlfaKey(DosNr,"A") + Set ..Dossier=##class(DOM.PM.Maatwerk.ProductUtils).GeefVolgendeDossierCode(Node) Quit ]]> Index: Prod/GAData/Product.cls.xml =================================================================== diff -u -r1358 -r1842 --- Prod/GAData/Product.cls.xml (.../Product.cls.xml) (revision 1358) +++ Prod/GAData/Product.cls.xml (.../Product.cls.xml) (revision 1842) @@ -463,14 +463,8 @@ GenPRNr:%Library.String Index: DOM/PM/impl/DataM/DataMProductCreator.cls.xml =================================================================== diff -u -r1644 -r1842 --- DOM/PM/impl/DataM/DataMProductCreator.cls.xml (.../DataMProductCreator.cls.xml) (revision 1644) +++ DOM/PM/impl/DataM/DataMProductCreator.cls.xml (.../DataMProductCreator.cls.xml) (revision 1842) @@ -295,11 +295,9 @@ 1 %String Node wordt niet uit het generisch product afgeleid. + Set Node = ..GeefWaarde("G",4) + Quit ##class(DOM.PM.Maatwerk.ProductUtils).GeefVolgendeDossierCode(Node) ]]> Index: PRODUKT2.mac.rou =================================================================== diff -u -r1815 -r1842 --- PRODUKT2.mac.rou (.../PRODUKT2.mac.rou) (revision 1815) +++ PRODUKT2.mac.rou (.../PRODUKT2.mac.rou) (revision 1842) @@ -544,12 +544,7 @@ ; ; Volgend dossiernummer NextDossier(Node) - New DosNr,Dossier - Lock +^KPR(0,Node) - Set DosNr=$G(^KPR(0,Node))+1,$P(^KPR(0,Node),"\")=DosNr - Lock -^KPR(0,Node) - Set Dossier=$$ALFAKEY^vhRtn1(DosNr,"A") - Quit Dossier + Quit ##class(DOM.PM.Maatwerk.ProductUtils).GeefVolgendeDossierCode(Node) ; ; Dossierreferentie DossierRef(PRNr) Index: zTryout/CSC/Try.cls.xml =================================================================== diff -u -r1829 -r1842 --- zTryout/CSC/Try.cls.xml (.../Try.cls.xml) (revision 1829) +++ zTryout/CSC/Try.cls.xml (.../Try.cls.xml) (revision 1842) @@ -10,25 +10,113 @@ Do ##class(zTryout.CSC.Try).Try() 1 +Input +%String Grens) { - w !,"Toelevering: "_ToelNr - Set Toelevering = ToeleveringAPI.GeefToelevering(ToelNr) - Set ToeleveringLijnIterator = Toelevering.GeefTypeToeleveringLijnIterator(##class(DOM.LEV.enu.ToeleveringLijnType).Product()) - While (ToeleveringLijnIterator.HasNext()) + Set AAACombo = 703 + Set Max3LetterCombo = 26*26*26 + + If (Input > Grens+(Max3LetterCombo*36)) { - Set ProductToeleveringsLijn = ToeleveringLijnIterator.Next() - w !," Product: "_ProductToeleveringsLijn.GeefProduct().GeefKorttekst() + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New("Maximum grens dossiercode overschreden")) } - Set ToelNr = $Order(^KTO(6332,ToelNr)) + + Set i = 3 + While (i '< 0) + { + Set max = Grens+(i*9*Max3LetterCombo) + If (Input > max) + { + Set Overschot = Input-max + Set AlfaKey = ##class(%VHSys.Library).AlfaKey((Overschot-1)#(Max3LetterCombo)+AAACombo,"A") + Set DossierCode = $E(AlfaKey,1,(3-i))_##class(TECH.Math).Ceil(Overschot/(Max3LetterCombo))_$E(AlfaKey,4-i,3) + Set i = 0 + } + Set i = i - 1 + } } + Else + { + Set DossierCode = ##class(%VHSys.Library).AlfaKey(Input,"A") + } + Quit DossierCode ]]> + + +w ##class(zTryout.CSC.Try).GeefDossierCode("tryout") +1 +Node:%String +%String + Grens) + { + Set DosNr = DosNr - Grens + 47989 + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"AN") + While ((DossierCode?4A) || (DossierCode[0)) + { + Set DosNr = DosNr + 1 + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"AN") + } + Set DosNr = DosNr + Grens - 47989 + } + Else + { + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"A") + } + Set $P(^KPR(0,Node),"\")=DosNr + Lock -^KPR(0,Node) + Quit DossierCode +]]> + + + + +Do ##class(zTryout.CSC.Try).GeefDossier2("tryout") +1 +Node:%String +%String + Grens) + { + Set Overflow = DosNr - Grens + Set GeheleDelingen = ##class(TECH.Math).Floor((Overflow-1)/10) + Set Rest = Overflow - (GeheleDelingen * 10) + Set DossierCode = ##class(%VHSys.Library).AlfaKey(GeheleDelingen*36+Rest+48014,"AN") + } + Else + { + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"A") + } + Set $P(^KPR(0,Node),"\")=DosNr + Lock -^KPR(0,Node) + w DossierCode,! + h 0.1 + } + Quit DossierCode +]]> + + Do ##class(zTryout.CSC.Try).Try2() Index: DOM/PM/Maatwerk/ProductUtils.cls.xml =================================================================== diff -u --- DOM/PM/Maatwerk/ProductUtils.cls.xml (revision 0) +++ DOM/PM/Maatwerk/ProductUtils.cls.xml (revision 1842) @@ -0,0 +1,39 @@ + + + +1 +%RegisteredObject +0 + + +1 +Node:%String +%String + Grens) + { + Set DosNr = DosNr - Grens + 47989 + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"AN") + While ((DossierCode?4A) || (DossierCode[0)) + { + Set DosNr = DosNr + 1 + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"AN") + } + Set DosNr = DosNr + Grens - 47989 + } + Else + { + Set DossierCode = ##class(%VHSys.Library).AlfaKey(DosNr,"A") + } + Set $P(^KPR(0,Node),"\")=DosNr + Lock -^KPR(0,Node) + Quit DossierCode +]]> + + +