cTN003 ;Functies ivm boekj, boekingsmnd, rekeningen, ... ;cTN003 ; [ 12/10/01 5:49 PM ] ; T1 ;Deze maand valt buiten de toegelaten boekingsmaanden.; T2 ;Gelieve dringend een maand af te sluiten.; T3 ;Maand moet bestaan uit JJJJ.MM.;Geen boekjaren ingesteld.;Geen boekjaar gevonden.;Maand moet tussen 1 en 12 liggen.; T4 ;Firmacode is leeg.;Definitie firmacode is niet juist.; T5 ; ontbreekt.; is verwijderd.; T6 ;Basisrekening klanten;Basisrekening leveranciers;Rekening BTW facturen;Rekening BTW creditnota’s;Rekening aftrekbare BTW facturen;Rekening verschuldigde BTW creditnota’s;Rekening nadelig koersverschil;Rekening voordelig koersverschil;Analytische rekening nadelig koersverschil;Analytische rekening voordelig koersverschil;Rekening betalingskorting klanten;Analytische rekening betalingskorting klanten;Rekening betalingskorting leveranciers;Analytische rekening betalingskorting leveranciers; T7 ;Grootboekrekening ;Analytische rekening ; T8 ;Geen geldige grootboekrekening;Geen geldige analytische rekening; ; T1F ;Ce mois tombe dehors les périodes comptables permises.; T2F ;Urgent: veuillez clôturer un mois.; T3F ;Format du mois doit être AAAA.MM.; T4F ;Firmacode is leeg.;Definitie firmacode is niet juist.; T5F ; ontbreekt.; is verwijderd.; T6F ;Basisrekening klanten;Basisrekening leveranciers;Rekening BTW facturen;Rekening BTW creditnota’s;Rekening aftrekbare BTW facturen;Rekening verschuldigde BTW creditnota’s;Rekening nadelig koersverschil;Rekening voordelig koersverschil;Analytische rekening nadelig koersverschil;Analytische rekening voordelig koersverschil;Rekening betalingskorting klanten;Analytische rekening betalingskorting klanten;Rekening betalingskorting leveranciers;Analytische rekening betalingskorting leveranciers; T7F ;Compte de grand-livre ;Compte analytique ; T8F ;Compte de grand-livre est invalide;Compte analytique est invalide; ; T1E ;This month is out of the allowed fiscal months.; T2E ;Please close a month urgently.; T3E ;Month has to be YYYY.MM.; T4E ;Firmacode is leeg.;Definitie firmacode is niet juist.; T5E ; ontbreekt.; is verwijderd.; T6E ;Basisrekening klanten;Basisrekening leveranciers;Rekening BTW facturen;Rekening BTW creditnota’s;Rekening aftrekbare BTW facturen;Rekening verschuldigde BTW creditnota’s;Rekening nadelig koersverschil;Rekening voordelig koersverschil;Analytische rekening nadelig koersverschil;Analytische rekening voordelig koersverschil;Rekening betalingskorting klanten;Analytische rekening betalingskorting klanten;Rekening betalingskorting leveranciers;Analytische rekening betalingskorting leveranciers; T7E ;General Account ;Analytical Account ; T8E ;No valid General Account;No valid Analytical Account; ; YZ Q ; BJ(Q,BP) ; Bepalen BoekJaar adhv Q-waarde & boekingsmaand ; Input: ; Q : Q-waarde : door te geven als referentie : .Q ; BP: boekingsmaand, onder de vorm JJJJ.MM ; Output: boekjaar waarin BP valt ; 0\... : fout S $ZT="TRAP^cAN000" N REF,UREF,IREF,UI1,BJ,I1L,I1F,RZR D S1^cAFE1 I $G(BP)'?4N1"."2N D ERR S BJ="0\"_$P($T(@("T3"_QT)),U,2) G BJZ I $P(BP,".",2)<1!($P(BP,".",2)>12) D ERR S BJ="0\"_$P($T(@("T3"_QT)),U,5) G BJZ S REF=$$REF^cAFA10(.Q,"BKJ.MND") S UREF=$P(REF,D),IREF=$P(REF,D,3) S BP=$TR(BP,".") I '$D(@IREF@("M1",$$Q^cAFA10())) D ERR S BJ="0\"_$P($T(@("T3"_QT)),U,3) G BJZ ; Boekingsmaand is gedefinieerd BJA S UI1=$O(@IREF@("M1",$$Q^cAFA10(),BP,"")) I $L(UI1) S BJ=$P(@UREF@(0),D) G BJZ BJB ; Indien boekjaar in verleden niet ingesteld. I $L($O(@IREF@("M1",$$Q^cAFA10(),BP))) D ERR S BJ="0\"_$P($T(@("T3"_QT)),U,4) G BJZ ; Vooruitlopen BJC D VBJ(Q,.BJ,.LBM,.EBM) I BP>$TR(LBM,".","") G BJC ; BJZ D S2^cAFE1 Q $G(BJ) ; BM(Q,BJ,SW) ; Bepaalt eerste\laatste boekingsmaand van doorgegeven boekjaar ; Input: Q: Vennootschap ; BJ: Boekjaar ; SW: Eerste of laatste boekingsmaand ; 0,"": Eerste boekingsmaand ; 1: Laatste boekingsmaand ; ; Ouput: BM: Eerste of laatste boekingsmaand van doorgegeven boekjaar S $ZT="TRAP^cAN000" N (Q,BJ,SW) ; ; Definities BM1 S BM="",SW=$S($G(SW)=1:-1,1:1),D="\" D Q1^cAFA10("BKJ.MND") S REF=$$REF^cAFA10(.Q,"BKJ.MND") S UREF=$P(REF,D),IREF=$P(REF,D,3) I '$L(UREF)!'$L(IREF) G BMY ; ; Boekingsmaand bepalen BM2 S BM=$O(@IREF@("M2",$$Q^cAFA10(),BJ,""),SW) I $L(BM)=6 S BM=$E(BM,1,4)_"."_$E(BM,5,6) G BMY ; ; Boekingsmaand niet bepaald: verleden BM3 I $L($O(@IREF@("M2",$$Q^cAFA10(),BJ))) D ERR S BM="0\"_$P($T(@("T3"_QT)),U,4) G BMY I '$D(@IREF@("M1",$$Q^cAFA10())) D ERR S BM="0\"_$P($T(@("T3"_QT)),U,3) G BMY ; ; Boekingsmaand niet bepaald: toekomst (theoretisch vooruitlopen) BM4 D VBJ(Q,.LBJ,.LBM,.EBM) I LBJ=BJ S BM=$S(SW=-1:LBM,1:EBM) G BMY G BM4 ; ; Q(49) terugzetten BMY D Q2^cAFA10 BMZ Q BM ; CHKAR(AR,PAR) ; Check ingave grootboekrekening ; Input: AR: Grootboekrekening ; PAR: Parameters gescheiden door "\" ; 1. Check/Filter ; 0,"": Check doorgegeven rekening (Caché) ; 1: Filter voor selectiegrid (dotNET) ; 2. Financiële rekening toegelaten (voor o.a. inschrijven financieel) ; 0,"": Neen ; 1: Ja ; 3. Basisrekening toegelaten ; 0,"": Neen ; 1: Ja ; 4. Switch verplicht ; 0,"": Verplicht ; 1: Niet verplicht ; ; Output: Indien Check/Filter ; 1: Filter voor selectiegrid ; "": 0\Foutboodschap ; 1 ; ; Standaard check/filter: ; - Ingevuld ; - Niet verwijderd ; - Geen tekstrekening ; - Geen financiële rekening ; - Geen klanten/leveranciersrekening (uit basisbestanden) ; S $ZT="TRAP^cAN000" I $P($G(PAR),D) S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("AR,PAR") ; ; Controle parameters CHKAR1 S R=1 F i="AR","PAR" S @i=$G(@i) ; ; Check CHKAR2 I $P(PAR,D) G CHKAR3 I $P(PAR,D,4),'$L(AR) G CHKARZ ; Ingevuld/niet verwijderd? S R=$$CTRLREK^cTN003("",AR,"AR.A",$P($T(@("T7"_QT)),U,2)) I 'R G CHKARZ S N=$$SIGN^cAFA1("AR.A",AR,0) I '$L(N) G CHKAR25 ; Tekst- of financieel S TYPE=$P(N,D,13) I (TYPE=6)!(((TYPE=1)!(TYPE=7))&'$P(PAR,D,2)) S R=0_D_$P($T(@("T8"_QT)),U,2) G CHKARZ ; Basisrekeningen CHKAR25 I $P(PAR,D,3) G CHKARZ S BREK=$$SIGN^cAFA1("Q",Q,3) I (AR=$P(BREK,D))!(AR=$P(BREK,D,2)) S R=0_D_$P($T(@("T8"_QT)),U,2) G CHKARZ G CHKARZ ; ; Filter CHKAR3 S FILT=" NOT IN (1,6,7)" I $P(PAR,D,2) S FILT="<>'6'" S R="%ALPHAUP(T1.B113)"_FILT I $P(PAR,D,3) G CHKARZ S BREK=$$SIGN^cAFA1("Q",Q,3) S IDS=$P(BREK,D) I $L($P(BREK,D,2)) S IDS=IDS_$S($L(IDS):",",1:"")_$P(BREK,D,2) I $L(IDS) S R=R_" AND T1.ID NOT IN ("_IDS_")" ; CHKARZ Q R ; CHKARA(ARA,AR,PAR) ; Check ingave analytische rekening ; Input: ARA: Analytische rekening ; AR: Grootboekrekening ; PAR: Parameters gescheiden door "\" ; 1. Check/Filter ; 0,"": Check doorgegeven rekening (Caché) ; 1: Filter voor selectiegrid (dotNET) ; ; Output: Indien Check/Filter ; 1: Filter voor selectiegrid ; "": 0\Foutboodschap ; 1 ; ; Check/filter: ; - Niet verwijderd ; - Geen tekstrekening ; - Correcte analytisch actie (grootboekrek.) S $ZT="TRAP^cAN000" I $P($G(PAR),D) S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("ARA,AR,PAR") ; ; Controle parameters CHKARA1 S R=1 F i="ARA","AR","PAR" S @i=$G(@i) ; ; Check CHKARA2 I $P(PAR,D) G CHKARA3 ; Analytische actie S ACT=$$ARA^cTN001(Q,AR,1) ; Ingevuld/niet verwijderd? I $L(ARA)!($P(ACT,D)=2) S R=$$CTRLREK^cTN003("",ARA,"ARA.A",$P($T(@("T7"_QT)),U,3)) I 'R G CHKARAZ ; Vaste rekening I $L($P(ACT,D,2)),(ARA'=$P(ACT,D,2)) S R=0_D_$P($T(@("T8"_QT)),U,3) G CHKARAZ ; Geen analytische ventilatie I 'ACT,$L(ARA) S R=0_D_$P($T(@("T8"_QT)),U,3) G CHKARAZ ; Tekst-rekening S N=$$SIGN^cAFA1("ARA.A",ARA,0) I '$L(N) G CHKARAZ S TYPE=$P(N,D,13) I (TYPE=1) S R=0_D_$P($T(@("T8"_QT)),U,3) G CHKARAZ G CHKARAZ ; ; Filter CHKARA3 S R="%ALPHAUP(T1.B113)<>'1'" ; CHKARAZ Q R ; CTRL(Q,BP,PAR) ; Controle boekingsmaand ; input: ; Q : Q-waarde : door te geven als referentie : .Q ; BP : boekingsmaand, onder de vorm JJJJ.MM ; of ; dd.mm.jj : dag ; PAR : 1. SRT : "" : Financieel en Diverse, A=Aankoop, V=Verkoop ; ; output: 1_D_D_BP_D_BJ : ok ; 0_D_..._D_BP_D_BJ : fout ; -1_D_..._D_BP_D_BJ : waarschuwing S $ZT="TRAP^cAN000" N OK,ATPER,BPA,BPAM,REF,UREF,IREF,TEL,I1,I1L,RZR,BJ D S1^cAFE1 S PAR=$G(PAR) I BP?5N1","1.N S BP=$$HD^cAFD1(BP) ; $h doorgekregen I BP?2N1"."2N1"."2N S BP=$E($$DC^cAFD1(BP),1,6) ; datum doorgekregen I BP'?4N1"."2N S OK="0\"_$P($T(@("T3"_QT)),U,2) G CTRLZ I $P(BP,".",2)<1!($P(BP,".",2)>12) S OK="0\"_$P($T(@("T3"_QT)),U,5) G CTRLZ S OK="0\"_$P($T(@("T1"_QT)),U,2),BP=$TR(BP,"."),BJ="" CTRLA S ATPER=$$SIG^cAFA1("Q",$$Q^cAFA10(),208),BPA=$P($G(^(1)),D,10) ; toegelaten maanden + laatst afgesloten S BPAM=$P($G(^(1)),D,$S($P(PAR,D)="A":12,$P(PAR,D)="V":11,1:13)) ; laatst afgesloten aankoop, verkoop of financieel S BPA=$TR(BPA,"."),BPAM=$TR(BPAM,".") I BP'>BPA G CTRLY I BP'>BPAM G CTRLY S REF=$$REF^cAFA10(.Q,"BKJ.MND") S UREF=$P(REF,D),IREF=$P(REF,D,3),TEL=0,(I1,I1L)=$TR(BPA,".") ; laatst toegelaten maand bepalen CTRLB F Q:TEL>ATPER S I1=$O(@IREF@("M1",$$Q^cAFA10(),I1)) Q:'$L(I1) S I1L=I1,TEL=TEL+1 Q:I1L=BP I I1="",TELATPER S I1L=I1L+1 S:I1L#100>12 I1L=I1L+88 Q:I1L=BP ; indien volgende boekjaar nog niet gedefinieerd I TEL'>ATPER S OK=1_D S:ATPER-TEL<1 OK="-1\"_$P($T(@("T2"_QT)),U,2) ; maand ligt binnen toegelaten maanden CTRLY S BP=$E(BP,1,4)_"."_$E(BP,5,6),BJ=$$BJ(.Q,BP) CTRLZ D S2^cAFE1 Q OK_D_$G(BP)_D_$G(BJ) ; CTRLBA(Q,PAR,SWVB) ; controle basisrekeningen ; input: ; Q : Q-waarde : door te geven als referentie : .Q ; PAR : ; 1. Soort : "" = alles, V=enkel verkoop (klanten), A=enkel aankoop (Leveranciers) ; SWVB : =1 : vanuit VB ; output : ; 1 : ok ; 0\... fout ; S $ZT="TRAP^cAN000" I $G(SWVB) S $ZT="^dmERROR" N @$$INITVAR^cAFVBA01("PAR,SWVB") N RZR,OK,B,SRT,i D S1^cAFE1 S PAR=$G(PAR),OK=1 I '$L($$Q^cAFA10()) S OK="0\"_$P($T(@("T4"_QT)),U,2) G CTRLBAZ S B=$$SIGN^cAFA1("Q",$$Q^cAFA10(),3) I '$L(B) S OK="0\"_$P($T(@("T4"_QT)),U,3) G CTRLBAZ S SRT=$P(PAR,D) I '$L(SRT) S SRT="AV" CTRLBAA ; Verkoop I SRT'["V" G CTRLBAB F i=1,3,4,11 S OK=$$CTRLREK(i,$P(B,D,i),"AR.A") I 'OK Q I 'OK G CTRLBAZ CTRLBAB ; Aankoop I SRT'["A" G CTRLBAZ ;F i=2,5,6,13 S OK=$$CTRLREK(i,$P(B,D,i),"AR.A") I 'OK Q F i=2,13 S OK=$$CTRLREK(i,$P(B,D,i),"AR.A") I 'OK Q CTRLBAZ D S2^cAFE1 Q OK ; CTRLREK(TYPE,UI1REK,DMS,TXT) ; controle rekening bestaat/niet verwijderd N B,OK S OK=1 I '$L($G(TXT)) S TXT=$P($T(@("T6"_QT)),U,1+TYPE) I '$L(UI1REK) S OK="0\"_TXT_$P($T(@("T5"_QT)),U,2) G CTRLREKZ S B=$$SIGN^cAFA1(DMS,UI1REK,0) I $P(B,D,30)=2!'$L(B) S OK="0\"_TXT_$P($T(@("T5"_QT)),U,3) G CTRLREKZ CTRLREKZ Q OK ; ERR ; Error-variabelen opzetten S U=";" D QT^cAFVBO01 ERRZ Q ; JBM(Q) ; Bepaalt de jongste boekingsmaand ; Input: Q: Vennootschap ; Output: JBM: Jongste boekingsmaand ; S $ZT="TRAP^cAN000" N (Q) ; JBM1 S D="\",QN1=$$SIGN^cAFA1("Q",Q,1) ; Firma-gegevens S JBM=$P(QN1,D,10),ATL=$P(QN1,D,8) ; Laatst afgesloten maand + max. aantal openst. maanden F i=1:1:ATL S JBM=JBM+.01 S:JBM#1>.12 JBM=JBM+.88 S JBM=$E(JBM_"0",1,7) ; JBMZ Q JBM ; ; ******************************************************************************************** ; H U L P F U N C T I E S ; ******************************************************************************************** ; VBJ(Q,LBJ,LBM,EBM) ; Theoretisch vooruitlopen ; ; Input: Q: Vennootschap ; LBJ: Laatst gekende boekjaar ; LBM: Laatste boekingsmaand van laatst gekende boekjaar (JJJJ.MM) ; EBM: Eerste boekingsmaand van laatst gekende boekjaar (JJJJ.MM) ; ; Opmerkingen: ; - Alle parameters doorgeven als referentie. ; - Het is de bedoeling om deze initieel leeg door te geven, en ; dat deze routine de variabelen opvult. Indien dit programma ; dan in een lus wordt opgestart, wordt steeds het volgende BJ ; bepaald. ; ; Output: Geen. Wel worden de doorgegeven parameters aangepast ; ; LBJ: Wordt één jaar verhoogd ; (indien intieel "": eerste niet bepaalde boekingsjaar) ; LBM: Theoretisch laatste boekingsmaand van LBJ ; EBM: Theoretisch eerste boekingsmaand van LBJ ; S $ZT="TRAP^cAN000" N (Q,LBJ,LBM,EBM) ; ; Controle parameters VBJ1 I '$L($G(Q)) G VBJZ ; ; Boekingsmaand niet bepaald: toekomst (theoretisch vooruitlopen) VBJ3 I $L($G(LBJ)) G VBJ5 K oQ M oQ=Q S D="\" D Q49^cAFA10(Q,"BKJ.MND") ; Q(49) bepalen boekingsmaanden S REF=$$REF^cAFA10(.Q,"BKJ.MND"),UREF=$P(REF,D),IREF=$P(REF,D,3) S LBM=$O(@IREF@("M1",$$Q^cAFA10(),""),-1) ; Laatste maand bepalen S UI1=$O(@IREF@("M1",$$Q^cAFA10(),LBM,""),-1) S LBJ=$P(@UREF@(0),D) K Q M Q=oQ ; ; Volgend theoretisch boekjaar bepalen VBJ5 S LBM=$TR(LBM,".","") S LBJ=LBJ+1,EBM=LBM+1 S:EBM#100=13 EBM=EBM+88 S LBM=EBM F i=1:1:11 S LBM=LBM+1 S:LBM#100=13 LBM=LBM+88 ; ; Maanden formateren (JJJJ.MM) VBJ7 F i="LBM","EBM" I $L(@i)=6 S @i=$E(@i,1,4)_"."_$E(@i,5,6) ; VBJZ Q ; ; ******************************************************************************************** ; ZZ ; 29.08.07 - 10 u 22 * V8.09