Index: DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml =================================================================== diff -u -r29059 -r33065 --- DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml (.../VerwachteInvoerAPIimpl.cls.xml) (revision 29059) +++ DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml (.../VerwachteInvoerAPIimpl.cls.xml) (revision 33065) @@ -3,7 +3,7 @@ 1 -%RegisteredObject,DOM.ProdRes.VerwachteInvoerAPI +TECH.RegisteredObject,DOM.ProdRes.VerwachteInvoerAPI right @@ -16,7 +16,7 @@ VerwachteInvoerInfo:DOM.ProdRes.dto.VerwachteInvoerInfo DOM.ProdRes.VerwachteInvoer @@ -39,13 +39,15 @@ DOM.ProdRes.VerwachteInvoer @@ -57,7 +59,11 @@ DOM.ProdRes.VerwachteInvoer @@ -70,35 +76,35 @@ #dim VerwachteInvoer As DOM.ProdRes.VerwachteInvoer = ..GeefVerwachteInvoer(VerwachteInvoerID) #dim OperatieScope As TECH.OperatieScope = ##class(TECH.OperatieScope).StartMetTx() - try - { - Set BladInvoerReservatieIterator = ##class(BladReservatieIterator).%New(VerwachteInvoer.GeefReservatie()) - While (BladInvoerReservatieIterator.HasNext()) - { + + Try { + #dim BladInvoerReservatieIterator As TECH.Iterator = ##class(BladReservatieIterator).%New(VerwachteInvoer.GeefReservatie()) + + While (BladInvoerReservatieIterator.HasNext()) { #dim InvoerReservatie As DOM.ProdRes.InvoerReservatie = BladInvoerReservatieIterator.Next() #dim AantalTeLinkenInvoer As %Double = InvoerReservatie.GeefAantal() - InvoerReservatie.GeefAantalGelinkt() #dim ProductReservatieIterator As TECH.Iterator = VerwachteUitvoer.GeefProductReservatieIterator(InvoerReservatie.GeefProductID()) - While (AantalTeLinkenInvoer > 0 && ProductReservatieIterator.HasNext()) - { + + While (AantalTeLinkenInvoer > 0 && ProductReservatieIterator.HasNext()) { #dim UitvoerReservatie As DOM.ProdRes.UitvoerReservatie = ProductReservatieIterator.Next() #dim AantalTeLinkenReservatie As %Double = UitvoerReservatie.GeefAantal() - UitvoerReservatie.GeefAantalGelinkt() - If (AantalTeLinkenReservatie > AantalTeLinkenInvoer) - { + + If (AantalTeLinkenReservatie > AantalTeLinkenInvoer) { Set AantalTeLinkenReservatie = AantalTeLinkenInvoer } - If (AantalTeLinkenReservatie > 0) && (UitvoerReservatie.IsBlad()) - { + + If (AantalTeLinkenReservatie > 0) && (UitvoerReservatie.IsBlad()) { Do ..LinkReservaties(InvoerReservatie, UitvoerReservatie, AantalTeLinkenReservatie) Set AantalTeLinkenInvoer = AantalTeLinkenInvoer - AantalTeLinkenReservatie } } - } + } + Do OperatieScope.Gelukt() - } - Catch (e) - { + } Catch { Do OperatieScope.Gefaald() - Throw e + + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Rethrow() } ]]> @@ -107,10 +113,12 @@ InvoerReservatie:DOM.ProdRes.InvoerReservatie,UitvoerReservatie:DOM.ProdRes.UitvoerReservatie,Aantal:%Double 1 @@ -122,44 +130,46 @@ VerwachteUitvoerIDs:%ListOfDataTypes DOM.ProdRes.dto.SamenvoegVoorstellen 1) - { - Set SamenvoegVoorstel = ##class(DOM.ProdRes.dto.SamenvoegVoorstel).%New() + + If (VerwachteInvoerLijst.Count() > 1) { + #dim SamenvoegVoorstel As DOM.ProdRes.dto.SamenvoegVoorstel = ##class(DOM.ProdRes.dto.SamenvoegVoorstel).%New() Set SamenvoegVoorstel.Aantal = 0 Set SamenvoegVoorstel.ProductID = VerwachteInvoerLijstIterator.Key() Set VerwachteInvoerIterator = ##class(TECH.ListIterator).%New(VerwachteInvoerLijst) - While (VerwachteInvoerIterator.HasNext()) - { + + While (VerwachteInvoerIterator.HasNext()) { Set VerwachteInvoer = VerwachteInvoerIterator.Next() Do SamenvoegVoorstel.VerwachteInvoerIDs.Insert(VerwachteInvoer.%Id()) Set SamenvoegVoorstel.Aantal = SamenvoegVoorstel.Aantal + VerwachteInvoer.GeefReservatie().GeefAantal() } + Do SamenvoegVoorstellen.Insert(SamenvoegVoorstel) } } @@ -178,30 +188,31 @@ #dim VerwachteInvoer As DOM.ProdRes.VerwachteInvoer = ..GeefVerwachteInvoer(VerwachteInvoerID) #dim OperatieScope As TECH.OperatieScope = ##class(TECH.OperatieScope).StartMetTx() - try - { + + Try { #dim InvoerUitvoerLinkIterator As TECH.Iterator = VerwachteInvoer.GeefReservatie().GeefInvoerUitvoerLinkIterator() - While (InvoerUitvoerLinkIterator.HasNext()) - { + + While (InvoerUitvoerLinkIterator.HasNext()) { #dim InvoerUitvoerLink As DOM.ProdRes.InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next() #dim UitvoerReservatie As DOM.ProdRes.UitvoerReservatie = InvoerUitvoerLink.GeefUitvoerReservatie() #dim InvoerReservatie As DOM.ProdRes.InvoerReservatie = InvoerUitvoerLink.GeefInvoerReservatie() - If (UitvoerReservatie.GeefVerwachteUitvoer() = VerwachteUitvoer) - { + + If (UitvoerReservatie.GeefVerwachteUitvoer() = VerwachteUitvoer) { Do UitvoerReservatie.VerwijderInvoerUitvoerLink(InvoerUitvoerLink) Do InvoerReservatie.VerwijderInvoerUitvoerLink(InvoerUitvoerLink) + Do UitvoerReservatie.Save() Do InvoerReservatie.Save() + Do InvoerUitvoerLink.Delete() } } Do OperatieScope.Gelukt() - } - catch (e) - { + } Catch { Do OperatieScope.Gefaald() - Throw e + + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Rethrow() } ]]> @@ -212,22 +223,21 @@ AantalGelinkt)) - { + + While (InvoerUitvoerLinkIterator.HasNext() && (OrigineleInvoerReservatie.GeefAantal() > AantalGelinkt)) { Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next() Set AantalGelinkt = AantalGelinkt + InvoerUitvoerLink.GeefAantalProducten() } // Als er überhaupt een invoer-uitvoer-link was komen we in deze if - If ($IsObject(InvoerUitvoerLink)) - { + If ($IsObject(InvoerUitvoerLink)) { // Het object dat aanwezig is, is degene die er heeft voor gezorgd dat de while lus is gestopt. // Als het aantal gelinkt groter is dan moet het de invoer-uitvoer-link gesplitst worden. // Bij gelijke aantallen moeten we niks extra doen met dit object want dan voldoet de verwachte invoer net om de link te voldoen. - If (OrigineleInvoerReservatie.GeefAantal() < AantalGelinkt) - { + If (OrigineleInvoerReservatie.GeefAantal() < AantalGelinkt) { #dim AantalAfsplitsen As %Double = AantalGelinkt - OrigineleInvoerReservatie.GeefAantal() Do InvoerUitvoerLink.ZetAantalProducten(InvoerUitvoerLink.GeefAantalProducten()-AantalAfsplitsen) Set NieuweInvoerUitvoerLink = ##class(DOM.ProdRes.impl.InvoerUitvoerLinkImpl).%New(AantalAfsplitsen) @@ -260,9 +268,9 @@ Do UitvoerReservatie.RegistreerInvoerUitvoerLink(NieuweInvoerUitvoerLink) Do UitvoerReservatie.Save() } + // Alle resterende invoer-uitvoer-linken moeten verplaatst worden naar de nieuwe verwachte invoer - While (InvoerUitvoerLinkIterator.HasNext()) - { + While (InvoerUitvoerLinkIterator.HasNext()) { Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next() Do OrigineleInvoerReservatie.VerwijderInvoerUitvoerLink(InvoerUitvoerLink) Do NieuweVerwachteInvoer.GeefReservatie().RegistreerInvoerUitvoerLink(InvoerUitvoerLink) @@ -274,11 +282,9 @@ Do NieuweVerwachteInvoer.Save() Do OperatieScope.Gelukt() - } - Catch (e) - { + } Catch { Do OperatieScope.Gefaald() - Throw e + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Rethrow() } Quit NieuweVerwachteInvoer @@ -288,10 +294,13 @@ InvoerReservatie1:DOM.ProdRes.InvoerReservatie,InvoerReservatie2:DOM.ProdRes.InvoerReservatie @@ -304,54 +313,51 @@ VerwachteInvoerIDs:%ListOfDataTypes,DueIn:%TimeStamp,TransactieReferentie:%String,TransactieLijnReferentie:%String DOM.ProdRes.VerwachteInvoer reservatie) hetzelfde zijn. Deze kunnen we ook samenvoegen. Set InvoerUitvoerLinkPerReservatie = ##class(%ArrayOfObjects).%New() Set InvoerUitvoerLinkIterator = SamengevoegdeInvoerReservatie.GeefInvoerUitvoerLinkIterator() - While (InvoerUitvoerLinkIterator.HasNext()) - { + + While (InvoerUitvoerLinkIterator.HasNext()) { Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next() #dim UitvoerReservatie As DOM.ProdRes.UitvoerReservatie = InvoerUitvoerLink.GeefUitvoerReservatie() #dim UitvoerReservatieID As %String = UitvoerReservatie.%Id() - If ('InvoerUitvoerLinkPerReservatie.IsDefined(UitvoerReservatieID)) - { + + If $$$Not(InvoerUitvoerLinkPerReservatie.IsDefined(UitvoerReservatieID)) { Do InvoerUitvoerLinkPerReservatie.SetAt(InvoerUitvoerLink, UitvoerReservatieID) - } - Else - { + } Else { #dim BestaandeInvoerUitvoerLink As DOM.ProdRes.InvoerUitvoerLink = InvoerUitvoerLinkPerReservatie.GetAt(UitvoerReservatieID) Do BestaandeInvoerUitvoerLink.ZetAantalProducten(BestaandeInvoerUitvoerLink.GeefAantalProducten() + InvoerUitvoerLink.GeefAantalProducten()) Do UitvoerReservatie.VerwijderInvoerUitvoerLink(InvoerUitvoerLink) @@ -363,11 +369,9 @@ Do SamengevoegdeVerwachteInvoer.Save() Do OperatieScope.Gelukt() - } - Catch (e) - { + } Catch { Do OperatieScope.Gefaald() - Throw e + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Rethrow() } } @@ -380,31 +384,32 @@ %Double '"_##class(DOM.ProdRes.enu.VerwachteInvoerStatus).Ingeboekt()_"')" _" GROUP BY ProductID") Do ResultSet.Execute(ProductID, Bedrijf, MaxDueIn) - If (ResultSet.Next()) - { + + If (ResultSet.Next()) { Set AantalVerwacht = ResultSet.Data("Aantal") } + Do ResultSet.Close() - If ('InclusiefGelinkte) - { + If $$$Not(InclusiefGelinkte) { Set ResultSet = ##class(%ResultSet).%New() Do ResultSet.Prepare("SELECT COALESCE(sum(AantalProducten),0) As AantalGelinkt FROM DOM_ProdRes_impl.InvoerReservatieImpl I" _" LEFT JOIN DOM_ProdRes_impl.InvoerReservatieImpl_InvoerUitvoerLinken L ON L.InvoerReservatieImpl = I.ID" _" LEFT JOIN DOM_ProdRes_impl.InvoerUitvoerLinkImpl IL ON IL.ID = L.element_key" - _" WHERE ProductID = ? AND I.Bedrijf = ? AND (DueIn is null OR DueIn < ?) AND IL.Status <> '"_##class(DOM.ProdRes.enu.InvoerUitvoerLinkStatus).Voldaan()_"'" + _" WHERE ProductID = ? AND I.Bedrijf = ? AND (DueIn is null OR DueIn < ?) AND IL.Status <> '" _ ##class(DOM.ProdRes.enu.InvoerUitvoerLinkStatus).Voldaan() _ "'" _" GROUP BY ProductID") Do ResultSet.Execute(ProductID, Bedrijf, MaxDueIn) - If (ResultSet.Next()) - { + + If (ResultSet.Next()) { Set AantalVerwacht = AantalVerwacht - ResultSet.Data("AantalGelinkt") } + Do ResultSet.Close() }