<cfsavecontent variable="fattura_xml_"><cfif soc.fattura_pa eq 0><cfset tipo_fattura = "FPR12"><cfelse><cfset tipo_fattura = "FPA12"></cfif>
	<p:FatturaElettronica xmlns:ds="http://www.w3.org/2000/09/xmldsig##" xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2" versione="<cfoutput>#tipo_fattura#</cfoutput>">
    <FatturaElettronicaHeader>
        <DatiTrasmissione>
            <IdTrasmittente>
                <IdPaese>IT</IdPaese>
                <IdCodice>01879020517</IdCodice>
            </IdTrasmittente>
            <ProgressivoInvio><cfoutput>#dateformat(now(),'yy')#-#NumberFormat(datifattura.Numero_fattura,'0000009')#</cfoutput></ProgressivoInvio>
            <FormatoTrasmissione><cfoutput>#tipo_fattura#</cfoutput></FormatoTrasmissione>
				<CodiceDestinatario>KRRH6B9</CodiceDestinatario>
        </DatiTrasmissione>
		
		<!--- DATI CLIENTE --->
        <CedentePrestatore>
            <DatiAnagrafici>
			<cfif (len(trim(soc.Partita_iva)) gt 0)>
				<IdFiscaleIVA>
                    <IdPaese><cfoutput>#ucase(left(trim(soc.paese_fatturazione), 2))#</cfoutput></IdPaese>
                    <IdCodice><cfoutput>#soc.Partita_iva#</cfoutput></IdCodice>
                </IdFiscaleIVA>
			</cfif>
               <!---  <cfif len(trim(soc.codice_fiscale)) gt 2 and soc.codice_fiscale neq "99999999999">
					<CodiceFiscale><cfoutput>#ucase(soc.Codice_fiscale)#</cfoutput></CodiceFiscale>
				<cfelseif soc.codice_fiscale eq "99999999999">
					<IdFiscaleIVA>
						<IdPaese><cfoutput>#ucase(left(trim(soc.paese_fatturazione), 2))#</cfoutput></IdPaese>
						<IdCodice>99999999999</IdCodice>
					</IdFiscaleIVA>
				</cfif> --->
                <Anagrafica>
                    <Denominazione><cfoutput>#soc.societa#</cfoutput></Denominazione>
                </Anagrafica>
                <RegimeFiscale><cfoutput>#dett_azienda.regime_fiscale_fatturazione#</cfoutput></RegimeFiscale>
            </DatiAnagrafici>
            <Sede>
                <Indirizzo><![CDATA[<cfoutput>#soc.Indirizzo_fatturazione#</cfoutput>]]></Indirizzo>
               
                <CAP><cfoutput><cfif len(trim(soc.CAP_fatturazione)) gt 0 and left(trim(soc.paese_fatturazione), 2) eq "IT">#soc.CAP_fatturazione#<cfelse>00000</cfif></cfoutput></CAP>
                <Comune><cfoutput>#soc.Citta_fatturazione#</cfoutput></Comune>
				<cfif len(trim(soc.StatoOProvincia_fatturazione)) is 2>
					<Provincia><cfoutput>#soc.StatoOProvincia_fatturazione#</cfoutput></Provincia>
				</cfif>
  				<Nazione><cfoutput>#ucase(left(trim(soc.paese_fatturazione), 2))#</cfoutput></Nazione>
          </Sede>
        </CedentePrestatore>
		
		
		<!--- DATI FORNITORE --->
        <CessionarioCommittente>
            <DatiAnagrafici>
				<IdFiscaleIVA>
                    <IdPaese>IT</IdPaese>
                    <IdCodice><cfoutput>#dett_azienda.partita_iva_fatturazione#</cfoutput></IdCodice>
                </IdFiscaleIVA>
				<CodiceFiscale><cfoutput>#dett_azienda.codice_fiscale_fatturazione#</cfoutput></CodiceFiscale>
                <Anagrafica>
                    <Denominazione><![CDATA[<cfoutput>#dett_azienda.nome_az#</cfoutput>]]></Denominazione>
                </Anagrafica>
            </DatiAnagrafici>
            <Sede>
                <Indirizzo><![CDATA[<cfoutput>#dett_azienda.indirizzo_fatturazione#</cfoutput>]]></Indirizzo>
				<cfif len(trim(dett_azienda.numero_civico_fatturazione)) gt 0><NumeroCivico><cfoutput>#dett_azienda.numero_civico_fatturazione#</cfoutput></NumeroCivico></cfif>
                <CAP><cfif len(trim(dett_azienda.cap_fatturazione)) gt 0><cfoutput>#dett_azienda.cap_fatturazione#</cfoutput><cfelse>00000</cfif></CAP>
                <Comune><cfoutput>#dett_azienda.comune_fatturazione#</cfoutput></Comune>
				<cfif len(trim(dett_azienda.provincia_fatturazione)) is 2>
					<Provincia><cfoutput>#dett_azienda.provincia_fatturazione#</cfoutput></Provincia>
				</cfif>
                 <Nazione><cfoutput>#Ucase(dett_azienda.nazione_fatturazione)#</cfoutput></Nazione>
           </Sede>
        </CessionarioCommittente>
		
		<TerzoIntermediarioOSoggettoEmittente>
			<DatiAnagrafici>
				<IdFiscaleIVA>
					<IdPaese>IT</IdPaese>
					<IdCodice><cfoutput>#dett_azienda.partita_iva_fatturazione#</cfoutput></IdCodice>
				</IdFiscaleIVA>
				<CodiceFiscale><cfoutput>#dett_azienda.codice_fiscale_fatturazione#</cfoutput></CodiceFiscale>
				<Anagrafica>
					<Denominazione><![CDATA[<cfoutput>#dett_azienda.nome_az#</cfoutput>]]></Denominazione>
				</Anagrafica>
			</DatiAnagrafici>	
		</TerzoIntermediarioOSoggettoEmittente>
		<SoggettoEmittente>CC</SoggettoEmittente>
    </FatturaElettronicaHeader>
    <FatturaElettronicaBody>
        <DatiGenerali>
            <DatiGeneraliDocumento>
                <TipoDocumento><cfoutput>#datifattura.tipo_doc#</cfoutput></TipoDocumento>
                <Divisa>EUR</Divisa>
                <Data><cfoutput>#dateformat(datifattura.data_emissione, "yyyy-mm-dd")#</cfoutput></Data>
                <Numero><cfoutput><cfif datifattura.autofattura eq 1>AF</cfif>#datifattura.Numero_fattura#</cfoutput><cfif session.azienda_bis eq 1>/A</cfif></Numero>
				<!---<cfif soc.split_payment eq 1>
					<ImportoTotaleDocumento><cfoutput>#NumberFormat(round(100*datifattura.importo)/100, '.99')#</cfoutput></ImportoTotaleDocumento>
				<cfelse>--->
					<ImportoTotaleDocumento><cfoutput>#NumberFormat(round(100*(datifattura.importo+datifattura.tot_iva))/100, '.99')#</cfoutput></ImportoTotaleDocumento>
				<!---</cfif>--->
            </DatiGeneraliDocumento>
			
			<DatiFattureCollegate>
					<RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>
					<IdDocumento><cfoutput><cfif len(trim(datifattura.fa_numero)) gt 20>#right(trim(datifattura.fa_numero), 20)#<cfelse>#datifattura.fa_numero#</cfif></cfoutput></IdDocumento>
					<Data><cfoutput>#dateformat(datifattura.fa_data, "yyyy-mm-dd")#</cfoutput></Data>	
			</DatiFattureCollegate>

			</DatiGenerali>
        <DatiBeniServizi>
			<cfset num_lin = 1 >
			<cfset aliquote = "">
			<cfset dettagli_voce = "">
			<cfloop query="dettagli">
				<cfoutput>
					<DettaglioLinee>
						<NumeroLinea>#num_lin#</NumeroLinea>
						<!--- <Descrizione><![CDATA[#dettagli.voce#]]></Descrizione> --->
						<cfset dettagli_voce = replace(dettagli.voce, "&", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, "’", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, "‘", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, "“", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, "”", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, '"', "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, "<", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, ">", "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, #chr(10)#, "", "all")>
						<cfset dettagli_voce = replace(dettagli.voce, #chr(13)#, "", "all")>
						<cfif len(trim(dettagli_voce)) gt 1000>
							<cfset dettagli_voce = left(dettagli_voce, 997)&"...">
						</cfif>
						<Descrizione><![CDATA[#dettagli_voce#]]></Descrizione>
						<Quantita>#NumberFormat(dettagli.quantita, '.000')#</Quantita>
						<UnitaMisura>#dettagli.um#</UnitaMisura>
						<PrezzoUnitario>#NumberFormat(dettagli.importo, '.999')#</PrezzoUnitario>
						<cfif #dettagli.sconto# GT 0>
							<ScontoMaggiorazione>
								<Tipo>SC</Tipo>
								<Percentuale>#NumberFormat(dettagli.sconto, '.99')#</Percentuale>
							</ScontoMaggiorazione>
						</cfif>
						<PrezzoTotale>#NumberFormat(dettagli.importo*dettagli.quantita* ( 1-dettagli.sconto/100 ), '.999')#</PrezzoTotale>
						<AliquotaIVA>#dettagli.aliquota#.00</AliquotaIVA>
						<cfif #dettagli.aliquota# EQ 0>
							<Natura><cfif len(trim(dettagli.natura)) gt 0>#dettagli.natura#<cfelse>N1</cfif></Natura>
						</cfif>
					</DettaglioLinee>
					<cfset num_lin = num_lin + 1>
					<!--- CONTROLLO IVA --->
					<cfif ListFind(aliquote,#dettagli.id_codice_iva#) EQ 0>
						<cfset aliquote = ListAppend(aliquote,#dettagli.id_codice_iva#,",")>      
					</cfif>
					<!--- FINE CONTROLLO IVA --->
					<cfset dettagli_voce = "">
				</cfoutput>
			</cfloop>
			<cfset iva_ = "">
			<cfset natura_ = "">
			<cfset normativa_ = "">
			<cfloop list="#aliquote#" index="aa">
				<cfquery name="dett_iva" dbtype="query">
					select aliquota, normativa, natura, split_payment from dettagli where id_codice_iva = #aa#
				</cfquery>
				<cfset natura_ = dett_iva.natura>
				<cfset normativa_ = dett_iva.normativa>
				<cfset iva_ = dett_iva.aliquota>
				<!---<cfset split_payment_ = dett_iva.split_payment>--->
				<cfset totale_importo = 0>
				<cfloop query="dettagli">
					<cfif #dettagli.id_codice_iva# EQ #aa#>
						<cfset totale_importo = totale_importo + (dettagli.importo * dettagli.quantita * ( 1-dettagli.sconto/100 ))>
					</cfif>
				</cfloop>
				
				<DatiRiepilogo>
					<AliquotaIVA><cfoutput>#NumberFormat(iva_, '.99')#</cfoutput></AliquotaIVA>
					<cfif #iva_# EQ 0>
						<Natura><cfif len(trim(natura_)) gt 0><cfoutput>#natura_#</cfoutput><cfelse>N1</cfif></Natura>
					</cfif>
					<ImponibileImporto><cfoutput>#NumberFormat(totale_importo, '.99')#</cfoutput></ImponibileImporto>
					<Imposta><cfoutput>#NumberFormat(totale_importo * iva_ /100, '.99')#</cfoutput></Imposta>
					<cfif len(trim(natura_)) gt 0><RiferimentoNormativo><cfoutput>#normativa_#</cfoutput></RiferimentoNormativo></cfif>
					<cfif #iva_# GT 0 and soc.split_payment eq 0>
						<EsigibilitaIVA>I</EsigibilitaIVA>
					<cfelseif soc.split_payment eq 1>
						<EsigibilitaIVA>S</EsigibilitaIVA>
					</cfif>
				</DatiRiepilogo>
			</cfloop>
        </DatiBeniServizi>
		<DatiPagamento>
			<CondizioniPagamento>TP02</CondizioniPagamento>
			<DettaglioPagamento>
				<ModalitaPagamento><cfif len(trim(pagamento.codice)) gt 0><cfoutput>#pagamento.codice#</cfoutput><cfelse>MP05</cfif></ModalitaPagamento>
				<DataScadenzaPagamento><cfoutput>#dateformat(datifattura.Scadenza, "yyyy-mm-dd")#</cfoutput></DataScadenzaPagamento>
				<cfif soc.split_payment eq 1>
					<ImportoPagamento><cfoutput>#NumberFormat(round(100*datifattura.importo)/100, '.99')#</cfoutput></ImportoPagamento>
				<cfelse>
					<ImportoPagamento><cfoutput>#NumberFormat(round(100*(datifattura.importo+datifattura.tot_iva))/100, '.99')#</cfoutput></ImportoPagamento>
				</cfif>
				<cfif len(trim(banca.banca)) gt 0><IstitutoFinanziario><cfoutput>#banca.banca#</cfoutput></IstitutoFinanziario></cfif>
				<cfif len(trim(datifattura.iban)) gt 0><IBAN><cfoutput>#datifattura.iban#</cfoutput></IBAN></cfif>
			</DettaglioPagamento>
		</DatiPagamento>
    </FatturaElettronicaBody>
</p:FatturaElettronica>
</cfsavecontent>

<cfset xml_file_rep = replace(fattura_xml_, "&", "&amp;", "all")>
<cfset xml_file_rep = replace(xml_file_rep, "’", " ", "all")>
<cfset xml_file_rep = replace(xml_file_rep, "”", " ", "all")>
<cfset xml_file_rep = replace(xml_file_rep, "“", " ", "all")>
<cfset xml_file_rep = replace(xml_file_rep, "“", " ", "all")>
<cfset xml_file_rep = replace(xml_file_rep, "°", " ", "all")>
<cfset xml_file_rep = replace(xml_file_rep, "–", " ", "all")>
<cfxml variable="fattura_xml"><cfoutput>#xml_file_rep#</cfoutput></cfxml>