Index: KPRIJS.mac.rou =================================================================== diff -u -r48147 -r48610 --- KPRIJS.mac.rou (.../KPRIJS.mac.rou) (revision 48147) +++ KPRIJS.mac.rou (.../KPRIJS.mac.rou) (revision 48610) @@ -94,26 +94,46 @@ // VHIP907: Verkoopprijzen // VHIP907->MVI: voorlopig laat ik alles invullen in fase 2a en overschrijf ik enkel de waarden die ax teruggeeft - New SalesPriceService, Output, OutputLine If $$IsAX(KLNr,PRNr) { + New SalesPriceService, Result,PriceUnit 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):CifPPL,1:"")) - + Set Result = SalesPriceService.GeefPrijs(KLNr, PRNr, $S($G(SimPPL):SimPPL,1:""),.Aantal) Set VkpEUR = Result.Price - Set VkpPr = VkpEUR Set LijstEUR = Result.GrossPrice + Set PriceUnit=+Result.PriceUnit + If SalesPriceService.PrijzenInclBTW() + { + 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 - Set Korting1=(1-(VkpEUR/LijstEUR))*100 + if +LijstEUR=0 { + Set Korting1=0 + } else { + Set Korting1=(1-(VkpEUR/LijstEUR))*100 + } } 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&";") +} // Set twee kortingen om van in % (*100) naar ��n korting in % @@ -125,13 +145,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 +161,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 +272,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