cwords3 ;E'WMS Markeren voor orderpicking [ 04/16/99 3:32 PM ] ; ; Order mag gegroepeerd worden CUMORD(Ref) New R,CumOrd,EenOPerB,ORDNr,LevAdr,FaktAdr,LevVw,Munt,Export,NetBrut,DeurOrd,Bewaar,OrdTyp,VerwTyp Kill:'$D(^HULP(%J,KLNr,"M","A")) ^HULP(%J,KLNr,"C") Set R=^HULP(%J,KLNr,"O",Ref),ORDNr=$P(R,D) Quit:$D(^HULP(%J,KLNr,"M","A",ORDNr)) 1 Set CumOrd=1,Bewaar="" Do EENOPERB If CumOrd,'$L(Bewaar) Do LEVADR If CumOrd,'$L(Bewaar) Do LEVVW If CumOrd,'$L(Bewaar) Do FAKTADR If CumOrd,'$L(Bewaar) Do MUNT If CumOrd,'$L(Bewaar) Do NETBRUT If CumOrd,'$L(Bewaar) Do EXPORT If CumOrd,'$L(Bewaar) Do DEUR If CumOrd,'$L(Bewaar) Do ORDTYP If CumOrd,'$L(Bewaar) Do VERZW If CumOrd,$L(Bewaar) Do .If Bewaar'=0,Bewaar'=1 Quit .If Bewaar Do ..Do BEWAAR^EWORDS(.Ref) ..Set LevAdr=^KOD(KLNr,"F",ORDNr,3),^HULP(%J,KLNr,"C","LA")=LevAdr .Else Do ..Kill ^HULP(%J,KLNr,"M","A"),^HULP(%J,KLNr,"C") ..Do WRITE^vhLIST(.LD) Quit CumOrd ; ; Een order per bon EENOPERB Set R=^HULP(%J,KLNr,"K",1),EenOPerB=$P(R,D,18) If EenOPerB Do .Quit:'$D(^HULP(%J,KLNr,"M","A")) Quit:$D(^HULP(%J,KLNr,"M","A",ORDNr)) .Set Bewaar=$$^vhTXTPOP("EWORDS","EENOPERB") .Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Leveringsadres LEVADR New Param1,Param2,Param3,Param4,Param5,Param6 Set LevAdr=^KOD(KLNr,"F",ORDNr,3) If '$D(^HULP(%J,KLNr,"C","LA")) Set ^HULP(%J,KLNr,"C","LA")=LevAdr Quit:$P(^HULP(%J,KLNr,"C","LA"),D,2,7)=$P(LevAdr,D,2,7) Set R=^HULP(%J,KLNr,"C","LA") Set:$P(R,D,2)="" R="\Zonder leveringsadres" Set:$P(LevAdr,D,2)="" LevAdr="\Zonder leveringsadres" Set Param1=$P(R,D,2),Param2=$P(R,D,5),Param3=$P(R,D,7) Set Param4=$P(LevAdr,D,2),Param5=$P(LevAdr,D,5),Param6=$P(LevAdr,D,7) Set Bewaar=$$^vhTXTPOP("EWORDS","LEVADR",,Param1,Param2,Param3,Param4,Param5,Param6) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Leveringsvoorwaarde LEVVW New Param1,Param2 Set R=^KOD(KLNr,"F",ORDNr,1),LevVw=$P(R,D,21) If '$D(^HULP(%J,KLNr,"C","LV")) Set ^HULP(%J,KLNr,"C","LV")=LevVw Quit:^HULP(%J,KLNr,"C","LV")=LevVw Set R=^HULP(%J,KLNr,"C","LV") Set Param1=R,Param2=LevVw Set Bewaar=$$^vhTXTPOP("EWORDS","LEVVW",,Param1,Param2) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Fakturatieadres FAKTADR New Param1,Param2 .Set R=^KOD(KLNr,"F",ORDNr,1),FaktAdr=$P(R,D,6) .If '$D(^HULP(%J,KLNr,"C","FA")) Set ^HULP(%J,KLNr,"C","FA")=FaktAdr .Quit:^HULP(%J,KLNr,"C","FA")=FaktAdr .Set R=^HULP(%J,KLNr,"C","FA") .Set Param1=R_" "_$P(^KKL(^KK1(R),0),D,2),Param2=FaktAdr_" "_$P(^KKL(^KK1(FaktAdr),0),D,2) .Set Bewaar=$$^vhTXTPOP("EWORDS","FAKTADR",,Param1,Param2) .Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Munt order MUNT New Param1,Param2 Set R=^KOD(KLNr,"F",ORDNr,1),Munt=$P(R,D,18) If '$D(^HULP(%J,KLNr,"C","MT")) Set ^HULP(%J,KLNr,"C","MT")=Munt Quit:^HULP(%J,KLNr,"C","MT")=Munt Set R=^HULP(%J,KLNr,"C","MT") Set Param1=R,Param2=Munt Set Bewaar=$$^vhTXTPOP("EWORDS","MUNT",,Param1,Param2) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Prijstype NETBRUT New Param1,Param2 Set R=^KOD(KLNr,"F",ORDNr,1),NetBrut=$P(R,D,27) If '$D(^HULP(%J,KLNr,"C","NB")) Set ^HULP(%J,KLNr,"C","NB")=NetBrut Quit:^HULP(%J,KLNr,"C","NB")=NetBrut Set R=^HULP(%J,KLNr,"C","NB") Set Param1=$P("Netto\Bruto",D,R+1)_" prijzen",Param2=$P("Netto\Bruto",D,NetBrut+1)_" prijzen" Set Bewaar=$$^vhTXTPOP("EWORDS","NETBRUT",,Param1,Param2) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Export EXPORT New Param1,Param2 Set R=^KOD(KLNr,"F",ORDNr,1),Export=$P(R,D,14) If '$D(^HULP(%J,KLNr,"C","EX")) Set ^HULP(%J,KLNr,"C","EX")=Export Quit:^HULP(%J,KLNr,"C","EX")=Export Set R=^HULP(%J,KLNr,"C","EX") Set Param1=$P("Niet v\V",D,R+1)_"oor export",Param2=$P("Niet v\V",D,Export+1)_"oor export" Set Bewaar=$$^vhTXTPOP("EWORDS","EXPORT",,Param1,Param2) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Burbidge-Folietec DEUR New Param1,Param2 Set DeurOrd=$$DEURORD(KLNr,ORDNr) If '$D(^HULP(%J,KLNr,"C","DE")) Set ^HULP(%J,KLNr,"C","DE")=DeurOrd Quit:^HULP(%J,KLNr,"C","DE")=DeurOrd Set R=^HULP(%J,KLNr,"C","DE") Set Param1=$S(R["B":$P(^KLE(^KL1(5810),0),D,2),R["F":$P(^KLE(^KL1(6092),0),D,2),1:"Geen deuren") Set Param2=$S(DeurOrd["B":$P(^KLE(^KL1(5810),0),D,2),DeurOrd["F":$P(^KLE(^KL1(6092),0),D,2),1:"Geen deuren") Set Bewaar=$$^vhTXTPOP("EWORDS","DEUR",,Param1,Param2) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Monster en proforma ORDTYP New Param1,Param2 Set R=^KOD(KLNr,"F",ORDNr,1),OrdTyp=$P(R,D,25),VerwTyp=$P(R,D,29) Set:OrdTyp="K" OrdTyp="" If '$D(^HULP(%J,KLNr,"C","TO")) Set ^HULP(%J,KLNr,"C","TO")=OrdTyp If '$D(^HULP(%J,KLNr,"C","TV")) Set ^HULP(%J,KLNr,"C","TV")=VerwTyp If ^HULP(%J,KLNr,"C","TO")=OrdTyp,^HULP(%J,KLNr,"C","TV")=VerwTyp Quit Set R=^HULP(%J,KLNr,"C","TO") If OrdTyp'="M",OrdTyp'="P" Set OrdTyp=R Set R=^HULP(%J,KLNr,"C","TV") If VerwTyp'="F",VerwTyp'="P" Set VerwTyp=R Set Param2=$S(VerwTyp="P":"met",1:"zonder")_" "_$S(OrdTyp="M":"proforma",1:"")_"faktuur" Set Param1=$S(OrdTyp="M":"monster",1:"proforma") Set Bewaar=$$^vhTXTPOP("EWORDS","ORDTYP",,Param1,Param2) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; ; Verzendwijze VERZW New Param1,Param2,Param3 Set R=^KOD(KLNr,"F",ORDNr,1),VerzW=$P(R,D,7) Set:VerzW="" VerzW=$P(^KKL(^KK1(KLNr),2),D,16) Set:VerzW="" VerzW="OD" ;Set VerzW=$E(VerzW,1,2) Quit:'$D(^HULP(%J,KLNr,"V")) Quit:$P(^HULP(%J,KLNr,"V"),D)=VerzW Set R=$P(^HULP(%J,KLNr,"V"),D) Set Param1=R_" "_$P(^RES("KLANT","PI","VERZENDWIJZE","D",R),"`",2) Set Param2=VerzW_" "_$P(^RES("KLANT","PI","VERZENDWIJZE","D",VerzW),"`",2) Set Param3=$S($D(^HULP(%J,KLNr,"M","A")):"Wenst U de gemarkeerde orders te verwerken, of w",1:"W") Set Bewaar=$$^vhTXTPOP("EWORDS","VERZW"_'$D(^HULP(%J,KLNr,"M","A")),,Param1,Param2,Param3) Set CumOrd=$S($L(Bewaar):1,1:"") Quit ; DEURORD(KLNr,ORDNr) New R,DeurOrd,OLNr,PRNr,LEVNr Set DeurOrd="",KLNr=$P($G(^KO1(ORDNr,"F")),D) 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,D,2) ..Quit:'PRNr ..Set R=$O(^KPR(PRNr,"J")) ..Quit:$E(R)'="J" ..Set LEVNr=$P(^KPR(PRNr,R),D) ..If LEVNr=5810 Set:DeurOrd'["B" DeurOrd=DeurOrd_"B" ..Else If LEVNr=6092 Set:DeurOrd'["F" DeurOrd=DeurOrd_"F" ..Else Set:DeurOrd'["?" DeurOrd=DeurOrd_"?" Set:$L(DeurOrd)'=1 DeurOrd="?" Quit DeurOrd ; CHECK(CONSNr,TextPop) New R,KLNr,Check,Krediet,Rembours,VerzW,ORDNr,OrdTyp Set R=^ORDW("D",CONSNr),KLNr=$P(R,D),VerzW=$P(R,D,2) Set ORDNr=$O(^ORDW("D",CONSNr,"D","")),R=^KOD(KLNr,"F",ORDNr,1) Set Check=$P(R,D,25)="P" Set:'Check Check=$P(R,D,25)="M" Set:'Check Check=$$ISTERUGN(CONSNr) If 'Check Do .Set Rembours=$P(^KKL(^KK1(KLNr),3),D),Krediet=$$CHECK^KREDIET(KLNr) .Set:VerzW="AF" Rembours="" .Set Check=$P(Krediet,D) Set:Check Check='Rembours .Set Check=Check_D_Rembours_D_$P(Krediet,D) If 'Check,$G(TextPop) Do .New Tekst,Count .Set Count=1,Tekst(Count)="Deze klant staat op ŞBŞK"_$S(Rembours:$S('Krediet:"KODE",1:"REMBOURS"),1:"KODE")_"ŞbŞk!" .If 'Krediet Do ..New Openst,KredLim,VervSald,FaktDat ..Set Count=Count+1,Tekst(Count)="" ..Set Openst=$P(Krediet,D,2),KredLim=$P(Krediet,D,3),VervSald=$P(Krediet,D,4),FaktDat=$P(Krediet,D,5) ..Set:$L(FaktDat) Count=Count+1,Tekst(Count)="Oudste vervallen faktuur van "_FaktDat ..If KredLim,KredLim$H Do SEND^EWORDSW(CONSNr) ; Doorsturen naar WMS .If Aktie="B" Do UITLEV^EWORDS2(KLNr,CONSNr,1) ; Bon opmaken .Set Count=0,R=^KKL(^KK1(KLNr),0),KLNaam=$P(R,D,2) .Set Count=Count+1,Tekst(Count)="Klant : "_KLNr_" "_KLNaam .Set Count=Count+1,Tekst(Count)="~Lev. bon : "_CONSNr_$J($$EXTDATE^vhDTyp(VerzDat),9) .Set Tekst(Count)=Tekst(Count)_" "_^RES("KLANT","PI","VERZENDWIJZE","D",VerzW,"N") .Set Count=Count+1,Tekst(Count)="~~Deze leveringsbon is vrijgegeven en " .Set Tekst(Count)=Tekst(Count)_$S(Aktie="B":"opgemaakt.",1:"verzonden naar het WMS.") .Set Optie("URG")="U",Optie("EDIT")=-1,Optie("RESP")="G" .Set Ref(1)="KL\"_KLNr_"\R\O" .Set R=^vhMAIL("D",MailId),TUserId=$P(R,D,6) .Set R=$$EXTERN^vhMAIL("KL",KLNr,"Leveringsbon "_CONSNr,TUserId,.Tekst,.Ref,.Optie) .Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"R",3),^vhMAIL("D",MailId,"S") .Do DELUSERS(MailId) Quit ; DELETE(CONSNr,MailId,Type) New R,Tekst,KLNr,KLNaam,VerzW,VerzDat,Optie,DOutDate,WMSStat,TUserId Set R=^ORDW("D",CONSNr),WMSStat=$P(R,D,20),KLNr=$P(R,D) If WMSStat="K" Do .Quit:'$$^vhTXTPOP("EWORDS3","DELETE","",CONSNr,$P(^KKL(^KK1(KLNr),0),D,2)) .Set $P(R,D,20)="",^ORDW("D",CONSNr)=R,DOutDate=$P($P(R,D,3),",") .Set VerzW=$P(R,D,2),VerzDat=$P(R,D,5) .Do REMWMS^EWORDST(CONSNr) ; Verwijderen .Set Count=0,R=^KKL(^KK1(KLNr),0),KLNaam=$P(R,D,2) .Set Count=Count+1,Tekst(Count)="Klant : "_KLNr_" "_KLNaam .Set Count=Count+1,Tekst(Count)="~Lev. bon : "_CONSNr_$J($$EXTDATE^vhDTyp(VerzDat),9) .Set Tekst(Count)=Tekst(Count)_" "_^RES("KLANT","PI","VERZENDWIJZE","D",VerzW,"N") .Set Count=Count+1,Tekst(Count)="~~Deze leveringsbon is verwijderd." .Set Optie("URG")="U",Optie("EDIT")=-1,Optie("RESP")="G" .Set Ref(1)="KL\"_KLNr_"\R\O" .Set R=^vhMAIL("D",MailId),TUserId=$P(R,D,6) .Set R=$$EXTERN^vhMAIL("KL",KLNr,"Leveringsbon "_CONSNr,TUserId,.Tekst,.Ref,.Optie) .Kill Link,^vhMAIL("D",MailId,"R",2),^vhMAIL("D",MailId,"R",3),^vhMAIL("D",MailId,"S") .Do DELUSERS(MailId) Quit ; LATER(MailId) Do DELUSERS(MailId) Kill ^vhMAIL("D",MailId,"S") Quit ; DELUSERS(MailId) New TUserId Set TUserId=";"_$$TUSERID^vhMAIL(MailId)_";" Set TUserId=$P(TUserId,";"_CUserId_";")_";"_$P(TUserId,";"_CUserId_";",2) Set $E(TUserId)="",$E(TUserId,$L(TUserId))="" Do DELUSERS^vhMAIL(MailId,TUserId) Quit ; TEBET(CONSNr) New R,KLNr,ORDNr,OLUNr,OLNr,Aantal,Pariteit,BtwKode,Munt,Netto,Port New TeBet,Goederen,Basis,KontKrt,Btw,BtwVoet,KlantInd,BtwTeBet,%KontKrt If '$D(BtwVoet) For I=0:1:9 I $D(^KBA(18,I)) Set BtwVoet(I)=$P(^KBA(18,I),D) Set R=^ORDW("D",CONSNr),KLNr=$P(R,D) Set KlantInd=^KK1(KLNr),R=^KKL(KlantInd,0),BtwTeBet=$P(R,D,15),%KontKrt=$P(R,D,17) Set ORDNr=$O(^ORDW("D",CONSNr,"D","")),R=^KOD(KLNr,"F",ORDNr,1) Set Munt=$S("BF"[$P(R,D,18):"BEF",1:$P(R,D,18)) Set Pariteit=1 Set:Munt'="BEF" R=$P(^KBA(11,Munt),D,3,5),Pariteit=$P(R,D,3)/$P(R,D) Set ORDNr=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),Aantal=$P(R,D,4) ..Set OLNr=^ORD("IU",ORDNr,OLUNr),R=^KOD(KLNr,"F",ORDNr,OLNr),Netto=$P(R,D,9)/$P(R,D,3)*Aantal ..Quit:'Netto ..Set 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)+Netto Set Port=$$CALCPORT(CONSNr) Set Port=$J($S($P(Port,"#",2):$P(Port,"#"),1:0)/Pariteit,0,2) For BtwKode=0:1:9 If $D(Goederen(BtwKode)) Do .Set Basis(BtwKode)=Basis(BtwKode)+$J(Goederen(BtwKode)-(Goederen(BtwKode)*%KontKrt/100),1,2) 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,2) .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 TeBet=Goederen-KontKrt+Btw Quit TeBet_D_Munt ; CALCPORT(CONSNr) New R,KLNr,ORDNr,OLUNr,OLNr New I,R,PortBedr,Gewicht,VerzW,LevVw,PRNr,Aantal,PortKode,Negatief,KodeLand,PostKode,LijnPort New LvwBedr,LvwLand,LvwMunt,BonBedr,LvwPar,LvwPort,PortZone,Index,Munt,BonBedr,Pariteit,Netto Set R=^ORDW("D",CONSNr),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=^KBA(11,Munt),Pariteit=$P(R,D,5)/$P(R,D,3) Set R=^KKL(^KK1(KLNr),0),PostKode=$P(R,D,6),KodeLand=$P(R,D,8) Set:KodeLand="" KodeLand="B" 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:PostKode="" PostKode="GEEN" Set PortKode=$P(^RES("KLANT","PI","VERZENDWIJZE","D",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^EWBON(PRNr)*Aantal) ..Set Netto=$P(R,D,9),BonBedr=BonBedr+(Netto*Pariteit) 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) .Quit:1[PortKode .Set R=^KBA(11,LvwMunt),LvwPar=$P(R,D,5)/$P(R,D,3),BonBedr=BonBedr/LvwPar .If PortKode=2 Set PortKode=BonBedr