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) ; ; 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 ; TAORIndelingORD(OrderID) New Order,ProductLijnIt,ProductID,IsTAORIndeling,ProductOrderLijn,IsTAORIndeling #dim Order As DOM.VKP.Order = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefOrder(OrderID) #dim ProductLijnIt As TECH.Iterator = Order.GeefProductOrderLijnIterator() #dim IsTAORIndeling As %Boolean = 0 While ( ProductLijnIt.HasNext() && ('IsTAORIndeling) ) { #dim ProductOrderLijn As DOM.VKP.ProductOrderlijn = ProductLijnIt.Next() If ProductOrderLijn.GeefAantal() > 0 { #dim ProductID As %String = ProductOrderLijn.GeefProductID() Set IsTAORIndeling = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI().IsTAORIndelingProduct(ProductID) } } Quit IsTAORIndeling TAORIndelingBON(BONNr) New R,HeeftTAORIndeling,KLNr,ULNr,PRNr,ProductTypeAPI,Bon #dim ProductTypeAPI As DOM.PM.ProductTypeAPI = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI() Set HeeftTAORIndeling="",KLNr=$P($G(^KU1(BONNr,"F")),"\") If KLNr { Set FlowObjectInhoudService = ##class(APPS.OV.impl.FlowObjectInhoudService).%New() #dim Bon AS DOM.VKP.Bon = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefBon(BONNr) Set HeeftTAORIndeling = FlowObjectInhoudService.BonBevatTAORIndeling(Bon) } ElseIf ($D(^ORDW("D",BONNr))){ Set HeeftTAORIndeling=$$TAORIndelingWMS(BONNr) } Quit HeeftTAORIndeling ; TAORIndelingWMS(CONSNr,LevRef) New R,HeeftTAORIndeling,ORDNr,OLUNr,PRNr,ProductTypeAPI #dim ProductTypeAPI As DOM.PM.ProductTypeAPI = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI() Set HeeftTAORIndeling="",ORDNr="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do Quit:HeeftTAORIndeling .Set OLUNr="" .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do Quit:HeeftTAORIndeling ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,"\") ..Quit:'PRNr ..Set HeeftTAORIndeling=ProductTypeAPI.IsTAORIndelingProduct(PRNr) Quit HeeftTAORIndeling ; 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 ..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="Set IsHalux=$$HALUX"_X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")" 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 ; HeeftTAORIndeling(Document,DocNr,LijnNr) New X,HeeftTAORIndeling, Boodschap Set X=$S(Document="L":"BON",Document="O":"ORD",1:"NogNietGedefinieerd") If X '= "NogNietGedefinieerd" { Set X=X_"(DocNr"_$S($G(LijnNr):",LijnNr",1:"")_")",X="Set HeeftTAORIndeling=$$TAORIndeling"_X Xecute X }Else{ Set HeeftTAORIndeling = 0 #dim Boodschap As %String = "Write $$HeeftTAORIndeling^FLOWCHK("_Document_","_DocNr_","_$G(LijnNr)_")"_$C(13,10) Set Boodschap = Boodschap_"Document '"_Document_"' nog niet gedefinieerd."_$C(13,10) Set Boodschap = Boodschap_$C(13,10)_$$GetStackToString^vhLib.System() Do ##class(vhLib.Logger).%New().WarningMail("HeeftTAORIndeling^FLOWCHK",Boodschap) } Quit HeeftTAORIndeling ; 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)||($P(R,"\",3)=0) .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:IsOrgal ...Set R=^KUL(KLNr,Node,BONNr,BLNr),PRNr=$P(R,"\",2) ...Quit:('PRNr)||($P(R,"\",3)=0) ...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($G(^KO1(ORDNr,"F")),"\") Quit:'KLNr 0 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 ISPROJ(Document,DocNr) Quit $$HEEFTWAARDE(Document,DocNr,"PROJ") HEEFTKLANTBARCODE(Document,DocNr) Quit $$HEEFTWAARDE(Document,DocNr,"KLANTBARCODE") HEEFTWAARDE(Document,DocNr,Prefix) New X,HeeftWaarde Set X=$S(Document="O":"ORD",1:"RST") Set X=X_"(DocNr)",X="Set HeeftWaarde=$$"_Prefix_X Xecute X Quit HeeftWaarde ; 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 KLANTBARCODERST(Rest) Quit 0 KLANTBARCODEORD(ORDNr) New R,HeeftKlantBarcode,KLNr,PRNr,Omschr,OLNr Set HeeftKlantBarcode=0,KLNr=$P(^KO1(ORDNr,"F"),"\"),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do Quit:HeeftKlantBarcode .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,"\",2),Omschr=$P(R,"\",52) .Set HeeftKlantBarcode=PRNr&$L(Omschr) Quit HeeftKlantBarcode ; ; 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^vhLib.DataTypes(OrdLevWk,"W","MD")=($$INTDATE^vhLib.DataTypes(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:"\"_HalOrdTyp_"\"'[("\"_R_"\") HalOrdTyp=HalOrdTyp_"\"_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\" ;