cAFE1 ;Functies ivm Euro ;%AFE1 ; [ 10/23/01 9:11 AM ] G YZ ; T0 ;Functies ivm Euro ; T1 ;Muntcode ; niet toegestaan in ; T2 ;Bedragen in; ; T0F ;Fonctions conc. Euro ; T1F ;Code mon. ; n'est pas permis dans ; T2F ;Montants en; ; T0E ;Functions Euro ; T1E ;Currency ; not allowed in ; T2E ;Amounts in; ; ; ********************* Nieuwe functies ivm Euro ********************* ; S1 S RZR=$ZR ; onthouden last reference S1Z Q ; S2 I RZR["(",$O(@RZR) ; terugzetten last reference I RZR'["(",$D(@RZR) S2Z Q ; ;----------------------------------------------------------------------------- ; omrekenen bedrag cumul/omzet tussen BEF/EUR BEDR(Q,BE,MI,MO,SP) ; input: 1. Q : Q-waarde ; 2. BE: bedrag uit cumulnode/dagboek ; 3. MI: muntcode input ; 4. MO: muntcode output ; 5. SP: soort par. (A=aankoop/V=verkoop/F=fin.) ; output: omgerekend bedrag, afgerond op decimalen muntcode output S $ZT="TRAP^"_$T(+0) N BA11,BA39,R,RP,RZR D S1 S BA39=$G(@("^"_Q_"BA(39)")) I $P(BA39,D,6)="" S R=BE G BEDRZ ; P1 I MI'=$P(BA39,D,7),MI'=$P(BA39,D,9) S K=$P($T(@("T1"_QT)),U,2)_MI_$P($T(@("T1"_QT)),U,3)_"BEDR^"_$T(+0) D TXT^cAFA1(250) S R=0 G BEDRZ I MO'=$P(BA39,D,7),MO'=$P(BA39,D,9) S K=$P($T(@("T1"_QT)),U,2)_MO_$P($T(@("T1"_QT)),U,3)_"BEDR^"_$T(+0) D TXT^cAFA1(250) S R=0 G BEDRZ I MI=MO S R=BE G BEDRZ I MI="" S MI="? BEDR^"_$T(+0)_" ?" I '$D(^(11,MI)) S K=$P($T(@("T1"_QT)),U,2)_MI D TXT^cAFA1(76) S R=0 G BEDRZ S BA11=^(MI) S RP=$F("AVF",SP)+2+($P(BA39,D)=MI*4) S R=$J(BE*$P(BA11,D,RP)/$P(BA11,D,3),0,$P(BA39,D,$S(MO=$P(BA39,D,7):8,1:10))) BEDRZ D S2 Q R ; ;----------------------------------------------------------------------------- ; omrekenen via driehoeksmethode OMREK(Q,BE,MI,MO,SP,AD) ; input: 1. Q : Q-waarde ; 2. BE: bedrag uit cumulnode/dagboek ; 3. MI: muntcode input ; 4. MO: muntcode output ; 5. SP: soort par. (A=aankoop/V=verkoop/F=fin.) ; 6. AD: aantal dec. (""=decimalen muntcode output) ; output: omgerekend bedrag, afgerond op AD S $ZT="TRAP^"_$T(+0) N BA11,BA39,R,RZR D S1 S BA39=$G(@("^"_Q_"BA(39)")),R=BE I MI="" S MI=$P(BA39,D) S BA11=$G(@("^"_Q_"BA(11,MI)"),MI_"\\1\1\1\1\"_QD) I MI'=MO S R=BE*$P(BA11,D,$F("AVF",SP)+2)/$P(BA11,D,3) I MO="" S MO=$P(BA39,D) S BA11=$G(@("^"_Q_"BA(11,MO)"),MO_"\\1\1\1\1\"_QD) I MI'=MO S R=R*$P(BA11,D,3)/$P(BA11,D,$F("AVF",SP)+2) I AD="" S AD=$P(BA11,D,7) I AD<99 S R=$J(R,0,AD) OMREKZ D S2 Q R ; ;----------------------------------------------------------------------------- ; bepalen BoekJaar adhv Q-waarde & boekingsmaand BJ(Q,BP) ; input: 1. Q : Q-waarde ; 2. BP: boekingsmaand, onder de vorm JJJJ.MM ; output: boekjaar waarin BP valt S $ZT="TRAP^"_$T(+0) N BA2,R,R2,R3,RBJ,RZR D S1 S BA2=$G(@("^"_Q_"BA(2)")),R=0,RBJ=$P(BA2,D,2)\1 BJA I BP>$P(BA2,D,2) D I R2-RBJ<100 G BJA . S R2=$P(BA2,D,2),R3=R2 . S R2=$E(R2+1_0,1,7) ; theoretisch vooruitlopen . S BA2=R3\1*12+(R3#1*100)_D_R2_D_R3_D_BA2 BJB I BP>$P(BA2,D,3) S R=$P(BA2,D,2)\1 G BJZ S R3=$P(BA2,D,3),BA2=$P(BA2,D,4,999) I $L(BA2) G BJB S R2=R3,R3=$E(R3-1_0,1,7) ; theoretisch terugkeren S BA2=R3\1*12+(R3#1*100)_D_R2_D_R3 I RBJ-R2<100 G BJB BJZ D S2 Q R ; ;----------------------------------------------------------------------------- ; berekenen beginsaldo in muntcode Cumuls BSAL(Q,BJ,GL,I1) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; 3. GL: bestand (AR=rek./KL=klant/LE=lev.) ; 4. I1: index1 uit bestand ; output: bedrag in muntcode cumul vlgs. boekjaar S $ZT="TRAP^"_$T(+0) N BA39,M1,M2,R,RZR D S1 S BA39=$G(@("^"_Q_"BA(39)")),R=0 N RS0,RS1,RS2,RS3,RS4,RS5 S RS0=DJ_"."_DM,RS5=0 ; afgeleide S2^cANT79 S RS2=@("^"_Q_"BA(2)"),RS1=$G(^(26)),M1=$$MNTC(Q,$P(RS2,D,2)\1) I $D(@("^"_Q_GL_"(I1,0)")) S RS4=$P(RS2,D,2) I RS0>RS4 S RS1=RS1+1,RS5=1,RS3=RS4\1*12+(RS4#1*100)_D_$E(RS4+1_0,1,7)_D_RS4_D,RS2=RS3_RS2 N R1 S R1=$P(RS2,D,2)\1-BJ I R1<0 S R1=0 BSALA I RS1<(R1+2) S RS3=$P(RS2,D,RS1+1*3),RS4=$E(RS3-1_0,1,7),RS2=RS2_D_(RS4\1*12+(RS4#1*100))_D_RS3_D_RS4,RS1=RS1+1 G BSALA S:R1 RS5=0 S RS4=$P(RS2,D,R1*3+2)\1 I GL'="AR"!'$P(^(0),D,20)!'RS5 S R=R+$G(^(RS4-RS5)) I RS5,GL'="AR"!'$P(^(0),D,20) F RS5=2:1:24 S R=R+$P($G(^(RS4-1)),D,RS5)-$P($G(^(RS4-.98)),D,RS5) I $P(BA39,D,6)="" G BSALZ ; P1 I BJ<$P(BA39,D,6) G BSALZ ; P2 S M2=$$MNTC(Q,BJ) I M1'=M2 S R=$$BEDR(Q,R,$P(M1,D),$P(M2,D),"F") ; P3/5 BSALZ D S2 Q R ; ;----------------------------------------------------------------------------- ; omrekenen bedrag uit Cumulnode vlgs parameter CBEDR(Q,BJ,BE) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; 3. BE: bedrag ; output: omgerekend bedrag in munt volgens parameter S $ZT="TRAP^"_$T(+0) N R,MI,MO S MI=$P($$MNTC(Q,BJ),D) S MO=$P($$MNTW(Q,BJ),D) S R=BE I MI'=MO S R=$$BEDR(Q,BE,MI,MO,"F") CBEDRZ Q R ; ;----------------------------------------------------------------------------- ; omrekenen bedrag uit Openst.f. vlgs parameter OBEDR(Q,BJ,BE) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; 3. BE: bedrag ; output: omgerekend bedrag in munt volgens parameter S $ZT="TRAP^"_$T(+0) N R,MI,MO S MI=$P($$MNTO(Q,BJ),D) S MO=$P($$MNTW(Q,BJ),D) S R=BE I MI'=MO S R=$$BEDR(Q,BE,MI,MO,"F") OBEDRZ Q R ; ;----------------------------------------------------------------------------- ; omrekenen bedrag naar muntcode Cumuls CNVC(Q,BJ,BE,VM,SP,AD) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; 3. BE: bedrag in VM ; 4. VM: muntcode ; 5. SP: soort par. (A=aankoop/V=verkoop/F=fin.) ; 6. AD: aantal dec. (""=aantal dec. cumuls) ; output: omgerekend bedrag, afgerond op AD S $ZT="TRAP^"_$T(+0) N BF,R S BF=$P($$MNTC(Q,BJ),D) S R=$$OMREK(Q,BE,VM,BF,SP,AD) CNVCZ Q R ; ;----------------------------------------------------------------------------- ; omrekenen bedrag naar muntcode Omzet CNVO(Q,BJ,BE,VM,SP,AD) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; 3. BE: bedrag in VM ; 4. VM: muntcode ; 5. SP: soort par. (A=aankoop/V=verkoop/F=fin.) ; 6. AD: aantal dec. (""=aantal dec. firma) ; output: omgerekend bedrag, afgerond op AD S $ZT="TRAP^"_$T(+0) N BF,R S BF=$P($$MNTO(Q,BJ),D) S R=$$OMREK(Q,BE,VM,BF,SP,AD) CNVOZ Q R ; ;----------------------------------------------------------------------------- ; vraagstelling ivm firmamunt MNT(Q,BJ,SW) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; 3. SW: switch boekh. (1=ja) ; output: muntcode\decimalen S $ZT="TRAP^"_$T(+0) N BA34,BA39,KR,R,RD,RM,RZR D S1 S BA34=$G(@("^"_Q_"BA(34)")),BA39=$G(^(39)) S RD=+$P(BA34,D),RM=$P(BA39,D) I $P(BA39,D,6)="" G MNTZ ; P1 I $P(BA39,D,12)'="",DJ_DM_DD>$$DC($P(BA39,D,12)) G MNTZ ; P5 I BJ<$P(BA39,D,6) S KR=1 G MNTR ; P2 I $P(BA39,D,11)="" S KR=SW+1 G MNTR ; P3 S KR=2 ; P4 MNTR S R="KR\22\3\"_$P($T(@("T2"_QT)),U,2)_"\""1[] = "_$P(BA39,D,9)_" 2[] = "_$P(BA39,D,7)_"""\1\\""-12""[K&$L(K)\\\\\1" D R0 S RD=$S(K=1:$P(BA39,D,10),K=2:$P(BA39,D,8),1:"") S RM=$S(K=1:$P(BA39,D,9),K=2:$P(BA39,D,7),1:"") MNTZ D S2 Q RM_D_RD ; ;----------------------------------------------------------------------------- ; bepalen muntcode Cumuls & aantal decimalen MNTC(Q,BJ) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; output: muntcode\decimalen S $ZT="TRAP^"_$T(+0) N BA34,BA39,RD,RM,RZR D S1 S BA34=$G(@("^"_Q_"BA(34)")),BA39=$G(^(39)) I $P(BA39,D,6)="" S RD=+$P(BA34,D),RM=$P(BA39,D) G MNTCZ ; P1 I BJ<$P(BA39,D,6) S RD=+$P(BA39,D,10),RM=$P(BA39,D,9) G MNTCZ ; P2 I $P(BA39,D,11)="" S RD=+$P(BA39,D,8),RM=$P(BA39,D,7) G MNTCZ ; P3 S RD=+$P(BA34,D),RM=$P(BA39,D) ; P4/5 MNTCZ D S2 Q RM_D_RD ; ;----------------------------------------------------------------------------- ; bepalen muntcode Omzet & aantal decimalen MNTO(Q,BJ) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; output: muntcode\decimalen S $ZT="TRAP^"_$T(+0) N BA34,BA39,RD,RM,RZR D S1 S BA34=$G(@("^"_Q_"BA(34)")),BA39=$G(^(39)) I $P(BA39,D,6)="" S RD=+$P(BA34,D),RM=$P(BA39,D) G MNTOZ ; P1 ; I BJ<$P(BA39,D,6) S RD=+$P(BA39,D,10),RM=$P(BA39,D,9) G MNTOZ ; P2 I $P(BA39,D,11)="" S RD=+$P(BA39,D,10),RM=$P(BA39,D,9) G MNTOZ ; P3 S RD=+$P(BA34,D),RM=$P(BA39,D) ; P4/5 MNTOZ D S2 Q RM_D_RD ; ;----------------------------------------------------------------------------- ; wat geprint ivm rapporteringsmunt (3.22) MNTW(Q,BJ) ; input: 1. Q : Q-waarde ; 2. BJ: boekjaar ; output: muntcode\decimalen\decimalen (rap.) S $ZT="TRAP^"_$T(+0) N BA34,BA39,BA71,RD,RM,RZR D S1 S BA34=$G(@("^"_Q_"BA(34)")),BA39=$G(^(39)),BA71=$G(^(7,1)) I $P(BA39,D,6)="" S RD=+$P(BA34,D),RM=$P(BA39,D) G MNTWZ ; P1 S RD=$P(BA39,D,$S($P(BA71,D,2)=2:8,1:10)) S RM=$P(BA39,D,$S($P(BA71,D,2)=2:7,1:9)) I BJ<$P(BA39,D,6) G MNTWZ ; P2 I $P(BA39,D,11)="" G MNTWZ ; P3 S RD=$S($P(BA71,D,2)=1:$P(BA39,D,10),1:+$P(BA34,D)) ; P4/5 S RM=$P(BA39,D,$S($P(BA71,D,2)=1:9,1:1)) MNTWZ D S2 Q RM_D_RD_D_$P(BA71,D,3) ; YZ Q ; ; *********************** Gekopieerde functies *********************** ; ;----------------------------------------------------------------------------- ; datum conversie (kopie van %AFD1) DC(R) I R?2N1"."2N1"."2N S R=$E(R,7,8)<50+19_$E(R,7,8)_$E(R,4,5)_$E(R,1,2) Q R ; ;----------------------------------------------------------------------------- ; vraagstelling (kopie van R0^cAN100) R0 S $P(R,D,12)=$T(+0) D ^cAN1000 Q ; v12 23.01.95 ; ;----------------------------------------------------------------------------- ; error Trap (kopie van TRAP^cAN000) TRAP S %=$ZE,%ZR=$ZR,%UCI=$ZU(5) I $ZV'["MSM" S %ZTRAP="TRAP^"_$T(+0) TRAPA I $ZV["MSM",%'["",%'["",%'["",%'["",%'["" D ^cA400 TRAPB I $ZV'["MSM",%'["",%'["",%'["",%'["",%'["" D ^cA400 TRAPX I $ZV["MSM" ZQ TRAPY I $ZV'["MSM" ZQ 1 I $ZT'="" G @$ZT TRAPZ Q ; ZZ ; 18.05.04 - 15 u 48 * V8