HADETIK ;Afdrukken Halux deuretiketten [ 11/13/2003 2:38 PM ] #include BL.Derde.KlantSpecifiek #include BL.Derde.LevSpecifiek #include Prod.Product #include vhLib.Macro Do ORDER(168916,"") ;Do PRINT(103,"P","","",181039,1) Q ; PrintNaarDropfolder(Dev,VoorkeurPrinter="") If $D(%Print2File)>1 { Do Print2File("HAD",$G(Dev),VoorkeurPrinter) } If PrintEtiketten.Count() > 0 { Do PrintEtiketten(PrintEtiketten) } Quit ORDER(ORDNr,OLNr,Print,Order) New C,R,%SC,KLNr,PRNr,Dev,Aantal,DefAant,SortKey,PrintEtiketten Kill %Print2File Set PrintEtiketten = ##class(%ListOfObjects).%New() Set %Print2File=1 Set ORDNr=$G(ORDNr),OLNr=$G(OLNr) If 'ORDNr Do ;Order opvragen en via recursie verwerken .Do DISPLAY^vhScherm("HADETIKBO") .For Do FIELD^vhScherm("HADETIKO","ORDNR") Quit:ORDNr="-" Do ..Quit:'$$ISHALUX^FLOW("O",ORDNr) ..Do ORDER(ORDNr,,.Print) Else If 'OLNr Do ; Elke lijn van het order via recursie verwerken .Do INIT .Quit:'$D(Print) .Set Dev=$G(Print("DEV")) .Quit:0[Dev .Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) .Set Order=1,OLNr=100 .For Set OLNr=$O(^KOD(KLNr,"F",ORDNr,OLNr)) Quit:OLNr="" Do ..Quit:'$$ISHALUX^FLOW("O",ORDNr,OLNr) ..Do ORDER(ORDNr,OLNr,.Print,.Order) .Set SortKey="" .For Set SortKey=$O(Order(SortKey)) Quit:SortKey="" Do ..Set R=Order(SortKey),PRNr=$P(R,D),Aantal=$P(R,D,2),OLNr=$P(R,D,3) ..Do PRINT(Dev,"O",ORDNr,OLNr,PRNr,Aantal) Else Do ; per lijn .Set Dev=$G(Print("DEV")) .Do:0[Dev INIT .Set Dev=$G(Print("DEV")) .Quit:0[Dev .Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D) .Set R=^KOD(KLNr,"F",ORDNr,OLNr),PRNr=$P(R,D,2) .Quit:'PRNr Quit:'$D(^KPR(PRNr,"J"_$$$LevHalux)) .Quit:($$ISTBX^PRODUKT2(PRNr))&&($LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK"))?1(1"A",1"B")) ; Geen etiket vragen voor VHOSS .Set Aantal=$P(R,D,3) .Quit:Aantal'>0 .Set DefAant=$$DEFAANT(PRNr) .If DefAant,DefAant0 ..New ORDNr ..Set DefAant=$$DEFAANT(PRNr) ..If DefAant,DefAant0 Do ..If $G(Order) Do ...Set SortKey=$$SortKey(PRNr) Set:$L(SortKey) SortKey=SortKey_"-" Set SortKey=SortKey_TLNr ...Set Order(SortKey)=PRNr_D_Aantal_D_TLNr ..Else Do ...If ##class(DOM.common.impl.ProjectSettingsAPI).%New().IsActiefDnaCodeOpEtiket() Do ....For EtiketTeller=1:1:Aantal Do .....Set DnaCode = ##class(APPS.Halux.AAP.DnaCodeService).%New().GeefVolgendeAfTeDrukkenDnaCode(TOENr,PRNr,"") .....Do PRINT(Dev,"T",TOENr,TLNr,PRNr,1,,DnaCode) ...Else Do ....Do PRINT(Dev,"T",TOENr,TLNr,PRNr,Aantal,,"") Do PrintNaarDropfolder($G(Dev)) Quit FETCHO(ORDNr,OLNr,PRNr,Aantal,C) ; ophalen order en klant gegevens New R,KLNr,Adres,Taal,GNode,GenPRNr,KlRef,PAKNr,GenTyp,DosNr,ToeNr,TLNr,BONNr,ProjectRef,RitRef, ProductOrderLijn Set C("ORDNR")=ORDNr Set R=^KO1(ORDNr,"F"),KLNr=$P(R,D),BONNr=$P(R,D,2) Quit:KLNr="" Do ORDREF(ORDNr,1,.C) If KLNr=1239 Do . Set RitRef=$S('OLNr:"",PRNr'?4.7N:"",1:$P($S(BONNr:^KUL(KLNr,"F",BONNr,OLNr),1:^KOD(KLNr,"F",ORDNr,OLNr)),D,45)) ; ritnr . Set:$L(RitRef) C("ORDREF")=C("ORDREF")_" - "_RitRef Else Do . Set ProjectRef=$S('OLNr:"",PRNr'?4.7N:"",1:$P($S(BONNr:^KUL(KLNr,"F",BONNr,OLNr),1:^KOD(KLNr,"F",ORDNr,OLNr)),D,5)) . Set:$L(ProjectRef) C("ORDREF")=ProjectRef ; Projectreferentie is belangrijker dan de orderreferentie Do ADRES(ORDNr,KLNr,.C) Do VerzendWijze(KLNr,ORDNr,.C) If (KLNr=$$$KlantHein)||(KLNr=$$$KlantOptimaPack) Set C("KLNMBIG")=$$UPTRIMAN^vhRtn1(C("ORDREF")) ; Voor Hein en Optima Set C("TOENR")=$S(BONNr:"",1:$S('OLNr:"",1:$P(^KOD(KLNr,"F",ORDNr,OLNr),D,27))) Set C("PRODWK")=$TR($S('OLNr:"",1:$P($S(BONNr:^KUL(KLNr,"F",BONNr,OLNr),1:^KOD(KLNr,"F",ORDNr,OLNr)),D,25)),"/","") ; Indien contract dan leverweek van toelevering Set ToeNr=$S(BONNr:"",1:$P(^KOD(KLNr,"F",ORDNr,OLNr),D,27)) Set TLNr=$S(BONNr:"",1:$P(^KOD(KLNr,"F",ORDNr,OLNr),D,28)) If ToeNr,TLNr,$D(^KTO($$$LevHalux,ToeNr,TLNr)) Do .Set C("PRODWK")=$TR($P(^KTO($$$LevHalux,ToeNr,TLNr),D,25),"/","") Set Taal=$P(^KKL(^KK1(KLNr),0),D,9) If Taal'="F",Taal'="D",Taal'="E" Set Taal="N" Set C("TAAL")=Taal #dim Order As DOM.VKP.Order = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefOrder(ORDNr) If KLNr=$$$KlantNeves,C("ORDREF")?1N1E1.N Set C("REFBARCODE")=C("ORDREF") ; Neves If KLNr=$$$KlantSFS { Set C("KLNMBIG") = C("ORDREF") Set C("KLNM") = C("ORDREF") Set C("ORDREF") = Order.GeefDocumentReferenties().KlantOrderNummer Set:$L($G(C("COMMREF"))) C("KLREF") = $G(C("COMMREF")) } If KLNr=$$$KlantFranssen Do . Set:$ZCVT($TR(C("KLNM"),"- "),"U")["DMLINE" C("KLNR")=$$$KlantDMLine . Set:$ZCVT($TR(C("KLNM"),"- "),"U")["KASTID" C("KLNR")=$$$KlantKastID . Set:$P($$GENTYP^HAD(PRNr),"\")="TBX" C("KLNMBIG")=$G(C("COMMREF")) #dim KlantID As DOM.VKP.VanHoeckeKlantID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) If (KlantID = ##class(DOM.VKP.enu.Klant).OptimaPack()){ Set GetoondeOrderRef = C("ORDREF") Set C("KLNM") = C("ORDREF") #dim OptimaPackKlantNr As %String = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantNummerVoorPartijID(##class(DOM.VKP.enu.Klant).OptimaPack()) Set C("ORDREF") = $Piece(^KOD(OptimaPackKlantNr,"F",ORDNr,1),"\",19) Set C("POSTKODE") = "" Set C("GEMEENTE") = "" } #dim ProductOrderLijn As DOM.VKP.ProductOrderlijn = ##class(DOM.DomeinContext).Instance().GeefOrderAPI().GeefOrder(ORDNr).GeefOrderLijnViaVolgnummer(OLNr) Set C("KLANTBARCODE") = ProductOrderLijn.GeefKlantBarcode() Set C("PAKKETREFERENTIE") = ProductOrderLijn.GeefPakketReferentie() Quit PrintEtiketten(Etiketten) Set blLabelPrinter = ##class(BL.Sys.LabelPrinter).%New() Do blLabelPrinter.PrintEtiketten(Etiketten) Quit VerzendWijze(KLNr,ORDNr,C) Set VerzendW=$P($P($P($G(^KOD(KLNr,"F",ORDNr,1)),"\",7),"`"),";") Set C("VERZENDW")=VerzendW Quit FETCHT(TOENr,TLNr,PRNr,Aantal,C) ; Ophalen toeleveringsgegevens New R,KLNr,Adres,Taal,GNode,GenPRNr,KlRef,PAKNr,GenTyp,DosNr,ORDNr,OLNr,LEVNr Set LEVNr=$P(^KTO1(TOENr),D) Set LijnR=^KTO(LEVNr,TOENr,TLNr) Set ORDNr=$P(LijnR,D,27) Set OLNr=$P(LijnR,D,28) ; Indien KOM-link ingevuld dan via Order If ORDNr,OLNr Do FETCHO(ORDNr,OLNr,PRNr,Aantal,.C) Quit ; Set R=^KTO(LEVNr,TOENr,1),KLNr=$P(R,D,8) Set:ORDNr="" ORDNr=$P(R,D,7) Set C("ORDNR")=ORDNr Do ORDREF(ORDNr,1,.C) Do ADRES(ORDNr,KLNr,.C) If (KLNr=$$$KlantHein)||(KLNr=$$$KlantOptimaPack) Set C("KLNMBIG")=$$UPTRIMAN^vhRtn1(C("ORDREF")) ; Voor Hein en Optima If (KLNr=$$$KlantHein) Set C("ORDREF")=$G(C("COMMREF")) ; Voor Hein en Optima Set C("TOENR")=TOENr Set C("PRODWK")=$TR($P(LijnR,D,25),"/","") Set Taal="N" Set:KLNr Taal=$P(^KKL(^KK1(KLNr),0),D,9) If Taal'="F",Taal'="D" Set Taal="N" Set C("TAAL")=Taal Quit FETCHP(PRNr,Aantal,C) New R,KLNr,Adres,Taal,GNode,GenPRNr,KlRef,PAKNr,GenTyp,DosNr,HoutCertificaatImage,HoutCertificaatCode, HoutCertificaatService Set C("LABELSIZE")="10x10" Set Taal=$G(C("TAAL")) Set C("AANTAL")=Aantal Set C("PRNR")=PRNr Set C("TAAL")=$G(C("TAAL"),"N") Set GNode=$G(^KPR(PRNr,"G")) Set DosNr=$P(GNode,D,1) Set C("DOSSIER")=$S($L($G(C("TOENR"))):C("TOENR")_".",1:"")_DosNr Set C("FABR")=$S($L($G(C("TOENR"))):C("TOENR")_".",1:"")_$G(C("PRODWK")) Set C("DOSNR")=$$BARCODE^HAD(PRNr,"F") Set C("BARCODE")=$TR(C("DOSNR"),".","") Set R=^KPR(PRNr,0),C("KORTT")=$P(R,D) Set R=$$GETOMSCH^PRODUKT2(PRNr,C("TAAL")),C("LT1")=$P(R,D),C("LT2")=$P(R,D,2),C("LT3")=$P(R,D,3) Set C("KLEURCODE")=$E(C("KORTT"),22,25) Set C("KLEUR")=$G(^KCOL(C("KLEURCODE")_" ",Taal)) Set R=^KPR(PRNr,0),GenPRNr=$P(R,D,3) Set C("LABELTYP")=$S($L($G(C("DOSNR"))):"ALGBARC",1:"ALG") ; Default voor niet kaderdeur en tandembox Set GenTyp=$$GENTYP^HAD(PRNr) Set C("GENTYP")=GenTyp If ($P(GenTyp,D,1)="KAD"||($P(GenTyp,D,1)="PRF"))&&($P(GenTyp,D,2)'="MDS") Do . Set C("PROFIEL")=$P(GNode,D,2) . Set:$L(C("PROFIEL")) C("PROFOMS")=$G(^RES("HAD","PI","PROFIEL","D",C("PROFIEL"),Taal)) . Set C("HOOGTE")=$P(GNode,D,8) . Set C("BREEDTE")=$P(GNode,D,9) . Set C("TOEP")=$P(GNode,D,5) . Set:$L(C("TOEP")) C("TOEPOMS")=$G(^RES("HAD","PI","TOEPAS","D",C("TOEP"),Taal)) . If $P(GNode,D,5)="KD" Do . . Set C("DRAAI")=$P(GNode,D,4) . . Set:$L(C("DRAAI")) C("DRAAIOMS")=$G(^RES("HAD","PI","DRAAI","D",C("DRAAI"),Taal)) . Set C("VULLING")=$P(GNode,D,10) . Set:$L(C("VULLING")) C("VULOMS")=$$GeefVullingVertaling^HADVUL(C("VULLING"),Taal) . Set C("MONTAGE")=$S($P(GNode,D,11):$S(C("TAAL")="F":"Monté",1:"Gemonteerd"),1:"") . If $P(GenTyp,D,1)="KAD",$P(GenTyp,D,2)'="MDS" Set C("LABELTYP")="KAD" . If $P(GenTyp,D,1)="PRF" Set C("LABELTYP")="KAD",C("TOEPOMS")=$S(Taal="N":"Los profiel",1:"Profil") Else If $P(GenTyp,D,1,2)="DIV\GRP",##class(Prod.Kenmerk.DataDefinitie).Exists(PRNr,"GRP") Do ; Greep . Set C("LABELTYP")="ALGBARC" Else If $P(GenTyp,D,1,2)="DIV\TLM",##class(Prod.Kenmerk.DataDefinitie).Exists(PRNr,"TLM") Do ; Verlichting . Set C("TITEL")="TL-LAMP" Else If $P(GenTyp,D,1,1)="BAN" Do ; Banco . Set C("TITEL")="BANCO" Else If C("KORTT")?1"TB8SI".E Do ; Assenti Sifonlade . Set C("LABELTYP")="ALG5x10" . Set C("LABELSIZE")="5x10" Else If $P(GenTyp,D)="TBX" Do ; Tandembox . Quit:'##class(Prod.Kenmerk.DataDefinitie).Exists(PRNr,"TBX") . Set C("LABELTYP")=$S($L($G(C("REFBARCODE"))):"TBXBAR",1:"TBX") . Set C("KLEUR")=$E(C("KORTT"),22,23)_"/"_$E(C("KORTT"),24,25) . For Key="IB","LD","KB","KL","LC","BS","NMBS","CB","WD","VERPAK","DC" Set C(Key)=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,Key)) . Set:C("VERPAK")?1(1"C",1"O",1"A",1"I",1"B") C("LABELTYP")="TBXCOM",C("LABELSIZE")="5x10" ; Commissie etiket 5x10 . Set:C("VERPAK")?1(1"X",1"Y") C("LABELTYP")="TBXCOM",C("LABELSIZE")="5x10" ; Probox Etiket -> zelfde layout als commissie etiket . Set:((C("VERPAK")?1(1"P")) && ($G(C("KLNR"))=$$$KlantDedecker)) C("LABELTYP")="TBXCOM",C("LABELSIZE")="5x10" ;Pallet verpakking voor DeDeckerJB . Set C("ORDNR")=$G(C("ORDNR"))_$S($L($G(C("ORDNR"))):":"_C("VERPAK"),1:"") . Set:C("BS")="BD"&C("NMBS") C("BS")="ER" . Set C("PICT")=##class(BL.Prod.ImageLink).%New().GetProductImageURL(PRNr,##class(APPS.common.enu.Toepassing).Label()) . Set HoutCertificaatService = ##class(DOM.PM.HoutCertificaatService).%New() . Set HoutCertificaatCode = HoutCertificaatService.BepaalCertificaatCode(PRNr) . Set HoutCertificaatImage = "" . If HoutCertificaatCode '= "" Do . . Set HoutCertificaatImage = HoutCertificaatService.GetImageLink(HoutCertificaatCode) . Set C("FSC")= HoutCertificaatImage Else If $P(GenTyp,D,1,2)="DIV\ASM" Do ; Antislipmat . Quit:'##class(Prod.Kenmerk.DataDefinitie).Exists(PRNr,"ASM") . Set C("LABELTYP")="ASM" . Set C("LABELSIZE")="5x10" . For Key="ASM","LD","WD","CB","NB","ND" Set C(Key)=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("ASM",PRNr,Key)) . Set C("MULTIPLICANT")=C("AANTAL") . Set C("AANTAL")=1 Else If $P(GenTyp,D,1,2)="DIV\SDM" Do ; ServoDrive . Quit:'##class(BL.ProdHist.ChargeTrace).HasChargeHalfFabr(PRNr) . Set C("HASCHARGE")=1 . Set C("LABELTYP")="CHARGE" . Set C("LABELSIZE")="10x10" // Zoek pakketreferentie. Zelfs al is de orderlijn niet via een pakket ingegeven, dan nog tonen we de pakketreferentie(s) van die klant voor dat product. Set KLNr=$G(C("KLNR")) Set (KlRef,PAKNr,KlRefOms)="" Set PakketReferentieVanopOrderlijn = $Get( C("PAKKETREFERENTIE") ) Set KlRef = PakketReferentieVanopOrderlijn // Op orderlijn krijgen we vanuit AX de pakketref door, indien ingegeven via pakket. Die niet kwijtspelen, want pakketten worden niet meer gesynct. If (KLNr'="") For Set PAKNr=$O(^PAKKET("IP",PRNr,KLNr,PAKNr)) Quit:PAKNr="" Do . Set PakketNode = $G(^PAKKET("D",PAKNr),D_D_"D"), TypePakket=$P(PakketNode,D,3), PakketNaam=$P(PakketNode,D,2), PakketOmschrijving=$P(PakketNode,D,4) . Quit:TypePakket="D" // "D" = "Divergend" . Set:(PakketReferentieVanopOrderlijn '= PakketNaam) KlRef = $$$IfLength(KlRef,""," & ") _ PakketNaam // Nog een overeenkomstig pakket gevonden, maar indien zelfde als op orderlijn, dan niet dubbel zetten. . Set:$L(PakketOmschrijving) KlRefOms = $$$IfLength(KlRefOms,""," & ") _ PakketOmschrijving // Sommige pakketten hebben niet enkel een naam, maar ook een omschrijving. Set:( ($G(C("KLREF"))="") || (KLNr'=$$$KlantSFS) ) C("KLREF")=KlRef // Bij SFS heeft commissie referentie voorrang (wordt vroeger ingevuld in C("KLANTREF"). Voor andere klanten heeft pakket voorrang. Set C("KLREFOMS")=$G(KlRefOms) // DKG wil graag zijn pakketreferentie in barcode-vorm. Maar tot zolang er geen etiketlayout is gekozen/gemaakt voor dossiercode-barcode PLUS klantbarcode, heeft dossiercode voorrang. If ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("APPS.Halux.Docs.impl.LadeKlantEtiketBuilder_IsActiefDkgPakketRefAlsBarcodeOpKlantEtiket") { If (KLNr=$$$KlantDKGDeKeukenfabriek) && $$$HasLength(PakketReferentieVanopOrderlijn) && ($G(C("DOSNR")) = "") { Set C("BARCODE")=PakketReferentieVanopOrderlijn // DKG wil de eventuele pakketreferentie niet enkel tekstueel maar ook in barcodevorm. } } Quit CHARGEID(C) ; Unique voor elk product ook voor elk stuk ; param C via .Local Set C("CHARGEID")=##class(BL.ProdHist.ChargeTrace).GetUniqueComposite(C("PRNR")) Quit ; ; Herafdrukken Haluxetiketten indien reeds op bon BONNR(BONNr,SendWMS) New R,KLNr,BLNr,ORDNr,PRNr,Aantal Set SendWMS=$G(SendWMS),KLNr=$P(^KU1(BONNr,"F"),D) If ("\"_$$$KlantBruynzeel_"\"_$$$KlantKeller_"\")[(D_KLNr_D) Do ; Alleen voor Bruynzeel en KELLER .;Set Dev="|PRN|\\NOTES01\WMSUITV_TXT_LABEL" ; Receptie/Uitvoer conv. via parallelconvertor .Set Dev="|PRN|\\NOTES01\MAG_HALUX" ; Magazijn Halux .;Set Dev="|PRN|\\NOTES01\OVHALUX_TXT_LABEL" ; OV Halux .Set BLNr=100,ORDNr="" .For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do ..Set R=^KUL(KLNr,"F",BONNr,BLNr) Set:$P(R,D,17)="KF5" ORDNr=$P($P(R,D,5)," - ") ..Quit:'ORDNr ..Set PRNr=$P(R,D,2),Aantal=$P(R,D,3) ..Quit:'PRNr Quit:Aantal'>0 ..If '$D(^KPBI("D",KLNr,PRNr)) Quit:KLNr'=$$$KlantBruynzeel ; Er is geen bestelimpuls ..Set R=^KPR(PRNr,0),GenPRNr=$P(R,D,3) ..Quit:GenPRNr'=57791 ; GEN.HALKAD4 ..If SendWMS,$L($P(^KUL(KLNr,"F",BONNr,BLNr),D,28)) Quit ; Niet afdrukken indien KOM ..Do PRINT(Dev,"O",ORDNr,BLNr,PRNr,Aantal) Quit ; ORDREF(ORDNr,StripDatum,C) ; Referentie opzoeken in leveringsbon indien order reeds op bon gezet New R,KLNr,OrdRef,BONNr,BLNr If 'ORDNr Set C("ORDREF")="VOORRAAD" Quit Set (CommRef,OrdRef)="",R=$G(^KO1(ORDNr,"F")),KLNr=$P(R,D),BONNr=$P(R,D,2) If BONNr Do .Set BLNr=100 .For Set BLNr=$O(^KUL(KLNr,"F",BONNr,BLNr)) Quit:'BLNr Do Quit:$L(OrdRef) ..Set R=^KUL(KLNr,"F",BONNr,BLNr) ..If $P(R,D,17)="KF5",$P($P(R,D,5)," - ")=ORDNr Set OrdRef=$P($P(R,D,5)," - ",3,99),CommRef=$P(R,D,20) Else If KLNr Set OrdRef=$P($G(^KOD(KLNr,"F",ORDNr,1)),D,3),CommRef=$P($G(^KOD(KLNr,"F",ORDNr,1)),D,19) If $E(OrdRef,1,3)="EDI" Set $E(OrdRef,1,3)="",OrdRef=$TR(OrdRef," ","") If $G(StripDatum),OrdRef?1.2N1"."1.2N1"."2N1" ".E!(OrdRef?1.2N1"/"1.2N1"/"2N1" ".E)!(OrdRef?1.2N1"-"1.2N1"-"2N1" ".E) Set OrdRef=$P(OrdRef," ",2,99) Set C("ORDREF")=OrdRef Set:$L(CommRef) C("COMMREF")=CommRef Quit OrdRef ADRES(ORDNr,KLNr,C) New R,OrdRef,BONNr,BLNr,Adres Set Adres="" If ORDNr Do .Set R=$G(^KO1(ORDNr,"F")),KLNr=$P(R,D),BONNr=$P(R,D,2) .If BONNr Set Adres=$G(^KUL(KLNr,"F",BONNr,3)) .Else If KLNr Set Adres=$G(^KOD(KLNr,"F",ORDNr,3)) If $L($TR(Adres,"\",""))<5 Do ; Geen of onvoldoende adres .Set:KLNr Adres=^KKL(^KK1(KLNr),0) Set C("KLNM")=$P(Adres,D,2) Set C("KLNR")=KLNr Set C("KLNMBIG")=$$TRIMNAAM^vhRtn1(C("KLNM"),1) Set:(KLNr=$$$KlantDKGDeKeukenfabriek) (C("KLNM"),C("KLNMBIG"))="" Set:(KLNr=8545) C("KLNMBIG")="I.SCHREURS" ; Speciaal toegevoegd om verwarring te vermijden met 3760 - PV - 13-09-05 Set:(KLNr=$$$KlantAssenti) C("KLNM")="@4451",C("KLNMBIG")="4451" ; Assenti Set:(KLNr=1300) C("KLNMBIG")="OSTE K" ; Speciaal toegevoegd op vraag van klant - PV - 21-04-08 Set C("TOENM")=$P(Adres,D,3) Set C("STRAAT")=$P(Adres,D,5) Set C("POSTKODE")=$S($E($P(Adres,D,6),1,2)="NL":"NL",$P(Adres,D,6)?4N:"",1:$P(Adres,D,6)) Set C("GEMEENTE")=$E($P(Adres,D,7),1,18) Quit ; ****************** ; PRINTING ; ****************** HeeftMaatwerkEtiketNodig(ProductID) New ProductTypeAPI,IsTandembox,IsLegrabox,IsTAORbox #dim ProductTypeAPI As DOM.PM.ProductTypeAPI = ##class(DOM.DomeinContext).Instance().GeefProductTypeAPI() #dim IsTandembox As %Boolean = ProductTypeAPI.IsTandemboxProduct(ProductID) #dim IsTAORbox As %Boolean = ProductTypeAPI.IsTAORboxProduct(ProductID) #dim IsLegrabox As %Boolean = ProductTypeAPI.IsLegraboxProduct(ProductID) Quit (IsTandembox || IsLegrabox || IsTAORbox) PRINT(Dev,ObjTyp,ObjRef,ObjLNr,PRNr,Aantal,VoorkeurPrinter,DnaCode) New C,GenTyp,ProdGrp,Etiket,AantalEtiketten Set VoorkeurPrinter = $G(VoorkeurPrinter) If '$data(%request) Set FP=2001 Write @F,@F1,!?2,"Printing ..." If $$HeeftMaatwerkEtiketNodig(PRNr){ #dim Etiket As APPS.common.Print.AbstractLabel #dim AantalEtiketten As %Integer = $G(C("AANTAL"),Aantal) If ObjTyp="T" { Set Etiket = ##class(APPS.Halux.Docs.EtiketBuilder).%New().MaakMaatwerkProductViaToelevering(ObjRef,ObjLNr,AantalEtiketten,VoorkeurPrinter,DnaCode) }ElseIf ObjTyp = "O"{ Set Etiket = ##class(APPS.Halux.Docs.EtiketBuilder).%New().MaakMaatwerkProductViaOrder(ObjRef,ObjLNr,AantalEtiketten,VoorkeurPrinter) } Do PrintEtiketten.Insert(Etiket) }Else{ Set C("TAAL")="N" Set C("DNACODE")=DnaCode Do:ObjTyp="T" FETCHT(ObjRef,ObjLNr,PRNr,$G(Aantal),.C) Do:ObjTyp="O" FETCHO(ObjRef,ObjLNr,PRNr,$G(Aantal),.C) If $E($$$PRGet($$$KortTekst),1,3)="Z37" Do Quit ; Glazen boxside op maat . Do ##class(CHUI.Prod.ProductLabel).PrintVHMaatwerk(PRNr,$G(C("KLNMBIG")),$G(C("TOENR")),$G(C("ORDNR")),Aantal) Set ProdGrp=##class(BL.PPS.TBX.LeanBatch).%New().ProdGrp(PRNr,$G(C("KLNR"))) Quit:ProdGrp?1(1"A",1"B") ; VHoss - wordt afgedrukt NA de optimalisatie Quit:ProdGrp="+" ; Keller - geen etiket nodig // Niet meer van toepassing. Do FETCHP(PRNr,$G(Aantal),.C) Set C("LABELTYP")=$G(C("LABELTYP"),$S($L($G(C("DOSNR"))):"ALGBARC",1:"ALG")) // Indien Halux dossiernummer, dan etiketlayout mét barcode. Set:((C("LABELTYP")="ALG") && ($L($G(C("BARCODE"))))) C("LABELTYP")="ALGBARC" // Indien een klantbarcode, dan etiketlayout mét barcode. Set C("LOGO")=$G(^IPCom("CS","LOGO4682",0)) Set:$D(^IPCom("CS","LOGO"_C("KLNR"))) C("LOGO")=$G(^IPCom("CS","LOGO"_C("KLNR"),0)) Set:($G(C("KLNR"))=$$$KlantDKGDeKeukenfabriek) C("LOGO")="" For Loop=1:1:$G(C("AANTAL"),Aantal) Do . If $G(C("HASCHARGE")) Do CHARGEID(.C) ; aanpassen ChargeID per product . Merge %Print2File($G(C("LABELSIZE"),"10x10"),C("LABELTYP"),%Print2File)=C ; onthouden vn de definities . Set %Print2File=%Print2File+1 } Quit Print2File(LblGroep,Dev,VoorkeurPrinter) ; data is opgeslagen in %Print2File Set LabelSize="" Set VoorkeurPrinter = $G(VoorkeurPrinter) For Set LabelSize=$O(%Print2File(LabelSize)) Quit:LabelSize="" Do . Set LabelType="" . For Set LabelType=$O(%Print2File(LabelSize,LabelType)) Quit:LabelType="" Do . . Do PrintOneFileWithTryCatch(LblGroep,Dev,VoorkeurPrinter,LabelSize,LabelType) Quit PrintOneFileWithTryCatch(LblGroep,Dev,VoorkeurPrinter,LabelSize,LabelType) New VolgNr,File,C Try { Set VolgNr="" Set File=$$CreateFile(Dev,LblGroep,LabelSize,LabelType,VoorkeurPrinter) For { Set VolgNr=$O(%Print2File(LabelSize,LabelType,VolgNr)) Quit:VolgNr="" Kill C Merge C=%Print2File(LabelSize,LabelType,VolgNr) Do WriteRow(LblGroep,LabelType,.C) } Close:(File'=0) File Write:(File=0) ! } Catch { New GecatchteException, NewException #dim GecatchteException As TECH.Exceptions = ##class(TECH.ExceptionHandler).Catch() Close:(File'=0) File Set NewException = ##class(TECH.Exceptions.GeneralErrorException).%New("Fout bij Print2File voor LabelPrinter '"_$G(VoorkeurPrinter)_"'") Do NewException.VoegToeInnerExceptie(GecatchteException) Do ##class(TECH.ExceptionHandler).Throw(NewException) } Quit CreateFile(Dev,LblGroep,LabelSize,LabelType,VoorkeurPrinter) set File=0 New BartenderPath Set BartenderPath = ##class(TECH.Config.ConfigMgr).Instance().GetString("PrintFileDropFolder") New BartenderPrinter Set BartenderPrinter="HALUX_PRODUCTIE_TAOR" ; 8x11 If $Length(VoorkeurPrinter) { Set BartenderPrinter = VoorkeurPrinter }ElseIf (LabelSize="5x10"){ Set BartenderPrinter = "Halux_Productie_Keller" ; 5x10 } If ((BartenderPrinter["|") && ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("HADETIK_SelecteerPrinter")) { Set BartenderPrinter = $Piece(Dev,"|",3) } Set BartenderPrinter=$TR(BartenderPrinter,"/","\") Set BartenderLabelType=LabelType Set:LabelType="ALG" BartenderLabelType="KlantGEN10x10" Set:LabelType="CHARGE" BartenderLabelType="KlantGENBARCHARGE10x10" Set:LabelType="ALGBARC" BartenderLabelType="KlantGENBAR10x10" Set:LabelType="ALG5x10" BartenderLabelType="KlantGEN5x10" If (LabelType="ASM") { Set BartenderLabelType="KlantASM5x10" Set BartenderPrinter = "Halux_Productie_Keller" ; 5x10 } Set:LabelType="KAD" BartenderLabelType="KlantKAD10x10" Set:LabelType="TBX" BartenderLabelType="KlantTBX10x10" Set:LabelType="TBXCOM" BartenderLabelType="KlantTBX5x10" Set:LabelType="TBXBAR" BartenderLabelType="KlantTBXBAR10x10" Set:LabelType="OLPRODUCT" BartenderLabelType="OLProduct6x10" Set:LabelType="OLDOOS" BartenderLabelType="OLDoos6X10" If (BartenderLabelType["10x10") Set BartenderLabelType=$$REPLACE^vhRtn1(BartenderLabelType,"10x10","8x11") new Filename set Filename = $translate(BartenderPrinter,"/\","")_"_"_BartenderLabelType If ##class(TECH.Config.ConfigMgr).Instance().GetBoolean("HADETIK_GenereerRandomBestand") { set Filename = Filename_"_"_$TR($ZH,".","_") } Set Filename = Filename_".TXT" Set File=$$OPEN^vhDEV(BartenderPath,Filename,"W","M") Use File Write "%BTW% /AF=""C:\Bartender\Templates\"_BartenderLabelType_".btw"" /PRN="""_BartenderPrinter_""" /R=3 /P /D= /CLOSE",$$$CRLF Write "%END%",$$$CRLF Quit File VervangNietPrintbareKaraktersDoorSpatie(Tekst) Set Tekst = $Translate(Tekst,$Char(9)_$Char(10)_$Char(13)_$Char(0)," ") Quit Tekst WriteLbl(LblGroep,LabelType) New Delim,VolgNr,Rec,Lbl,Last Set Delim=$$$TAB Set Last=$O(^RES(LblGroep,"LBLK",LabelType,""),-1) Set VolgNr="" For Set VolgNr=$O(^RES(LblGroep,"LBLK",LabelType,VolgNr)) Quit:VolgNr="" Do . Set Rec=^RES(LblGroep,"LBLK",LabelType,VolgNr) . Set Lbl=$P(Rec,"`") . Write Lbl . Write:VolgNr