Index: APPS/Halux/Planning/impl/BatchService.cls.xml =================================================================== diff -u -r31170 -r31178 --- APPS/Halux/Planning/impl/BatchService.cls.xml (.../BatchService.cls.xml) (revision 31170) +++ APPS/Halux/Planning/impl/BatchService.cls.xml (.../BatchService.cls.xml) (revision 31178) @@ -32,12 +32,13 @@ Datum:%Date APPS.Halux.Planning.dto.BatchOverzicht @@ -47,55 +48,58 @@ %ListOfObjects ELEMENTTYPE="APPS.Halux.Planning.dto.MaatwerkBatch" Batch:APPS.Halux.common.Batch APPS.Halux.Planning.dto.MaatwerkBatch - BatchID:%String APPS.Halux.Planning.dto.BatchToeleveringen @@ -104,111 +108,120 @@ %ListOfObjects ELEMENTTYPE="APPS.Halux.Planning.dto.Toelevering" Toeleveringen:%ListOfDataTypes,BatchID:%String APPS.Halux.Planning.dto.VerplaatsResultaat + +Batch:APPS.Halux.common.Batch,Toelevering:DOM.AKP.Toelevering +1 + + + Toelevering:DOM.AKP.Toelevering -%String +TECH.String 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,",")_")") + if ((MaatwerkBatch.ProductieGroep.Count() > 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, ",") _ ")") } - Set PlanningService = ##class(APPS.Halux.Planning.PlanningService).%New() + #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 (MaatwerkBatch.Datum '= ##class(TECH.DateTime).TimestampToDate(Gepland)) - //{ - // Do VerplaatsProblemen.Insert("De toelevering "_Toelevering.GeefID()_" is gepland voor een andere datum dan de batch") + //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 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") + #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") + 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() + #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()) - //{ + //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") + //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 + quit VerplaatsProblemen ]]> Categorie:APPS.Halux.common.enu.Categorie %ListOfDataTypes @@ -301,66 +311,67 @@ 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 @@ -369,21 +380,22 @@ BatchID:%String - Toelevering:DOM.AKP.Toelevering %ListOfDataTypes ELEMENTTYPE="APPS.Halux.common.enu.ProductieGroep" - @@ -392,14 +404,15 @@ 1 %Date @@ -410,49 +423,47 @@ ELEMENTTYPE="APPS.Halux.Planning.dto.TandemboxBatch" @@ -461,55 +472,54 @@ 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)) + #dim ResultSet As %ResultSet = ##class(%ResultSet).%New() + + do ResultSet.Prepare("SELECT Max(Volgnummer) As MaxVolgnummer FROM APPS_Halux_common_impl.BatchImpl WHERE AND GeplandOp = ? AND Categorie = ? GROUP BY GeplandOp") + do ResultSet.Execute(Batch.GeefGeplandOp(), Batch.GeefCategorie()) + + if (ResultSet.Next()) { + do:(VerplaatsNaarVolgnummer > 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 <> ?") + do ResultSet.Close() - 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)) + 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)) + } 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 Batch.ZetVolgnummer(VerplaatsNaarVolgnummer) + do Batch.Save() + do BatchOverzicht.MaatwerkBatches.Insert(..GeefMaatwerkBatch(Batch)) - Do OperatieScope.Gelukt() + do OperatieScope.Gelukt() - Quit BatchOverzicht + quit BatchOverzicht ]]> @@ -518,36 +528,43 @@ 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)) + if (ReedsGestarteBatches.Size > 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 + + quit BatchOverzicht ]]> @@ -556,12 +573,13 @@ @@ -571,39 +589,41 @@ 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 @@ -612,15 +632,16 @@ APPS.Halux.Planning.dto.BatchToeleveringen @@ -629,29 +650,22 @@ 1 APPS.Halux.Planning.impl.BatchService.MaatwerkBatchBuilder