FLOWCHK ;Kontroles Toelevering, offerte, order, bon [ 12/08/2003 11:45 AM ] ; ; Deur ; IsAsap(Document,DocNr) Quit:Document'="O" "" ; Alleen orders Quit:'DocNr "" Set KLNr=$P($G(^KO1(DocNr,"F")),"\") Quit:'KLNr "" Quit $P($G(^KOD(KLNr,"F",DocNr,1)),"\",28) ISDEUR(Document,DocNr,LevRef) New X,IsDeur Set LevRef=$G(LevRef) Set:LevRef="" LevRef="BF" Set:LevRef=5810 LevRef="B" Set:LevRef=6092 LevRef="F" Set:LevRef=6428 LevRef="F" Set X=$S(Document="L":"BON",Document="O":"ORD",Document="A":"OFF",1:"RST") Set X=X_"(DocNr,LevRef)",X="Set IsDeur=$$DEUR"_X Xecute X Quit IsDeur ; DEURBON(BONNr,LevRef) New R,DeurBon,KLNr,ULNr,PRNr Set DeurBon="",KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do .Set ULNr=100 .For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Do Quit:$L(DeurBon)=$L(LevRef) ..Set R=^KUL(KLNr,"F",BONNr,ULNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Do DEURPROD(PRNr,LevRef,.DeurBon) Else If $D(^ORDW("D",BONNr)) Set DeurBon=$$DEURWMS(BONNr,LevRef) Quit $L(DeurBon) ; DEURWMS(CONSNr,LevRef) New R,DeurCons,ORDNr,OLUNr,SOLUNr,PRNr Set DeurCons="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:$L(DeurCons)=$L(LevRef) .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:$L(DeurCons)=$L(LevRef) ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Do DEURPROD(PRNr,LevRef,.DeurCons) ..Quit:$L(DeurCons)=$L(LevRef) ..Set SOLUNr="" ..For Set SOLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)) Quit:SOLUNr="" Do Quit:$L(DeurCons)=$L(LevRef) ...Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr),PRNr=$P(R,"\") ...Quit:'PRNr ...Do DEURPROD(PRNr,LevRef,.DeurCons) Quit DeurCons ; DEURORD(ORDNr,LevRef) New R,DeurOrd,KLNr,OLNr,PRNr Set DeurOrd="",KLNr=$P($G(^KO1(ORDNr,"F")),"\") Do:KLNr .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Do DEURPROD(PRNr,LevRef,.DeurOrd) Quit $L(DeurOrd) ; DEUROFF(OFFNr,LevRef) New R,DeurOff,KLNr,OFLNr,PRNr Set DeurOff="",KLNr=$P($G(^KOFKL1(OFFNr,"F")),"\") Do:KLNr .Set OFLNr=100 .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:'OFLNr Do ..Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Do DEURPROD(PRNr,LevRef,.DeurOff) Quit $L(DeurOff) ; DEURRST(DocNr,LevRef) Quit 0 ; DEURPROD(PRNr,LevRef,DeurRef) New R,LEVNr Set R=$O(^KPR(PRNr,"J")) If $E(R)="J" Do .Set LEVNr=$P(^KPR(PRNr,R),"\") .If LEVNr=5810,LevRef["B" Set:DeurRef'["B" DeurRef=DeurRef_"B" .Else If LEVNr=6092,LevRef["F" Set:DeurRef'["F" DeurRef=DeurRef_"F" .Else If LEVNr=6428,LevRef["F" Set:DeurRef'["F" DeurRef=DeurRef_"F" Quit ; ; Kaderdeur ISKADERD(Document,DocNr) New X,IsKaderD Set X=$S(Document="L":"BON",Document="O":"ORD",Document="A":"OFF",1:"RST") Set X=X_"(DocNr)",X="Set IsKaderD=$$KADER"_X Xecute X Quit IsKaderD ; KADERBON(BONNr) New R,KaderBon,KLNr,ULNr,PRNr Set KaderBon="",KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do .Set ULNr=100 .For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Do Quit:KaderBon ..Set R=^KUL(KLNr,"F",BONNr,ULNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set KaderBon=$P($$GENTYP^HAD(PRNr),"\")="KAD" Else If $D(^ORDW("D",BONNr)) Set KaderBon=$$KADERWMS(BONNr) Quit KaderBon ; KADERWMS(CONSNr,LevRef) New R,KaderCons,ORDNr,OLUNr,PRNr Set KaderCons="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:KaderCons .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:KaderCons ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set KaderCons=$P($$GENTYP^HAD(PRNr),"\")="KAD" Quit KaderCons ; KADERORD(ORDNr) New R,KaderOrd,KLNr,OLNr,PRNr Set KaderOrd="",KLNr=$P($G(^KO1(ORDNr,"F")),"\") Do:KLNr .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do Quit:KaderOrd ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set KaderOrd=$P($$GENTYP^HAD(PRNr),"\")="KAD" Quit KaderOrd ; KADEROFF(OFFNr) New R,KaderOff,KLNr,OFLNr,PRNr Set KaderOff="",KLNr=$P($G(^KOFKL1(OFFNr,"F")),"\") Do:KLNr .Set OFLNr=100 .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:'OFLNr Do Quit:KaderOff ..Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Do DEURPROD(PRNr,LevRef,.KaderOff) ..Set KaderOff=$P($$GENTYP^HAD(PRNr),"\")="KAD" Quit KaderOff ; KADERRST(DocNr) Quit 0 ; ; Halux ISHALUX(Document,DocNr,LijnNr) New X,IsHalux Set X=$S(Document="L":"BON",Document="O":"ORD",Document="T":"TOE",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set IsHalux=$$HALUX"_X Xecute X Quit IsHalux ; HALUXBON(BONNr,ULNr) New R,KLNr,PRNr,IsHalux,Node Set ULNr=$G(ULNr) Set IsHalux=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do .Set Node=$S($D(^KUL(KLNr,"F",BONNr)):"F",1:"G") .If ULNr Do ..Set R=^KUL(KLNr,Node,BONNr,ULNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set IsHalux=$$ISHALUX^PRODUKT2(PRNr) .Else Do ..Set ULNr=100 ..For Set ULNr=$O(^KUL(KLNr,Node,BONNr,ULNr)) Quit:'ULNr Do Quit:IsHalux ...Set R=^KUL(KLNr,Node,BONNr,ULNr),IsHalux=$$HALUXBON(BONNr,ULNr) Else If $D(^ORDW("D",BONNr)) Set IsHalux=$$HALUXWMS(BONNr) Quit IsHalux ; HALUXWMS(CONSNr) New R,IsHalux,ORDNr,OLUNr,SOLUNr,PRNr Set IsHalux="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:IsHalux .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:IsHalux ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set IsHalux=$$ISHALUX^PRODUKT2(PRNr) ..Quit:IsHalux ..Set SOLUNr="" ..For Set SOLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)) Quit:SOLUNr="" Do Quit:IsHalux ...Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr),PRNr=$P(R,"\") ...Quit:'PRNr ...Set IsHalux=$$ISHALUX^PRODUKT2(PRNr) Quit IsHalux ; HALUXORD(ORDNr,OLNr) New R,KLNr,PRNr,IsHalux Set OLNr=$G(OLNr) Set IsHalux=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsHalux=$$ISHALUX^PRODUKT2(PRNr) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:IsHalux ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),IsHalux=$$HALUXORD(ORDNr,OLNr) Quit IsHalux ; HALUXTOE(DocNr) Quit ''$D(^KTO(6332,DocNr)) ; HALUXRST(DocNr) Quit 0 ; ; Orgalux ISORGAL(Document,DocNr,LijnNr) New X,IsOrgal Set X=$S(Document="F":"FAK",Document="P":"FAP",Document="L":"BON",Document="O":"ORD",Document="A":"OFF",Document="M":"MBO",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set IsOrgal=$$ORGAL"_X Xecute X Quit IsOrgal ; ORGALMBO(MBRef,KLNr) New R,PRNr,IsOrgal,PakNr Set (IsOrgal,PRNr)=0 For Set PRNr=$O(^MBLOG("D",MBRef,KLNr,PRNr)) Quit:'PRNr Do Quit:IsOrgal .Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) If 'IsOrgal,PRNr="P" Do .Set PakNr="" .For Set PakNr=$O(^MBLOG("D",MBRef,KLNr,"P",PakNr)) Quit:PakNr="" Do Quit:IsOrgal ..Set PRNr="" ..For Set PRNr=$O(^MBLOG("D",MBRef,KLNr,"P",PakNr,PRNr)) Quit:PRNr="" Do Quit:IsOrgal ...Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Quit IsOrgal ; ORGALOFF(OFFNr,OLNr) New R,KLNr,PRNr,IsOrgal Set OLNr=$G(OLNr) Set IsOrgal=0,KLNr=$P(^KOFKL1(OFFNr,"F"),"\") If OLNr Do .Set R=^KOFKL(KLNr,"F",OFFNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOFKL(KLNr,"F",OFFNr,OLNr)) Quit:OLNr="" Do Quit:PRNr ..Set R=^KOFKL(KLNr,"F",OFFNr,OLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Quit IsOrgal ; ORGALORD(ORDNr,OLNr) New R,KLNr,PRNr,IsOrgal Set OLNr=$G(OLNr) Set IsOrgal=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:PRNr ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Quit IsOrgal ; ORGALBON(BONNr,BLNr) New R,KLNr,PRNr,IsOrgal,Node Set BLNr=$G(BLNr),Node=$$NODE^FLOWBON(BONNr) Set IsOrgal=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If BLNr Do .Set R=^KUL(KLNr,Node,BONNr,BLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else Do ; Volledig bon .If KLNr Do ; Bestaat reeds in KUL ..Set BLNr=100 ..For Set BLNr=$O(^KUL(KLNr,Node,BONNr,BLNr)) Quit:'BLNr Do Quit:PRNr ...Set R=^KUL(KLNr,Node,BONNr,BLNr),PRNr=$P(R,"\",2) ...Quit:'PRNr ...Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) .Else Do ; Kijken of het bestaat in ORDW .. If $D(^ORDW("D",BONNr)) Set IsOrgal=$$ORGALWMS(BONNr) Quit IsOrgal ; ORGALWMS(CONSNr) New R,IsOrgal,ORDNr,OLUNr,SOLUNr,PRNr Set IsOrgal="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:IsOrgal .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:IsOrgal ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Quit IsOrgal ; ORGALFAK(FANr,BONNr,BLNr) New R,KLNr,PRnr,IsOrgal Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set IsOrgal=0 If BLNr Do .Set BONNr="U"_BONNr,R=^KFA("F",FANr,BONNr,BLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else If BONNr Do .Set BONNr="U"_BONNr,BLNr=100 .For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:BLNr="" Do Quit:PRNr ..Set R=^KFA("F",FANr,BONNr,BLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else Do .Set BONNr="U" .For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Do Quit:$G(PRNr) ..Set BLNr=100 ..For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:BLNr="" Do Quit:PRNr ...Set R=^KFA("F",FANr,BONNr,BLNr),PRNr=$P(R,"\",2) ...Quit:'PRNr ...Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Quit IsOrgal ; ORGALFAP(FANr,BONNr,BLNr) New R,KLNr,PRnr,IsOrgal Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set IsOrgal=0 If BLNr Do .Set BONNr="U"_BONNr,R=^KFAP("F",FANr,BONNr,BLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else If BONNr Do .Set BONNr="U"_BONNr,BLNr=100 .For Set BLNr=$O(^KFAP("F",FANr,BONNr,BLNr)) Quit:BLNr="" Do Quit:PRNr ..Set R=^KFAP("F",FANr,BONNr,BLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Else Do .Set BONNr="U" .For Set BONNr=$O(^KFAP("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Do Quit:$G(PRNr) ..Set BLNr=100 ..For Set BLNr=$O(^KFAP("F",FANr,BONNr,BLNr)) Quit:BLNr="" Do Quit:PRNr ...Set R=^KFAP("F",FANr,BONNr,BLNr),PRNr=$P(R,"\",2) ...Quit:'PRNr ...Set IsOrgal=$$ISORGAL^PRODUKT2(PRNr) Quit IsOrgal ; ; Haluxwizzard ISHALWIZ(Document,DocNr,LijnNr) New X,IsHalWiz Set X=$S(Document="T":"TOE",Document="O":"ORD",Document="A":"OFF",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set IsHalWiz=$$HALWZ"_X Xecute X Quit IsHalWiz ; HALWZORD(ORDNr,OLNr) New R,KLNr,PRNr,IsHalWiz Set OLNr=$G(OLNr) Set IsHalWiz=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr Quit:$P($G(^KPR(PRNr,"G")),"\",35)="*" .Set IsHalWiz=''$P($G(^KPR(PRNr,"G")),"\",13) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:IsHalWiz ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),IsHalWiz=$$HALWZORD(ORDNr,OLNr) Quit IsHalWiz ; HALWZOFF(OFFNr,OLNr) New R,KLNr,PRNr,IsHalWiz Set OLNr=$G(OLNr) Set IsHalWiz=0,KLNr=$P(^KOFKL1(OFFNr,"F"),"\") If OLNr Do .Set R=^KOFKL(KLNr,"F",OFFNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsHalWiz=''$P($G(^KPR(PRNr,"G")),"\",13) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOFKL(KLNr,"F",OFFNr,OLNr)) Quit:OLNr="" Do Quit:IsHalWiz ..Set R=^KOFKL(KLNr,"F",OFFNr,OLNr),IsHalWiz=$$HALWZOFF(OFFNr,OLNr) Quit IsHalWiz ; HALWZTOE(TOENr,TLNr) New R,LEVNr,PRNr,IsHalWiz Set TLNr=$G(TLNr) Set IsHalWiz=0,LEVNr=$P(^KTO1(TOENr),"\") If TLNr Do .Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set IsHalWiz=''$P($G(^KPR(PRNr,"G")),"\",13) Else Do .Set TLNr=100 .For Set TLNr=$O(^KTO(LEVNr,TOENr,TLNr)) Quit:TLNr="" Do Quit:IsHalWiz ..Set R=^KTO(LEVNr,TOENr,TLNr),IsHalWiz=$$HALWZTOE(TOENr,TLNr) Quit IsHalWiz ; ; Commissie (dit is niet hetzelfde als KOM) ISCOMM(Document,DocNr) New X,IsComm Set X=$S(Document="L":"BON",Document="O":"ORD",Document="M":"MBO",1:"RST") Set X=X_"(DocNr)",X="Set IsComm=$$COMM"_X Xecute X Quit IsComm ; COMMORD(ORDNr) New R,KLNr,IsComm,VerpTyp,CommRef Set IsComm=0,KLNr=$P(^KO1(ORDNr,"F"),"\") Set R=^KOD(KLNr,"F",ORDNr,1) Set IsComm=";"_$P(R,"\",30)_";"[";CO;" Set:IsComm IsComm=''$L($P(R,"\",19)) Quit IsComm ; COMMBON(BONNr) New R,KLNr,IsComm,BLNr Set IsComm=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do ; Bestaat reeds in KUL .Set R=^KUL(KLNr,"F",BONNr,1) .Set IsComm=";"_$P(R,"\",30)_";"[";CO;" .Quit:'IsComm .Set BLNr=100,IsComm=0 .For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:IsComm ..Set R=^KUL(KLNr,"F",BONNr,BLNr) ..Quit:$P(R,"\",17)'="KF5" ..Set IsComm=''$L($P(R,"\",20)) Else Do ; Kijken of het bestaat in ORDW . If $D(^ORDW("D",BONNr)) Set IsComm=$$COMMWMS(BONNr) Quit IsComm ; COMMWMS(CONSNr) New R,IsComm,ORDNr Set IsComm="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:IsComm .Set IsComm=$$COMMORD(ORDNr) Quit IsComm ; COMMRST(Rest) Quit 0 ; ; Plus-min ISPLUSMI(Document,DocNr,LijnNr) New X,IsPlusMi Set X=$S(Document="O":"ORD",Document="L":"BON",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set IsPlusMi=$$PLUMI"_X Xecute X Quit IsPlusMi ; PLUMIORD(ORDNr) New R,KLNr,OLNr,Aantal,Plus,Min Set KLNr=$P(^KO1(ORDNr,"F"),"\"),OLNr=100,(Plus,Min)=0 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:Plus&Min .Set R=^KOD(KLNr,"F",ORDNr,OLNr),Aantal=$P(R,"\",3) .Set:Aantal>0 Plus=1 Set:Aantal<0 Min=1 Quit Plus&Min ; PLUMIBON(BONNr) Quit $$ISPLMIN^FLOWBON5(BONNr) ; PLUMIRST(Rest) Quit 0 ; ; Project ISPROJ(Document,DocNr) New X,IsProj Set X=$S(Document="O":"ORD",1:"RST") Set X=X_"(DocNr)",X="Set IsProj=$$PROJ"_X Xecute X Quit IsProj ; PROJORD(ORDNr) New R,IsProj,KLNr,PRNr,Omschr,OLNr Set IsProj=0,KLNr=$P(^KO1(ORDNr,"F"),"\"),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:IsProj .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2),Omschr=$P(R,"\",5) .Set IsProj=PRNr&$L(Omschr) Quit IsProj ; PROJRST(Rest) Quit 0 ; ; Zonder stockupdate ISZSTUPD(Document,DocNr,LijnNr) New X,IsZStUpd Set X=$S(Document="L":"BON",Document="O":"ORD",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set IsZStUpd=$$ZSTUPD"_X Xecute X Quit IsZStUpd ; ZSTUPDORD(ORDNr,OLNr) New R,KLNr,PRNr,IsZStUpd Set OLNr=$G(OLNr) Set IsZStUpd=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["S" .Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["Z" Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:PRNr ..Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) ..Quit:'PRNr ..Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["S" ..Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["Z" Quit IsZStUpd ; ZSTUPDBON(BONNr,BLNr) New R,KLNr,PRNr,IsZStUpd Set BLNr=$G(BLNr) Set IsZStUpd=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If BLNr Do .Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["S" .Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["Z" Else Do ; Volledig bon .If KLNr Do ; Bestaat reeds in KUL ..Set BLNr=100 ..For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:PRNr ...Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,"\",2) ...Quit:'PRNr ...Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["S" ...Set:'IsZStUpd IsZStUpd=$P(R,"\",14)["Z" .Else Do ; Kijken of het bestaat in ORDW .. If $D(^ORDW("D",BONNr)) Set IsZStUpd=$$ORGALWMS(BONNr) Quit IsZStUpd ; ZSTUPDWMS(CONSNr) New R,IsZStUpd,ORDNr,OLUNr,SOLUNr,PRNr,OLNr Set IsZStUpd="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:PRNr .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:PRNr ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set OLNr=^ORD("IU",ORDNr,OLUNr) ..Set IsZStUpd=$$ZSTUPDORD(ORDNr,OLNr) Quit IsZStUpd ; ; KOM-order ISKOM(ORDNr,OLNr) New R,IsKom,KLNr,PRNr,TOENr Set IsKom=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If $G(OLNr) Do . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2),TOENr=$P(R,"\",27) . Set:PRNr IsKom=''TOENr Else Do . Set OLNr=100 . For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Set IsKom=$$ISKOM(ORDNr,OLNr) Quit:IsKom Quit IsKom ; ; KOM-order syncroon met de toelevering? ISSYNC(ORDNr,OLNr) New R,IsSync,KLNr,PRNr,TOENr,TLNr,OrdLevWk,ToeLevWk,LEVNr Set IsSync=1,KLNr=$P(^KO1(ORDNr,"F"),"\") If $G(OLNr) Do . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2),TOENr=$P(R,"\",27),TLNr=$P(R,"\",28) . Quit:'PRNr Quit:'TOENr Quit:'TLNr . Set OrdLevWk=$P(R,"\",25) . Set LEVNr=$P(^KTO1(TOENr),"\"),R=^KTO(LEVNr,TOENr,TLNr),ToeLevWk=$P(R,"\",25) . Set IsSync=$$CALCDATE^vhDTyp(OrdLevWk,"W","MD")=($$INTDATE^vhDTyp(ToeLevWk,"DW")+7) Else Do . Set OLNr=100 . For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Set IsSync=$$ISSYNC(ORDNr,OLNr) Quit:'IsSync Quit IsSync ; ; Bepaal het Haluxtype van een document (TBX,KAD,...) HALUXTYP(Document,DocNr,LijnNr) New X,HaluxTyp Set X=$S(Document="F":"FAK",Document="P":"FAP",Document="L":"BON",Document="O":"ORD",Document="A":"OFF",Document="M":"MBO",Document="T":"TOE",1:"RST") Set X=X_"TYP(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set HaluxTyp=$$HAL"_X Xecute X Quit HaluxTyp ; ; Bepaal het Haluxtype van een order (TBX,KAD,...) HALORDTYP(ORDNr,OLNr) New R,KLNr,PRNr,HalOrdTyp Set OLNr=$G(OLNr) Set HalOrdTyp="",KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set HalOrdTyp=$P($$GENTYP^HAD(PRNr),"\") Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ..Set R=$$HALORDTYP(ORDNr,OLNr) ..Set:D_HalOrdTyp_D'[(D_R_D) HalOrdTyp=HalOrdTyp_D_R .Set $E(HalOrdTyp)="" .Set:$L(HalOrdTyp,"\")>1 HalOrdTyp="DIV" Quit HalOrdTyp ; ; Bepaal het Haluxtype van een toelevering (TBX,KAD,...) HALTOETYP(TOENr,TLNr) New R,LEVNr,PRNr,HalToeTyp Set TLNr=$G(TLNr) Set HalToeTyp="",LEVNr=$P(^KTO1(TOENr),"\") If TLNr Do .Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,"\",2) .Quit:'PRNr .Set HalToeTyp=$P($$GENTYP^HAD(PRNr),"\") Else Do .Set TLNr=100 .For Set TLNr=$O(^KTO(LEVNr,TOENr,TLNr)) Quit:TLNr="" Do ..Set R=$$HALTOETYP(TOENr,TLNr) ..Set:D_HalToeTyp_D'[(D_R_D) HalToeTyp=HalToeTyp_D_R .Set $E(HalToeTyp)="" .Set:$L(HalToeTyp,"\")>1 HalToeTyp="DIV" Quit HalToeTyp ; ; Controleer of een document (of lijn) Tandemglijder producten bevat BevatTandem(Document,DocNr,LijnNr) Quit $$Bevat("TA",Document,DocNr,.LijnNr) ; Controleer of een document (of lijn) Aventos producten bevat BevatAventos(Document,DocNr,LijnNr) Quit $$Bevat("AV",Document,DocNr,.LijnNr) ;Type kan volgende waarden hebben : ; AV : Aventos ; TA : Tandemglijders en toebehoren ; SDM : ServoDrive op maat Bevat(Type,Document,DocNr,LijnNr) New X,Bevat Set X=$S(Document="F":"FAK",Document="P":"FAP",Document="L":"BON",Document="O":"ORD",Document="A":"OFF",Document="T":"TOE",1:"RST") Set X="Set Bevat=$$Bevat"_X_"(Type,DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")" Xecute X Quit Bevat ; Order BevatORD(Type,ORDNr,OLNr) New R,KLNr,PRNr,Bevat Set OLNr=$G(OLNr) Set Bevat=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Set:PRNr Bevat=$$Is^PRODUKT2(PRNr,Type) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Set Bevat=$$BevatORD(Type,ORDNr,OLNr) Quit:Bevat Quit Bevat ; ; Leveringsbon BevatBON(Type,BONNr,ULNr) New R,KLNr,PRNr,Bevat Set ULNr=$G(ULNr) Set Bevat=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do ; KUL . If ULNr Do . . Set R=^KUL(KLNr,"F",BONNr,ULNr),PRNr=$P(R,"\",2) . . Set:PRNr Bevat=$$Is^PRODUKT2(PRNr,Type) . Else Do . . Set ULNr=100 . . For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Set Bevat=$$BevatBON(Type,BONNr,ULNr) Quit:Bevat Else If $D(^ORDW("D",BONNr)) Set Bevat=$$BevatWMS(Type,BONNr) ; WMS Quit Bevat ;WMS BevatWMS(Type,CONSNr) New R,Bevat,ORDNr,OLUNr,SOLUNr,PRNr Set Bevat="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:Bevat .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:Bevat ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set Bevat=$$Is^PRODUKT2(PRNr,Type) ..Quit:Bevat ..Set SOLUNr="" ..For Set SOLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)) Quit:SOLUNr="" Do Quit:Bevat ...Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr),PRNr=$P(R,"\") ...Quit:'PRNr ...Set Bevat=$$Is^PRODUKT2(PRNr,Type) Quit Bevat ; Offerte BevatOFF(Type,OFFNr,OFLNr) New R,KLNr,PRNr,Bevat Set OFLNr=$G(OFLNr) Set Bevat=0,KLNr=$P(^KOFKL1(OFFNr,"F"),"\") If OFLNr Do .Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,"\",2) .Set:PRNr Bevat=$$Is^PRODUKT2(PRNr,Type) Else Do .Set OFLNr=100 .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:OFLNr'?3.4N Set Bevat=$$BevatOFF(Type,OFFNr,OFLNr) Quit:Bevat Quit Bevat ; ; Toelevering BevatTOE(Type,TOENr,TLNr) New R,LEVNr,PRNr,Bevat Set TLNr=$G(TLNr) Set Bevat=0,LEVNr=$P(^KTO1(TOENr),"\") If TLNr Do .Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,"\",2) .Set:PRNr Bevat=$$Is^PRODUKT2(PRNr,Type) Else Do .Set TLNr=100 .For Set TLNr=$O(^KTO(LEVNr,TOENr,TLNr)) Quit:TLNr="" Set Bevat=$$BevatTOE(Type,TOENr,TLNr) Quit:Bevat Quit Bevat ; ; Factuur BevatFAK(Type,FANr,BONNr,BLNr) New R,PRNr,Bevat Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set Bevat=0 If BLNr Do .Set R=^KFA("F",FANr,"U"_BONNr,BLNr),PRNr=$P(R,"\",2) .Set:PRNr Bevat=$$Is^PRODUKT2(PRNr,Type) Else If BONNr Do . Set BONNr="U"_BONNr,BLNr=100 . For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:BLNr="" Set Bevat=$$BevatFAK(Type,FANr,$E(BONNr,2,9),BLNr) Quit:Bevat Else Do .Set BONNr="U" .For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Set Bevat=$$BevatFAK(Type,FANr,$E(BONNr,2,9)) Quit:Bevat Quit Bevat ; ; Proforma BevatFAP(Type,FANr,BONNr,BLNr) New R,PRNr,Bevat Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set Bevat=0 If BLNr Do .Set R=^KFAP("F",FANr,"U"_BONNr,BLNr),PRNr=$P(R,"\",2) .Set:PRNr Bevat=$$Is^PRODUKT2(PRNr,Type) Else If BONNr Do . Set BONNr="U"_BONNr,BLNr=100 . For Set BLNr=$O(^KFAP("F",FANr,BONNr,BLNr)) Quit:BLNr="" Set Bevat=$$BevatFAP(Type,FANr,$E(BONNr,2,9),BLNr) Quit:Bevat Else Do .Set BONNr="U" .For Set BONNr=$O(^KFAP("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Set Bevat=$$BevatFAP(Type,FANr,$E(BONNr,2,9)) Quit:Bevat Quit Bevat ; ; Controleer of een document (of lijn) maatwerk producten bevat BevatMaatWerk(Document,DocNr,LijnNr) New X,BevatMaatWerk Set X=$S(Document="F":"FAK",Document="P":"FAP",Document="L":"BON",Document="O":"ORD",Document="A":"OFF",Document="T":"TOE",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set BevatMaatWerk=$$BevatMaatWerk"_X Xecute X Quit BevatMaatWerk ; ; Order BevatMaatWerkORD(ORDNr,OLNr) New R,KLNr,PRNr,BevatMaatWerk Set OLNr=$G(OLNr) Set BevatMaatWerk=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Set BevatMaatWerk=$$BevatMaatWerkORD(ORDNr,OLNr) Quit:BevatMaatWerk Quit BevatMaatWerk ; ; Leveringsbon BevatMaatWerkBON(BONNr,ULNr) New R,KLNr,PRNr,BevatMaatWerk Set ULNr=$G(ULNr) Set BevatMaatWerk=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do ; KUL . If ULNr Do . . Set R=^KUL(KLNr,"F",BONNr,ULNr),PRNr=$P(R,"\",2) . . Set:PRNr BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) . Else Do . . Set ULNr=100 . . For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Set BevatMaatWerk=$$BevatMaatWerkBON(BONNr,ULNr) Quit:BevatMaatWerk Else If $D(^ORDW("D",BONNr)) Set BevatMaatWerk=$$BevatMaatWerkWMS(BONNr) ; WMS Quit BevatMaatWerk ;WMS BevatMaatWerkWMS(CONSNr) New R,BevatMaatWerk,ORDNr,OLUNr,SOLUNr,PRNr Set BevatMaatWerk="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:BevatMaatWerk .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:BevatMaatWerk ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) ..Quit:BevatMaatWerk ..Set SOLUNr="" ..For Set SOLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)) Quit:SOLUNr="" Do Quit:BevatMaatWerk ...Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr),PRNr=$P(R,"\") ...Quit:'PRNr ...Set BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Quit BevatMaatWerk ; Offerte BevatMaatWerkOFF(OFFNr,OFLNr) New R,KLNr,PRNr,BevatMaatWerk Set OFLNr=$G(OFLNr) Set BevatMaatWerk=0,KLNr=$P(^KOFKL1(OFFNr,"F"),"\") If OFLNr Do .Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Else Do .Set OFLNr=100 .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:OFLNr'?3.4N Set BevatMaatWerk=$$BevatMaatWerkOFF(OFFNr,OFLNr) Quit:BevatMaatWerk Quit BevatMaatWerk ; ; Toelevering BevatMaatWerkTOE(TOENr,TLNr) New R,LEVNr,PRNr,BevatMaatWerk Set TLNr=$G(TLNr) Set BevatMaatWerk=0,LEVNr=$P(^KTO1(TOENr),"\") If TLNr Do .Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Else Do .Set TLNr=100 .For Set TLNr=$O(^KTO(LEVNr,TOENr,TLNr)) Quit:TLNr="" Set BevatMaatWerk=$$BevatMaatWerkTOE(TOENr,TLNr) Quit:BevatMaatWerk Quit BevatMaatWerk ; ; Factuur BevatMaatWerkFAK(FANr,BONNr,BLNr) New R,PRNr,BevatMaatWerk Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set BevatMaatWerk=0 If BLNr Do .Set R=^KFA("F",FANr,"U"_BONNr,BLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Else If BONNr Do . Set BONNr="U"_BONNr,BLNr=100 . For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:BLNr="" Set BevatMaatWerk=$$BevatMaatWerkFAK(FANr,$E(BONNr,2,9),BLNr) Quit:BevatMaatWerk Else Do .Set BONNr="U" .For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Set BevatMaatWerk=$$BevatMaatWerkFAK(FANr,$E(BONNr,2,9)) Quit:BevatMaatWerk Quit BevatMaatWerk ; ; Proforma BevatMaatWerkFAP(FANr,BONNr,BLNr) New R,PRNr,BevatMaatWerk Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set BevatMaatWerk=0 If BLNr Do .Set R=^KFAP("F",FANr,"U"_BONNr,BLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Else If BONNr Do . Set BONNr="U"_BONNr,BLNr=100 . For Set BLNr=$O(^KFAP("F",FANr,BONNr,BLNr)) Quit:BLNr="" Set BevatMaatWerk=$$BevatMaatWerkFAP(FANr,$E(BONNr,2,9),BLNr) Quit:BevatMaatWerk Else Do .Set BONNr="U" .For Set BONNr=$O(^KFAP("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Set BevatMaatWerk=$$BevatMaatWerkFAP(FANr,$E(BONNr,2,9)) Quit:BevatMaatWerk Quit BevatMaatWerk ; ; Controleer of een document (of lijn) afdekkapjes bevat BevatAfdekKap(Document,DocNr,LijnNr) New X,BevatAfdekKap Set X=$S(Document="F":"FAK",Document="P":"FAP",Document="L":"BON",Document="O":"ORD",Document="A":"OFF",Document="T":"TOE",1:"RST") Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set BevatAfdekKap=$$BevatAfdekKap"_X Xecute X Quit BevatAfdekKap ; ; Order BevatAfdekKapORD(ORDNr,OLNr) New R,KLNr,PRNr,BevatAfdekKap Set OLNr=$G(OLNr) Set BevatAfdekKap=0,KLNr=$P(^KO1(ORDNr,"F"),"\") If OLNr Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) Else Do .Set OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Set BevatAfdekKap=$$BevatAfdekKapORD(ORDNr,OLNr) Quit:BevatAfdekKap Quit BevatAfdekKap ; ; Leveringsbon BevatAfdekKapBON(BONNr,ULNr) New R,KLNr,PRNr,BevatAfdekKap Set ULNr=$G(ULNr) Set BevatAfdekKap=0,KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr Do ; KUL . If ULNr Do . . Set R=^KUL(KLNr,"F",BONNr,ULNr),PRNr=$P(R,"\",2) . . Set:PRNr BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) . Else Do . . Set ULNr=100 . . For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Set BevatAfdekKap=$$BevatAfdekKapBON(BONNr,ULNr) Quit:BevatAfdekKap Else If $D(^ORDW("D",BONNr)) Set BevatAfdekKap=$$BevatAfdekKapWMS(BONNr) ; WMS Quit BevatAfdekKap ;WMS BevatAfdekKapWMS(CONSNr) New R,BevatAfdekKap,ORDNr,OLUNr,SOLUNr,PRNr Set BevatAfdekKap="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:BevatAfdekKap .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:BevatAfdekKap ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) ..Quit:BevatAfdekKap ..Set SOLUNr="" ..For Set SOLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr)) Quit:SOLUNr="" Do Quit:BevatAfdekKap ...Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr,SOLUNr),PRNr=$P(R,"\") ...Quit:'PRNr ...Set BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) Quit BevatAfdekKap ; Offerte BevatAfdekKapOFF(OFFNr,OFLNr) New R,KLNr,PRNr,BevatAfdekKap Set OFLNr=$G(OFLNr) Set BevatAfdekKap=0,KLNr=$P(^KOFKL1(OFFNr,"F"),"\") If OFLNr Do .Set R=^KOFKL(KLNr,"F",OFFNr,OFLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) Else Do .Set OFLNr=100 .For Set OFLNr=$O(^KOFKL(KLNr,"F",OFFNr,OFLNr)) Quit:OFLNr'?3.4N Set BevatAfdekKap=$$BevatAfdekKapOFF(OFFNr,OFLNr) Quit:BevatAfdekKap Quit BevatAfdekKap ; ; Toelevering BevatAfdekKapTOE(TOENr,TLNr) New R,LEVNr,PRNr,BevatAfdekKap Set TLNr=$G(TLNr) Set BevatAfdekKap=0,LEVNr=$P(^KTO1(TOENr),"\") If TLNr Do .Set R=^KTO(LEVNr,TOENr,TLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) Else Do .Set TLNr=100 .For Set TLNr=$O(^KTO(LEVNr,TOENr,TLNr)) Quit:TLNr="" Set BevatAfdekKap=$$BevatAfdekKapTOE(TOENr,TLNr) Quit:BevatAfdekKap Quit BevatAfdekKap ; ; Factuur BevatAfdekKapFAK(FANr,BONNr,BLNr) New R,PRNr,BevatAfdekKap Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set BevatAfdekKap=0 If BLNr Do .Set R=^KFA("F",FANr,"U"_BONNr,BLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) Else If BONNr Do . Set BONNr="U"_BONNr,BLNr=100 . For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:BLNr="" Set BevatAfdekKap=$$BevatAfdekKapFAK(FANr,$E(BONNr,2,9),BLNr) Quit:BevatAfdekKap Else Do .Set BONNr="U" .For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Set BevatAfdekKap=$$BevatAfdekKapFAK(FANr,$E(BONNr,2,9)) Quit:BevatAfdekKap Quit BevatAfdekKap ; ; Proforma BevatAfdekKapFAP(FANr,BONNr,BLNr) New R,PRNr,BevatAfdekKap Set BONNr=$G(BONNr),BLNr=$G(BLNr) Set BevatAfdekKap=0 If BLNr Do .Set R=^KFAP("F",FANr,"U"_BONNr,BLNr),PRNr=$P(R,"\",2) .Set:PRNr BevatAfdekKap=$$IsAfdekKap^PRODUKT2(PRNr) Else If BONNr Do . Set BONNr="U"_BONNr,BLNr=100 . For Set BLNr=$O(^KFAP("F",FANr,BONNr,BLNr)) Quit:BLNr="" Set BevatAfdekKap=$$BevatAfdekKapFAP(FANr,$E(BONNr,2,9),BLNr) Quit:BevatAfdekKap Else Do .Set BONNr="U" .For Set BONNr=$O(^KFAP("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Set BevatAfdekKap=$$BevatAfdekKapFAP(FANr,$E(BONNr,2,9)) Quit:BevatAfdekKap Quit BevatAfdekKap ; ; Tandembox ISTBX(Document,DocNr,LijnNr) New X,HaluxTyp Set X="Set HaluxTyp=$$HALUXTYP(Document,DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")" Xecute X Quit D_HaluxTyp_D["\TBX\" ;