KLASJ ;Klassificatie (job opkuis) [ 09/29/95 2:53 PM ] ; Set Q="K" Do ^cA604 ; Set ^KLAS("MM")=1 ; Job is opgestart Lock (^KLAS,^KPR,^KOFKL,^KLPUTZ("N"),^KLPUTZ("S"),^KKOV) Set ^KLAS("MM")=2 ; Job heeft gelockt Do ClassMethod^vhLib("BL.EC.Product","ExportAll") ; Opbouw van XML bestand Set $ZT="^cA407" ; ; Produkten ; PROD Set ^KLAS("M")="Bezig met KPR,KPH" Set KHS="" For Set KHS=$O(^KPH(KHS)) Quit:KHS="" Do .Quit:'$D(^KLAS("M",KHS)) .Set KHS("N")=$P(^KLAS("M",KHS),"\") Set:KHS("N")="" KHS("N")=" " .Set KGS="" .For Set KGS=$O(^KPH(KHS,KGS)) Quit:KGS="" Do ..Quit:'$D(^KLAS("M",KGS)) ..Set KGS("N")=$P(^KLAS("M",KGS),"\",2) Set:KGS("N")="" KGS("N")=" " ..Set KSS="" ..For Set KSS=$O(^KPH(KHS,KGS,KSS)) Quit:KSS="" Do ...Quit:'$D(^KLAS("M",KSS)) ...Set KSS("N")=$P(^KLAS("M",KSS),"\",3) Set:KSS("N")="" KSS("N")=" " ...Set KortText="" ...For Set KortText=$O(^KPH(KHS,KGS,KSS," ",KortText)) Quit:KortText="" Do ....Set PRNr=^KPH(KHS,KGS,KSS," ",KortText) ....Kill ^KPH(KHS,KGS,KSS," ",KortText),^KPM(" ",KHS,KGS,KSS,KortText) ....Set ^KPH(KHS("N"),KGS("N"),KSS("N")," ",KortText)=PRNr ....Set ^KPM(" ",KHS("N"),KGS("N"),KSS("N"),KortText)=PRNr ....Set I="I" ....For Set I=$O(^KPR(PRNr,I)) Quit:$E(I)'="I" Do .....Set R=^KPR(PRNr,I) .....Set $P(R,"\")=KHS("N") .....Set $P(R,"\",2)=KGS("N") .....Set $P(R,"\",3)=KSS("N") .....Set $P(R,"\",4)=$$GETKEY^KLASS(KSS("N")) .....Set ^KPR(PRNr,I)=R Lock -^KPR ; ; Uitzonderingen ; NUITZ Set ^KLAS("M")="Bezig met KLPUTZ(""N"")" Set KHS="" For Set KHS=$O(^KLPUTZ("IN",KHS)) Quit:KHS="" Do .Quit:'$D(^KLAS("M",KHS)) .Set KHS("N")=$P(^KLAS("M",KHS),"\") .Set KGS="" .For Set KGS=$O(^KLPUTZ("IN",KHS,KGS)) Quit:KGS="" Do ..If KGS'=0 Quit:'$D(^KLAS("M",KGS)) Set KGS("N")=$P(^KLAS("M",KGS),"\",2) ..Else Set KGS("N")=0 ..Set KSS="" ..For Set KSS=$O(^KLPUTZ("IN",KHS,KGS,KSS)) Quit:KSS="" Do ...If KSS'=0 Quit:'$D(^KLAS("M",KSS)) Set KSS("N")=$P(^KLAS("M",KSS),"\",3) ...Else Set KSS("N")=0 ...Set PRNr="" ...For Set PRNr=$O(^KLPUTZ("IN",KHS,KGS,KSS,PRNr)) Quit:PRNr="" Do ....Set KLNr="" ....For Set KLNr=$O(^KLPUTZ("IN",KHS,KGS,KSS,PRNr,KLNr)) Quit:KLNr="" Do .....Set Next="" .....For Set Next=$O(^KLPUTZ("N",KLNr,KHS,KGS,KSS,PRNr,Next)) Quit:Next="" Do ......Set R=^KLPUTZ("N",KLNr,KHS,KGS,KSS,PRNr,Next) ......Kill ^KLPUTZ("N",KLNr,KHS,KGS,KSS,PRNr,Next) ......Quit:KHS("N")=""!(KGS("N")="")!(KSS("N")="")!(R="") ......Set ^KLPUTZ("N",KLNr,KHS("N"),KGS("N"),KSS("N"),PRNr,Next)=R .....Kill ^KLPUTZ("IN",KHS,KGS,KSS,PRNr,KLNr) .....Quit:KHS("N")=""!(KGS("N")="")!(KSS("N")="") .....Set ^KLPUTZ("IN",KHS("N"),KGS("N"),KSS("N"),PRNr,KLNr)="" Lock -^KLPUTZ("N") ; ; Schaduwuitzonderingen ; SUITZ Set ^KLAS("M")="Bezig met KLPUTZ(""S"")" Set KHS="" For Set KHS=$O(^KLPUTZ("IS",KHS)) Quit:KHS="" Do .Quit:'$D(^KLAS("M",KHS)) .Set KHS("N")=$P(^KLAS("M",KHS),"\") .Set KGS="" .For Set KGS=$O(^KLPUTZ("IS",KHS,KGS)) Quit:KGS="" Do ..If KGS'=0 Quit:'$D(^KLAS("M",KGS)) Set KGS("N")=$P(^KLAS("M",KGS),"\",2) ..Else Set KGS("N")=0 ..Set KSS="" ..For Set KSS=$O(^KLPUTZ("IS",KHS,KGS,KSS)) Quit:KSS="" Do ...If KSS'=0 Quit:'$D(^KLAS("M",KSS)) Set KSS("N")=$P(^KLAS("M",KSS),"\",3) ...Else Set KSS("N")=0 ...Set PRNr="" ...For Set PRNr=$O(^KLPUTZ("IS",KHS,KGS,KSS,PRNr)) Quit:PRNr="" Do ....Set KLNr="" ....For Set KLNr=$O(^KLPUTZ("IS",KHS,KGS,KSS,PRNr,KLNr)) Quit:KLNr="" Do .....Set Next="" .....For Set Next=$O(^KLPUTZ("S",KLNr,KHS,KGS,KSS,PRNr,Next)) Quit:Next="" Do ......Set R=^KLPUTZ("S",KLNr,KHS,KGS,KSS,PRNr,Next) ......Kill ^KLPUTZ("S",KLNr,KHS,KGS,KSS,PRNr,Next) ......Quit:KHS("N")=""!(KGS("N")="")!(KSS("N")="")!(R="") ......Set ^KLPUTZ("S",KLNr,KHS("N"),KGS("N"),KSS("N"),PRNr,Next)=R .....Kill ^KLPUTZ("IS",KHS,KGS,KSS,PRNr,KLNr) .....Quit:KHS("N")=""!(KGS("N")="")!(KSS("N")="") .....Set ^KLPUTZ("IS",KHS("N"),KGS("N"),KSS("N"),PRNr,KLNr)="" Lock -^KLPUTZ("S") ; ; Offertes ; OFF Set ^KLAS("M")="Bezig met KOFKL" Set KLNr=0 For Set KLNr=$O(^KOFKL(KLNr)) Quit:KLNr="" Do .Set OFFNr="" .For Set OFFNr=$O(^KOFKL(KLNr,"F",OFFNr)) Quit:OFFNr="" Do ..Set KHS=1000 ..For Set KHS=$O(^KOFKL(KLNr,"F",OFFNr,KHS)) Quit:KHS=""!($E(KHS,1,3)="ZZZ") Do ...Quit:'$D(^KLAS("M",KHS)) ...Set KHS("N")=$P(^KLAS("M",KHS),"\") ...Set KGS="" ...For Set KGS=$O(^KOFKL(KLNr,"F",OFFNr,KHS,KGS)) Quit:KGS="" Do ....If KGS'=0 Quit:'$D(^KLAS("M",KGS)) Set KGS("N")=$P(^KLAS("M",KGS),"\",2) ....Else Set KGS("N")=0 ....Set KSS="" ....For Set KSS=$O(^KOFKL(KLNr,"F",OFFNr,KHS,KGS,KSS)) Quit:KSS="" Do .....If KSS'=0 Quit:'$D(^KLAS("M",KSS)) Set KSS("N")=$P(^KLAS("M",KSS),"\",3) .....Else Set KSS("N")=0 .....Set PRNr="" .....For Set PRNr=$O(^KOFKL(KLNr,"F",OFFNr,KHS,KGS,KSS,PRNr)) Quit:PRNr="" Do ......Set R=^KOFKL(KLNr,"F",OFFNr,KHS,KGS,KSS,PRNr) ......Kill ^KOFKL(KLNr,"F",OFFNr,KHS,KGS,KSS,PRNr) ......Quit:KHS("N")=""!(KGS("N")="")!(KSS("N")="") ......Set ^KOFKL(KLNr,"F",OFFNr,KHS("N"),KGS("N"),KSS("N"),PRNr)=R Lock -^KOFKL ; ; Potentieel ; POT Set ^KLAS("M")="Bezig met KKOV" Set KLNr=0 For Set KLNr=$O(^KKOV(KLNr)) Quit:KLNr="" Do .Set KHS="" .For Set KHS=$O(^KKOV(KLNr,KHS)) Quit:KHS="" Do ..Quit:'$D(^KLAS("M",KHS)) ..Set KHS("N")=$P(^KLAS("M",KHS),"\") ..Set KGS="" ..For Set KGS=$O(^KKOV(KLNr,KHS,KGS)) Quit:KGS="" Do ...If KGS'=0 Quit:'$D(^KLAS("M",KGS)) Set KGS("N")=$P(^KLAS("M",KGS),"\",2) ...Else Set KGS("N")=0 ...Set FABNr="" ...For Set FABNr=$O(^KKOV(KLNr,KHS,KGS,FABNr)) Quit:FABNr="" Do ....Set LEVNr="" ....For Set LEVNr=$O(^KKOV(KLNr,KHS,KGS,FABNr,LEVNr)) Quit:LEVNr="" Do .....Set R=^KKOV(KLNr,KHS,KGS,FABNr,LEVNr) .....Kill ^KKOV(KLNr,KHS,KGS,FABNr,LEVNr) .....If KHS("N")=""!(KGS("N")="") Do Quit ......Set O=$P(R,D,5) ......If LEVNr,$D(^KVER1(LEVNr)) Set $P(R,D,11)=$P(^KVER(^KVER1(LEVNr),0),D,10) ......If FABNr,$D(^KFAB1(FABNr)) Set $P(R,D,1)=$P(^KFAB(^KFAB1(FABNr),0),D,10) ......If KGS=0 Set K=$$DISPLS^KLASS(KHS),O=$P(O,K)_$$DISPLS^KLASS(KHS)_$P(O,K,2,9) ......If KGS'=0 Set K=$$DISPLS^KLASS(KGS),O=$P(O,K)_$$DISPLS^KLASS(KGS)_$P(O,K,2,9) ......Set $P(R,D,5)=O,$P(R,D,8)="",$P(R,D,14,15)=D,$P(R,D,17)="KKOV11",$P(R,D,25)="",N=^KKOV(KLNr,0),^(0)=N+1 ......Set ^KKOV(KLNr," ",N,0,0)=R .....Set O=$P(R,D,5) .....If KGS=0 Set K=$$DISPLS^KLASS(KHS),O=$P(O,K)_$$DISPLS^KLASS(KHS("N"))_$P(O,K,2,9) .....If KGS'=0 Set K=$$DISPLS^KLASS(KGS),O=$P(O,K)_$$DISPLS^KLASS(KGS("N"))_$P(O,K,2,9) .....Set $P(R,D,5)=O .....Set ^KKOV(KLNr,KHS("N"),KGS("N"),FABNr,LEVNr)=R Lock -^KKOV ; Kill ^KLAS("M") Lock -^KLAS Do CheckKLPUTZ() Quit ; ; Controle van de huidige- en de schaduwuitzonderingen op HG, GR en SG ; CheckKLPUTZ(ShowErrors) New (ShowErrors) Do .New ShowErrors .Set Q="K" .Do ^cA604,INIT^vhTERMINA Set ShowErrors=$G(ShowErrors),Error=0 For NoSa="N","S" Do If Error,'ShowErrors Quit .Set KLNr="" .For Set KLNr=$O(^KLPUTZ(NoSa,KLNr)) Quit:KLNr="" Do If Error,'ShowErrors Quit ..Set HoofdGr=0 ..For Set HoofdGr=$O(^KLPUTZ(NoSa,KLNr,HoofdGr)) Quit:HoofdGr="" Do If Error,'ShowErrors Quit ...Set Error='$D(^KPHG1(HoofdGr)) ...If Error,'ShowErrors Quit ...If Error Write !,KLNr,?7,HoofdGr ...Set Groep=0 ...For Set Groep=$O(^KLPUTZ(NoSa,KLNr,HoofdGr,Groep)) Quit:Groep="" Do If Error,'ShowErrors Quit ....Set Error='$D(^KPGR1(Groep)) ....If Error,'ShowErrors Quit ....If Error Write !,KLNr,?7,Groep ....Set SubGroep=0 ....For Set SubGroep=$O(^KLPUTZ(NoSa,KLNr,HoofdGr,Groep,SubGroep)) Quit:SubGroep="" Do If Error,'ShowErrors Quit .....Set Error='$D(^KPSG1(SubGroep)) .....If Error Write !,KLNr,?7,SubGroep If Error,'ShowErrors Do .Do:'ShowErrors ..Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE" ..Set ToGroep="SYS",To=$$MAILTO(ToGroep) ..Set Subject="Beheer classificatie",Body="Er zijn fouten gevonden in de uitzonderingen!"_$C(13)_"U kan deze belijken via ""Do CheckKLPUTZ^KLASJ(1)""." ..Set R=$$SendMiniMail^vhLib(From,To,Subject,Body) .Set R=$$^vhTXTPOP("KLASJ","ERROR") Quit ; MAILTO(ToGroep) New To Set ToGroep=$G(ToGroep,"ERROR") Set To=$$USERNAME^vhUSER(ToGroep,"@",1) Quit To ;