cAT1192XML ;Exporteren lijst BTW kwartaalopgave van de vrijgestelde intracommunautaire leveringen naar XML ;cAT116; [ 26/01/10 10:54:58 ] ; T0 ;IC-opgave ; T1 ;VatIntra;RecipientId;SenderId;ControlRef;MandataireId;SenderDate;VersionTech;Test; T2 ;AgentRepr;DecNumber; T3 ;IntraListing; T4 ;SequenceNumber;DeclarantReference;ClientsNbr;AmountSum; T5 ;Declarant; T6 ;VATNumber;Name;Street;PostCode;CountryCode;City;EmailAddress; T7 ;Period;Month;Quarter;Year; T8 ;IntraClient; T9 ;SequenceNum; T10 ;CompanyInfo;CompanyVATNumber;Country;issuedBy; T11 ;Period;Amount;Code; T12 ;Het pad voor de IC-opgave is niet correct ingevuld.; T13 ;Kan het uniek nummer voor de opgave niet bepalen.; T14 ;Lijst\"[] = test BTW kwartaalopgeve .[] = definitieve BTW kwartaalopgave"; T15 ;De IC-opgave is leeg of het eindtotaal is gelijk aan 0; T16 ;Postcode niet gevonden, gelieve in te vullen bij parameters boekhouding.; T17 ;IntraConsignment;IntraListingsNbr; T18 ;http://www.minfin.fgov.be/InputCommon; T19 ;E-mail ondertekenaar werd niet ingevuld.; T20 ;Representative;RepresentativeID;issuedBy;identificationType;Phone; T21 ;Telefoon ondertekenaar werd niet ingevuld.; ; T0F ;Relevé IC ; 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; T16F ;Code postal pas trouvé, s.v.p. le remplir dans param. comptables.; T19F ;E-mail signataire n'est pas rempli.; T21F ;Telephone signataire n'est pas rempli.; ; T0E ;IC statement ; 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; T16E ;Could not find the postal code. Please fill in at accounting param.; T19E ;E-mail Signer was not filled in.; T21E ;Telephone Signer was not filled in.; ; 1 N XMLFILE,BTWNR,MAND,CTRLREF,SEQNR,NBRCLIENT,TOTCLIENT,I3,I4,NODE,TEST,XMLPATH,B,BE,POSTCODE,TELEFOON,MAIL ; S $ZT="TRAP^cAN000" 2 ;------------------------------------------------------------------------------ ; Tijdelijke bestand aflopen ;------------------------------------------------------------------------------ S I3="",NBRCLIENT=0,TOTCLIENT=0 21 S I3=$O(^TEMP(boot,$J,I3)) G 23:I3="" S BE=^(I3,0),KC=$O(^(0)),BTW=$E(I3,3,999) ; I BTW?1."0" S BE=$P(^(KC),D) I BTW?1."0" G 21 ; KU : BTW-nrs "NB" mogen niet mee. 210 S NBRCLIENT=NBRCLIENT+1 S TOTCLIENT=TOTCLIENT+BE ; KU : 12.11.09 : opsplitsing goederen en diensten : kan dus een extra lijn zijn I $L($P(BE,D,3))!$L($P(BE,D,4)) D . I +$P(BE,D,3)=+BE Q . I +$P(BE,D,4)=+BE Q . S NBRCLIENT=NBRCLIENT+1 ; I BTW?1."0" S KC=$O(^TEMP(boot,$J,I3,KC)) I KC S BE=$P(^(KC),D) G 210 G 21 ; Nakijk of er klanten gevonden zijn 23 I 'NBRCLIENT S K=$P($T(@("T15"_QT)),U,2) D TXT^cAFA1(250) G YZ ; ;------------------------------------------------------------------------------ ; Test listing ;------------------------------------------------------------------------------ 230 ; S TEST=$G(@("^"_Q_"BA(""%T"",13,""K"",""TEST"")")) ; ophalen uit @("^"_Q_"BA(""%T"",13,""K"",""TEST"")") S TEST=$G(SWTEST) ; 24 S SENDREF=$$SENDREF($P(BP1,"."),$S('SWMND:KW,1:""),$S(SWMND:$P(BP1,".",2),1:"")) I SENDREF="" S K=$P($T(@("T13"_QT)),U,2) D TXT^cAFA1(250) G YZ ; KU : 08.01.08 ; niet nodig aangezien Woonpl S POSTCODE=$P($G(@("^"_Q_"BA(""%T"",13,""E"",1)")),D,2) I POSTCODE'?4N S K=$P($T(@("T16"_QT)),U,2),TEMPOK=0 D TXT^cAFA1(250) G YZ ; 25 S B(1)=$G(@("^"_Q_"BTW(0,0)")) ; ; Nakijken of telefoon is ingevuld S TELEFOON=$P($G(@("^"_Q_"BA(""%T"",13,""K"",1)")),D,2) I TELEFOON="" S K=$P($T(@("T21"_QT)),U,2),TEMPOK=0 D:'$G(SWVB) TXT^cAFA1(250) S:$G(SWVB) OK="0\"_K G YZ ; Nakijken of e-mail adres is ingevuld S MAIL=$P($G(@("^"_Q_"BA(""%T"",13,""K"",1)")),D,3) I MAIL="" S K=$P($T(@("T19"_QT)),U,2),TEMPOK=0 D:'$G(SWVB) TXT^cAFA1(250) S:$G(SWVB) OK="0\"_K G YZ ; ; opzoeken adresgegevens S IDINDEX=4 27 S TEMP=$P(B(1),D,IDINDEX) I '$L(TEMP),IDINDEX=4 S IDINDEX=5 G 27 S TEMP=$P(TEMP," ") I TEMP'?4N,IDINDEX=4 S IDINDEX=5 G 27 ; 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) 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,".") I '$G(SWTEST),'SWMND S XMLFILE=XMLFILE_"Q"_KW_".xml" I $G(SWTEST),'SWMND S XMLFILE=XMLFILE_"Q"_KW_"TEST.xml" I '$G(SWTEST),SWMND S XMLFILE=XMLFILE_"M"_$P(BP1,".",2)_".xml" I $G(SWTEST),SWMND S XMLFILE=XMLFILE_"M"_$P(BP1,".",2)_"TEST.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)) . S SC=XMLWRITER.RootElement($P($T(@("T17")),U,2)) . S SC=XMLWRITER.WriteAttribute($P($T(@("T17")),U,3),"1") . S SC=XMLWRITER.WriteAttribute("xmlns","http://www.minfin.fgov.be/IntraConsignment") . ; SenderId . S BTWNR=$P($G(@("^"_Q_"BTW(0,0)")),D,7),BTWNR=$$BTW^cAFO1(BTWNR),BTWNR=$$DP^cAFA1(BTWNR) . ; ControlRef . S CTRLREF=$TR($J(SENDREF,4)," ","0") . ; MandataireId . S MAND=$P($G(@("^"_Q_"BTW(0,0)")),D,9) . ; Test . ; I TEST S SC=XMLWRITER.WriteAttribute($P($T(@("T1")),U,9),TEST) . D ENDLN . ; . ; Representative . S SC=XMLWRITER.Element($P($T(@("T20")),U,2)) D ENDLN . D .. ; VATNum .. S SC=XMLWRITER.Element($P($T(@("T20")),U,3)),SC=XMLWRITER.WriteAttribute($P($T(@("T20")),U,4),"BE"),SC=XMLWRITER.WriteAttribute($P($T(@("T20")),U,5),"NVAT"),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),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.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($E($P(B(1),D,2),1,32)),SC=XMLWRITER.EndElement() D ENDLN .. ; Street .. S SC=XMLWRITER.Element($P($T(@("T6")),U,4)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($E($P(B(1),D,3),1,24)),SC=XMLWRITER.EndElement() D ENDLN .. ; Postcode .. S SC=XMLWRITER.Element($P($T(@("T6")),U,5)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars(POSTCODE),SC=XMLWRITER.EndElement() D ENDLN .. ; City .. S SC=XMLWRITER.Element($P($T(@("T6")),U,7)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($P($P(B(1),D,IDINDEX)," ",2,99)),SC=XMLWRITER.EndElement() D ENDLN .. ; Country .. S SC=XMLWRITER.Element($P($T(@("T6")),U,6)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($E(BTWNR,1,2)),SC=XMLWRITER.EndElement() D ENDLN .. ; E-mail .. S SC=XMLWRITER.Element($P($T(@("T6")),U,8)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars(MAIL),SC=XMLWRITER.EndElement() D ENDLN .. ; Phone .. S SC=XMLWRITER.Element($P($T(@("T20")),U,6)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($$DP^cAFA1(TELEFOON)),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="1" .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,2),SEQNR) .. ; ClientNbr .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,4),NBRCLIENT) .. ; DeclarantNum .. ; S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,3),$E(BTWNR,3,999)_CTRLREF_SEQNR) .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,3),$E(BTWNR,3,999)_CTRLREF) .. ; AmountSum .. S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,5),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.WriteAttribute("xmlns",$P($T(@("T18")),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.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($E($P(B(1),D,2),1,32)),SC=XMLWRITER.EndElement() D ENDLN ... ; Street ... S SC=XMLWRITER.Element($P($T(@("T6")),U,4)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($E($P(B(1),D,3),1,24)),SC=XMLWRITER.EndElement() D ENDLN ... ; CityAndZipCode ... S SC=XMLWRITER.Element($P($T(@("T6")),U,5)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars(POSTCODE),SC=XMLWRITER.EndElement() D ENDLN ... ; City ... S SC=XMLWRITER.Element($P($T(@("T6")),U,7)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($P($P(B(1),D,IDINDEX)," ",2,99)),SC=XMLWRITER.EndElement() D ENDLN ... ; Country ... S SC=XMLWRITER.Element($P($T(@("T6")),U,6)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($E(BTWNR,1,2)),SC=XMLWRITER.EndElement() D ENDLN ... ; E-mail ... S SC=XMLWRITER.Element($P($T(@("T6")),U,8)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars(MAIL),SC=XMLWRITER.EndElement() D ENDLN ... ; Phone ... S SC=XMLWRITER.Element($P($T(@("T20")),U,6)),SC=XMLWRITER.WriteAttribute("xmlns",$P($T(@("T18")),U,2)),SC=XMLWRITER.WriteChars($$DP^cAFA1(TELEFOON)),SC=XMLWRITER.EndElement() D ENDLN .. S SC=XMLWRITER.EndElement() D ENDLN .. ; .. ; S SC=XMLWRITER.Element($P($T(@("T7")),U,2)),SC=XMLWRITER.WriteChars($S('SWMND:$S($$DC^cAFD1(DT)'<20100205:"3",1:"")_KW_$P(BP1,"."),1:$P(BP1,".",2)_$P(BP1,"."))),SC=XMLWRITER.EndElement() D ENDLN .. ; PERIOD .. S SC=XMLWRITER.Element($P($T(@("T7")),U,2)) D ENDLN .. I SWMND D ... S SC=XMLWRITER.Element($P($T(@("T7")),U,3)) ... S SC=XMLWRITER.WriteChars($P(BP1,".",2)),SC=XMLWRITER.EndElement() D ENDLN ... S SC=XMLWRITER.Element($P($T(@("T7")),U,5)) ... S SC=XMLWRITER.WriteChars($P(BP1,".")),SC=XMLWRITER.EndElement() D ENDLN ... ; S SC=XMLWRITER.WriteChars($S($L(MND):$P(BP1,".",2)_$P(BP1,"."),1:$S($$DC^cAFD1(DT)'<20100205:"3",1:"")_KW_$P(BP1,"."))) .. I 'SWMND D ... S SC=XMLWRITER.Element($P($T(@("T7")),U,4)) ... S SC=XMLWRITER.WriteChars(KW),SC=XMLWRITER.EndElement() D ENDLN ... S SC=XMLWRITER.Element($P($T(@("T7")),U,5)) ... S SC=XMLWRITER.WriteChars($P(BP1,".")),SC=XMLWRITER.EndElement() D ENDLN .. S SC=XMLWRITER.EndElement() D ENDLN .. ; .. ; .. D CLIENT . S SC=XMLWRITER.EndElement() D ENDLN . S SC=XMLWRITER.EndRootElement() D ENDLN ; S SC=XMLWRITER.EndDocument() ; Y S SC=XMLWRITER.%Close() YZ Q ; CLIENT ; Tijdelijk bestand doorlopen met klanten S I3="",TEL=0 CLIENTA S I3=$O(^TEMP(boot,$J,I3)) Q:I3="" D S BE=^(I3,0),KC=$O(^(0)),BTW=$E(I3,3,999) ; I BTW?1."0" S BE=$P(^(KC),D) I BTW?1."0" G CLIENTA ; KU : BTW-nrs "NB" mogen niet mee. CLIENTAA S TEL=TEL+1 S BEP=$P(BE,D),CODE="" ; Te printen bedrag I BP1>2010 D ; KU : 12.11.09 opslisting goederen/diensten . S CODE="L" . I '$P(BE,D,3),'$P(BE,D,4) Q . I $P(BE,D,3) S BEP=$P(BE,D,3),$P(BE,D,3)="",CODE="L" Q ; goederen . I $P(BE,D,4) S BEP=$P(BE,D,4),$P(BE,D,4)="",CODE="S" Q ; diensten ; CLIENTLIST CLIENTB S SC=XMLWRITER.Element($P($T(@("T8")),U,2)) S SC=XMLWRITER.WriteAttribute($P($T(@("T4")),U,2),TEL) D ENDLN ; VATNum S SC=XMLWRITER.Element($P($T(@("T10")),U,3)),SC=XMLWRITER.WriteAttribute($P($T(@("T10")),U,5),$E(I3,1,2)),SC=XMLWRITER.WriteChars(BTW),SC=XMLWRITER.EndElement() D ENDLN ; Code ; I $$DC^cAFD1(DT)'<20100205 S SC=XMLWRITER.Element($P($T(@("T11")),U,4)),SC=XMLWRITER.WriteChars(CODE),SC=XMLWRITER.EndElement() D ENDLN I BP1>2010 S SC=XMLWRITER.Element($P($T(@("T11")),U,4)),SC=XMLWRITER.WriteChars(CODE),SC=XMLWRITER.EndElement() D ENDLN ; Amount S SC=XMLWRITER.Element($P($T(@("T11")),U,3)),SC=XMLWRITER.WriteChars(BEP),SC=XMLWRITER.EndElement() D ENDLN S SC=XMLWRITER.EndElement() D ENDLN I BP1>2010,$P(BE,D,4) G CLIENTAA ; KU : 12.11.09 opslisting goederen/diensten ; I BTW?1."0" S KC=$O(^TEMP(boot,$J,I3,KC)) I KC S BE=$P(^(KC),D) G CLIENTB G CLIENTA CLIENTZ Q ; ;--------------------------------------------------------------------------------------------------------------------------- ; ENDLN S SC=XMLWRITER.WriteChars($C(13,10)) ENDLNZ Q ; CENT(EURO) ; Omzetten euro's naar eurocenten N OUT,DEL S EURO=$TR(EURO,",",".") S OUT=EURO*100 CENTZ Q OUT ; R0 S $P(R,D,12)=$T(+0) D ^cAN1000 Q ; v12 23.01.95 ; SENDREF(JAAR,KW,MAAND) N OUT,I2,SJAAR S OUT="" S I2="Q"_KW I $L(MAAND) S I2="M"_MAAND ; 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 ; 02.02.10 - 14 u 30 * V9.06