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
TECH.Mockable
%Integer
6332
%Integer
1239
%String
Halux_Productie
Halux_Productie_Keller
%String
TBX Zaag Productie 5x10
%String
TBX PalletID 5x10
%String
Halux_Productie_Keller
%String
TBX Extra commissie 5x10
%String
HALUX_productie_TAOR
Hoeveel laden er theoretisch gemiddeld op 1 pallet gaan
%Integer
10
APPS.Halux.common.BatchService
1
APPS.Halux.common.ProductieSequentieRepository
1
DOM.AKP.ToeleveringService
1
APPS.Halux.common.ProductieService
1
DOM.PM.ProductAPI
1
BL.PPS.TBX.impl.TBXMatToEnuMatConverter
1
APPS.Halux.PPS.impl.Formatter.Mat
1
BL.Flow.Levering.LabelLogoBepaler
1
%String
APPS.Halux.common.Batch
%Boolean
%String
%String
%String
%String
%String
BL.Sys.LabelPrinter
1
%String
%String
%Integer
%ArrayOfDataTypes
%ListOfDataTypes
1
BL.PPS.TBX.DocsV1.ProboxInhoudEtiketGenerator
1
BL.PPS.TBX.DocsV1.ProboxBarcodeEtiketGenerator
1
%String
1
LabelPrinter:BL.Sys.LabelPrinter="",BatchService:APPS.Halux.common.BatchService="",ProductieSequentieRepository:APPS.Halux.common.ProductieSequentieRepository="",ToeleveringService:DOM.AKP.ToeleveringService,LogoBepaler:BL.Flow.Levering.LabelLogoBepaler,ProductieService:APPS.Halux.common.ProductieService=""
1
1
%Status
1
Printer:%String
BatchID:%String="",ProdGrp:%String,LabelDevice:%String,FOPDevice:%String,LabelLayout:%String
Info:%String
LabelLayout:%String
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)
}
]]>
Label1:%String,Label2:%String
0
Basis:%String
1
Ref:%String
0
================
Etiket Zaaglijst
================
StartNr:%Integer=1,EndNr:%Integer=9999999999
batch with normal drawers followed by tipons followed by normal drawers
- TBXL2test2.txt -> batch with tipons at the end
*/
]]>
====================
Etiketten voor tipon
====================
StartNr:%Integer=1,EndNr:%Integer=9999999999
StartNr:%Integer=1,EndNr:%Integer=9999999999
StartNr:%Integer=1,EndNr:%Integer=9999999999
proc:BL.PPS.TBX.LabelProcessor,StartNr:%Integer,EndNr:%Integer
1
EndNr))
continue:oQ.Status="PB" ; sequencelijnen met status "PB" worden overgeslagen
continue:'..EtiketChk(oQ)
#dim pxLabel As BL.PPS.TBX.sub.pxLabelV1 = ..EtiketOne(oQ)
continue:'$isObject(pxLabel)
Set pxLabel.VolgNr = oQ.Sequence
If proc.Process(.pxLabel) {
Set pxLabel.ToonNakomendeTipons = 1 // Zorgen dat het laatste label de nakomende tipons toont
Set VorigLabel.ToonNakomendeTipons = 0
Do ..blLabelPrinter.Add(pxLabel)
Set VorigLabel = pxLabel
}
}
Do:proc.PostProcess() ..blLabelPrinter.Print2Bartender()
]]>
BL.Sys.LabelPrinter
oQ:DS.PPS.TBX.Queue
0) Opmerking = Opmerking_",Hangm"
If (Batch.GeefProductieGroep() = ##class(APPS.Halux.common.enu.ProductieGroep).Probox())
{
// Probox wikkel info
Set WikkelInfo = ##class(APPS.PM.Maatwerk.impl.Verpakking.Probox.Calculator).GeefWikkelInfoViaLade(Lade)
Set WikkelLengte = WikkelInfo.GeefWikkelLengte()
Set WikkelDiepte = ##class(APPS.PM.Maatwerk.impl.Verpakking.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.Opm4=..GeefOpmerking4(PRNr)
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, ##class(APPS.common.enu.Toepassing).Label())
Set pxLabel.Device=..LabelDevice
Set pxLabel.Layout=..LabelLayout
Set pxLabel.ExtraLabelInfo=..ExtraLabelInfo ; debug informatie, zoals ZaagID, PRNr,
Quit pxLabel
]]>
PRNr:%String
1
%String
TBX:DOM.PM.TBXProduct.TBXLade
1
%Boolean
TBX:DOM.PM.TBXProduct.TBXLade
1
%Boolean
TBX:DOM.PM.TBXProduct.TBXLade
1
%Boolean
oQ:DS.PPS.TBX.Queue
BatchID:%String,BatchList:%CacheString
GlobalRef:%String
1
Lengte:%Decimal,LengtePlaat:%Decimal
1
.9 Set Platen=Platen+1
Quit Platen
]]>
Lengte:%Decimal,LengtePlaat:%Decimal
1
Basis:%String
1
oQ:DS.PPS.TBX.Queue
1
Ref:%String
0
BatchID:%String,BatchList:%CacheString
1
. Set Rec=..OnderdelenOne(..BldBasisFromQueue(oQ))
. Set:$L(Rec) ^HULP(..%J,Label,$I(Count))=Rec
; Output
; Basis + 10:Opmerking
Quit:'$D(^HULP(..%J,Label))
Do INIT^vhLISTO("HATBXLEAN","PRINT",.PLD)
Set PLD("HALUX")=""
Set PLD(1)=$NA(^HULP(..%J,Label))
Set PLD(5)=70
Set PLD(10)="Class("_..%ClassName(1)_").OnderdelenCB"
Set PLD(11)="TBX ONDERDELEN\Lijn:"_..Batch.GeefLijn()_" Batch:"_..BatchID
;zw PLD
Set (%MemTOENr,%MemDossier)=""
if $length(..Printer) set Optie("AUTOSEL")= ..Printer
Do PRINT^OUTPUT(.PLD,"P","S","BL",.Optie)
Kill %MemTOENr,%MemDossier
Quit
]]>
Basis:%String
1
Ref:%String
0
BatchID:%String,BatchList:%CacheString
Basis:%String
oQ:DS.PPS.TBX.Queue
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:%String
0
VoerUitUitvoeringInfoLijstPerInformatieID(-]]>
BatchID:%String,BatchList:%CacheString
0) && (..IsProductiegroepKastOfPallet(Batch) || (..IsProductiegroepProbox(Batch)))){
Do Afdrukker.VerwerkUitvoeringInfoLijst(SamengesteldeLijst,ActiviteitParameters)
Do UitvoeringLijstIterator.Reset()
#dim i = 1
While UitvoeringLijstIterator.HasNext() {
#dim TeCorrigerenMat As APPS.Halux.PPS.Activiteit.impl.common.dto.MattenUitvoeringInfo = UitvoeringLijstIterator.Next()
Set TeCorrigerenMat.Aantal = LijstAantallen.GetAt(i)
Set i = i+1
}
}
else {
Do:UitvoeringInfoLijst.Count() Afdrukker.VerwerkUitvoeringInfoLijst(UitvoeringInfoLijst,ActiviteitParameters)
}
Quit MatCnt
]]>
UitvoeringLijstIterator:TECH.ListIterator
1
SamengesteldeLijstIterator:TECH.ListIterator
1
%ListOfDataTypes
TBXQueue:DS.PPS.TBX.Queue
APPS.Halux.PPS.Activiteit.impl.common.dto.MattenUitvoeringInfo
Batch:APPS.Halux.common.Batch
1
%Boolean
Batch:APPS.Halux.common.Batch
1
%Boolean
Batch:APPS.Halux.common.Batch
1
%Boolean
Batch:APPS.Halux.common.Batch
1
%Boolean
Basis:%String
oQ:DS.PPS.TBX.Queue
1 0 ; Slechts 1 keer voorkomen
Quit:ODSP'="" 0 ; Specials -> geen mat
Quit:..IsSpoel(PRNr) 0 ; spoelbak laden worden apart verwerkt
Set StdProd=$G(^PRBS("BS",PRNr,"MAT.001"))
Quit:($L(StdProd)&&(##class(TECH.Config.ConfigMgr).Instance().GetBoolean("DOM.common.ProjectSettingsApi_IsActiefBomBolOmleidingTbxNaarDotNet"))) 1
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:%String
0
StartNr:%Integer,EndNr:%Integer
EndNr
If ..KlantEtiketChk(oQ) {
#dim pxLabel As BL.Etiket.LadeKlantEtiketVHoss = ..KlantEtiketOne2D(oQ)
If $isObject(pxLabel) {
Do ..blLabelPrinter.Add(pxLabel)
Set Count=Count+1
}
}
}
Do ..blLabelPrinter.Print2Bartender()
]]>
oQ:DS.PPS.TBX.Queue
KlantNr:%String
%String
oQ:DS.PPS.TBX.Queue
Controleert of in de batch toeleveringen zitten voor SFS
%Boolean
AantalEtikettenZonderLogo:%Integer=0
0 {
Do ..PalletEtikettenZonderLogo(AantalEtikettenZonderLogo)
} Else {
If '..BevatSFS() {
Do ..PalletEtikettenNietSFS()
}
Else {
Do ..PalletEtikettenSFS()
}
}
Quit
]]>
0) {
Do ..ProboxOverdoosEtiket(Toelevering)
Hang 5
}
}
}
]]>
Toelevering:DOM.AKP.Toelevering
2 erbij
For i=1:1:Aantal {
set Label = ##class(BL.Etiket.ProboxOverdoos).%New()
Set Label.Device=..#ProboxOverdoosEtiketPrinter
#dim OrderAPI As DOM.VKP.OrderAPI = ##class(DOM.DomeinContext).Instance().GeefOrderAPI()
#dim Order As DOM.VKP.Order = OrderAPI.GeefOrder(Toelevering.GeefOrderID())
#dim Partij As DOM.PARTIJ.Partij = ##class(DOM.DomeinContext).Instance().GeefPartijAPI().GeefPartij(Order.GeefKlantID())
#dim PalletID As %String = ..GeefNieuwPalletID(##class(BL.PPS.TBX.enu.PalletEtiketType).Probox())
#dim KlantNr As %String = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantNummerVoorPartijID(Partij.GeefID())
set Label.Logo = ..GeefEtiketLogo(KlantNr)
set Label.KlantNaam = Partij.GeefNaam()
#dim KlantInstellingenService As APPS.common.KlantInstellingenService = ##class(APPS.ApplicatieContext).Instance().GeefOrderVerwerkingAPI().GeefKlantInstellingenService()
If KlantInstellingenService.GebruiktKlantOrderNummer(Order.GeefKlantID())
{
Set Label.KlantNaam = Order.GeefDocumentReferenties().KlantOrderNummer
}
set Label.PalletBarcode = PalletID
set Label.PalletBarcodeTxt = ..FormatteerPalletID(PalletID)
set Label.OrderRef = Order.GeefOrderReferentie()
set Label.OrderNr = Order.GeefID()
set Label.ToeleveringNr = Toelevering.GeefID()
set Label.VerzendWijze = Order.GeefVerzendingWijze()
set Label.ProductieWeek = $translate($$EXTDATE^vhLib.DataTypes(Toelevering.GeefDueOutTime(),"DW"),"/","")
set Label.CommissieReferentie = Order.GeefCommissieReferentie()
set Label.Aantal = 1
Do ..blLabelPrinter.Add(Label)
}
Do ..blLabelPrinter.Print2Bartender()
quit
]]>
1
%Boolean
DnaCodeIterator:TECH.Iterator
DnaCodeIterator:TECH.Iterator
Dag:%String,Maand:%String,LabelPrinter:%String,Aantal:%Integer=1,BONNr:%String=""
Dag:%String,Maand:%String,LabelPrinter:%String,Aantal:%Integer=1,BONNr:%String=""
Bepaalt het volume-aandeel van de probox-laden
Toelevering:DOM.AKP.Toelevering
1
%Integer
Toelevering:DOM.AKP.Toelevering
AantalEtikettenZonderLogo:%Integer
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
KLNr:%String,BONNr:%String
1
0
%String
Extra commissie-etiketten
'PB') GROUP BY TOENr, TLUNr, Product")
Do rs.Execute()
while rs.Next() {
#dim ToeleveringID As %String = rs.Data("TOENr")
continue:'##class(DOM.DomeinContext).Instance().GeefToeleveringAPI().BestaatToelevering(ToeleveringID)
#dim ProductID As %String = rs.Data("Product")
#dim Product As DOM.PM.Product = ##class(DOM.DomeinContext).Instance().GeefProductAPI().GeefProduct(ProductID)
#dim Aantal As %Integer = rs.Data("Aantal")
If ..HeeftApartMeeTeLeverenOnderdelen(ProductID) {
set mdOnderdelen(ToeleveringID)=$G(mdOnderdelen(ToeleveringID))+Aantal
}
If ..HeeftApartMeeTeLeverenMatten(Product) {
set mdAntislipMatten(ToeleveringID)=$G(mdAntislipMatten(ToeleveringID))+Aantal
}
}
do:$data(mdOnderdelen) ..PrintOnderdelenEtiketten(.mdOnderdelen, ProductID)
do:$data(mdAntislipMatten) ..PrintAntislipmatEtiketten(.mdAntislipMatten)
]]>
mdOnderdelen:%String,productID:%Integer
1
mdAntislipMatten:%String
1
%Boolean
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:DS.PPS.TBX.Queue
%String
Spoelbak of Syfon
PRNr:%String
controle of de bodem een inkeping heeft (Keller)
w ##class(BL.PPS.TBX.DocsV1).%New().MetInkeeping(417399)
1
PRNr:%String
%Boolean
ProductID:%String
%Boolean
ProductID:%String
1
%Boolean
Product:DOM.PM.TBXProduct.TBXLade
%Boolean
ProductID:%String
1
%Boolean
ProductID:%String
1
%String
Product:DOM.PM.TBXProduct.TBXLade
1
%Boolean