Index: DOM/ProdRes/impl/ProductReservatieIterator.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/ProductReservatieIterator.cls.xml (revision 0) +++ DOM/ProdRes/impl/ProductReservatieIterator.cls.xml (revision 2161) @@ -0,0 +1,79 @@ + + + +1 +%RegisteredObject,TECH.Iterator +0 + + +DOM.ProdRes.Reservatie +list +1 + + + +DOM.ProdRes.Reservatie +1 + + + +%String +1 + + + +Reservatie:DOM.ProdRes.Reservatie,ProductID:%String +1 +1 +%Status + + + + + +Returns true if the iteration has more elements. +%Boolean + + + + +%CacheString + + + + +1 + 0) + { + Set Reservatie = ..TeVerwerken.GetAt(..TeVerwerken.Count()) + Do ..TeVerwerken.RemoveAt(..TeVerwerken.Count()) + Set KindReservatieIterator = Reservatie.GeefKindReservatieIterator() + While (KindReservatieIterator.HasNext()) + { + Do ..TeVerwerken.Insert(KindReservatieIterator.Next()) + } + If (Reservatie.GeefProductID() = ..ProductID) + { + Set ..Volgende = Reservatie + } + Else + { + Do ..BepaalVolgende() + } + } +]]> + + + Index: vhUnitTest/DOM/ProdRes/TestVerwachteUitvoerAPI.cls.xml =================================================================== diff -u -r2135 -r2161 --- vhUnitTest/DOM/ProdRes/TestVerwachteUitvoerAPI.cls.xml (.../TestVerwachteUitvoerAPI.cls.xml) (revision 2135) +++ vhUnitTest/DOM/ProdRes/TestVerwachteUitvoerAPI.cls.xml (.../TestVerwachteUitvoerAPI.cls.xml) (revision 2161) @@ -16,10 +16,10 @@ - + + + + + %Status TECH.Iterator + +1 +%Float + + %Library.CacheStorage ^DOM.ProdRes.ReservatieD Index: DOM/ProdRes/dto/SamenvoegVoorstellen.cls.xml =================================================================== diff -u --- DOM/ProdRes/dto/SamenvoegVoorstellen.cls.xml (revision 0) +++ DOM/ProdRes/dto/SamenvoegVoorstellen.cls.xml (revision 2161) @@ -0,0 +1,17 @@ + + + +serial +1 +%ListOfObjects +0 + + +DOM.ProdRes.dto.SamenvoegVoorstel + + + +%Library.CompleteCustomStorage + + + Index: vhUnitTest/DOM/ProdRes/TestVerwachteInvoerAPI.cls.xml =================================================================== diff -u --- vhUnitTest/DOM/ProdRes/TestVerwachteInvoerAPI.cls.xml (revision 0) +++ vhUnitTest/DOM/ProdRes/TestVerwachteInvoerAPI.cls.xml (revision 2161) @@ -0,0 +1,235 @@ + + + + +Do ##class(vhUnitTest.Manager).RunTest("/debug/display=all","DOM.ProdRes.TestVerwachteInvoerAPI") +1 +vhUnitTest.TestCase +0 + + + + + + + + + + +0,"De due in is ingesteld") + Do $$$AssertEquals(VerwachteInvoer.GeefProductID(),"Product1","De product id") + Do $$$AssertEquals(VerwachteInvoer.GeefTransactieReferentie(),"UT Transactieref","De transactiereferentie") + Do VerwachteInvoer.ZetTransactieReferentie("UT Transactieref gewijzigd") + Do $$$AssertEquals(VerwachteInvoer.GeefTransactieReferentie(),"UT Transactieref gewijzigd","De transactiereferentie gewijzigd") + Do $$$AssertEquals(VerwachteInvoer.GeefTransactieLijnReferentie(),"UT Transactielijnref","De transactielijnreferentie") + Do VerwachteInvoer.ZetTransactieLijnReferentie("UT Transactielijnref gewijzigd") + Do $$$AssertEquals(VerwachteInvoer.GeefTransactieLijnReferentie(),"UT Transactielijnref gewijzigd","De transactielijnreferentie gewijzigd") + + Do VerwachteInvoer.%DeleteId(VerwachteInvoer.%Id()) +]]> + + + + + + + + | P1 210 | + // | P1 170 | ---170---> | | + // | | +------------+ + // | | +------------+ + // | P2 30 | ----15---> | P2 15 | + // +------------+ +------------+ + // \ +------------+ + // \--15---> | P2 18 | + // +------------+ + + // Opbouw uitvoer objecten + + Set VerwachteUitvoerAPI = ##class(DOM.DomeinContext).Instance().GeefVerwachteUitvoerAPI() + + Set ReservatieVoorVerwachteUitvoer = ##class(DOM.ProdRes.dto.ReservatieVoorVerwachteUitvoer).%New() + Set ReservatieVoorVerwachteUitvoer.TransactieReferentie = "UT uitvoer1" + Set ReservatieVoorVerwachteUitvoer.TransactieLijnReferentie = "UT uitvoer1 lijn1" + Set ReservatieVoorVerwachteUitvoer.Bedrijf = ##class(DOM.common.enu.Bedrijf).VanHoecke() + Set ReservatieMoeder = ##class(DOM.ProdRes.dto.Reservatie).%New() + Set ReservatieVoorVerwachteUitvoer.Reservatie = ReservatieMoeder + Set ReservatieMoeder.ProductID = "MoederProduct" + Set ReservatieMoeder.Aantal = 1 // Aantal maakt hier niet uit + Set Reservatie1 = ##class(DOM.ProdRes.dto.Reservatie).%New() + Set Reservatie1.ProductID = "P1" + Set Reservatie1.Aantal = 50 + Do ReservatieMoeder.Reservaties.Insert(Reservatie1) + Set Reservatie2 = ##class(DOM.ProdRes.dto.Reservatie).%New() + Set Reservatie2.ProductID = "P1" + Set Reservatie2.Aantal = 170 + Do ReservatieMoeder.Reservaties.Insert(Reservatie2) + Set Reservatie3 = ##class(DOM.ProdRes.dto.Reservatie).%New() + Set Reservatie3.ProductID = "P2" + Set Reservatie3.Aantal = 30 + Do ReservatieMoeder.Reservaties.Insert(Reservatie3) + Set VerwachteUitvoer = VerwachteUitvoerAPI.RegistreerReservaties(ReservatieVoorVerwachteUitvoer) + + // Opbouw invoer objecten + + Set VerwachteInvoerAPI = ##class(DOM.DomeinContext).Instance().GeefVerwachteInvoerAPI() + + Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New() + Set VerwachteInvoerInfo.Aantal = 210 + Set VerwachteInvoerInfo.ProductID = "P1" + Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer1" + Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer1 lijn1" + Set VerwachteInvoer1 = VerwachteInvoerAPI.RegistreerVerwachteInvoer(VerwachteInvoerInfo) + + Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New() + Set VerwachteInvoerInfo.Aantal = 15 + Set VerwachteInvoerInfo.ProductID = "P2" + Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer2" + Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer2 lijn1" + Set VerwachteInvoer2 = VerwachteInvoerAPI.RegistreerVerwachteInvoer(VerwachteInvoerInfo) + + Set VerwachteInvoerInfo = ##class(DOM.ProdRes.dto.VerwachteInvoerInfo).%New() + Set VerwachteInvoerInfo.Aantal = 18 + Set VerwachteInvoerInfo.ProductID = "P2" + Set VerwachteInvoerInfo.TransactieReferentie = "UT invoer3" + Set VerwachteInvoerInfo.TransactieLijnReferentie = "UT invoer3 lijn1" + Set VerwachteInvoer3 = VerwachteInvoerAPI.RegistreerVerwachteInvoer(VerwachteInvoerInfo) + + // Registreren van invoer/uitvoer links + + Do VerwachteInvoerAPI.RegistreerInvoerUitvoerLinken(VerwachteInvoer1.%Id(),VerwachteUitvoer.%Id()) + + Do $$$AssertEquals(VerwachteInvoer1.GeefAantalGelinkt(),210,"Er zijn 210 producten gelinkt") + + Set ReservatieIterator = VerwachteUitvoer.GeefReservatie().GeefKindReservatieIterator() + Set Reservatie1 = ReservatieIterator.Next() + Set Reservatie2 = ReservatieIterator.Next() + Set Reservatie3 = ReservatieIterator.Next() + + Do $$$AssertEquals(Reservatie1.GeefAantalGelinkt(),40,"40 van de 50 producten zijn gelinkt") + Do $$$AssertEquals(Reservatie2.GeefAantalGelinkt(),170,"Alle producten zijn gelinkt") + Do $$$AssertEquals(Reservatie3.GeefAantalGelinkt(),0,"Er zijn nog geen producten gelinkt") + Do $$$AssertEquals(VerwachteInvoer1.GeefAantalGelinkt(),210,"Alle producten zijn gelinkt") + + Do VerwachteInvoerAPI.RegistreerInvoerUitvoerLinken(VerwachteInvoer2.%Id(),VerwachteUitvoer.%Id()) + + Do $$$AssertEquals(Reservatie1.GeefAantalGelinkt(),40,"40 van de 50 producten zijn gelinkt") + Do $$$AssertEquals(Reservatie2.GeefAantalGelinkt(),170,"Alle producten zijn gelinkt") + Do $$$AssertEquals(Reservatie3.GeefAantalGelinkt(),15,"Er zijn 15 producten gelinkt") + Do $$$AssertEquals(VerwachteInvoer2.GeefAantalGelinkt(),15,"Alle producten zijn gelinkt") + + Do VerwachteInvoerAPI.RegistreerInvoerUitvoerLinken(VerwachteInvoer3.%Id(),VerwachteUitvoer.%Id()) + + Do $$$AssertEquals(Reservatie1.GeefAantalGelinkt(),40,"40 van de 50 producten zijn gelinkt") + Do $$$AssertEquals(Reservatie2.GeefAantalGelinkt(),170,"Alle producten zijn gelinkt") + Do $$$AssertEquals(Reservatie3.GeefAantalGelinkt(),30,"Alle producten zijn gelinkt") + Do $$$AssertEquals(VerwachteInvoer3.GeefAantalGelinkt(),15,"15 van de 18 producten zijn gelinkt") + + // Verwachte invoer iterator controleren + + Set VerwachteInvoerIterator = VerwachteUitvoer.GeefVerwachteInvoerIterator() + Do $$$AssertTrue(VerwachteInvoerIterator.HasNext(),"Element 1 is aanwezig") + Do VerwachteInvoerIterator.Next() + Do $$$AssertTrue(VerwachteInvoerIterator.HasNext(),"Element 2 is aanwezig") + Do VerwachteInvoerIterator.Next() + Do $$$AssertTrue(VerwachteInvoerIterator.HasNext(),"Element 3 is aanwezig") + Do VerwachteInvoerIterator.Next() + Do $$$AssertFalse(VerwachteInvoerIterator.HasNext(),"Er is geen 4de element aanwezig") + + // Samenvoegvoorstel nagaan + + Set VerwachteUitvoerIDs = ##class(%ListOfDataTypes).%New() + Do VerwachteUitvoerIDs.Insert(VerwachteUitvoer.%Id()) + Set SamenvoegVoorstellen = VerwachteInvoerAPI.GeefSamenvoegVoorstellen(VerwachteUitvoerIDs) + Do $$$AssertEquals(SamenvoegVoorstellen.Count(),1,"Er is 1 samenvoeg voorstel") + Set SamenvoegVoorstel = SamenvoegVoorstellen.GetAt(1) + Do $$$AssertEquals(SamenvoegVoorstel.Aantal,15+18,"33 producten kunnen samengevoegd worden") + Do $$$AssertEquals(SamenvoegVoorstel.ProductID,"P2","P2 kan worden samengevoegd") + + // Opkuis data + + Do VerwachteUitvoer.%DeleteId(VerwachteUitvoer.%Id()) + Do VerwachteInvoer1.%DeleteId(VerwachteInvoer1.%Id()) + Do VerwachteInvoer2.%DeleteId(VerwachteInvoer2.%Id()) + Do VerwachteInvoer3.%DeleteId(VerwachteInvoer3.%Id()) +]]> + + + +1 + + + + +%Status + + + + Index: DOM/ProdRes/impl/VerwachteUitvoerImpl.cls.xml =================================================================== diff -u -r2135 -r2161 --- DOM/ProdRes/impl/VerwachteUitvoerImpl.cls.xml (.../VerwachteUitvoerImpl.cls.xml) (revision 2135) +++ DOM/ProdRes/impl/VerwachteUitvoerImpl.cls.xml (.../VerwachteUitvoerImpl.cls.xml) (revision 2161) @@ -107,6 +107,33 @@ ]]> + +TECH.Iterator + + + + + +Geeft een iterator terug die reservaties teruggeeft voor het opgegeven product id (incl alle subniveaus) +ProductID:%String +TECH.Iterator + + + 1 oid:%ObjectIdentity Index: DOM/ProdRes/impl/TrueReservatieEvaluator.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/TrueReservatieEvaluator.cls.xml (revision 0) +++ DOM/ProdRes/impl/TrueReservatieEvaluator.cls.xml (revision 2161) @@ -0,0 +1,15 @@ + + + +1 +%RegisteredObject,DOM.ProdRes.impl.IReservatieIteratorEvaluator +0 + + +Reservatie:DOM.ProdRes.Reservatie +%Boolean + + + + Index: DOM/ProdRes/InvoerUitvoerLink.cls.xml =================================================================== diff -u --- DOM/ProdRes/InvoerUitvoerLink.cls.xml (revision 0) +++ DOM/ProdRes/InvoerUitvoerLink.cls.xml (revision 2161) @@ -0,0 +1,45 @@ + + + +persistent +1 +%Persistent +0 + + +1 +%Float + + + +1 +AantalProducten:%Float + + + +1 +DOM.ProdRes.VerwachteInvoer + + + +1 +DOM.ProdRes.Reservatie + + + +%Library.CacheStorage +^DOM.ProdRes.InvoerUitvoerLinkD +InvoerUitvoerLinkDefaultData +^DOM.ProdRes.InvoerUitvoerLinkD +^DOM.ProdRes.InvoerUitvoerLinkI +^DOM.ProdRes.InvoerUitvoerLinkS + +listnode + + +%%CLASSNAME + + + + + Index: DOM/ProdRes/VerwachteInvoerAPI.cls.xml =================================================================== diff -u -r2048 -r2161 --- DOM/ProdRes/VerwachteInvoerAPI.cls.xml (.../VerwachteInvoerAPI.cls.xml) (revision 2048) +++ DOM/ProdRes/VerwachteInvoerAPI.cls.xml (.../VerwachteInvoerAPI.cls.xml) (revision 2161) @@ -1,9 +1,54 @@ - - 1 1 +0 + + +1 +VerwachteInvoerID:%String + + + + +Voert ook de save uit van de verwachte invoer +1 +VerwachteInvoerInfo:DOM.ProdRes.dto.VerwachteInvoerInfo +DOM.ProdRes.VerwachteInvoer + + + + +Gaat zelf na of een ID bestaat en gooit een exceptie indien dit niet het geval is +1 +VerwachteInvoerID:%String + + + +1 +VerwachteInvoerID:%String + + + +1 +TransactieReferentie:%String,TransactieLijnReferentie:%String,Bedrijf:DOM.common.enu.Bedrijf +DOM.ProdRes.VerwachteInvoer + + + + +Registreert de nodige invoer-uitvoer-links en doet ook de nodige saves. +1 +VerwachteInvoerID:%String,VerwachteUitvoerID:%String + + + + +Geeft aan voor welke producten bepaalde verwachte invoeren kunnen samengevoegd worden. +1 +VerwachteUitvoerIDs:%ListOfDataTypes +DOM.ProdRes.dto.SamenvoegVoorstellen + Index: CSC Reservaties.prj.xml =================================================================== diff -u -r2138 -r2161 --- CSC Reservaties.prj.xml (.../CSC Reservaties.prj.xml) (revision 2138) +++ CSC Reservaties.prj.xml (.../CSC Reservaties.prj.xml) (revision 2161) @@ -1,8 +1,9 @@ - + + @@ -14,13 +15,26 @@ + + + + + + + + + + + + + Index: DOM/ProdRes/impl/InvoerUitvoerLinkImpl.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/InvoerUitvoerLinkImpl.cls.xml (revision 0) +++ DOM/ProdRes/impl/InvoerUitvoerLinkImpl.cls.xml (revision 2161) @@ -0,0 +1,79 @@ + + + +persistent +1 +DOM.ProdRes.InvoerUitvoerLink +0 + + +%Integer +1 + + + +AantalProducten:%Integer +1 +1 +%Status + + + + +%Float + + + + +AantalProducten:%Float + + + + +DOM.ProdRes.VerwachteInvoer + + + + +DOM.ProdRes.Reservatie + + + + +%Library.CacheStorage +InvoerUitvoerLinkImplDefaultData + +listnode +"InvoerUitvoerLinkImpl" + +AantalProducten + + + + + Index: DOM/ProdRes/VerwachteUitvoer.cls.xml =================================================================== diff -u -r2049 -r2161 --- DOM/ProdRes/VerwachteUitvoer.cls.xml (.../VerwachteUitvoer.cls.xml) (revision 2049) +++ DOM/ProdRes/VerwachteUitvoer.cls.xml (.../VerwachteUitvoer.cls.xml) (revision 2161) @@ -31,16 +31,24 @@ DOM.common.enu.Bedrijf - + 1 -DOM.ProdRes.VerwachteInvoer +TECH.Iterator 1 DOM.ProdRes.Reservatie + + +Geeft een iterator terug die reservaties teruggeeft voor het opgegeven product id (incl alle kindreservaties) +1 +ProductID:%String +TECH.Iterator + + %Library.CacheStorage ^DOM.ProdRes.VerwachteUitvoerD Index: DOM/DomeinContext.cls.xml =================================================================== diff -u -r2048 -r2161 --- DOM/DomeinContext.cls.xml (.../DomeinContext.cls.xml) (revision 2048) +++ DOM/DomeinContext.cls.xml (.../DomeinContext.cls.xml) (revision 2161) @@ -55,6 +55,11 @@ 1 + +TECH.Stack +1 + + DOM.OV.OrderAPI 1 @@ -100,6 +105,11 @@ 1 + +DOM.ProdRes.VerwachteInvoerAPI +1 + + 1 DOM.DomeinContext @@ -125,6 +135,7 @@ Set ..VKPPrijsUitzAPINamen = ##class(TECH.Stack).%New() Set ..IngegevenKenmerkenAPINamen = ##class(TECH.Stack).%New() Set ..VerwachteUitvoerAPINamen = ##class(TECH.Stack).%New() + Set ..VerwachteInvoerAPINamen = ##class(TECH.Stack).%New() // Initialize the stacks Do ..Reset() Quit $$$OK @@ -239,6 +250,18 @@ ]]> + +DOM.ProdRes.VerwachteInvoerAPI + + + @@ -319,6 +343,14 @@ ]]> + +%String + + + Naam:%String + + +Naam:%String + + Index: DOM/ProdRes/impl/ReservatieImpl.cls.xml =================================================================== diff -u -r2145 -r2161 --- DOM/ProdRes/impl/ReservatieImpl.cls.xml (.../ReservatieImpl.cls.xml) (revision 2145) +++ DOM/ProdRes/impl/ReservatieImpl.cls.xml (.../ReservatieImpl.cls.xml) (revision 2161) @@ -3,7 +3,7 @@ persistent 1 -DOM.ProdRes.Reservatie +DOM.ProdRes.Reservatie,DOM.ProdRes.impl.InvoerUitvoerGekoppeld 0 @@ -177,6 +177,21 @@ Set Reservatie = ReservatieIterator.Next() Set Status = Reservatie.%DeleteId(Reservatie.%Id()) } + Set InvoerUitvoerLinkIterator = Object.GeefInvoerUitvoerLinkIterator() + While ($$$ISOK(Status) && InvoerUitvoerLinkIterator.HasNext()) + { + Set InvoerUitvoerLink = InvoerUitvoerLinkIterator.Next() + Set VerwachteInvoer = InvoerUitvoerLink.GeefVerwachteInvoer() + If ($IsObject(VerwachteInvoer)) + { + Do VerwachteInvoer.VerwijderInvoerUitvoerLink(InvoerUitvoerLink) + Set Status = VerwachteInvoer.%Save() + } + If ($$$ISOK(Status)) + { + Set Status = InvoerUitvoerLink.%DeleteId(InvoerUitvoerLink.%Id()) + } + } } Quit Status ]]> @@ -185,8 +200,12 @@ %Library.CacheStorage ReservatieImplDefaultData + +InvoerUitvoerLinken +subnode +"InvoerUitvoerLinken" + -listnode "ReservatieImpl" Aantal Index: DOM/ProdRes/impl/ReservatieIterator.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/ReservatieIterator.cls.xml (revision 0) +++ DOM/ProdRes/impl/ReservatieIterator.cls.xml (revision 2161) @@ -0,0 +1,79 @@ + + + +1 +%RegisteredObject,TECH.Iterator +0 + + +DOM.ProdRes.Reservatie +list +1 + + + +DOM.ProdRes.Reservatie +1 + + + +DOM.ProdRes.impl.IReservatieIteratorEvaluator +1 + + + +Reservatie:DOM.ProdRes.Reservatie,ReservatieIteratorEvaluator:DOM.ProdRes.impl.IReservatieIteratorEvaluator +1 +1 +%Status + + + + + +Returns true if the iteration has more elements. +%Boolean + + + + +%CacheString + + + + +1 + 0) + { + Set Reservatie = ..TeVerwerken.GetAt(..TeVerwerken.Count()) + Do ..TeVerwerken.RemoveAt(..TeVerwerken.Count()) + Set KindReservatieIterator = Reservatie.GeefKindReservatieIterator() + While (KindReservatieIterator.HasNext()) + { + Do ..TeVerwerken.Insert(KindReservatieIterator.Next()) + } + If (..ReservatieIteratorEvaluator.IsGeldigeReservatie(Reservatie)) + { + Set ..Volgende = Reservatie + } + Else + { + Do ..BepaalVolgende() + } + } +]]> + + + Index: DOM/ProdRes/impl/IReservatieIteratorEvaluator.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/IReservatieIteratorEvaluator.cls.xml (revision 0) +++ DOM/ProdRes/impl/IReservatieIteratorEvaluator.cls.xml (revision 2161) @@ -0,0 +1,13 @@ + + + +1 +1 +0 + + +Reservatie:DOM.ProdRes.Reservatie +%Boolean + + + Index: DOM/ProdRes/dto/VerwachteInvoerInfo.cls.xml =================================================================== diff -u --- DOM/ProdRes/dto/VerwachteInvoerInfo.cls.xml (revision 0) +++ DOM/ProdRes/dto/VerwachteInvoerInfo.cls.xml (revision 2161) @@ -0,0 +1,32 @@ + + + +1 +%RegisteredObject,%XML.Adaptor +0 + + +%Float + + + +DOM.common.enu.Bedrijf + + + +%TimeStamp + + + +%String + + + +%String + + + +%String + + + Index: DOM/ProdRes/VerwachteInvoer.cls.xml =================================================================== diff -u -r2048 -r2161 --- DOM/ProdRes/VerwachteInvoer.cls.xml (.../VerwachteInvoer.cls.xml) (revision 2048) +++ DOM/ProdRes/VerwachteInvoer.cls.xml (.../VerwachteInvoer.cls.xml) (revision 2161) @@ -6,11 +6,56 @@ %Persistent 0 - + 1 -DOM.ProdRes.VerwachteUitvoer +%Float + +1 +Aantal:%Float + + + +1 +DOM.common.enu.Bedrijf + + + +1 +%TimeStamp + + + +1 +%String + + + +1 +%String + + + +1 +TransactieReferentie:%String + + + +1 +%String + + + +1 +TransactieLijnReferentie:%String + + + +1 +%Float + + %Library.CacheStorage ^DOM.ProdRes.VerwachteInvoerD Index: DOM/ProdRes/impl/ProductReservatieEvaluator.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/ProductReservatieEvaluator.cls.xml (revision 0) +++ DOM/ProdRes/impl/ProductReservatieEvaluator.cls.xml (revision 2161) @@ -0,0 +1,31 @@ + + + +1 +%RegisteredObject,DOM.ProdRes.impl.IReservatieIteratorEvaluator +0 + + +%String +1 + + + +ProductID:%String +1 +1 +%Status + + + + +Reservatie:DOM.ProdRes.Reservatie +%Boolean + + + + Index: DOM/ProdRes/impl/VerwachteInvoerImpl.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/VerwachteInvoerImpl.cls.xml (revision 0) +++ DOM/ProdRes/impl/VerwachteInvoerImpl.cls.xml (revision 2161) @@ -0,0 +1,176 @@ + + + +persistent +1 +DOM.ProdRes.VerwachteInvoer,DOM.ProdRes.impl.InvoerUitvoerGekoppeld +0 + + +%Float +1 + + + +DOM.common.enu.Bedrijf +1 + + + +%TimeStamp +1 + + + +%String +1 + + + +%String +1 + + + +%String +1 + + + +Bedrijf,TransactieReferentie,TransactieLijnReferentie +1 + + + +Aantal:%Float,Bedrijf:DOM.common.enu.Bedrijf,DueIn:%TimeStamp,ProductID:%String,TransactieReferentie:%String="",TransactieLijnReferentie:%String="" +1 +1 +%Status + + + + +%Float + + + + +Aantal:%Float + + + + +DOM.common.enu.Bedrijf + + + + +%TimeStamp + + + + +%String + + + + +%String + + + + +TransactieReferentie:%String + + + + +%String + + + + +TransactieLijnReferentie:%String + + + + +1 +oid:%ObjectIdentity +1 +%Status + + + + +%Library.CacheStorage +VerwachteInvoerImplDefaultData + +InvoerUitvoerLinken +subnode +"InvoerUitvoerLinken" + + +"VerwachteInvoerImpl" + +Aantal + + +Bedrijf + + +DueIn + + +ProductID + + +TransactieReferentie + + +TransactieLijnReferentie + + + + + Index: DOM/ProdRes/impl/VerwachteUitvoerAPIimpl.cls.xml =================================================================== diff -u -r2145 -r2161 --- DOM/ProdRes/impl/VerwachteUitvoerAPIimpl.cls.xml (.../VerwachteUitvoerAPIimpl.cls.xml) (revision 2145) +++ DOM/ProdRes/impl/VerwachteUitvoerAPIimpl.cls.xml (.../VerwachteUitvoerAPIimpl.cls.xml) (revision 2161) @@ -27,7 +27,7 @@ Set Status = VerwachteUitvoer.%Save() If ($$$ISERR(Status)) { - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de reservaties niet opslaan voor transactiereferentie '"_ReservatieVoorVerwachteUitvoer.TransactieReferentie_"' en transactielijnreferentie '"_ReservatieVoorVerwachteInvoer.TransactieLijnReferentie_"'",Status)) + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de reservaties niet opslaan voor transactiereferentie '"_ReservatieVoorVerwachteUitvoer.TransactieReferentie_"' en transactielijnreferentie '"_ReservatieVoorVerwachteUitvoer.TransactieLijnReferentie_"'",Status)) } Quit VerwachteUitvoer @@ -73,7 +73,7 @@ Set Status = ##class(DOM.ProdRes.VerwachteUitvoer).%DeleteId(VerwachteUitvoerID) If ($$$ISERR(Status)) { - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.StatusException).%New("Kon verwachte uitvoer "_VerwachteUitvoerID_" niet verwijderen",Status)) + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.StatusException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),"Kon verwachte uitvoer "_VerwachteUitvoerID_" niet verwijderen",Status)) } ]]> @@ -84,7 +84,7 @@ Set Status = ##class(DOM.ProdRes.VerwachteUitvoer).%DeleteId(VerwachteUitvoerID) If ($$$ISERR(Status)) { - Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.StatusException).%New("Kon verwachte uitvoer "_VerwachteUitvoerID_" niet verwijderen",Status)) + Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.StatusException).%New(##class(TECH.enu.ExceptionCode).GeneralError(),"Kon verwachte uitvoer "_VerwachteUitvoerID_" niet verwijderen",Status)) } ]]> Index: DOM/ProdRes/dto/SamenvoegVoorstel.cls.xml =================================================================== diff -u --- DOM/ProdRes/dto/SamenvoegVoorstel.cls.xml (revision 0) +++ DOM/ProdRes/dto/SamenvoegVoorstel.cls.xml (revision 2161) @@ -0,0 +1,21 @@ + + + +1 +%RegisteredObject,%XML.Adaptor +0 + + +%Float + + + +%String + + + +%String +list + + + Index: DOM/ProdRes/impl/InvoerUitvoerGekoppeld.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/InvoerUitvoerGekoppeld.cls.xml (revision 0) +++ DOM/ProdRes/impl/InvoerUitvoerGekoppeld.cls.xml (revision 2161) @@ -0,0 +1,48 @@ + + + +1 +1 +0 + + +DOM.ProdRes.InvoerUitvoerLink +array +1 + + + + +Een invoeruitvoerlink kan pas geregistreerd worden indien deze vooraf werd opgeslagen +InvoerUitvoerLink:DOM.ProdRes.InvoerUitvoerLink + + + + +InvoerUitvoerLink:DOM.ProdRes.InvoerUitvoerLink + + + + +%Float + + + + +TECH.ListIterator + + + + Index: DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml =================================================================== diff -u --- DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml (revision 0) +++ DOM/ProdRes/impl/VerwachteInvoerAPIimpl.cls.xml (revision 2161) @@ -0,0 +1,172 @@ + + + +1 +%RegisteredObject,DOM.ProdRes.VerwachteInvoerAPI +0 + + +VerwachteInvoerID:%String + + + + +VerwachteInvoerInfo:DOM.ProdRes.dto.VerwachteInvoerInfo +DOM.ProdRes.VerwachteInvoer + + + + +VerwachteInvoerID:%String + + + + +VerwachteInvoerID:%String + + + + +TransactieReferentie:%String,TransactieLijnReferentie:%String,Bedrijf:DOM.common.enu.Bedrijf +DOM.ProdRes.VerwachteInvoer + + + + +VerwachteInvoerID:%String,VerwachteUitvoerID:%String + 0 && ProductReservatieIterator.HasNext()) + { + Set Reservatie = ProductReservatieIterator.Next() + Set AantalTeLinkenReservatie = Reservatie.GeefAantal() - Reservatie.GeefAantalGelinkt() + If (AantalTeLinkenReservatie > AantalTeLinkenInvoer) + { + Set AantalTeLinkenReservatie = AantalTeLinkenInvoer + } + If (AantalTeLinkenReservatie > 0) + { + Set InvoerUitvoerLink = ##class(DOM.ProdRes.impl.InvoerUitvoerLinkImpl).%New(AantalTeLinkenReservatie) + Set Status = InvoerUitvoerLink.%Save() + If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de invoeruitvoerlink niet opslaan",Status)) } + Do VerwachteInvoer.RegistreerInvoerUitvoerLink(InvoerUitvoerLink) + Do Reservatie.RegistreerInvoerUitvoerLink(InvoerUitvoerLink) + Set AantalTeLinkenInvoer = AantalTeLinkenInvoer - AantalTeLinkenReservatie + Set Status = VerwachteInvoer.%Save() + If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de verwachte invoer niet opslaan",Status)) } + Set Status = Reservatie.%Save() + If ($$$ISERR(Status)) { Do ##class(TECH.ExceptionHandler).Throw(##class(TECH.Exceptions.SaveFailedException).%New("Kon de reservatie niet opslaan",Status)) } + } + } + Do OperatieScope.Gelukt() + Quit +RegistreerFout + Set $ZTRAP = "" + Do OperatieScope.Gefaald() + Do ##class(TECH.ExceptionHandler).Rethrow() +]]> + + + + +Geeft aan voor welke producten bepaalde verwachte invoeren kunnen samengevoegd worden. +VerwachteUitvoerIDs:%ListOfDataTypes +DOM.ProdRes.dto.SamenvoegVoorstellen + 1) + { + Set 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()) + { + Set VerwachteInvoer = VerwachteInvoerIterator.Next() + Do SamenvoegVoorstel.VerwachteInvoerIDs.Insert(VerwachteInvoer.%Id()) + Set SamenvoegVoorstel.Aantal = SamenvoegVoorstel.Aantal + VerwachteInvoer.GeefAantal() + } + Do SamenvoegVoorstellen.Insert(SamenvoegVoorstel) + } + } + + Quit SamenvoegVoorstellen +]]> + + + Index: DOM/ProdRes/VerwachteUitvoerAPI.cls.xml =================================================================== diff -u -r2136 -r2161 --- DOM/ProdRes/VerwachteUitvoerAPI.cls.xml (.../VerwachteUitvoerAPI.cls.xml) (revision 2136) +++ DOM/ProdRes/VerwachteUitvoerAPI.cls.xml (.../VerwachteUitvoerAPI.cls.xml) (revision 2161) @@ -28,8 +28,6 @@ - -Gooit een exceptie indien meerdere resultaten werden gevonden. 1 TransactieReferentie:%String,TransactieLijnReferentie:%String,Bedrijf:DOM.common.enu.Bedrijf DOM.ProdRes.VerwachteUitvoer