codice:
<!-- #include file="adovbs.asp" -->
<!-- #include file="Connessioni.asp" -->
<%
Dim datastart,dataend,d1,d2,progressivo,carica,codfis, codana
'
' il campo codana è il campo su cui si effettua la rottura per stampare il nuovo header
'
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim Rec,AAAA,MM,GG,numerofattura,N1,N2
Dim ragionesociale,indirizzo,NC,cap,citta,provincia,nazione,codicefiscale,partitaiva,pk
for i=1 to Request.Querystring("carica").Count
carica = Request.Querystring("carica")(i)
next
progressivo="1"
for i=1 to Request.Querystring("progressivo").Count
progressivo = Request.Querystring("progressivo")(i)
next
for i=1 to Request.Querystring("codicefiscale").Count
codfis = Request.Querystring("codicefiscale")(i)
next
progressivo=right("0000"&progressivo,4)
for i=1 to Request.Querystring("datastart").Count
datastart= Request.Querystring("datastart")(i)
next
for i=1 to Request.Querystring("dataend").Count
dataend= Request.Querystring("dataend")(i)
next
'd1="#"&datastart&"#"
'd2="#"&dataend&"#"
d1="#"&mid(datastart,4,2)&"/"&left(datastart,2)&"/"&right(datastart,4)&"#"
d2="#"&mid(dataend,4,2)&"/"&left(dataend,2)&"/"&right(dataend,4)&"#"
dim a, f, fso, fd, fld(100)
LeggiConfigurazione
'
' prepara il file di scarico
'
codana = 0
'SQL = "SELECT * FROM SituazioneFatture where DataFattura between "& d1 & " and " & d2 & " order
SQL = "SELECT * FROM SituazioneFatture where (DataFattura >= " & d1 & ") and (DataFattura <= " & d2 & ") order by CodiceAnagrafico ASC,NumeroFattura ASC"
RS.Open SQL, connB, 3, 3
File = "public/IT"&codicefiscale&"_DF_I" & progressivo & ".XML"
fd=Server.MapPath(File)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(fd, ForWriting, True)
'
' Scarica i dati del CedentePrestatoreDTE
'
ScaricaHeader
do until RS.EOF
'
' Scarica le fatture
'
codiceanagrafico=RS("codiceanagrafico")
if (codana = 0) or (codana<>codiceanagrafico) then
EstraiAnagrafica()
NuovoCommittente()
end if
ElaboraFattura RS
codana = codiceanagrafico
RS.movenext
loop
if codana<>0 then
Rec=" </CessionarioCommittenteDTE>"
W Rec
end if
'
' Chiusura del file di trx format XML
'
Rec=" </DTE>"
W Rec
Rec="</DatiFattura>"
W Rec
RS.Close
f.Close
response.write("FILE XML CREATO IN OUTPUT...")
'
'
'
sub ScaricaHeader()
Rec="<?xml version=""1.0""?>"
W Rec
Rec="<DatiFattura xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" versione=""DAT20"" xmlns=""http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v2.0"">"
'Rec="<DatiFattura>"
W Rec
Rec=" <DatiFatturaHeader xmlns="""">"
W Rec
Rec=" <ProgressivoInvio>" & progressivo & "</ProgressivoInvio>"
W Rec
Rec=" <Dichiarante>"
W Rec
Rec=" <CodiceFiscale>"& codicefiscale & "</CodiceFiscale>"
W Rec
Rec=" <Carica>"&carica&"</Carica>"
W Rec
Rec=" </Dichiarante>"
W Rec
Rec=" </DatiFatturaHeader>"
W Rec
Rec=" <DTE xmlns="""">"
W Rec
Rec=" <CedentePrestatoreDTE>"
W Rec
Rec=" <IdentificativiFiscali>"
W Rec
Rec=" <IdFiscaleIVA>"
W Rec
Rec=" <IdPaese>"&left(nazione,2)&"</IdPaese>"
W Rec
Rec=" <IdCodice>"&partitaiva&"</IdCodice>"
W Rec
Rec=" </IdFiscaleIVA>"
W Rec
Rec=" <CodiceFiscale>"&codicefiscale&"</CodiceFiscale>"
W Rec
Rec=" </IdentificativiFiscali>"
W Rec
Rec=" <AltriDatiIdentificativi>"
W Rec
Rec=" <Denominazione>"&ragionesociale&"</Denominazione>"
W Rec
Rec=" <Sede>"
W Rec
Rec=" <Indirizzo>"&NC(0)&"</Indirizzo>"
W Rec
Rec=" <NumeroCivico>"&trim(NC(1))&"</NumeroCivico>"
W Rec
Rec=" <CAP>"&cap&"</CAP>"
W Rec
Rec=" <Comune>"&citta&"</Comune>"
W Rec
Rec=" <Provincia>"&provincia&"</Provincia>"
W Rec
Rec=" <Nazione>"&left(nazione,2)&"</Nazione>"
W Rec
Rec=" </Sede>"
W Rec
Rec=" </AltriDatiIdentificativi>"
W Rec
Rec=" </CedentePrestatoreDTE>"
W Rec
end sub
'
' **** export fattura DTE in XML
'
sub EstraiAnagrafica()
nazione=ucase(RS("nazione"))
partitaiva=RS("partitaiva")
codicefiscale=RS("codicefiscale")
ragionesociale=Replace(RS("ragionesociale"),"&","&")
indirizzo=RS("indirizzo")
cap=RS("cap")
citta=RS("citta")
provincia=RS("provincia")
nazione=uCase(RS("nazione"))
end sub
sub ElaboraFattura(RS)
' estrae i dati dal recordset
numerofattura=RS("NumeroFattura")
AAAA=Year(RS("DataFattura"))
MM=right("0"&month(RS("DataFattura")),2)
GG=right("0"&Day(RS("DataFattura")),2)
Rec=" <DatiFatturaBodyDTE>"
W Rec
Rec=" <DatiGenerali>"
W Rec
Rec=" <TipoDocumento>TD01</TipoDocumento>"
W Rec
Rec=" <Data>"&AAAA&"-"&MM&"-"&GG&"</Data>"
W Rec
N1="N"&NumeroFattura
N2=right(N1,6)
Rec=" <Numero>"&FormatNumber(N2,0)&"</Numero>"
W Rec
Rec=" </DatiGenerali>"
W Rec
if RS("S0101")>0 then
Rec=" <DatiRiepilogo>"
W Rec
Rec=" <ImponibileImporto>"&Replace(FormatNumber(RS("S0101"),2,-1,0,0),",",".")&"</ImponibileImporto>"
W Rec
Rec=" <DatiIVA>"
W Rec
Rec=" <Imposta>"&Replace(FormatNumber(RS("S0102"),2,-1,0,0),",",".")&"</Imposta>"
W Rec
Rec=" <Aliquota>"&Replace(FormatNumber(RS("S0103"),2,-1,0,0),",",".")&"</Aliquota>"
W Rec
Rec=" </DatiIVA>"
W Rec
if RS("S0103")=0.00 then
Rec=" <Natura>N2</Natura>"
W Rec
end if
Rec=" <EsigibilitaIVA>I</EsigibilitaIVA>"
W Rec
Rec=" </DatiRiepilogo>"
W Rec
end if
if RS("S0201")>0 then
Rec=" <DatiRiepilogo>"
W Rec
Rec=" <ImponibileImporto>"&Replace(FormatNumber(RS("S0201"),2,-1,0,0),",",".")&"</ImponibileImporto>"
W Rec
Rec=" <DatiIVA>"
W Rec
Rec=" <Imposta>"&Replace(FormatNumber(RS("S0202"),2,-1,0,0),",",".")&"</Imposta>"
W Rec
Rec=" <Aliquota>"&Replace(FormatNumber(RS("S0203"),2,-1,0,0),",",".")&"</Aliquota>"
W Rec
Rec=" </DatiIVA>"
W Rec
if RS("S0203")=0.00 then
Rec=" <Natura>N2</Natura>"
W Rec
end if
Rec=" <EsigibilitaIVA>I</EsigibilitaIVA>"
W Rec
Rec=" </DatiRiepilogo>"
W Rec
end if
if RS("S0301")>0 then
Rec=" <DatiRiepilogo>"
W Rec
Rec=" <ImponibileImporto>"&Replace(FormatNumber(RS("S0301"),2,-1,0,0),",",".")&"</ImponibileImporto>"
W Rec
Rec=" <DatiIVA>"
W Rec
Rec=" <Imposta>"&Replace(FormatNumber(RS("S0302"),2,-1,0,0),",",".")&"</Imposta>"
W Rec
Rec=" <Aliquota>"&Replace(FormatNumber(RS("S0303"),2,-1,0,0),",",".")&"</Aliquota>"
W Rec
Rec=" </DatiIVA>"
W Rec
if RS("S0303")=0.00 then
Rec=" <Natura>N2</Natura>"
W Rec
end if
Rec=" <EsigibilitaIVA>I</EsigibilitaIVA>"
W Rec
Rec=" </DatiRiepilogo>"
W Rec
end if
if RS("S0401")>0 then
Rec=" <DatiRiepilogo>"
W Rec
Rec=" <ImponibileImporto>"&Replace(FormatNumber(RS("S0401"),2,-1,0,0),",",".")&"</ImponibileImporto>"
W Rec
Rec=" <DatiIVA>"
W Rec
Rec=" <Imposta>"&Replace(FormatNumber(RS("S0402"),2,-1,0,0),",",".")&"</Imposta>"
W Rec
Rec=" <Aliquota>"&Replace(FormatNumber(RS("S0403"),2,-1,0,0),",",".")&"</Aliquota>"
W Rec
Rec=" </DatiIVA>"
W Rec
if RS("S0403")=0.00 then
Rec=" <Natura>N2</Natura>"
W Rec
end if
Rec=" <EsigibilitaIVA>I</EsigibilitaIVA>"
W Rec
Rec=" </DatiRiepilogo>"
W Rec
end if
Rec=" </DatiFatturaBodyDTE>"
W Rec
end sub
sub NuovoCommittente()
' chiude precedente committente
if codana > 0 then
Rec=" </CessionarioCommittenteDTE>"
W Rec
end if
Rec=" <CessionarioCommittenteDTE>"
W Rec
Rec=" <IdentificativiFiscali>"
W Rec
if trim(partitaiva)<>"" then
Rec=" <IdFiscaleIVA>"
W Rec
Rec=" <IdPaese>"&left(nazione,2)&"</IdPaese>"
W Rec
Rec=" <IdCodice>"&partitaiva&"</IdCodice>"
W Rec
Rec=" </IdFiscaleIVA>"
W Rec
end if
if trim(codicefiscale)="" then
codicefiscale=partitaiva
end if
Rec=" <CodiceFiscale>"&codicefiscale&"</CodiceFiscale>"
W Rec
Rec=" </IdentificativiFiscali>"
W Rec
Rec=" <AltriDatiIdentificativi>"
W Rec
Rec=" <Denominazione>"&ragionesociale&"</Denominazione>"
W Rec
Rec=" <Sede>"
W Rec
Rec=" <Indirizzo>"&indirizzo&"</Indirizzo>"
W Rec
Rec=" <CAP>"&cap&"</CAP>"
W Rec
Rec=" <Comune>"&citta&"</Comune>"
W Rec
Rec=" <Provincia>"&provincia&"</Provincia>"
W Rec
Rec=" <Nazione>"&left(nazione,2)&"</Nazione>"
W Rec
Rec=" </Sede>"
W Rec
Rec=" </AltriDatiIdentificativi>"
W Rec
end sub
sub LeggiConfigurazione()
pk=1
SQL="select * From configurazione where pk = " & pk
RS.Open SQL, connB
ragionesociale=RS("ragionesociale")
cap=trim(RS.Fields("Cap"))
indirizzo=RS.Fields("indirizzo")
NC=split(indirizzo,",")
citta=trim(RS.Fields("Citta"))
nazione=uCase(RS.Fields("nazione"))
provincia=trim(RS.Fields("Provincia"))
if codfis="" then
codicefiscale=trim(RS.Fields("CodiceFiscale"))
else
codicefiscale=codfis
end if
partitaiva=trim(RS.Fields("PartitaIva"))
RS.Close
end sub
sub W(Rec)
f.WriteLine Rec
end sub
%>
ok ora proseguiamo verso la nuova export PHP...