DEUR ;DEUR Burbidge [ 06/27/2001 10:53 AM ] d ^cA604 s r=$$SELECT() w !,r q ; ; Nivo = T : Alleen Reeks ; K : Tot Reeks + Kleur ; P : Tot Produkt ; Reeks = Default voor Reeks ; Kleur = Default voor Kleur ; Kleur = Default voor kode deur of toebehoor ; Titel = Titel voor de prompt ; NoTBH = Indien true dan wordt er niet gezocht in de toebehoren SERIE(KLNr,LEVNr,CallBack) New R,PRNr,Reeks,Kleur,Kode,BasisTyp If '$G(KLNr) New KLNr Set KLNr=0 If '$G(LEVNr) New LEVNr Set LEVNr=0 Set (Reeks,Kleur,Kode,BasisTyp)="",CallBack="Do "_CallBack_"(PRNr)" For Do Quit:PRNr="-" .Kill PRNr .Do PRODUKT(KLNr,LEVNr,.PRNr,Reeks,Kleur,BasisTyp) .If "-"'[PRNr,$D(^KPR(PRNr)) Do ..Xecute CallBack ..Quit:"-"[PRNr ..Set R=$G(PRNr("FOLTEC")) ..If $L(R) ..Else Set R=$O(^KPR(PRNr,"J")),R=^KPR(PRNr,R),R=$TR($P($P(R,D,3),"-",1,2),"-",D) ..Set Reeks=$P(R,D),Kleur=$P(R,D,2),Kode=$P(R,D,3),BasisTyp=$P(R,D,4) ..Set:Kode="00" (Reeks,Kleur,Kode,BasisTyp)="" Quit ; SERIE2 Set Reeks=$$SELREEKS($G(Reeks)) Quit:'$L(Reeks) Set Kleur=$$SELKLEUR(Reeks,$G(Kleur)) If Kleur="-" Set Kleur="" Goto SERIE2 Quit:'$L(Kleur) For Do Quit:PRNr="-" X:PRNr "Do "_CallBack_"(PRNr)" Quit:LEVNr=6092 .Set PRNr=$$SELPROD(Reeks,Kleur,$G(Kode),$G(NoTBH)) Quit SELECT(Nivo,Reeks,Kleur,Kode,Titel,NoTBH) New TBH,LEVNr,PRNr Set LEVNr=5810 SELECT2 Set Reeks=$$SELREEKS($G(Reeks)) Quit:'$L(Reeks) "" Quit:$G(Nivo)="T" Reeks Set Kleur=$$SELKLEUR(Reeks,$G(Kleur)) If Kleur="-" Set Kleur="" Goto SELECT2 Quit:'$L(Kleur) "" Quit:$G(Nivo)="K" $P(Reeks,D)_D_$P(Kleur,D)_D_$P(Reeks,D,2)_D_$P(Kleur,D,2) Set PRNr=$$SELPROD(Reeks,Kleur,$G(Kode),$G(NoTBH)) Quit $S(PRNr:PRNr,1:"") SELPROD(Reeks,Kleur,Kode,NoTBH) New Y,Start,KT,Rks,X,Key Set Reeks=$P(Reeks,D) Set Kleur=$P(Kleur,D) Set Start=Reeks_"-"_Kleur Set Kode=$$ASK^vhINP("Kode deur of toebehoor van "_Start_" : ",10,Kode,"","","","","","","","-") Quit:Kode="-" Kode Quit:$L(Kode)<2 "" Set Y=0 Set Rks=Reeks For Do Quit:NoTBH Set Rks=$O(TBH(Rks)) Quit:Rks="" .Set KT="",(Key,Start)=Rks_"-"_Kleur_"-"_Kode .For Set Key=$O(^KPL(LEVNr_" "," ",Key)) Quit:Key=""!($P($P(Key," "),"(")'=Start) Do ..For Set KT=$O(^KPL(LEVNr_" "," ",Key,KT)) Quit:KT="" Do ...Set Y=Y+1,Y(Y)=^(KT) .Set:Rks=Reeks Rks="" If Y=1 Quit Y(1) If Y=0 Write *7 Quit "" Set Y(0)=Y,Y="22\B\Selecteer deur of toebehoor van "_Reeks_"-"_Kleur_" (- = Exit)\\\PRODOMS" Do ^POP Set X=$S(X:Y(X),1:"") Quit X SELREEKS(Reeks,Optie) ; Optie bevat A : NoAsk, enkel controle ; P : Popup only ; T : "Toebehoor" bijvoegen achteraan ; F : Alleen FolieTec ; B : Alleen Burbidge New Y,X,Z,zb,Key,KT,PRNr,Klas,Subg,Display Set:$G(LEVNr)=6092 LEVNr=5810 Set Optie=$G(Optie),Display=Optie'["A",(Y,zb)=0 Set Key="" Set Reeks=$P(Reeks,D) If Optie'["F" For Set Key=$O(^KPL(LEVNr_" "," ",Key)) Quit:Key="" Do .Set KT=$O(^(Key,"")) Quit:KT="" .Set PRNr=^(KT) .Set Klas=$O(^KPR(PRNr,"I")) .Set Subg="" Set:$E(Klas)="I" Subg=$P(^KPR(PRNr,Klas),D,3) .Quit:$P(^KPR(PRNr,Klas),D)'["DE" Quit:$E(Subg,7,9)="ACC" .Set Key=$P(Key,"-") .If $E(Subg,13,14)'="00" Do ..Set Y=Y+1,Y(Y)=Key_D_$P($P(^KPR(PRNr,4),D,1),",",1),Z(Key)=Y(Y) .Else Set TBH(Key)="" .Set Key=$E(Key,1,3)+1_" " Set Key="" If Optie'["B",Optie'["F",Y Set Y=Y+1,Y(Y)="&S" If Optie'["B" For Set Key=$O(^RES("FOLTEC","PI","REEKS","D",Key)) Quit:Key="" Do .Set Y=Y+1,Y(Y)=Key_D_$P(^RES("FOLTEC","PI","REEKS","D",Key),"`",2),Z(Key)=Y(Y) Set:Optie["T" Y=Y+1,Y(Y)="TBH"_D_"Toebehoor",Z("TBH")=Y(Y) If Optie'["P",Display Do .Set Reeks=$$ASK^vhINP("Reeks : ",4,Reeks,"","","","",10,"","","-") .Set FP=2201 .Write @F,@F1 Quit:Reeks="-" "" If 'zb,$L(Reeks),$D(Z(Reeks)) Quit Z(Reeks) If Display Do .Write:$L(Reeks) *7 .Set X=$TR($$WILD^vhPOPUP("C;C","ROK1-","Reeks",.Y,Reeks),"`",D) Else Set X="" Set:zb="CANC"!(X=".") X="-" Quit X SELKLEUR(Reeks,Kleur,Optie) ; Optie = A : NoAsk, alleen controle ; = P : Popup only New Key,Start,Y,X,Z,zb,KT,KleurBur,KleurVH,Oms,Display Set Optie=$G(Optie),Display=Optie'["A",(Y,zb)=0 If "\6\7\"[(D_$E(Reeks)_D) Do .Set LEVNr=6092,Key="" .For Set Key=$O(^RES("FOLTEC","PI","KLEUR","D",Key)) Quit:Key="" Do ..Set R=^RES("FOLTEC","PI","KLEUR","D",Key),Y(Y+R)=Key_D_$P(R,"`",2),Z(Key)=Y(Y+R) Else Do .Set (Key,Start)=$P(Reeks,D)_"-" .For Set Key=$O(^KPL(LEVNr_" "," ",Key)) Quit:Key=""!($E(Key,1,$L(Start))'=Start) Do ..Set KT=$O(^KPL(LEVNr_" "," ",Key,"")) Quit:KT="" ..Set PRNr=^(KT) ..Set KleurBur=$P(Key,"-",2) ..Set KleurVH=$E($P(^KPR(PRNr,0),D,1),22,25) ..Set Oms="" Set:$L(KleurVH) Oms=$G(^KCOL($J(KleurVH,4)_" ","N")) ..Set Y=Y+1,Y(Y)=KleurBur_D_Oms,Z(KleurBur)=Y(Y) ..Set Key=Start_KleurBur_"-ZZZZ" If Optie'["P",Display Do .Set Kleur=$$ASK^vhINP("Kleur van "_$P(Reeks,D,2)_" : ",4,Kleur,"","","","",10,"U","","-") .Set FP=2201 .Write @F,@F1 Quit:Kleur="-" "-" If 'zb,$L(Kleur),$D(Z(Kleur)) Quit Z(Kleur) If Display Do .Write:$L(Kleur) *7 .Set X=$TR($$WILD^vhPOPUP("C;C","ROK1-","Kleur van "_$P(Reeks,D,2),.Y,Kleur),"`",D) Else Set X="" Set:zb="CANC"!(X=".") X="-" Quit X SELKODE(KLNr,Select) New R,Y,X,Z,zb,Afm,Kode,Count,BasisTyp,Hoogte,Breedte,Type,Monster Set (Y,zb,Count)=0,KLNr=+$G(KLNr),Select=$P($G(Select),D) For KLNr=KLNr,0 Do .Set Hoogte="" .For Set Hoogte=$O(^FOLTEC("IT",KLNr,Hoogte)) Quit:Hoogte="" Do ..Set Breedte="" ..For Set Breedte=$O(^FOLTEC("IT",KLNr,Hoogte,Breedte)) Quit:Breedte="" Do ...Set BasisTyp="" ...For Set BasisTyp=$O(^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp)) Quit:BasisTyp="" Do ....Set Type="" ....For Set Type=$O(^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp,Type)) Quit:Type="" Do .....Set Kode=^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp,Type),Monster=Type="M" .....If Monster,$D(Afm($S(Type="V":"V",1:$E(BasisTyp)),Hoogte_$S($E(BasisTyp)="H":Type,1:""),Breedte)) Quit .....If 'KLNr,BasisTyp="D",$D(Afm("V",Hoogte,Breedte)) Quit .....Set R=$G(^FOLTEC("T",KLNr,Kode)) .....If $L($P(R,D,6)) Do Quit:'Chk ......Do EXECS^vhRES(^FOLTEC("CHK",KLNr,$P(R,D,6)),"Chk","(Reeks)") .....Set Afm($S(Type="V":"V",1:$E(BasisTyp)),Hoogte_$S($E(BasisTyp)="H":Type,1:""),Breedte)=Kode_D_$J(Hoogte,4)_" x "_$J(Breedte,4) Set BasisTyp="" For Set BasisTyp=$O(Afm(BasisTyp)) Quit:BasisTyp="" Do .Set Hoogte="" .If Count Set Count=Count+1,Y(Count)="&S" .For Set Hoogte=$O(Afm(BasisTyp,Hoogte)) Quit:Hoogte="" Do ..Set Breedte="" ..For Set Breedte=$O(Afm(BasisTyp,Hoogte,Breedte)) Quit:Breedte="" Do ...Set R=Afm(BasisTyp,Hoogte,Breedte),Kode=$P(R,D),Afm=$P(R,D,2) ...Set Count=Count+1,Y(Count)=Kode_D_Afm,Z(Kode)=Y(Count) Set Kode=$$ASK^vhINP("Kode : ",4,Select,"","","","",10,"U","","-") Set FP=2201 Write @F,@F1 Quit:Kode="-" "" If Kode,$L(Kode)=1 Set Kode=0_Kode If 'zb,$L(Kode),$D(Z(Kode)) Quit Z(Kode) If 'zb,$L(Kode),$D(^RES("FOLTEC","PI","ACCESSOIRE","D",Kode)) Quit Kode Write:$L(Kode) *7 Set X=$TR($$WILD^vhPOPUP("C;C","ROK1-","Kode",.Y,Select),"`",D) Set:zb="CANC"!(X=".") X="-" Quit X PRODUKT(KLNr,LEVNr,PRNr,Reeks,Kleur,BasisTyp) New zb,I,R,S,X,%SC,sRT,sRB,sFL,Hoogte,Breedte,Acces,PasStuk,Type,Dikte,Ronding,HoekDeur,StdVlak New Fields,Field,BuFields,FoFields,TempLev,TBH,Nivo,Kode,Titel,NoTBH,OX New sNoClear,sRefresh,Attr,Quit,Serie,Next,SkipFr,Via,Params,EPaneel Do STORE^vhTERMINA() Set KLNr=+$G(KLNr),PRNr=$G(PRNr),Reeks=$G(Reeks),Kleur=$G(Kleur),BasisTyp=$G(BasisTyp) Set Via="" Set:$E(BasisTyp,2)="K" Via="K",BasisTyp="V" Set (Kode,Hoogte,Breedte,Acces,PasStuk,Type,EPaneel,Dikte,Ronding,HoekDeur,StdVlak,Quit)="",SkipFr=$L(BasisTyp) If PRNr Do .Set (Reeks,Kleur)="",R=$O(^KPR(PRNr,"J")) .If $E(R)'="J" Set PRNr="" Quit .Set R=^KPR(PRNr,R),LEVNr=$P(R,D),R=$P(R,D,3),Reeks=$P(R,"-"),Kleur=$P(R,"-",2) .If $L(Reeks),$L(Kleur) .Else Set (PRNr,LEVNr,Reeks,Kleur)="" If $L(Reeks),$L(Kleur) Do .Set Serie=1,LEVNr=$S("\6\7\"[(D_$E(Reeks)_D):6092,1:5810) .Set Reeks=$$SELREEKS($P(Reeks,D),"A"),Kleur=$$SELKLEUR(Reeks,$P(Kleur,D),"A") Else Set (Reeks,Kleur,Serie)="" Set Fields="REEKS\KLEUR",BuFields=Fields_"\PRODUKT",FoFields=Fields_"\FRONT" If Serie,LEVNr=6092 Set Fields=FoFields If SkipFr Do .Set:BasisTyp="P" Fields=Fields_"\EPANEEL" .Set Fields=Fields_$S(BasisTyp="A":"\ACCESSOIRE",Via="K":"\KODE",1:"\HOOGTE\BREEDTE") .If KLNr=1124,BasisTyp="D" Set Fields=Fields_"\STDVLAK" .Set:BasisTyp="H" Fields=Fields_"\HOEKDEUR" .Set:BasisTyp="P" Fields=Fields_"\DIKTE\RONDING" Do DISPLAY^vhScherm("FLOWDEUR") If Serie Set Fields=$S(LEVNr=5810:"PRODUKT",1:"FRONT") Set:PRNr Fields=$S(LEVNr=5810:BuFields,1:FoFields),Fields=$P(Fields,"REEKS\KLEUR\",2) For Next=1:1 Set Field=$P(Fields,D,Next) Quit:Field="" Do Quit:Quit .Set zb="",TempLev=LEVNr .If Field="REEKS" Set (PRNr,Kleur,Hoogte,Breedte)="" Set:'LEVNr LEVNr=5810 .If SkipFr,Field="FRONT" Set X=BasisTyp .Else Set:Field="FRONT"&$L(BasisTyp) BasisTyp=BasisTyp_Via Do FIELD^vhScherm("FLOWDEUR",Field) .Set FP=2201 .Write @F,@F1 .If "-"[X Do Quit:Quit ..Set Next=Next-2,LEVNr=TempLev ..Set:Field="REEKS" Quit=1 .Else Set:Field="REEKS" LEVNr=$S(67[$E(X):6092,1:5810),Fields=$S(LEVNr=5810:BuFields,1:FoFields) .If Field'="PRODUKT" Do ..If Field="FRONT","-"'[X Quit ..Do DISPLAY^vhScherm("FLOWDEUR",,,,$S(Field="REEKS":"",1:Field)) ..If Field="PASSTUK" Do ...Set Fields=$P(Fields,"\BREEDTE")_"\BREEDTE"_$P(Fields,"\BREEDTE",2) ...Set Breedte=$S(PasStuk="FPM":50,1:"") ...Do DISPLAY^vhScherm("FLOWDEUR",,,,"BREEDTE") ...Set Fields=$P(Fields,"\BREEDTE")_$S(PasStuk="FPM":"",1:"\BREEDTE")_$P(Fields,"\BREEDTE",2) .If Field="FRONT" Do ..Set Fields=$P(Fields,"\DIKTE\RONDING"),Fields=$P(Fields,"\STDVLAK") ..Set Fields=$P(Fields,"\HOEKDEUR"),Fields=$P(Fields,"\KODE") ..Set Fields=$P(Fields,"\HOOGTE\BREEDTE"),Fields=$P(Fields,"\ACCESSOIRE") ..Set Fields=$P(Fields,"\EPANEEL"),Fields=$P(Fields,"\PASSTUK") ..If "-"[X Set:Serie Quit=1 Quit ..Set:'SkipFr Via="" Set:$E(BasisTyp,2)="K" Via="K",BasisTyp=$E(BasisTyp) ..If BasisTyp="A" Set Fields=Fields_"\ACCESSOIRE" ..Else Do Quit:Quit ...If Via="K" Set Fields=Fields_"\KODE" ...Else Do ....Set:BasisTyp="P" Fields=Fields_"\EPANEEL" ....Set:BasisTyp="S" Fields=Fields_"\PASSTUK" ....Set Fields=Fields_"\HOOGTE\BREEDTE" ....If KLNr=1124,BasisTyp="D" Set Fields=Fields_"\STDVLAK" ....Set:BasisTyp="H" Fields=Fields_"\HOEKDEUR" ....Set:BasisTyp="P" Fields=Fields_"\DIKTE\RONDING" ...Quit:BasisTyp="" ...Set:BasisTyp'="V" PRNr=$P(^RES("FOLTEC","PI","FRONT","D",BasisTyp),"`",3) ...If PRNr,'$D(^KPR(PRNr)) Set Quit=1 Do TXTL^vhINP("FOLTEC","NOBASISPR") ..If Field="FRONT",SkipFr Set SkipFr=0 ..Else Do DISPLAY^vhScherm("FLOWDEUR") .If Field="KODE" Do ..Quit:"-"[X ..If $D(^RES("FOLTEC","PI","ACCESSOIRE","D",Kode)) Set BasisTyp="A",Acces=Kode,Next=Next+1,Kode="" Quit ..Set R=$G(^FOLTEC("T",0,Kode),$G(^FOLTEC("T",KLNr,Kode))) ..Set Hoogte=$P(R,D),Breedte=$P(R,D,2),BasisTyp=$P(R,D,3),(Type,HoekDeur)=$P(R,D,4),Next=Next+1 If Quit Set PRNr="-" Else Do .Set PRNr=X .Quit:LEVNr'=6092 .If Kode=""!(Type="") Do ..If BasisTyp="D",Type="" Set Type=$$FRONT^FOLTEC(Hoogte) ..If $L(Type) Do ...If KLNr Set Kode=$G(^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp,Type)) ...If Kode="" Set Kode=$G(^FOLTEC("IT",0,Hoogte,Breedte,BasisTyp,Type)) ...If Kode="",KLNr Set Kode=$G(^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp,"M")) ...If Kode="" Set Kode=$G(^FOLTEC("IT",0,Hoogte,Breedte,BasisTyp,"M")) ..If $L(Kode) Do ...Set R=$G(^FOLTEC("T",0,Kode),$G(^FOLTEC("T",KLNr,Kode))) ...Set Hoogte=$P(R,D),Breedte=$P(R,D,2),BasisTyp=$P(R,D,3),(Type,HoekDeur)=$P(R,D,4) ..Set:BasisTyp="K" Type="K" Set:BasisTyp="H" Type=HoekDeur ..Set:BasisTyp="R" Type="R" ..Set:BasisTyp="S" Type=PasStuk ..Set:BasisTyp="P" Type="EP" Set:BasisTyp="A" Type=Acces ..If BasisTyp="D","\M\V\"'[(D_Type_D) Set Type=$$FRONT^FOLTEC(Hoogte) ..Set:StdVlak="V" BasisTyp="D",Type="V" .Set Params="" .If BasisTyp="P" Do ..If Dikte,Ronding Set Params=Dikte_";"_Ronding ..Else Do ...If Kode="" Set Kode=$G(^FOLTEC("IT",0,Hoogte,Breedte,BasisTyp,Type),$G(^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp,Type))) ...If $L(Kode) Set Params=$P($G(^FOLTEC("T",0,Kode),$G(^FOLTEC("T",KLNr,Kode))),D,5) ..Set:Params="" Params="18;1" Set Type=EPaneel ;Set Params=Params_";"_EPaneel .Set (R,PRNr)=$$FOLTEC(LEVNr,KLNr,Reeks,Kleur,BasisTyp,Hoogte,Breedte,Type,Params) .Quit:"-"[R .Set PRNr=$P(R,D),PRNr("FOLTEC")=$P(Reeks,D)_D_$P(Kleur,D)_D_$P(Kode,D)_D_BasisTyp_Via Do REFRESH^vhTERMINA() Quit FOLTEC(LEVNr,KLNr,Reeks,Kleur,BasisTyp,Hoogte,Breedte,Type,Params) New R,PRNr,Kode,Key,KT Set Reeks=$P(Reeks,D),Kleur=$P(Kleur,D) Set:"\A\P\"[(D_BasisTyp_D) Reeks=600 If BasisTyp="A" Set Kode=Type Else Do .Set Kode="" .If KLNr Set Kode=$G(^FOLTEC("IT",KLNr,Hoogte,Breedte,BasisTyp,Type)) .If Kode="" Set Kode=$G(^FOLTEC("IT",0,Hoogte,Breedte,BasisTyp,Type)) .If Kode="" Set Kode=99 Set PRNr=$$BGOPEN^FOLTEC(,Reeks,Kleur,BasisTyp,Hoogte,Breedte,Type,Kode,Params,"S") Quit PRNr ; DIKTE(KLNr,Hoogte,Breedte) New Kode,Dikte Set Kode=$G(^FOLTEC("IT",KLNr,Hoogte,Breedte,"P","EP")) If $L(Kode) Set Dikte=$P($P($G(^FOLTEC("T",KLNr,Kode)),D,5),";") Quit $G(Dikte) ; RONDING(KLNr,Hoogte,Breedte) New Kode,Ronding Set Kode=$G(^FOLTEC("IT",KLNr,Hoogte,Breedte,"P","EP")) If $L(Kode) Set Ronding=$P($P($G(^FOLTEC("T",KLNr,Kode)),D,5),";",2) Quit $G(Ronding) ; STDVLAK(KLNr,Reeks,Hoogte,Breedte,StdVlak) ;Deze routine moet STDVLAK vervangen New Kode,Chk If $$FRONT^FOLTEC(Hoogte)="L" Do .If $D(^FOLTEC("IT",KLNr,Hoogte,Breedte,"D")) Do ..For Set StdVlak=$O(^FOLTEC("IT",KLNr,Hoogte,Breedte,"D",StdVlak)) Quit:StdVlak="" Do Quit:'Chk ...Set Kode=^FOLTEC("IT",KLNr,Hoogte,Breedte,"D",StdVlak) ...Set R=$P(^FOLTEC("T",KLNr,Kode),D,6) ...Set Chk=$L(R) ...If Chk Do EXECS^vhRES(^FOLTEC("CHK",KLNr,R),"Chk","(Reeks)") Set Chk='Chk ; Indien de reeks juist is dan stoppen (via Chk=0) ..Set:StdVlak'="V" StdVlak="S" .Else Set StdVlak=$$PI^vhPOPUP("C;C","O1-","Type","FOLTEC","STDVLAK",StdVlak) Else Set StdVlak="S" Quit StdVlak ;