KLAS ;Klassificatie [ 01/13/2003 1:31 PM ] Quit ; SAVE New KHS,KGS,KSS,KKey,KHNr,KGNr,KSNr,R New oPKKHKod,oPKKGKod,oPKKSKod,HKey,GKey,SKey New oPKKHNr,oPKKGNr,oPKKSNr,hPKKHKod,hPKKGKod,hPKKSKod New ClassificatieIDsVanGewijzigdeEANCode,ClassificatieIDsVanGewijzigdeEANCodeIt,AutomatischEANCodeToekennen ; Set FP=2201 Write @F,@F1,"Verzekeren toegang tot bestanden" For Quit:$$Lock() Set FP=2201 Write @F,@F1,"Opbouw klassificatie bestand" ; ; Delete Kill ^KLAS("M") Set KKey="" For Set KKey=$$ORN^DD("oPRKLK") Quit:KKey="" Do .If $$DRN^DD("hPRKLK") Quit .Set oPKKNiv=$$FF^DD("oPKKNiv") .Set oPKKHNr=$$FF^DD("oPKKHNr"),oPKKGNr=$$FF^DD("oPKKGNr"),oPKKSNr=$$FF^DD("oPKKSNr") .Set oPKKHKod=$$FF^DD("oPKKHKod"),oPKKGKod=$$FF^DD("oPKKGKod"),oPKKSKod=$$FF^DD("oPKKSKod") .Set KHS=$$SORTKEY^KLASS(oPKKHNr,oPKKHKod) .Set KGS=$$SORTKEY^KLASS(oPKKHNr,oPKKHKod,oPKKGNr,oPKKGKod) .Set KSS=$$SORTKEY^KLASS(oPKKHNr,oPKKHKod,oPKKGNr,oPKKGKod,oPKKSNr,oPKKSKod) .If oPKKNiv=1 Do ..Do ModJob(KHS,""),KR^DD("oPRKLH") ..Set KHS=$$UPTRIMAN^vhRtn1(KHS)_" " ..Do KR^DD("oPRKLIH") .If oPKKNiv=2 Do ..Do ModJob(KGS,""),KR^DD("oPRKLG") ..Set KGS=$$UPTRIMAN^vhRtn1(KGS)_" " ..Do KR^DD("oPRKLIG") .If oPKKNiv=3 Do ..Do ModJob(KSS,""),KR^DD("oPRKLS") ..Set KSS=$$UPTRIMAN^vhRtn1(KSS)_" " ..Do KR^DD("oPRKLIS") .Do KR^DD("oPRKLK") ; ; Modified ; Set ClassificatieIDsVanGewijzigdeEANCode=##class(%ArrayOfDataTypes).%New() Set KHNr="" For Set KHNr=$$ORN^DD("hPRKLH") Quit:KHNr="" Do .Set (KKey,HKey)=$$FF^DD("hPKHKey") .Set oPKKHNr=KHNr .Set (oPKKHKod,hPKKHKod)=$$FF^DD("hPKKKode") .Set (KHS,KHS("N"),KHS("O"))=$$SORTKEY^KLASS(KHNr,hPKKHKod) .If $$FF^DD("hPKHMod")=1 Do ..If '$$DRN^DD("oPRKLK") Do ...Set KHS=$$UPTRIMAN^vhRtn1(KHS("N"))_" " ...Do SR^DD("oPRKLIH",D_KHS("N")) ...Set KHS=KHS("N") ...Do SR^DD("oPRKLH","") ...DO SF^DD("oPKHKey",KKey) ...Do SR^DD("oPRKLK","") ...Do SF^DD("oPKKNiv",1) ...Do SF^DD("oPKKHNr",KHNr) ...Do SF^DD("oPKKHKod",hPKKHKod) ..Set oPKKHNr=$$FF^DD("oPKKHNr") ..Set oPKKHKod=$$FF^DD("oPKKHKod") ..If KHNr'=oPKKHNr!(oPKKHKod'=hPKKHKod) Do ...Set KHS("O")=$$GETSORT^KLASS(KKey) ...Set KHS=$$UPTRIMAN^vhRtn1(KHS("O"))_" " ...Do KR^DD("oPRKLIH") ...Set KHS=$$UPTRIMAN^vhRtn1(KHS("N"))_" " ...Do SR^DD("oPRKLIH",D_KHS("N")) ...Set KHS=KHS("O") ...Set R=$$FR^DD("oPRKLH") ...Do KR^DD("oPRKLH") ...Set KHS=KHS("N") ...Do SR^DD("oPRKLH",R) ...Do SF^DD("oPKKHNr",KHNr) ...Do SF^DD("oPKKHKod",hPKKHKod) ...Do ModJob(KHS("O"),KHS) .If $$FF^DD("hPKHMod") Do ..Do CF^DD("oPKKOmsN","hPKKOmsN") ..Do CF^DD("oPKHOmsN","hPKKOmsN") ..Do CF^DD("oPKHOmsF","hPKKOmsF") ..Do CF^DD("oPKHOmsD","hPKKOmsD") ..Do CF^DD("oPKKECom","hPKKECom") ..Do CF^DD("oPKKUser","hPKKUser") ..Do CF^DD("oPKHKod","hPKKKode") ..Do CF^DD("oPKKHKod","hPKKKode") .Set KGNr="" .For Set KGNr=$$ORN^DD("hPRKLG") Quit:KGNr="" Do ..Set (KKey,GKey)=$$FF^DD("hPKGKey") ..Set oPKKGNr=KGNr ..Set (oPKKGKod,hPKKGKod)=$$FF^DD("hPKKKode") ..Set R=$$SPLITKEY^KLASS(KHS) ..Set (KGS,KGS("N"),KGS("O"))=$$SORTKEY^KLASS(KHNr,$P(R,",",2),KGNr,hPKKGKod) ..If $$FF^DD("hPKGMod")=1 Do ...If '$$DRN^DD("oPRKLK") Do ....Set KGS=$$UPTRIMAN^vhRtn1(KGS("N"))_" " ....Do SR^DD("oPRKLIG",D_KGS("N")) ....Set KGS=KGS("N") ....Do SR^DD("oPRKLG","") ....DO SF^DD("oPKGKey",KKey) ....Do SR^DD("oPRKLK","") ....Do SF^DD("oPKKNiv",2) ....Do SF^DD("oPKKHNr",KHNr) ....Do SF^DD("oPKKGNr",KGNr) ....Do SF^DD("oPKKHKod",hPKKHKod) ....Do SF^DD("oPKKGKod",hPKKGKod) ....Do SF^DD("oPKKHKey",HKey) ...Set oPKKGNr=$$FF^DD("oPKKGNr") ...Set oPKKGKod=$$FF^DD("oPKKGKod") ...If KHNr'=oPKKHNr!(KGNr'=oPKKGNr)!(oPKKHKod'=hPKKHKod)!(oPKKGKod'=hPKKGKod) Do ....Set KGS("O")=$$GETSORT^KLASS(KKey) ....Set KGS=$$UPTRIMAN^vhRtn1(KGS("O"))_" " ....Do KR^DD("oPRKLIG") ....Set KGS=$$UPTRIMAN^vhRtn1(KGS("N"))_" " ....Do SR^DD("oPRKLIG",D_KGS("N")) ....Set KGS=KGS("O") ....Set R=$$FR^DD("oPRKLG") ....Do KR^DD("oPRKLG") ....Set KGS=KGS("N") ....Do SR^DD("oPRKLG",R) ....Do SF^DD("oPKKHNr",KHNr) ....Do SF^DD("oPKKGNr",KGNr) ....Do SF^DD("oPKKHKod",hPKKHKod) ....Do SF^DD("oPKKGKod",hPKKGKod) ....Do ModJob(KHS("O"),KHS) ....Do ModJob(KGS("O"),KHS_D_KGS) ..If $$FF^DD("hPKGMod") Do ...Do CF^DD("oPKKOmsN","hPKKOmsN") ...Do CF^DD("oPKGOmsN","hPKKOmsN") ...Do CF^DD("oPKGOmsF","hPKKOmsF") ...Do CF^DD("oPKGOmsD","hPKKOmsD") ...Do CF^DD("oPKKECom","hPKKECom") ...Do CF^DD("oPKGNTel","hPKKNTel") ...Do CF^DD("oPKGGPrs","hPKKGPrs") ...Do CF^DD("oPKKUser","hPKKUser") ...Do CF^DD("oPKGKod","hPKKKode") ...Do CF^DD("oPKKGKod","hPKKKode") ..Set KSNr="" ..For Set KSNr=$$ORN^DD("hPRKLS") Quit:KSNr="" Do ...Set (KKey,SKey)=$$FF^DD("hPKSKey") ...Set oPKKSNr=KSNr ...Set (oPKKSKod,hPKKSKod)=$$FF^DD("hPKKKode") ...Set R=$$SPLITKEY^KLASS(KGS) ...Set (KSS,KSS("N"),KSS("O"))=$$SORTKEY^KLASS(KHNr,$P(R,",",2),KGNr,$P(R,",",4),KSNr,hPKKSKod) ...If $$FF^DD("hPKSMod")=1 Do ....If '$$DRN^DD("oPRKLK") Do .....Set KSS=$$UPTRIMAN^vhRtn1(KSS("N"))_" " .....Do SR^DD("oPRKLIS",D_KSS("N")) .....Set KSS=KSS("N") .....Do SR^DD("oPRKLS","") .....DO SF^DD("oPKSKey",KKey) .....Do SR^DD("oPRKLK","") .....Do SF^DD("oPKKNiv",3) .....Do SF^DD("oPKKHNr",KHNr) .....Do SF^DD("oPKKGNr",KGNr) .....Do SF^DD("oPKKSNr",KSNr) .....Do SF^DD("oPKKHKod",hPKKHKod) .....Do SF^DD("oPKKGKod",hPKKGKod) .....Do SF^DD("oPKKSKod",hPKKSKod) .....Do SF^DD("oPKKHKey",HKey) .....Do SF^DD("oPKKGKey",GKey) ....Set oPKKSNr=$$FF^DD("oPKKSNr") ....Set oPKKSKod=$$FF^DD("oPKKSKod") ....If KHNr'=oPKKHNr!(KGNr'=oPKKGNr)!(KSNr'=oPKKSNr)!(oPKKHKod'=hPKKHKod)!(oPKKGKod'=hPKKGKod)!(oPKKSKod'=hPKKSKod) Do .....Set KSS("O")=$$GETSORT^KLASS(KKey) .....Set KSS=$$UPTRIMAN^vhRtn1(KSS("O"))_" " .....Do KR^DD("oPRKLIS") .....Set KSS=$$UPTRIMAN^vhRtn1(KSS("N"))_" " .....Do SR^DD("oPRKLIS",D_KSS("N")) .....Set KSS=KSS("O") .....Set R=$$FR^DD("oPRKLS") .....Do KR^DD("oPRKLS") .....Set KSS=KSS("N") .....Do SR^DD("oPRKLS",R) .....Do SF^DD("oPKKHNr",KHNr) .....Do SF^DD("oPKKGNr",KGNr) .....Do SF^DD("oPKKSNr",KSNr) .....Do SF^DD("oPKKHKod",hPKKHKod) .....Do SF^DD("oPKKGKod",hPKKGKod) .....Do SF^DD("oPKKSKod",hPKKSKod) .....Do ModJob(KHS("O"),KHS) .....Do ModJob(KGS("O"),KHS_D_KGS) .....Do ModJob(KSS("O"),KHS_D_KGS_D_KSS) ...If $$FF^DD("hPKSMod") Do ....If $$FF^DD("oPKKGOS")'=$$FF^DD("hPKKGOS") Do CF^DD("hPKJGOS","hPKKGOS") ....If $$FF^DD("oPKKWinst")'=$$FF^DD("hPKKWinst") Do CF^DD("hPKJWinst","hPKKWinst") ....If $$FF^DD("oPKKKort")'=$$FF^DD("hPKKKort") Do CF^DD("hPKJKort","hPKKKort") ....If $$FF^DD("oPKKVork")'=$$FF^DD("hPKKVork") Do CF^DD("hPKJVork","hPKKVork") ....If $$FF^DD("oPKKEANCode")'=$$FF^DD("hPKKEANCode") Do ..... Do ClassificatieIDsVanGewijzigdeEANCode.SetAt($$FF^DD("hPKKEANCode"),KKey) ; alleen op niveau van de subgroep-classificatie ....Do CF^DD("oPKKOmsN","hPKKOmsN") ....Do CF^DD("oPKSOmsN","hPKKOmsN") ....Do CF^DD("oPKSOmsF","hPKKOmsF") ....Do CF^DD("oPKSOmsD","hPKKOmsD") ....Do CF^DD("oPKKECom","hPKKECom") ....Do CF^DD("oPKSNTel","hPKKNTel") ....Do CF^DD("oPKKWinst","hPKKWinst") ....Do CF^DD("oPKKUser","hPKKUser") ....Do CF^DD("oPKKGON","hPKKGON") ....Do CF^DD("oPKKGOS","hPKKGOS") ....Do CF^DD("oPKSKod","hPKKKode") ....Do CF^DD("oPKKSKod","hPKKKode") ....Do CF^DD("oPKKKort","hPKKKort") ....Do CF^DD("oPKKVork","hPKKVork") ....Do CF^DD("oPKKEANCode","hPKKEANCode") If $$DRN^DD("hPRKLJ") Do PUSHDEFAULT^PRODUKT7($$GRN^DD("hPRKLJ")) Set FP=2201 Write @F,"Opstarten achtergrond process",@F2 Kill ^KLAS("MM") Do .New .Do ^KLASJ ;Job ^KLASJ For Quit:$G(^KLAS("MM")) Set FP=2201 Write @F,"Lock bestanden",@F2 Lock For Quit:$G(^KLAS("MM"))=2 Kill ^KLAS("MM") Do STORE^LOG("KLAS",0,"W") // Event raisen voor iedere classificatie waar het veld "AutomatischEANCodeToekennen" gewijzigd is Set ClassificatieIDsVanGewijzigdeEANCodeIt=##class(TECH.ListIterator).%New(ClassificatieIDsVanGewijzigdeEANCode) While ClassificatieIDsVanGewijzigdeEANCodeIt.HasNext() { #dim AutomatischEANCodeToekennen As %String = ClassificatieIDsVanGewijzigdeEANCodeIt.Next() Do GebruiktEANCodeGewijzigd^Prod.Product.ClassificatieBeheer(ClassificatieIDsVanGewijzigdeEANCodeIt.Key(),AutomatischEANCodeToekennen) } Quit ; INIT New KHS,KGS,KSS,KKey,KHNr,KGNr,KSNr Do SR^DD("hPRKL",0) Set KHS="" For Set KHS=$$ORN^DD("oPRKLH") Quit:KHS="" Do .Set KKey=$$FF^DD("oPKHKey") .Set KHNr=$$FF^DD("oPKKHNr") .Do SR^DD("hPRKLH",KKey) .Do CF^DD("hPKKOmsN","oPKHOmsN") .Do CF^DD("hPKKOmsF","oPKHOmsF") .Do CF^DD("hPKKOmsD","oPKHOmsD") .Do CF^DD("hPKKECom","oPKKECom") .Do CF^DD("hPKKUser","oPKKUser") .Do CF^DD("hPKKKode","oPKKHKod") Do HOOFDGR^KLASB,RESET^vhScherm,ADD^vhScherm(2,24),REFRESH^KLASB Set KGS="" For Set KGS=$$ORN^DD("oPRKLG") Quit:KGS="" Do .Set KKey=$$FF^DD("oPKGKey") .Set KHNr=$$FF^DD("oPKKHNr") .Set KGNr=$$FF^DD("oPKKGNr") .Do SR^DD("hPRKLG",KKey) .Do CF^DD("hPKKOmsN","oPKGOmsN") .Do CF^DD("hPKKOmsF","oPKGOmsF") .Do CF^DD("hPKKOmsD","oPKGOmsD") .Do CF^DD("hPKKECom","oPKKECom") .Do CF^DD("hPKKNTel","oPKGNTel") .Do CF^DD("hPKKGPrs","oPKGGPrs") .Do CF^DD("hPKKUser","oPKKUser") .Do CF^DD("hPKKKode","oPKKGKod") Set KSS="" For Set KSS=$$ORN^DD("oPRKLS") Quit:KSS="" Do .Set KKey=$$FF^DD("oPKSKey") .Set KHNr=$$FF^DD("oPKKHNr") .Set KGNr=$$FF^DD("oPKKGNr") .Set KSNr=$$FF^DD("oPKKSNr") .Do SR^DD("hPRKLS",KKey) .Do CF^DD("hPKKOmsN","oPKSOmsN") .Do CF^DD("hPKKOmsF","oPKSOmsF") .Do CF^DD("hPKKOmsD","oPKSOmsD") .Do CF^DD("hPKKECom","oPKKECom") .Do CF^DD("hPKKNTel","oPKSNTel") .Do CF^DD("hPKKWinst","oPKKWinst") .Do CF^DD("hPKKUser","oPKKUser") .Do CF^DD("hPKKGON","oPKKGON") .Do CF^DD("hPKKGOS","oPKKGOS") .Do CF^DD("hPKKKode","oPKKSKod") .Do CF^DD("hPKKKort","oPKKKort") .Do CF^DD("hPKKVork","oPKKVork") .Do CF^DD("hPKKEANCode","oPKKEANCode") Quit ; ModJob(Index,Data) Set ^KLAS("M",Index)=Data Quit ; Lock() New %TC Do ADD^vhLock("^KPR") If '%TC Do LDISP^vhLock("^KPR","Produkten") Quit 0 Do ADD^vhLock("^KOFKL") If '%TC Do LDISP^vhLock("^KOFKL","Offertes") Quit 0 Do ADD^vhLock("^KLPUTZ(""N"")") If '%TC Do LDISP^vhLock("^KLPUTZ(""N"")","Uitzonderigen") Quit 0 Do ADD^vhLock("^KLPUTZ(""S"")") If '%TC Do LDISP^vhLock("^KLPUTZ(""S"")","Schaduwuitzonderigen") Quit 0 Do ADD^vhLock("^KKOV") If '%TC Do LDISP^vhLock("^KKOV","Potentieel") Quit 0 Quit 1 ;