cTA180 ;Boekhouding: extra cumuls AR-ARA-IAS eenmalig opzetten ; ; [ 18/04/04 3:09 PM ] G YZ ; T0 ;Extra cumuls boekhouding ; ; T0F ;Extra cumuls comptabilité ; ; T0E ;Extra cumuls accounting ; ; T0D ;Extra cumuls boekhouding ; ; ; ECUM(DB,I1,I2,I3,UNDO) ; Dagboek aflopen voor het opzetten van extra cumuls ; Input: DB: Soort Dagboek ("AA","VE","FI","FIE","FII") ; I1: Index 1 v/h dagboek ; I2: Index 2 v/h dagboek ; I3: Index 3 v/h dagboek (indien bestaande) ; UNDO: "" of 0: Do (boeking doorvoeren in ^DBH) ; 1: Undo (boeking uit ^DBH halen) ; N S,I,J,BR,B,N,PER,CRE,DEB,BRA,IAS,X,A,FC,OI2,RZR S $ZT="TRAP^cAN000" ; ; Onthouden last reference D S1^cAFA1 ; ; Enkel indien analytische BH I '$P($G(@("^"_Q_"BA(300)")),D) G ECUMY ; ; Basisrekeningen ophalen F I=14,15 F J=0:1:21 S BR=$P($G(@("^"_Q_"BA(I,J)")),D),B(I,J)=$S($L(BR):BR_" ",1:0) S:'$L($G(UNDO)) UNDO=0 ; I DB="AA" G ECUMA ; Aankoopverrichtingen I DB="VE" G ECUMV ; Verkoopverrichtingen I DB="FI" G ECUMBD ; Financiële \ Diverse verrichtingen I DB="FIE" G ECUMED ; Analytische diverse verrichtingen I DB="FII" G ECUMED ; Segment diverse verrichtingen ; G ECUMY ; ECUMBD ; Financieel \ Diverse verrichtingen ; S N=@("^"_Q_"FI(I1,I2,I3)") S PER=$P(N,D,10) S:'PER PER=0 D I $P(N,D,7)'="A" G ECUMBDZ . S DEB=$P(N,D,5),CRE=0 I $P(N,D,6)="C" S CRE=DEB,DEB=0 . I $P(N,D,7)="K" D CUM(I1,B(14,$P(N,D,6)="D"),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; 400.000 . I $P(N,D,7)="L" D CUM(I1,B(15,$P(N,D,6)="C"),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; 440.000 . I $E(I2)'="D" D CUM(I1,$TR(I2,"W","")_" ",$$REK(""),$$REK("",1),PER,CRE,DEB,UNDO) ; Fin.rek S BR=$P($P(N,D,8),"#")_" ",BRA=$P(N,D,16),IAS=$P(N,D,40) S DEB=$P(N,D,5),CRE=0 I $P(N,D,6)="C" S CRE=DEB,DEB=0 D CUM(I1,BR,$$REK(BRA),$$REK(IAS,1),PER,DEB,CRE,UNDO) ECUMBDZ G ECUMY ; ECUMED ; Analytische \ Segement diverse verrichtingen ; S N=@("^"_Q_DB_"(I1,I2,I3)"),S="#" S PER=$P(N,D,10) S:'PER PER=0 S BR=$P($P(N,D,8),"#")_" ",BRA=$P(N,D,16) S IAS=$P(N,D,31) I IAS="" S IAS=BRA S DEB=$P(N,D,5),CRE=0 I $P(N,D,6)="C" S CRE=DEB,DEB=0 D CUM(I1,BR,$$REK(BRA),$$REK(IAS,1),PER,DEB,CRE,UNDO) ECUMEDZ G ECUMY ; ECUMA ; Aankoopverrichtingen ; S OI2=I2,X=$D(@("^"_Q_"AA(I1,I2)")),S="#" G ECUMA2 ECUMA1 S I2=$O(@("^"_Q_"AA(I1,I2)")) G ECUMAZ:$P(I2,".")'=OI2 ECUMA2 S N=^(I2) I '(I2#1) S FC=$P(N,D),PER=$P(N,D,23) S:'PER PER=0 D G ECUMA1 . S DEB=0,CRE=$P($P(N,D,6),"#") I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(15,FC="C"),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; 440.000 . S DEB=$P(N,D,8),CRE=0 I FC="C" S CRE=DEB,DEB=0 . I DEB!CRE D CUM(I1,B(15,FC="C"+2),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; Aftr.BTW . S DEB=0,CRE=$P(N,D,12) I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(15,FC="C"+4),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; BTWIC . S DEB=0,CRE=$P(N,D,11)+$P(N,D,17) I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(15,FC="C"+6),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; BTWOH+MC . S DEB=0,CRE=$P(N,D,16) I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(15,FC="C"+8),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; BTWVL . S DEB=$P(N,D,38),CRE=0 I FC="C" S CRE=DEB,DEB=0 . I DEB!CRE D CUM(I1,B(15,FC="C"+20),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; Aftr.BTW andere (~Hannecard Zw.) ECUMA3 ; Ventilaties S A=$P(N,D),N=$P(N,D,2,999) I A="" G ECUMA1 S BR=$P(A,S),BRA=$P(A,S,9),IAS=$P(A,S,10) S DEB=$P(A,S,4),CRE=0 I FC="C" S CRE=DEB,DEB=0 D CUM(I1,BR,$$REK(BRA),$$REK(IAS,1),PER,DEB,CRE,UNDO) G ECUMA3 ECUMAZ G ECUMY ; ECUMV ; Verkoopverrichtingen ; S OI2=I2,X=$D(@("^"_Q_"VE(I1,I2)")),S="#" G ECUMV2 ECUMV1 S I2=$O(@("^"_Q_"VE(I1,I2)")) G ECUMVZ:$P(I2,".")'=OI2 ECUMV2 S N=^(I2) I '(I2#1) S FC=$P(N,D),PER=$P(N,D,20) S:'PER PER=0 D G ECUMV1 . S DEB=$P(N,D,6),CRE=0 I FC="C" S CRE=DEB,DEB=0 . I DEB!CRE D CUM(I1,B(14,FC="C"),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; 400.000 . S DEB=0,CRE=$P(N,D,8) I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(14,FC="C"+2),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; BTW . S DEB=0,CRE=$P(N,D,9) I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(14,FC="C"+4),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; Egalis. . S DEB=0,CRE=$P(N,D,18) I FC="C" S DEB=CRE,CRE=0 . I DEB!CRE D CUM(I1,B(14,FC="C"+6),$$REK(""),$$REK("",1),PER,DEB,CRE,UNDO) ; Luxetaks ECUMV3 ; Ventilaties S A=$P(N,D),N=$P(N,D,2,999) I A="" G ECUMV1 S BR=$P(A,S),BRA=$P(A,S,9),IAS=$P(A,S,10) S CRE=$P(A,S,4),DEB=0 I FC="C" S DEB=CRE,CRE=0 D CUM(I1,BR,$$REK(BRA),$$REK(IAS,1),PER,DEB,CRE,UNDO) G ECUMV3 ECUMVZ G ECUMY ; ECUMY ; Terugzetten last reference D S2^cAFA1 ECUMZ Q ; ; CUM(BM,AR,ARA,IAS,BP,DE,CR,UNDO) ; Cumuls op AR-ARA-IAS ; Input: BM: Boekingsmaand ; AR: Grootboekrekening ; ARA: Analytische rekening ; IAS: IAS rekening ; BP: Boekingsperiode ; DE: Debet ; CR: Credit ; UNDO: "" of 0: Do (boeking doorvoeren in ^DBH) ; 1: Undo (boeking uit ^DBH halen) ; N RARA,RIAS,INH,UI1,DEBET,CREDIT,TAB,K,R,RZR S $ZT="TRAP^cAN000" ; ; Onthouden last reference D S1^cAFA1 ; ; Locken CUM1 L +@("^"_Q_"AR(AR)"):2 E G CUM1 ;S R=14 D F2 G CUM1 ; S:'$L(BP) BP=0 S RARA=$$REK(ARA),RIAS=$$REK(IAS,1) S UI1=$TR(BM,".")_" "_AR_RARA_RIAS_$TR(BP,".") S INH=$$SIGN^cAFA1("CUM.AR.ARA",UI1,0) I $G(UNDO) S DE=-DE,CR=-CR S DEBET=$P(INH,D,6)+DE S CREDIT=$P(INH,D,7)+CR ;I DEBET=0,CREDIT=0 G CUMV ; Verwijderen I $L(INH) G CUMW ; Wijzigen ; CUMO ; Openen S TAB(1)=AR_D_RARA_D_RIAS_D_BM_D_BP_D_DEBET_D_CREDIT D P^cAN220("CUM.AR.ARA","",UI1,"TAB","") G CUMY ; CUMV ; Verwijderen D X^cAN220("CUM.AR.ARA","",UI1) G CUMY ; CUMW ; Wijzigen S TAB(106)=DEBET,TAB(107)=CREDIT D B^cAN220("CUM.AR.ARA","",UI1,"TAB") ; CUMY ; Unlocken L -@("^"_Q_"AR(AR)") ; ; Terugzetten last reference D S2^cAFA1 CUMZ Q ; REK(REK,TYPE) ; Input: REK: Analytische rekening of IAS-rekening ; TYPE: 0= Analytische rekening ; 1= IAS-rekening ; ; Output: A-code of IAS-code N REF S $ZT="TRAP^cAN000" ; S REF="ARA" S:$G(TYPE)=1 REF="IAS" S:'$L($G(REK)) REK=$P($G(^DPAR(Q,"PAR",REF,0)),D) S:'$L(REK) REK="0" S REK=$P(REK," ")_" " REKZ Q REK ; STARTJR(Q) ; Input: Q: Firma ; ; Output: Startjaar van de Extra Cumuls (^DBH) N JR S $ZT="TRAP^cAN000" S JR=$P($G(^DPAR(Q,"PAR","DBH",0)),D) STARTJRZ Q JR ; DUMMYREK(Q,TYPE,QTU) ; Geeft de naam en nummer van de dummy-rekening uit de BH-parameters weer ; Input: Q: Firma ; TYPE: "" of 0: Dummy analytische rekening ; 1: Dummy IAS-rekening ; QTU: Nummer taalcode van de gebruiker ; 1 = Nederlands ; 2 = Frans ; 3 = Duits ; 4 = Engels ; ; Output: Nummer \ Naam dummy rekening N NODE,NR,NAAM,D,S,TC S $ZT="TRAP^cAN000" S D="\",S="#" S:'$G(QTU) QTU=1 ; Default NL S:'$G(TYPE) TYPE=0 ; Default dummy Anal.rek S NODE=$P($G(@("^"_Q_"BA(300)")),D,(9+$G(TYPE))) ; Zit in BH-parameters S NR=$P(NODE,S) S NAAM=$P(NODE,S,QTU+1) I '$L(NAAM) D . S TC=$P($G(@("^"_Q_"BA(39)")),D,2) . I $L(TC) S NAAM=$P(NODE,S,$TR(TC,"NFDU","2345")) ; In taal van de BH . S:'$L(NAAM) NAAM=$P(NODE,S,2) ; In NL DUMMYREKZ Q NR_D_NAAM ; SALDO(Q,AR,ARA,IAS,MT,NIV,GLBSB,LASTM) ; Saldo combinatie AR-ARA-IAS aan de hand van ^DBH ; SALDO aangepast op 30/05/05 16.00 uur ; KO - SW ;Input: Q: Firma ; AR: Grootboekrekening ; ARA: Analytische rekening ; IAS: IAS-rekening ; MT: Boekingsmaand JJJ.MM ; NIV: Niveau van saldo ; "" of 0 : tot op IAS-niveau ; 1 : tot op ARA-niveau ; 2 : tot op AR-niveau ; 3 : ^HULP(boot,$J+.02 ; (wordt NIET gekilled) ; GLBSB: Global ^DBH Subscript => "CUM.AR.ARA" voor realisaties (standaard indien niet ingevuld) ; => "BUD.AR.ARA" voor budgetten ; LASTM: 0 output is saldo bij het begin van de maand (standaard indien niet ingevuld) ; 1 output is saldo t.e.m. gevraagde maand ; ; Output: -saldo bij het begin van de maand voor de combinatie AR-ARA(-IAS) (standaard indien LASTM niet ingevuld) ; -saldo tot en met gevraagde maand voor de combinatie AR-ARA(-IAS) ; N SALDO,UI1,BJR,BM,INH,CHKEY,BMT,BPA,BJ,J4,KM1,KM2,SW,GL,I3 S $ZT="TRAP^cAN000" S:'$L($G(NIV)) NIV=0 ; Default tot op IAS-niveau I '$P($G(@("^"_Q_"BA(300)")),D,8) S:'NIV NIV=1 ; Indien geen IAS-rapp., minstens op ARA-niveau S SW=0 I NIV=3 S (SW,NIV)=1 ; S GLBSB=$G(GLBSB,"CUM.AR.ARA") S LASTM=$G(LASTM,0) ; ; Eventueel input corrigeren S AR=$P(AR," ")_" ",ARA=$P(ARA," ")_" ",IAS=$P(IAS," ") S GL="^HULP(boot,$J+.02,I3)",I3MT=$TR(MT,".","") ; ; Beginmaand en key bepalen D ^cT489 I $$BJ^cAFE1(Q,MT)<$$STARTJR(Q) S SALDO=0 G SALDOZ ; Indien opgevraagd voor begin DBH, is het saldo 0 S BMT=KM1($$BJ^cAFE1(Q,MT)) ; Beginmaand is eerste maand van het boekjaar I BJ<$$BJ^cAFE1(Q,BMT),'$$SIG^cAFA1("AR",AR,120) S BMT=KM1(BJ) ; Indien later dan oudst openst. boekjaar: eerste maand van dit boekjaar I BMT12 S BM=BM+.88 . S BM=$E(BM_"0",1,7) . S CHKEY=$TR(BM,".","")_" "_KEY . S UI1=CHKEY_" " F S UI1=$O(^DBH(Q,GLBSB,UI1)) Q:$P(UI1," ",1,$L(CHKEY," "))'=CHKEY D .. S INH=^(UI1,0) .. I $P(INH,D,30) Q ; Verwijderd of buiten gebruik .. S SALDO=SALDO+$P(INH,D,6)-$P(INH,D,7) .. I SW S I3=$P(UI1," ",2,4)_" "_I3MT,@GL=$G(@GL)+$P(INH,D,6)-$P(INH,D,7) ; ; Beginsaldi S CHKEY=$$BJ^cAFE1(Q,BMT)_"00"_" "_KEY S UI1=CHKEY_" " F S UI1=$O(^DBH(Q,GLBSB,UI1)) Q:$P(UI1," ",1,$L(CHKEY," "))'=CHKEY D . S INH=^(UI1,0) . I $P(INH,D,30) Q ; Verwijderd of buiten gebruik . S SALDO=SALDO+$P(INH,D,10) . I SW S I3=$P(UI1," ",2,4)_" "_I3MT,@GL=$G(@GL)+$P(INH,D,10) ; SALDOZ Q SALDO ; SALDOARA(Q,ARA,MT) ; Saldo van analytische rekening aan de hand van ^DBH ; Input: Q: Firma ; ARA: Analytische rekening ; MT: Boekingsmaand JJJJ.MM ; ; Output: saldo bij het het begin van de maand voor de analytische rekening ; N SALDO,UI1,BJR,BM,INH,CHKEY,BMT,BPA,BJ,J4,KM1,KM2,SW,GL,I3,ZWV,DBHUI1,BJMT S $ZT="TRAP^cAN000" ; ; Eventueel input corrigeren S SALDO=0 I '$L($G(Q))!'$L($G(ARA))!'$L($G(MT)) G SALDOARAZ S ARA=$P(ARA," ")_" " ; ; Beginmaand bepalen D ^cT489 S BMT=$G(KM1($$BJ^cAFE1(Q,MT))) I '$L(BMT) G SALDOARAZ ; Beginmaand is eerste maand van het boekjaar I BJ<$$BJ^cAFE1(Q,BMT) S BMT=KM1(BJ) ; Indien later dan oudst openst. boekjaar: eerste maand van dit boekjaar I BMT12 S BM=BM+.88 . S BM=$E(BM_"0",1,7) . S ZWV=0 I $$BJ^cAFE1(Q,BM)'=BJMT S ZWV=1 ; Indien in vorige boekjaar enkel balansrekeningen . S UI1=ARA F S UI1=$O(^INDEX(Q,"CUM.AR.ARA","M2",$TR(BM,".",""),UI1)) Q:$P(UI1," ")'=$P(ARA," ") D .. S DBHUI1=^(UI1) .. S INH=^DBH(Q,"CUM.AR.ARA",DBHUI1,0) .. I ZWV I $$SIG^cAFA1("AR",$P(INH,D),120) Q ; Niet meetellen indien in combinatie met winst / verlies rekening .. S SALDO=SALDO+$P(INH,D,6)-$P(INH,D,7) ; Debet en credit bijtellen ; ; Beginsaldi S BM=$$BJ^cAFE1(Q,BMT)_"00" S UI1=ARA F S UI1=$O(^INDEX(Q,"CUM.AR.ARA","M2",BM,UI1)) Q:$P(UI1," ")'=$P(ARA," ") D . S DBHUI1=^(UI1) . S INH=^DBH(Q,"CUM.AR.ARA",DBHUI1,0) . I $$SIG^cAFA1("AR",$P(INH,D),120) Q ; Niet meetellen indien in combinatie met winst / verlies rekening . S SALDO=SALDO+$P(INH,D,10) ; Beginsaldo bijtellen ; SALDOARAZ Q SALDO ; F1 S R=250 F2 D TXT^cAFA1(R) FZ K R Q ; ; YZ Q ; ZZ ; 23.06.05 - 17 u 03 * V8.04