Index: APPS/Halux/Planning/PlanningService.cls.xml =================================================================== diff -u -r1073 -r1133 --- APPS/Halux/Planning/PlanningService.cls.xml (.../PlanningService.cls.xml) (revision 1073) +++ APPS/Halux/Planning/PlanningService.cls.xml (.../PlanningService.cls.xml) (revision 1133) @@ -3,7 +3,7 @@ Service voor de Halux planningstool. -Ondersteunt het visulaliseren van het resourcegebruik voor alle toeleveringen die reeds ingegeven zijn. +Ondersteunt het visualiseren van het resourcegebruik voor alle toeleveringen die reeds ingegeven zijn. 1 %RegisteredObject 0 @@ -12,6 +12,61 @@ Halux_Planning_PlanningService + +ToeleveringNummer:%Integer,AantalToeleveringen:%Integer,DrempelAantalProducten:%Integer +APPS.Halux.Planning.dto.SplitsToeleveringEvaluatie + DrempelAantalProducten) + { + Set Aantal = ProductToeleveringLijn.GeefAantal() + Set AantalPerToelevering = ##class(TECH.Math).Floor(Aantal / AantalToeleveringen) + Set Rest = Aantal - (AantalToeleveringen*AantalPerToelevering) + For i=1:1:AantalToeleveringen + { + Set Aantal = AantalPerToelevering + If (Rest > 0) + { + Set Aantal = Aantal + 1 + Set Rest = Rest - 1 + } + Set SplitsToeleveringEvaluatie.GesplitsteToeleveringen.GetAt(i).Beschrijving = "Toelevering "_i + Do SplitsToeleveringEvaluatie.GesplitsteToeleveringen.GetAt(i).Aantallen.Insert(Aantal) + } + } + Else + { + Do SplitsToeleveringEvaluatie.GesplitsteToeleveringen.GetAt(1).Aantallen.Insert(ProductToeleveringLijn.GeefAantal()) + For i=2:1:AantalToeleveringen + { + Do SplitsToeleveringEvaluatie.GesplitsteToeleveringen.GetAt(i).Aantallen.Insert(0) + } + } + } + } + + Quit SplitsToeleveringEvaluatie +]]> + + Van:%Date,Naar:APPS.Halux.Planning.dto.DataLijst,ToeleveringNummers:%ListOfDataTypes APPS.Halux.Planning.dto.EvalueerVerplaatsingResultaat @@ -71,7 +126,12 @@ } If (Datum > DueOutDag) { - Do VerplaatsingEvaluatie.Evaluaties.Insert("Toelevering "_Toelevering.GeefToeNr()_" wordt naar achter verplaatst en krijgt een leverimpact.") + Set LeverImpact = ##class(APPS.Halux.Planning.impl.ProductPlanningUtils).GeefLeverImpact(Toelevering, ##class(TECH.DateTime).DateToTimestamp(Datum)) + If (LeverImpact '= 0) + { + 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.") + } } } If (VerplaatsingEvaluatie.Evaluaties.Count() > 0) @@ -389,37 +449,39 @@ Set Instellingen.WekenVoorHuidige = 0 Set Instellingen.WekenNaHuidige = 3 - Set ResourceDrempels = ##class(APPS.Halux.Planning.dto.ResourceDrempels).%New() - Set ResourceDrempels.ALUFrees = ..GeefResourceDrempel("ALUFrees") - Set ResourceDrempels.ALUOperator = ..GeefResourceDrempel("ALUOperator") - Set ResourceDrempels.ALUZaag = ..GeefResourceDrempel("ALUZaag") - Set ResourceDrempels.BewerkingsCenter = ..GeefResourceDrempel("BewerkingsCenter") - Set ResourceDrempels.HoekkastInpak = ..GeefResourceDrempel("HoekkastInpak") - Set ResourceDrempels.HoekkastMontage = ..GeefResourceDrempel("HoekkastMontage") - Set ResourceDrempels.HoekkastZaag = ..GeefResourceDrempel("HoekkastZaag") - Set ResourceDrempels.Houtzaag = ..GeefResourceDrempel("Houtzaag") - Set ResourceDrempels.KartonMachine = ..GeefResourceDrempel("KartonMachine") - Set ResourceDrempels.TBXPers1 = ..GeefResourceDrempel("TBXPers1") - Set ResourceDrempels.TBXPers2 = ..GeefResourceDrempel("TBXPers2") - Set ResourceDrempels.TBXPers3 = ..GeefResourceDrempel("TBXPers3") - Set ResourceDrempels.TBXPicking = ..GeefResourceDrempel("TBXPicking") - Set ResourceDrempels.Voormontage = ..GeefResourceDrempel("Voormontage") + Set ResultSet = ##class(%ResultSet).%New("APPS.Halux.Planning.impl.ResourceDrempels:Extent") + Do ResultSet.Execute() - Set Instellingen.ResourceDrempels = ResourceDrempels + While (ResultSet.Next()) + { + Set ResourceDrempels = ##class(APPS.Halux.Planning.impl.ResourceDrempels).%OpenId(ResultSet.Data("ID")) + + Set ResourceDrempelsDto = ##class(APPS.Halux.Planning.dto.ResourceDrempels).%New() + Set ResourceDrempelsDto.ALUFrees = ..GeefResourceDrempelDto(ResourceDrempels.ALUFrees) + Set ResourceDrempelsDto.ALUMontage = ..GeefResourceDrempelDto(ResourceDrempels.ALUMontage) + Set ResourceDrempelsDto.ALUTeam = ..GeefResourceDrempelDto(ResourceDrempels.ALUTeam) + Set ResourceDrempelsDto.Bewerkingscenter = ..GeefResourceDrempelDto(ResourceDrempels.Bewerkingscenter) + Set ResourceDrempelsDto.HoekkastTeam = ..GeefResourceDrempelDto(ResourceDrempels.HoekkastTeam) + Set ResourceDrempelsDto.Houtzaag = ..GeefResourceDrempelDto(ResourceDrempels.Houtzaag) + Set ResourceDrempelsDto.KartonMachine = ..GeefResourceDrempelDto(ResourceDrempels.KartonMachine) + Set ResourceDrempelsDto.TBXPers1 = ..GeefResourceDrempelDto(ResourceDrempels.TBXPers1) + Set ResourceDrempelsDto.TBXPers2 = ..GeefResourceDrempelDto(ResourceDrempels.TBXPers2) + Set ResourceDrempelsDto.Voormontage = ..GeefResourceDrempelDto(ResourceDrempels.Voormontage) + + Do Instellingen.ResourceDrempels.Insert(ResourceDrempelsDto) + } Quit Instellingen ]]> - -ID:%String + +ResourceDrempelData:APPS.Halux.Planning.impl.ResourceDrempel 1 APPS.Halux.Planning.dto.ResourceDrempel DrempelAantalProducten) - { - Set Aantal = ProductToeleveringLijn.GeefAantal() - Set AantalPerToelevering = ##class(TECH.Math).Floor(Aantal / AantalToeleveringen) - If ((Aantal/AantalToeleveringen) '= AantalPerToelevering) { Set AantalPerToelevering = AantalPerToelevering + 1 } - Set NieuweLijnNummers = ##class(%ListOfDataTypes).%New() - While (Aantal > AantalPerToelevering) - { - Set Aantal = Aantal - AantalPerToelevering - Set $ZTRAP="SplitsFout" - Set NieuwLijnNummer = $$SplitsLijn^FLOWTOE6(ToeleveringNummer,ProductToeleveringLijn.GeefUniekLijnNr(),Aantal) - Set $ZTRAP = "" - If (ProductToeleveringLijnIterator.HasNext()) { Do ProductToeleveringLijnIterator.Next() } // Skip de aangemaakte lijn - Do NieuweLijnNummers.Insert(NieuwLijnNummer) - } - - If (NieuweLijnNummers.Count() > 0) { Do NieuweLijnenPerLijn.Insert(NieuweLijnNummers) } - } + Do UniekeLijnNummers.Insert(ProductToeleveringLijn.GeefUniekLijnNr()) } Set GewijzigdeToeleveringen = ##class(%ListOfObjects).%New() - For i = 1:1:AantalToeleveringen-1 + For i = 2:1:AantalToeleveringen { Set AfTeSplitsenLijnen = ##class(%ListOfDataTypes).%New() - For j = 1:1:NieuweLijnenPerLijn.Count() + Set GesplitsteToelevering = SplitsEvaluatieResultaat.GesplitsteToeleveringen.GetAt(i) + For j = 1:1:GesplitsteToelevering.Aantallen.Count() { - If (NieuweLijnenPerLijn.GetAt(j).Count() '< i) + If (GesplitsteToelevering.Aantallen.GetAt(j) > 0) { - Do AfTeSplitsenLijnen.Insert(NieuweLijnenPerLijn.GetAt(j).GetAt(i)) + Set $ZTRAP="SplitsFout" + Set NieuwUniekLijnNr = $$SplitsLijn^FLOWTOE6(ToeleveringNummer,UniekeLijnNummers.GetAt(j),GesplitsteToelevering.Aantallen.GetAt(j)) + Set $ZTRAP="" + Do AfTeSplitsenLijnen.Insert(NieuwUniekLijnNr) } } + Set $ZTRAP="SplitsFout" Set NieuweToeleveringNummer = $$SplitsToelevering^FLOWTOE6(ToeleveringNummer,AfTeSplitsenLijnen) Set $ZTRAP=""