cT00A ;Algemene functies boekhouding ;%T00A ; [ 04/12/09 14:36:15 ] G YZ ; T0 ;Algemene functies boekhouding ; ; T0F ;Functions générales comptabilité ; ; T0E ;General functions accounting ; ; ; ==================================================================== S1 S RZR=$ZR ; onthouden last reference S1Z Q ; S2 I $O(@RZR) ; terugzetten last reference S2Z Q ; ; ==================================================================== ; opzetten BJ, BP, BM, BH, BX en OK adhv (boekings)datum ; output: BJ = boekjaar (jjjj) ; BP = boekingsmaand (jjjj.mm) ; BM = maand (mm) ; BH = historiek (1jjjjmm) ; BX = offset cumul (nn) ; OK = switch openstaande boekingsmaand (0=afgesloten <> 1=ja) D2M(Q,DAT,DEBUG) ; input: DAT = (boekings)datum ; DEBUG = 1 -> variabelen worden getoond via ZW(rite) S $ZT="TRAP^cAN000" N RZR D S1 N BA2,R,R2,R3 S (BJ,BP,BM,BH,BX,OK)=0 I '$G(DAT) G D2MX I '$$DCTR^cAFI1(DAT) G D2MX S R=$$DC^cAFD1(DAT),BM=$E(R,5,6),BP=$E(R,1,4)_"."_BM,BH=1_BP*100 S BA2=@("^"_Q_"BA(2)") D2MA I BP>$P(BA2,D,2) D G D2MA . 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 D2MB I BP>$P(BA2,D,3) S BJ=$P(BA2,D,2)\1 G D2MC S R3=$P(BA2,D,3),BA2=$P(BA2,D,4,999) I $L(BA2) G D2MB S R2=R3,R3=$E(R3-1_0,1,7) ; theoretisch terugkeren S BA2=R3\1*12+(R3#1*100)_D_R2_D_R3 G D2MB D2MC S R=$P(BA2,D,3) F BX=1:1:99 Q:R=BP S R=$E(R+.01_0,1,7) I R#1>.12 S R=R+.88 I BX<99 D . S R=@("^"_Q_"BA(7)") I BP'>R Q . S R=$E(^(25)/100+R_0,1,7) I R#1>.12 S R=$E(R+.88_0,1,7) . I BP'>R S OK=1 D2MX I $G(DEBUG) ZW DAT,BJ,BP,BM,BH,BX,OK D2MZ D S2 Q ; ; ; ==================================================================== ; indeling boekja(a)r(en) ; output: @E(jjjj) = eerste maand per boekjaar ; @L(jjjj) = laatste maand per boekjaar IBJ(Q,BJ,E,L) ; input: BJ = boekjaar (ofwel "" => alle beschikbare boekjaren) ; (ofwel JJJJ = bepaald boekjaar) ; E = naam van de variabele voor eerste boekingsmaand ; L = naam van de variabele voor laatste boekingsmaand S $ZT="TRAP^cAN000" N RZR D S1 N BA2,R,R2,R3,RE,RL S BA2=$G(@("^"_Q_"BA(2)")) D ^cA106 I BA2="" S BA2=DJ*12+1_D_DJ_".12"_D_DJ_".01" I DJ_"."_DM>$P(BA2,D,3) D ; eerstvolgende boekjaar . S R2=$P(BA2,D,2),R3=R2 . S R2=$E(R2+1_0,1,7) . S BA2=R3\1*12+(R3#1*100)_D_R2_D_R3_D_BA2 IBJA I BJ,BJ>($P(BA2,D,2)\1) D G IBJA . 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 IBJB I BJ,BJ<($P(BA2,D,2)\1) D G IBJB . S R3=$P(BA2,D,3),BA2=$P(BA2,D,4,999) I $L(BA2) Q . S R2=R3,R3=$E(R3-1_0,1,7) ; theoretisch terugkeren . S BA2=R3\1*12+(R3#1*100)_D_R2_D_R3 IBJC I $L(BA2) D S BA2=$P(BA2,D,4,999) G IBJC . S R2=$P(BA2,D,2),R3=$E($P(BA2,D,3)+.01_0,1,7) I R3#1>.12 S R3=R3+.88 . S R=R2\1 I BJ,BJ'=R Q . S RE(R)=R3,RL(R)=R2 M @E=RE,@L=RL IBJZ D S2 Q ; ; ; ==================================================================== ; controle op IC-verkoopfactuur (0=neen <> 1=ja) ; condities: 1. eigen BTW-nummer ; 2. BTW-bedrag=0 ; 3. aantal BTW-codes=1 (+ eventueel Z.B.) ; 4. BTW-code=0% of 0%(44) ; 5. klant met IC-BTW-nummer ICVE(Q,BP,FNR) S $ZT="TRAP^cAN000" N RZR D S1 N R,A,BA39,BTW,H,I,KC,V11,K,DAT S R=0 I $G(Q)="" G ICVEZ I $G(BP)="" G ICVEZ I $G(FNR)="" G ICVEZ I '$D(@("^"_Q_"VE")@(BP,FNR)) G ICVEZ S H=^(FNR),KC=$P(H,D,4),BTW=$P(H,D,8),V11=$P(H,D,11) I '$L(BTW) G ICVEZ ; Geen BTW-bedrag I $L($P(H,D,36)) G ICVEZ ; ander BTW-nummer ICVEA S DAT="01."_$P(BP,".",2)_"."_$E(BP,3,4) S K=$$SG^cAFA1("KL",KC,116) S R=$$IC^cTI0(K,DAT) I 'R G ICVEZ I '$D(PBTW) N PBTW,PTXT D S1^cA305 ICVEB S A="",R=0 F I=1:2 S H=$P(V11,"#",I) Q:H="" I "\0%\"_$S(BP>2010:"0%(44)\",1:"")[(D_$G(PBTW(H))_D) S A=A_$S($L(A):U,1:"")_H ; enkel 0%, 0%(44) en Z.B. zijn toegelaten I '$L(A) G ICVEZ ; Geen BTW-code S R=1_D_A ; ICVEZ D S2 Q R ; SETB(SWARA) ; Wijzigen velden na openen of wijzigen grootboekrekening I UFU="W",$P(A(1),D,30)'=$P(B(1),D,30) D . S ULOG(130)="Niveau~Niveau~~Level" . S $P(ULOG(130),D,2)=$$NIV^cAFO1($P(A(1),D,30)) . S $P(ULOG(130),D,3)=$$NIV^cAFO1($P(B(1),D,30)) I '$G(SWARA) S:($E($P(B(1),D,6))=""!($E($P(B(1),D,6))="#")) $P(B(1),D,6)="0#" I $P(@("^"_Q_"BA(39)"),D,2)'="N" G SETBA D B^cAN000(205,$P(B(1),D,2)) I $P($G(A(2)),D,7)=$P(A(1),D,2),($P(A(2),D,9)=$P(A(1),D,2)),($P(A(2),D,11)=$P(A(1),D,2)) F I=7,9,11 D B^cAN000(200+I,$P(B(1),D,2)) G SETBZ SETBA I $P(@("^"_Q_"BA(39)"),D,2)'="F" G SETBZ D B^cAN000(207,$P(B(1),D,2)) I $P($G(A(2)),D,5)=$P(A(1),D,2),($P(A(2),D,9)=$P(A(1),D,2)),($P(A(2),D,11)=$P(A(1),D,2)) F I=5,9,11 D B^cAN000(200+I,$P(B(1),D,2)) SETBZ Q ; ; ==================================================================== ; set V/W-switch bij creatie rekeningen SETVW S $ZT="TRAP^cAN000" N RZR D S1 N BA39 S BA39=@("^"_Q_"BA(39)") I $P(BA39,D,3)="BE",$E($P(B(1),D))>5 S $P(B(1),D,20)=1 SETVWZ D S2 Q ; ; YZ Q ; ZZ ; 29.08.07 - 10 u 22 * V8.09