FLOWBON4 ;Selecteren van een leveringsbon en het afdrukken van de palletlabels [ 09/05/2003 9:40 AM ] #include vhLib.Macro #define OrgaluxPrinter "\\fop\Mag Orgaluxbon" #define TestLabelPrinter "\\fop\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^vhDTyp(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 /* IF $$$Server="CACHE02" Do Quit . Set Printer=$$$TestLabelPrinter . Set ViaBartender=1 If $$ISORGAL^FLOWCHK("L",BONNr) Do . Set Printer=$$$OrgaluxPrinter . Set ViaBartender=1 Else Do . ;Set Printer="\\BARTENDER\LANGGOED" . Set Printer=Dev . Set ViaBartender=$$$BarTenderPrintersInstalled Quit */ 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) ;If Dev["WMSUITV" goto PRINTOLD 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) . . If 1 Do . . . Do PrintLabel(BONNr,Printer,Aantal) // Altijd uitvoeren ; If ViaBartender Do . . . ;Set bl=##class(BL.Flow.Levering.Label).Instantiate() . . . ;Do bl.Init(BONNr) . . . ;Do bl.PrintLabelKlantAdres(Printer,1) . . . ; opgesplitst --> DRY . . Else Do . . . Kill C . . . Do FETCHBON($P(BONNr,D),.C) . . . Quit:'$D(C) . . . Quit:$$$Server="CACHE02" . . . Do WLABEL^vhPRINTER(Printer,.C,0) . Set BONNr=$P(BONNr,D,2,99) Do:'Extern REFRESH^vhTERMINA() Quit PRINTOLD ; wordt niet meer gebruikt New C,D Set D="\",Extern=$G(Extern) If 'Extern Do STORE^vhTERMINA() Set FP=2001 Write @F,@F1,!?2,"Printing ..." Open Dev Use Dev For Do Quit:BONNr="" .If $P(BONNr,D) Do ..Kill C ..Do FETCHBON($P(BONNr,D),.C) ..Quit:'$D(C) ..Do WLABEL(,.C) .Set BONNr=$P(BONNr,D,2,99) Close Dev Do:'Extern REFRESH^vhTERMINA() Quit EXTERN(BONNr,Magazijn) New Printer Set Printer = "" Set Magazijn = $G(Magazijn) If '$L(Magazijn) Set Printer = $$SelectPrinter // indien geen magazijn opgegeven vragen naar printer If ($L(Magazijn))||('$L(Printer)) Set Printer = ##class(BL.Sys.LabelPrinter).DefaultDevice("KLANT_ADRES",Magazijn) // indien magazijn of geen printer gekozen default printer ophalen do PrintLabel(BONNr,Printer,1,##class(APPS.MAG.UGLYPicking.enu.Magazijn).DisplayToLogical(Magazijn)) Quit PrintLabel(BONNR,Printer,Aantal,MagazijnID) Set Aantal = $G(Aantal,1) new blLabel Set blLabel=##class(BL.Flow.Levering.Label).Instantiate() Do blLabel.Init(BONNr) Do blLabel.PrintLabelKlantAdres(Printer,Aantal,.MagazijnID) Quit 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