Index: APPS/Halux/PPS/Activiteit/impl/WerklijstItemsUitvoerder.cls.xml =================================================================== diff -u -r72167 -r72240 --- APPS/Halux/PPS/Activiteit/impl/WerklijstItemsUitvoerder.cls.xml (.../WerklijstItemsUitvoerder.cls.xml) (revision 72167) +++ APPS/Halux/PPS/Activiteit/impl/WerklijstItemsUitvoerder.cls.xml (.../WerklijstItemsUitvoerder.cls.xml) (revision 72240) @@ -70,16 +70,41 @@ #dim LijstAantallen As %ListOfDataTypes = ##class(%ListOfDataTypes).%New("") #dim ObjectIsMat As %Boolean = $$$False - //Berekenen en schrijven van property TotaalAantalMattenInToelevering - Do ..ZetTotaalAantalMattenPerToelevering(UitvoeringLijstIterator) + //Berekenen en schrijven van property TotaalAantalMattenInToelevering + + #dim UitgebreideUitvoeringInfoLijst As APPS.Halux.PPS.dto.UitvoeringInfoLijst = ##class(%ListOfObjects).%New() + #dim HuidigeMat, VorigeMat As APPS.Halux.PPS.Activiteit.impl.common.dto.MattenUitvoeringInfo = "" + #dim AantalMattenVoorDezeToelevering As %Integer = 0 + + while UitvoeringLijstIterator.HasNext() { + #dim Object = UitvoeringLijstIterator.Next() + Set HuidigeMat = Object + + If ($IsObject(Object) && (Object.%ClassName(1)="APPS.Halux.PPS.Activiteit.impl.common.dto.MattenUitvoeringInfo")) { + If ((VorigeMat = "") || ($Piece(VorigeMat.ToeDos, ":",1) = $Piece(HuidigeMat.ToeDos, ":",1))) { + Set AantalMattenVoorDezeToelevering = AantalMattenVoorDezeToelevering + HuidigeMat.Aantal + } + + If ($$$Not(VorigeMat = "") && $$$Not($Piece(VorigeMat.ToeDos, ":",1) = $Piece(HuidigeMat.ToeDos, ":",1))) { + Set VorigeMat.TotaalAantalMattenInToelevering = AantalMattenVoorDezeToelevering + Set AantalMattenVoorDezeToelevering = HuidigeMat.Aantal + } + Set VorigeMat = HuidigeMat + } + } + + If $IsObject(VorigeMat) { + Set VorigeMat.TotaalAantalMattenInToelevering = AantalMattenVoorDezeToelevering + } + Set UitvoeringLijstIterator = ##class(TECH.ListIterator).%New(UitvoeringInfoLijst) Do ..GroepeerTiponSynchronisatiestangen(UitvoeringLijstIterator) Set UitvoeringLijstIterator = ##class(TECH.ListIterator).%New(UitvoeringInfoLijst) //Matten met zelfde dimensies groeperen while UitvoeringLijstIterator.HasNext() { - #dim Object = UitvoeringLijstIterator.Next() + Set Object = UitvoeringLijstIterator.Next() #dim OvereenkomstigeMatGevonden As %Boolean = $$$False #dim Batch As APPS.Halux.common.Batch = ##class(APPS.ApplicatieContext).Instance().GeefProductieAPI().GeefBatchService().GeefBatch(Object.BatchID) If ( $IsObject(Object) && (..IsProductiegroepKastOfPallet(Batch) || (..IsProductiegroepProbox(Batch))) && (Object.%ClassName(1)="APPS.Halux.PPS.Activiteit.impl.common.dto.MattenUitvoeringInfo")) { @@ -125,6 +150,7 @@ Set Mat = SamengesteldeLijstPerToelevering.GetAt(SamengesteldeLijstPerToelevering.Count()) Set Mat.TotaalAantalMattenInToelevering = TotaalAantalMattenInToelevering + hang 1 //Anders worden soms bestandsnamen met dezelfde naam gegenereerd Set UitvoeringResultaat = Verwerker.VerwerkUitvoeringInfoLijst(SamengesteldeLijstPerToelevering,ActiviteitParameters) Do SamengesteldeLijstIterator.Reset() }