Index: BL/PR/GA/TB/tmpDev2.mac.rou =================================================================== diff -u -r531 -r547 --- BL/PR/GA/TB/tmpDev2.mac.rou (.../tmpDev2.mac.rou) (revision 531) +++ BL/PR/GA/TB/tmpDev2.mac.rou (.../tmpDev2.mac.rou) (revision 547) @@ -77,15 +77,15 @@ . Set WSLn.KostPrijs="ERROR" Quit bfwCalcWSLijnen - New Prod,i,arValidPR,Som,SomAant,WSLn,OrdStdL,arWSStdL,KLReductie,KLKorting,KLNrProd + New Prod,i,arValidPR,Som,SomAant,WSLn,OrdStdL,arWSStdL,KLReductie,KLKorting,KLNrProd,GeldigeActiesVoorOrder ;n arORefs Do bfwCalcProductsInit Set i="" For Set WSLn=WS.Lijnen.GetNext(.i) Quit:(i="") Do . ;do ChronoReset^vhLib() . Set Prod=$$bfwProductFromWSLijn(WSLn,i,WS.NietMeeleveren) . Quit:(Prod="") - . Do bfwCalcProduct(Prod,i,WS.NietMeeleveren) + . Do bfwCalcProduct(Prod,i,WS.NietMeeleveren,GeldigeActiesVoorOrder) . ;d WL^vhDBG("Tijd voor CalcProduct "_i_$C(9)_" : "_$$ChronoStepFMT^vhLib) . Set Prod="" ; Close Prod anyway Do bfwCalcProductsAfter @@ -320,7 +320,7 @@ Set (Som,SomAant)=0 Quit -bfwCalcProduct(Prod,i,pdlNietMee) +bfwCalcProduct(Prod,i,pdlNietMee,GeldigeActiesVoorOrder) Kill arValidPR If Prod=$$$tbxCodeStdLade Do . Do bfwCalcProdStdL ; all params are globally known @@ -386,7 +386,7 @@ . Set KPrijsVH=$G(Prod.Cumuls("KPrijs")) . Set KLNrPrs=$S(sDomVERW'="VHEPN":sDomKLNr, (WS.KLNummer?1.N)&&(WS.KLNummer>0):WS.KLNummer, 1:4645) . Set AKPrs=$P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,$G(%NoSa),$J(KPrijsVH,0,2)),"\",1) - . Set VKPrs=$$bfwCalcVKPrijsKlant(KPrijsVH,AKPrs) + . Set VKPrs=$$bfwCalcVKPrijsKlant(KPrijsVH,AKPrs,GeldigeActiesVoorOrder) Else Do . Set VKPrs="ERROR" . Set WSLn.Exclude=1 @@ -418,7 +418,7 @@ ;d WL^vhDBG($$ArrayToText^vhLib("Cumuls(""KPrijs"")",Prod,"Cumuls")) Set PrijsCP=$G(Prod.Cumuls("KPrijs",2,1,5))+$G(Prod.Cumuls("KPrijs",2,1,6)) ; CP links + CP rechts Set AKPrsCP=$P($$KLANTPR^KPRIJS(KLNrPrs,GenPRNr,$G(%NoSa),$J(PrijsCP,0,2)),"\",1) - Set VKPrijsCP=$$bfwCalcVKPrijsKlant(PrijsCP,AKPrsCP) + Set VKPrijsCP=$$bfwCalcVKPrijsKlant(PrijsCP,AKPrsCP,GeldigeActiesVoorOrder) If VKPrijsCP>0 { d WL^vhDBG("KPrijs CP : "_VKPrijsCP_" (is berekend via Cumuls)") Do WSLn.VoegToeActieGegevens(Actie.ActieCode,VKPrijsCP) @@ -435,7 +435,7 @@ } Quit -bfwCalcVKPrijsKlant(KPrijsVH,AKPrs) +bfwCalcVKPrijsKlant(KPrijsVH,AKPrs,GeldigeActiesVoorOrder) #define PcLijstPrs 15 #define PcVkPrsVH 14 #define HandelAankoopPrijs(%v) $P(%v,"\",$$$PcVkPrsVH) @@ -460,31 +460,33 @@ Quit:(sDomVERW="MBHO")||(sDomVERW="HFLB")||(sDomVERW="KISCH")||(sDomVERW="RAEM") HandelVKPrijs // Niet-BENELUX handels (met en zonder korting , i.e. met en zonder klantinfo) - Set VerwMarge=$CASE(sDomVERW, "HEIN":$$$MargeHEIN, "LMC":$$$MargeLMC, "SFS":$$bfwGeefPrijsFactorVoorSFS(pdlNietMee), :1) ; , "DUPO":$$$MargeDUPO, "HELMY":$$$MargeHELMY, "HFLE":$$$MargeHFLE, "MBHO":$$$MargeMBHO + Set VerwMarge=$CASE(sDomVERW, "HEIN":$$$MargeHEIN, "LMC":$$$MargeLMC, "SFS":$$bfwGeefPrijsFactorVoorSFS(pdlNietMee,GeldigeActiesVoorOrder), :1) If sDomVERW="LMC" Do . If ($G(KLReductie)<(1/$$$MargeLMC)) Set KLReductie=1 ; ( 1 / $$$MargeLMC = 0.4292 ) m.a.w. KLKorting mag niet groter zijn dan de MargeLMC . Set HandelVKPrijs=$J(AKPrs*VerwMarge*KLReductie,0,2) Else If sDomVERW="SFS" Do - . If ($G(KLReductie)<(1/$$$MargeSFS)) Set KLReductie=1 ; ( 1 / $$$MargeSFS = 0.3571 ) + . If ($G(KLReductie)<(1/VerwMarge)) Set KLReductie=1 . Set HandelVKPrijs=$J(AKPrs*VerwMarge*KLReductie,0,2) Else Do . Set HandelVKPrijs=$S((VerwMarge=1):AKPrs, 1:$J(AKPrs*VerwMarge+0.004999,0,2)) ; Opnieuw afronden na VerwMarge-calculatie Quit HandelVKPrijs -bfwGeefPrijsFactorVoorSFS(pdlNietMee) - Quit:($$bfwUseOudePrijsFactorVoorSFS) $$$MargeSFS - ; Else +bfwGeefPrijsFactorVoorSFS(pdlNietMee,GeldigeActiesVoorOrder) New PrijsFactorSFS - Set PrijsFactorSFS=$$$MargeSFSxMetCP - If (pdlNietMee["NMCP") { + If GeldigeActiesVoorOrder.Count()>0 { + // Voorlopig wordt niet gecontroleerd welke de actieve actie is, want er is slechts ��n aanwezig, nl. "CP gratis" Set PrijsFactorSFS=$$$MargeSFSxZonderCP } + Else { + Set PrijsFactorSFS=$$$MargeSFSxMetCP + If (pdlNietMee["NMCP") { + Set PrijsFactorSFS=$$$MargeSFSxZonderCP + } + } Quit PrijsFactorSFS -bfwUseOudePrijsFactorVoorSFS() - // Vanaf deze datum (01/11/2013, $H=63127) worden de nieuwe prijsfactoren actief. - Quit ($H < 63127) - + + bfwTrapCalcPrs Set HandelVKPrijs="" Quit