Index: vhUnitTest/APPS/Halux/Planning/TestPlanningService.cls.xml =================================================================== diff -u -r3526 -r3986 --- vhUnitTest/APPS/Halux/Planning/TestPlanningService.cls.xml (.../TestPlanningService.cls.xml) (revision 3526) +++ vhUnitTest/APPS/Halux/Planning/TestPlanningService.cls.xml (.../TestPlanningService.cls.xml) (revision 3986) @@ -317,23 +317,39 @@ // Plannen om een vaste leverimpact te krijgen Set Resultaat = PlanningService.VerplaatsToeleveringen("UTGebruiker", "Een opmerking", 62214, ToeleveringNummers) - Set Resultaat = PlanningService.EvalueerVerplaatsing(+$H,DataLijst,ToeleveringNummers) + Set Verplaatsingen = PlanningService.EvalueerVerplaatsing(+$H,DataLijst,ToeleveringNummers) + + Set Resultaat = Verplaatsingen.GetAt(1) + Do $$$AssertEquals(Resultaat.ToeleveringID,ToeleveringNummers.GetAt(1),"De evaluatie voor de eerste toelevering") Do $$$AssertEquals(Resultaat.Evaluaties.Count(),1,"Er is 1 algemene opmerking") Do $$$AssertEquals(Resultaat.Evaluaties.GetAt(1),"Toelevering 298209 zit reeds in een batch en kan beter niet verplaatst worden.","Deze toelevering hebben we in een batch gestoken en kunnen we dus beter niet verplaatsen.") Do ##class(APPS.Halux.common.BatchService).%New().VerwijderBatch(Batch.GeefBatchID()) Set VerplaatsingEvaluatie1 = Resultaat.VerplaatsingEvaluaties.GetAt(1) Do $$$AssertEquals(VerplaatsingEvaluatie1.VerplaatsNaar,62100,"Evalueer verplaatsing naar 62100") - Do $$$AssertEquals(VerplaatsingEvaluatie1.Evaluaties.Count(),2,"Er zijn 2 dag specifieke opmerkingen") + Do $$$AssertEquals(VerplaatsingEvaluatie1.Evaluaties.Count(),1,"Er is 1 dag specifieke opmerking") Do $$$AssertEquals(VerplaatsingEvaluatie1.Evaluaties.GetAt(1),"Toelevering 298209 met een stockprobleem wordt best niet naar voor verplaatst.","Naar voor plaatsen van een toelevering met een stockprobleem is af te raden") - Do $$$AssertEquals(VerplaatsingEvaluatie1.Evaluaties.GetAt(2),"Toelevering 296195 met een stockprobleem wordt best niet naar voor verplaatst.","Naar voor plaatsen van een toelevering met een stockprobleem is af te raden") - - Set VerplaatsingEvaluatie2 = Resultaat.VerplaatsingEvaluaties.GetAt(2) + + Set VerplaatsingEvaluatie2 = Resultaat.VerplaatsingEvaluaties.GetAt(2) Do $$$AssertEquals(VerplaatsingEvaluatie2.VerplaatsNaar,62200,"Evalueer verplaatsing naar 62200") - Do $$$AssertEquals(VerplaatsingEvaluatie2.Evaluaties.Count(),2,"Er zijn 2 dag specifieke opmerkingen") + Do $$$AssertEquals(VerplaatsingEvaluatie2.Evaluaties.Count(),1,"Er is 1 dag specifieke opmerking") Do $$$AssertEquals(VerplaatsingEvaluatie2.Evaluaties.GetAt(1),"Toelevering 298209 wordt naar achter verplaatst en krijgt een leverimpact. Leverimpact ten opzichte van due out: 28 dagen. Leverimpact ten opzichte van de planning: -"_($H-62200)_" dagen.","Het naar achter plaatsen van een toelevering levert een impactprobleem op") - Do $$$AssertEquals(VerplaatsingEvaluatie2.Evaluaties.GetAt(2),"Toelevering 296195 wordt naar achter verplaatst en krijgt een leverimpact. Leverimpact ten opzichte van due out: 63 dagen. Leverimpact ten opzichte van de planning: -"_($H-62200)_" dagen.","Het naar achter plaatsen van een toelevering levert een impactprobleem op") + Do $$$AssertEquals(VerplaatsingEvaluatie2.LeverimpactDueOutInDagen, 28,"De leverimpact ten opzichte van de due out") + Do $$$AssertEquals(VerplaatsingEvaluatie2.LeverimpactPlanningInDagen, -($H-62200),"De leverimpact ten opzichte van de planning") + + Set Resultaat = Verplaatsingen.GetAt(2) + Set VerplaatsingEvaluatie1 = Resultaat.VerplaatsingEvaluaties.GetAt(1) + Do $$$AssertEquals(VerplaatsingEvaluatie1.VerplaatsNaar,62100,"Evalueer verplaatsing naar 62100") + Do $$$AssertEquals(VerplaatsingEvaluatie1.Evaluaties.Count(),1,"Er is 1 dag specifieke opmerking") + Do $$$AssertEquals(VerplaatsingEvaluatie1.Evaluaties.GetAt(1),"Toelevering 296195 met een stockprobleem wordt best niet naar voor verplaatst.","Naar voor plaatsen van een toelevering met een stockprobleem is af te raden") + + Set VerplaatsingEvaluatie2 = Resultaat.VerplaatsingEvaluaties.GetAt(2) + Do $$$AssertEquals(VerplaatsingEvaluatie2.VerplaatsNaar,62200,"Evalueer verplaatsing naar 62200") + Do $$$AssertEquals(VerplaatsingEvaluatie2.Evaluaties.Count(),1,"Er is 1 dag specifieke opmerking") + Do $$$AssertEquals(VerplaatsingEvaluatie2.Evaluaties.GetAt(1),"Toelevering 296195 wordt naar achter verplaatst en krijgt een leverimpact. Leverimpact ten opzichte van due out: 63 dagen. Leverimpact ten opzichte van de planning: -"_($H-62200)_" dagen.","Het naar achter plaatsen van een toelevering levert een impactprobleem op") + Do $$$AssertEquals(VerplaatsingEvaluatie2.LeverimpactDueOutInDagen, 63, "De leverimpact ten opzichte van de due out") + Do $$$AssertEquals(VerplaatsingEvaluatie2.LeverimpactPlanningInDagen, -($H-62200),"De leverimpact ten opzichte van de planning") ]]> Index: APPS/Halux/Planning/dto/EvalueerVerplaatsingResultaat.cls.xml =================================================================== diff -u -r1073 -r3986 --- APPS/Halux/Planning/dto/EvalueerVerplaatsingResultaat.cls.xml (.../EvalueerVerplaatsingResultaat.cls.xml) (revision 1073) +++ APPS/Halux/Planning/dto/EvalueerVerplaatsingResultaat.cls.xml (.../EvalueerVerplaatsingResultaat.cls.xml) (revision 3986) @@ -14,5 +14,9 @@ APPS.Halux.Planning.dto.VerplaatsingEvaluatie list + + +%String + Index: APPS/Halux/Planning/PlanningService.cls.xml =================================================================== diff -u -r3701 -r3986 --- APPS/Halux/Planning/PlanningService.cls.xml (.../PlanningService.cls.xml) (revision 3701) +++ APPS/Halux/Planning/PlanningService.cls.xml (.../PlanningService.cls.xml) (revision 3986) @@ -69,18 +69,20 @@ Van:%Date,Naar:APPS.Halux.Planning.dto.DataLijst,ToeleveringNummers:%ListOfDataTypes -APPS.Halux.Planning.dto.EvalueerVerplaatsingResultaat +APPS.Halux.Planning.dto.EvaluatiesVerplaatsingen DueOutDag) - { - Set LeverImpact = ##class(APPS.Halux.Planning.impl.ProductPlanningUtils).GeefLeverImpact(Toelevering, ##class(TECH.DateTime).DateToTimeStamp(Datum)) - If (LeverImpact '= 0) + Set Datum = DatumIterator.Next() + + Set VerplaatsingEvaluatie = ##class(APPS.Halux.Planning.dto.VerplaatsingEvaluatie).%New() + Set VerplaatsingEvaluatie.VerplaatsNaar = Datum + + Set HeeftFysiekStockProbleem = 0 + Set ProductLijnIterator = Toelevering.GeefTypeToeleveringLijnIterator(##class(DOM.LEV.enu.ToeleveringLijnType).Product()) + While (('HeeftFysiekStockProbleem) && (ProductLijnIterator.HasNext())) { - Set LeverImpactVan = ##class(APPS.Halux.Planning.impl.ProductPlanningUtils).GeefLeverImpact(Toelevering, ##class(TECH.DateTime).DateToTimeStamp(Datum), ##class(TECH.DateTime).DateToTimeStamp(Van)) - Do VerplaatsingEvaluatie.Evaluaties.Insert("Toelevering "_Toelevering.GeefToeNr()_" wordt naar achter verplaatst en krijgt een leverimpact. Leverimpact ten opzichte van due out: "_LeverImpact_" dagen. Leverimpact ten opzichte van de planning: "_LeverImpactVan_" dagen.") + Set ProductLijn = ProductLijnIterator.Next() + Set HeeftFysiekStockProbleem = ProductLijn.HeeftFysiekStockProbleem() } + + Set DueOutDag = $Piece(Toelevering.GeefDueOutTime(),",") + + If (HeeftFysiekStockProbleem && (Datum < DueOutDag)) + { + Do VerplaatsingEvaluatie.Evaluaties.Insert("Toelevering "_Toelevering.GeefToeNr()_" met een stockprobleem wordt best niet naar voor verplaatst.") + } + If (Datum > DueOutDag) + { + Set LeverImpactDueOut = ##class(APPS.Halux.Planning.impl.ProductPlanningUtils).GeefLeverImpact(Toelevering, ##class(TECH.DateTime).DateToTimeStamp(Datum)) + If (LeverImpactDueOut '= 0) + { + Set LeverImpactPlanning = ##class(APPS.Halux.Planning.impl.ProductPlanningUtils).GeefLeverImpact(Toelevering, ##class(TECH.DateTime).DateToTimeStamp(Datum), ##class(TECH.DateTime).DateToTimeStamp(Van)) + Do VerplaatsingEvaluatie.Evaluaties.Insert("Toelevering "_Toelevering.GeefToeNr()_" wordt naar achter verplaatst en krijgt een leverimpact. Leverimpact ten opzichte van due out: "_LeverImpactDueOut_" dagen. Leverimpact ten opzichte van de planning: "_LeverImpactPlanning_" dagen.") + Set VerplaatsingEvaluatie.LeverimpactDueOutInDagen = LeverImpactDueOut + Set VerplaatsingEvaluatie.LeverimpactPlanningInDagen = LeverImpactPlanning + } + } + + If (VerplaatsingEvaluatie.Evaluaties.Count() > 0) + { + Do Resultaat.VerplaatsingEvaluaties.Insert(VerplaatsingEvaluatie) + } } + } - If (VerplaatsingEvaluatie.Evaluaties.Count() > 0) + Else { - Do Resultaat.VerplaatsingEvaluaties.Insert(VerplaatsingEvaluatie) + Do Resultaat.Evaluaties.Insert("Toelevering "_ToeleveringNummer_" bestaat niet.") } + Do Verplaatsingen.Insert(Resultaat) } - Quit Resultaat + + Quit Verplaatsingen ]]> Index: APPS/Halux/Planning/dto/EvaluatiesVerplaatsingen.cls.xml =================================================================== diff -u --- APPS/Halux/Planning/dto/EvaluatiesVerplaatsingen.cls.xml (revision 0) +++ APPS/Halux/Planning/dto/EvaluatiesVerplaatsingen.cls.xml (revision 3986) @@ -0,0 +1,17 @@ + + + +serial +1 +%ListOfObjects +0 + + +APPS.Halux.Planning.dto.EvalueerVerplaatsingResultaat + + + +%Library.CompleteCustomStorage + + + Index: APPS/Halux/Planning/dto/VerplaatsingEvaluatie.cls.xml =================================================================== diff -u -r1073 -r3986 --- APPS/Halux/Planning/dto/VerplaatsingEvaluatie.cls.xml (.../VerplaatsingEvaluatie.cls.xml) (revision 1073) +++ APPS/Halux/Planning/dto/VerplaatsingEvaluatie.cls.xml (.../VerplaatsingEvaluatie.cls.xml) (revision 3986) @@ -13,5 +13,15 @@ %Date + + +%Integer +0 + + + +%Integer +0 +