Index: KPRIJS.mac.rou =================================================================== diff -u -r49398 -r49400 --- KPRIJS.mac.rou (.../KPRIJS.mac.rou) (revision 49398) +++ KPRIJS.mac.rou (.../KPRIJS.mac.rou) (revision 49400) @@ -90,6 +90,7 @@ Set KlantID = ##class(DOM.DomeinContext).Instance().GeefLegacyPartijAPI().GeefKlantPartijID(KLNr) Set Klant = ##class(DOM.DomeinContext).Instance().GeefVerkoopAPI().GeefKlant(KlantID) Set BusinessType = Klant.GeefBusinessType() + Do KKORTING, CALC If $$IsAX(KLNr, PRNr) { @@ -152,16 +153,17 @@ Set GrOrde = $Case(AxPrijsCache.PrijsEenheid, 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 + Set Korting2 = 0 + If (+LijstEUR = 0) { + Set Korting1 = 0 + } Else { + Set Korting1 = (1 - (VkpEUR / LijstEUR)) * 100 } - } else { - do ##class(vhLib.Logger).%New().Warning("Prijsberekening AX Fallback","Klant : '"_KLNr_"' Product : '"_PRNr_"' SimPPL : '"_$G(SimPPL)_"' -> Prijs : "_VkpEURAX_" -> fallback naar cache berekening '"_VkpEUR_"'") - } + } Else { + Do ##class(vhLib.Logger).%New().Debug("Prijsberekening AX Fallback", "Klant: '" _ KLNr _ "' Product: '" _ PRNr _ "' SimPPL: '" _ $Get(SimPPL) _ "' -> Prijs: " _ AxPrijsCache.AxVerkoopPrijsEuro _ " -> fallback naar cache berekening '" _ VkpEUR _ "'") + } } + 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 @@ -197,16 +199,19 @@ PRODINCLBTW(PRNr,Land,KlMunt,Korting1,Korting2,NetBrutP,KlTyp,NoSa,SimPPL,KlantGrOrde,CheckKAT,BusinessType) New R + Set R = $$PROD(.PRNr,.Korting1,.Korting2,.KlMunt,.NetBrutP,.KlTyp,.NoSa,.SimPPL,.KlantGrOrde,.CheckKAT,.BusinessType) Set $P(R,"\") = $P(R,"\")*$$GETBTWFACTOR(.Land) Quit R ProdViaCodex(PRNr,Codex) - New KLNr - Set KLNr=$Case(Codex,"L":$$$CKlantL,"R":$$$CKlantR,"S":$$$CKlantS,"B":$$$CKlantB,"G":$$$CKlantG,"P":$$$CKlantP,"C":$$$CKlantCExcl) + New KLNr - Quit:'$D(^KK1(KLNr)) "" - Quit $$KLANTPR(KLNr,PRNr) + Set KLNr=$Case(Codex,"L":$$$CKlantL,"R":$$$CKlantR,"S":$$$CKlantS,"B":$$$CKlantB,"G":$$$CKlantG,"P":$$$CKlantP,"C":$$$CKlantCExcl) + + Quit:'$Data(^KK1(KLNr)) "" + Quit $$KLANTPR(KLNr,PRNr) + PROD(PRNr,Korting1,Korting2,KlMunt,NetBrutP,KlTyp,NoSa,SimPPL,KlantGrOrde,CheckKAT,BusinessType) ; KlTyp 0=Industrie, 1=handel, P=prijslijst @@ -217,8 +222,6 @@ New BTWfactor,LijstPr1,VkpEURIncl,VkpPr1,VkpPrIncl If $$$CheckAXFase&&($G(Korting1)'="")&&("CPLRSBG"[Korting1) Quit $$ProdViaCodex(PRNr,Korting1) - - ; Opgezet via GETPROD : LEVNr,KatPrHan,KatPrInd,KatPrKs,GrOrde,GrOrdNum,PrMunt,CifPPL,LijstPr,Vork,%Vork Set:$Get(BusinessType)="" BusinessType = ##class(DOM.VKP.enu.BusinessType).B2B() @@ -363,9 +366,14 @@ GetProdBasis Set:$G(NoSa)="" NoSa="N" Set:($G(D)="") D = "\" - Set R=^KPR(PRNr,1),KatPrHan=$P(R,D,18),KatPrInd=$P(R,D,19) - Set R=^KPR(PRNr,2),KatPrKs=$P(R,D,24) - Set R="",J=$O(^KPR(PRNr,"J")) Set:$E(J)="J" R=^KPR(PRNr,J) + Set R = ^KPR(PRNr,1) + Set KatPrHan = $Piece(R, D, 18) + Set KatPrInd = $Piece(R, D, 19) + Set R = ^KPR(PRNr, 2) + Set KatPrKs = $Piece(R, D, 24) + Set R = "" + Set J = $Order(^KPR(PRNr, "J")) + Set:$E(J)="J" R=^KPR(PRNr,J) Set LEVNr=$P(R,D),PrMunt=$P(R,D,17) Set EenhAank=$P(R,D,28),EenhAank=$S("E"[EenhAank:1,EenhAank="H":100,EenhAank="M":1000,1:0) Set PPL=$P(R,D,19),%Korting=$P(R,D,9),%Vork=$P(R,D,27),%DB=$P(R,D,24),%Cif=$P(R,D,21) @@ -384,7 +392,9 @@ Set PPL=PPL/EenhAank If FaMunt'[PrMunt S R=$$MUNT^vhRtn1(PrMunt,,11,NoSa),PPL=PPL*R Set CifPPL=PPL*(100-%Korting)/100*(100+%Cif)/100,CifPPL=$J(CifPPL,1,4) Set:'CifPPL %DB=0 - Set R=CifPPL/(100-%DB/100)*%DB/100,R=$J(R,1,4),LijstPr=CifPPL+R + Set R = CifPPL / (100 - %DB / 100) * %DB / 100 + Set R = $Justify(R,1,4) + Set LijstPr = CifPPL + R Set Vork=CifPPL+R*%Vork/100,Vork=$J(Vork,1,4) Set GrOrde=$$GRORDE^PRODUKT2(PRNr,NoSa) Set:GrOrde="" GrOrde="E" @@ -403,7 +413,7 @@ If $L($G(KlantGrOrde)) Do . Set GrOrde=KlantGrOrde . Set GrOrdNum=$S(GrOrde="M":1000,GrOrde="H":100,1:1) - + If (BusinessType = ##class(DOM.VKP.enu.BusinessType).B2B()) { Set LijstPr=LijstPr*GrOrdNum If NetBrutP Do ; Bruto @@ -416,18 +426,18 @@ Set AkpEUR=+$J(CifPPL,0,4) Set LijstEUR=+$J(LijstPr/GrOrdNum/MuntPar,0,4) Set VkpEUR=+$J(VkpPr/GrOrdNum/MuntPar,0,4) - If $G(%LidVan) S VkpEUR=+$J(VkpEUR*(100-%LidVan/100),0,4) ; De verkoopprijs wordt verlaagd met de commissie vergoeding van de aankoopgroep + If $G(%LidVan) S VkpEUR=+$J(VkpEUR*(100-%LidVan/100),0,4) ; De verkoopprijs wordt verlaagd met de commissie vergoeding van de aankoopgroep } Else { Set LijstEUR = +$J(LijstPr,0,4) // Lijstprijs excl BTW in euro, per eenheid Set LijstPr1=LijstPr*GrOrdNum Set BTWfactor = $$GETBTWFACTOR("BE", PRNr) Set VkpPr1=LijstPr1*(100-Korting1/100)*(100-Korting2/100) // Verkoopprijs excl BTW in euro - Set VkpEURIncl=$$B2CROUND(VkpPr1*BTWfactor) // Verkoopprijs incl BTW in euro + Set VkpEURIncl=$$B2CROUND(VkpPr1*BTWfactor) // Verkoopprijs incl BTW in euro Set VkpEUR=+$J(VkpEURIncl/BTWfactor/GrOrdNum,0,4) // Verkoopprijs excl BTW via terugrekenen van de inclusiefprijs, in euro, per eenheid Set VkpPrIncl=$J(VkpEURIncl*MuntPar,0,2) // Verkoopprijs incl BTW in de gevraagde munt Set VkpPr=VkpPrIncl/BTWfactor // Verkoopprijs excl BTW via terugrekenen van de inclusiefprijs, in de gevraagde munt // Niet afgerond voor maximale precisie bij opnieuw bijtellen an de BTW - Set LijstPr=$J($$ROUND(LijstPr1)*MuntPar,0,2) // Lijstprijs excl BTW volgens bestaande afronding, in de gevraagde munt + Set LijstPr=$J($$ROUND(LijstPr1)*MuntPar,0,2) // Lijstprijs excl BTW volgens bestaande afronding, in de gevraagde munt Set AkpEUR=+$J(CifPPL,0,4) // Aankoopprijs in euro excl BTW, per eenheid Set VkpEURIncl=+$J(VkpEURIncl/GrOrdNum,0,4) // Verkoopprijs incl BTW in euro, per eenheid }