cAT119XML ;Exporteren lijst BTW kwartaalopgave van de vrijgestelde intracommunautaire leveringen naar XML ;cAT116 ; G 1 ; T0 ;BTW-listing ; T1 ;VatIntra;RecipientId;SenderId;ControlRef;MandataireId;SenderDate;VersionTech;Test; T2 ;AgentRepr;DecNumber; T3 ;DeclarantList; T4 ;SequenceNum;DeclarantNum;ClientNbr;AmountSum; T5 ;CompanyInfo; T6 ;VATNum;Name;Street;CityAndZipCode;Country; T7 ;Period; T8 ;ClientList; T9 ;SequenceNum; T10 ;CompanyInfo;VATNum;Country; T11 ;Period;Amount;Code; T12 ;Het pad voor de IC-kwartaalopgave is niet correct ingevuld.; T13 ;Kan het uniek nummer voor de opgave niet bepalen.; T14 ;Lijst\"[] = test BTW kwartaalopgeve .[] = definitieve BTW kwartaalopgave"; T15 ;De I.C.-kwartaalopgave is leeg of het eindtotaal is gelijk aan 0; ; T0F ;Listing annuel de TVA ; T12F ;Le chemin d’exportation de la déclaration électronique est incorrect.; T13F ;Impossible de définir le numéro unique de la déclaration.; T14F ;Lijst\"[] = test BTW kwartaalopgeve .[] = definitieve BTW kwartaalopgave"; T15F ;Le relevé trimestriel I.C. est vide ou le total est 0; ; T0E ;VAT-report ; T12E ;The path for the electronic VAT declaration is not correct.; T13E ;Could not get unique number for the declaration.; T14E ;Lijst\"[] = test BTW kwartaalopgeve .[] = definitieve BTW kwartaalopgave"; T15E ;The I.C.-kwartaalopgave is empty or the final total is 0; ; 1 N XMLFILE,BTWNR,MAND,CTRLREF,SEQNR,NBRCLIENT,TOTCLIENT,I3,I4,NODE,TEST,XMLPATH ; S $ZT="TRAP^cAN000" ; ;------------------------------------------------------------------------------ ; Test listing ;------------------------------------------------------------------------------ S TEST=$G(@("^"_Q_"BA(""%T"",13,""K"",""TEST"")")) ; ophalen uit @("^"_Q_"BA(""%T"",13,""K"",""TEST"")") ; 2 ;------------------------------------------------------------------------------ ; Tijdelijke bestand aflopen ;------------------------------------------------------------------------------ S I3="" F S I3=$O(^TEMP(boot,$J,I3)) Q:I3="" D . S I4=0 F S I4=$O(^TEMP(boot,$J,I3,I4)) Q:I4="" D .. S NODE=^(I4) .. S NBRCLIENT=$G(NBRCLIENT)+1 .. S TOTCLIENT=$G(TOTCLIENT)+$P(NODE,D) ; Nakijk of er klanten gevonden zijn I $G(NBRCLIENT)="" S K=$P($T(@("T15"_QT)),U,2) D TXT^cAFA1(250) G YZ 3 ;------------------------------------------------------------------------------ ; XML instantie maken ;------------------------------------------------------------------------------ S XMLWRITER=##class(%XML.Writer).%New() S XMLWRITER.Charset="UTF-8" ; Output file 31 S XMLFILE=@("^"_Q_"BA(""%T"",13,""K"")") ; Parameter niet ingevuld I XMLFILE="" S K=$P($T(@("T12"_QT)),U,2) D TXT^cAFA1(250) G Y ; Nakijken of het pad bestaat - 26.06.07 S XMLPATH=$P(XMLFILE,D,1,$L(XMLFILE,D)-1) ; KD - 23.07.07 Test op pad mag niet aangezien de TST routine geen shares kan aftesten. ;I $$TST^cA710(XMLPATH)'=0 S K=$P($T(@("T12"_QT)),U,2) D TXT^cAFA1(250) G Y ; Bestandsnaam samenstellen S XMLFILE=XMLFILE_$P(BP1,".") S XMLFILE=XMLFILE_"Q"_KW_".xml" ; 33 S SC=XMLWRITER.OutputToFile(XMLFILE) ; Document starten S SC=XMLWRITER.StartDocument() D ENDLN D . ; Root element . S SC=XMLWRITER.RootElement($P($T(@("T1")),U,2)) . ; RecipientId . S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,3),"VAT-ADMIN") . ; SenderId . S BTWNR=$P($G(@("^"_Q_"BTW(0,0)")),D,7),BTWNR=$$BTW^cAFO1(BTWNR),BTWNR=$$DP^cAFA1(BTWNR) . S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,4),$E(BTWNR,3,999)) . ; ControlRef . S CTRLREF=$TR($J($$SENDREF($P(BP1,"."),KW),4)," ","0") . S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,5),$E(BTWNR,3,999)_CTRLREF) . ; MandataireId . S MAND=$P($G(@("^"_Q_"BTW(0,0)")),D,9) . S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,6),$E(MAND,1,14)) . ; SenderDate . S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,7),$ZDATE($H,3)) . ; VersionTech . S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,8),"1.2") . ; Test . I TEST S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,9),TEST) . ; Xml definities . S SC=XMLWRITER.WriteAttribute("xmlns","http://www.minfin.fgov.be/VatIntra") . S SC=XMLWRITER.WriteAttribute("xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance") . S SC=XMLWRITER.WriteAttribute("xsi:schemaLocation","http://www.minfin.fgov.be/VatIntra \\data-m.be\dfs\mappen\Documenten\Klanten\TERBEK~1\Boekhouding\AANGIF~1\VatIntra.xsd") . D ENDLN . ; . ; AGENTREPR . S SC=XMLWRITER.Element($P($T(@("T2")),U,2)) . D .. ; DecNumber .. S SC=XMLWRITER.WriteAttribute($P($T(@("T2")),U,3),"1") .. ; .. ; COMPANY INFO .. S SC=XMLWRITER.Element($P($T(@("T5")),U,2)) D ENDLN .. D ... ; VATNum ... S SC=XMLWRITER.Element($P($T(@("T6")),U,2)),SC=XMLWRITER.WriteChars($E(BTWNR,3,999)),SC=XMLWRITER.EndElement() D ENDLN ... ; Name ... S SC=XMLWRITER.Element($P($T(@("T6")),U,3)),SC=XMLWRITER.WriteChars($P($G(@("^"_Q_"BTW(0,0)")),D,2)),SC=XMLWRITER.EndElement() D ENDLN ... ; Street ... S SC=XMLWRITER.Element($P($T(@("T6")),U,4)),SC=XMLWRITER.WriteChars($P($G(@("^"_Q_"BTW(0,0)")),D,3)),SC=XMLWRITER.EndElement() D ENDLN ... ; CityAndZipCode ... S SC=XMLWRITER.Element($P($T(@("T6")),U,5)),SC=XMLWRITER.WriteChars($P($G(@("^"_Q_"BTW(0,0)")),D,4)),SC=XMLWRITER.EndElement() D ENDLN ... ; Country ... S SC=XMLWRITER.Element($P($T(@("T6")),U,6)),SC=XMLWRITER.WriteChars($E(BTWNR,1,2)),SC=XMLWRITER.EndElement() D ENDLN .. S SC=XMLWRITER.EndElement() D ENDLN . S SC=XMLWRITER.EndElement() D ENDLN . ; . ; DECLARANTLIST . S SC=XMLWRITER.Element($P($T(@("T3")),U,2)) . D .. ; SequenceNum .. S SEQNR="00001" .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,2),SEQNR) .. ; DeclarantNum .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,3),$E(BTWNR,3,999)_CTRLREF_SEQNR) .. ; ClientNbr .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,4),NBRCLIENT) .. ; AmountSum .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,5),$$CENT(TOTCLIENT)) .. D ENDLN .. ; .. ; COMPANY INFO .. S SC=XMLWRITER.Element($P($T(@("T5")),U,2)) D ENDLN .. D ... ; VATNum ... S SC=XMLWRITER.Element($P($T(@("T6")),U,2)),SC=XMLWRITER.WriteChars($E(BTWNR,3,999)),SC=XMLWRITER.EndElement() D ENDLN ... ; Name ... S SC=XMLWRITER.Element($P($T(@("T6")),U,3)),SC=XMLWRITER.WriteChars($P($G(@("^"_Q_"BTW(0,0)")),D,2)),SC=XMLWRITER.EndElement() D ENDLN ... ; Street ... S SC=XMLWRITER.Element($P($T(@("T6")),U,4)),SC=XMLWRITER.WriteChars($P($G(@("^"_Q_"BTW(0,0)")),D,3)),SC=XMLWRITER.EndElement() D ENDLN ... ; CityAndZipCode ... S SC=XMLWRITER.Element($P($T(@("T6")),U,5)),SC=XMLWRITER.WriteChars($P($G(@("^"_Q_"BTW(0,0)")),D,4)),SC=XMLWRITER.EndElement() D ENDLN ... ; Country ... S SC=XMLWRITER.Element($P($T(@("T6")),U,6)),SC=XMLWRITER.WriteChars($E(BTWNR,1,2)),SC=XMLWRITER.EndElement() D ENDLN .. S SC=XMLWRITER.EndElement() D ENDLN .. ; .. ; PERIOD .. S SC=XMLWRITER.Element($P($T(@("T7")),U,2)),SC=XMLWRITER.WriteChars(KW_$P(BP1,".")),SC=XMLWRITER.EndElement() D ENDLN .. ; .. ; Tijdelijk bestand doorlopen met klanten .. S I3="" F S I3=$O(^TEMP(boot,$J,I3)) Q:I3="" D ... S I4=0 F S I4=$O(^TEMP(boot,$J,I3,I4)) Q:I4="" D .... S NODE=^(I4) .... ; .... ; CLIENTLIST .... S SC=XMLWRITER.Element($P($T(@("T8")),U,2)) D ENDLN .... D ..... ; COMPANYINFO ..... S SC=XMLWRITER.Element($P($T(@("T10")),U,2)) D ENDLN ..... D ...... ; VATNum ...... S SC=XMLWRITER.Element($P($T(@("T10")),U,3)),SC=XMLWRITER.WriteChars($E(I3,3,999)),SC=XMLWRITER.EndElement() D ENDLN ...... ; Country ...... S SC=XMLWRITER.Element($P($T(@("T10")),U,4)),SC=XMLWRITER.WriteChars($E(I3,1,2)),SC=XMLWRITER.EndElement() D ENDLN ..... S SC=XMLWRITER.EndElement() D ENDLN ..... ; ..... ; Amount ..... S SC=XMLWRITER.Element($P($T(@("T11")),U,3)),SC=XMLWRITER.WriteChars($$CENT($P(NODE,D))),SC=XMLWRITER.EndElement() D ENDLN .... S SC=XMLWRITER.EndElement() D ENDLN . S SC=XMLWRITER.EndElement() D ENDLN . S SC=XMLWRITER.EndRootElement() D ENDLN ; S SC=XMLWRITER.EndDocument() ; Y S SC=XMLWRITER.%Close() YZ Q ; ;--------------------------------------------------------------------------------------------------------------------------- ; ENDLN S SC=XMLWRITER.WriteChars($C(13,10)) ; CENT(EURO) ; Omzetten euro's naar eurocenten N OUT,DEL S DEL="." I $L(EURO,",")>1 S DEL="," S OUT=$P(EURO,DEL)*100+$P(EURO,DEL,2) CENTZ Q OUT ; R0 S $P(R,D,12)=$T(+0) D ^cAN1000 Q ; v12 23.01.95 ; SENDREF(JAAR,KW) N OUT,I2,SJAAR S OUT="" S I2="Q"_KW ; Nakijken of er al een nr is voor dit kwartaal of maand S OUT=$G(@("^"_Q_"BA(""%T"",13,""K"","_JAAR_","""_I2_""")")) I $L(OUT) G SENDREFZ ; Nog geen nummer beschikbaar I '$$LOCK^cANLOCK("^"_Q_"BA(""%T"",13,""K"")","","",1) G SENDREFZ S @("^"_Q_"BA(""%T"",13,""K"",1)")=$G(@("^"_Q_"BA(""%T"",13,""K"",1)"))+1,@("^"_Q_"BA(""%T"",13,""K"","_JAAR_","""_I2_""")")=@("^"_Q_"BA(""%T"",13,""K"",1)") S OUT=@("^"_Q_"BA(""%T"",13,""K"","_JAAR_","""_I2_""")") L -@("^"_Q_"BA(""%T"",13,""K"")") SENDREFZ Q OUT ; ZZ ; 29.08.07 - 10 u 22 * V8.09