PORT ;VERWERKING PORT [ 09/29/2003 4:17 PM ] ; ORD(ORDNr) New R,KLNr Set R="" If ORDNr Do .Set KLNr=$P($G(^KO1(ORDNr,"F")),D) .If KLNr,$D(^KOD(KLNr,"F",ORDNr)) Set R=$$CALC(ORDNr) Quit R ; BON(BONNr) New R,KLNr Set R="" If BONNr Do .Set KLNr=$P($G(^KU1(BONNr,"F")),D) .If KLNr,$D(^KUL(KLNr,"F",BONNr)) Set R=$$CALC(BONNr) Quit R ; WMS(CONSNr) New R Set R="" If CONSNr Do .Set R=$G(^ORDW("D",CONSNr)) .Set:$L(R) R=$S($P(R,D,20)="B":$$BON(CONSNr),1:$$CALC(CONSNr)) Quit R ; CALC(DocNr) New I,R,PortBedr,LvwBedr,LvwLand,LvwMunt,PortZone,Index,Negatief New BedrBEF,Gewicht,LevVw,PortKode,KodeLand,PostKode,Bedrag Set R=$S($D(^KO1(DocNr,"F")):$$CALCO(DocNr),$D(^KU1(DocNr,"F")):$$CALCB(DocNr),$D(^ORDW("D",DocNr)):$$CALCW(DocNr),1:"") Set BedrBEF=$P(R,D),Gewicht=$P(R,D,2),LevVw=$P(R,D,3),PortKode=$P(R,D,4),KodeLand=$P(R,D,5),PostKode=$P(R,D,6) If $D(^KBA(153,LevVw_" ")) Do .Set LvwBedr=^KBA(153,LevVw_" ","B",0),LvwLand=^KBA(153,LevVw_" ","L",0),LvwMunt=^KBA(153,LevVw_" ","M",0) .Set:$L(LvwLand) LvwLand=$$LAND^vhRtn1(LvwLand) .Set Bedrag=$$MUNT^vhRtn1(,5,BedrBEF,,LvwMunt) .Quit:1[PortKode .If PortKode=2 Set PortKode=Bedrag<$P(LvwBedr,";",$L(LvwBedr,";")) .Else If PortKode=3 Set PortKode=KodeLand=LvwLand .Else If KodeLand=LvwLand Set PortKode=Bedrag<$P(LvwBedr,";",$L(LvwBedr,";")) .Else Set PortKode="" Set:'PortKode PortKode="" Set PortBedr=0,Negatief=Gewicht<0 Set:Gewicht<0 Gewicht=-Gewicht Set:Gewicht=0 Gewicht=.00001 ;Set:Gewicht>10000 Gewicht=99999 Afgesloten 16/06/2006 CW If $L(LvwBedr,";")>1 Do .For I=1:1 Quit:$P(LvwBedr,";",I)="" Quit:$P($P(LvwBedr,";",I),"#")>Bedrag .Set PortBedr=$$MUNT^vhRtn1(LvwMunt,5,$P($P(LvwBedr,";",I),"#",2)) Else Do .If KodeLand'="BE",21'[PortKode Do ..Set R=^KPORT(0,"GRENS",0) ..For I=1:1:9 Quit:$P(R,D,I)=LvwMunt ..Set Index=$O(^KPORT(0,"GRENS",Gewicht-.00001)),R=^KPORT(0,"GRENS",Index),PortBedr=-$P(R,D,I) .Set PortZone=$P($G(^KPORT($P(PostKode,"-",1,2)),1),D),KodeLand=$$LANDKODE(KodeLand) .Set:'$D(^KPORT(0,KodeLand)) KodeLand=1052 ; Duitsland als vangnet .Set Index=$O(^KPORT(0,KodeLand,Gewicht-.00001)) .Set:Index="" Index=$O(^KPORT(0,KodeLand,""),-1) .Set R=^KPORT(0,KodeLand,Index) .Set PortBedr=PortBedr+$P(R,D,PortZone) Set:Negatief PortBedr=-PortBedr Quit PortBedr_"#"_PortKode_"#"_Gewicht_D_LevVw ; CALCO(ORDNr) New I,R,KLNr,ULNr,Gewicht,VerzW,LevVw,PRNr,Aantal,PortKode,KodeLand,PostKode,LijnPort New LvwPort,Munt,OrdBedr,BedrBEF,Netto Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) Set R=^KOD(KLNr,"F",ORDNr,1),VerzW=$P($P($P(R,D,7),"#")," "),Munt=$P(R,D,18),LevVw=$P(R,D,21) Set R=^KKL(^KK1(KLNr),0),PostKode=$P(R,D,6),KodeLand=$P(R,D,8) Set R=^KOD(KLNr,"F",ORDNr,3) Set:$L($P(R,D,6)) PostKode=$P(R,D,6) Set:$L($P(R,D,8)) KodeLand=$P(R,D,8) Set KodeLand=$$LAND^vhRtn1(KodeLand) Set:PostKode="" PostKode="GEEN" If $P(VerzW,";")="" Set PortKode=1 Else If '$D(^RES("KLANT","PI","VERZENDWIJZE","D",$P(VerzW,";"))) Set PortKode=1 Else Set PortKode=$P(^RES("KLANT","PI","VERZENDWIJZE","D",$P(VerzW,";")),"`",3) If '$D(^KBA(153,LevVw_" ","P",0)) Set LevVw="01" Else Do .Set LvwPort=^KBA(153,LevVw_" ","P",0) .If LvwPort>PortKode&(PortKode'="")!(LvwPort="") Set PortKode=LvwPort Set (Gewicht,OrdBedr)=0,ULNr=100 For Set ULNr=$O(^KOD(KLNr,"F",ORDNr,ULNr)) Quit:ULNr="" Do .Set R=^KOD(KLNr,"F",ORDNr,ULNr),PRNr=$P(R,D,2) .Quit:'PRNr .Set Aantal=$P(R,D,3),LijnPort=$P(R,D,24) Set:'LijnPort PortKode="" .Set Gewicht=Gewicht+($$CALCGEW^EWBON4(PRNr)*Aantal) .Set Netto=$P(R,D,9),OrdBedr=OrdBedr+Netto Set BedrBEF=$$MUNT^vhRtn1(Munt,5,OrdBedr) Quit BedrBEF_D_Gewicht_D_LevVw_D_PortKode_D_KodeLand_D_PostKode ; CALCB(BONNr) New I,R,KLNr,ULNr,Gewicht,VerzW,LevVw,PRNr,Aantal,PortKode,KodeLand,PostKode,LijnPort New LvwPort,Munt,BonBedr,BedrBEF,Netto Set R=^KU1(BONNr,"F"),KLNr=$P(R,D) If '$D(^KUL(KLNr,"F",BONNr)) Quit "" Set R=^KUL(KLNr,"F",BONNr,1),VerzW=$P($P($P(R,D,7),"#")," "),Munt=$P(R,D,18),LevVw=$P(R,D,21) Set R=^KKL(^KK1(KLNr),0),PostKode=$P(R,D,6),KodeLand=$P(R,D,8) Set R=^KUL(KLNr,"F",BONNr,3) Set:$L($P(R,D,6)) PostKode=$P(R,D,6) Set:$L($P(R,D,8)) KodeLand=$P(R,D,8) Set KodeLand=$$LAND^vhRtn1(KodeLand) Set:PostKode="" PostKode="GEEN" Set PortKode=$P($G(^RES("KLANT","PI","VERZENDWIJZE","D",$S($P(VerzW,";")="":"*",1:$P(VerzW,";")))),"`",3) If '$D(^KBA(153,LevVw_" ","P",0)) Set LevVw="01" Else Do .Set LvwPort=^KBA(153,LevVw_" ","P",0) .If LvwPort>PortKode&(PortKode'="")!(LvwPort="") Set PortKode=LvwPort Set (Gewicht,BonBedr)=0,ULNr=100 For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Do .Set R=^KUL(KLNr,"F",BONNr,ULNr),PRNr=$P(R,D,2) .Quit:'PRNr .Set Aantal=$P(R,D,3),LijnPort=$P(R,D,24) Set:'LijnPort PortKode="" .Set Gewicht=Gewicht+($$CALCGEW^EWBON4(PRNr)*Aantal) .Set Netto=$P(R,D,9),BonBedr=BonBedr+Netto Set BedrBEF=$$MUNT^vhRtn1(Munt,5,BonBedr) Quit BedrBEF_D_Gewicht_D_LevVw_D_PortKode_D_KodeLand_D_PostKode ; CALCW(CONSNr) New R,KLNr,ORDNr,OLUNr,OLNr New I,R,Gewicht,VerzW,LevVw,PRNr,Aantal,PortKode,KodeLand,PostKode,LijnPort New LvwPort,Munt,BonBedr,BedrBEF,Netto Set R=^ORDW("D",CONSNr) If $P(R,D,20)="B" Quit $$BON(CONSNr) Set KLNr=$P(R,D),VerzW=$P(R,D,2) Set ORDNr=$O(^ORDW("D",CONSNr,"D","")),R=^KOD(KLNr,"F",ORDNr,1),Munt=$P(R,D,18),LevVw=$P(R,D,21) Set R=^KKL(^KK1(KLNr),0),PostKode=$P(R,D,6),KodeLand=$P(R,D,8) Set R=^KOD(KLNr,"F",ORDNr,3) Set:$L($P(R,D,6)) PostKode=$P(R,D,6) Set:$L($P(R,D,8)) KodeLand=$P(R,D,8) Set KodeLand=$$LAND^vhRtn1(KodeLand) Set:PostKode="" PostKode="GEEN" Set PortKode=$P($G(^RES("KLANT","PI","VERZENDWIJZE","D",$S($P(VerzW,";")="":"*",1:$P(VerzW,";")))),"`",3) If '$D(^KBA(153,LevVw_" ","P",0)) Set LevVw="01" Else Do .Set LvwPort=^KBA(153,LevVw_" ","P",0) .If LvwPort>PortKode&(PortKode'="")!(LvwPort="") Set PortKode=LvwPort Set (ORDNr,Gewicht,BonBedr)=0 For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .Set OLUNr=0 .For Set OLUNr=$O(^ORDW("D",CONSNr,"D",ORDNr,OLUNr)) Quit:OLUNr="" Do ..Set R=^ORDW("D",CONSNr,"D",ORDNr,OLUNr),PRNr=$P(R,D),Aantal=$P(R,D,4) ..Set OLNr=^ORD("IU",ORDNr,OLUNr),R=^KOD(KLNr,"F",ORDNr,OLNr) ..Set LijnPort=$P(R,D,24) Set:'LijnPort PortKode="" ..Set Gewicht=Gewicht+($$CALCGEW^EWBON4(PRNr)*Aantal) ..Set Netto=$P(R,D,9),BonBedr=BonBedr+Netto Set BedrBEF=$$MUNT^vhRtn1(Munt,5,BonBedr) Quit BedrBEF_D_Gewicht_D_LevVw_D_PortKode_D_KodeLand_D_PostKode ; LANDKODE(LandKode) New K Set LandKode=$$LAND^vhRtn1(LandKode) Set LandKode=$$LAND^vhRtn1(LandKode,"I") Quit LandKode ;