Production Process Steering - Tandembox Genereert van een Toelevering de verpakkingsdefinitie BL.Derde.KlantSpecifiek,BL.Derde.LevSpecifiek,Prod.Product,BL.Prod.OptiBox,BL.PPS.TBX.Common,BL.Sys.Toegang,BL.Sys.Proxy,BL.Sys.FOP.Common,vhLib.Macro 1 %RegisteredObject 0 6332 1239 Halux_Productie TBX Productie TBX PalletID 5x10 Halux_Productie_Keller TBXLadeInVHoss2DTemp 5x10 TBX Extra commissie 5x10 Hoeveel laden er theoretisch gemiddeld op 1 pallet gaan 10 %String APPS.Halux.common.Batch %Boolean %String %String %String %String %String %String %Integer BatchID,ProdGrp,LabelDevice,FOPDevice 1 BatchID:%Integer "_Tekst(i) Set i = i + 1 } If (i > 1) { Set MailTo = ##class(TECH.Config.ConfigMgr).Instance().GetString("TECH.Error.impl.ErrorHandler_DefaultMailAddress") Do SendMiniMail^vhLib($$$SystemMail("Frees Admin"),$ListBuild(MailTo),"Generatie errors freesbestanden",Body,0,1) Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Merge ^HULP(%J) = Tekst Do INIT^vhLIST("HATBXLEAN","FREES",.LD) Do WRITE^vhLIST(.LD) Set Input=$$SCROLL^vhLIST(.LD) Kill ^HULP(%J) } ]]> BatchID,BatchList Label1,Label2 0 Basis 1 Ref 0 BatchID,BatchList PRNr,Rec1,Rec2 1 Ref 0 StartNr,EndNr batch with normal drawers followed by tipons followed by normal drawers - TBXL2test2.txt -> batch with tipons at the end */ ]]> StartNr,EndNr StartNr,EndNr StartNr,EndNr proc:LabelProcessor,StartNr:%Numeric,EndNr:%Numeric 1 EndNr . . Do blLabelPrinter.Add(pxLabel) Do:proc.PostProcess(blLabelPrinter) blLabelPrinter.Print2Bartender() ]]> oQ 0) Opmerking = Opmerking_",Hangm" If (Batch.GeefProductieGroep() = ##class(APPS.Halux.common.enu.ProductieGroep).Probox()) { // Probox wikkel info Set WikkelInfo = ##class(APPS.PM.Maatwerk.TBX.Probox.Calculator).GeefWikkelInfo(Lade.GeefVariant(),Lade.GeefLadeType()=##class(DOM.PM.enu.TBXLadeType).BinnenLade(),Lade.GeefZijwandHoogte(),Lade.GeefInbouwBreedte()) Set WikkelLengte = WikkelInfo.GeefWikkelLengte() Set WikkelDiepte = ##class(APPS.PM.Maatwerk.TBX.Probox.Calculator).GeefWikkelDiepte(Lade.GeefLadeDiepte()) Set WikkelAfmeting = WikkelLengte_"x"_WikkelDiepte Set Opmerking = Opmerking_",Wikkel"_$Case(WikkelAfmeting,"1250x520":"A","1250x650":"B","900x520":"C","900x650":"D",1:"")_"("_WikkelInfo.GeefAantal()_")" } Set pxLabel.Opm1=$E(Opmerking,$S($E(Opmerking,1)=", ":3,$E(Opmerking,1)=",":2,1:1),99) Set pxLabel.TOENr=$E(oQ.TOENr,4,6) Set pxLabel.BatchID=$E(oQ.BatchID,$L(oQ.BatchID)-2,$L(oQ.BatchID)) Set pxLabel.DOSNr=oQ.DOSNr Set pxLabel.VHossID=$S($isObject(oQ.WPVerpak):oQ.WPVerpak.VHossID(),1:"") Set pxLabel.Qty="("_oQ.DeelAantal_"/"_oQ.TotaalAantal_")" Set pxLabel.Picture=##class(BL.Prod.ImageLink).%New().GetProductImageURL(PRNr, "LABEL") Set pxLabel.Device=..LabelDevice Set pxLabel.Layout=..LabelLayout Quit pxLabel ]]> RH %String oQ BatchID,BatchList Basis oQ 1 0 ; Slechts 1 keer voorkomen Set PRNr=oQ.ProductGetObjectId() Quit:..IsSpoel(PRNr) 0 Set ODSP=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ODSP")) ; Onderdelen Special Quit ODSP'="F" ]]> 1 Ref 0 BatchID,BatchList Basis 1 Ref 0 BatchID,BatchList Basis oQ 1 0 ; Slechts 1 keer voorkomen Set PRNr=oQ.ProductGetObjectId() Quit:..IsSpoel(PRNr) 0 Set LT=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"LT")) ; Front type Quit LT="B" ; alleen binnenlades ]]> 1 Ref 0 BatchID,BatchList Basis oQ 1 0 ; Slechts 1 keer voorkomen Set PRNr=oQ.ProductGetObjectId() Quit:..IsSpoel(PRNr) 0 ; spoelbak laden worden apart verwerkt Set StdProd=$G(^PRBS("BS",PRNr,"PRASM.001")) Quit:$L(StdProd) 1 Set StrkProd=$G(^PRBS("BS",PRNr,"PRASMSTRK.001")) Set Dim=$P($G(^PRBS("BS",PRNr,"PRASMSTRK.001","D")),"\") Quit:$L(StrkProd)&&Dim 1 Set RolProd=$G(^PRBS("BS",PRNr,"PRASMROL.001")) Set Dim=$P($G(^PRBS("BS",PRNr,"PRASMROL.001","D")),"\") Quit:$L(RolProd)&&Dim 1 Quit 0 ]]> 1 Ref 0 StartNr,EndNr EndNr . Quit:'..KlantEtiketChk(oQ) . Set pxLabel=..KlantEtiketOne(oQ) . Quit:'$isObject(pxLabel) . Do blLabelPrinter.Add(pxLabel) . Set Count=Count+1 Do blLabelPrinter.Print2Bartender() ]]> oQ KLNr:%String,TOENr:%String,TLUNr:%String,BatchID:%String,pxLabel:BL.PPS.TBX.sub.pxLabelKlant 1 1 KlantNr:%String %String KLNr,ORDNr,OLNr 1 %String PRNr,VHossID,pxLabel,WPVerpak:DS.PPS.TBX.sub.emWPVerpak,Taal:%String 1 Ophalen vertaling voor label Key:%String,Taal:%String,Default:%String="" 1 %String oQ Controleert of in de batch toeleveringen zitten voor SFS 0 { do ..ProboxOverdoosEtiket(Toelevering) } } ]]> Toelevering Bepaalt het volume-aandeel van de probox-tandemboxen Enkel bedoeld voor toeleveringen die volledig bestaan uit TANDEMBOX laden. Toelevering:DOM.LEV.Toelevering Afdrukken van etiketten die niet voor SFS zijn 'PB') group by TOENr") Do rs.Execute() For Quit:'rs.Next() Do ;berekenen van het aantal etiketten dat moet afgedrukt worden . Set TOENr=rs.Data("TOENr") . Set AantalLijnen(TOENr)=rs.Data("Aantal") Set TOENr="" For Set TOENr=$O(AantalLijnen(TOENr)) Quit:TOENr="" Do . Set Aantal=$S(AantalLijnen(TOENr)#6=0:AantalLijnen(TOENr)\6,1:AantalLijnen(TOENr)\6+1) . For i=1:1:Aantal Do . . Set pxLabel=..PalletEtiketOne(##class(BL.PPS.TBX.enu.PalletEtiketType).Tandembox()) . . Quit:'$isObject(pxLabel) . . Do blLabelPrinter.Add(pxLabel) Do blLabelPrinter.Print2Bartender() Quit ]]> Type:BL.PPS.TBX.enu.PalletEtiketType="SFS" Type:BL.PPS.TBX.enu.PalletEtiketType 1 %String PalletID:%String Type:BL.PPS.TBX.enu.PalletEtiketType 1 %String 999999 Set PalletID=1,^RES("EWPAL","CNT","TBX")=PalletID Lock -^RES("EWPAL","CNT","TBX") set LenType = $length(Type) set PalletID = Type_$translate($justify(PalletID,$$$LengteBarcode-LenType)," ","0") ; 0-justify tot 8 lang Quit PalletID ]]> KLNr,BONNr 1 0 %Boolean Extra commissie-etiketten 'PB') group by TOENr, TLUNr, Product") Do rs.Execute() For Quit:'rs.Next() Do ;berekenen van het aantal etiketten dat moet afgedrukt worden . Set PRNr=rs.Data("Product") . Set TOENr=rs.Data("TOENr") . Set TLUNr=rs.Data("TLUNr") . Set Aantal=rs.Data("Aantal") . Quit:'$D(^KTO($$$LevHalux,TOENr)) . Set ASM=$S($LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"NMASM")):"",1:$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"ASM"))) ; Antislipmat . Set VPK=$LG(##class(Prod.Kenmerk.DataDefinitie).Get("TBX",PRNr,"VERPAK")) ; Verpakking . ; indien voorwaarden wijzigen ook aanpassen in CHUI.PPS.TBX.LeanBatch : chkCommissie . If (VPK?1(1"A",1"B",1"X",1"Y"))&(ASM'=0) Set AantASM(TOENr)=$G(AantASM(TOENr))+Aantal ; ASM afzonderlijk : tellen indien verticale stapeling (i.e. VHoss of Probox) . If (VPK?1(1"O",1"B",1"X")) Set AantOnderdelen(TOENr)=$G(AantOnderdelen(TOENr))+Aantal ; Losse onderdelen : tellen indien bulk MET onderdelen Set TOENr="" For Set TOENr=$O(AantASM(TOENr)) Quit:TOENr="" Do ; labels naar de bartender sturen . Set Aantal=$S(AantASM(TOENr)#$$$GrpAantalMat=0:AantASM(TOENr)\$$$GrpAantalMat,1:AantASM(TOENr)\$$$GrpAantalMat+1) . Set pxLabel=..EtikettenCommissieOne(TOENr,Aantal,"ANTISLIPMAT") . Do blLabelPrinter.Add(pxLabel) For Set TOENr=$O(AantOnderdelen(TOENr)) Quit:TOENr="" Do . Set Aantal=$S(AantOnderdelen(TOENr)#$$$GrpAantalOnderdeel=0:AantOnderdelen(TOENr)\$$$GrpAantalOnderdeel,1:AantOnderdelen(TOENr)\$$$GrpAantalOnderdeel+1) . Set pxLabel=..EtikettenCommissieOne(TOENr,Aantal,"ONDERDELEN") . Do blLabelPrinter.Add(pxLabel) Do blLabelPrinter.Print2Bartender() ; eigenlijke afdruk ]]> TOENr:%Numeric,Aantal:%Numeric,Titel:%String BL.PPS.TBX.sub.pxCommissie Geeft TELMAGST^MRP(...) Returns aantal stuks (al dan niet afgerond) 1 PRNr:%String,QtyNodig:%String,NaarBovenAfronden:%Boolean,DimBrut:%String 0 %String DimNet wordt niet gebruikt ]]> oQ Spoelbak of Syfon PRNr controle of de bodem een inkeping heeft (Keller) w ##class(BL.PPS.TBX.DocsV1).%New().MetInkeeping(417399) 1 PRNr