FLOWBON4 ;Selecteren van een leveringsbon en het afdrukken van de palletlabels [ 09/05/2003 9:40 AM ] #include vhLib.Macro #define OrgaluxPrinter "\\192.168.1.7\Mag Orgaluxbon" #define TestLabelPrinter "\\192.168.1.7\test3" #define BarTenderPrintersInstalled 1 New Printer , AantalEtiketten Set K="AFDRUKKEN PALLETETIKETTEN "_QN_" ",FP=203+$L(K) Write @F61,@F11,@F1,@F,@F5 Set FP=202 Write @F,@F4,K,@F5 ;selectie printers Set ViaBartender=$S('$$$BarTenderPrintersInstalled&($$$Server'="CACHE02"):0,1:1) Set ViaBertender=1 If 'ViaBartender Do . Do INIT^vhPRINTER("","","UB") . Set Printer=$G(Print("DEV")) . Set Naam=$G(Print("NAAM")) . Set:Naam="" Naam=$G(Print("DEV")) . Set FP=1801 Write:$L(Naam) @F,"Printer keuze : "_Naam Else Do . Set Printer = $$SelectPrinter() . Set FP=1701 Write:$L(Printer) @F,"Printer keuze : "_Printer ;eigenlijke afdruk If $G(Printer)="" Do . Set from=$$$Server . Set to=$lb("ICT") . ;set to=$lb("pve") . ;set subject=$$Format^vhLib("dd/mm hh:nn",$H)_" geen printer geselecteerd=>palletlabels niet afgedrukt" . ;set body="programma ^FLOWBON4"_$C(13)_"Er zijn geen palletlabels afgedrukt want er is geen labelprinter geselecteerd!" . ;set sc=$$SendMiniMail^vhLib(from,to,subject,body) Else Do .New C,R,KLNr,BONNr,FANr .For Set BONNr=$$SELECT^FLOW("KUL","KU1",1,,,,2) Quit:BONNr="-" Do ..Set Aantal=$$ASK^vhINP("Aantal : ",2,1,"","","","",10,"U","X?1.2N","-") ..Quit:Aantal'>0 ..If '$D(^ORDW("D",BONNr)) Do ...Set R=^KU1(BONNr,"F"),KLNr=$P(R,D),FANr=$P(R,D,2) ...If $D(^KUL(KLNr,"F",BONNr)) Do PRINT(BONNr,,Aantal) Quit ...Set R(1)="Bon "_$$EXTNUM^vhLib.DataTypes(BONNr,0,".",0)_"is reeds gefactureerd!" ...Set R="R",R=$$WILD^vhTXTPOP("C;C","",.R) ..Else Do ... Do PRINT(BONNr,,Aantal) Set blKlantLabel="" Quit SelectPrinter() New PrinterLijst,blKlantLabel,Dev Set blKlantLabel=##class(BL.Flow.Levering.Label).Instantiate() Do blKlantLabel.qLabelPrinters(.PrinterLijst,"KLANT_ADRES") If '$D(PrinterLijst) Set Dev="" Else If PrinterLijst=1 Set Dev=$Piece(PrinterLijst(1),"`") ;als er maar één printer is dan wordt deze printer automatisch geselecteerd Else Set Dev=$$WILD^vhPOPUP("C;C","KO1-","Selecteer een printer",.PrinterLijst) Quit Dev SelPrinter(BONNr,Printer,ViaBartender) ;selectie van de labelprinter bij externe oproep ;de printer is Dev Quit // JCL code in commentaar geplaatst niet meer te gebruiken alle afdrukken verlopen momenteel via bartender PrintViaBartender(BONNr,Extern) ;afdrukken via de definitie uit Bartender New C,D Set D="\",Extern=$G(Extern) If 'Extern Do STORE^vhTERMINA() Set FP=2001 Write @F,@F1,!?2,"Printing ..." For Do Quit:BONNr="" . If $P(BONNr,D) Do . . Do blKlantLabel.Init($P(BONNr,D)) . . Do blKlantLabel.PrintLabelKlantAdres(Printer,0) . Set BONNr=$P(BONNr,D,2,99) Do:'Extern REFRESH^vhTERMINA() Quit FETCHBON(BONNr,C) New R,KLNr,Adr Quit:'BONNr If '$D(^KU1(BONNr,"F"))!$P($G(^KU1(BONNr,"F")),D,2) Do FETCHCORDW(BONNr,.C) Quit Set KLNr=$P(^KU1(BONNr,"F"),D) Set R=^KUL(KLNr,"F",BONNr,1) Set C("VERZW")=$P($P($P(R,D,7),"#")," ") If $$ISORGA(BONNr) Set $E(C("VERZW"),3)="+" Set Adr=$G(^KUL(KLNr,"F",BONNr,3)) Set:$L($TR(Adr,"\",""))<5 Adr=^KKL(^KK1(KLNr),0) Set C("BONNR")=BONNr Set C("KLNM")=$P(Adr,D,2) Set C("KLNMBIG")=$$TRIMNAAM^vhRtn1($E(C("KLNM"),1,10),1) Set C("TOENM")=$P(Adr,D,3) Set C("STRAAT")=$P(Adr,D,5) Set C("POSTKODE")=$P(Adr,D,6) Set C("GEMEENTE")=$E($P(Adr,D,7),1,18) Set C("TAAL")=$P(^KKL(^KK1(KLNr),0),D,9) If ";9365;2671;"[(";"_KLNr_";") Do ; klant Haefele en 'New SobelWood' -> 1 order / 1 bon . Set C("COMMREF")=$$CommRef^EWORDSW(KLNr,BONNr) Set C("LBLGROEP")="PRINTER" Set C("LABELTYP")="KLANTPALLET" Set C("KLNR")=KLNr Set C("LABELSIZE")="10x10" Quit FETCHCORDW(CONSNr,C) New R,KLNr,Adr Set R=$G(^ORDW("D",CONSNr)) Quit:R="" Set KLNr=$P(R,D) Set C("VERZW")=$P(R,D,2) If $$ISORGA(CONSNr) Set $E(C("VERZW"),3)="+" Set Adr=$G(^ORDW("D",CONSNr,"A")) Set:$L($TR(Adr,"\",""))<5 Adr=^KKL(^KK1(KLNr),0) Set C("BONNR")=CONSNr Set C("KLNM")=$P(Adr,D,2) Set C("KLNMBIG")=$$TRIMNAAM^vhRtn1($E(C("KLNM"),1,10),1) Set C("TOENM")=$P(Adr,D,3) Set C("STRAAT")=$P(Adr,D,5) Set C("POSTKODE")=$P(Adr,D,6) Set C("GEMEENTE")=$E($P(Adr,D,7),1,18) Set C("TAAL")=$P(^KKL(^KK1(KLNr),0),D,9) If ";9365;2671;"[(";"_KLNr_";") Do ; klant Haefele en 'New SobelWood' -> 1 order / 1 bon . Set C("TOENM")=$$CommRef^EWORDSW(KLNr,CONSNr) Set C("LBLGROEP")="PRINTER" Set C("LABELTYP")="KLANTPALLET" Set C("KLNR")=KLNr Set C("LABELSIZE")="10x10" Quit ISORGA(CONSNr) Quit $D(^ORDW("D",CONSNr,"S","O")) ; Bevat orgalux picking WLABEL(Dev,C) For I=1:1 Set Lijn=$T(@("L"_$G(C("TAAL"),"N")_I)) Quit:Lijn="" Do .Write @$P(Lijn,";",2),! Quit PRINT(BONNr,Extern,Aantal) Set Aantal = $G(Aantal,1) New C,D Set D="\",Extern=$G(Extern) If 'Extern Do STORE^vhTERMINA() Set FP=2001 Write @F,@F1,!?2,"Printing ..." For Do Quit:BONNr="" . If $P(BONNr,D) Do . . Do SelPrinter($Piece(BONNr,D),.Printer,.ViaBartender) . . Do PrintLabel(BONNr,Printer,Aantal) . Set BONNr=$P(BONNr,D,2,99) Do:'Extern REFRESH^vhTERMINA() Quit EXTERN(BONNr,Magazijn,LPN,UserIdPicker,LPNMOP) New Printer Set Printer = "" Set LPN=$Get(LPN) Set UserIdPicker= $Get(UserIdPicker) Set Magazijn = $G(Magazijn) Set LPNMOP = $Get(LPNMOP) If Magazijn = "" { Set Printer = $$SelectPrinter // indien geen magazijn opgegeven vragen naar printer }ElseIf(Printer = "") { Set Printer = ##class(BL.Sys.LabelPrinter).DefaultDevice("KLANT_ADRES",Magazijn) } If (Printer = ""){ #dim Bericht As %String = "Printer is leeg" Set Bericht = Bericht_$C(13,10)_"BONNr : "_$C(9)_"'"_BONNr_"'" Set Bericht = Bericht_$C(13,10)_"Magazijn : "_$C(9)_"'"_Magazijn_"'" Set Bericht = Bericht_$C(13,10)_"Printer : "_$C(9)_"'"_Printer_"'" Set Bericht = Bericht_$C(13,10)_$C(13,10)_$$GetStackToString^vhLib.System() Do ##class(vhLib.Logger).%New().ErrorMail("EXTERN^FLOWBON4",Bericht) } do PrintLabel(BONNr,Printer,1,##class(APPS.MAG.UGLYPicking.enu.Magazijn).DisplayToLogical(Magazijn),LPN,UserIdPicker,LPNMOP) Quit PrintLabel(BONNr,Printer,Aantal,MagazijnID,LPN,UserIdPicker,LPNMOP) Set Aantal = $G(Aantal,1) Set LPN = $Get(LPN) Set UserIdPicker=$Get(UserIdPicker) Set LPNMOP = $Get(LPNMOP) new blLabel Set blLabel=##class(BL.Flow.Levering.Label).Instantiate() Do blLabel.Init(BONNr,,LPN) Do blLabel.PrintLabelKlantAdres(Printer,Aantal,.MagazijnID,UserIdPicker,LPNMOP) Quit GEEFLABELDATA(BONNr,MagazijnID,LPN,UserIdPicker,Positie) Set Aantal = $G(Aantal,1) Set LPN = $Get(LPN) Set Positie = $Get(Positie) Set UserIdPicker=$Get(UserIdPicker) Set Printer = ##class(BL.Sys.LabelPrinter).DefaultDevice("KLANT_ADRES",MagazijnID) new blLabel Set blLabel=##class(BL.Flow.Levering.Label).Instantiate() Do blLabel.Init(BONNr,,LPN) Quit blLabel.GeefKlantLabelBartenderData(Printer,Aantal,.MagazijnID,UserIdPicker,Positie) New C ;Set:'$L($G(Dev)) Dev=$$DEV^vhPRINTER("lbl Uitvoer EWMS") ; Device labelprinter : \\REQ DATKON\Generic / Text Only If '$D(^RES("LABELPRINTER","PI","DEVICE","D",Dev)) Set Dev="" Do PRINT(BONNr,1) Quit