Index: AXimpl/Dynamics/SalesOrderIn/Converter/SalesOrderConverter.cls.xml
===================================================================
diff -u -r56130 -r75031
--- AXimpl/Dynamics/SalesOrderIn/Converter/SalesOrderConverter.cls.xml (.../SalesOrderConverter.cls.xml) (revision 56130)
+++ AXimpl/Dynamics/SalesOrderIn/Converter/SalesOrderConverter.cls.xml (.../SalesOrderConverter.cls.xml) (revision 75031)
@@ -113,8 +113,43 @@
1
+
+DOM.PM.impl.ProductTypeAPIimpl
+1
+
+
+
+APPS.PM.Maatwerk.impl.VhConfigHelper
+1
+
+
+
+APPS.PM.Maatwerk.impl.VhConfigRepository
+1
+
+
+
+DOM.PM.impl.DataM.DataMProductRepository
+1
+
+
+
+WSimpl.AX.CalculatedProduct.ProductService
+1
+
+
+
+APPS.PM.Maatwerk.impl.BerekeningServiceProduct
+1
+
+
+
+AXimpl.Dynamics.SalesOrderIn.Converter.SalesOrderConverter.ToeleveringLockControleerder
+1
+
+
-OrderAPI:DOM.VKP.OrderAPI,OrderLevenCyclusService:APPS.VKP.OrderLevenCyclusService,DateTimeAPI:TECH.DateTime.DateTimeAPI="",ProductBepaler:AXimpl.Admin.Common.ProductBepaler,DocumentReferentiesRepository:DOM.VKP.DocumentReferentiesRepository,OrderlijnenSorteerder:AXimpl.Dynamics.SalesOrderIn.Converter.OrderlijnenSorteerder,OrderSluiter:CHUI.VKP.OrderIngave.BevestigdAXOrderSluiterv01,ToeleveringService:AXimpl.Dynamics.SalesOrderIn.Converter.ToeleveringService,OrderIngaveService:APPS.VKP.OrderIngaveService,OfferteRepository:APPS.VKP.Offerte.OfferteRepository,SalesOrderLineStatusRepository:AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository,VerkoopApi:DOM.VKP.VerkoopAPI,Mailer:AXimpl.Dynamics.SalesOrderIn.Converter.Mailer,LeverAdresMaker:AXimpl.Dynamics.SalesOrderIn.Converter.SalesOrderConverter.LeverAdresMaker,LandRepository:DOM.common.Locatie.impl.LandRepository
+OrderAPI:DOM.VKP.OrderAPI,OrderLevenCyclusService:APPS.VKP.OrderLevenCyclusService,DateTimeAPI:TECH.DateTime.DateTimeAPI="",ProductBepaler:AXimpl.Admin.Common.ProductBepaler,DocumentReferentiesRepository:DOM.VKP.DocumentReferentiesRepository,OrderlijnenSorteerder:AXimpl.Dynamics.SalesOrderIn.Converter.OrderlijnenSorteerder,OrderSluiter:CHUI.VKP.OrderIngave.BevestigdAXOrderSluiterv01,ToeleveringService:AXimpl.Dynamics.SalesOrderIn.Converter.ToeleveringService,OrderIngaveService:APPS.VKP.OrderIngaveService,OfferteRepository:APPS.VKP.Offerte.OfferteRepository,SalesOrderLineStatusRepository:AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository,VerkoopApi:DOM.VKP.VerkoopAPI,Mailer:AXimpl.Dynamics.SalesOrderIn.Converter.Mailer,LeverAdresMaker:AXimpl.Dynamics.SalesOrderIn.Converter.SalesOrderConverter.LeverAdresMaker,LandRepository:DOM.common.Locatie.impl.LandRepository,ProductRepository:Prod.ProductRepository="",ProductTypeAPI:DOM.PM.impl.ProductTypeAPIimpl="",DataMProductRepository:DOM.PM.impl.DataM.DataMProductRepository="",ProductService:WSimpl.AX.CalculatedProduct.ProductService="",BerekeningServiceProduct:APPS.PM.Maatwerk.impl.BerekeningServiceProduct="",VhConfigRepository:APPS.PM.Maatwerk.impl.VhConfigRepository=""
1
1
%Status
@@ -134,8 +169,15 @@
Set ..Mailer = $$$Inject(Mailer,##class(AXimpl.Dynamics.SalesOrderIn.Converter.Mailer).%New())
Set ..LeverAdresMaker = $$$Inject(LeverAdresMaker,##class(AXimpl.Dynamics.SalesOrderIn.Converter.SalesOrderConverter.LeverAdresMaker).%New())
Set ..LandRepository = $$$Inject(LandRepository,##class(DOM.common.Locatie.impl.LandRepository).%New())
+ Set ..ProductTypeAPI = $$$Inject(ProductTypeAPI,##class(DOM.DomeinContext).Instance().GeefProductTypeAPI())
+ Set ..DataMProductRepository = $$$Inject(DataMProductRepository, ##class(DOM.PM.impl.DataM.DataMProductRepository).%New())
+ Set ..ProductService = $$$Inject(ProductService, ##class(WSimpl.AX.CalculatedProduct.ProductService).%New())
+ Set ..BerekeningServiceProduct = $$$Inject(BerekeningServiceProduct, ##class(APPS.PM.Maatwerk.impl.BerekeningServiceProduct).%New())
Set ..VerkoopApi = $$$Inject(VerkoopApi, ##class(DOM.VKP.impl.VerkoopAPI).%New())
+ Set ..VhConfigHelper = ##class(APPS.PM.Maatwerk.impl.VhConfigHelper).%New()
+ Set ..VhConfigRepository = $$$Inject(VhConfigRepository, ##class(APPS.PM.Maatwerk.impl.VhConfigRepository).%New())
+ Set ..ToeleveringLockControleerder = ##class(AXimpl.Dynamics.SalesOrderIn.Converter.SalesOrderConverter.ToeleveringLockControleerder).%New()
Set ..Logger = ##class(vhLib.Logger).%New()
@@ -192,60 +234,54 @@
If ..VerkoopApi.BestaatKlant(..KlantID) {
Set ..KLNr = $Piece(..KlantID,"||",2)
- Do ..LockOrder()
-
- #Dim Order As DOM.VKP.Order = ..GeefOfMaakOrder(..KlantID, OrderHeader)
+ Do ..LockOrderEnControleerToeleveringen()
- If ($IsObject(Order)) {
-
- Do ..ZetOrderHoofding(Order, OrderHeader)
-
+ #Dim Order As DOM.VKP.Order = ..GeefOfMaakOrder(..KlantID, OrderHeader)
+ If ($IsObject(Order)) {
+ Do ..ZetOrderHoofding(Order, OrderHeader)
Do ..ZetDocumentReferentie(Order, OrderHeader)
Set OrderLineIterator = ##class(TECH.ListIterator).%New(OrderHeader.OrderLine)
While OrderLineIterator.HasNext() {
#dim OrderLine As AXif.Dynamics.SalesOrderIn.MessageParts.AxdEntityOrderLine = OrderLineIterator.Next()
if (..IsReedsKlaargezet(OrderLine)) {
- Do ..Logger.Debug("SalesOrderIn - Orderlijn is reeds klaargezet", "OrderLijn met InventTransId '" _OrderLine.InventTransId _"' is reeds klaargezet. Er wordt geen update uitgevoerd.")
+ Do ..Logger.Warning("SalesOrderIn - Orderlijn is reeds klaargezet", "OrderLijn met InventTransId '" _OrderLine.InventTransId _"' is reeds klaargezet. Er wordt geen update uitgevoerd.")
Continue
}
if (..IsReedsGeproduceerd(OrderLine)) {
- Do ..Logger.Debug("SalesOrderIn - Orderlijn is reeds geproduceerd", "OrderLijn met InventTransId '" _OrderLine.InventTransId _"' is reeds geproduceerd. Er wordt geen update uitgevoerd.")
+ Do ..Logger.Warning("SalesOrderIn - Orderlijn is reeds geproduceerd", "OrderLijn met InventTransId '" _OrderLine.InventTransId _"' is reeds geproduceerd. Er wordt geen update uitgevoerd.")
Continue
}
-
+
If $$$Not(..MagOrderLijnUpdaten(OrderLine)) {
Do ..Mailer.ZetMeldingGeblokkeerdeOrderLijn(Order, OrderLine.InventTransId)
- Do ..Logger.Debug("SalesOrderIn - Orderlijn is geblokkeerd", "OrderLijn met InventTransId '" _OrderLine.InventTransId _"' is in verwerking. Er wordt geen update uitgevoerd.")
+ Do ..Logger.Warning("SalesOrderIn - Orderlijn is geblokkeerd", "OrderLijn met InventTransId '" _OrderLine.InventTransId _"' is in verwerking. Er wordt geen update uitgevoerd.")
Continue
}
If ..IsGeannuleerd(OrderLine) {
Do ..VerwijderOrderLijn(Order, OrderLine)
Do ..LogLijn(OrderHeader.SalesId, OrderLine, "Verwijder OrderLijn")
Continue
- }
+ }
// hier sowieso een orderlijn die geupdated mag worden, zonder toelev en juiste status.
// -> verwijder orderlijnen met zelfde inventtransid.
- If (Order.GeefAantalLijnenMetAxInventTransId(OrderLine.InventTransId) > 1) {
+ If (Order.GeefAantalLijnenViaAxInventTransId(OrderLine.InventTransId) > 1) {
Do Order.VerwijderOrderLijnenViaAxInventTransId(OrderLine.InventTransId)
Do ..BewaarOrder(Order)
}
Do ..UpdateOrderLijn(..GeefOfMaakOrderLijn(Order, OrderLine), OrderLine, Order)
}
-
+
Do ..BewaarOrder(Order)
-
Do ..VerwijderOrderIndienGeenOrderLijnen(.Order)
-
Do ..OrderlijnenSorteerder.SorteerGepersisteerdeOrderLijnen(Order)
Do:..IsNieuwOrder(Order) ##class(DOM.VKP.event.OrderEventRaiser).RaiseOrderGemaaktEvent(..OrderID)
-
Do ..SluitOrder(Order)
Do ..Mailer.VerzendMeldingGeblokkeerdeOrderLijnen(Order,OrderHeader.ModifiedByAlias)
@@ -262,6 +298,24 @@
]]>
+
+1
+
+
+
1
DOM.VKP.PrijsOrderlijn
0)) {
+ Do PrijsOrderLijn.ZetProductID(ProductId, $$$True)
+ } ElseIf (IsEenMaatwerkLijn && IsAdminProductNummerMeegegeven) {
+ Do PrijsOrderLijn.ZetProductID(..GeefAttributeValue(OrderLine.Attribute,"AdminProductNummer"), $$$True)
+ }
+
Quit PrijsOrderLijn
}
If ..IsProductLijn(OrderLine) {
Set PrijsOrderLijn = ..VoegToeProductLijn(Order, OrderLine)
} Else {
- Set PrijsOrderLijn = ..VoegToeMaatwerkLijn(Order, OrderLine)
+ Set PrijsOrderLijn = ..VoegToeMaatwerkLijn(Order, OrderLine, ProductId)
}
Quit PrijsOrderLijn
]]>
+
+
+1
+%String
+ 0) {
+ Do ..VerwijderOrderLijn(Order, OrderLine)
+ Do ..BewaarOrder(Order)
+ Do ..LogLijn(Order.GeefID(), OrderLine, "Verwijder OrderLijn")
+
+ If $$$Not(..ProductService.HeeftBezwaarVoorProductDelete(ReedsGekendeProductId)) {
+ Set ProductData.PRNr = ReedsGekendeProductId
+ Do ..NeemLockOpProduct(ReedsGekendeProductId)
+ Do ..VerwijderProduct(ReedsGekendeProductId)
+ Set IsProductIdHergebruikt = $$$True
+ }
+ }
+
+ #dim MaatwerkProduct As DOM.PM.MaatwerkProduct = ..BerekeningServiceProduct.MaakProductVanKenmerken(..VhConfigHelper.GeefIngegevenKenmerken(), ..KlantID, 1, ProductData, VhConfig)
+
+ Do ..VhConfigRepository.SaveVhConfig(CID, VhConfig, OrderLine.ProductHash, $$$False, OrderLine.InventTransId, MaatwerkProduct.GeefID())
+
+ If ((ReedsGekendeProductId > 0) && IsProductIdHergebruikt) {
+ Do ..Logger.Warning("SalesOrderIn - ProductCreatie", "Product '"_ReedsGekendeProductId_"' opnieuw gemaakt in Cache! DossierNummer = '"_OrderLine.DossierCode_"'")
+ Do ..UnlockProduct(ReedsGekendeProductId)
+ }
+
+ Quit MaatwerkProduct.GeefID()
+]]>
+
+
+
+ProductId:%String
+1
+
+
+
+
+ProductId:%String
+1
+
+
+
+
+ProductId:%String
+1
+
+
+
+
+ProductId:%String
+1
+
+
+
+
+ProductId:%String
+1
+
+
+
Order:DOM.VKP.Order,OrderHeader:AXif.Dynamics.SalesOrderIn.MessageParts.AxdEntityOrderHeader
1
@@ -534,9 +711,10 @@
Do Order.ZetOorsprong(##class(AXimpl.AxToAdminUtils).ConvertOorsprong(OrderHeader.SalesOriginId))
Do Order.ZetStatus(##class(AXimpl.AxToAdminUtils).ConvertOrderStatus(""))
Do Order.ZetAfleveradres(..LeverAdresMaker.MaakLeverAdres(OrderHeader))
- Do Order.ZetVerzendingWijze(..MaakVerzendingWijze(OrderHeader))
+ #dim SkipVerzendwijzeUpdatesFromTo As TECH.KeyValue.List = ##class(TECH.KeyValue.List).CreateKeyValueListFromListbuild( $LB("DD1","DI1"), $LB("DD1","GL4") )
+ Do Order.ZetVerzendingWijze(..MaakVerzendingWijze(OrderHeader), SkipVerzendwijzeUpdatesFromTo)
Do Order.ZetAxSalesId(OrderHeader.SalesId)
-
+ Do Order.ZetEmailAddressTrackTrace(OrderHeader.MailAddressTrackTrace)
#dim PackingSlipBody As %String = $Replace(OrderHeader.PackingSlipBody,$char(13),"")
#dim ProductieAansturingTekst As %String = $Replace(OrderHeader.ProdCmdBody,$char(13),"")
@@ -614,7 +792,7 @@
OrderLine:AXif.Dynamics.SalesOrderIn.MessageParts.AxdEntityOrderLine
1
%Boolean
-
@@ -650,11 +828,11 @@
-Order:DOM.VKP.Order,OrderLine:AXif.Dynamics.SalesOrderIn.MessageParts.AxdEntityOrderLine
+Order:DOM.VKP.Order,OrderLine:AXif.Dynamics.SalesOrderIn.MessageParts.AxdEntityOrderLine,ProductId:%String=""
1
DOM.VKP.impl.DataM.DataMProductOrderlijn
+
+
+VhConfig:%String
+1
+APPS.PM.Maatwerk.dto.VhConfig
+
+
+
+
+JsonStream:%Stream,RootObjectClassname:%String
+1
+TECH.RegisteredObject
+
+