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 ]]>