Index: AXimpl/Dynamics/SalesOrderIn/Converter/SalesOrderConverter.cls.xml
===================================================================
diff -u -r53574 -r75031
--- AXimpl/Dynamics/SalesOrderIn/Converter/SalesOrderConverter.cls.xml (.../SalesOrderConverter.cls.xml) (revision 53574)
+++ AXimpl/Dynamics/SalesOrderIn/Converter/SalesOrderConverter.cls.xml (.../SalesOrderConverter.cls.xml) (revision 75031)
@@ -88,6 +88,11 @@
1
+
+DOM.common.Locatie.impl.LandRepository
+1
+
+
%String
1
@@ -108,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
+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
@@ -128,8 +168,16 @@
Set ..SalesOrderLineStatusRepository = $$$Inject(SalesOrderLineStatusRepository, ##class(AXdata.Dynamics.SalesLineStatus.SalesOrderLineStatusRepository).%New())
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()
@@ -186,53 +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.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)
@@ -249,6 +298,24 @@
]]>
+
+1
+
+
+
1
1
%String
@@ -416,7 +483,7 @@
1
@@ -435,27 +502,37 @@
1
DOM.VKP.Order
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
@@ -515,19 +711,27 @@
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),"")
+
Set PackingSlipBody = $Replace(PackingSlipBody,$char(10),$$$CRLF)
if (Order.GeefKlantID() = ##class(DOM.VKP.enu.Klant).SFS()) && (PackingSlipBody ? 10N) {
- ;Special SFS: sap nummer moet in tekstlijn op deze manier om op etiket afgedruk te word
- #dim TekstOrderlijn As DOM.VKP.TekstOrderlijn = Order.MaakNieuweTekstLijn("Opmerking:")
- Do TekstOrderlijn.ZetTekstblokBehandeling(..DateTimeAPI.CurrentHorolog()_";T;;-")
- Set TekstOrderlijn = Order.MaakNieuweTekstLijn(PackingSlipBody)
- Do TekstOrderlijn.ZetTekstblokBehandeling(..DateTimeAPI.CurrentHorolog()_";T;;OBF")
+ if $$$Not(Order.GeefTekstVoorAfdrukDocumentType("") [ "Opmerking:"_$$$CRLF_PackingSlipBody ) {
+ ;Special SFS: sap nummer moet in tekstlijn op deze manier om op etiket afgedruk te word
+ #dim TekstOrderlijn As DOM.VKP.TekstOrderlijn = Order.MaakNieuweTekstLijn("Opmerking:")
+ Do TekstOrderlijn.ZetTekstblokBehandeling(..DateTimeAPI.CurrentHorolog()_";T;;-")
+ Set TekstOrderlijn = Order.MaakNieuweTekstLijn(PackingSlipBody)
+ Do TekstOrderlijn.ZetTekstblokBehandeling(..DateTimeAPI.CurrentHorolog()_";T;;OBF")
+ Set TekstOrderlijn = Order.MaakNieuweTekstLijn(ProductieAansturingTekst)
+ Do TekstOrderlijn.ZetTekstblokBehandeling(..DateTimeAPI.CurrentHorolog()_";T;;-")
+ }
} else {
Do Order.ZetTekstVoorAfdrukDocumentType(PackingSlipBody, ##class(DOM.VKP.enu.TekstAfdrukDocumentType).LeverBon())
+ Do Order.ZetTekstVoorAfdrukDocumentType(ProductieAansturingTekst, ##class(DOM.VKP.enu.TekstAfdrukDocumentType).Toelevering())
}
If $$$HasLength(OrderHeader.RefSalesOriginId) && (OrderHeader.MultiPersonalityLinkContainer="") {
@@ -588,7 +792,7 @@
OrderLine:AXif.Dynamics.SalesOrderIn.MessageParts.AxdEntityOrderLine
1
%Boolean
-
@@ -624,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
+
+