cTN9101 ; Aankoop : Conversie oude structuur dagboek naar nieuwe structuur ; cTN9101; [ 16/11/09 11:35:42 ] ; T1 ;Document; ; T1F ;Document; ; T1E ;Document; ; YZ Q ; ; Eénmalige conversie\setup voor aankoop CONV(Q,BM) ; Input: Q: Vennootschap (als ref. doorgeven : .Q) ; BM: Maand vanaf de aankoopdocumenten worden geconverteerd ; S $ZT="TRAP^cAN000" ; W !,"*** Basisrekeningen opzetten ***" D ABTW^cTN901(.Q) ; W !,!,"*** Vennootschap opzetten (DATA(,""Q"")) ***" D DATAQ^cTN901(.Q) ; W !,!,"*** Boekjaren opzetten ***" D BJ^cTN901(.Q,,$$BJ^cAFE1(Q,BM)) ; W !,!,"*** Journalen opzetten ***" D JRN^cTN999(.Q,"A") ; W !,!,"*** Documentnummers opzetten ***" D FNR^cTN901(.Q,"A","") ; W !,!,"*** Aankoopdagboek converteren ***" D DBAA(.Q,BM) ; ACONVZ Q ; DBAA(Q,VBM,TBM) ; Eénmalige conversie van het aankoopdagboek ; 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 DBAA1 I '$L($G(VBM)) S VBM=$$DEFBM^cTN9301(Q) I '$L(VBM) G DBAAZ ; ; Documenten begin BH opzetten DBAA11 S OK=$$CONV^cTN9102(Q,VBM) I 'OK W !,$P(OK,D,2) G DBAAZ ; ; Doorlopen aankoopdagboek DBAA2 D ^cT489 W !,!,"------- "_Q_" -------",! S I1=VBM-.01,I2="",S="#",CERR=0 I '$L($G(TBM)) S TBM=J3 DBAA3 S I1=$E($J(I1+.01,0,2)_0,1,7) S:I1#1>.12 I1=I1+.88 I I1>TBM G DBAAY W I1_" " DBAA4 S I2=$O(@("^"_Q_"AA(I1,I2)")) G DBAA3:I2="" G:(I2#1) DBAA4 S OK=$$AA2DBH^cTN9101(Q,I1,I2,1) S:'OK ERR(I1,I2)=$P(OK,D,2) S:'OK CERR=CERR+1 G DBAA4 ; DBAAY W !,"-------------------" I CERR W !,"OPGELET: ",CERR," fout(en):",! ZW ERR W "-------------------" DBAAZ Q ; ; AAH(BP,FNR) ; Opzetten mtemp99 voor hoofding ; Input: BP: Boekingsmaand ; FNR: Factuurnummer ; ; Output: gescheiden door "\" ; 1. GridId ; 2. Switch omrekenen munt ; 3. Afwijkende pariteit N @$$INITVAR^cAFVBA01("BP,FNR") S $ZT="TRAP^cAN000" ; ; Opzetten algemene variabelen AAH0 S D="\",D2="#" ; ; Ophalen gegevens aankoopdagboek AAH1 S AA=@("^"_Q_"AA(BP,FNR)") S S1=1 S:$P(AA,D)="C" S1=-1 ; ; Ophalen openstaande factuur AAH2 S OFLE=$$OFLE($P(AA,D,4),FNR) ; ; Gridid bepalen AAH3 S GRIDID=$$GRIDID^cAFVBF01() K ^mtemp99(GRIDID) S (NODE0,NODE1,NODE2,NODE3,NODE4)="" ; ; Munt bepalen (ivm munt vóór EUR) AAH31 S BJ=$$BJ^cAFE1(Q,BP),HBJ=$$BJ^cAFE1(Q,DJ_"."_DM) S MNT=$P($$MNTC^cAFE1(Q,BJ),D),HMNT=$P($$MNTC^cAFE1(Q,HBJ),D) S MSW=0 I MNT'=HMNT S MSW=1,PARE=$$PARE^cTN001(MNT) ; ; Node 0 AAH4 S $P(NODE0,D)="A" ; 1. Registratietype S JRN=$P(AA,D,21) S:'$L(JRN) JRN=0 S JRN=$$UI1OP^cAFA1("JRN","M9","",$$Q^cAFA10,"A",JRN) S $P(NODE0,D,2)=JRN ; 2. Journaalnummer S $P(NODE0,D,3)=FNR ; 3. Documentnummer S $P(NODE0,D,5)=BP ; 5. Boekingsmaand S $P(NODE0,D,6)=$P(AA,D,23) ; 6. Boekingsperiode - Leveringsmaand S $P(NODE0,D,7)=$P(AA,D,2) ; 7. Factuurdatum S $P(NODE0,D,8)=$P(AA,D,3) ; 8. Vervaldatum S $P(NODE0,D,9)="" ; 9. Klant S $P(NODE0,D,10)=$P(OFLE,D) ; 10. Leverancier S $P(NODE0,D,11)="" ; 11. Financiële rekening S $P(NODE0,D,12)=$P(AA,D,19) ; 12. Referte (omschrijving vanuit AA) S $P(NODE0,D,13)="" ; 13. Omschrijving (blanco) S $P(NODE0,D,14)=$S(MSW:MNT,1:$P(AA,D,24)) ; 14. Muntcode document I '$L($P(AA,D,26)) S $P(AA,D,26)=1 S (PAR,PARJ)=$S(MSW:PARE,+$P(AA,D,26)=0:"",1:(1/$P(AA,D,26))) S:$L(PARJ) PARJ=+$J(PARJ,0,6) S $P(NODE0,D,15)=$S(HMNT="EUR":PARJ,$P(NODE0,D,14)="EUR":"1",1:"") ; 15. 1 EUR = (kan via de conversie enkel indien BH in EUR) S $P(NODE0,D,16+(MSW*3))=$P($P(AA,D,6),D2)*S1 ; 16. Totaal factuur in munt vennootschap S $P(NODE0,D,17+(MSW*3))=$P(AA,D,10)*S1*-1 ; 17. Bedrag korting contant in munt vennootschap ;I $P(OFLE,D,3) D ;. S $P(NODE0,D,18+(MSW*3))=$P(OFLE,D,4)*S1 ; 18. Bedrag openstaand in munt vennootschap ;. S $P(NODE0,D,22)=1 ; 22. Openstaand S $P(NODE0,D,18+(MSW*3))=$P(NODE0,D,16+(MSW*3)) ; 18. Bedrag openstaand in munt vennootschap S $P(NODE0,D,22)=1 ; 22. Openstaand S $P(NODE0,D,22)=+$P(NODE0,D,22) ; 22. Openstaand (0 of 1) S $P(NODE0,D,23)=$P(AA,D) ; 23. Factuurcode (F/C) S $P(NODE0,D,24)=$P(AA,D,18) ; 24. Documentnr leverancier (referte vanuit AA) ; ;S $P(NODE0,D,24)=0 ; 24. Aard (normaal doc. / doc. begin boekjaar) S $P(NODE0,D,25)=$P(AA,D,36) ; 25. BTW-nr facturerende vennootschap S $P(NODE0,D,26)=+$P(AA,D,34) ; 26. Van toepassing voor Intrastat S $P(NODE0,D,27)=PAR ; 27. Pariteit (1 mnt BH = xxx mnt DOC) S $P(NODE0,D,28)=$P(AA,D,32) ; 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(AA,D,33) ; 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 ; ; Node 3 of 4 (bedragen) AAH5 S $P(NODE3,D)=$P($P(AA,D,7),D2)*S1 ; 1. Netto goederen S $P(NODE3,D,2)=$P($P(AA,D,14),D2)*S1 ; 2. Netto diensten S $P(NODE3,D,3)=$P($P(AA,D,13),D2)*S1 ; 3. Netto invest. S $P(NODE3,D,4)=$P($P(AA,D,15),D2)*S1 ; 4. Netto andere S $P(NODE3,D,5)=$P($P(AA,D,6),D2,2)*S1 ; 5. Tot. maatstaf S $P(NODE3,D,6)=$P($P(AA,D,7),D2,2)*S1 ; 6. Tot. maatstaf goederen S $P(NODE3,D,7)=$P($P(AA,D,14),D2,2)*S1 ; 7. Tot. maatstaf diensten S $P(NODE3,D,8)=$P($P(AA,D,13),D2,2)*S1 ; 8. Tot. maatstaf investeringen S $P(NODE3,D,9)=$P($P(AA,D,15),D2,2)*S1 ; 9. Tot. maatstaf andere S $P(NODE3,D,10)=$P(AA,D,8)*S1 ; 10. Aftrekbare BTW S $P(NODE3,D,11)=$P(AA,D,9)*S1 ; 11. Niet-aftrekbare BTW ; ; BTW-type + bedrag S OH=$P(AA,D,11) S IC=$P(AA,D,12) S MC=$P(AA,D,17) S VL=$P(AA,D,16) S BTWBEDR=$S(OH:OH,IC:IC,MC:MC,VL:VL,1:"") S BTWSOORT=$S(OH:1000,IC:1001,MC:1002,VL:1003,1:"") S BTWTYPE=$$UI1OP^cAFA1("CODE.9032","104","",BTWSOORT) S $P(NODE3,D,13)=(BTWBEDR*S1*-1) ; 13. Bedrag BTW-type ; ; Indien switch munt: bedragen doorgeven als munt document I MSW S NODE4=NODE3,NODE3="" ; ; Node 3 (overige velden) AAH6 S $P(NODE3,D,12)=BTWTYPE ; 12. BTW-type ; ... S $P(NODE3,D,31)=$P(AA,D,27) ; 31. Datum ontvangst S ($P(NODE3,D,32),MED)=$P(AA,D,29) ; 32. Mededeling S $P(NODE3,D,33)=+$P(OFLE,D,5) ; 33. Opnemen in betalingsvoorstel S $P(NODE3,D,34)=$S('$L(MED):0,1:+$$OGM^cAFVBI01(MED)) ; 34. Gestructureerde mededeling (J/N) S $P(NODE3,D,35)=$P(AA,D,30) ; 35. Link gecontroleerde levering S $P(NODE3,D,36)=$P(AA,D,41) ; 36. IC-investering 0=Goederen,1=Diensten,""=N.V.T. ; ; Specifieke execute "DB 100" AAN65 D EXEC^cTN005(Q,"DB 100") ; ; ^mtemp99 opzetten AAH7 S ^mtemp99(GRIDID,"DB",0,0)=NODE0,^(1)=NODE1,^(2)=NODE2,^(3)=NODE3,^(4)=NODE4 ; ; (Eventueel) afwijkende pariteit bepalen AAH8 S APAR="" I '$G(MSW) S APAR=$$APAR(+$P(AA,D,6),+$P(AA,D,25),$P(AA,D,24),PAR) ; AAHZ Q GRIDID_D_$G(MSW)_D_APAR ; AAV(GRIDID,MSW) ; Opzetten mtemp99 voor detaillijnen ; Input: GRIDID: Gridid van mtemp99 met hoofdinggegevens ; MSW: Munt switch ; 0: Bedragen als munt BH doorgeven ; 1: Bedragen als munt document doorgeven N @$$INITVAR^cAFVBA01("GRIDID,MSW") S $ZT="TRAP^cAN000" ; ; Opzetten algemene variabelen AAV0 S D="\",D2="#" S VNR=1000,MSW=+$G(MSW) S DB=$O(^mtemp99(GRIDID,"DB","")) S DB0=^(DB,0),DB1=^(1) S BP=$P(DB0,D,5),FNR=$P(DB0,D,3) ; Boekingsmaand en factuurnummer S S1=1 I $P(DB0,D,23)="C" S S1=-1 ; ; Afschrijving uit dagboek (oude structuur ophalen) AAV1 S AFS=$P($G(@("^"_Q_"AA(BP,FNR)")),D,35) ; ; ophalen gegevens kostenrekeningen voor ^DBH(Q,"REG",UI1, S I3=FNR AAV2 S I3=$O(@("^"_Q_"AA(BP,I3)")) I $P(I3,".")'=FNR G AAVY S N=^(I3),T=0 AAV3 S T=T+1 S VEN=$P(N,D,T) I '$L(VEN) G AAV2 K N0 S BVN=$P(VEN,D2,4)*S1 I 'BVN G AAV3 ; Geen bedrag -> geen boeking S $P(N0,D,7)="G" ; Soort grootboekrekening S $P(N0,D,8)=$$SIG^cAFA1("AR",$P(VEN,D2),148) ; Grootboekrekening S $P(N0,D,9)=$$SIG^cTN9101("ARA",$P(VEN,D2,9),148) ; Analytische rekening S $P(N0,D,10)=$P(VEN,D2,2) ; EC1-rek.: Project S $P(N0,D,11)=$P(VEN,D2,14) ; EC2-rek. S $P(N0,D,12)=$P(VEN,D2,15) ; EC3-rek. S $P(N0,D,14)="" ; Leverancier S $P(N0,D,15+(BVN<0)+(MSW*2))=$FN(BVN,"-") ; Bedrag in munt BH S $P(N0,D,19)=$P(VEN,D2,8) ; Omschrijving S $P(N0,D,25)=AFS ; Afschrijving S $P(N0,D,28)=$P(DB0,D,28) ; Datum laatste wijziging S $P(N0,D,29)=$P(DB0,D,29) ; Initialen laatste wijziging S $P(N0,D,30)=0 S $P(N0,D,32)=1 ; Manuele registraties S $P(N0,D,35)=$P(I3,".",2)_"#"_T ; Link met oude BH ; ; IAS --------------------------------- I '$$IAS^cTN001(Q) G AAV4 S $P(N0,D,24)=$$SIG^cTN9101("ARA",$P(VEN,D2,10),148) ; IAS-code S $P(N0,D,51)=$P(VEN,D2,11) ; Interne CGU S $P(N0,D,52)=$P(VEN,D2,12) ; Externe CGU S $P(N0,D,53)=$P(VEN,D2,13) ; Segment ; ------------------------------------- ; ; Specifieke execute "REG 100" AAV4 D EXEC^cTN005(Q,"REG 100") ; AAV5 S ^mtemp99(GRIDID,"REG",VNR,0)=N0,VNR=VNR+1 G AAV3 ; AAVY ; AAVZ Q ; AA2DBH(Q,BP,FNR,SWC) ; Conversie aankoopdagboek naar nieuwe structuur (^DBH) ; Input: Q: Gewoon doorgeven, niet als referentie! ; BP: Boekingsmaand ; FNR: Factuurnummer ; SWC: Switch conversie ; "",0: online gelijkhouden ; 1: éénmalige conversie N GRIDID,RZR,OK,MSW,APAR S $ZT="TRAP^cAN000" ; ; Onthouden last reference AA2DBH1 D S1^cAFA1 ; ; Opzetten Q49 AA2DBH2 S Q(49)=$$Q49^cAFVBA03(Q,"DB") ; ; Opzetten mtemp99 voor hoofding AA2DBH3 S GRIDID=$$AAH(BP,FNR) S APAR=$P(GRIDID,D,3),MSW=$P(GRIDID,D,2),GRIDID=$P(GRIDID,D) ; ; Opzetten mtemp99 voor detaillijnen AA2DBH4 D AAV(GRIDID,MSW) ; ; Mtemp99 verwerken AA2DBH5 S OK=$$DB^cTN101(GRIDID,"",('MSW)_"#"_APAR_D_1_D_$G(SWC)_D_1) ; I OK,$G(SWC) D LOG^cTN9201($P(OK,D,3),"") ; ; Opkuis AA2DBH6 K ^mtemp99(GRIDID,"DB"),^mtemp99(GRIDID,"REG") ; ; Terugzetten last reference AA2DBH7 D S2^cAFA1 ; AA2DBHZ Q OK ; OFLE(KC,FNR) ; Ophalen van gegevens uit ^Q_LE ; Input: KC: Leverancier (UI1 van Q_LE) ; FNR: Factuurnummer ; Output: Leveranciersgegevens + openstaande factuur gegevens N RET S $ZT="TRAP^cAN000" ; ; Leverancier (^DLE) ophalen OFLE1 I '$L(KC) S RET="" G OFLEZ S $P(RET,D)=$$SG^cAFA1("LE",KC,148) I '$L(RET) G OFLEZ ; 1. Leverancier : intern nummer in ^DLE S $P(RET,D,2)=$P(^(0),D,12) ; 2. Betalingstype ; ; Openstaande factuur? OFLE2 S RETOPFAC=$G(^(FNR)) I '$L(RETOPFAC) S $P(RET,D,3)="0",$P(RET,D,5)=1 G OFLEZ ; 3. Openstaand: neen S $P(RET,D,3)=1 ; 3. Openstaand: ja S $P(RET,D,4)=$P(RETOPFAC,D,10) ; 4. Openstaand bedrag in munt vennootschap S $P(RET,D,5)='$P(RETOPFAC,D,8) ; 5. Opnemen in bet. voorstel S $P(RET,D,6)=$P(RETOPFAC,D,6) ; 6. Korting contant *** Vreemde Munt S $P(RET,D,7)=$P(RETOPFAC,D,5) ; 7. Bedrag openstaand *** Vreemde Munt ; OFLEZ Q RET ; APAR(MBH,MDOC,MO,PAR) ; Bepaalt of er met een afwijkende pariteit moet gerekend worden ; Input: MBH: Totaal in munt boekhouding ; MDOC: Totaal in munt document ; MO: Munt document (output) ; PAR: Pariteit munt BH -> munt DOC ; ; Output: Afwijkende pariteit ; Indien "": doorgegeven pariteit is OK ; N APAR,AD S $ZT="TRAP^cAN000" ; ; Controle input APAR1 S APAR="" I +MBH=0 G APARZ ; ; Bepalen aantal decimalen APAR2 I '$L($G(MO)) S AD=2 G APAR3 S AD=$$SIG^cAFA1("CODE.9009",MO,105) I '$L(AD) S AD=2 ; ; Doorgegeven pariteit is OK APAR3 I +$J(MBH*PAR,"",AD)=+MDOC G APARZ ; ; Afwijkende pariteit bepalen APAR4 S APAR=+MDOC/MBH I +$J(MBH*APAR,"",AD)'=+MDOC S APAR="" ; Check op afwijkende pariteit ; APARZ Q APAR ; SIG(DMS,UI1,BI) ; $p uit signalitiek via UI1 N UQC,USC,R S $ZT="TRAP^cAN000" S R="" D DMS^cAN000("UQC","USC",DMS,1) I '$L(UQC)!'$L(USC) G SIGZ S R=$$SIG^cAFA1(DMS,UI1,BI) SIGZ Q R ; ZZ ; 26.02.09 - 10 u 24 * V9.05