Index: vhUnitTest/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/Test.cls.xml =================================================================== diff -u -r58341 -r58474 --- vhUnitTest/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/Test.cls.xml (.../Test.cls.xml) (revision 58341) +++ vhUnitTest/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/Test.cls.xml (.../Test.cls.xml) (revision 58474) @@ -15,7 +15,7 @@ %Integer -12345 +100000 @@ -43,40 +43,61 @@ 1 - -AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository -1 - - aTestName:%String + + + + 1 WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService - +AantalOrderLijnenMetRelevanteAxInventTransId:%Integer 1 DOM.VKP.Order + + +AantalGevondenOrderLijnen:%Integer +1 +TECH.Iterator + + Index: vhTest/Mock/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService.cls.xml =================================================================== diff -u -r58406 -r58474 --- vhTest/Mock/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService.cls.xml (.../OrderService.cls.xml) (revision 58406) +++ vhTest/Mock/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService.cls.xml (.../OrderService.cls.xml) (revision 58474) @@ -9,7 +9,7 @@ right -OrderApi:DOM.VKP.OrderAPI="",Logger:vhLib.Logger="",ToeleveringService:WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService.ToeleveringService="",SalesOrderLineStatusRepository:AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository="" +OrderApi:DOM.VKP.OrderAPI="",Logger:vhLib.Logger="",ToeleveringService:WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService.ToeleveringService="" %Status Index: vhTest/Fake/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml =================================================================== diff -u -r58444 -r58474 --- vhTest/Fake/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml (.../ToeleveringService.cls.xml) (revision 58444) +++ vhTest/Fake/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml (.../ToeleveringService.cls.xml) (revision 58474) @@ -7,9 +7,10 @@ 1 WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService.ToeleveringService - + ToeleveringId:%String,OudProductId:%String,NieuwProductId:%String -%Boolean + Index: vhTest/Mock/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml =================================================================== diff -u -r58458 -r58474 --- vhTest/Mock/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml (.../ToeleveringService.cls.xml) (revision 58458) +++ vhTest/Mock/WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml (.../ToeleveringService.cls.xml) (revision 58474) @@ -15,9 +15,10 @@ ]]> - + ToeleveringId:%String,OudProductId:%String,NieuwProductId:%String -%Boolean + Index: WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService.cls.xml =================================================================== diff -u -r58444 -r58474 --- WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService.cls.xml (.../OrderService.cls.xml) (revision 58444) +++ WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService.cls.xml (.../OrderService.cls.xml) (revision 58474) @@ -18,13 +18,8 @@ 1 - -AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository -1 - - -OrderApi:DOM.VKP.OrderAPI="",Logger:vhLib.Logger="",ToeleveringService:WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService.ToeleveringService="",SalesOrderLineStatusRepository:AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository="" +OrderApi:DOM.VKP.OrderAPI="",Logger:vhLib.Logger="",ToeleveringService:WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService.ToeleveringService="" 1 1 %Status @@ -33,7 +28,6 @@ Set ..OrderApi = $$$Inject(OrderApi, ##class(DOM.VKP.impl.DataM.DataMOrderAPI).%New()) Set ..Logger = $$$Inject(Logger, ##class(vhLib.Logger).%New("CalculatedProduct")) Set ..ToeleveringService = $$$Inject(ToeleveringService, ##class(WSimpl.AX.CalculatedProduct.ProductVolgensAxAttribuutBepaler.OrderService.ToeleveringService).%New()) - Set ..SalesOrderLineStatusRepository = $$$Inject(SalesOrderLineStatusRepository, ##class(AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository).%New()) Quit $$$OK ]]> @@ -49,14 +43,7 @@ Try { Do ..LockOrder(KlantNr, OrderId) - If (..IsVrijVoorUpdate(AxInventTransId)) { - // Nog niets klaargezet of geproduceerd voor die AX-OrderLijn => Order/Toeleveringen aanpassen. Niemand verwittigen. - Do ..PasAanOrderLijnenEnToeleveringen(Order, AxInventTransId, OudProductId, NieuwProductId) - } Else { - // Indien reeds KLAARGEZET MAAR NOG NIET IN BATCH => Order/Toeleveringen aanpassen => Halux hiervan verwittigen! - // Indien reeds KLAARGEZET EN AL WEL IN BATCH MAAR NOG NIET GESTART => Order/Toeleveringen NIET aanpassen => Halux hiervan verwittigen! - // Indien reeds KLAARGEZET EN AL WEL IN BATCH EN IS AL GESTART => Order/Toeleveringen NIET aanpassen (=> BIDI waarschuwen???) - } + Do ..PasAanOrderLijnenEnToeleveringen(Order, AxInventTransId, OudProductId, NieuwProductId) Do ..UnLockOrder(KlantNr, OrderId) } Catch { @@ -77,27 +64,24 @@ #dim OrderLijnenIteratorVolgensAxInventTransId As TECH.Iterator = ..GeefOrderLijnIteratorVolgensAxInventTransId(Order, AxInventTransId) #dim OrderLijn As DOM.VKP.Orderlijn #dim ToeleveringId As %String - #dim IsOrderLijnAanTePassen As %Boolean + #dim MagOrderLijnAangepastWorden As %Boolean + #dim IsOrderLijnAanTePassen As %Boolean = $$$False While OrderLijnenIteratorVolgensAxInventTransId.HasNext() { Set OrderLijn = OrderLijnenIteratorVolgensAxInventTransId.Next() - Set IsOrderLijnAanTePassen = ((OrderLijn.%IsA(##class(DOM.VKP.enu.OrderLijnType).Product())) && (OrderLijn.GeefProductID() = OudProductId)) - If IsOrderLijnAanTePassen { + Set MagOrderLijnAangepastWorden = ((OrderLijn.%IsA("DOM.VKP.ProductOrderlijn")) && (OrderLijn.GeefProductID() = OudProductId)) + If MagOrderLijnAangepastWorden { Set ToeleveringId = OrderLijn.GeefToeleveringID() - Do ..ToeleveringService.VerwerkToelevering(ToeleveringId, OudProductId, NieuwProductId) + Set IsOrderLijnAanTePassen = ..ToeleveringService.IsToeleveringAangepast(ToeleveringId, OudProductId, NieuwProductId) + If IsOrderLijnAanTePassen { + // OrderLijn aanpassen + Order saven + Do ..Logger.Info("ProductUpdater", "Op Order '"_Order.GeefID()_"' werd op OrderLijn '"_OrderLijn.GeefID()_"' de ProductId aangepast van '"_OudProductId_"' naar '"_NieuwProductId_"'.") + } } } ]]> - -AxInventTransId:%String -1 -%Boolean - - - Order:DOM.VKP.Order,AxInventTransId:%String 1 Index: WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml =================================================================== diff -u -r58458 -r58474 --- WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml (.../ToeleveringService.cls.xml) (revision 58458) +++ WSimpl/AX/CalculatedProduct/ProductVolgensAxAttribuutBepaler/OrderService/ToeleveringService.cls.xml (.../ToeleveringService.cls.xml) (revision 58474) @@ -39,9 +39,12 @@ ]]> - + ToeleveringId:%String,OudProductId:%String,NieuwProductId:%String +%Boolean Order/Toeleveringen aanpassen => Niemand verwittigen! + Do ..PasAanProductIdOpToeleveringLijnen(Toelevering, OudProductId, NieuwProductId) + Set IsToeleveringAangepast = $$$True } ElseIf ($$$Not(..ZitToeleveringInBatch(ToeleveringId))) { // Indien reeds KLAARGEZET MAAR NOG NIET IN BATCH => Order/Toeleveringen aanpassen => Halux hiervan verwittigen! + Do ..PasAanProductIdOpToeleveringLijnen(Toelevering, OudProductId, NieuwProductId) + Set IsToeleveringAangepast = $$$True + // MAILEN !!! } Else { // Indien reeds KLAARGEZET EN AL WEL IN BATCH (al dan niet gestart) => Order/Toeleveringen NIET aanpassen => Halux hiervan verwittigen! + // MAILEN !!! } Do ..UnLockToelevering(ToeleveringId) } Catch { @@ -64,6 +73,8 @@ } Else { Do ..Logger.Warning("ProductUpdater", "In de ToeleveringService werd gezocht naar Toelevering '"_ToeleveringId_"' met het oog op het aanpassen van ProductId '"_OudProductId_"' naar '"_NieuwProductId_"' op de Lijnen ervan, maar er werd geen verwijzing naar de Toelevering gevonden in ^KTO1 volgens de ToeleveringApi") } + + Quit IsToeleveringAangepast ]]>