cTN103 ; Historiek ; cTN103 ; T1 ;Beginsaldo; T2 ;Enkel deze met bewegingen;Saldo weergeven ; T1F ;Solde initiale; T2F ;Uniquement ceux avec mouvements;Visualiser solde ; T1E ;Initial Balance; T2E ;Only Those With Movements;Show Balance ; YZ Q ; BTEMP(GRIDID,DMS,M1,M2,KEUID,PAR) ; Input: GRIDID: GridId van ^mtemp99, indien "" wordt er een nieuw nr bepaald ; DMS: DMS van type historiek (KL.A,LE.A,AR.A,ARA.A) ; M1: Van maand (JJJJMM of JJJJ.MM) ; M2: Tot maand (JJJJMM of JJJJ.MM) ; KEUID: 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 (groeperen per document) ; 1: Ja ; ; Output: 0\Foutboodschap ; of ; GRIDID S $ZT="ERR^cAFVBF01" N @$$INITVAR^cAFVBA01("GRIDID,DMS,M1,M2,KEUID,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="DMS","M1","M2","KEUID","PAR" S @i=$G(@i) I '$L(DMS)!'$L(KEUID) 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) I PAR="" S SWBEW=1,SWSAL=1,SWDET=0 ; ; 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(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,$P(N0,D,3))" S I3=$S(DMS="AR.A":"M3",DMS="ARA.A":"M4",DMS="KL.A":"M8",DMS="LE.A":"M9",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 S KILL=0 I $$SELC^cAFVBA01(KEUID,1)<0 S KEUID=$$KEU^cAFVBA05(Q,DMS,$$SELALL^cAFVBA01(KEUID)),KILL=1 I '$L(KEUID) G BTEMPY ; ; ############################################ ; 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 ; ; ############################################ ; ; Multiple aflopen BTEMP4 S I5="" BTEMP41 I $L(KEUID) S I5=$O(^mtemp99(KEUID,"COMMON",I5)) G:I5="" BTEMP6 D I5 G BTEMP42 BTEMP42 S I6=$O(@IREF@(I3,I4,I5,I6)),I7="" I '$L(I6)!($L(M2)&(I6>M2)) D:SWSAL SALDO(BJM2,.BJR,GRIDID,DMS,I5,1+SWBEW) G BTEMP41 S HISBJ=$$BJ^cTN003(.Q,$E(I6,1,4)_"."_$E(I6,5,6)) BTEMP43 S I7=$O(@IREF@(I3,I4,I5,I6,I7)),I8="" I '$L(I7) G BTEMP42 BTEMP44 S I8=$O(@IREF@(I3,I4,I5,I6,I7,I8)),I9="" I '$L(I8) G BTEMP43 BTEMP45 S I9=$O(@IREF@(I3,I4,I5,I6,I7,I8,I9)) I '$L(I9) G BTEMP44 S UI1=$P(^(I9),D),N0=$G(@UREF@(0)),N1=$G(^(1)) I '$L(N0) G BTEMP51 S DBUI1=$P(N0,D,3),DB=@DBUREF@(0) I DMS="AR.A",(($P(N0,D)="AD")!($P(N0,D)="ID")) G BTEMP51 ; ; Beginsaldo printen? BTEMP46 I SWSAL,$$SALDO(HISBJ,.BJR,GRIDID,DMS,I5) ; ; Berekende node 2 opzetten BTEMP47 S N2="" S $P(N2,D,3)=$P(DB,D,7) ; B303: Datum document 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 rekening - document? BTEMP49 S TVNR="" I SWDET G BTEMP50 ; Niet groeperen I ($P(N0,D)'="A"),($P(N0,D)'="V") G BTEMP50 ; Enkel voor aankoop- en verkoopdoc. 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 D NUM(.N0) 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(KILL) K ^mtemp99(KEUID,"COMMON") ; *-selectie verwijderen ; BTEMPZ K Q M Q=oQ Q OK ; ; ############################################################################### ; HULP FUNCTIES ; ############################################################################### ; ; Variabelen aanpassen bij elke wijziging van I5 I5 S I6=M1-.01,(SDBJ,SALDO)="" D BSALDO(.BJR,DMS,I5) I5Z Q ; ; "" omvormen naar 0 NUM(N) N i F i=15:1:18 S $P(N,D,i)=+$P($G(N),D,i) ; Debet/Credit + Debet/Credit munt NUMZ Q ; ; Vraagstellingen SW(QT) Q $P($T(@("T2"_$S($G(QT)="N":"",1:$G(QT)))),";",2,99) ; ; Tabel met boekjaren opzetten BJR(M1,M2,TAB) ; Input: M1: Van maand ; M2: Tot maand ; TAB: Tabel,doorgeven als referentie N MT,BM,BJ S $ZT="TRAP^cAN000" ; I $L(M1)=6 S M1=$E(M1,1,4)_"."_$E(M1,5,6) I $L(M2)=6 S M2=$E(M2,1,4)_"."_$E(M2,5,6) ; ; Boekjaren bepalen K TAB F MT=M1:.01:M2 D . I $P(MT,".",2)=1 S MT=$P(MT,".")_".10" . I $P(MT,".",2)>12 S MT=$P(MT,".")+1_".01" . S BJ=$$BJ^cTN003(.Q,MT) I $P(BJ,D)=0 Q . I $D(TAB(BJ)) Q ; Reeds opgezet . S BM=$S(MT=M1:M1,1:$$BM^cTN003(.Q,BJ)) I '$L(BM) Q . S TAB(BJ,"BM")=BM . S TAB(BJ,"PR")=0,TAB(BJ,"BEW")=0 ; Switchen "Geprint" en "Beweging" afzetten ; BJRZ Q ; ; Beginsaldi bepalen voor doorgegeven tabel met boekjaren BSALDO(TAB,DMS,UI1) ; Input: TAB: Tabel met boekjaren (zie BJR) ; Doorgeven als referentie! ; DMS: Type rekening (AR.A, ARA.A, ...) ; UI1: UI1 rekening ; S $ZT="TRAP^cAN000" ; S BJ="" BSALDO1 S BJ=$O(TAB(BJ)) I '$L(BJ) G BSALDOZ I '$D(TAB(BJ,"BM")) G BSALDO1 S TAB(BJ,"BS")=$$SALDO^cTN004(.Q,UI1,TAB(BJ,"BM"),DMS,0) S (TAB(BJ,"BEW"),TAB(BJ,"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,DMS,UI1,SKIP) ; Input: HISBJ: Boekjaar historiek ; TAB: Tabel met boekjaren en switchen ; GRIDID: GridId historiek ; DMS: DMS van het hoofdbestand ; UI1: UI1 van het hoofdbestand ; SKIP: 0: Neen ; 1: Skip 0-beginsaldo indien ; - er nog geen enkel beginsaldo is opgezet ; - er nog geen enkele beweging is geweest ; 2: Skip beginsaldo indien (dus ook een niet 0-saldo) ; - er nog geen enkel beginsaldo is opgezet ; - er nog geen enkele beweging is geweest N SN2,R,PRSW,I1,OK S $ZT="TRAP^cAN000" ; ; Controles SALDO1 S R=0,U=";",D="\" I '$D(TAB(HISBJ)) G SALDOZ ; Boekjaar niet opgezet I TAB(HISBJ,"PR") G SALDOZ ; Saldo boekjaar reeds geprint I $D(TAB(HISBJ-1)),'TAB(HISBJ-1,"PR") D SALDO(HISBJ-1,.TAB,GRIDID,DMS,UI1,$G(SKIP)) S PRSW=2 G SALDOY ; Vorig boekjaar printen,huidig boekjaar aanduiden als geprint I $D(TAB(HISBJ-1)),TAB(HISBJ-1,"PR"),(TAB(HISBJ,"BS")=TAB(HISBJ-1,"BS")),'TAB(HISBJ-1,"BEW") G SALDOZ ; Saldo = saldo vorig BJ en er is geen beweging ; ; Beginsaldo opzetten SALDO2 S (SN2,SN0)="" S PC=$S(DMS="AR.A":8,DMS="ARA.A":9,DMS="KL.A":13,DMS="LE.A":14,1:"") I $L(PC) S $P(SN0,D,PC)=UI1 ; UI1 rekening 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,"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,"PR"))=1 S OK=1 Q SALDO35 I 'OK S I1="" F I1=$O(TAB(I1)) Q:'$L(I1) I $G(TAB(I1,"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,"PR"),R)=PRSW ; 1: effectief geprint, 2: beginsaldo overgeslagen ; SALDOZ Q R ; ; ZZ ; 29.08.07 - 10 u 22 * V8.09