STAT ;Omzet per klant voor Peter Van Hoecke Set KLId=0 Set Dev=0 Set Dev=$$OPEN^vhDEV(,"KlantOmzetNewPrijs.txt","W") Use Dev Set Begin=$$INTDATE^vhDTyp("01-06-03") Set End=$$INTDATE^vhDTyp("31-05-04") Set BeginMnd=$$EXTDATE^vhDTyp(Begin,"DM4")_" " Set EndMnd=$$EXTDATE^vhDTyp(End,"DM4")_" " Write $TR("KLNr,KLNm,Regio,Aktief,TypeKl,Aktiviteit,TotOmzetR,TotMargeR,PrijsKL,PrijsKlS,OmzetH,MargeH,OmzetS,MargeS,OmzetR,MargeR,OLPrijsKl,OLPrijsKlS,OLOmzetH,OLMargeH,OLOmzetS,OLMargeS,OLOmzetR,OLMargeR",",",$C(9)),! Set KLNr=0 ;Write "Begin ",Begin," ",$$EXTDATE^vhDTyp(-Begin,"DK"),! ;Write "End ",End," ",$$EXTDATE^vhDTyp(-End,"DK"),! Set KLNr=0 ;1238 For Set KLNr=$O(^KSTKL(KLNr)) Quit:KLNr="" Do ;Quit:KLNr=1239 . . Kill C . Set Dat=End-1 . Do STATONEKLANT(KLNr,.C) . Set StatRec=$$KLANT^STAT(KLNr,0,BeginMnd,EndMnd,"1,4") . Set KLId=^KK1(KLNr) . Set KLNm=$P(^KKL(KLId,0),D,2) . Set Regio=$P(^KKL(KLId,0),D,20) . Set PrijsKl=$P(^KKL(KLId,2),D,3) . Set PrijsKlOL=$P(^KKL(KLId,2),D,4) . Set:PrijsKlOL="" PrijsKlOL="["_PrijsKl_"]" . Set PrijsKlS=$P(^KKL(KLId,2),D,25) . Set:PrijsKlS="" PrijsKlS=PrijsKl . Set PrijsKlOLS=$P(^KKL(KLId,2),D,24) . Set:PrijsKlOLS="" PrijsKlOLS=PrijsKlS . Set Aktief=$P(^KKL(KLId,2),D,10) . Set TypeKl=$P(^KKL(KLId,1),D,25) . Set Aktivit=$P(^KKL(KLId,1),D,11) . Set Utz="" . Set PrijsKl=PrijsKl_$S($D(^KLPUTZ("N",KLNr)):"+",1:"") . Set PrijsKlS=PrijsKlS_$S($D(^KLPUTZ("S",KLNr)):"+",1:"") . Set PrijsKlOL=PrijsKlOL_$S($D(^KLPUTZ("N",KLNr,"14OL ")):"+",1:"") . Set PrijsKlOLS=PrijsKlOLS_$S($D(^KLPUTZ("S",KLNr,"14OL ")):"+",1:"") . Set (Klas,LEVNr)="" . Set Rec=$TR($G(C),".",",") . Write KLNr,$C(9),KLNm,$C(9),Regio,$C(9),Aktief,$C(9),TypeKl,$C(9),Aktivit . For I=3:1:4 Write *9,$TR($P(StatRec,D,I),".",",") . Write *9,PrijsKl,*9,PrijsKlS . For I=1:1:6 Write *9,$P(Rec,D,I) . Write *9,PrijsKlOL,*9,PrijsKlOLS . For I=7:1:12 Write *9,$P(Rec,D,I) . Write ! Close:0'[Dev Dev Quit STATONEKLANT(KLNr,C) New Dat,StatRec,PRNr Set PRNr=0 For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do . Quit:PRNr'?4.7N . Quit:'$D(^KPR(PRNr)) . Set StatRec=$$KLANT^STAT(KLNr,PRNr,BeginMnd,EndMnd,"1,4") . Set Qty=$P(StatRec,D,1) . Quit:Qty<1 ; geen terugnames . Set:($P(^KPR(PRNr,0),D,3)'="")&&($P(^KPR(PRNr,0),D,3)'?4.7N) Qty=0 ; geen generisch product wel afgeleide producten . Set ROmz=$P(StatRec,D,3) . Set RMar=$P(StatRec,D,4) . Set LEVNr=$E($O(^KPR(PRNr,"J")),2,5) . Set Klas=$O(^KPR(PRNr,"I")) . Set Klas=$P(^KPR(PRNr,Klas),D,2) . Kill NoUitzonderingCalc . Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr) . ;If $P(Prijs,D,8)="K" Q ;Write PRNr,$P(^KPR(PRNr,0),D),! r k . ;Set NoUitzonderingCalc=1 . Set Prijs2=$$KLANTPR^KPRIJS(KLNr,PRNr,"S") . Set HOmz=Qty*$P(Prijs,D,14) . Set HAkp=Qty*$P(Prijs,D,13) . Set HLijstP=Qty*$P(Prijs2,D,15) . Set SOmz=Qty*$P(Prijs2,D,14) . Set SAkp=Qty*$P(Prijs2,D,13) . Set SLijstP=Qty*$P(Prijs2,D,15) . Set Rec=$G(C) . Set Pos=$S($$ISORGAL^ORGALUX(PRNr):6,1:0) . Set $P(Rec,D,Pos+1)=$P(Rec,D,Pos+1)+HOmz . Set $P(Rec,D,Pos+2)=$P(Rec,D,Pos+2)+(HOmz-HAkp) . Set $P(Rec,D,Pos+3)=$P(Rec,D,Pos+3)+SOmz . Set $P(Rec,D,Pos+4)=$P(Rec,D,Pos+4)+(SOmz-SAkp) . Set $P(Rec,D,Pos+5)=$P(Rec,D,Pos+5)+ROmz . Set $P(Rec,D,Pos+6)=$P(Rec,D,Pos+6)+RMar . Set C=Rec Quit STATONE(KLNr) New Dat Set PRNr=0 For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do . Quit:PRNr'?4.7N . Quit:'$D(^KPR(PRNr)) . Quit:$P(^KPR(PRNr,0),D,3)'="" ; geen afgeleide producten . Quit:'$$ISORGAL^PRODUKT2(PRNr) . Set StatRec=$$KLANT^STAT(KLNr,PRNr,BeginMnd,EndMnd,"1,4") . Set Qty=$P(StatRec,D,1) . Quit:Qty<1 ; geen terugnames . Set ROmz=$P(StatRec,D,3) . Set RMar=$P(StatRec,D,4) . Set LEVNr=$E($O(^KPR(PRNr,"J")),2,5) . Set Klas=$O(^KPR(PRNr,"I")) . Set Klas=$P(^KPR(PRNr,Klas),D,2) . Kill NoUitzonderingCalc . Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr) . If $P(Prijs,D,8)="K" Q ;Write PRNr,$P(^KPR(PRNr,0),D),! r k . Set NoUitzonderingCalc=1 . Set Prijs2=$$KLANTPR^KPRIJS(KLNr,PRNr) . Set HOmz=Qty*$P(Prijs,D,14) . Set HAkp=Qty*$P(Prijs,D,13) . Set HLijstP=Qty*$P(Prijs2,D,15) . Set SOmz=Qty*$P(Prijs2,D,14) . Set SAkp=Qty*$P(Prijs2,D,13) . Set SLijstP=Qty*$P(Prijs2,D,15) .;If KLNr=1239 Do ..Write PRNr,*9,$P(^KPR(PRNr,0),D),*9,HOmz,*9,SOmz,! .Set Rec=$G(C(LEVNr,Klas)) .Set $P(Rec,D,1)=$P(Rec,D,1)+HOmz .Set $P(Rec,D,2)=$P(Rec,D,2)+(HOmz-HAkp) .Set $P(Rec,D,3)=$P(Rec,D,3)+SOmz .Set $P(Rec,D,4)=$P(Rec,D,4)+(SOmz-SAkp) .Set $P(Rec,D,5)=$P(Rec,D,5)+ROmz .Set $P(Rec,D,6)=$P(Rec,D,6)+RMar .Set $P(Rec,D,7)=$P(Rec,D,7)+HAkp .Set $P(Rec,D,8)=$P(Rec,D,8)+HLijstP .Set C(LEVNr,Klas)=Rec Quit STATPRIJS(KLNr,PRNr,Aantal) New R,sFL,KlMunt,IsHandel,BrutoPr,Korting1,Korting2,Prijs Do FETCHKL^UTILI(KLNr,"sFL") Set KlMunt=$P(sFL(0),D,11) If KlMunt="" Set KlMunt=$$FADEF^vhRtn1() Set IsHandel=$P(sFL(1),D,25),BrutoPr=$P(sFL(2),D,5) Do STORE^vhTERMINA() Set R=$$GetKorting^KORTING(KLNr,PRNr,,,Aantal) Do REFRESH^vhTERMINA() Set Korting1=$LG(R,2),Korting2=$LG(R,3) Set R=$$PROD^KPRIJS(PRNr,Korting1,Korting2,KlMunt,BrutoPr,IsHandel) Quit R FAKT ;Omzet per klant voor Peter Van Hoecke Set KLId=0 Set Dev=0 Set Dev=$$OPEN^vhDEV(,"NewPrijs.txt","W") Use Dev Set Begin=-$$INTDATE^vhDTyp("01-07-03") Set End=-$$INTDATE^vhDTyp("30-06-04") Write $TR("KLNr,KLNm,Regio,PrijsKL,PrijsKlS,Aktief,TypeKl,Aktiviteit,LevNr,LevNm,Klas,OmzetH,MargeH,OmzetS,MargeS,OmzetR,MargeR,OmzetAll,MargeAll",",",$C(9)),! Set KLNr=0 ;Write "Begin ",Begin," ",$$EXTDATE^vhDTyp(-Begin,"DK"),! ;Write "End ",End," ",$$EXTDATE^vhDTyp(-End,"DK"),! ;Set KLNr=7119 For Set KLNr=$O(^KFA1("F",KLNr)) Quit:KLNr="" Do ;Quit:KLNr>7120 . . Kill C . Set Dat=End-1 . For Set Dat=$O(^KFA1("F",KLNr,Dat)) Quit:Dat="" Quit:Dat>Begin Do . . ;Write Dat," ",$$EXTDATE^vhDTyp(-Dat,"DK") . . Set FAKNr="" . . For Set FAKNr=$O(^KFA1("F",KLNr,Dat,FAKNr)) Quit:FAKNr="" Do . . . Do FAK(KLNr,FAKNr) . Set KLId=^KK1(KLNr) . Set KLNm=$P(^KKL(KLId,0),D,2) . Set Regio=$P(^KKL(KLId,0),D,20) . Set PrijsKl=$P(^KKL(KLId,2),D,3) . Set PrijsKlOL=$P(^KKL(KLId,2),D,4) . Set PrijsKlS=$P(^KKL(KLId,2),D,25) . Set PrijsKlSOL=$P(^KKL(KLId,2),D,24) . Set Aktief=$P(^KKL(KLId,2),D,10) . Set TypeKl=$P(^KKL(KLId,1),D,25) . Set Aktivit=$P(^KKL(KLId,1),D,11) . Set Utz="" . Set Utz=$S($D(^KLPUTZ("N",KLNr)):"(+)",1:"") . Set UtzS=$S($D(^KLPUTZ("S",KLNr)):"(+)",1:"") . Quit:'$D(C) . Set (Klas,LEVNr)="" . For Set LEVNr=$O(C(LEVNr)) Quit:LEVNr="" Do .. Set LEVNm=$P($G(^KLE($G(^KL1($P(LEVNr,";")),"*"),0)),D,2) .. For Set Klas=$O(C(LEVNr,Klas)) Quit:Klas="" Do ... Set Rec=$TR(C(LEVNr,Klas),".",",") ... Write KLNr,$C(9),KLNm,$C(9),Regio,$C(9),PrijsKl,"/",PrijsKlOL,Utz,$C(9),PrijsKlS,"/",PrijsKlSOL,UtzS,$C(9),Aktief,$C(9),TypeKl,$C(9),Aktivit,$C(9) ... Write $P(LEVNr,";",2),$C(9),LEVNm,$C(9),Klas,$C(9),$P(Rec,D,1),$C(9),$P(Rec,D,2),$C(9),$P(Rec,D,3),*9,$P(Rec,D,4),$C(9),$P(Rec,D,7),*9,$P(Rec,D,8),$C(9),$P(Rec,D,5),$C(9),$P(Rec,D,6),! Close:0'[Dev Dev Quit FAK(KLNr,FAKNr) New Dat Set BONNr="U" For Set BONNr=$O(^KFA("F",FAKNr,BONNr)) Quit:$E(BONNr)'="U" Do .Set LNr=99 .For Set LNr=$O(^KFA("F",FAKNr,BONNr,LNr)) Quit:LNr="" Do .. Set LRec=^KFA("F",FAKNr,BONNr,LNr) .. Set PRNr=$P(LRec,D,2) .. Quit:PRNr'?4.7N .. ;Quit:'$D(^KPR(PRNr)) .. ;Quit:'($P(^KPR(PRNr,0),D,3)=""||($P(^KPR(PRNr,0),D,3)?4.7N)) ; geen afgeleide producten .. ;Quit:$$ISORGAL^PRODUKT2(PRNr) .. Set Qty=$P(LRec,D,3) .. ;Quit:Qty<1 ; geen terugnames .. Set ROmz=$P(LRec,D,34) .. Set RMar=ROmz-$P(LRec,D,33) .. Set RLijstP=$P(LRec,D,32) .. Set (LEVNr,ProdGrp)="*" .. Kill Korting .. If '$L($P(LRec,D,26)) Set Korting=$TR($P(LRec,D,7),"#",D) ;Write KLNr," ",PRNr," ",Korting,! ; gebruikte Korting zonder manuele aanpassing .. Set (ROmz2,RMar2,HOmz,HAkp,SOmz,SAkp)=0 .. Set Mask="" .. If $D(^KPR(PRNr)) Do .. .Quit:'($P(^KPR(PRNr,0),D,3)=""||($P(^KPR(PRNr,0),D,3)?4.7N)) .. .Set LEVNr=$E($O(^KPR(PRNr,"J")),2,5) .. .Set Klas=$O(^KPR(PRNr,"I")) .. .Set Klas=$P(^KPR(PRNr,Klas),D,2) .. .Set ProdGrp=$$gpvProdGrp^Prod.Product.KPRPropViaNr(PRNr) .. .Set:";71926;71927;71924;71925;71928;71929;72826;72827;82859;82649;71581;71580;104752;19114;"[(";"_PRNr_";") Mask="5" .. .Set:";104752;19114;"[(";"_PRNr_";") Mask="Z" .. .Set:";89510;89511;82388;76364;76365;102387;88893;126389;112141;112140;121063;123557;112139;121008;117032;106797;88898;109689;103514;"[(";"_PRNr_";") Mask="B" .. .;set Mask="" .. .Set Prijs=$$PRIJS(KLNr,PRNr,Qty,"N",.Korting) .. .;If $P(Prijs,D,8)="K" Q ;Write PRNr,$P(^KPR(PRNr,0),D),! r k .. .Set Prijs2=$$PRIJS(KLNr,PRNr,Qty,"S") .. .Set HOmz=Qty*$P(Prijs,D,14) .. .Set HAkp=Qty*$P(Prijs,D,13) .. .Set HLijstP=Qty*$P(Prijs2,D,15) .. .Set SOmz=Qty*$P(Prijs2,D,14) .. .Set SAkp=Qty*$P(Prijs2,D,13) .. .Set SLijstP=Qty*$P(Prijs2,D,15) .. .Set ROmz2=ROmz .. .Set RMar2=RMar ..Set Rec=$G(C(LEVNr_";"_Mask,ProdGrp)) ..Set $P(Rec,D,1)=$P(Rec,D,1)+HOmz ..Set $P(Rec,D,2)=$P(Rec,D,2)+(HOmz-HAkp) ..Set $P(Rec,D,3)=$P(Rec,D,3)+SOmz ..Set $P(Rec,D,4)=$P(Rec,D,4)+(SOmz-SAkp) ..Set $P(Rec,D,5)=$P(Rec,D,5)+ROmz ..Set $P(Rec,D,6)=$P(Rec,D,6)+RMar ..Set $P(Rec,D,7)=$P(Rec,D,7)+ROmz2 ..Set $P(Rec,D,8)=$P(Rec,D,8)+RMar2 ..Set C(LEVNr_";"_Mask,ProdGrp)=Rec .;Set C("*","*")="" ; Voor elke klant een blanko record invoegen Quit PRIJS(KLNr,PRNr,Aantal,NoSa,Korting) If NoSa="S" Quit $$KlantPrijs^KPRIJS(KLNr,PRNr,"S",Aantal) New R,sFL,KlMunt,IsHandel,BrutoPr,Korting1,Korting2,Prijs Do FETCHKL^UTILI(KLNr,"sFL") Set KlMunt=$P(sFL(0),D,11) If KlMunt="" Set KlMunt=$$FADEF^vhRtn1() Set IsHandel=$P(sFL(1),D,25),BrutoPr=$P(sFL(2),D,5) If $D(Korting),$P(^KKL(^KK1(KLNr),2),D,3)="P" Do . ;Write KLNr," ",PRNr," ",Korting,! . Set R=$TR(Korting,"#",D) . Set Korting1=$P(R,D),Korting2=$P(R,D,2) Else Do . Do STORE^vhTERMINA() . Set R=$$GetKorting^KORTING(KLNr,PRNr,NoSa,,Aantal) . Do REFRESH^vhTERMINA() . Set Korting1=$LG(R,2),Korting2=$LG(R,3) Set R=$$PROD^KPRIJS(PRNr,Korting1,Korting2,KlMunt,BrutoPr,IsHandel,NoSa) Quit R DOEL ;Omzet per klant voor Peter Van Hoecke Set KLId=0 Set Dev=0 Set Dev=$$OPEN^vhDEV(,"NewPrijs.txt","W") Use Dev Write $TR("KLNr,KLNm,Regio,PrijsKL,Uitz,Aktief,TypeKl,Aktiviteit,LevNr,LevNm,Klas,OmzetH,MargeH,LijstPrijsH,OmzetHZndU,MargeHZndU,LijstPrijsZndU,,OmzetR,MargeR",",",$C(9)),! For Set KLId=$O(^KKL(KLId)) Quit:KLId="" Do .Set KLNm=$P(^KKL(KLId,0),D,2) .Set KLNr=$P(^KKL(KLId,0),D,1) .Set Regio=$P(^KKL(KLId,0),D,20) .Set PrijsKl=$P(^KKL(KLId,2),D,3) .Set Aktief=$P(^KKL(KLId,2),D,10) .Set TypeKl=$P(^KKL(KLId,1),D,25) .Set Aktivit=$P(^KKL(KLId,1),D,11) .Set Utz="" .Set Utz=Utz_$S($D(^KLPUTZ("N",KLNr)):"H",1:"") .;Set Utz=Utz_$S($D(^KLPUTZ("S",KLNr)):"S",1:"") .Kill C .Set PRNr=0 .For Set PRNr=$O(^KSTKL(KLNr,PRNr)) Quit:PRNr="" Do ..Quit:$P(^KPR(PRNr,0),D,3)'="" ..Set StatRec=$$KLANT^STAT(KLNr,PRNr,"2002.07 ","2003.06 ","1,4") ..Set Qty=$P(StatRec,D,1) ..Set ROmz=$P(StatRec,D,3) ..Set RMar=$P(StatRec,D,4) ..Quit:'Qty&'ROmz&'RMar ..;Quit:$L($P(^KPR(PRNr,0),D,3)) ; Geen afgeleide producten ..Set LEVNr=$E($O(^KPR(PRNr,"J")),2,5) ..Set Klas=$O(^KPR(PRNr,"I")) ..;Quit:$P(Klas,D)["AL" ; Geen ALU producten ..Set Klas=$P(^KPR(PRNr,Klas),D,2) ..Kill NoUitzonderingCalc ..Set Prijs=$$KLANTPR^KPRIJS(KLNr,PRNr,"N") ..Set NoUitzonderingCalc=1 ..Set Prijs2=$$KLANTPR^KPRIJS(KLNr,PRNr,"N") ..Set HOmz=Qty*$P(Prijs,D,14) ..Set HAkp=Qty*$P(Prijs,D,13) ..Set LijstP=Qty*$P(Prijs2,D,15) ..Set SOmz=Qty*$P(Prijs2,D,14) ..Set SAkp=Qty*$P(Prijs2,D,13) ..Set SLijstP=Qty*$P(Prijs2,D,15) ..;If KLNr=1239 Do ...Write PRNr,*9,$P(^KPR(PRNr,0),D),*9,HOmz,*9,SOmz,! ..Set Rec=$G(C(LEVNr,Klas)) ..Set $P(Rec,D,1)=$P(Rec,D,1)+HOmz ..Set $P(Rec,D,2)=$P(Rec,D,2)+(HOmz-HAkp) ..Set $P(Rec,D,7)=$P(Rec,D,7)+LijstP ..Set $P(Rec,D,3)=$P(Rec,D,3)+SOmz ..Set $P(Rec,D,4)=$P(Rec,D,4)+(SOmz-SAkp) ..Set $P(Rec,D,8)=$P(Rec,D,8)+SLijstP ..Set $P(Rec,D,5)=$P(Rec,D,5)+ROmz ..Set $P(Rec,D,6)=$P(Rec,D,6)+RMar ..Set C(LEVNr,Klas)=Rec .;Set C("*","*")="" ; Voor elke klant een blanko record invoegen .Quit:'$D(C) .Set (Klas,LEVNr)="" .For Set LEVNr=$O(C(LEVNr)) Quit:LEVNr="" Do ..Set LEVNm=$P($G(^KLE($G(^KL1(LEVNr),"*"),0)),D,2) ..For Set Klas=$O(C(LEVNr,Klas)) Quit:Klas="" Do ...Set Rec=$TR(C(LEVNr,Klas),".",",") ...Write KLNr,$C(9),KLNm,$C(9),Regio,$C(9),PrijsKl,$C(9),Utz,$C(9),Aktief,$C(9),TypeKl,$C(9),Aktivit,$C(9) ...Write LEVNr,$C(9),LEVNm,$C(9),Klas,$C(9),$P(Rec,D,1),$C(9),$P(Rec,D,2),$C(9),$P(Rec,D,7),*9,$P(Rec,D,3),$C(9),$P(Rec,D,4),*9,$P(Rec,D,8),$C(9),$P(Rec,D,5),$C(9),$P(Rec,D,6),! Close:0'[Dev Dev Quit