vhLib.Macro TECH.Mockable DOM.AKP.ToeleveringAPI 1 DOM.PM.BlumProductAPI 1 BlumProductAPI:DOM.PM.BlumProductAPI,ToeleveringAPI:DOM.AKP.ToeleveringAPI 1 1 %Status 1 CSBSO31:APPS.AKP.AankoopControle.BLUM.TXT.TransportEnFaktuur.CSBS031,CSBSO41:APPS.AKP.AankoopControle.BLUM.TXT.TransportEnFaktuur.CSBS041,ToeleveringNr:%String,ToeleveringLijnNr:%String,ProductNr:%String dummy factuur, prijs die blum gaat rekenen zit niet in despatch bericht. set CSBSO41.Value = CSBSO41.QuantityInvoiced * ..GeefVHProductPrijs(CSBSO41.ProductNrCustomer) } else { if (ToeleveringLijnNr=""){ ;manual order set:(CSBSO41.KundeStamNummer="") CSBSO41.KundeStamNummer = CSBSO31.InvoicingCustomerNr ;geen toelevering om kundestamnummer op te halen, we gebruiken de shipto set CSBSO41.ProductNrCustomer = ..BlumProductAPI.GeefProductIdVolgensIdentNummer(CSBSO41.KundeStamNummer,CSBSO41.IdentNr) if ##class(Blum.Product).%ExistsId(CSBSO41.IdentNr) { ;Theorische prijs volgens product #Dim BlumProduct as Blum.Product = ##class(Blum.Product).%OpenId(CSBSO41.IdentNr) #Dim ProductPrijs as Blum.ProductPrijs = ##class(Blum.ProductPrijs).%OpenId(CSBSO41.IdentNr_"||"_ $Select(CSBSO31.InvoicingCustomerNr="212250":"E12",1:"E24")) #Dim Rabat as Blum.Rabat = ##class(Blum.Rabat).%OpenId(CSBSO31.InvoicingCustomerNr) set CSBSO41.Value = CSBSO41.QuantityInvoiced * ProductPrijs.Prijs / $Select(ProductPrijs.PrijsDimensie="M":1000,ProductPrijs.PrijsDimensie="H":100,1:1 ) set CSBSO41.Value = CSBSO41.Value * (1- Rabat.KortingsPercentageDefault) } else { ;Product niet gevonden, dan zetten we er prijs 0 op. (bvb marketing materiaal zit niet onze producten. set CSBSO41.Value = 0 ; alternatief is exception throwen, maar helpt niet echt aan de verwerking. /* set Error = "Product in xml bestand gespecifieerd niet gevonden in Admin" set Error = Error _ $$$CRLF _ "ident nummer "_ CSBSO41.IdentNr set Error = Error _ $$$CRLF _ "productnummer "_ CSBSO41.ProductNrCustomer set Error = Error _ $$$CRLF _ "toelevering " _ ToeleveringNr set Exception = ##class(TECH.Exceptions.GeneralErrorException).%New(Error) do ##class(TECH.ExceptionHandler).Throw(Exception) */ } } else { ;voor manuele bestellingen is de toelevering nr opgegegeven als een referentie en lijn nr is leeg, als die dus ingevuld is is er iets fout... set Error = "Toelevering " _ ToeleveringNr _" in xml bestand gespecifieerd niet gevonden in Admin" set Exception = ##class(TECH.Exceptions.GeneralErrorException).%New(Error) do ##class(TECH.ExceptionHandler).Throw(Exception) } } ]]> ToeleveringNummer:%String,IdentNummer:%String,ProductNummer:%String IdentNummer:%String,KundeNummer:%String 1 0 %String PRNr:%String