cTN9102 ; Aankoop : documenten begin boekhouding ; cTN9102 ; T1 ;Documenten begin BH: ; T2 ;Saldo (;) verschilt met totaal openstaande documenten (; ; YZ Q ; CONV(Q,BP) ; Conversie van documenten begin BH naar nieuwe structuur (^DBH) ; Input: Q: Gewoon doorgeven, niet als referentie! ; BP: Boekingsmaand (JJJJ.MM of JJJMM) N GRIDID,RZR,OK,OBP,DG,REFDT,TEMP,UI1,OFID,I3,N,i,LEREF,LE,c S $ZT="TRAP^cAN000" ; ; Opzetten Q49 CONV1 S Q(49)=$$Q49^cAFVBA03(Q,"DB") ; ; Onthouden last reference CONV2 D S1^cAFA1 ; ; Laatste dag van de vorige maand bepalen CONV3 I $L(BP)=6 S BP=$E(BP,1,4)_"."_$E(BP,5,6) S OBP=BP,BP=BP-.01 I $L(BP)=4 S BP=BP-.88 S DG=$$LDM^cAFD1($E(BP,1,4),$P(BP,".",2)) S REFDT=DG_"."_$P(BP,".",2)_"."_$E(BP,3,4) S TEMP="^mtemp99(OFID,""COMMON"",I3)",OK=1,c=0 ; ; Openstaande documenten opvragen op referentiedatum CONV4 W !,$P($T(@("T1")),U,2) S UI1=0,LEREF=$P($$REF^cAFA10(.Q,"LE"),D) I '$L(LEREF) G CONVY CONV41 S UI1=$O(@LEREF) I '$L(UI1) G CONV6 I $P(@LEREF@(0),D,30)=2 G CONV41 ; Verwijderd S LE=$P(@LEREF@(0),D,48) I '$L(LE) W "X" G CONV41 S OFID=$$BTMPOFDT^cAFVBF03($G(OFID),Q,"LE",UI1,QU,REFDT),I3="" CONV42 S I3=$O(@TEMP) I '$L(I3) G CONV41 M N=@TEMP ; ; Tekens van de bedragen aanpassen (F=+, C=-) CONV43 I ($P(N(0),D,2)="?")!($P(N(0),D,4)>"990000") D ; Voorschotten . I $P(N(2),D)'>0 S $P(N(0),D,2)="F" . I $P(N(2),D)>0 S $P(N(0),D,2)="C" I $P(N(0),D,2)="F" D ; Factuur . F i=1:1:5 S $P(N(2),D,i)=+$TR($P(N(2),D,i),"-") . S $P(N(2),D,5)=+$P(N(2),D,5)*-1 ; Korting contant I $P(N(0),D,2)="C" D ; CN . F i=1:1:5 S $P(N(2),D,i)=+$TR($P(N(2),D,i),"-")*-1 . S $P(N(2),D,5)=+$TR($P(N(2),D,5),"-") ; Korting contant ; ; Extra aanpassingen CONV44 S $P(N(0),D,9)="" ; Klant S $P(N(0),D,10)=LE ; Leverancier S $P(N(0),D,11)="A" ; Type dagboek ; ; Hoofding opzetten CONV45 S GRIDID=$$DOCBB($G(GRIDID),.N) ; ; Mtemp99 verwerken CONV47 S OK=$$DB^cTN101(GRIDID,,D_1) W $S(OK:".",1:$P(OK,D,2)) I OK D LOG^cTN9201($P(OK,D,3),"") S c=c+1 ; CONV49 G CONV42 ; ; Opkuis CONV6 W " "_c I $L($G(GRIDID)) K ^mtemp99(GRIDID,"DB") I $L($G(OFID)) K ^mtemp99(OFID,"DB") ; ; Controle CONV7 S OK=$$OPEN(Q,"A",OBP) ; ; Terugzetten last reference CONVY D S2^cAFA1 ; CONVZ Q OK ; DOCBB(GRIDID,N) ; Opzetten mtemp99 voor een document begin boekhouding ; Input: GRIDID: Indien "" wordt er een nieuw GridId bepaald ; N: Waardes voor document Begin BH, doorgegeven als referentie ; ; N(0) - String ; 1. Journaal ; 2. Type document (F of C) ; 3. ; 4. Documentnr ; 5. Referte ; 6. Munt ; 7. ; 8. Omschrijving ; 9. Klant ; 10. Leverancier ; 11. Type dagboek: "A" (aankoop) of "V" (verkoop) ; ; N(2) - Numeriek ; 1. Openstaand in munt BH ; 2. Vervallen in munt BH ; 3. Totaal in munt document ; 4. Openstaand in munt document ; 5. Korting contant in munt document ; ; N(3) - Datum ; 1. Document datum ; 2. Vervaldatum ; N @$$INITVAR^cAFVBA01("GRIDID,N") S $ZT="TRAP^cAN000" ; ; GridId bepalen DOCBB1 S:'$L(GRIDID) GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID) S (NODE0,NODE1,NODE2,NODE3,NODE4)="" ; ; Onbekende datums uitblanken DOCBB2 F i=1:1:2 I '$$DCTR^cAFI1($P(N(3),D,i)) S $P(N(3),D,i)="" ; ; Pariteit bepalen DOCBB3 S HBJ=$$BJ^cAFE1(Q,DJ_"."_DM),HMNT=$P($$MNTC^cAFE1(Q,HBJ),D) ; Munt huidig BJ S MNT=$P(N(0),D,6) ; Munt document S ISOMNT=$$SIG^cAFA1("CODE.9009",MNT,103),AD=$P($G(^(0)),D,5) S:'$L(AD) AD=2 I MNT=HMNT S PARE=1 G DOCBB4 ; Pariteit = 1 S EMU=+$$SIG^cAFA1("ISO.MUNT",ISOMNT,103) I EMU,(HMNT)="EUR" S PARE=$$PARE^cTN001(MNT) G DOCBB4 ; Pariteit = vaste pariteit van de munt tegenover EUR S PARE=+$J($P(N(2),D)/$P(N(2),D,4),0,6) ; Pariteit = OP BH / OP MNT, tot op 6 decimalen ; ; Node 0 DOCBB4 S $P(NODE0,D)="B"_$P(N(0),D,11) ; 1. Registratietype ("BA" of "BV") S JRN=$P(N(0),D) S:'$L(JRN) JRN=0 S JRN=$$UI1OP^cAFA1("JRN","M9","",$$Q^cAFA10,$P(N(0),D,11),JRN) I $P(N(0),D,4)'<990000 S JRN=0 ; Voorschot vast op dummy journaal "0" S $P(NODE0,D,2)=JRN ; 2. Journaalnummer S $P(NODE0,D,3)=$P(N(0),D,4) ; 3. Documentnummer S $P(NODE0,D,5)="" ; 5. Boekingsmaand (geen) S $P(NODE0,D,6)="" ; 6. Boekingsperiode (geen) S $P(NODE0,D,7)=$P(N(3),D) ; 7. Documentdatum S $P(NODE0,D,8)=$P(N(3),D,2) ; 8. Vervaldatum S $P(NODE0,D,9)=$P(N(0),D,9) ; 9. Klant S $P(NODE0,D,10)=$P(N(0),D,10) ; 10. Leverancier S $P(NODE0,D,11)="" ; 11. Financiële rekening S $P(NODE0,D,12)=$P(N(0),D,5) ; 12. Factuurnummer leverancier (referte) S $P(NODE0,D,13)=$P(N(0),D,8) ; 13. Omschrijving S $P(NODE0,D,14)=$P(N(0),D,6) ; 14. Muntcode document S $P(NODE0,D,15)=PARE ; 15. Pariteit S $P(NODE0,D,16)=$J($P(N(2),D,3)*PARE,0,AD) ; 16. Totaal factuur in munt vennootschap S $P(NODE0,D,17)=$J($P(N(2),D,5)*PARE,0,AD) ; 17. Bedrag korting contant in munt vennootschap S $P(NODE0,D,18)=$P(N(2),D) ; 18. Bedrag openstaand in munt vennootschap S $P(NODE0,D,19)=$P(N(2),D,3) ; 19. Totaal document in munt document S $P(NODE0,D,20)=$P(N(2),D,5) ; 20. Bedrag korting contant in munt document S $P(NODE0,D,21)=$P(N(2),D,4) ; 21. Bedrag openstaand in munt document S $P(NODE0,D,22)=1 ; 22. Openstaand S $P(NODE0,D,23)=$P(N(0),D,2) ; 23. Factuurcode (F/C/V) ; -- Voorschot: to do -- ;I $P(N(0),D,4)'<990000 S $P(NODE0,D,23)="V" ; -> Voorschot: V S $P(NODE0,D,23)=$P(N(0),D,2) ; 23. Factuurcode (F/C/V) ; ... S $P(NODE0,D,25)="" ; 25. BTW-nr facturerende vennootschap S $P(NODE0,D,26)=0 ; 26. Van toepassing voor Intrastat ; ... S $P(NODE0,D,28)=$S($L($P(N(3),D)):$$DH^cAFD1($P(N(3),D)),1:"") ; 28. Datum laatste wijziging S $P(NODE0,D,29)="" ; 29. Initialen laatste wijziging S $P(NODE0,D,30)=0 ; 30. Operationeel S $P(NODE0,D,31)=$T(+0) ; 31. Naam programma ; ... S $P(NODE0,D,49)=Q(49) ; 49. Vennootschap ; ; ^mtemp99 opzetten DOCBB5 S ^mtemp99(GRIDID,"DB",0,0)=NODE0,^(1)=NODE1,^(2)=NODE2,^(3)=NODE3,^(4)=NODE4 ; DOCBBZ Q GRIDID ; BFI(BP,DNR,VNR) ; Opzetten document begin BH aan de hand van FI (bij openstellen document) ; Input: BP: Boekingsmaand | ; DNR: Documentnummer |-> drie subscripts uit ^_Q_FI ; VNR: Volgnummer | ; ; Ouput: GRIDID van mtemp99 van de hoofding N (Q,BP,DNR,VNR) S $ZT="TRAP^cAN000" ; ; Onthouden last reference BFI1 D S1^cAFA1 ; ; Opzetten algemene variabelen BFI2 S D="\",D2="#" ; ; Ophalen gegevens aankoopdagboek BFI3 S FI=@("^"_Q_"FI(BP,DNR,VNR)") ; ; Factuur/creditnota? BFI4 S FC="C" I $P(FI,D,7)="K",$P(FI,D,6)="D" S FC="F" I $P(FI,D,7)="L",$P(FI,D,6)="C" S FC="F" S S1=1 I FC="C" S S1=-1 ; ; N(0) BFI5 S $P(N(0),D)="" ; 1. Journaal (niet gekend) S $P(N(0),D,2)=FC ; 2. Type document S $P(N(0),D,4)=$P(FI,D,13) ; 3. Documentnr S $P(N(0),D,5)=$P(FI,D,9) ; 4. Referte S $P(N(0),D,6)=$P(FI,D,24) ; 5. Munt S $P(N(0),D,8)=$P(FI,D,15) ; 8. Omschrijving I $P(FI,D,7)="K" S $P(N(0),D,9)=$$SG^cAFA1("KL",$P($P(FI,D,8),D2),148) ; 9. Klant I $P(FI,D,7)="L" S $P(N(0),D,10)=$$SG^cAFA1("LE",$P($P(FI,D,8),D2),148) ; 10. Leverancier S $P(N(0),D,11)=$S($P(FI,D,7)="K":"V",1:"A") ; 11. Type dagboek ; ; N(2) BFI6 S $P(N(2),D)=$P(FI,D,5)*S1 ; 1. Openstaand in munt BH S $P(N(2),D,3)=$P(FI,D,25)*S1 ; 3. Totaal in munt document S $P(N(2),D,4)=$P(FI,D,25)*S1 ; 4. Openstaand in munt document ; ; N(3) BFI7 S $P(N(3),D)="" ; 1. Documentdatum (niet gekend) S $P(N(3),D,2)="" ; 2. Vervaldatum (niet gekend) ; ; Hoofding opzetten BFI8 S GRIDID=$$DOCBB($G(GRIDID),.N) ; ; Mtemp99 verwerken BFI9 S OK=$$DB^cTN101(GRIDID,,D_1) W $S(OK:".",1:$P(OK,D,2)) I OK D LOG^cTN9201($P(OK,D,3),"") ; ; Opkuis BFI10 I $L($G(GRIDID)) K ^mtemp99(GRIDID,"DB") ; ; Terugzetten last reference BFIY D S2^cAFA1 ; BFIZ Q OK ; ; ; ############################################################################### ; H U L P - F U N C T I E S ; ############################################################################### ; ISBB(TDB) ; Is doorgegeven type een document begin BH ISBBZ Q ($G(TDB)="BA")!($G(TDB)="BV") ; OPEN(Q,TYPE,BP) ; Controle openstaande documenten begin BH <-> basisrekeningen KL/LE (oud) ; Input: Q: Vennootschap ; TYPE: A = Aankoop ; V = Verkoop ; BP: Boekingsmaand ; S $ZT="TRAP^cAN000" N @$$INIT^cTN009("TYPE,BP") ; ; Baisrekeningen ophalen OPEN1 S R=1,TYPE=$S($G(TYPE)="V":1,$G(TYPE)="A":2,1:"") I '$L(TYPE) G OPENZ S BREK=$$SIGN^cAFA1("Q",$$Q^cAFA10(),3) ; Basisrekeningen S KZREK=$P(BREK,D,TYPE) ; Basisrekening KL/LE S KZREK=$$SIG^cAFA1("AR.A",KZREK,150) ; UI1 "oud" bestand S S1=1 I TYPE=2 S S1=-1 ; Teken afhankelijk van KL/LE ; ; Definities OPEN2 G:'$L(UREFDB) OPENZ G:'$L(IREFDB) OPENZ ; ; Openstaand saldo bepalen OPEN3 S (KZ,OKL)="",MULT="M"_(1+TYPE) OPEN31 S KZ=$O(@IREFDB@(MULT,$$Q^cAFA10,KZ)),EDOC="" G:KZ=" " OPEN31 G:'$L(KZ) OPEN4 OPEN33 S EDOC=$O(@IREFDB@(MULT,$$Q^cAFA10,KZ,1,EDOC)),IDOC="" I '$L(EDOC) G OPEN31 OPEN35 S IDOC=$O(@IREFDB@(MULT,$$Q^cAFA10,KZ,1,EDOC,IDOC)) I '$L(IDOC) G OPEN33 S UI1=$P(^(IDOC),D),N=@UREFDB@(0) I '$$ISBB($P(UI1," ")) G OPEN39 S OKL=OKL+($P(N,D,18)*S1) OPEN39 G OPEN35 ; ; Openstaand saldo vergelijken met saldo grootboekrekening OPEN4 S BJ=$$BJ^cAFE1(Q,BP) S SKZ=$$BSAL^cAFE1(Q,BJ,"AR",KZREK) I +SKZ=+OKL G OPENZ S ERR=$P($T(@("T2")),U,2)_+SKZ_$P($T(@("T2")),U,3)_OKL_"): "_(SKZ-OKL) D ERR^cTN009("3","AR.A",KZREK,"",ERR) S R="0\"_ERR ; OPENZ Q R ; ; ZZ ; 29.08.07 - 10 u 22 * V8.09