cTN108 ; Overzicht per kostenplaats of per kostensoort; cTN108 ; T1 ;Beginsaldo; T2 ;Niet-analytische ventilatie;Cumuleren diversen;Enkel deze met bewegingen;Beginsaldo weergeven ; T1F ;Solde initiale; T2F ;Imputation non analytique;Cumuler les O.D.;Uniquement ceux avec mouvements;Visualiser solde initiale ; T1E ;Initial Balance; T2E ;Non-analytical booking;Cumul. Misc. Transact.;Only Those With Movements;Show Initial Balance ; YZ Q ; BTEMP(GRIDID,DMS1,M1,M2,KEUID1,KEUID2,PAR) ; Input: GRIDID : GridId van ^mtemp99, indien "" wordt er een nieuw nr bepaald ; DMS1 : DMS van type (AR.A of ARA.A) ; M1 : Van maand (JJJJMM of JJJJ.MM) ; M2 : Tot maand (JJJJMM of JJJJ.MM) ; KEUID1 : GridId van de ^mtemp99 met geselecteerde UI1's ; KEUID2 : GridId van de ^mtemp99 met geselecteerde UI1's ; PAR: Gescheiden door "\" ; 1. Welke rekeningen? ; 0: Alle rekeningen (met een bedrag, dus beginsaldo of beweging) ; 1: Enkel rekeningen met beweging in de gevraagde maanden ; 2. Saldo tonen? ; 0: Neen ; 1: Ja (dus met beginsaldo + saldo kolom) ; 3. Detail? ; 0: Neen (steede groeperen per document) ; Zonder detail is een ander programma ; 4. Niet-analytische ventilaties? ; 0: Neen ; 1: Ja ; 5. Detail diversen? ; 0: Neen ; 1: Ja ; ; Output: 0\Foutboodschap ; of ; GRIDID S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,DMS1,M1,M2,KEUID1,KEUID2,PAR") D QT^cAFVBO01 ; ; Ophalen GridId BTEMP1 I '$L($G(GRIDID)) S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID,"REG") S OK=GRIDID K oQ M oQ=Q ; ; Controle parameters BTEMP2 F i="DMS1","M1","M2","KEUID1","KEUID2","PAR" S @i=$G(@i) S DMS2=$S(DMS1="AR.A":"ARA.A",DMS1="ARA.A":"AR.A",1:"") I DMS2="" G BTEMPZ S M1=$TR(M1,".",""),M2=$TR(M2,".","") ; ; Switchen opzetten BTEMP23 S SWBEW=+$P(PAR,D) S SWSAL=+$P(PAR,D,2) S SWDET=+$P(PAR,D,3) S SWNAN=+$P(PAR,D,4) S SWDIV=+$P(PAR,D,5) ; ; Dagboek gegevens ophalen BTEMP25 S DBUREF=$P($$REF^cAFA10(.Q,"DB"),D) I '$L(DBUREF) G BTEMPZ S DBUREF=$$REPL^cAFA10(DBUREF,"UI1","DBUI1") ; ; Variabelen opzetten BTEMP3 D BJR^cTN103(M1,M2,.BJR) S BJM2=$$BJ^cTN003(.Q,$E(M2,1,4)_"."_$E(M2,5,6)) S VNR="",REF=$$REF^cAFA10(.Q,"REG") I '$L(REF) G BTEMPZ S UREF=$P(REF,D),IREF=$P(REF,D,3) I '$L(UREF)!'$L(IREF) G BTEMPZ S DOC="^mtemp99(GRIDID,""DOC"",I5,I6,DOCU)" K ^mtemp99(GRIDID,"DOC") S I3=$S(DMS1="AR.A":"M19",DMS1="ARA.A":"M20",1:"") I '$L(I3) G BTEMPZ D Q49^cAFA10(Q,"REG") S I4=$$Q^cAFA10() I '$L(I4) G BTEMPZ ; Q(49) bepalen via registraties ;I $L(KEUID1),'$D(^mtemp99(KEUID1,"COMMON")) S KEUID="" ;I $L(KEUID1) G BTEMP4 ;S KEUID1=$$KEU^cAFVBA05(Q,DMS1) I '$L(KEUID1) G BTEMPZ ;I $L(KEUID2),'$D(^mtemp99(KEUID2,"COMMON")) S KEUID2="" ;I $L(KEUID2) G BTEMP4 ;S KEUID2=$$KEU^cAFVBA05(Q,DMS2) I '$L(KEUID2) G BTEMPZ S (KILL1,KILL2)=0 I $$SELC^cAFVBA01(KEUID1,1)'>0 S KEUID1=$$KEU^cAFVBA05(Q,DMS1,$$SELALL^cAFVBA01(KEUID1)),KILL1=1 I '$L(KEUID1) G BTEMPY I $$SELC^cAFVBA01(KEUID2,1)'>0 S KEUID2=$$KEU^cAFVBA05(Q,DMS2,$$SELALL^cAFVBA01(KEUID2)),KILL2=1 I '$L(KEUID2) G BTEMPY I SWNAN S ^mtemp99(KEUID2,"COMMON"," ")="" ; indien Niet-analytische ventilaties meenemen ; ; ############################################ ; Layout multiple: ; ; Global ^INDBH ; ; I1 = "EA" ; I2 = "REG" ; I3 = Multiple (Mx) ; I4 = Q49 ; I5 = UI1 van DMS (AR.A,ARA.A,...) ; I6 = Maand ; I7 = Document datum ; I8 = Volgnr ; I9 = UI1 registratie ; ; ############################################ ; BTEMP4 S I5="" ; Multiple aflopen BTEMP41 S I5=$O(^mtemp99(KEUID1,"COMMON",I5)) I I5="" G BTEMP6 ; aflopen rek1 S I6="" BTEMP411 S I6=$O(^mtemp99(KEUID2,"COMMON",I6)) I I6="" G BTEMP41 ; aflopen rek2 D I6 BTEMP42 S I7=$O(@IREF@(I3,I4,I5,I6,I7)) I '$L(I7)!($L(M2)&(I7>M2)) D:SWSAL SALDO(BJM2,.BJR,GRIDID,DMS1,I5,DMS2,I6,1+SWBEW) G BTEMP411 S HISBJ=$$BJ^cTN003(.Q,$E(I7,1,4)_"."_$E(I7,5,6)) S I8="" BTEMP43 S I8=$O(@IREF@(I3,I4,I5,I6,I7,I8)),I9="" I '$L(I8) G BTEMP42 BTEMP44 S I9=$O(@IREF@(I3,I4,I5,I6,I7,I8,I9)),I10="" I '$L(I9) G BTEMP43 BTEMP45 S I10=$O(@IREF@(I3,I4,I5,I6,I7,I8,I9,I10)) I '$L(I10) G BTEMP44 S UI1=$P(^(I10),D),N0=$G(@UREF@(0)),N1=$G(^(1)) I '$L(N0) G BTEMP50 S DBUI1=$P(N0,D,3),DB=@DBUREF@(0) ; ; Beginsaldo printen? BTEMP46 I SWSAL D SALDO(HISBJ,.BJR,GRIDID,DMS1,I5,DMS2,I6) ; ; Berekende node 2 opzetten BTEMP47 S N2="" S $P(N2,D,3)=$P(DB,D,7) ; B303: Datum document S SALDO=(SALDO+$P(N0,D,15)-$P(N0,D,16)) S $P(N2,D,4)=SALDO ; B304: Saldo I $P(N0,D)="A"!($P(N0,D)="V") G BTEMP48 S $P(N2,D,5)=$P(N0,D,34) ; B305: Referte (van bij registratie) S $P(N2,D,6)=$P(N0,D,19) ; B306: Omschrijving (van bij registratie) S $P(N2,D,7)=$P(N0,D,13) ; B307: Klant (van bij registratie) S $P(N2,D,8)=$P(N0,D,14) ; B308: Leverancier (van bij registratie) G BTEMP49 BTEMP48 S $P(N2,D,5)=$P(DB,D,12) ; B305: Referte (van bij document) S $P(N2,D,6)=$P(DB,D,13) ; B306: Omschrijving (van bij document) S $P(N2,D,7)=$P(DB,D,9) ; B307: Klant (van bij document) S $P(N2,D,8)=$P(DB,D,10) ; B308: Leverancier (van bij document) ; ; Groeperen per rekening1 - rekening2 - document? BTEMP49 S TVNR="" I SWDET G BTEMP50 ; Niet groeperen I "\A\V\D\"'[(D_$P(N0,D)_D) G BTEMP50 ; Enkel voor aankoop- en verkoopdoc. en eventueel diverse S DOCU=$P(N0,D,3) ; intern nummer document I $P(N0,D)="D" G BTEMP50:SWDIV D ; indien diverse : groeperen indien niet met detail diverse . S DOCU=" " . F i=3,5:1:8 s $p(N2,D,i)="" . S $P(N0,D,28,29)="",$P(N0,D,5)="" I '$D(@DOC) S TVNR=$$VNR,@DOC=TVNR G BTEMP50 S TVNR=@DOC S GN0=^mtemp99(GRIDID,"REG",TVNR,0) F i=15:1:18 S $P(N0,D,i)=$P(N0,D,i)+$P(GN0,D,i) ; ; Mtemp99-node opzetten BTEMP50 I '$L(TVNR) S TVNR=$$VNR S ^mtemp99(GRIDID,"REG",TVNR,0)=N0,^(1)=N1,^(2)=N2 I $D(BJR(HISBJ,"BEW")) S BJR(HISBJ,"BEW")=1 ; Beweging ; BTEMP51 G BTEMP45 ; ; Saldo kolom opzetten BTEMP6 G:'SWSAL BTEMPY S i="" BTEMP63 S i=$O(^mtemp99(GRIDID,"REG",i)) I '$L(i) G BTEMPY S N0=^(i,0),N2=$G(^(2)) BTEMP65 I '$L($P(N0,D,3)) S SALDO=$P(N2,D,4) G BTEMP69 ; Beginsaldo (geen document ingevuld) S SALDO=(SALDO+$P(N0,D,15)-$P(N0,D,16)) S $P(^mtemp99(GRIDID,"REG",i,2),D,4)=SALDO BTEMP69 G BTEMP63 ; ; Opkuis BTEMPY I 'SWDET K ^mtemp99(GRIDID,"DOC") I $G(KILL1) K ^mtemp99(KEUID1,"COMMON") ; *-selectie verwijderen I $G(KILL2) K ^mtemp99(KEUID2,"COMMON") ; *-selectie verwijderen ; BTEMPZ K Q M Q=oQ Q OK ; ; ############################################################################### ; HULP FUNCTIES ; ############################################################################### ; ; Variabelen aanpassen bij elke wijziging van I5 I6 S I7=M1-.01,(SDBJ,SALDO)="" D BSALDO(.BJR,DMS1,I5,DMS2,I6) I6Z Q ; ANVREK(Q,QT) ; Rekening analytisch niet geventileerd ; Input: Q: Firma ; QT: Taalcode ; Output: gescheiden door "\" ; 1. Nr analytische rekening ; 2. Omschrijving analytische rekening (in doorgegeven taal) ; [3. Intern nummer analytische rekening ] S $ZT="TRAP^cAN000" N (Q,QT) ; ; Controle parameters ANVREK1 S R="" I '$L(Q) G ANVREKZ S QT=$G(QT),D="\" ; ; Analytische rekening gedefinieerd? ANVREK2 S ARA=$$PAR^cTN001(Q,509) I '$L(ARA) G ANVREK3 S R=$$SIG^cAFA1("ARA.A",ARA,101)_D_$P($G(^(1)),D,$S(QT="F":7,QT="D":9,QT="E":11,1:5))_D_ARA G ANVREKZ ; ; Nummer en omschrijving ANVREK3 S R=$$PAR^cTN001(Q,510)_D_$P($G(^(4)),D,$S(QT="F":12,QT="D":13,QT="E":14,1:11)) ; ANVREKZ Q R ; ; Beginsaldi bepalen voor doorgegeven tabel met boekjaren BSALDO(TAB,DMS1,UI11,DMS2,UI12) ; Input: TAB: Tabel met boekjaren (zie BJR) ; Doorgeven als referentie! ; DMS1: DMS van het hoofdbestand1 ; UI11: UI1 van het hoofdbestand1 ; DMS2: DMS van het hoofdbestand2 ; UI12: UI1 van het hoofdbestand2 ; S $ZT="TRAP^cAN000" N UI1TAB ; S BJ="",UI1TAB=UI11_" "_UI12 BSALDO1 S BJ=$O(TAB(BJ)) I '$L(BJ) G BSALDOZ I '$D(TAB(BJ,"BM")) G BSALDO1 ; S TAB(BJ,UI1TAB,"BS")=0 S TAB(BJ,UI1TAB,"BS")=$$SALDOC^cTN004(.Q,$S(DMS1="AR.A":UI11,1:UI12),$TR($S(DMS1="AR.A":UI12,1:UI11)," "),"",TAB(BJ,"BM"),"",0) S (TAB(BJ,UI1TAB,"BEW"),TAB(BJ,UI1TAB,"PR"))=0 ; Switchen "Geprint" en "Beweging" afzetten BSALDO9 G BSALDO1 ; BSALDOZ Q ; ; Volgnummer historiek VNR() S VNR=VNR+1 Q VNR ; ; SALDO(HISBJ,TAB,GRIDID,DMS1,UI11,DMS2,UI12,SKIP) ; Input: HISBJ: Boekjaar historiek ; TAB: Tabel met boekjaren en switchen ; GRIDID: GridId historiek ; DMS1: DMS van het hoofdbestand1 ; UI11: UI1 van het hoofdbestand1 ; DMS2: DMS van het hoofdbestand2 ; UI12: UI1 van het hoofdbestand2 ; SKIP: Skip 0-beginsaldo indien ; - er nog geen enkel beginsaldo is opgezet ; - er nog geen enkele beweging is geweest N SN2,R,PRSW,I1,OK,UI1TAB S $ZT="TRAP^cAN000" ; ; Controles SALDO1 S R=0,U=";",D="\",UI1TAB=UI11_" "_UI12 I '$D(TAB(HISBJ,UI1TAB)) G SALDOZ ; Boekjaar niet opgezet I TAB(HISBJ,UI1TAB,"PR") G SALDOZ ; Saldo boekjaar reeds geprint I $D(TAB(HISBJ-1,UI1TAB)),'TAB(HISBJ-1,UI1TAB,"PR") D SALDO(HISBJ-1,.TAB,GRIDID,DMS1,UI11,DMS2,UI12,$G(SKIP)) S PRSW=2 G SALDOY ; Vorig boekjaar printen,huidig boekjaar aanduiden als geprint I $D(TAB(HISBJ-1,UI1TAB)),TAB(HISBJ-1,UI1TAB,"PR"),(TAB(HISBJ,UI1TAB,"BS")=TAB(HISBJ-1,UI1TAB,"BS")),'TAB(HISBJ-1,UI1TAB,"BEW") G SALDOZ ; Saldo = saldo vorig BJ en er is geen beweging ; ; Beginsaldo opzetten SALDO2 S (SN2,SN0)="" S $P(SN0,D,8)=$S(DMS1="AR.A":UI11,1:UI12) ; UI1 AR.A S $P(SN0,D,9)=$S(DMS1="ARA.A":UI11,1:UI12) ; UI1 ARA.A S $P(SN0,D,5)=TAB(HISBJ,"BM") ; Maand S $P(SN2,D,3)="01."_$P(TAB(HISBJ,"BM"),".",2)_"."_$E(TAB(HISBJ,"BM"),3,4) ; Documentdatum S $P(SN2,D,4)=TAB(HISBJ,UI1TAB,"BS") ; Beginsaldo S $P(SN2,D,5)=$P($T(@("T1"_QT)),U,2) ; "Beginsaldo" ; Referte ; ; Checken of beginsaldo niet moet geskipt worden SALDO3 I '$G(SKIP) G SALDO4 SALDO31 I $G(SKIP)=1,(+$P(SN2,D,4)'=0) G SALDO4 ; Beginsaldo is niet 0 SALDO33 S (I1,OK)="" F I1=$O(TAB(I1)) Q:'$L(I1) I $G(TAB(I1,UI1TAB,"PR"))=1 S OK=1 Q SALDO35 I 'OK S I1="" F I1=$O(TAB(I1)) Q:'$L(I1) I $G(TAB(I1,UI1TAB,"BEW"))=1 S OK=1 Q SALDO39 I 'OK G SALDOZ ; ; Beginsaldo wegschrijven SALDO4 S ^mtemp99(GRIDID,"REG",$$VNR,0)=SN0,^(2)=SN2,PRSW=1 ; ; Switchen opzetten SALDOY S (TAB(HISBJ,UI1TAB,"PR"),R)=PRSW ; 1: effectief geprint, 2: beginsaldo overgeslagen ; SALDOZ Q ; ; Vraagstellingen SW(QT) Q $P($T(@("T2"_$S($G(QT)="N":"",1:$G(QT)))),";",2,99) ; ZZ ; 29.08.07 - 10 u 22 * V8.09