cTN9301 ; Financieel/divers : Conversie oude structuur dagboek naar nieuwe structuur ; cTN9301 ; Compiled December 8, 2011 12:06:25 ; YZ Q ; CONV(Q,BM) ; Eénmalige conversie\setup voor financieel\divers ; Input: Q: Vennootschap (als ref. doorgeven : .Q) ; BM: Maand vanaf de documenten worden geconverteerd ; S $ZT="TRAP^cAN000" ; W !,!,"*** Journalen opzetten ***" D JRN^cTN999(.Q,"F") ; Financieel D JRN^cTN999(.Q,"D") ; Divers ; W !,!,"*** Documentnummers opzetten ***" D FNR^cTN901(Q,"D","") ; W !,!,"*** Financieel\Divers dagboek converteren ***" D DBFI(.Q,BM) ; W !,!,"*** Beginsaldi opzetten ***" I '$L($G(BM)) S BM=$$DEFBM(Q) S JR=$$BJ^cAFE1(Q,BM) D BS(JR,"AR.A") ; Grootboekrekeningen D BS(JR,"KL.A") ; Klanten D BS(JR,"LE.A") ; Leveranciers ; CONVZ Q ; DBFI(Q,VBM,TBM) ; Eénmalige conversie van het financieel/divers dagboek ; Input: Q: Vennootschap (als ref. doorgeven : .Q) ; VBM: Van boekingsmaand van de conversie ; TBM: Tot boekingsmaand (indien ""= tot het einde) N I1,I2,OK,ERR,CERR S $ZT="TRAP^cAN000" ; ; Controle parameters DBFI1 I '$L($G(VBM)) S VBM=$$DEFBM(Q) I '$L(VBM) G DBFIZ ; W !,"-- Financieel en divers --",! ; DBFI2 W !,"STAP I: Conversie",! D ^cT489 W !,"------- "_Q_" -------",! S I1=VBM-.01,S="#",CERR=0 I '$L($G(TBM)) S TBM=J3 DBFI23 S I1=$E($J(I1+.01,0,2)_0,1,7) S:I1#1>.12 I1=I1+.88 I I1>TBM G DBFI29 W I1_" " S I2="" DBFI24 S I2=$O(@("^"_Q_"FI(I1,I2)")) G DBFI23:I2="" S I3="" DBFI25 S I3=$O(@("^"_Q_"FI(I1,I2,I3)")) G DBFI24:I3="" S OK=$$FI2DBH(Q,I1,I2,I3,1) S:'OK ERR(I1,I2,I3)=$P(OK,D,2) S:'OK CERR=CERR+1 G DBFI25 DBFI29 W !,"-------------------" I CERR W !,"OPGELET: ",CERR," fout(en):",! ZW ERR W "-------------------" I CERR W !,"Stoppen met conversie? [] = ja, .[] = neen " R K I K="" G DBFIZ ; DBFI3 W !,!,"STAP II: Voorschotten linken",! D VST(Q) ; DBFI4 W !,"STAP III: Openstaande bedragen opzetten",! D ODOC^cTN9109(VBM,1,0) ; DBFIZ Q ; FIH(BP,DNR,VNR,SWV,TYPE) ; Opzetten mtemp99 voor hoofding ; Input: BP: Boekingsmaand | ; DNR: Documentnummer |-> drie subscripts uit ^_Q_FI ; VNR: Volgnummer | ; SWV: Switch voorschot ; 1 = Voorschotdagboek opzetten ; 2 = Voorschotdagboek opzetten, omgekeerd teken ; TYPE: "" of 0: Financieel (FI) ; 1: Divers (FI) ; 2: Analytisch divers (FIE) ; 3: Segment divers (FII) ; ; Ouput: GRIDID van mtemp99 van de hoofding N @$$INITVAR^cAFVBA01("BP,DNR,VNR,SWV,TYPE") S $ZT="TRAP^cAN000" ; ; Opzetten algemene variabelen FIH0 S D="\",D2="#" ; ; Ophalen gegevens financieel/divers FIH1 S TYPE=+$G(TYPE),FI=@("^"_Q_$S(TYPE=2:"FIE",TYPE=3:"FII",1:"FI")_"(BP,DNR,VNR)") ; ; Gridid bepalen FIH2 S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID) S (NODE0,NODE5,NODE6)="" ; ; Node 0 FIH3 S $P(NODE0,D)=$S(TYPE=0:"F",TYPE=1:"D",TYPE=2:"AD",TYPE=3:"ID") ; 1. Registratietype S JRN=$P(FI,D,4) I TYPE S JRN=$E(DNR,2,99) S:'$L(JRN) JRN=0 S JRN=$$JRN($P(NODE0,D),JRN) S $P(NODE0,D,2)=JRN ; 2. Journaalnummer S $P(NODE0,D,3)=$P(FI,D,3) ; 3. Documentnummer S $P(NODE0,D,5)=BP ; 5. Boekingsmaand S $P(NODE0,D,6)=$P(FI,D,10) ; 6. Boekingsperiode - Leveringsmaand S $P(NODE0,D,7)=$P(FI,D,2) ; 7. Documentdatum S $P(NODE0,D,8)="" ; 8. Vervaldatum S $P(NODE0,D,9)="" ; 9. Klant S $P(NODE0,D,10)="" ; 10. Leverancier S $P(NODE0,D,11)=$S($P(NODE0,D)="F":$$SG^cAFA1("AR",DNR,148),1:"") ; 11. Financiële rekening S $P(NODE0,D,12)="" ; 12. Referte S $P(NODE0,D,13)="" ; 13. Omschrijving S $P(NODE0,D,14)=$P(FI,D,23) ; 14. Muntcode document S $P(NODE0,D,15)=1 ; 15. Pariteit S $P(NODE0,D,16)="" ; 16. Totaal document in munt vennootschap S $P(NODE0,D,17)="" ; 17. Bedrag korting contant in munt vennootschap S $P(NODE0,D,18)="" ; 18. Bedrag openstaand in munt vennootschap S $P(NODE0,D,19)="" ; 19. Totaal document in munt document S $P(NODE0,D,20)="" ; 20. Bedrag korting contant in munt document S $P(NODE0,D,21)="" ; 21. Bedrag openstaand in munt document S $P(NODE0,D,22)=0 ; 22. Openstaand S $P(NODE0,D,23)="" ; 23. Factuurcode (F/C) ;S $P(NODE0,D,24)=0 ; 24. Aard (normaal doc. / doc. begin boekjaar) ; ... S $P(NODE0,D,28)=$P(FI,D,28) ; 28. Datum laatste wijziging I '$L($P(NODE0,D,28)) S $P(NODE0,D,28)=$$DH^cAFD1($P(NODE0,D,7)) S $P(NODE0,D,29)=$P(FI,D,29) ; 29. Initialen laatste wijziging S $P(NODE0,D,30)=0 ; 30. Operationeel S $P(NODE0,D,31)=$T(+0) ; 31. Naam programma ; ; *** Voorschot *** I '$G(SWV) G FIH4 ; ; Factuur/creditnota? S FC="C" I SWV=2 S $P(FI,D,6)=$S($P(FI,D,6)="C":"D",1:"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 ; S $P(NODE0,D)=$P(FI,D,7)_"V" ; 1. Type dagboek (KV of LV) S $P(NODE0,D,2)=0 ; 2. Journaal: vast UI1=0 (dummy journaal) S $P(NODE0,D,3)=$P(FI,D,13) ; 3. Documentnummer S $P(NODE0,D,8)=$P(NODE0,D,7) ; 8. Vervaldatum (=documentdatum) I $P(FI,D,7)="K" S $P(NODE0,D,9)=$$SG^cAFA1("KL",$P($P(FI,D,8),D2),148) ; 9. Klant I $P(FI,D,7)="L" S $P(NODE0,D,10)=$$SG^cAFA1("LE",$P($P(FI,D,8),D2),148) ; 10. Leverancier S $P(NODE0,D,11)="" ; 11. Financiële rekening S $P(NODE0,D,12)=$P(FI,D,9) ; 12. Referte S $P(NODE0,D,13)=$P(FI,D,15) ; 13. Omschrijving S $P(NODE0,D,15)=1 ; 15. Pariteit S $P(NODE0,D,16)=$P(FI,D,5)*S1 ; 16. Totaal document in munt vennootschap S $P(NODE0,D,17)="" ; 17. Bedrag korting contant in munt vennootschap S $P(NODE0,D,18)=$P(FI,D,5)*S1 ; 18. Bedrag openstaand in munt vennootschap S $P(NODE0,D,19)=$P(FI,D,11)*S1 ; 19. Totaal document in munt document S $P(NODE0,D,20)="" ; 20. Bedrag korting contant in munt document S $P(NODE0,D,21)=$P(FI,D,11)*S1 ; 21. Bedrag openstaand in munt document S $P(NODE0,D,22)=1 ; 22. Openstaand ; -- Voorschot: to do -- ;S $P(NODE0,D,23)="V" ; 23. Factuurcode (F/C) Voorschot: vast "V" S $P(NODE0,D,23)=FC ; 23. Factuurcode (F/C) G FIH6 ; ; ***************** ; ; Node 5 (in munt vennootschap) FIH4 I TYPE G FIH6 ; Enkel voor financieel S $P(NODE5,D)="" ; 1. Beginsaldo S $P(NODE5,D,2)="" ; 2. Eindsaldo ; ; Node 6 (in munt document) FIH5 S $P(NODE6,D)="" ; 1. Beginsaldo S $P(NODE6,D,2)="" ; 2. Eindsaldo ; ; ^mtemp99 opzetten FIH6 S ^mtemp99(GRIDID,"DB",0,0)=NODE0 I TYPE G FIHZ S ^mtemp99(GRIDID,"DB",0,5)=NODE5,^(6)=NODE6 ; Enkel voor financieel ; FIHZ Q GRIDID ; FIV(GRIDID,BP,DNR,VNR,SWC,TYPE) ; Opzetten mtemp99 voor detaillijnen ; Input: GRIDID: Gridid van mtemp99 met hoofdinggegevens ; BP: Boekingsmaand | ; DNR: Documentnummer |-> drie subscripts uit ^_Q_FI ; VNR: Volgnummer | ; SWC: Switch conversie ; "",0: online gelijkhouden ; 1: éénmalige conversie ; TYPE: "" of 0: Financieel (FI) ; 1: Divers (FI) ; 2: Analytisch divers (FIE) ; 3: Segment divers (FII) ; N @$$INITVAR^cAFVBA01("GRIDID,BP,DNR,VNR,SWC,TYPE") S $ZT="TRAP^cAN000" ; ; Opzetten algemene variabelen FIV0 S D="\",D2="#" ; ; Ophalen gegevens financieel/divers FIV1 S TYPE=+$G(TYPE),FI=@("^"_Q_$S(TYPE=2:"FIE",TYPE=3:"FII",1:"FI")_"(BP,DNR,VNR)") ; S $P(N0,D,7)=$S($P(FI,D,7)="A":"G",1:$P(FI,D,7)) ; 7. Soort grootboekrekening I $P(N0,D,7)="G" S $P(N0,D,8)=$$SIG^cAFA1("AR",$P($P(FI,D,8),D2)_" ",148) ; 8. Grootboekrekening I $P(N0,D,7)="K" S $P(N0,D,8)=$$SIG^cAFA1("Q",$$Q^cAFA10(),401) I $P(N0,D,7)="L" S $P(N0,D,8)=$$SIG^cAFA1("Q",$$Q^cAFA10(),402) FIV11 S $P(N0,D,9)=$$SIG^cAFA1("ARA",$P(FI,D,16),148) ; 9. Analytische rekening F i=10:1:12 S $P(N0,D,i)="" ; 10-12. Extra compt. rekeningen I $P(N0,D,7)="K" S ($P(N0,D,13),KC)=$$SG^cAFA1("KL",$P($P(FI,D,8),D2),148) ; 13. Klant I $P(N0,D,7)="L" S ($P(N0,D,14),KC)=$$SG^cAFA1("LE",$P($P(FI,D,8),D2),148) ; 14. Leverancier S DC=$P(FI,D,6) I $P(FI,D,5)<0 S DC=$S(DC="C":"D",1:"C") S $P(N0,D,15+(DC="C"))=$FN($P(FI,D,5),"-") ; 15/16. Bedrag in munt BH S $P(N0,D,17+(DC="C"))=$FN($P(FI,D,11),"-") ; 17/18. Bedrag in munt document S $P(N0,D,19)=$P(FI,D,15) ; 19. Omschrijving ; Afgeboekt document I $L($P(FI,D,13)) D . S TREK=$P(FI,D,7) I (TREK'="K"),(TREK'="L") Q . S FNR=$$FNR(TREK,KC,$P(FI,D,13),SWC) . S $P(N0,D,21)=$P(FNR,D) ; 21. Type afgeboekt document . S $P(N0,D,22)=$P(FNR,D,2) ; 22. Afgeboekt document . I $L($P(N0,D,22)," ")=1 S $P(N0,D,22)=$P(N0,D,22)_"#"_BP_"~"_DNR_"~"_VNR S $P(N0,D,26+(DC="C"))=$FN($P(FI,D,25),"-") ; 26/27. Bedrag in munt afgeboekt document S $P(N0,D,28)=$P(FI,D,28) ; 28. Datum laatste wijziging I '$L($P(N0,D,28)) S $P(N0,D,28)=$$DH^cAFD1($P(FI,D,2)) S $P(N0,D,29)=$P(FI,D,29) ; 29. Initialen laatste wijziging S $P(N0,D,30)=0 ; 30. Niveau S $P(N0,D,31)=$T(+0)_","_$P(FI,D) ; 31. Naam programma S $P(N0,D,32)=1 ; 32. Manuele registraties S $P(N0,D,33)=$P(FI,D,26) ; 33. Pariteit munt afgeboekt document (1 EUR=) I +$P(N0,D,33)'=1 S $P(N0,D,33)=$J($P(N0,D,33),0,6) S $P(N0,D,34)=$P(FI,D,9) ; 34. Referte S $P(N0,D,35)=VNR ; 35. Index 3 van ^Q_FI (of FIE of FIE) ; ; IAS --------------------------------- I '$$IAS^cTN001(Q) G FIV15 S IAS=$P(FI,D,$S(TYPE>1:31,1:40)) I '$L(IAS),(TYPE>1) S IAS=$P(N0,D,9) S $P(N0,D,24)=$$SIG^cAFA1("ARA",IAS,148) ; IAS-code S $P(N0,D,51)=$P(FI,D,$S(TYPE>1:32,1:41)) ; Interne CGU S $P(N0,D,52)=$P(FI,D,$S(TYPE>1:33,1:42)) ; Externe CGU S $P(N0,D,53)=$P(FI,D,$S(TYPE>1:34,1:43)) ; Segment ; ------------------------------------- ; ; *** VOORSCHOT + DOCUMENT BEGIN BH ******************************************************* ; FIV15 I $P(FI,D)'["T814"&($P(FI,D)'["FW440") G FIV19 I '$L($P(FI,D,13)) G FIV19 I $P(FI,D,13)'=$P($P(N0,D,22),"#") G FIV19 ; ; Voorschot FIV16 I '$$ISV($P(FI,D,13)) G FIV17 S NGRIDID=$$FIH(BP,DNR,VNR,1) S OK=$$DB^cTN101(NGRIDID,,""_D_1_D_$G(SWC)) I 'OK W !,OK R k K ^mtemp99(NGRIDID,"DB"),^mtemp99(NGRIDID,"REG") G FIV18 ; ; Document begin BH FIV17 S OK=$$BFI^cTN9102(BP,DNR,VNR) ; FIV18 I 'OK G FIVZ ; --> ??? WAT DOEN INDIEN NOK ??? S $P(N0,D,21)="" ; 21. Type afgeboekt document S $P(N0,D,22)="" ; 22. UI1 afgeboekt document S $P(N0,D,23)=$P(OK,D,3) ; 23. UI1 opgezet document (voorschot / doc. begin BH) ; ; ***************************************************************************************** ; FIV19 S ^mtemp99(GRIDID,"REG",1000,0)=N0 ; FIVY ; FIVZ Q ; FI2DBH(Q,BP,DNR,VNR,SWC,BES) ; Conversie financieel / divers naar nieuwe structuur (^DBH) ; Input: Q: Gewoon doorgeven, niet als referentie! ; BP: Boekingsmaand | ; DNR: Journaal of rekeningnr. |-> drie subscripts uit ^_Q_FI (of FIE of FII) ; VNR: Volgnummer | ; SWC: Switch conversie ; "",0: online gelijkhouden ; 1: éénmalige conversie ; BES: Bestand ; "",0 of 1: Financieel\Divers (FI) ; 2: Analytisch divers (FIE) ; 3: Segment divers (FII) N GRIDID,RZR,OK,MSW,TYPE S $ZT="TRAP^cAN000" ; ; Onthouden last reference FI2DBH1 D S1^cAFA1 ; ; Opzetten Q49 FI2DBH2 S Q(49)=$$Q49^cAFVBA03(Q,"DB") ; ; Type bepalen FI2DBH3 S TYPE=+$G(BES) I (TYPE=0),($E(DNR)="D") S TYPE=1 ; Divers (maar wel in FI) ; ; Opzetten mtemp99 voor hoofding FI2DBH4 S GRIDID=$$FIH(BP,DNR,VNR,,TYPE) ; ; Opzetten mtemp99 voor detaillijnen FI2DBH5 D FIV(GRIDID,BP,DNR,VNR,$G(SWC),TYPE) ; ; Mtemp99 verwerken FI2DBH6 S OK=$$DB^cTN101(GRIDID,,""_D_1_D_$G(SWC)) ; ; Logging I OK D LOG^cTN9201($P(OK,D,3),"") ; ; Opkuis FI2DBH7 K ^mtemp99(GRIDID,"DB"),^mtemp99(GRIDID,"REG") ; ; Terugzetten last reference FI2DBH8 D S2^cAFA1 ; FI2DBHZ Q OK ; FNR(TYPE,KC,FNR,SWC) ; Bepaalt UI1 factuur (^DBH) ; Input: TYPE: K(lant) of L(everancier) ; FNR: Factuurnummer (extern) ; KC: Klant/Leverancier (UI1 DKL) ; SWC: Switch conversie ; "",0: online gelijkhouden ; 1: éénmalige conversie ; ; Ouput: gescheiden door "\" ; 1. Type dagboek ; 2. Intern nummer document N UI1FNR,M,OK S $ZT="TRAP^cAN000" ; ; Type dagboek bepalen FNR1 S OK=1 S (VS,UI1FNR)="" I $$ISV(FNR)!(TYPE="KV")!(TYPE="LV") S:$L(TYPE)=1 TYPE=TYPE_"V" S VS=1 G FNR2 S TYPE=$S(TYPE="K":"V",TYPE="L":"A") ; ; Online gelijk houden = ; - In eerste instantie: openstaande documenten ; - Bij heropenen doc.: alle documenten FNR2 I $G(SWC) G FNR3 S M="M2" I TYPE="A"!(TYPE="LV") S M="M3" ; Multiple 2 = Klanten, 3 = Leveranciers S UI1FNR=$$UI1OP^cAFA1("DB",M,"",$$Q^cAFA10,KC,"1",FNR) G:$L(UI1FNR) FNRZ G:VS FNRY S UI1FNR=$$UI1OP^cAFA1("DB","M4","",$$Q^cAFA10,TYPE,FNR) I $L(UI1FNR) G FNRZ ; Heropenen document S UI1FNR=$$UI1OP^cAFA1("DB","M4","",$$Q^cAFA10,"B"_TYPE,FNR) I $L(UI1FNR) G FNRZ ; Heropenen document begin BH G FNRY ; ; Conversie = alle documenten FNR3 I VS G FNRY ; Voorschotten in twee stappen (zie VST^cTN9301) S UI1FNR=$$UI1OP^cAFA1("DB","M4","",$$Q^cAFA10,TYPE,FNR) I $L(UI1FNR) G FNRZ S UI1FNR=$$UI1OP^cAFA1("DB","M4","",$$Q^cAFA10,"B"_TYPE,FNR) I $L(UI1FNR) G FNRZ ; Document begin BH ; ; Document NIET gevonden -> voorschot opzetten FNRY I '$L(UI1FNR) W:'VS !,"Doc. niet gevonden: ",FNR S UI1FNR=FNR,TYPE=$S(TYPE="V":"KV",TYPE="A":"LV",1:TYPE),OK=0 FNRZ Q TYPE_D_UI1FNR_D_OK ; JRN(TYPE,JRN) ; Bepaalt UI1 journaal ; Input: TYPE: F,D,AD of ID ; JRN: Journaal (afkorting of nummer) ; ; Output: UI1 journaal (JRN) N REF,UREF,IREF,I3,UI1,UI1JRN S $ZT="TRAP^cAN000" ; S UI1JRN="" I $G(TYPE)'="F" G JRN3 ; ; Financieel JRN1 S REF=$$REF^cAFA10(.Q,"JRN"),UREF=$P(REF,D),IREF=$P(REF,D,3) G:'$L(UREF) JRNZ G:'$L(IREF) JRNZ ; S I3="" JRN2 S I3=$O(@IREF@("M1",$$Q^cAFA10,JRN,I3)) I '$L(I3) G JRNZ S UI1=$P(^(I3),D) I $P(@UREF@(0),D,4)'=TYPE G JRNZ S UI1JRN=UI1 G JRNZ ; ; Divers JRN3 S UI1JRN=$$UI1OP^cAFA1("JRN","M9","",$$Q^cAFA10,$S(TYPE="AD":"E",TYPE="ID":"E",1:TYPE),JRN) ; JRNZ Q UI1JRN ; CUM(QQ) ; Cumuls heropbouwen N DMS,UI1,N,Q,c,UREF,K,REF,UREF,IREF,EDOC,IDOC,Q49,OMZ,B,i S $ZT="TRAP^cAN000" CUM1 I '$L(QQ) G CUMZ M Q=QQ I '$L($G(Q(49))) S Q(49)=$$Q49^cAFVBA03(Q,"REG") S Q49=$$Q^cAFA10() ; ; Cumuls verwijderen CUM2 W !,"(",$$HT^cAFD1($H,1),") Cumuls en omzetten verwijderen:" S K="" F DMS="CUM","CUM.AR","CUM.ARA","CUM.EC1","CUM.EC2","CUM.EC3","CUM.KL","CUM.LE","OMZ.KL","OMZ.LE" D Q:$L(K) . S UREF=$P($$REF^cAFA10(.Q,DMS),D) I '$L(UREF) Q . W !," |-> ",DMS,": " . S UI1=Q49_" ",c="" F S UI1=$O(@UREF) Q:$P(UI1," ")'=Q49 D Q:$L(K) .. D X^cAN220(DMS,"",UI1) I $L(K) W UI1,": NOK " .. S c=c+1 . W +c ; ; Cumuls terug opbouwen CUM3 I $L(K) G CUMZ S REF=$$REF^cAFA10(.Q,"REG",149) I '$L(REF) G CUM4 S UREF=$P(REF,D),IREF=$P(REF,D,3) G:'$L(UREF) CUM4 G:'$L(IREF) CUM4 W !,"(",$$HT^cAFD1($H,1),") Cumuls opbouwen: " S (I1,c)="" F S I1=$O(@IREF@(Q49,I1)) Q:'$L(I1) D . S UI1=$P(^(I1),D) . S N(1)=@UREF@(0) . D CUM^cTN1011(.N) . S c=c+1 W +c ; ; Klanten omzet terug opbouwen CUM4 W !,"(",$$HT^cAFD1($H,1),") Omzet opbouwen:" S REF=$$REF^cAFA10(.Q,"DB","M4") I '$L(REF) G CUMZ S UREF=$P(REF,D),IREF=$P(REF,D,3) G:'$L(UREF) CUMZ G:'$L(IREF) CUMZ CUM41 W !," |-> Klant: " S (EDOC,c)="" F S EDOC=$O(@IREF@(Q49,"V",EDOC)) Q:'$L(EDOC) D . S IDOC="" F S IDOC=$O(@IREF@(Q49,"V",EDOC,IDOC)) Q:'$L(IDOC) D .. S UI1=$P(^(IDOC),D) .. S B(1)=$G(@UREF@(0)),B(2)=$G(@UREF@(1)) .. S OMZ=$P(B(2),D) ; Netto goederen .. D CUM^cTN102("KL",$P(B(1),D,9),$P(B(1),D,5),"O",OMZ,"") ; Omzet per maand .. D OMZ^cTN102("KL",$P(B(1),D,9),$P(B(1),D,5),OMZ) ; Omzet per jaar .. S c=c+1 W +c CUM43 W !," |-> Leverancier: " S (EDOC,c)="" F S EDOC=$O(@IREF@(Q49,"A",EDOC)) Q:'$L(EDOC) D . S IDOC="" F S IDOC=$O(@IREF@(Q49,"A",EDOC,IDOC)) Q:'$L(IDOC) D .. S UI1=$P(^(IDOC),D) .. S B(1)=$G(@UREF@(0)),B(4)=$G(@UREF@(3)) .. S OMZ="" F i=1:1:4 S OMZ=OMZ+$P(B(4),D,i) ; Netto goederen/diensten/investeringen/andere .. S OMZ=OMZ+$P(B(4),D,11) ; Niet-aftrekbare BTW .. D CUM^cTN102("LE",$P(B(1),D,10),$P(B(1),D,5),"O",OMZ,"") ; Omzet per maand .. D OMZ^cTN102("LE",$P(B(1),D,10),$P(B(1),D,5),OMZ) ; Omzet per jaar .. S c=c+1 W +c ; CUMZ W !,!,"(",$$HT^cAFD1($H,1),")" Q ; VST(QQ) ; Registraties waarop voorschotten werden afgeboekt linken met voorschotdagboeken ; Input: QQ: Vennootschap (doorgeven als referentie) N @$$INITVAR^cAFVBA01("QQ") S $ZT="TRAP^cAN000" ; ; Variabelen opzetten VST1 M Q=QQ S REF=$$REF^cAFA10(.Q,"DB","M4") I '$L(REF) G VSTZ S UREF=$P(REF,D) I '$L(UREF) G VSTZ S IREF=$P(REF,D,3) I '$L(IREF) G VSTZ ; ; Dagboek: MULTIPLE M4 ; 1. Q-waarde ; 2. Type dagboek ; 3. Extern documentnummer ; 4. Intern documentnummer ; S RREF=$$REF^cAFA10(.Q,"REG","M1") I '$L(RREF) G VSTZ S RUREF=$P(RREF,D) I '$L(RUREF) G VSTZ S RIREF=$P(RREF,D,3) I '$L(RIREF) G VSTZ ; ; Registratie: MULTIPLE M1 ; 1. Q-waarde ; 2. Type registratie ; 3. Intern dagboeknummer ; 4. Intern registratienummer ; ; Voorschotdagboeken doorlopen + tijdelijke tabel opzetten VST2 K ^HULP(boot,$J+.01) S D2="#" W !,"Voorschotdagboeken: " S HULP="^HULP(boot,$J+.01,Q,$P(TYPE,D2,2),KC,EDOC,HLOG)",TYPES="KV#KV\LV#LV\BA#LV\BV#KV",Q=$$Q^cAFA10 VST21 S TYPE=$P(TYPES,D),TYPES=$P(TYPES,D,2,99),EDOC="",W=9 W $P(TYPE,D2)_" " I '$L(TYPE) G VST3 VST22 S EDOC=$O(@IREF@(Q,$P(TYPE,D2),EDOC)),IDOC="" I '$L(EDOC) G VST21 VST23 S IDOC=$O(@IREF@(Q,$P(TYPE,D2),EDOC,IDOC)) I '$L(IDOC) G VST22 S UI1=$P(IDOC,D),N=@UREF@(0) I $P(N,D,30)=2 G VST23 ; Verwijderd S KC=$P(N,D,9+($P(TYPE,D2,2)="LV")) ; Klant\Leverancier S HLOG=$P($P(N,D,28),",")_$TR($J($P($P(N,D,28),",",2),5)," ",0) I $E($P(TYPE,D2))="B" S HLOG=0 ; Documenten begin BH zowiezo als eerste opzetten VST24 I $D(@HULP) S HLOG=$P(HLOG,",")_","_$P(HLOG,",",2)+1 ; W !,"Voorschot 2x opgezet op zelfde tijdstip?!" X "STOP" ; Te bekijken... S @HULP=IDOC,W=W+1 I W=10 W "." S W=0 VST29 G VST23 ; ; Registraties met afboekingen doorlopen + voorschotten linken VST3 S RTYPES="F\D" W !,"Linken: " VST31 S RTYPE=$P(RTYPES,D),RTYPES=$P(RTYPES,D,2,99),DB="",W=9 I '$L(RTYPE) G VST4 VST32 S DB=$O(@RIREF@(Q,RTYPE,DB)),IREG="" I '$L(DB) G VST31 VST33 S IREG=$O(@RIREF@(Q,RTYPE,DB,IREG)) I '$L(IREG) G VST32 S UI1=$P(IREG,D),N=@RUREF@(0),VDBUI1="" I $P(N,D,30)=2 G VST33 ; Verwijderd I '$L($P(N,D,22)) G VST33 ; Geen document afgeboekt I $L($P(N,D,22),"#")'=2 G VST33 ; Geen tijdelijk voorschot S TYPE="#"_$P(N,D,21) ; Type afgeboekt document S KC=$P(N,D,13+($P(TYPE,D2,2)="LV")) ; Klant\Leverancier S EDOC=$P($P(N,D,22),"#") ; Extern documentnummer S HLOG=$P($P(N,D,28),",")_$TR($J($P($P(N,D,28),",",2),5)," ",0) S VLOG=$O(@HULP,-1) I $L(VLOG) S VDBUI1=$P(^(VLOG),D) ; --------------------------------------------------------------------- ; Geen opgezet voorschot gevonden -> nieuw voorschot openen ; Voor dit voorschot zal er geen registratie zijn waarbij B123 is ingevuld. I '$L(VLOG) D . S FNR=$P($P(N,D,22),"#",2) W !,"XXX "_FNR_" XXX" . S NGRIDID=$$FIH($P(FNR,"~"),$P(FNR,"~",2),$P(FNR,"~",3),2) . S OK=$$DB^cTN101(NGRIDID,,""_D_1_D_1) . K ^mtemp99(NGRIDID,"DB"),^mtemp99(NGRIDID,"REG") . I 'OK W !,OK R K Q ; Wat doen indien niet OK??? . S VDBUI1=$P(OK,D,3) W " "_$P($P(N,D,22),"#") . S $P(@HULP,D)=VDBUI1 ; --------------------------------------------------------------------- I '$L(VDBUI1) S ERR=$G(ERR)+1,ERR(ERR)=Q_D_TYPE_D_KC_D_EDOC_D_HLOG W "X" G VST33 S $P(@RUREF@(0),D,21,22)=$P(VDBUI1," ")_D_VDBUI1,W=W+1 I W=10 W "." S W=0 VST39 G VST33 ; ; Controle indexen VST4 W !,"Controle indexen: ",! D S1^cAN002(0,"REG",24) ; VST5 I $G(ERR)>0 W !,"Geen link gevonden voor volgende voorschotten: ",! ZW ERR ; VSTY K ^HULP(boot,$J+.01) VSTZ Q ; ; Default boekingsmaand = eerste maand van BH in EUR DEFBM(Q) ; Input: Q: Vennootschap ; Output: boekingsmaand ; N BM,BJ S $ZT="TRAP^cAN000" ; DEFBM1 S BM="" I '$L($G(Q)) G DEFBMZ ; ; Eerste boekingsmaand van boekjaar in EUR DEFBM2 S BJ=$P($G(@("^"_Q_"BA(39)")),D,6) I '$L(BJ) G DEFBM3 D IBJ^cT00A(Q,BJ,"KM1","KM2") S BM=$G(KM1(BJ)) G DEFBMZ ; Eerste boekingsmaand van de boekhouding DEFBM3 S BM=$P($G(@("^"_Q_"BA(2)")),D,$L($G(@("^"_Q_"BA(2)")),D)) I '$L(BM) G DEFBMZ S BM=BM+.01 I $P(BM,".",2)>12 S BM=BM+.88 ; DEFBMZ Q BM ; BS(VBJ,TYPE) ; Opzetten beginsaldi ; Input: VBJ: Van boekingsjaar ; TYPE: Type rekening ; AR.A: Grootboekrekening ; KL.A: Klant ; LE.A: Leverancier ; S $ZT="TRAP^cAN000" N @$$INIT^cTN009("VBJ,TYPE") ; ; ; Controle parameters BS1 F i="VBJ","TYPE" S @i=$G(@i) I '$L(VBJ)!'$L(TYPE) G BSZ S DMS="BEG."_$P(TYPE,".") W !,TYPE,": " ; ; Definities BS2 S OUREF=$P($$REF^cAFA10(.Q,$P(TYPE,".")),D) S NUREF=$P($$REF^cAFA10(.Q,TYPE),D) S BSUREF=$P($$REF^cAFA10(.Q,DMS),D) G:'$L(OUREF) CUMZ G:'$L(NUREF) BSZ G:'$L(BSUREF) BSZ ; ; Ophalen boekhoudkundige geg. BS25 D ^cT489 ; ; Rekeningen aflopen BS3 S UI1=0 BS31 S JR=VBJ-1,UI1=$O(@OUREF) I '$L(UI1) G BS4 S NREKUI1=$P(^(UI1,0),D,48) W $E(UI1) BS32 S JR=JR+1 I JR>BJ G BS31 S BS=$P($G(@OUREF@(JR)),D) I 'BS G BS32 ; ; Node opzetten BS33 K TAB S $P(TAB(1),D)=JR ; Boekjaar S $P(TAB(1),D,2)=NREKUI1 ; Rekening S $P(TAB(1),D,3)=+BS ; Beginsaldo S $P(TAB(1),D,49)=$$Q^cAFA10() ; Firma ; ; UI1 samenstellen BS35 S BSUI1=$P(TAB(1),D,49)_" "_$P(TAB(1),D)_" "_$P(TAB(1),D,2) ; ; Beginsaldo aanmaken/wijzigen BS36 D . N UI1 . S UI1=BSUI1 . ; Aanmaken . I '$D(@BSUREF) D P^cAN220(DMS,"",BSUI1,"TAB","") X:K="-" "STOP" Q . ; Wijzigen . K WTAB . F i=1:1:49 S WTAB(100+i)=$P(TAB(1),D,i) . D B^cAN220(DMS,"",BSUI1,"WTAB") I K="-" X "STOP" ; BS39 G BS32 ; BS4 ; ; BSZ Q ; ISV(FNR) Q ($G(FNR)'<"990000"&($G(FNR)'>"999999")) ; ZZ ; 29.08.07 - 10 u 22 * V8.09