FLOWORD5 ;Order [ 09/30/2002 4:30 PM ] ; CALCORD(ORDNr) New I,R,KLNr,KlantInd,Goederen,Basis,Port,KontKrt,%KontKrt,Btw,BtwTeBet New TeBet,BtwVoet,OLNr,Pariteit,BtwKode,Munt,PRNr,IsStock,NetSt,NetNSt, Klant New AfrondenNodig If ORDNr="?" Do Quit "" .Write !,"Input = ORDNr" .Write !,"Output = TeBet\Goederen\KontKrt\Btw\Port\\Munt\NetSt#NetNSt" For I=0:1:9 I $D(^KBA(18,I)) Set BtwVoet(I)=$P(^KBA(18,I),D) Set KLNr=$P(^KO1(ORDNr,"F"),D),KlantInd=^KK1(KLNr) Set Klant = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr)) Set AfrondenNodig = ( Klant.GeefFacturatieWijze() = ##class(DOM.VKP.enu.FacturatieWijze).Excl() ) Set R=^KKL(KlantInd,0),BtwTeBet=$P(R,D,15),%KontKrt=$P(R,D,17) Set R=^KOD(KLNr,"F",ORDNr,1) If $P(R,D,25)'="P",$P(R,D,25)'="M" Else Quit "" Set KontKrt=0,Munt=$P(R,D,18) Set Pariteit=$$MUNT^vhRtn1(Munt,,12) Set Munt=$$MUNT^vhRtn1(Munt,1) Set Port=$P($$ORD^PORT(ORDNr),D) Set Port=$J($S($P(Port,"#",2):$P(Port,"#"),1:0)/Pariteit,0,2) Set OLNr=100,(NetSt,NetNSt)="" For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr) Quit:'$P(R,D,9) .Set PRNr=$P(R,D,2),BtwKode=$P(R,D,8) If 'BtwTeBet Set BtwKode=0 .If '$D(Goederen(BtwKode)) Set Goederen(BtwKode)=0,Basis(BtwKode)=0,Btw(BtwKode)=0 .Set Goederen(BtwKode)=Goederen(BtwKode)+$P(R,D,9) .Quit:'PRNr .Set IsStock=+$P(^KPR(PRNr,1),D,20) .Set:IsStock NetSt=NetSt+$P(R,D,9) Set:'IsStock NetNSt=NetNSt+$P(R,D,9) For BtwKode=0:1:9 If $D(Goederen(BtwKode)) Do .Set Basis(BtwKode)=Basis(BtwKode)+$$RondafIndienNodig(Goederen(BtwKode)-(Goederen(BtwKode)*%KontKrt/100)) Set BtwKode=$O(Goederen(""),-1) If BtwKode'="" Set Goederen(BtwKode)=Goederen(BtwKode)+Port,Basis(BtwKode)=Basis(BtwKode)+Port Set (Goederen,Basis,Btw)=0 For BtwKode=0:1:9 If $D(Goederen(BtwKode)) Do .Set Btw(BtwKode)=Btw(BtwKode)+$$RondafIndienNodig((Basis(BtwKode)*+BtwVoet(BtwKode)/100)) .Set Goederen=Goederen+Goederen(BtwKode) .Set Basis=Basis+Basis(BtwKode) .Set Btw=Btw+Btw(BtwKode) Set KontKrt=Goederen-Basis Set TeBet=Goederen-KontKrt+Btw Quit TeBet_D_Goederen_D_KontKrt_D_Btw_D_Port_D_D_Munt_D_NetSt_"#"_NetNSt RondafIndienNodig(Bedrag) if AfrondenNodig set Bedrag = $justify(Bedrag,0,2) quit Bedrag ; CALCWMS(ORDNr,LimitCONSNr) ; LimitCONSNr is optioneel New I,R,KLNr,KlantInd,Goederen,Basis,Port,KontKrt,%KontKrt,Btw,BtwTeBet New TeBet,BtwVoet,OLNr,Pariteit,BtwKode,Munt,PRNr,IsStock,NetSt,NetNSt New OLUNr,CONSNr,Aantal For I=0:1:9 I $D(^KBA(18,I)) Set BtwVoet(I)=$P(^KBA(18,I),D) Set KLNr=$P(^KO1(ORDNr,"F"),D),KlantInd=^KK1(KLNr) Set R=^KKL(KlantInd,0),BtwTeBet=$P(R,D,15),%KontKrt=$P(R,D,17) Set R=$G(^KOD(KLNr,"F",ORDNr,1)) If $P(R,D,25)'="P",$P(R,D,25)'="M" Else Quit "" Set KontKrt=0,Munt=$P(R,D,18) Set Pariteit=$$MUNT^vhRtn1(Munt,,12) Set Munt=$$MUNT^vhRtn1(Munt,1) Set Port=$P($$ORD^PORT(ORDNr),D) Set Port=$J($S($P(Port,"#",2):$P(Port,"#"),1:0)/Pariteit,0,2) Set OLNr=100,(NetSt,NetNSt)="" For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do .Set R=^KOD(KLNr,"F",ORDNr,OLNr) Quit:'$P(R,D,9) .Set PRNr=$P(R,D,2),BtwKode=$P(R,D,8),OLUNr=$P(R,D,15) If 'BtwTeBet Set BtwKode=0 .If PRNr Do Quit:'CONSNr ..Set CONSNr=$G(^ORDW("IO",ORDNr,OLUNr)) ..If $G(LimitCONSNr) Set:LimitCONSNr'=CONSNr CONSNr="" ; vermijden van dubbeltelling ..Quit:'CONSNr ..Set Aantal=$P(^ORDW("D",CONSNr,"D",ORDNr,OLUNr),D,4) ..Quit:Aantal=$P(R,D,3) ..For I=9,10,16 Set $P(R,D,I)=$P(R,D,I)/$P(R,D,3)*Aantal .If '$D(Goederen(BtwKode)) Set Goederen(BtwKode)=0,Basis(BtwKode)=0,Btw(BtwKode)=0 .Set Goederen(BtwKode)=Goederen(BtwKode)+$P(R,D,9) .Quit:'PRNr .Set IsStock=+$P(^KPR(PRNr,1),D,20) .Set:IsStock NetSt=NetSt+$P(R,D,9) Set:'IsStock NetNSt=NetNSt+$P(R,D,9) For BtwKode=0:1:9 If $D(Goederen(BtwKode)) Do .Set Basis(BtwKode)=Basis(BtwKode)+$J(Goederen(BtwKode)-(Goederen(BtwKode)*%KontKrt/100),1,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) Set BtwKode=$O(Goederen(""),-1) If BtwKode'="" Set Goederen(BtwKode)=Goederen(BtwKode)+Port,Basis(BtwKode)=Basis(BtwKode)+Port Set (Goederen,Basis,Btw)=0 For BtwKode=0:1:9 If $D(Goederen(BtwKode)) Do .Set Btw(BtwKode)=Btw(BtwKode)+$J((Basis(BtwKode)*+BtwVoet(BtwKode)/100),1,##class(APPS.VKP.OrderlijnPrijsBepaler).GeefAantalDecimalen()) .Set Goederen=Goederen+Goederen(BtwKode) .Set Basis=Basis+Basis(BtwKode) .Set Btw=Btw+Btw(BtwKode) Set KontKrt=Goederen-Basis Set TeBet=Goederen-KontKrt+Btw Quit TeBet_D_Goederen_D_KontKrt_D_Btw_D_Port_D_D_Munt_D_NetSt_"#"_NetNSt ; ; Is dit een terugname? ISTERUGN(ORDNr) New R,KLNr,IsTerugn,OLNr Set IsTerugn=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do Quit:IsTerugn .Set R=^KOD(KLNr,"F",ORDNr,OLNr) .If $P(R,D,17)="KF0" Set IsTerugn=$P(R,D,3)<0 .If $P($P(R,D,17),"#")="KF1925",$P($P(R,D,17),"#",2)'="CK" Set IsTerugn=$P(R,D,3)<0 Set:'IsTerugn IsTerugn=$P(R,D,9)<0 Quit IsTerugn ; ; Controle terugname, eventueel mail naar... CheckTerugname(ORDNr) Do CheckMaatWerkTerug(ORDNr) Do CheckNietStockTerug(ORDNr) Quit ; ; Is dit een terugname van maatwerk? ISTERUGNMaatWerk(ORDNr) New R,KLNr,IsTerugn,IsMaatWerk,OLNr,PRNr Set (IsTerugn,IsMaatWerk)=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do If IsTerugn,IsMaatWerk Quit . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . If PRNr Set IsTerugn=$P(R,D,3)<0 If IsTerugn,$$ISHALUX^PRODUKT2(PRNr) Set IsMaatWerk=$$IsMaatWerk^PRODUKT2(PRNr) Quit IsTerugn&IsMaatWerk ; ; Controle op terugname maatwerk en indien wel mail naar PVH;STM;DGU CheckMaatWerkTerug(ORDNr) New R,KLNr,GetOrd,UserName,From,To,Subject,Body,Result,KlachtId,Incident,sFL,Type,Groep,Verantw,SubType,ProdGroep,Element,Elementen,Dir,File,FilePath,Result Do:$$ISTERUGNMaatWerk(ORDNr) . Set KLNr=$P(^KO1(ORDNr,"F"),D) . Set GetOrd=$$GETORD^FLOWKLAS(ORDNr),UserName=$$USERNAME^vhUSER($P(GetOrd,"#"),1) Set:UserName="" UserName=$P(GetOrd,"#") . Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE" . Set To=$$PiecesToList^vhLib(##class(TECH.Config.ConfigMgr).Instance().GetString("FLOWORD5_MaatwerkTerug_MailTo"),";") . Set Subject="Terugname maatwerk"_" - "_$P(^KKL(^KK1(KLNr),0),D,2)_" - order "_$$EXTNUM^vhLib.DataTypes(ORDNr,0,".",0) . Set Body="Order : "_$$EXTNUM^vhLib.DataTypes(ORDNr,0,".",0)_" - "_$P(^KKL(^KK1(KLNr),0),D,2)_$C(13,10) . Set Body=Body_"Ingave: "_UserName_" "_$$FMTDT^vhLib.DataTypes($P(GetOrd,"#",2))_$C(13,10) . Do:$D(^KlachtI("O",ORDNr)) . . Set (KlachtId,Incident)="" . . For Set KlachtId=$O(^KlachtI("O",ORDNr,KlachtId)) Quit:KlachtId="" Do Quit:$L(Incident) . . . Quit:^KlachtI("O",ORDNr,KlachtId)'="R" . . . Kill sFL . . . Set sFL(1)=$G(^KlachtD(KlachtId)) . . . Set sFL("O",1)=$G(^KlachtD(KlachtId,"O",1)) . . . Merge sFL("O")=^KlachtD(KlachtId,"O") . . . Merge sFL("B")=^KlachtD(KlachtId,"B") . . . Set Type=$P(sFL(1),D,4),Groep=$P(sFL(1),D,5),ProdGroep=$P(sFL(1),D,6),Verantw=$P(sFL(1),D,7),SubType=$P(sFL(1),D,11) . . . Set R=$$ONOM^KLACHT(KlachtId,,1) Set:$L(R) Incident=$C(13,10)_"Onderwerp : "_R . . . Set Incident=Incident_$C(13,10)_"Type : "_$$FETCHPOP^vhScherm("KLACHT","TYPE",Type,"O") . . . Set Incident=Incident_$C(13,10)_"Groep : "_$$FETCHPOP^vhScherm("KLACHT","GROEP",Groep,"O")_$S(Groep="AND":" "_"("_$P(sFL(1),D,12)_")",1:"") . . . Set Incident=Incident_$C(13,10)_"Verantw : "_$$VERANTW^KLACHT2(.sFL,1) . . . Set Incident=Incident_$C(13,10)_"Subtype : "_$$FETCHPOP^vhScherm("KLACHT","SUBTYPE",SubType,"O") . . . Set Incident=Incident_$C(13,10)_"Productgroep: "_$$FETCHPOP^vhScherm("PRODUKT","PRODUKTGROEP",ProdGroep,"O") . . . Set Incident=Incident_$C(13,10)_"Product : "_$$FETCHPOP^vhScherm("KLACHT","PRODUCT",ProdGroep,"O") . . . Set Incident=Incident_$C(13,10)_"Fout alg. : "_$$FETCHPOP^vhScherm("KLACHT","SUBTYPE",ProdGroep,"O") . . . Set Incident=Incident_$C(13,10)_"Fout det. : "_$$FETCHPOP^vhScherm("KLACHT","FOUTDET",ProdGroep,"O") . . . Set Incident=Incident_$C(13,10)_"Bedrag : "_$Piece(sFL(1),"\",10) . . . If $O(sFL("B","")) Do . . . . Do DocDatum(.sFL,.Elementen) . . . . Set Elementen=$C(13,10)_"Elementen : " . . . . For I=1:1 Set Element=$G(sFL("B",I)) Quit:Element="" Do . . . . . Set R=$$CONVELEM^KLACHT2(Element) . . . . . If $L($P(Element,"#")),$L($P(Element,"#",2)),$L($G(Elementen($P(Element,"#"),$P(Element,"#",2)))) Set R=R_" - "_Elementen($P(Element,"#"),$P(Element,"#",2)) . . . . . Set Incident=Incident_Elementen_R,Elementen=$C(13,10)_$J("",14) . . . Set R=$$ONOM^KLACHT(KlachtId,,2) Set:$L(R) Incident=Incident_$C(13,10)_"Omschrijving: "_R . . Set:$L(Incident) Body=Body_$C(13,10)_"Incident"_Incident_$C(13,10) . Set Dir=$$DIRUSER^vhDEV(),FilePath="" . Do:$L(Dir) . . Set File="Ord"_ORDNr_".pdf",FilePath=Dir_File . . Set Result=##class(BL.Flow.Order.Doc).RenderAndFileDoc(ORDNr,FilePath) . . Set:'Result FilePath="" . If $L(FilePath) Do . . Set Result=$$SendMiniMail^vhLib(From,To,Subject,Body,,,,,$LB($LB(FilePath,0))) . . Set Result=$$DELFILE^vhDEV(FilePath) . Else Set Result=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit ; ; Bepaal alle datums DocDatum(sFL,Elementen) New I,Element,Type,DocNum For I=1:1 Set Element=$G(sFL("B",I)) Quit:Element="" Do . Set Type=$P(Element,"#"),DocNum=$P(Element,"#",2) . Set Elementen(Type,DocNum)="" Set Type="" For Set Type=$O(Elementen(Type)) Quit:Type="" Do . Set DocNum="" . For Set DocNum=$O(Elementen(Type,DocNum)) Quit:DocNum="" Do Quit:$L(Elementen(Type,DocNum)) . . Set FANr="" . . For Set FANr=$O(Elementen("F",FANr)) Quit:FANr="" Set Elementen(Type,DocNum)=$$GeefDocDatum(FANr,Type,DocNum) Quit:$L(Elementen(Type,DocNum)) Quit ; ; Bepaal de datum van een document via het FANr GeefDocDatum(FANr,Type,DocNum) New Datum,BONNr,BLNr,Rec Set Datum="" If Type="F" Set Datum=$P($G(^KFA("F",DocNum,0,0)),D,6) If Type="B" Set Datum=$P($G(^KFA("F",FANr,"U"_DocNum,1)),D,2) Do:Type="O" . Set BONNr="U" . For Set BONNr=$O(^KFA("F",FANr,BONNr)) Quit:$E(BONNr)'="U" Do . . Set BLNr=100 . . For Set BLNr=$O(^KFA("F",FANr,BONNr,BLNr)) Quit:'BLNr Do Quit:$L(Datum) . . . Set Rec=^KFA("F",FANr,BONNr,BLNr) . . . If $P(Rec,D,17)="KF5",$P($P(Rec,D,5)," - ")=DocNum Set Datum=$P($P(Rec,D,5)," - ",2) Quit Datum ; ; Is dit een terugname van NIET-STOCK producten? ISTERUGNNietStock(ORDNr) New R,KLNr,IsTerugn,IsNietStock,OLNr,PRNr Set (IsTerugn,IsNietStock)=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do If IsTerugn,IsNietStock Quit . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . Quit:'PRNr . Set IsTerugn=$P(R,D,3)<0 . Quit:'IsTerugn . If $$ISHALUX^PRODUKT2(PRNr),$$IsMaatWerk^PRODUKT2(PRNr) Quit . Set IsNietStock='$P(^KPR(PRNr,1),D,20) Quit IsTerugn&IsNietStock ; ; Controle op terugname Niet-stock en indien wel mail naar VDR;NBR CheckNietStockTerug(ORDNr) New R,KLNr,GetOrd,UserName,From,To,Subject,Body,Result,KlachtId,Incident,sFL,Type,Groep,Verantw,SubType,ProdGroep,Element,Elementen,Dir,File,FilePath,Result Do:$$ISTERUGNNietStock(ORDNr) . Set KLNr=$P(^KO1(ORDNr,"F"),D) . Set GetOrd=$$GETORD^FLOWKLAS(ORDNr),UserName=$$USERNAME^vhUSER($P(GetOrd,"#"),1) Set:UserName="" UserName=$P(GetOrd,"#") . Set From=##class(TECH.Context.RuntimeContext).Instance().GeefServerNaam()_"@VANHOECKE.BE" . Set To=$$USERNAME^vhUSER($$MailTo^vhUSER(##class(TECH.Config.ConfigMgr).Instance().GetString("FLOWORD5_NietStockTerug_MailTo")),"@",1) . Set Subject="Terugname niet-stock" . Set Body="Order : "_$$EXTNUM^vhLib.DataTypes(ORDNr,0,".",0)_" - "_$P(^KKL(^KK1(KLNr),0),D,2)_$C(13,10) . Set Body=Body_"Ingave: "_UserName_" "_$$FMTDT^vhLib.DataTypes($P(GetOrd,"#",2))_$C(13,10) . Do:$D(^KlachtI("O",ORDNr)) . . Set (KlachtId,Incident)="" . . For Set KlachtId=$O(^KlachtI("O",ORDNr,KlachtId)) Quit:KlachtId="" Do Quit:$L(Incident) . . . Quit:^KlachtI("O",ORDNr,KlachtId)'="R" . . . Kill sFL . . . Set sFL(1)=$G(^KlachtD(KlachtId)) . . . Set sFL("O",1)=$G(^KlachtD(KlachtId,"O",1)) . . . Merge sFL("O")=^KlachtD(KlachtId,"O") . . . Merge sFL("B")=^KlachtD(KlachtId,"B") . . . Set Type=$P(sFL(1),D,4),Groep=$P(sFL(1),D,5),ProdGroep=$P(sFL(1),D,6),Verantw=$P(sFL(1),D,7),SubType=$P(sFL(1),D,11) . . . Set R=$$ONOM^KLACHT(KlachtId,,1) Set:$L(R) Incident=$C(13,10)_"Onderwerp : "_R . . . Set Incident=Incident_$C(13,10)_"Type : "_$$FETCHPOP^vhScherm("KLACHT","TYPE",Type,"O") . . . Set Incident=Incident_$C(13,10)_"Groep : "_$$FETCHPOP^vhScherm("KLACHT","GROEP",Groep,"O")_$S(Groep="AND":" "_"("_$P(sFL(1),D,12)_")",1:"") . . . Set Incident=Incident_$C(13,10)_"Verantw : "_$$VERANTW^KLACHT2(.sFL,1) . . . Set Incident=Incident_$C(13,10)_"Subtype : "_$$FETCHPOP^vhScherm("KLACHT","SUBTYPE",SubType,"O") . . . Set Incident=Incident_$C(13,10)_"Productgroep: "_$$FETCHPOP^vhScherm("PRODUKT","PRODUKTGROEP",ProdGroep,"O") . . . If $O(sFL("B","")) Do . . . . Set Elementen=$C(13,10)_"Elementen : " . . . . For I=1:1 Set Element=$G(sFL("B",I)) Quit:Element="" Do . . . . . Set R=$$CONVELEM^KLACHT2(Element) . . . . . Set Incident=Incident_Elementen_R,Elementen=$C(13,10)_$J("",14) . . . Set R=$$ONOM^KLACHT(KlachtId,,2) Set:$L(R) Incident=Incident_$C(13,10)_"Omschrijving: "_R . . Set:$L(Incident) Body=Body_$C(13,10)_"Incident"_Incident . Set Dir=$$DIRUSER^vhDEV(),FilePath="" . Do:$L(Dir) . . Set File="Ord"_ORDNr_".pdf",FilePath=Dir_File . . Set Result=##class(BL.Flow.Order.Doc).RenderAndFileDoc(ORDNr,FilePath) . . Set:'Result FilePath="" . If $L(FilePath) Do . . Set Result=$$SendMiniMail^vhLib(From,To,Subject,Body,,,,,$LB($LB(FilePath,0))) . . Set Result=$$DELFILE^vhDEV(FilePath) . Else Set Result=$$SendMiniMail^vhLib(From,To,Subject,Body) Quit ; ; Verzamel alle leverdagen van een order GetLeverDagen(KLNr,ORDNr,GevraagdOLNr) New R,LeverDag,LeverDagen,OLNr,PRNr 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,D,2) . Quit:'PRNr . Quit:( $Length($G(GevraagdOLNr)) && (OLNr'=GevraagdOLNr) ) . Set LeverDag=$P(R,D,25) Set:LeverDag LeverDagen(LeverDag)="" Set (LeverDagen,LeverDag)="" For Set LeverDag=$O(LeverDagen(LeverDag)) Quit:LeverDag="" Set LeverDagen=LeverDagen_$LB(LeverDag) Quit LeverDagen ; ; Verzamel alle producten van een order GetPRNrs(KLNr,ORDNr) New R,PRNrs,OLNr,PRNr 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,D,2) . Set:PRNr PRNrs(PRNr)="" Set (PRNrs,PRNr)="" For Set PRNr=$O(PRNrs(PRNr)) Quit:PRNr="" Set PRNrs=PRNrs_$LB(PRNr) Quit PRNrs ; ; Transport GLS met kaderdeuren, verlichting of grepen op maat > 1m voorstel ander transport. CheckProduct2VerzendWijze(KLNr,ORDNr) New zb,I,ORDVerzW,U1,U2,U3,K,Bevat,BevatKaderDeur,BevatGreepOpMaat,BevatVerlOpMaat,BevatTBXComPal,MinLengte Set ORDVerzW=$P($$DEFAULT^KLVERZW(,KLNr,ORDNr),";") Do:ORDVerzW="DI1" . Set MinLengte=1000 . Set BevatKaderDeur=$$ISKADERD^FLOWCHK("O",ORDNr) . Set BevatGreepOpMaat=$$BevatGreepOpMaat(ORDNr,MinLengte) . Set BevatVerlOpMaat=$$BevatVerlOpMaat(ORDNr,MinLengte) . Set BevatTBXComPal=$$BevatTBXComPal(ORDNr) . If 'BevatKaderDeur,'BevatGreepOpMaat,'BevatVerlOpMaat,'BevatTBXComPal Quit . Set Bevat=$S(BevatVerlOpMaat:"verlichting"_$S(MinLengte:" > "_MinLengte_"mm",1:""),1:"") . Set:BevatGreepOpMaat Bevat="grepen"_$S(MinLengte:" > "_MinLengte_"mm",1:"")_$S($L(Bevat):D,1:"")_Bevat . Set:BevatTBXComPal Bevat="tandembox"_$S($L(Bevat):D,1:"")_Bevat . Set:BevatKaderDeur Bevat="kaderdeuren"_$S($L(Bevat):D,1:"")_Bevat . For I=1:1 Quit:$L(Bevat,D)<3 Set Bevat=$P(Bevat,D)_", "_$P(Bevat,D,2,9) . If Bevat[D Set Bevat=$P(Bevat,D)_" en "_$P(Bevat,D,2) . Quit:'$$^vhTXTPOP("FLOWORD","CHECKPRODUCT2VERZENDWIJZE","",ORDVerzW,$P(^RES("KLANT","PI","VERZENDWIJZE","D",ORDVerzW),"`",2),Bevat,ORDNr,$P(^KKL(^KK1(KLNr),0),D,2)) . Set NewVerzW=$$SELECT^KFVZW(ORDVerzW,KLNr,"OD",ORDNr) . Quit:NewVerzW=ORDVerzW . Set $P(^KOD(KLNr,"F",ORDNr,1),D,7)=NewVerzW . Set U1=100 . For Set U1=$O(^KOD(0,"F",U1)) Quit:'U1 Set U2=^KOD(0,"F",U1) Quit:$P(U2,";",16)=107 . Do:$L($G(U2)) . . Set (U3,K)=NewVerzW I $L($P(U2,U,8)) S U3="S U3="_$P(U2,U,8) X U3 . . Set FP=$P(U2,U,5)*100+$P(U2,U,6) . . Write @F,$J("",$P(U2,U,9)),$J("",$P(U2,U,13)),@F,U3,@FMTi,@FMTb,@FMTu,@FMTk . Do INITDOMVKP^FLOWORD2(KLNr,ORDNr) . Do AMODIFY^FLOWORD("AL") Quit ; ; Vergelijken van de leverdagen van de lijnen met de normale leverdagen volgens de verzendwijze van het order CheckLeverDagen2VerzendWijze(KLNr,ORDNr) New I,lbLeverDagen,VroegsteLevering,LaatsteLevering,MogelijkeLeverDagen,NietGevondenLeverDagen,ORDVerzW Set lbLeverDagen=$$GetLeverDagen(KLNr,ORDNr) Do:$LL(lbLeverDagen) . Set VroegsteLevering=$LI(lbLeverDagen),LaatsteLevering=$LI(lbLeverDagen,$LL(lbLeverDagen)) . Set Weken=$$CALCDATE^vhLib.DataTypes(LaatsteLevering,"W","LD")-$$CALCDATE^vhLib.DataTypes(VroegsteLevering,"W","LD")\7+1 . Set lbDatums=blLeveringsTermijn.GetLeverDatums(VroegsteLevering,Weken) ; Ophalen van alle mogelijke leverdagen tussen de vroegste- en de laatste leverdag . Set NietGevondenLeverDagen="" . For I=1:1:$LL(lbLeverDagen) Set:'$LF(lbDatums,$LI(lbLeverDagen,I)) NietGevondenLeverDagen=NietGevondenLeverDagen_$LB($LI(lbLeverDagen,I)) . Quit:'$LL(NietGevondenLeverDagen) . Set ORDVerzW=$$DEFAULT^KLVERZW(,KLNr,ORDNr) . For I=1:1:$LL(NietGevondenLeverDagen) Set NietGevondenLeverDagen(I)=$$EXTDATE^vhLib.DataTypes($LI(NietGevondenLeverDagen,I),"DKD") . Set NietGevondenLeverDagen="NietGevondenLeverDagen" . Quit:'$$^vhTXTPOP("FLOWORD","CHECKLEVERDAGEN2VERZENDWIJZE","",$$SHOW^KLVERZW(,,,ORDVerzW),$P($P(ORDVerzW,"`"),";")) . Set $P(^KOD(KLNr,"F",ORDNr,1),D,7)=$P($P(ORDVerzW,"`"),";") Quit ; ; Controle nul-order of VTW wijzigen naar proforma? CheckType2Proforma(ORDNr) New R,KLNr,OLNr,OrdType,OrderTotaal,Proforma,IsVTW Set KLNr=$P($G(^KO1(ORDNr,"F")),D),OrdType="",OrderTotaal=0 If KLNr { Set OrdType=$P(^KOD(KLNr,"F",ORDNr,1),D,25) If OrdType'="M",OrdType'="P" { Set OLNr=100 For { Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Set OrderTotaal=OrderTotaal+$P(^KOD(KLNr,"F",ORDNr,OLNr),D,9) } } } If OrdType'="M",OrdType'="P" { Set IsVTW=$$IsVTW^KLANT(KLNr) If OrderTotaal,'IsVTW Quit Set Buttons="Buttons",Buttons(1)="Behouden",Buttons(2)="Proforma&P",Buttons(3)="+ factuur&F" If 'IsVTW Set Buttons(3)=Buttons(3)_"*" Else Set Buttons(2)=Buttons(2)_"*" Set Proforma=$$^vhTXTPOP("FLOWORD","TYPE2PROFORMA","",$$EXTNUM^vhLib.DataTypes(ORDNr,0,".",0),$P(^KKL(^KK1(KLNr),0),D,2),$$EXTNUM^vhLib.DataTypes(OrderTotaal,0,".T",2)) If $L(Proforma) Set R=^KOD(KLNr,"F",ORDNr,1),$P(R,D,25)="P",$P(R,D,29)=$S(Proforma="F":"P",1:"F"),^KOD(KLNr,"F",ORDNr,1)=R } Quit ; ; Bevat dit maatwerk grepen van minimumlegte? BevatGreepOpMaat(ORDNr,MinLengte) New R,KLNr,BevatGreepOpMaat,OLNr,PRNr,Lengte Set MinLengte=$G(MinLengte),BevatGreepOpMaat=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do Quit:BevatGreepOpMaat . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . Quit:'PRNr . Set GenTyp=$$GENTYP^HAD(PRNr) . If $P(GenTyp,D,2)'="ADDI",$P(GenTyp,D,2)'="GRP" Quit . Set Lengte=$$GetLengte^PRODUKT2(PRNr) . Quit:'Lengte . Set BevatGreepOpMaat=Lengte>MinLengte Quit BevatGreepOpMaat ; ; Bevat dit maatwerk verliching van minimumlegte? BevatVerlOpMaat(ORDNr,MinLengte) New R,KLNr,BevatVerlOpMaat,OLNr,PRNr,Lengte Set MinLengte=$G(MinLengte),BevatVerlOpMaat=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do Quit:BevatVerlOpMaat . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . Quit:'PRNr . Set GenTyp=$$GENTYP^HAD(PRNr) . Quit:$P(GenTyp,D,2)'="TLM" . Set Lengte=$$GetLengte^PRODUKT2(PRNr) . Quit:'Lengte . Set BevatVerlOpMaat=(Lengte>MinLengte) Quit BevatVerlOpMaat ; ; Bevat dit tandembox commissie of pallet? BevatTBXComPal(ORDNr) New R,KLNr,BevatTBXComPal,OLNr,PRNr,KortTekst Set BevatTBXComPal=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do Quit:BevatTBXComPal . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . Quit:'PRNr . Quit:'$$ISTBX^PRODUKT2(PRNr) . Set KortTekst=$P(^KPR(PRNr,0),D) . Set BevatTBXComPal="ABPCO"[$E(KortTekst,20) Quit BevatTBXComPal ; ; Bevat dit order Niet-stock producten? BevatNietStock(ORDNr) New R,KLNr,BevatNietStock,OLNr,PRNr Set BevatNietStock=0,KLNr=$P(^KO1(ORDNr,"F"),D),OLNr=100 For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:'OLNr Do Quit:BevatNietStock . Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) . Quit:'PRNr . Set BevatNietStock='$P(^KPR(PRNr,1),D,20) Quit BevatNietStock ; ; Geef het TextId voor het voorblad CheckTextId(ORDNr) New TextId,KLNr,IsConsument,IsRembours,VooruitBetaling,VerzendWijze Set KLNr=$P(^KO1(ORDNr,"F"),D) Set IsConsument=($P(^KKL(^KK1(KLNr),1),D,11)="Consument") Set IsRembours=$P(^KKL(^KK1(KLNr),3),D) Set VooruitBetaling=$P(^KKL(^KK1(KLNr),3),D,2) If IsConsument Do . Set VerzendWijze=$P($P($$DEFAULT^KLVERZW(,KLNr,ORDNr),"`"),";") . If $E(VerzendWijze,1,2)="AF" Set TextId="COA" . Else Set TextId=$S(VooruitBetaling:"COV",IsRembours:"COR",1:"COR") Else Set TextId="S" Quit TextId ;