%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