Index: KPRIJSAX.mac.rou =================================================================== diff -u -r48147 -r50299 --- KPRIJSAX.mac.rou (.../KPRIJSAX.mac.rou) (revision 48147) +++ KPRIJSAX.mac.rou (.../KPRIJSAX.mac.rou) (revision 50299) @@ -73,7 +73,7 @@ New Korting1,Korting2,CheckKAT,KlantGrOrde KLANTPR3 New R,KatProd,IsKatPr,FaMunt,Munt,MuntPar,VkpPr,KortNiv,AkpEUR,VkpEUR,LijstEUR,KlMunt,KlTyp,NetBrutP,PrijsKl,IsKsCust,IsLidVan,%LidVan,LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork - New BTWfactor,LijstPr1,VkpEURIncl,VkpPr1,VkpPrIncl + New BTWfactor,LijstPr1,VkpEURIncl,VkpPr1,VkpPrIncl,VkpEURAX,LijstEURAX ; Opgezet via GETCUST : KlMunt,KlTyp,NetBrutP,PrijsKl,IsKsCust,IsLidVan,%LidVan ; Opgezet via GETPROD : LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork New LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork,BusinessType,Klant,KlantID, CorFakt,KortRec @@ -94,28 +94,86 @@ // VHIP907: Verkoopprijzen // VHIP907->MVI: voorlopig laat ik alles invullen in fase 2a en overschrijf ik enkel de waarden die ax teruggeeft - New SalesPriceService, Result If $$IsAX(KLNr,PRNr) { - 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:"")) - - Set VkpEUR = Result.Price - Set VkpPr = VkpEUR - Set LijstEUR = Result.GrossPrice - Set LijstPr = LijstEUR - Set Korting2=0 - Set Korting1=(1-(VkpEUR/LijstEUR))*100 - } + Kill ^AXPrijsCache + Set CacheMinuten=$LG($G(^AXPrijsCache(KLNr,PRNr,$S($G(SimPPL):SimPPL,1:"*"),$S($G(Aantal):Aantal,1:"*"))),1) + If (($$GeefMinuten($H)-600)0 + { + Set VkpEUR=VkpEURAX + Set LijstEUR=LijstEURAX + If InclBTW + { + Set VkpEUR=+$J(VkpEUR/1.21,0,10) + } + Set VkpPr = VkpEUR + Set LijstPr = LijstEUR + If PriceUnit>1 + { + Set VkpEUR=VkpEUR/PriceUnit + Set LijstEUR=LijstEUR/PriceUnit + } + Set GrOrde=$Case(PriceUnit,100:"H",:"E") + Set GrOrdNum=$Case(GrOrde,"H":100,:1) + + Set Korting2=0 + If +LijstEUR=0 { + Set Korting1=0 + } else { + Set Korting1=(1-(VkpEUR/LijstEUR))*100 + } + } + Else + { + Write "**** Prijs is NUL ****" + } + } Quit $$BUILD ; Build = VkpPr_D_Munt_D_GrOrde_D_LijstPr_D_Korting1_D_Korting2_D_$G(PrijsKl)_D_$G(KortNiv)_D_+$J(1/MuntPar,0,8)_D_GrOrde_1_D_GrOrdNum_D_1_D_AkpEUR_D_VkpEUR_D_LijstEUR ; 1:prijs,2:munt,3:eenheid,4:lijstprijs,5:korting1,6:korting2,7:codex,8:katprijs,9:pariteit,10:afrondingsregel,11:eenheid(numeriek),12:round,13:aankpr(EUR),14:prijs(EUR),15:lijstprijs(EUR) - +PrijzenViaAdmin(KLNr) +{ + Quit $$$MaatwerkKlantenMetWildcardUitz[(";"_KLNr_";") +} - +GeefMinuten(DatumEnTijd) + Quit $P(DatumEnTijd,".")*24*60+($P(DatumEnTijd,".",2)\60) + +KillAXCache + Kill ^AXPrijsCache + Quit + // Set twee kortingen om van in % (*100) naar ��n korting in % OneKorting(Korting1,Korting2) Quit (1-((1-(Korting1/100))*(1-(Korting2/100))))*100 @@ -125,13 +183,12 @@ Set IsAX=0 If ($$$CheckAXFase) { Set IsAX=1 - If $$$MaatwerkKlantenMetWildcardUitz[(";"&KLNr&";") { + If $$PrijzenViaAdmin(KLNr) { If PRNr,$$$PRGet($$$LeveranciersNr)=$$$LevHalux { Set IsAX=0 } } } - ;w "KLNr",KLNr," PRNr",PRNr," = ",IsAX,! Quit IsAX PRODINCLBTW(PRNr,Land,KlMunt,Korting1,Korting2,NetBrutP,KlTyp,NoSa,SimPPL,KlantGrOrde,CheckKAT,BusinessType) @@ -142,7 +199,8 @@ ProdViaCodex(PRNr,Codex) New KLNr - Set KLNr=$Case(Codex,"L":$$$KlantLVanHoecke,"R":$$$KlantRVanHoecke,"S":$$$KlantSVanHoecke,"B":$$$KlantBVanHoecke,"G":$$$KlantGVanHoecke,"P":$$$KlantPVanHoecke,"C":$$$KlantCVanHoecke) + Set KLNr=$Case(Codex,"L":$$$CKlantL,"R":$$$CKlantR,"S":$$$CKlantS,"B":$$$CKlantB,"G":$$$CKlantG,"P":$$$CKlantP,"C":$$$CKlantCExcl) + Quit:'$D(^KK1(KLNr)) "" Quit $$KLANTPR(KLNr,PRNr) @@ -252,7 +310,47 @@ Set Result=##class(AXimpl.Admin.VKP.SalesPriceService).%New().GeefPrijs($$$KlantLVanHoecke,PRNr,.SimCifPPL) Quit Result.GrossPrice - +PRIJSGEGZONDERAX(PRNr,NoSa,SimPPL) ; Ophalen van de prijsgegevens van een product + ; De SimPPL wordt genomen ter vervanging van de PPL in PRNr, + ; zo kan dan het product een generisch product zijn waarvoor het afgeleid product nog niet bestaat + ; De SimPPL moet voldoen aan de muntpariteit en de grootteorde + ; Output: Piece 1 = PPL + ; Piece 2 = aankoopmunt + ; Piece 3 = aankoopeenheid + ; Piece 4 = aankoopeenheid (numeriek) + ; Piece 5 = korting + ; Piece 6 = CifPPL + ; Piece 7 = firmamunt + ; Piece 8 = verkoopeenheid + ; Piece 9 = verkoopeenheid (numeriek) + ; Piece 10 = Cif% + ; Piece 11 = dekkingsbijdrage + ; Piece 12 = dekkingsbijdrage% + ; Piece 13 = vork + ; Piece 14 = vork% + ; Piece 15 = lijstprijs (per stuk) + ; Piece 16 = katprod industrie (Prijsklasse code) + ; Piece 17 = katprod handel (Prijsklasse code) + ; Piece 18 = katprod KS (Prijsklasse code) + ; Piece 19 = LEVNr + ; Piece 20 = CorFakt + New I,J,R,LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,GrtPr,PrMunt,CifPPL,LijstPr,Vork,DB,FaMunt,Decimal,EenhAank,PPL,%Korting,%Vork,%DB,%Cif,CorFakt + Do GetProdBasis + ;Set Decimal=$$MUNT^vhRtn1(FaMunt,4),%DB=$J(%DB*GrOrdNum,0,Decimal) + Set R=CifPPL/(100-%DB/100)*%DB/100,R=$J(R,1,4),LijstPr=CifPPL+R + Set LijstPr=LijstPr*GrOrdNum + Set GrtPr=LijstPr*(100-%Vork/100) + Set GrtPr=$J($$ROUND(GrtPr),0,2) + Set LijstPr=$J($$ROUND(LijstPr),0,2) + Set Vork=LijstPr-GrtPr/GrOrdNum + Set LijstPr=LijstPr/GrOrdNum + Set PPL=$J(PPL*EenhAank,0,4) + Set DB=LijstPr-CifPPL + Set R=PPL_D_PrMunt_D_$S(EenhAank=1:"E",EenhAank=100:"H",EenhAank=1000:"M",1:"")_D_EenhAank + Set R=R_D_%Korting_D_CifPPL_D_FaMunt_D_GrOrde_D_GrOrdNum_D_%Cif_D_DB_D_%DB_D_Vork_D_%Vork_D_LijstPr + Set R=R_D_KatPrInd_D_KatPrHan_D_KatPrKs_D_LEVNr_D_CorFakt + Quit R + GETPROD(PRNr,NoSa,SimPPL) ; Ophalen productgegevens New J,R,FaMunt,EenhAank,PPL,%Korting,%DB,%Cif Do GetProdBasis