%occIO
TECH.RegisteredObject,APPS.Halux.Planning.BatchService
APPS.Halux.common.BatchService
1
APPS.Halux.common.ProductieService
1
ProductieService:APPS.Halux.common.ProductieService=""
1
1
%Status
1
Datum:%Date
APPS.Halux.Planning.dto.BatchOverzicht
Datum:%Date
1
%ListOfObjects
ELEMENTTYPE="APPS.Halux.Planning.dto.MaatwerkBatch"
Batch:APPS.Halux.common.Batch
APPS.Halux.Planning.dto.MaatwerkBatch
BatchID:%String
APPS.Halux.Planning.dto.BatchToeleveringen
Datum:%Date,Categorie:APPS.Halux.common.enu.Categorie
%ListOfObjects
ELEMENTTYPE="APPS.Halux.Planning.dto.Toelevering"
Toeleveringen:%ListOfDataTypes,BatchID:%String
APPS.Halux.Planning.dto.VerplaatsResultaat
Toelevering:DOM.AKP.Toelevering
TECH.String
Toelevering:DOM.AKP.Toelevering,MaatwerkBatch:APPS.Halux.Planning.dto.MaatwerkBatch
1
%ListOfDataTypes
0) && $$$Not(##class(TECH.ListUtils).IsDeelverzamelingVan(..GeefProductieGroepen(Toelevering), MaatwerkBatch.ProductieGroep))) {
do VerplaatsProblemen.Insert("Productiegroepen (" _ ##class(TECH.ListUtils).ListToPieces(..GeefProductieGroepen(Toelevering), ",") _ ") van toelevering " _ Toelevering.GeefID()_" komen niet overeen met de productiegroepen van de batch ("_##class(TECH.ListUtils).ListToPieces(MaatwerkBatch.ProductieGroep, ",") _ ")")
}
#dim PlanningService As APPS.Halux.Planning.PlanningService = ##class(APPS.Halux.Planning.PlanningService).%New()
#dim Gepland As %TimeStamp = PlanningService.GeefToeleveringGeplandTijdstip(Toelevering.GeefID())
// FMA 7/01/2014. Deze test tijdelijk uitgezet op vraag van Halux. Zal voor een half jaar of zo zijn.
// Zie ook vhUnitTest.APPS.Halux.Planning.TestBatchService
//if $$$Not(MaatwerkBatch.Datum = ##class(TECH.DateTime).TimestampToDate(Gepland)) {
// do VerplaatsProblemen.Insert("De toelevering "_Toelevering.GeefID()_" is gepland voor een andere datum dan de batch")
//}
#dim BronBatch As APPS.Halux.common.Batch = ..BatchService.GeefBijhorendeBatch(Toelevering)
if (($IsObject(BronBatch)) && (BronBatch.GeefStatus() = ##class(APPS.Halux.common.enu.BatchStatus).Gestart())) {
do VerplaatsProblemen.Insert("De toelevering wordt verplaatst vanuit een batch die reeds is gestart")
}
if (MaatwerkBatch.Status = ##class(APPS.Halux.common.enu.BatchStatus).Gestart()) {
do VerplaatsProblemen.Insert("De batch is reeds gestart")
}
#dim DoelBatch As APPS.Halux.common.Batch = ..BatchService.GeefBatch(MaatwerkBatch.ID)
#dim NaarToeleveringIterator As TECH.Iterator = DoelBatch.GeefToeleveringIterator()
// FMA 7/01/2014. Deze test tijdelijk uitgezet op vraag van Halux. Zal voor een half jaar of zo zijn.
// Zie ook vhUnitTest.APPS.Halux.Planning.TestBatchService
//if (NaarToeleveringIterator.HasNext()) {
//#dim EersteNaarToelevering As DOM.AKP.Toelevering = NaarToeleveringIterator.Next()
//if $$$Not(EersteNaarToelevering.GeefDueOutTime() = Toelevering.GeefDueOutTime()) {
// do VerplaatsProblemen.Insert("De toelevering " _ Toelevering.GeefID() _ " heeft een andere due out dan deze in de batch")
//}
//}
quit VerplaatsProblemen
]]>
Categorie:APPS.Halux.common.enu.Categorie
%ListOfDataTypes
Datum:%Date,Categorie:APPS.Halux.common.enu.Categorie
APPS.Halux.Planning.dto.MaatwerkBatch
BatchID:%String
ToeleveringID:%String
APPS.Halux.Planning.dto.ZoekToeleveringResultaat
Datum:%Date,Categorie:APPS.Halux.common.enu.Categorie
APPS.Halux.Planning.dto.BatchOverzicht
BatchID:%String
BatchID:%String
Toelevering:DOM.AKP.Toelevering
%ListOfDataTypes
ELEMENTTYPE="APPS.Halux.common.enu.ProductieGroep"
ToeleveringID:%String
1
%Date
Datum:%Date
1
%ListOfObjects
ELEMENTTYPE="APPS.Halux.Planning.dto.TandemboxBatch"
BatchID:%String,VerplaatsNaarVolgnummer:%String
APPS.Halux.Planning.dto.BatchOverzicht
ResultSet.Data("MaxVolgnummer")) ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidInputException).%New("Nieuw nummer mag niet groter zijn dan de bestaande grootste. BatchID: " _ BatchID _ ", Verplaatsen naar volgNr: " _ VerplaatsNaarVolgnummer))
}
do ResultSet.Close()
set ResultSet = ##class(%ResultSet).%New()
do ResultSet.Prepare("SELECT ID FROM APPS_Halux_common_impl.BatchImpl WHERE Volgnummer >= ? AND Volgnummer <= ? AND GeplandOp = ? AND Categorie = ? AND ID <> ?")
if (Batch.GeefVolgnummer() > VerplaatsNaarVolgnummer) {
do ResultSet.Execute(VerplaatsNaarVolgnummer, Batch.GeefVolgnummer(), Batch.GeefGeplandOp(), Batch.GeefCategorie(), BatchID)
while (ResultSet.Next()) {
set TeWijzigenBatch = ..BatchService.GeefBatch(ResultSet.Data("ID"))
do TeWijzigenBatch.ZetVolgnummer(TeWijzigenBatch.GeefVolgnummer() + 1)
do TeWijzigenBatch.Save()
do BatchOverzicht.MaatwerkBatches.Insert(..GeefMaatwerkBatch(TeWijzigenBatch))
}
} else {
do ResultSet.Execute(Batch.GeefVolgnummer(), VerplaatsNaarVolgnummer, Batch.GeefGeplandOp(), Batch.GeefCategorie(), BatchID)
while (ResultSet.Next()) {
set TeWijzigenBatch = ..BatchService.GeefBatch(ResultSet.Data("ID"))
do TeWijzigenBatch.ZetVolgnummer(TeWijzigenBatch.GeefVolgnummer() - 1)
do TeWijzigenBatch.Save()
do BatchOverzicht.MaatwerkBatches.Insert(..GeefMaatwerkBatch(TeWijzigenBatch))
}
}
do Batch.ZetVolgnummer(VerplaatsNaarVolgnummer)
do Batch.Save()
do BatchOverzicht.MaatwerkBatches.Insert(..GeefMaatwerkBatch(Batch))
do OperatieScope.Gelukt()
} catch {
do OperatieScope.Gefaald()
do ##class(TECH.ExceptionHandler).Rethrow(##class(TECH.ExceptionHandler).Catch())
}
quit BatchOverzicht
]]>
BatchIDs:%ListOfDataTypes,ProductieLijn:%String
APPS.Halux.Planning.dto.BatchOverzicht
0) {
set Feedback = "De batches " _ ##class(TECH.ListUtils).ListToPieces(ReedsGestarteBatches, ",") _ " zijn reeds gestart en kunnen dus niet van productielijn veranderd worden."
do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.InvalidUserInputException).%New(Feedback))
}
quit BatchOverzicht
]]>
%ListOfDataTypes
BatchID:%String
APPS.Halux.Planning.dto.BatchOverzicht
Categorie:APPS.Halux.common.enu.Categorie
APPS.Halux.Planning.dto.ActieveBatchList
Batch:APPS.Halux.common.Batch
APPS.Halux.Planning.dto.ActieveBatch
BatchID:%String,SorteerType:APPS.Halux.Planning.enu.ToeleveringSorteerType
APPS.Halux.Planning.dto.BatchToeleveringenEnMaatwerkBatch
BatchID:%String,ToeleveringID:%String,VerplaatsNaarVolgNr:%Integer
APPS.Halux.Planning.dto.BatchToeleveringen
Categorie:APPS.Halux.common.enu.Categorie
1
APPS.Halux.Planning.impl.BatchService.MaatwerkBatchBuilder
%SQLQuery
Categorie:APPS.Halux.common.enu.Categorie,Status:APPS.Halux.common.enu.BatchStatus
SELECT ID As BatchID FROM APPS_Halux_common_impl.BatchImpl Where IsActief = 1 AND Categorie=:Categorie AND Status=:Status
ORDER BY ID