BLPUTZ2 ;BLUM PRIJSUITZONDERING LIJST; DMS-ES ;[ 11/05/2001 2:22 PM ] New NoSa,TypeList,AddStat,X,Y,BLKLNr,KLList If '$D(Q) S Q="K" D ^cA604 Write @F11,@F1 Set FP=202 Write @F,@F4,$P($T(+1),U,2)_" "_QN_" ",@F5 ; Type van lijst SEL2 Set TypeList=$$ASKL^vhINP("BLPUTZ","LIJSTTYPE") Quit:'$L(TypeList)!("KIV"'[TypeList) Set NoSa="" SEL3 Set:"KI"[TypeList NoSa=$$ASKL^vhINP("BLPUTZ","LIJSTNOSA") Goto SEL2:NoSa="-" Quit:NoSa="." Goto SEL3:"V"'[NoSa Set NoSa=$S("V"=NoSa:"S",1:"") Set AddStat="" SEL4 Set:"KI"[TypeList AddStat=$$ASKL^vhINP("BLPUTZ","LIJSTSTAT") Goto SEL3:AddStat="-" Quit:AddStat="." Goto SEL4:"J"'[AddStat Set AddStat=AddStat="J" Set FP=1901 Write @F,@F1 ; Welke klant Set KLList=$$SELECT^BLKLANT("M",10,"","Blum klanten, meerdere klanten selecteren door spatiebalk, [] voor afdruk") Quit:$L(KLList)<2 Set FP=1001 Write @F,@F1 Do PRINT(KLList,TypeList,NoSa,AddStat) Quit PRINT(KLList,TypeList,NoSa,AddStat) ;Verwerken van de klanten New BLKLNr,SaNo,%J,EM,BM Set %J=$$%J^vhRtn1() Set NoSa=$G(NoSa) Set AddStat=$G(AddStat) Kill ^HULP(%J) Set BM=$$CALCDATE^vhDTyp($H,"M",-13,"LD") Set EM=$$CALCDATE^vhDTyp($H,"M",-1,"LD") Set NoSa=$S(NoSa="S":"RPS",1:"RP") Set SaNo=$S(NoSa["S":"RP",1:"RPS") For Quit:KLList="" Do .Set BLKLNr=$P(KLList,";"),KLList=$P(KLList,";",2,99) .Do VKLANT(BLKLNr) If TypeList="K" Do LKLANT If TypeList="I" Do LINTERN If TypeList="V" Do LINTERN Kill ^HULP(%J) Do ADD^vhScherm(1,24) Quit VKLANT(BLKLNr) New VHKLNr,IsNet,AlgRab,FromStat,IDNr,RA,RB,GO,Temp Set VHKLNr=+$P($G(^BLBeri("K",BLKLNr)),D,3) ;Set IList="0;1;2;8" ;Set:BLKLNr#1000=250&(BLKLNr'=212250) IList="1;2;0;8" Set AlgRab=$P(^BLProd("R",BLKLNr),D,1)*100 Set IsNet=$P(^BLProd("R",BLKLNr),D,2) ; Aflopen van de produkten in de prijzuitzondering Set FromStat=0 Set IDNr="" For Set IDNr=$O(^BLProd(NoSa,BLKLNr,IDNr)) Quit:IDNr="" Do .Set (RA,RB)=^BLProd(NoSa,BLKLNr,IDNr) .Set:TypeList="V" RB=$G(^BLProd(SaNo,BLKLNr,IDNr)) .Do VPROD(BLKLNr,IDNr,RA,RB) ; Aflopen van de produkten in de schaduw prijzuitzondering If TypeList="V" For Set IDNr=$O(^BLProd(SaNo,BLKLNr,IDNr)) Quit:IDNr="" Do .Quit:$D(^BLProd(NoSa,BLKLNr,IDNr)) .Set RB=^BLProd(SaNo,BLKLNr,IDNr) .Set RA="" .Do VPROD(BLKLNr,IDNr,RA,RB) ; Bijvoegen statistiek Set FromStat=1 If AddStat For Set IDNr=$O(^BLStat("D",BLKLNr,IDNr)) Quit:IDNr="" Do .Quit:$D(^BLProd(NoSa,BLKLNr,IDNr)) .Set GO=$P($G(^BLProd(D,IDNr)),D,12) .Set RA="\"_GO_"\\\P\" .Do VPROD(BLKLNr,IDNr,RA,RA) ; Eerste lijn Set Temp=BLKLNr_D_$P(^BLBeri("K",BLKLNr),D)_D_IsNet_D_$S(IsNet&(BLKLNr=452250):"Netto prijzen in BEF (100 BEF = 34 ATS; 100 ATS = 294,12 BEF)",IsNet:"Netto prijzen in ATS"_$S(TypeList'="K":" (P24 - "_AlgRab_"%)",1:""),1:"Bruto prijzen") Set ^HULP(%J,$S(BLKLNr=212250:"",1:BLKLNr)_" "," "," "," "," ")=Temp Quit ; VPROD(BLKLNr,IDNr,RecPR,ORecPR) New PRNr,ESPrijs,ESGrOr,ESKort,ROG,KortT,HoofdGr,Groep,SubGroep,VHProd,DiffPr,VHPRijs,VHGrOr,VHKort,BPrijs,ESNet,IsBPr,AMenge,BMenge,Exist,ComMax,ROGKL New TempId,NetATS,OldNet,OldKort,OldBrut,VGLBrut,VGLNet,VHNet,VHPRec,StatVal,VHPrijs,ANet,APrijs,BGrOr,BKort,BLRec,BNP,BNet,Com Set Exist="" Set:RecPR="" Exist="S",RecPR=ORecPR Set:ORecPR="" Exist="N",ORecPR=RecPR Set (VGLBrut,ESPrijs)=$P(RecPR,D),ESGrOr=$P(RecPR,D,2),ESKort=$P(RecPR,D,3) Set (VGLNet,ESNet)=$P(RecPR,D,4) Set OldNet=$P(ORecPR,D,4),OldBrut=$P(ORecPR,D,1),OldKort=$P(ORecPR,D,3) If 'VGLNet Set VGLNet=$J(ESPrijs*(1-ESKort)+0.004,0,2) If 'OldNet Set OldNet=$J(OldBrut*(1-OldKort)+0.004,0,2) Set BNP=$P(RecPR,D,5) If BNP="B" Set ESNet=ESPrijs*(1-ESKort) Set (HoofdGr,Groep,SubGroep)="~",KortT="",VHProd="*" If '$D(^BLProd("D",IDNr)) Set KortT="~~~ Onbekend in P24 ~~~",BLRec="",PrijsRec="" Else Set BLRec=$G(^BLProd("D",IDNr)),KortT=$P(BLRec,D),PrijsRec=$$PRIJS^BLPRGEG(IDNr,,,1) Set ROGKL=$P(BLRec,D,16) Set IsBPr=0,VHProd=0 If BLKLNr'=212250 Set IsBPr=$P(RecPR,D,9) ; Nakijken of produkt voor die BLUM klant bestaat in ^PRPUTZ Set PRNr=$$GETVH^BLPROD(IDNr,BLKLNr) Set KLRef="" If PRNr Do .Set KortT=$P(^KPR(PRNr,0),D) .Set $E(IDNr)=$E($P(^KPR(PRNr,2),D,25)) .Set R=$O(^KPR(PRNr,"I")) .Set VHProd=1 .If $E(R)="I" Set R=^KPR(PRNr,R),HoofdGr=$P(R,D),Groep=$P(R,D,2),SubGroep=$P(R,D,3) .Set:'$L(KortT) KortT=$P(^KPR(PRNr,0),D) .Set R=$O(^KPR(PRNr,"J")) .If BLKLNr=212250,$E(R)="J" Set R=^KPR(PRNr,R),IsBPr=$P(R,D,18) .If TypeList="K",$D(^PAKKET("IP",PRNr,VHKLNr)) Do ..Set PakNr="" ..For Set PakNr=$O(^PAKKET("IP",PRNr,VHKLNr,PakNr)) Quit:PakNr="" Do ...Set KLRef=KLRef_"; "_$P(^PAKKET("D",PakNr),D,2) ..Set $E(KLRef,1,2)="" Set APrijs=$P(PrijsRec,D,1) Set BPrijs="" Set VHGrOr=$P(PrijsRec,D,2) Set AMenge=$P(PrijsRec,D,7) Set BMenge="" Set ROG=$$ROG^BLPRGEG(ROGKL,0,BLKLNr) Set VHKort=$P(PrijsRec,D,3) Set ComMax=$P(ROG,D,4) Set ROG=$P(ROG,D) If APrijs Set ESPrijs=APrijs,ESGrOr=VHGrOr If IsBPr,BPrijs Set ESPrijs=BPrijs,ESGrOr=VHGrOr ;Set ESPrijs=ESPrijs*$S(BLKLNr=452250:299.94/100,1:1) If BNP="P" Set ESNet=ESPrijs*(1-VHKort),ESKort=VHKort If BNP="B" Set ESNet=ESPrijs*(1-ESKort) If IsNet Set ESNet=$J(ESNet+.004,0,2) Set DiffPr=0 ;Set DiffPr=VGLNet-.02>ESNet!(VGLNet+.02Prijs Set Com=1,Lim=0 Set Prijs=Bruto*(1-ROG)*(1-.0375)*.9998 If 'Com,Netto>Prijs Set Com=.8,Lim=ROG Set Prijs=Bruto*(1-ROG)*(1-.075)*.9998 If 'Com,Netto>Prijs Set Com=.6,Lim=(1-(1-ROG*(1-.0375))) Set:'Com Com=.4,Lim=(1-(1-ROG*(1-.075))) Set Com=ComMax*Com Set Rec=Com_D_Lim If BBruto'=Bruto,Lim Do ; Recalc naar BPrijs .Set Prijs=Bruto*(1-Lim),Lim=Prijs/BBruto-1 Set Check=0 If Lim Do ; Nakijken of dat limiet interressant is .Set Prijs=Bruto*(1-Lim)*(1-(Com+1/100)) .Set Netto=Netto*(1-(Com/100)) .Set Check=PrijsEM) Do .Set Qty=Qty+$P(^(BM),D) .Set Val=Val+$P(^(BM),D,2) Quit Qty_D_Val RENUMBER New Count,HoofdGr,Groep,SubGroep,IDNr,KortT Set Count=0,HoofdGr="" For Set HoofdGr=$O(^HULP(%J,HoofdGr)) Quit:HoofdGr="" Do .Set Groep="" .For Set Groep=$O(^HULP(%J,HoofdGr,Groep)) Quit:Groep="" Do ..Set SubGroep="" ..For Set SubGroep=$O(^HULP(%J,HoofdGr,Groep,SubGroep)) Quit:SubGroep="" Do ...Set KortT="" ...For Set KortT=$O(^HULP(%J,HoofdGr,Groep,SubGroep,KortT)) Quit:KortT="" Do ....Set IDNr="" ....For Set IDNr=$O(^HULP(%J,HoofdGr,Groep,SubGroep,KortT,IDNr)) Quit:IDNr="" Do .....Set R=^HULP(%J,HoofdGr,Groep,SubGroep,KortT,IDNr) Kill ^(IDNr) .....Set Count=Count+1,^HULP(%J,Count)=R