%occIO
TECH.RegisteredObject,APPS.Halux.Planning.BatchService
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
%String
Toelevering:DOM.AKP.Toelevering,MaatwerkBatch:APPS.Halux.Planning.dto.MaatwerkBatch
1
%ListOfDataTypes
0) && ('##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,",")_")")
}
Set 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 (MaatwerkBatch.Datum '= ##class(TECH.DateTime).TimestampToDate(Gepland))
//{
// Do VerplaatsProblemen.Insert("De toelevering "_Toelevering.GeefID()_" is gepland voor een andere datum dan de batch")
//}
#dim BatchVan As APPS.Halux.common.Batch = BatchService.GeefBijhorendeBatch(Toelevering)
If ($IsObject(BatchVan)) && (BatchVan.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 BatchNaar As APPS.Halux.common.Batch = BatchService.GeefBatch(MaatwerkBatch.ID)
#dim NaarToeleveringIterator As TECH.Iterator = BatchNaar.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 (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")) Do ##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()
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