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 Zaag Productie 5x10
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
BL.Sys.LabelPrinter
1
%String
%String
%Integer
BatchID,ProdGrp,LabelDevice,FOPDevice,LabelLayout
Info
LabelLayout
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)
. . Set VorigLabel = pxLabel
Do:proc.PostProcess() blLabelPrinter.Print2Bartender()
Set ..blLabelPrinter=blLabelPrinter
]]>
BL.Sys.LabelPrinter
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).GeefWikkelInfoViaLade(Lade)
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
Set pxLabel.ExtraLabelInfo=..ExtraLabelInfo ; debug informatie, zoals ZaagID, PRNr,
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
. 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