%occIO TECH.RegisteredObject,APPS.Halux.Planning.BatchService APPS.Halux.common.ProductieService 1 APPS.Halux.common.BatchService 1 DOM.AKP.ToeleveringAPI 1 APPS.Halux.Planning.impl.BatchService.MaatwerkBatchBuilderFactory 1 DOM.PM.impl.ProductTypeAPIimpl ProductieService:APPS.Halux.common.ProductieService="",BatchService:APPS.Halux.common.BatchService,ToeleveringAPI:DOM.AKP.ToeleveringAPI,MaatwerkBatchBuilderFactory:APPS.Halux.Planning.impl.BatchService.MaatwerkBatchBuilderFactory,ProductTypeAPI:DOM.PM.impl.ProductTypeAPIimpl 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 1) && CategorTLM){ set Lijn = ProductieLijnBepalerOBJTMES.BepaalLijn(Categorie, ProductieGroep, Toelevering.GeefKlantID()) } Else { set Lijn = ProductieLijnBepaler.BepaalLijn(Categorie, ProductieGroep) } } quit Lijn ]]> 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 (($IsObject(BronBatch)) && (BronBatch.GeefStatus() = ##class(APPS.Halux.common.enu.BatchStatus).BezigMetStarten())) { do VerplaatsProblemen.Insert("De toelevering wordt verplaatst vanuit een batch die bezig is met starten") } 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,MagOnbestaandeToeleveringOpkuisen:%Boolean=1 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