FLOWBON5 ;Bon [ 10/01/2002 10:10 AM ] ; CALCBON(BONNr) #dim Klant As DOM.VKP.Klant New I,R,KLNr,KlantInd,Goederen,Basis,Port,KontKrt,%KontKrt,Btw,BtwTeBet New TeBet,BtwVoet,ULNr,Pariteit,BtwKode,Munt,Node,Extra,Next,Quit New KlantID,Klant,AfrondenNodig For I=0:1:9 I $D(^KBA(18,I)) Set BtwVoet(I)=$P(^KBA(18,I),D) Set KLNr=$P(^KU1(BONNr,"F"),D),KlantInd=^KK1(KLNr) Set R=^KKL(KlantInd,0),BtwTeBet=$P(R,D,15),%KontKrt=$P(R,D,17) Set KlantID=##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) Set Klant=##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(KlantID) Set AfrondenNodig=(Klant.GeefFacturatieWijze()=##class(DOM.VKP.enu.FacturatieWijze).Excl()) For Node="F","G","M" Quit:$D(^KUL(KLNr,Node,BONNr)) Set R=^KUL(KLNr,Node,BONNr,1) If $P(R,D,25)'="P",$P(R,D,25)'="M" Else Quit "" Set KontKrt=0,Extra=$P(R,D,11),Port=$P(R,D,13),Munt=$P(R,D,18) Set Pariteit=$$MUNT^vhRtn1(Munt,,12) Set Munt=$$MUNT^vhRtn1(Munt,1) Set Port=$$RondafIndienNodig($S($P(Port,"#",2):$P(Port,"#"),1:0)/Pariteit) Set ULNr=100 For Set ULNr=$O(^KUL(KLNr,Node,BONNr,ULNr)) Quit:'ULNr Do .Set R=^KUL(KLNr,Node,BONNr,ULNr) Quit:'$P(R,D,9) .Set BtwKode=$P(R,D,8) If 'BtwTeBet Set BtwKode=0 .Do:(""=$Get(BtwKode)) ##class(vhLib.Logger).%New().ErrorMail("CALCBON", "BtwKode leeg. BonNr='"_BONNr_"'; ULNr='" _ ULNr _ "'.") .If '$D(Goederen(BtwKode)) Set Goederen(BtwKode)=0,Basis(BtwKode)=0,Btw(BtwKode)=0 .Set Goederen(BtwKode)=Goederen(BtwKode)+$$RondafIndienNodig($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)) .If Munt="BEF" Do ..Set Goederen(BtwKode)=$J($J(Goederen(BtwKode),0,0),0,2) ..Set Basis(BtwKode)=$J($J(Basis(BtwKode),0,0),0,2) ..Set Btw(BtwKode)=$J($J(Btw(BtwKode),0,0),0,2) .Set Goederen=Goederen+Goederen(BtwKode) .Set Basis=Basis+Basis(BtwKode) .Set Btw=Btw+Btw(BtwKode) Set KontKrt=Goederen-Basis Set Goederen=$J(Goederen,0,2) Set Basis=$J(Basis,0,2) Set Btw=$J(Btw,0,2) Set Port=$J(Port,0,2) Set TeBet=Basis+Btw Do:Extra .Set Next="" .For Set Next=$O(^REMBOURS(KLNr,Next),-1) Quit:Next="" Do Quit:Quit ..Set R=^REMBOURS(KLNr,Next) ..Set Quit=$P(R,D,3)=BONNr ..If Quit,$P($P(R,D,2),";")=$P(Extra,";"),$P($P(R,D,2),";",3)=$P(Extra,";",2) Set Extra=$P(R,D,2) Set TeBet=TeBet+Extra Quit TeBet_D_Goederen_D_KontKrt_D_Btw_D_Port_D_Extra_D_Munt_D_Basis ; RondafIndienNodig(Bedrag) if AfrondenNodig set Bedrag = $justify(Bedrag,0,2) quit Bedrag ; CALCWMS(CONSNr) New I,R,TeBet,Goederen,Basis,Port,KontKrt,Btw,Munt,Extra,Next,Quit,ORDNr Set ORDNr="" Set (TeBet,Goederen,KontKrt,Btw,Port,Extra)=0,Munt="" For Set ORDNr=$O(^ORDW("D",CONSNr,"D",ORDNr)) Quit:ORDNr="" Do .Set R=$$CALCWMS^FLOWORD5(ORDNr,CONSNr) .Set TeBet=TeBet+$P(R,D),Goederen=Goederen+$P(R,D,2),KontKrt=KontKrt+$P(R,D,3) .Set Btw=Btw+$P(R,D,4),Port=Port+$P(R,D,5),Extra=Extra+$P(R,D,6),Munt=$P(R,D,7) Do:Extra .Set Next="" .For Set Next=$O(^REMBOURS(KLNr,Next),-1) Quit:Next="" Do Quit:Quit ..Set R=^REMBOURS(KLNr,Next) ..Set Quit=$P(R,D,3)=BONNr ..If Quit,$P($P(R,D,2),";")=$P(Extra,";"),$P($P(R,D,2),";",3)=$P(Extra,";",2) Set Extra=$P(R,D,2) Set TeBet=TeBet+Extra Quit TeBet_D_Goederen_D_KontKrt_D_Btw_D_Port_D_Extra_D_Munt ; ISTERUGN(BONNr,CheckAll) New R,KLNr,IsTerugn,ULNr,Plus,Min Set (IsTerugn,Plus,Min)=0,CheckAll=$G(CheckAll),KLNr=$P(^KU1(BONNr,"F"),D),ULNr=100 For Set ULNr=$O(^KUL(KLNr,"F",BONNr,ULNr)) Quit:'ULNr Do If 'CheckAll Quit:IsTerugn .Set R=^KUL(KLNr,"F",BONNr,ULNr) .If CheckAll Do ..If $P(R,D,17)="KF6" Set:$P(R,D,3)<0 Min=Min+1 Set:$P(R,D,3)'<0 Plus=Plus+1 ..If $P($P(R,D,17),"#")="KF1925",$P($P(R,D,17),"#",2)'="CK" Do ...If $L($P(R,D,3)) Set:$P(R,D,3)<0 Min=Min+1 Set:$P(R,D,3)'<0 Plus=Plus+1 ...Else Set:$P(R,D,9)<0 Min=Min+1 Set:$P(R,D,9)'<0 Plus=Plus+1 .Else Do ..If $P(R,D,17)="KF6" 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 If CheckAll,Min,'Plus Set IsTerugn=1 Quit IsTerugn ; ISPLMIN(BONNr,FakSoort) New R,KLNr,IsPlMin,ULNr,PRNr,Aantal Set FakSoort=$G(FakSoort) Set KLNr=$P(^KU1(BONNr,"F"),"\"),ULNr=100 If FakSoort="" For FakSoort="F","G","M" Quit:$D(^KUL(KLNr,FakSoort,BONNr)) For Set ULNr=$O(^KUL(KLNr,FakSoort,BONNr,ULNr)) Quit:'ULNr Do .Set R=^KUL(KLNr,FakSoort,BONNr,ULNr),PRNr=$P(R,"\",2),Aantal=$P(R,"\",3) .Set:PRNr PRNr(PRNr)=$G(PRNr(PRNr))+Aantal Set IsPlMin=$O(PRNr("")) Do:IsPlMin .Set PRNr="" .For Set PRNr=$O(PRNr(PRNr)) Quit:PRNr="" Set IsPlMin='PRNr(PRNr) Quit:'IsPlMin Quit IsPlMin ; BevatPrijsNul(BONNr,Warn) New R,BevatPrijsNul,KLNr,BLNr,PRNr,Prijs Set Warn=$G(Warn) Set BevatPrijsNul=0,KLNr=$P(^KU1(BONNr,"F"),D),BLNr=100,Count=0 For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:BevatPrijsNul . Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2),Prijs=$P(R,D,6) . If PRNr,'Prijs Set BevatPrijsNul=1 If BevatPrijsNul,Warn Do . Set Warn(1)="ŞBŞKAandacht !!!ŞbŞk",Warn(2)="Deze bon bevat producten met ŞBverkoopprijs ""NUL""Şb" . Set Warn="Warn" . Set PrijsOk=$$WILD^vhTXTPOP("C;C","",Warn) Quit BevatPrijsNul ; ; Verzamel alle leverdagen van een leverbon GetLeverDagen(KLNr,BONNr) New R,LeverDag,LeverDagen,BLNr,PRNr Set BLNr=100 For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do . Set R=^KUL(KLNr,"F",BONNr,BLNr),PRNr=$P(R,D,2) . Quit:'PRNr . 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 ; ; Geef het TextId voor het voorblad CheckTextId(BONNr) New TextId,KLNr,IsConsument,IsRembours,VooruitBetaling,VerzendWijze,Node Set KLNr=$P(^KU1(BONNr,"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 . For Node="F","G","M" Quit:$D(^KUL(KLNr,Node,BONNr)) . Set VerzendWijze=$P($P($P(^KUL(KLNr,Node,BONNr,1),D,7),"#")," ") . If $E(VerzendWijze,1,2)="AF" Set TextId="CLA" . Else Set TextId=$S(VooruitBetaling:"CLV",IsRembours:"CLR",1:"CLR") Else Set TextId="S" Quit TextId ; ; Tonen van het aantal palletten in eco* retour EcopackRetour(BONNr) New I,rs,lbAantalPalletten,AantalPalletten,ExtraPalletten,lbDetail,Titel,Tekst,PRNr,RestAantal,lbRec,Rec Set rs=##class(APPS.MAG.RetourService).%New() Set lbAantalPalletten=rs.BepaalAantalPalletten(BONNr) Set lbDetail=$LI(lbAantalPalletten,2),AantalPalletten=$LI($LI(lbAantalPalletten)),ExtraPalletten=$LI($LI(lbAantalPalletten),2) Set Titel="LevBonNr "_$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0) Set Tekst="Aantal stapels : Şi"_$J(AantalPalletten,3)_"ŞI" Set:ExtraPalletten Tekst=Tekst_"~Extra palletten: Şi"_$J(ExtraPalletten,3)_"ŞI" For I=1:1:$LL(lbDetail) { Set lbRec=$LI(lbDetail,I) Set PRNr=$LI(lbRec),RestAantal=$LI(lbRec,6) Continue:'RestAantal Set:Tekst'["~&S" Tekst=Tekst_"~&S~Restaantallen:" Set Rec=$P(^KPR(PRNr,0),D),Rec=Rec_$J("",26-$L(Rec))_"| Şi"_$J(RestAantal,3)_"ŞI" Set Tekst=Tekst_"~"_Rec } Do WARN^vhTXTPOP(Tekst,Titel) Quit ;