cTN0090 ;Controle BH: documenten ;cTN009 ; [ 14/11/09 02:12:23 ] ; T1 ;AR.A;Grootboekrekening ; T2 ;KL.A;Klant ; T3 ;LE.A;Leverancier ; T4 ;JRN;Journaal ; T5 ;CODE.9032;BTW-type ; T6 ;DB;Document ; T7 ;ARA.A;Analytische rekening ; T8 ;EC1;Extra compt. 1 ; T9 ;EC2;Extra compt. 2 ; T10 ;EC3;Extra compt. 3 ; T11 ;ARA.A;IAS-rekening ; ; T20 ; bestaat niet.;ontbreekt.; niet geldig binnen deze firma.; T21 ;Niet in evenwicht. Saldo: ;, saldo munt: ; T22 ;Omzet;Dagboeken; ; T1F ; ; T1E ; ; YZ Q ; ; DOC(VBM,TBM) ; Controle BH van de documenten ; Input: VBM: Van boekingsmaand ; TBM: Tot boekingsmaand ; S $ZT="TRAP^cAN000" N @$$INIT^cTN009("VBM,TBM") ; ; Controle parameters DOC1 F i="VBM","TBM" S @i=$TR($G(@i),".","") I '$L(VBM) G DOCZ ; ; Definities DOC2 G:'$L(UREFDB) DOCZ G:'$L(IREFDB) DOCZ G:'$L(UREFREG) DOCZ G:'$L(IREFREG) DOCZ ; ; Controle omzet-global opzetten DOC3 W !,$P($T(@("T22")),U,2),! S OMZGL=$$OMZO(VBM,TBM) ; ; Dagboeken doorlopen DOC4 W !,!,$P($T(@("T22")),U,3),! S BM=$E(VBM,1,4)_"01",DB="",TBJ="",WBM="" S:$L(TBM) TBJ=$E(TBM,1,4)_"12" G DOC41 DOC40 S BM=$O(@IREFDB@("M7",$$Q^cAFA10,BM)) S DB="" G:'$L(BM) DOCY I $L(TBJ),(BM>TBJ) G DOCY DOC41 S DB=$O(@IREFDB@("M7",$$Q^cAFA10,BM,DB)) I '$L(DB) G DOC40 ; S UI1=$P(^(DB),D) ; ; Omzet afpunten DOC42 F i=0:1:9 S NDB(i+1)=$G(@UREFDB@(i)) D OMZA(.NDB,OMZGL) ; ; Andere controles enkel uitvoeren vanaf beginmaand I BMTBM G DOC41 I WBM'=BM W $E(BM,1,4)_"."_$E(BM,5,6)_" " S WBM=BM ; ; Document in evenwicht? DOC43 S CHKI=$$EVEN(DB) ; ; Links DOC44 ; Financiële rekening S SW=0 I $P(DB," ")="F" S SW=1 S R=$$LINK(1,$P(NDB(1),D,11),SW) I 'R D ERR^cTN009("1A",DB,"","",$P(R,D,2)) ; Klant S SW=0 I ($P(DB," ")="V")!($P(DB," ")="KV")!($P(DB," ")="BV") S SW=1 S R=$$LINK(2,$P(NDB(1),D,9),SW) I 'R D ERR^cTN009("1A",DB,"","",$P(R,D,2)) ; Leverancier S SW=0 I ($P(DB," ")="A")!($P(DB," ")="LV")!($P(DB," ")="BA") S SW=1 S R=$$LINK(3,$P(NDB(1),D,10),SW) I 'R D ERR^cTN009("1A",DB,"","",$P(R,D,2)) ; Journaal S R=$$LINK(4,$P(NDB(1),D,2),1) I 'R D ERR^cTN009("1A",DB,"","",$P(R,D,2)) ; ; Totaal document DOC45 S R=$$CHKTOT(.NDB) I 'R D ERR^cTN009("1A",DB,"","",$P(R,D,2)) ; G DOC41 ; DOCY ; DOCZ Q ; CHKTOT(NDB) ; Checkt totaal document ; Input: NDB: Nodes van het dagboek ; Doorgeven als referentie! ; Output: 1: Check = OK ; 0\Foutboodschap N @$$INIT^cTN009("NDB") ; ; Type bepalen CHKTOT1 S R=1 I $P($G(NDB(1)),D)="A" G CHKTOT2 ; Aankoop I $P($G(NDB(1)),D)="V" G CHKTOT6 ; Verkoop G CHKTOTZ ; ; Aankoop CHKTOT2 S BNS(4)=3 S BNS(5)=0,BN="" CHKTOT3 S BN=$O(BNS(BN)) I '$L(BN) G CHKTOTZ CHKTOT4 S NETG=$P(NDB(BN),D),NETD=$P(NDB(BN),D,2),NETI=$P(NDB(BN),D,3),NETA=$P(NDB(BN),D,4) S AFBTW=$P(NDB(BN),D,10),NABTW=$P(NDB(BN),D,11),TBTW=$P(NDB(BN),D,13),TOT=$P(NDB(1),D,19-BNS(BN)) S R=$$CHKTOT^cTN1112(TOT,NETG,NETD,NETI,NETA,AFBTW,NABTW,TBTW) I 'R S R=$P(R,D,1,2) G CHKTOTZ CHKTOT5 G CHKTOT3 ; ; Verkoop CHKTOT6 S BNS(2)=3 S BNS(3)=0,BN="" CHKTOT7 S BN=$O(BNS(BN)) I '$L(BN) G CHKTOTZ CHKTOT8 S NETG=$P(NDB(BN),D),MST=$P(NDB(BN),D,5),KK=$P(NDB(1),D,20-BNS(BN)) S AFBTW=$P(NDB(BN),D,10),TOT=$P(NDB(1),D,19-BNS(BN)) S R=$$CHKTOT^cTN1112(TOT,NETG,"","","",AFBTW,"","") I 'R S R=$P(R,D,1,2) G CHKTOTZ CHKTOT9 G CHKTOTZ ; CHKTOTZ Q R ; OMZA(NDB,OMZGL) ; Afpunten omzet-global ; Input: NDB: Nodes van het dagboek ; Doorgeven als referentie! ; OMZGL: Controle omzet-global die moet worden afgepunt S $ZT="TRAP^cAN000" N @$$INIT^cTN009("NDB,OMZGL") ; ; Controle parameters OMZA1 I '$L($G(OMZGL)) G OMZAZ I '$L($G(NDB(1))) G OMZAZ ; ; Type bepalen OMZA2 S OMZ=0,TYPE="",D="\" I $P(NDB(1),D)="A" G OMZA3 I $P(NDB(1),D)="V" G OMZA4 G OMZAZ ; ; Leverancier OMZA3 F i=1:1:4 S OMZ=OMZ+$P($G(NDB(4)),D,i) ; Netto goederen/diensten/investeringen/andere S OMZ=OMZ+$P($G(NDB(4)),D,11) ; Niet-aftrekbare BTW S TYPE="LE.A",UI1=$P($P(NDB(1),D,5),".")_" "_$P(NDB(1),D,10) G OMZAY ; ; Klant OMZA4 S OMZ=$P($G(NDB(2)),D) ; Netto goederen S TYPE="KL.A",UI1=$P($P(NDB(1),D,5),".")_" "_$P(NDB(1),D,9) G OMZAY ; ; Afpunten OMZAY S @OMZGL@(TYPE,$P(UI1," ",2),$P(UI1," "),0)=$G(@OMZGL@(TYPE,$P(UI1," ",2),$P(UI1," "),0))-OMZ I +@OMZGL@(TYPE,$P(UI1," ",2),$P(UI1," "),0)=0 K @OMZGL@(TYPE,$P(UI1," ",2),$P(UI1," ")) Q ; OMZAZ Q ; OMZO(VBM,TBM,OMZGL) ; Opzetten omzet-global voor gevraagde boekjaren ; Input: VBM: Van boekingsmaand ; TBM: Tot boekingsmaand ; ; Optioneel: ; OMZGL: Global voor tijdelijk omzet-bestand ; S $ZT="TRAP^cAN000" N @$$INIT^cTN009("VBM,TBM") ; ; Controle parameters OMZO1 F i="VBM","TBM","OMZGL" S @i=$G(@i) I '$L(VBM) G OMZOZ I '$L(OMZGL) S OMZGL="^TEMP($J,""CNTRL"","""_$$Q^cAFA10()_""",2)" ; ; Omzet opzetten K @OMZGL S TYPES="KL.A\LE.A",KJR=$E(VBM,1,4),EKJR="" I $L(TBM) S EKJR=$E(TBM,1,4) OMZO2 S TYPE=$P(TYPES,D),TYPES=$P(TYPES,D,2,99) W TYPE_" " I '$L(TYPE) G OMZOZ OMZO21 S OMZREF=$P($$REF^cAFA10(.Q,"OMZ."_$P(TYPE,".")),D) I '$L(OMZREF) G OMZO2 S UI1=$$Q^cAFA10_" "_KJR_" " OMZO22 S UI1=$O(@OMZREF) I $P(UI1," ")'=$$Q^cAFA10 G OMZO2 I $L(EKJR) I $P(UI1," ",2)>EKJR G OMZO2 S @OMZGL@(TYPE,$P(UI1," ",3),$P(UI1," ",2),0)=$P(@OMZREF@(0),D,3) OMZO29 G OMZO22 ; OMZOZ Q OMZGL ; ; EVEN(DB) ; Check I: Document in evenwicht? ; Input: DB: UI1 Document ; ; Output: 1: Document is in evenwicht ; 0\Saldo\Saldo munt: Document is niet in evenwicht ; S $ZT="TRAP^cAN000" N @$$INIT^cTN009("DB") ; ; Controle parameters EVEN1 I '$L($G(DB)) G EVENY I '$L($G(UREFREG)) G EVENY I '$L($G(IREFREG)) G EVENY ; ; Definities ophalen EVEN2 S Q49=$$Q^cAFA10,TYPE=$P(DB," "),DBDI=$P($$DI^cAN000(DB,"")," "),I4="",D="\" S (SLD,SLDMNT)=0 ; ; Registraties aflopen EVEN3 S I4=$O(@IREFREG@("M1",Q49,TYPE,DBDI,I4)) I '$L(I4) G EVENY S UI1=$P(^(I4),D),N=@UREFREG@(0) I $P(N,D,30)=2 G EVEN3 S SLD=SLD+$P(N,D,15)-$P(N,D,16) S SLDMNT=SLDMNT+$P(N,D,17)-$P(N,D,18) ; Controle op identieke B-indexen EVEN35 S NREG(1)=N D BIND^cTN0091(UI1,.NREG) EVEN39 G EVEN3 ; ; Output EVENY S OK=(+$G(SLD)=0)&(+$G(SLDMNT)=0) I OK G EVENZ S OK=0_D_SLD_D_SLDMNT S ERR=$P($T(@("T21")),U,2)_SLD_$P($T(@("T21")),U,3)_SLDMNT D ERR^cTN009("1A",DB,"","",ERR) ; EVENZ Q OK ; LINK(TYPE,UI1,SW) ; Checkt of gelinkt bestand bestaat ; Input: TYPE: Type gelinkt bestand (zie T-labels) ; UI1: UI1 gelinkt bestand ; SW: Switch verplicht: ; 0,"": niet verplicht ; 1: verplicht ; ; Output: 1: Bestaat (of definities staan niet op) ; 0\Foutboodschap ; S $ZT="TRAP^cAN000" N @$$INIT^cTN009("TYPE,UI1,SW,LINKS") ; ; Controle parameters LINK1 F i="TYPE","UI1","SW" S @i=$G(@i) S DMS=$P($T(@("T"_TYPE)),U,2) S R=1 I '$L(DMS) G LINKZ I DMS="JRN",(UI1=0) G LINKZ ; Journaal 0 = fictief journaal voor de voorschotten ; ; Definitie ophalen LINK2 I $L($G(LINKS(DMS))) G LINK25 S LINKS(DMS)=$P($$REF^cAFA10(.Q,DMS),D) I '$L(LINKS(DMS)) G LINKZ LINK25 I $D(LINKS(DMS,Q)) G LINK3 S LINKS(DMS,Q)="" I $L($$DMQ49^cAFA10(Q,DMS)) S LINKS(DMS,Q)=$$Q49^cAFVBA03(Q,DMS) ; ; Bestaat link? LINK3 I '$L(UI1) S R=$S(SW:0_D_$P($T(@("T"_TYPE)),U,3)_$P($T(@("T20")),U,3),1:1) G LINKZ I $D(@LINKS(DMS)) G LINK35 S R=0_D_$P($T(@("T"_TYPE)),U,3)_UI1_$P($T(@("T20")),U,2) G LINKZ ; ; Link heeft juist B-index 149 (firma)? LINK35 I '$L($G(LINKS(DMS,Q))) G LINKZ I $P(@LINKS(DMS)@(0),D,49)=LINKS(DMS,Q) G LINKZ S R=0_D_$P($T(@("T"_TYPE)),U,3)_UI1_$P($T(@("T20")),U,4) ; ; LINKZ Q R ; ; ZZ ; 23.05.08 - 9 u 14 * V9.01