<?php
 // release xml	
 // 2.4.1 fix 0003
 
 include ("../core.php");	

 


function crea_fatturapa($iddocumento){	
	global $dbo;
	global $docroot;
	
	
		
// query per ricerca archgiviazione
	$query_fatt = "SELECT (SELECT mail_oggetto FROM co_tipidocumento WHERE id=idtipodocumento) AS mail_oggetto,
	(SELECT mail_testo FROM co_tipidocumento WHERE id=idtipodocumento) AS mail_testo,
	(SELECT path_archivio FROM co_tipidocumento WHERE id=idtipodocumento) AS path_archivio,(SELECT txt_suffisso FROM co_tipidocumento WHERE id=idtipodocumento) AS txt_suffisso,(SELECT dir_pdf FROM co_tipidocumento WHERE id=idtipodocumento) AS dir_pdf ,DATE_FORMAT(`data`, '%Y') AS anno, (SELECT descrizione FROM co_tipidocumento WHERE id=idtipodocumento) AS tipo_doc,numero, numero_esterno, idanagrafica, DATE_FORMAT(`data`, '%d/%m/%Y') AS data from co_documenti WHERE id=\"$iddocumento\" ";
	$rs_testata = $dbo->fetchArray($query_fatt);	
	$anno=$rs_testata[0]['anno'];
	$path_archivio = $rs_testata[0]['path_archivio'];
	$nome_modulo = "archivio_".$path_archivio."_".$anno;
	$tipo_doc = $rs_testata[0]['tipo_doc'];
	$numero_pri=$rs_testata[0]['numero'];
	$txt_suffisso=$rs_testata[0]['txt_suffisso'];
	
	$dir_pdf=$rs_testata[0]['dir_pdf'];
	
// apertura testata documento
	
	$query="select * from  co_documenti  where id='".$iddocumento."'";				
	$rs_testata = $dbo->fetchArray($query);
// apertura righe documento	
	$query="select * from  co_righe_documenti  where iddocumento='".$iddocumento."' and riga_varia='0'";				
	$rs_righe = $dbo->fetchArray($query);
// apertura anagrafica cedente	
	$query="select * from an_anagrafiche where idanagrafica='".get_var("Azienda predefinita")."'";
	$rs_cedente = $dbo->fetchArray($query);
// apertura anagrafica cliente	
	$query="select * from an_anagrafiche where idanagrafica='".$rs_testata[0]['idanagrafica']."'";
	$rs_cliente = $dbo->fetchArray($query);

// terzo intemediario
	$query="select * from an_anagrafiche where idanagrafica='".get_var("Terzo intermediario")."'";
	$rs_intermediario = $dbo->fetchArray($query);
	
	
// apertura dati banca 	
	$query="select * from co_banche where id='".$rs_testata[0]['idbanca_vendite']."'";
	$rs_banca = $dbo->fetchArray($query);	
	
	$scrivi_ritenuta="NO";
	
// dati del docuemnto
	$_DocData	= substr($rs_testata[0]['data'],0,10);
	
// cerco iva predifinita
	$query="select percentuale from co_iva where id='".get_var("Iva predefinita")."'";
	$rs_iva = $dbo->fetchArray($query);
	$id_iva_pred=$rs_iva[0]['percentuale'];
	
	
// impostazioni variabili	
	$_progressivo  = $rs_testata[0]['numero_esterno'];
	$_IdCodice     = $rs_cedente[0]['piva'];
		$_CodFisc     = $rs_cedente[0]['codice_fiscale'];
	$_Regimefiscale= 	substr(get_var("Regime Fiscale"), 0, 4) ; 
	$_SedeIndirizzo=	substr($rs_cedente[0]['indirizzo'], 0, 60);			// 60 indirizzo fornitore
	$_SedeCap=			substr($rs_cedente[0]['cap'], 0, 5);				// 5 indirizzo fornitore
	$_SedeLocalita=		substr($rs_cedente[0]['citta'], 0, 60);				// 60 indirizzo fornitore
	$_SedePV=			substr($rs_cedente[0]['provincia'], 0, 2);			// 2 indirizzo fornitore
	$_SedeNazione=		"IT";												// 2 indirizzo fornitore
	$_Denominazione = 	substr($rs_cedente[0]['ragione_sociale'], 0, 80);	// 80 caratteri intestazione azienda fornitrice
	
	
		$_Denominazione = html_entity_decode($_Denominazione);
		$_Denominazione=str_replace("&#039;","",$_Denominazione);
	
	
	$_SedeIndirizzo = html_entity_decode($_SedeIndirizzo, ENT_QUOTES);
	$_Denominazione = html_entity_decode($_Denominazione, ENT_QUOTES);

	
	
	
// calcolo nuovo progressivo
	
	$_AnnoData	= substr($_DocData,2,2);
	$query = "SELECT MAX(numero) AS max_progressivo FROM co_documenti_progressivo WHERE DATE_FORMAT( data, '%Y' ) = '".date("Y", strtotime($rs_testata[0]['data']))."'";
	$rs_progressivo = $dbo->fetchArray($query);
		$_progressivo = $rs_progressivo[0]['max_progressivo'] + 1;		
		$rs = $dbo->query("INSERT INTO `co_documenti_progressivo`( inviato,esito,idutente,id_documento, data, numero_esterno, numero ,numero_documento ) VALUES( '1','4',\"".$_SESSION['idutente']."\" , \"".$iddocumento."\", NOW(), \"".$_progressivo."_".$_AnnoData."\", \"".$_progressivo."\" , \"".$rs_testata[0]['numero_esterno']."\")");
		$_progressivo = $_progressivo."_".$_AnnoData;
		$_progressivo=substr($_progressivo, 0, 10);
		// fine calcolo nuovo progressivo	
	
	
	
	if ($rs_cliente[0]['tipo'] == 'Ente pubblico' ){
        $_FormatoTrasmissione="FPA12";
		$_CodiceDestinatario=	$rs_cliente[0]['cod_sogei'];			// 6 caratteri dell'ufficio destinazione della fattura
    }
    else
    {
        $_FormatoTrasmissione="FPR12";
		$_CodiceDestinatario=	$rs_cliente[0]['cod_sogei'];			// 7 caratteri dell'ufficio destinazione della fattura . Se non asseganto deve essere la pec valorrizata 0000000
		$_PECDestinatario=		$rs_cliente[0]['cod_sogei_pec'];
    }
	
	if ($rs_cliente[0]['tipo'] == 'Privato' ){
       $_FormatoTrasmissione="FPR12";
	   $_CodiceDestinatario=	$rs_cliente[0]['cod_sogei'];			// 7 caratteri dell'ufficio destinazione della fattura . Se non asseganto deve essere la pec valorrizata 0000000
	   $_PECDestinatario=		$rs_cliente[0]['cod_sogei_pec'];
    }
	
	$esigibilita_iva = $rs_cliente[0]['esigibilita_iva'];
	if ( $esigibilita_iva == '' ){
		$esigibilita_iva ="I";
	
	}
	
	
	
	// dati del cliente
	$_ClienteIdCodice=			substr($rs_cliente[0]['piva'], 0, 16);				// 11-16 caratteri 
	$_ClienteCodFicale=			substr($rs_cliente[0]['codice_fiscale'], 0, 16);	// 11-16 caratteri 
	$_ClientePartitaIva=		substr($rs_cliente[0]['piva'], 0, 16);	// 11-16 caratteri 
	
	$_ClienteDenominazione=		substr($rs_cliente[0]['ragione_sociale'], 0, 80);	// 80 caratteri 
	$_ClienteIndirizzo=			substr($rs_cliente[0]['indirizzo'], 0, 60);			// 60 caratteri 
	$_Clientecap=				substr($rs_cliente[0]['cap'], 0, 5);				// 5 caratteri 
	$_ClienteComune=			substr($rs_cliente[0]['citta'], 0, 60);				// 80 caratteri 
	$_ClientePv=				substr($rs_cliente[0]['provincia'], 0, 2);			// 80 caratteri 
	$_ClienteNazione="IT";			
	
	$_ClienteDenominazione = html_entity_decode($_ClienteDenominazione);
	$_ClienteDenominazione=str_replace("&#039;","",$_ClienteDenominazione);
	
	$_ClienteIndirizzo = html_entity_decode($_ClienteIndirizzo, ENT_QUOTES);
	$_ClienteDenominazione = html_entity_decode($_ClienteDenominazione, ENT_QUOTES);
	
	
	do {
        $code = date('y').secure_random_string(3);
    } while ($dbo->fetchNum('SELECT `id` FROM `co_documenti` WHERE `codice_xml` = '.prepare($code)) != 0);
	
	$dbo->query("UPDATE co_documenti SET codice_xml=\"".$code."\" WHERE id=\"".$iddocumento."\"");
	
	
	$file = "IT".$_IdCodice."_".$code.".xml";
	
	
	$nfile = $docroot."/files/pa/".$file;	
// apertura e creazione file xml
	$myfile = fopen($nfile, "w") or die("Errore apertura file!");
	
// scrittura schema
	$_schema = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";  	
	if ($rs_cliente[0]['tipo'] == 'Ente pubblico' ){
		$_schema .= '<p:FatturaElettronica versione="FPA12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"' . "\n";	
	}
    else
    {
		$_schema .= '<p:FatturaElettronica versione="FPR12" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"' . "\n";	
	}
	$_schema .= 'xmlns:p="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2"' . "\n";	
	$_schema .= 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' . "\n";	
	$_schema .= 'xsi:schemaLocation="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 http://www.fatturapa.gov.it/export/fatturazione/sdi/fatturapa/v1.2/Schema_del_file_xml_FatturaPA_versione_1.2.xsd">' . "\n";	
	fwrite($myfile, $_schema);
	
	// scrittura intestazione			
	$_Header = '<FatturaElettronicaHeader>' . "\n";	

// SEZIONE 1.1

		$_Header .= '	<DatiTrasmissione>' . "\n";		
			$_Header .= '  <IdTrasmittente>' . "\n";	
				if ($rs_cedente[0]['identificativo_xml'] == 'I' ){
					$_Header .= '    <IdPaese>IT</IdPaese>' . "\n";						
					$_IdCodice_trasmittente=$_IdCodice;					
					if (get_var("Terzo intermediario") > 0 ) {
						$_IdCodice_trasmittente=$rs_intermediario[0]['piva'];;
					}					
					$_Header .= '    <IdCodice>' . $_IdCodice_trasmittente . '</IdCodice>' . "\n";	
				}
				if ($rs_cedente[0]['identificativo_xml'] == 'C' ){					
					$_Header .= '    <IdCodice>' . $rs_cedente[0]['codice_fiscale'] . '</IdCodice>' . "\n";	
				}

			$_Header .= '  </IdTrasmittente>' . "\n";	
			$_Header .= '  <ProgressivoInvio>' . $_progressivo . '</ProgressivoInvio>' . "\n";	
			$_Header .= '  <FormatoTrasmissione>' . $_FormatoTrasmissione . '</FormatoTrasmissione>' . "\n";	
			$_Header .= '  <CodiceDestinatario>' . $_CodiceDestinatario . '</CodiceDestinatario>' . "\n";
		
			if ( ($_CodiceDestinatario == "0000000") && ($rs_cliente[0]['tipo'] == 'Privato' ) ){	// caso in cui fattura a privato  senza codice sogei asegnato necessita invio indirizzo pec		
				if ($_PECDestinatario  !='' )	{
					$_Header .= '  <PECDestinatario>' . $_PECDestinatario . '</PECDestinatario>' . "\n";
				}
			}
		$_Header .= '	</DatiTrasmissione>' . "\n";			

// SEZIONE 1.2

		$_Header .= '	<CedentePrestatore>' . "\n";	
			$_Header .= '  <DatiAnagrafici>' . "\n";	
			$_Header .= '    <IdFiscaleIVA>' . "\n";	
			$_Header .= '      <IdPaese>' . $_SedeNazione . '</IdPaese>' . "\n";	
			$_Header .= '      <IdCodice>' . $_IdCodice . '</IdCodice>' . "\n";	
			$_Header .= '    </IdFiscaleIVA>' . "\n";	
			$_Header .= '    <Anagrafica>' . "\n";	
			$_Header .= '      <Denominazione>' . $_Denominazione . '</Denominazione>' . "\n";	
			$_Header .= '    </Anagrafica>' . "\n";	
			$_Header .= '    <RegimeFiscale>' . $_Regimefiscale . '</RegimeFiscale>' . "\n";	
			$_Header .= '  </DatiAnagrafici>' . "\n";	
			$_Header .= '  <Sede>' . "\n";	
			$_Header .= '    <Indirizzo>' . $_SedeIndirizzo . '</Indirizzo>' . "\n";	
			$_Header .= '    <CAP>' . $_SedeCap . '</CAP>' . "\n";	
			$_Header .= '    <Comune>' . $_SedeLocalita . '</Comune>' . "\n";	
			$_Header .= '    <Provincia>' . $_SedePV . '</Provincia>' . "\n";	
			$_Header .= '    <Nazione>' . $_SedeNazione . '</Nazione>' . "\n";	
			$_Header .= '  </Sede>' . "\n";	
		$_Header .= '	</CedentePrestatore>' . "\n";			

// SEZIONE 1.3
		// Rappresentante fiscale

// SEZIONE 1.4		
		$_Header .= '	<CessionarioCommittente>' . "\n";	
			$_Header .= '  <DatiAnagrafici>' . "\n";	
			
				if ($rs_cliente[0]['identificativo_xml'] == 'I' ){
					$_Header .= '  <IdFiscaleIVA>' . "\n";
					$_Header .= '    <IdPaese>IT</IdPaese>' . "\n";	
					$_Header .= '    <IdCodice>' . $_ClientePartitaIva . '</IdCodice>' . "\n";
					$_Header .= '  </IdFiscaleIVA>' . "\n";					
				}
				
			$_Header .= '    <CodiceFiscale>' . $_ClienteCodFicale . '</CodiceFiscale>' . "\n";	
			$_Header .= '    <Anagrafica>' . "\n";	
			$_Header .= '      <Denominazione>' . $_ClienteDenominazione . '</Denominazione>' . "\n";	
			$_Header .= '    </Anagrafica>' . "\n";	
			$_Header .= '  </DatiAnagrafici>' . "\n";	
			$_Header .= '  <Sede>' . "\n";	
			$_Header .= '    <Indirizzo>' . $_ClienteIndirizzo . '</Indirizzo>' . "\n";	
			$_Header .= '    <CAP>' . $_Clientecap . '</CAP>' . "\n";	
			$_Header .= '    <Comune>' . $_ClienteComune . '</Comune>' . "\n";	
			$_Header .= '    <Provincia>' . $_ClientePv . '</Provincia>' . "\n";	
			$_Header .= '    <Nazione>' . $_ClienteNazione . '</Nazione>' . "\n";	
			$_Header .= '  </Sede>' . "\n";	
		$_Header .= '	</CessionarioCommittente>' . "\n";	
  
	
// SEZIONE 1.5
		// Terzo intermediario
		if (get_var("Terzo intermediario") > 0 ){
			$_IdCodice_Intermediario=$rs_intermediario[0]['piva'];
			$_ClienteCodFicale_Intermediario=$rs_intermediario[0]['piva'];
			$_Demnominzione_Intermediario=$rs_intermediario[0]['ragione_sociale'];
			
			$_Demnominzione_Intermediario = html_entity_decode($_Demnominzione_Intermediario, ENT_QUOTES);
			
			
			$_Header .= '<TerzoIntermediarioOSoggettoEmittente>' . "\n";	
				$_Header .= '  <DatiAnagrafici>' . "\n";	
				$_Header .= '  		<IdFiscaleIVA>' . "\n";
				$_Header .= '    		<IdPaese>IT</IdPaese>' . "\n";	
				$_Header .= '    		<IdCodice>' . $_IdCodice_Intermediario . '</IdCodice>' . "\n";	
				$_Header .= '  		</IdFiscaleIVA>' . "\n";	
				$_Header .= '    <CodiceFiscale>' . $_ClienteCodFicale_Intermediario . '</CodiceFiscale>' . "\n";	
				$_Header .= '  		<Anagrafica>' . "\n";
				$_Header .= '   		 <Denominazione>' . $_Demnominzione_Intermediario . '</Denominazione>' . "\n";	
				$_Header .= '  		</Anagrafica>' . "\n";
				
				$_Header .= '  </DatiAnagrafici>' . "\n";			
			$_Header .= '</TerzoIntermediarioOSoggettoEmittente>' . "\n";			
			$_Header .= '<SoggettoEmittente>TZ</SoggettoEmittente>' . "\n";	
		}
// CHIUDO SEZIONE 1	
	
	  $_Header .= '</FatturaElettronicaHeader>' . "\n";	
	
	
	fwrite($myfile, $_Header);
	

		
// SEZIONE 2.1

	$_intestazione = '	<FatturaElettronicaBody>' . "\n";	
	$_intestazione .= '		<DatiGenerali>' . "\n";	
	$_intestazione .= '		  <DatiGeneraliDocumento>' . "\n";	
	$_intestazione .= '			<TipoDocumento>' . get_var_tipodoc2($iddocumento,'el_tipodocumento') . '</TipoDocumento>' . "\n";	
	$_intestazione .= '			<Divisa>' . get_var_tipodoc2($iddocumento,'el_divisa') . '</Divisa>' . "\n";	
	$_intestazione .= '			<Data>' . $_DocData . '</Data>' . "\n";	
	$_intestazione .= '			<Numero>' . $rs_testata[0]['numero_documento'] . '</Numero>' . "\n";
	
	
	
	
	

// aggiungere se di tipo ritenuta

	if ( $rs_testata[0]['ritenutaacconto'] != '0.000' ){
		$scrivi_ritenuta="SI";
		if ( $rs_cedente[0]['tipo'] == 'Privato' ) $rit='RT01' ;
		if ( $rs_cedente[0]['tipo'] != 'Privato' ) $rit='RT02' ;
		$prezzo_ritenuta = number_format($rs_testata[0]['ritenutaacconto'],2,".","");
		$query="SELECT percentuale FROM co_ritenutaacconto WHERE id='".$rs_testata[0]['idritenutaacconto']."'";
		$rs_ritenuta = $dbo->fetchArray($query);
		$_intestazione .= '			<DatiRitenuta>' . "\n";					
		$_intestazione .= '				<TipoRitenuta>' . $rit. '</TipoRitenuta>' . "\n";	
		$_intestazione .= '				<ImportoRitenuta>' . $prezzo_ritenuta. '</ImportoRitenuta>' . "\n";	
		$_intestazione .= '				<AliquotaRitenuta>' . $rs_ritenuta[0]['percentuale']. '</AliquotaRitenuta>' . "\n";	
		$_intestazione .= '				<CausalePagamento>' . get_var("Causale ritenuta d'acconto"). '</CausalePagamento>' . "\n";	
		$_intestazione .= '			</DatiRitenuta>' . "\n";		
	}
	
// Bollo
	if ( $rs_testata[0]['bollo'] != '0.000' ){
		$prezzo_bollo = number_format($rs_testata[0]['bollo'],2,".","");
		$_intestazione .= '			<DatiBollo>' . "\n";					
		$_intestazione .= '				<BolloVirtuale>SI</BolloVirtuale>' . "\n";	
		$_intestazione .= '				<ImportoBollo>' . $prezzo_bollo. '</ImportoBollo>' . "\n";	
		$_intestazione .= '			</DatiBollo>' . "\n";		
	}	
	
	$query="SELECT sum(subtotale - sconto) as tot , sum(iva) as totiva   FROM `co_righe_documenti` WHERE iddocumento='".$iddocumento."' and riga_varia='0'";	
	$rs_totale = $dbo->fetchArray($query); 
	$totale_documento = number_format($rs_totale[0]['tot'] + $rs_totale[0]['totiva'] ,2,".","");
	
	 $_intestazione .= '			<ImportoTotaleDocumento>' . $totale_documento . '</ImportoTotaleDocumento>' . "\n";
	
// Fine
	if ( $rs_testata[0]['el_causale_1'] <> '' ){
		$_intestazione .= '			<Causale>' . $rs_testata[0]['el_causale_1']. '</Causale>' . "\n";	
	}
	if ( $rs_testata[0]['el_causale_2'] <> '' ){
		$_intestazione .= '			<Causale>' . $rs_testata[0]['el_causale_2']. '</Causale>' . "\n";	
	}
	$_intestazione .= '		  </DatiGeneraliDocumento>' . "\n";	
// aggiungo riferimento ordine di acq se presenti	
	if ( $rs_testata[0]['el_idrif'] <> '' ){		
		$_intestazione .= '		  <DatiOrdineAcquisto>' . "\n";	
		$_intestazione .= '			<RiferimentoNumeroLinea>1</RiferimentoNumeroLinea>' . "\n";	
		$_intestazione .= '			<IdDocumento>' . $rs_testata[0]['el_idrif']. '</IdDocumento>' . "\n";	
		$_intestazione .= '			<NumItem>1</NumItem>' . "\n";		
		$_intestazione .= '			<CodiceCUP>' . $rs_testata[0]['el_id_codicecup']. '</CodiceCUP>' . "\n";	
		$_intestazione .= '			<CodiceCIG>' . $rs_testata[0]['el_id_codicecig']. '</CodiceCIG>' . "\n";	
		$_intestazione .= '		  </DatiOrdineAcquisto>' . "\n";
	}

	
	// aggiungo riferimento al documento di trasporto 
	if ( $rs_testata[0]['el_idrif_ddt1'] <> '' ){	
		$data_ddt=substr($rs_testata[0]['el_idrif_ddt1_data'],0,10);
		$_intestazione .= '		  <DatiDDT>' . "\n";	
		$_intestazione .= '			<NumeroDDT>' . $rs_testata[0]['el_idrif_ddt1']. '</NumeroDDT>' . "\n";	
		$_intestazione .= '			<DataDDT>' . $data_ddt. '</DataDDT>' . "\n";	
	
		$_intestazione .= '		  </DatiDDT>' . "\n";	
	}

	$_intestazione .= '		</DatiGenerali>' . "\n";	
	
	fwrite($myfile, $_intestazione);
	
// SEZIONE 2.2	
	
	$_beniservizi = '		<DatiBeniServizi>' . "\n";
	fwrite($myfile, $_beniservizi);		
	
	$test_iva_vuota="NO";
	
	for( $i=0; $i<sizeof($rs_righe); $i++ ){		
		$numero_linea=$i + 1;
		
		$prezzo_unitario=$rs_righe[$i]['subtotale'] / $rs_righe[$i]['qta'];
		$prezzo_totale=$rs_righe[$i]['subtotale'] - $rs_righe[$i]['sconto'];		
		
		$prezzo_unitario = number_format($prezzo_unitario,2,".","");
		$prezzo_totale = number_format($prezzo_totale,2,".","");
		
		$imposta = number_format($rs_righe[$i]['iva'],2,".","");
		
		$query="select percentuale , codice_natura_fe from co_iva where id='".$rs_righe[$i]['idiva']."'";
		$rs_iva = $dbo->fetchArray($query);
		$id_iva=$rs_iva[0]['percentuale'];
		$codice_natura_fe=$rs_iva[0]['codice_natura_fe'];
		
		
		if ( $id_iva == "") {
			$id_iva="0.00";	
			$codice_natura_fe="N2";	
			$test_iva_vuota="SI";			
        }
		
		if ( $rs_righe[$i]['idiva'] == '0') {
			$id_iva="0.00";	
			$codice_natura_fe="N2";	
			$test_iva_vuota="SI";			
        }
		
		$des_tmp=$rs_righe[$i]['descrizione'];
		
		
		
		$des_tmp = html_entity_decode($des_tmp);
		
		$des_tmp = html_entity_decode($des_tmp, ENT_QUOTES);
		
		
		$des_tmp=str_replace("&#039;","",$des_tmp);
	//	$des_tmp=str_replace("&deg;","",$des_tmp);
	//	$des_tmp=str_replace("&rsquo;","",$des_tmp);
			

		$_beniservizi = '		  <DettaglioLinee>' . "\n";	
		$_beniservizi .= '			<NumeroLinea>' .$numero_linea. '</NumeroLinea>' . "\n";	
		$_beniservizi .= '			<Descrizione>' .$des_tmp. '</Descrizione>' . "\n";	
		$_beniservizi .= '			<Quantita>' .$rs_righe[$i]['qta']. '</Quantita>' . "\n";	
		$_beniservizi .= '			<PrezzoUnitario>' .$prezzo_unitario . '</PrezzoUnitario>' . "\n";			
		if ($rs_righe[$i]['tipo_sconto'] == '2' ){	
			if ($rs_righe[$i]['sconto_primo'] != '0.0000' ){		          
				$_beniservizi .= '              <ScontoMaggiorazione>' . "\n"; 
				$_beniservizi .= '                  <Tipo>SC</Tipo>' . "\n"; 
				$_beniservizi .= '                  <Percentuale>' . number_format($rs_righe[$i]['sconto_primo'],2,".","") . '</Percentuale>' . "\n"; 
				$_beniservizi .= '              </ScontoMaggiorazione>' . "\n"; 
			}

			if ($rs_righe[$i]['sconto_extra'] != '0.0000'){
				$_beniservizi .= '              <ScontoMaggiorazione>' . "\n"; 
				$_beniservizi .= '                  <Tipo>SC</Tipo>' . "\n"; 
				$_beniservizi .= '                  <Percentuale>' . number_format($rs_righe[$i]['sconto_extra'] ,2,".",""). '</Percentuale>' . "\n"; 
				$_beniservizi .= '              </ScontoMaggiorazione>' . "\n"; 
			}

			if ($rs_righe[$i]['sconto_extra1'] != '0.0000'){		           
				$_beniservizi .= '              <ScontoMaggiorazione>' . "\n"; 
				$_beniservizi .= '                  <Tipo>SC</Tipo>' . "\n"; 
				$_beniservizi .= '                  <Percentuale>' . number_format($rs_righe[$i]['sconto_extra1'],2,".","") . '</Percentuale>' . "\n"; 
				$_beniservizi .= '              </ScontoMaggiorazione>' . "\n"; 
			 }
		}
		else
		{
			if ($rs_righe[$i]['sconto'] != '0.0000' ){		          
				$_beniservizi .= '              <ScontoMaggiorazione>' . "\n"; 
				$_beniservizi .= '                  <Tipo>SC</Tipo>' . "\n"; 
				$_beniservizi .= '                  <Importo>' . number_format(($rs_righe[$i]['sconto'] / $rs_righe[$i]['qta'] ),2,".","") . '</Importo>' . "\n"; 
				$_beniservizi .= '              </ScontoMaggiorazione>' . "\n"; 
			}
		}
		
	
		$_beniservizi .= '			<PrezzoTotale>' .$prezzo_totale. '</PrezzoTotale>' . "\n";	
		
		if ( $id_iva =="" )	$id_iva = $id_iva_pred;
		
		$_beniservizi .= '			<AliquotaIVA>' .$id_iva. '</AliquotaIVA>' . "\n";	
		
		if ( $scrivi_ritenuta =="SI" )	$_beniservizi .= '			<Ritenuta>SI</Ritenuta>' . "\n";		
		
		
		if ( $id_iva == "0.00") {
			
			if ( $codice_natura_fe == "") $codice_natura_fe="N3";
										$_beniservizi .= '			<Natura>' .$codice_natura_fe . '</Natura>' . "\n";		
        }

		
	
		
		$_beniservizi .= '		  </DettaglioLinee>' . "\n";
		fwrite($myfile, $_beniservizi);
	
	}	
	
	// riepilogo suddiviso per iva	
		$query="SELECT sum(subtotale - sconto) as tot , sum(iva) as totiva  ,idiva  FROM `co_righe_documenti` WHERE iddocumento='".$iddocumento."' and riga_varia='0' and idiva<>'0' group by idiva";	
		$rs_riepiologo = $dbo->fetchArray($query);

		for( $i=0; $i<sizeof($rs_riepiologo); $i++ ){	
			$query="select percentuale , codice_natura_fe from co_iva where id='".$rs_riepiologo[$i]['idiva']."'";
			$rs_iva = $dbo->fetchArray($query);
			$id_iva=$rs_iva[0]['percentuale'];	
			$prezzo_unitario = number_format($rs_riepiologo[$i]['tot'],2,".","");
			$imposta = number_format($rs_riepiologo[$i]['totiva'],2,".","");
			$_beniservizi = '		  <DatiRiepilogo>' . "\n";	
			$_beniservizi .= '			<AliquotaIVA>' .$id_iva. '</AliquotaIVA>' . "\n";
			if ( $id_iva == "0.00") {
				$codice_natura_fe=$rs_iva[0]['codice_natura_fe'];				
				if ( $rs_iva[0]['codice_natura_fe'] == "") $codice_natura_fe="N3";
				$_beniservizi .= '			<Natura>' .$codice_natura_fe. '</Natura>' . "\n";		
			}
			$_beniservizi .= '			<ImponibileImporto>' .$prezzo_unitario. '</ImponibileImporto>' . "\n";	
			$_beniservizi .= '			<Imposta>' .$imposta. '</Imposta>' . "\n";	
			
		//	$_beniservizi .= '			<EsigibilitaIVA>I</EsigibilitaIVA>' . "\n";	
			$_beniservizi .= '			<EsigibilitaIVA>' .$esigibilita_iva. '</EsigibilitaIVA>' . "\n";	
			$_beniservizi .= '		  </DatiRiepilogo>' . "\n";	
				fwrite($myfile, $_beniservizi);
		
		}
		
		if ( $test_iva_vuota == "SI") {			
			$_beniservizi1 = '			<DatiRiepilogo>' . "\n";	
			$_beniservizi1 .= '				<AliquotaIVA>00.00</AliquotaIVA>' . "\n";	
			$_beniservizi1 .= '				<Natura>N2</Natura>' . "\n";	
			$_beniservizi1 .= '				<ImponibileImporto>00.00</ImponibileImporto>' . "\n";	
			$_beniservizi1 .= '				<Imposta>00.00</Imposta>' . "\n";	
		//	$_beniservizi1 .= '				<EsigibilitaIVA>I</EsigibilitaIVA>' . "\n";
			$_beniservizi .= '			<EsigibilitaIVA>' .$esigibilita_iva. '</EsigibilitaIVA>' . "\n";				
			$_beniservizi1 .= '			</DatiRiepilogo>' . "\n";	
			fwrite($myfile, $_beniservizi1);
        }
		
		
	
	$_beniservizi = '		</DatiBeniServizi>' . "\n";	
	fwrite($myfile, $_beniservizi);
	

// SEZIONE 2.4
	   
	$query="SELECT * FROM `co_scadenziario` WHERE iddocumento='".$iddocumento."'";	
	$rs_scadenze = $dbo->fetchArray($query);
	if ( $rs_testata[0]['el_modalitapagamento'] <> '' ){	
		$_datipagamento = '		<DatiPagamento>' . "\n";	
			$query="SELECT prc FROM `co_pagamenti` WHERE id='".$rs_testata[0]['idpagamento']."'";	
			$rs_pagamento = $dbo->fetchArray($query);
			if ( $rs_pagamento[0]['prc'] == '100' ){	
				$_datipagamento .= '		  <CondizioniPagamento>TP02</CondizioniPagamento>' . "\n";	
			}
			else
			{
				$_datipagamento .= '		  <CondizioniPagamento>TP01</CondizioniPagamento>' . "\n";	
			}		
			for( $i=0; $i<sizeof($rs_scadenze); $i++ ){	
				$doc_pagamento	= substr($rs_scadenze[$i]['scadenza'],0,10);		
				$prezzo_rata = number_format($rs_scadenze[$i]['da_pagare'],2,".","");
				$_datipagamento .= '		  <DettaglioPagamento>' . "\n";	
				$_datipagamento .= '			<ModalitaPagamento>' .$rs_testata[0]['el_modalitapagamento']. '</ModalitaPagamento>' . "\n";	
				$_datipagamento .= '			<DataScadenzaPagamento>' .$doc_pagamento. '</DataScadenzaPagamento>' . "\n";	
				$_datipagamento .= '			<ImportoPagamento>' .$prezzo_rata. '</ImportoPagamento>' . "\n";	

				if( sizeof($rs_banca) > 0 ) 	{				
					$_datipagamento .= '			<IstitutoFinanziario>' .$rs_banca[0]['nome']. '</IstitutoFinanziario>' . "\n";	
					$_datipagamento .= '			<IBAN>' .$rs_banca[0]['iban']. '</IBAN>' . "\n";	
					$_datipagamento .= '			<ABI>' .$rs_banca[0]['abi']. '</ABI>' . "\n";	
					$_datipagamento .= '			<CAB>' .$rs_banca[0]['cab']. '</CAB>' . "\n";	
					$_datipagamento .= '			<BIC>' .$rs_banca[0]['bic']. '</BIC>' . "\n";	
				}
				
				$_datipagamento .= '		  </DettaglioPagamento>' . "\n";
			}	
		
		$_datipagamento .= '		</DatiPagamento>' . "\n";	
	}
	
	fwrite($myfile, $_datipagamento);
	
	
// SEZIONE 2.5

// Creo l'allegato se allegato
	$el_allegato=get_var_tipodoc2($iddocumento,'el_allegato');	
	if ( $el_allegato == '1' ){		
	
		$n_pages = 1;
		$orientation = 'P';
		$body_table_params ="style='width:210mm;'";
		$font_size = "10pt";

		$ptype = "documenti_pa";
			
		if( @file_exists($docroot."/templates/".$ptype."/custom/pdfgen.".$ptype.".php") ){
			include( $docroot."/templates/".$ptype."/custom/pdfgen.".$ptype.".php");
		}	
		else{
			include( $docroot."/templates/".$ptype."/pdfgen.".$ptype.".php");
		}	
		include( $docroot."/templates/pdfgen_variables.php" );	
		//	Completamento e output del report
		$report = str_replace( '$body$', $body, $report );
		$report = str_replace( '$footer$', $footer, $report );
		$report = str_replace( '$body_table_params$', $body_table_params, $report );
		$report = str_replace( '$font_size$', $font_size, $report );
		$report = str_replace( '$docroot$', $docroot, $report );
		//html
		$formato = get_var( 'Formato report' );
		( $formato == 'html' ) ? $html=true : $html=false;

		
		
		require_once( $docroot."/lib/spipu/html2pdf/html2pdf.class.php" );
		require_once( $docroot."/lib/spipu/html2pdf/_tcpdf_5.0.002/barcodes.php" );
		
		$file_dir = $docroot.'/files/pa/'.$rs_testata[0]['numero_documento'].'.pdf';
		
		try
		{
			$html2pdf = new HTML2PDF($orientation, 'A4', 'it', true, 'UTF-8');
			$html2pdf->writeHTML($report, $html);
			$html2pdf->Output( $file_dir , 'F');
		
		}
		catch(HTML2PDF_exception $e) {
			echo $e;
			exit;
		}	
		
		if( is_file($file_dir) ){
			$file_64=base64_encode(file_get_contents($file_dir));
			$_datiallegato = '		<Allegati>' . "\n";	
						$_datiallegato .= '			<NomeAttachment>' .$rs_testata[0]['numero_documento'].'.pdf'. '</NomeAttachment>' . "\n";	
						$_datiallegato .= '			<FormatoAttachment>PDF</FormatoAttachment>' . "\n";	
						$_datiallegato .= '			<Attachment>' .$file_64. '</Attachment>' . "\n";	
			$_datiallegato .= '		</Allegati>' . "\n";
			fwrite($myfile, $_datiallegato);
			unlink($file_dir);
		
		}
		

	// chiusura file
	}
	
	$dati_chiusura = '	  </FatturaElettronicaBody>' . "\n";	
	$dati_chiusura .= '</p:FatturaElettronica>	' . "\n";	

	
	
	
	fwrite($myfile, $dati_chiusura);
	

	
	fclose($myfile);
	
	
	
	
	return $file;
	

}

function secure_random_string($length = 32)
    {
        if (function_exists('openssl_random_pseudo_bytes')) {
            $bytes = openssl_random_pseudo_bytes($length * 2);

            if ($bytes === false) {
                throw new \LengthException('$length is not accurate, unable to generate random string');
            }

            return substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $length);
        }

        return random_string($length);
    }





	
?>