Index: KPRIJS.mac.rou =================================================================== diff -u -r50831 -r50958 --- KPRIJS.mac.rou (.../KPRIJS.mac.rou) (revision 50831) +++ KPRIJS.mac.rou (.../KPRIJS.mac.rou) (revision 50958) @@ -103,23 +103,28 @@ Set PriceUnit=$LI(lb,4) Set InclBTW=$LI(lb,5) } Else { - Try - { - New SalesPriceService, Result - Set SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() - #Dim Result as AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC - Set Result = SalesPriceService.GeefPrijs(KLNr, PRNr, $S($G(SimPPL):SimPPL,1:""),.Aantal) - Set VkpEURAX = Result.Price - Set LijstEURAX = Result.GrossPrice - Set PriceUnit=+Result.PriceUnit - Set InclBTW=SalesPriceService.PrijzenInclBTW() + Try { + New SalesPriceService, Result, ResultLine + + #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() + #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC = SalesPriceService.GeefPrijs(KLNr, PRNr, $select($Get(SimPPL):SimPPL, 1:""), .Aantal) + #dim ResultLine As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC = Result.Lines.GetAt(1) + + Set VkpEURAX = ResultLine.Price + Set LijstEURAX = ResultLine.GrossPrice + Set PriceUnit = +ResultLine.PriceUnit + Set InclBTW = Result.InclVAT + Set ^AXPrijsCache(KLNr,PRNr,+CachePPL,$S($G(Aantal):Aantal,1:"*"))=$LB($$GeefMinuten($H),VkpEURAX,LijstEURAX,PriceUnit,InclBTW) } Catch { + New Exception + Set (VkpEURAX,LijstEURAX)=99999 Set PriceUnit=1 - Set InclBTW=0 + Set InclBTW = $$$False + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() - do ##class(vhLib.Logger).LogExceptie(Exception) + Do ##class(vhLib.Logger).LogExceptie(Exception) } } @@ -140,14 +145,13 @@ } Set GrOrde=$Case(PriceUnit,100:"H",:"E") Set GrOrdNum=$Case(GrOrde,"H":100,:1) - Set Korting2=0 If +LijstEUR=0 { Set Korting1=0 - } else { + } Else { Set Korting1=(1-(VkpEUR/LijstEUR))*100 } - } else { + } Else { Do:(+VkpEUR>0)||(+VkpEURAX>0) ##class(vhLib.Logger).%New().Warning("Prijsberekening AX Fallback","Klant : '"_KLNr_"' Product : '"_PRNr_"' SimPPL : '"_$G(SimPPL)_"' -> Prijs : "_VkpEURAX_" -> fallback naar cache berekening '"_VkpEUR_"'") } } @@ -304,36 +308,40 @@ Quit R GeefLijstPrijsInAX(PRNr,SimCifPPL,AdminLijstPr) - New Result,CachePPL,VkpEURAX, VkpEUR,LijstEURAX,PriceUnit,IncBTW,KLNr - #Dim Result as AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC + New CachePPL,VkpEURAX, VkpEUR,LijstEURAX,PriceUnit,IncBTW,KLNr + Quit:$$ProdViaAdmin(PRNr) AdminLijstPr Set KLNr=$$$CKlantL Set CachePPL=$S($G(SimPPL):SimPPL,1:$$CifPPL(PRNr)) Set CacheMinuten = $ListGet($Get(^AXPrijsCache(KLNr,PRNr,+CachePPL,"*")),1) + If (($$GeefMinuten($Horolog)-600) < CacheMinuten) { Set lb=^AXPrijsCache(KLNr,PRNr,+CachePPL,"*") Set VkpEURAX=$LI(lb,2) Set PriceUnit=$LI(lb,4) Set InclBTW=$LI(lb,5) } Else { - Try - { - New SalesPriceService, Result - Set SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() - #Dim Result as AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC - Set Result = SalesPriceService.GeefPrijs(KLNr, PRNr, $S($G(SimPPL):SimPPL,1:""),.Aantal) - Set VkpEURAX = Result.Price - Set LijstEURAX = Result.GrossPrice - Set PriceUnit=+Result.PriceUnit - Set InclBTW=SalesPriceService.PrijzenInclBTW() + Try { + New SalesPriceService, Result, ResultLine + + #dim SalesPriceService As AXimpl.Admin.VKP.SalesPriceService = ##class(AXimpl.Admin.VKP.SalesPriceService).%New() + #dim Result As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceHeaderOutputDC = SalesPriceService.GeefPrijs(KLNr, PRNr, $select($get(SimPPL):SimPPL,1:""),.Aantal) + #dim ResultLine As AXif.Dynamics.SalesPriceIn.MessageParts.ADUSalesPriceLineOutputDC = Result.Lines.GetAt(1) + + Set VkpEURAX = ResultLine.Price + Set LijstEURAX = ResultLine.GrossPrice + Set PriceUnit = +ResultLine.PriceUnit + Set InclBTW = Result.InclVAT + Set ^AXPrijsCache(KLNr,PRNr,+CachePPL,"*")=$LB($$GeefMinuten($H),VkpEURAX,LijstEURAX,PriceUnit,InclBTW,"LP") } Catch { Set (VkpEURAX)=99999 Set PriceUnit=1 - Set InclBTW=0 + Set InclBTW = $$$False + #dim Exception As TECH.Exceptions.Exception = ##class(TECH.ExceptionHandler).Catch() - do ##class(vhLib.Logger).LogExceptie(Exception) + Do ##class(vhLib.Logger).LogExceptie(Exception) } } @@ -348,10 +356,9 @@ { Set VkpEUR=VkpEUR/PriceUnit } - - } else { + } Else { Set VkpEUR=AdminLijstPr - do:(+VkpEUR>0)||(+VkpEURAX>0) ##class(vhLib.Logger).%New().Warning("Prijsberekening AX Fallback","LIJSTPRIJS Klant : '"_KLNr_"' Product : '"_PRNr_"' SimPPL : '"_$G(SimPPL)_"' -> Prijs : "_VkpEURAX_" -> fallback naar cache berekening '"_$G(AdminLijstPr)_"'") + Do:(+VkpEUR>0)||(+VkpEURAX>0) ##class(vhLib.Logger).%New().Warning("Prijsberekening AX Fallback","LIJSTPRIJS Klant : '"_KLNr_"' Product : '"_PRNr_"' SimPPL : '"_$G(SimPPL)_"' -> Prijs : "_VkpEURAX_" -> fallback naar cache berekening '"_$G(AdminLijstPr)_"'") } Quit VkpEUR @@ -643,3 +650,4 @@ . Set J=$O(^KPR(PRNr,"J")),R=^(J),PPL=$P(R,D,19) . Set:+PPL=+SchaduwPPL SchaduwPPL="" Quit SchaduwPPL +