stregomz ;Regio omzetten [ 11/29/2003 8:10 AM ] ;Per maand, per boekjaar of cumul tov referentie. Do SHOW() Quit SHOW(Periode,Type,Opties) ;New Ind,Regio,Bestand,Popup,PerHV,PerHT,PerRV,PerRT,Som,Total,Lijst Do INIT Do FETCH,WRITE For Do COMMAND Quit:Input="-" Do CLEAN Quit COMMAND Set Input=$$SCROLL^vhLIST(.Lijst) If Input="COM" Set Input="" Do CALL^vhMenu("STREGOMZ") If Input="SPEC" Set Input="" Do CALLSPEC^vhMenu(Lijst("POS")+Lijst("SELECT")_";80","STREGOMZD","E") Quit:Input="" Do EXEC^vhMenu("STREGOMZ",.Input) Quit INIT Do:'$D(Q) .New Periode,Type,Opties .Do INIT^vhTERMINA Set:'$D(Periode) Periode=$$CALCDATE^vhDTyp($H,"M",-1,"MD") Set:$G(Type)="" Type="C" ;Cumul tov ref Set Opties=$G(Opties) Set Global="^KKAAM",Popup="REGIO" ; Huidig bestand Set:Opties["O" Global="^KKAAM20",Popup="REGIOOLD" ; Oud bestand Set Regio="",IndMax=0 Kill Ind For Set Regio=$O(^RES("KLANT","PI",Popup,"D",Regio)) Quit:Regio="" Do .Set Ind(Regio)=$P(^RES("KLANT","PI",Popup,"D",Regio),"`") Quit CLEAN Quit FETCH If Type="M" Do ; Maand .Set PerHV=Periode .Set PerHT=PerHV .Set PerRV=$$CALCDATE^vhDTyp(Periode,"M",-12,"MD") .Set PerRT=PerRV If Type="B" Do ; Boekjaar lopend boekjaar tov volledig vorig boekjaar .Set PerHV=$$CALCDATE^vhDTyp($$CALCDATE^vhDTyp(Periode,"BJ","FD"),"M") .Set PerHT=Periode .Set PerRV=$$CALCDATE^vhDTyp($$CALCDATE^vhDTyp(Periode,"BJ",-1,"FD"),"M") .Set PerRT=$$CALCDATE^vhDTyp(Periode,"M",-12,"MD") If Type="C" Do ; Cumul van 12 maanden tov vorig boekjaar .Set PerHT=Periode .Set PerHV=$$CALCDATE^vhDTyp(Periode,"M",-11,"MD") .Set PerRV=$$CALCDATE^vhDTyp(Periode,"BJ",-1,"FD") .Set PerRT=$$CALCDATE^vhDTyp(Periode,"BJ",-1,"LD") Kill Som,Total Do CALC(PerRV,PerRT,0) Do CALC(PerHV,PerHT,1) For Ind=1:1 Quit:'$D(Som(Ind)) Do .Quit:$L(Som(Ind))="" .Set:$P(Som(Ind),D,2) $P(Som(Ind),D,3)=1-$J($P(Som(Ind),D)/$P(Som(Ind),D,2),0,4) .If Ind+1#2,$P(Som(Ind-1),D) Set $P(Som(Ind),D,4)=+$J($P(Som(Ind),D)/$P(Som(Ind-1),D),0,4) For Ind=1:1:2 Set:$P(Total(Ind),D,2) $P(Total(Ind),D,3)=1-$J($P(Total(Ind),D)/$P(Total(Ind),D,2),0,4) If $P(Total(1),D) Set $P(Total(2),D,4)=+$J($P(Total(2),D)/$P(Total(1),D),0,4) Quit CALC(Van,Tot,Inc) Set Mnd=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp(Van,"M",-1),"DM4")_" " Set Tot=$$EXTDATE^vhDTyp(Tot,"DM4")_" " Set Regio="" ; Labeling If '$D(Total) Do .For Set Regio=$O(Ind(Regio)) Quit:Regio="" Do ..Set $P(Som(Ind(Regio)*2-1),D,10)=Regio ..Set $P(Som(Ind(Regio)*2),D,11)=1 .Set $P(Total(1),D,10)="Totaal" .Set $P(Total(2),D,11)=1 ; Sommatie For Set Mnd=$O(@Global@(Mnd)) Quit:Mnd="" Quit:Mnd]Tot Do .For Set Regio=$O(@Global@(Mnd,Regio)) Quit:Regio="" Do ..Set Ind=Ind(Regio)*2+Inc-1 ..Set Rec=$G(@Global@(Mnd,Regio)) ..For I=1:1:2 Set $P(Som(Ind),D,I)=$P(Som(Ind),D,I)+$P(Rec,D,I) ..For I=1:1:2 Set $P(Total(1+Inc),D,I)=$P(Total(1+Inc),D,I)+$P(Rec,D,I) Quit TITC ; CUMUL tov. referentie TITB ; Lopend BOEKJAAR tov. vorig boekjaar TITM ; MAAND tov. dezelfde maand vorig jaar WRITE Do INIT^vhLIST("STREGOMZ","CUMUL",.Lijst) Do TITEL Write @F11,@F1,@FMTI," ",$P(Titel,D)," - ",QN," ",@FMTi Set FP=100+sScr("KOL")-$L($P(Titel,D,2)) Write @F,@FMTB,$P(Titel,D,2),@FMTb Set FP=345 Write @F,Begin(1) Set FP=445 Write @F,@FMTB,Begin(2)," ",@FMTb Do WRITE^vhLIST(.Lijst) Quit TITEL Set Titel=$S(Opties["O":"Omzet per OUDE regio",1:"Omzet per regio") Set Titel=Titel_D_$P($T(@("TIT"_Type)),";",2,99) Set Begin(1)="Referentie : "_$$EXTDATE^vhDTyp(PerRV,"DM4") Set:PerRV'=PerRT Begin(1)=Begin(1)_" - "_$$EXTDATE^vhDTyp(PerRT,"DM4") Set Begin(2)=" Selectie : "_$$EXTDATE^vhDTyp(PerHV,"DM4") Set:PerHV'=PerHT Begin(2)=Begin(2)_" - "_$$EXTDATE^vhDTyp(PerHT,"DM4") Set sFL(1)=Total(1),End(1)=$$LIJN^vhFMT($NA(Lijst("FMT","CUMUL")),0) Set sFL(1)=Total(2),End(2)=$$LIJN^vhFMT($NA(Lijst("FMT","CUMUL")),0) Quit ASKDAT Do INIT^vhTERMINA Set Datum=$$ASK^vhINP("Datum : ",7,$$EXTDATE^vhDTyp(Periode,"DM4"),"Ingave maand waarvan u de regio omzetten wenst te bekijken","Formaat : JJJJ.MM of JJ.MM of MM") Set Datum=$$INTDATE^vhDTyp(Datum,"DM") Set:Datum Periode=Datum Do FETCH,WRITE Quit PRINT NEw %J Set %J=$$%J^vhRtn1() Kill ^HULP(%J) Merge ^HULP(%J)=Som Set Cnt=$O(Som("")) Set ^HULP(%J,$O(Som(""),-1)+1)=Total(1) Set ^HULP(%J,$O(Som(""),-1)+2)=Total(2) Do INIT^vhLISTO("STREGOMZ","CUMUL",.PrintD) Set PrintD(11)=Titel Set PrintD(10)="CBPRINT^STREGOMZ" ;Callback Set PrintD(1)=$NA(^HULP(%J)) Set PrintD(2,1)="92\1.1;C;L;50" Set PrintD(2,2)="92\2.1;C;L;50" Set PrintD(5)=76 Do PRINT^OUTPUT(.PrintD,"P") Quit CBPRINT(Ref) If Ref="B" Do Quit ";1\;2" .Merge FL(3)=Begin ;If Ref="E" Do Quit "BR;\;1\;2" ;.Merge FL(3)=End If $L(Ref)>1,$P(@Ref,D,10)="Totaal" Quit "BR;\;" Quit "" TRANSF ;Tranfert van de omzetten Do STORE^vhTERMINA() Set FP=2001 Write @F,@F1,!,"Tranfert van de omzetten" READ K Set Dat=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp($H,"M",-61),"DM4")_" " Set EDat=$$EXTDATE^vhDTyp($$CALCDATE^vhDTyp($H,"M",-1),"DM4")_" " Write "Datum" S Regio="" ;For Regio=0,2,3,4,1 Do For Set Regio=$O(^RES("KLANT","PI",Popup,"D",Regio)) Quit:Regio="" Do .Write $C(9),"OL.",Regio,$C(9),"OV.",Regio For Set Dat=$O(@Global@(Dat)) Quit:Dat="" Quit:Dat]EDat Do .Write *13,Dat .S Regio="" .For Set Regio=$O(^RES("KLANT","PI",Popup,"D",Regio)) Quit:Regio="" Do ..;For Regio=0,2,3,4,1 Do ..Set Rec=$G(@Global@(Dat,Regio)) ..Write $C(9),$TR($P(Rec,D,2),".",","),$C(9),$TR($P(Rec,D,1),".",",") Write "~~~" Do REFRESH^vhTERMINA() Quit