<?php
echo 'hola';
exit();
ini_set('error_reporting', "-1");
ini_set('error_reporting', E_ALL);

$doc_recibido = $_GET["documento"];

  
// $id_empresa = str_replace(".xml","",$doc_recibido);
 $id_empresa = 1; //substr ($id_empresa, -1);


require '../Clases/Firmar.php';

require '../Clases/Autentificacion.php';
require '../Clases/Empaquetar.php';

require './Clase_SoapSII.php';

require '../lib/tcpdf/tcpdf_barcodes_2d.php';
include '../lib/mpdf/mpdf.php';

date_default_timezone_set('America/Toronto');

require '../Clases/class.phpmailer.php';
include('../../conex.php'); 

if (!isset($_GET["documento"])){
  echo "<h3>No se ha enviado ninguna ruta.</h3>";  
}
else{
    $doc_recibido = $_GET["documento"];
	
/************** Datos Empresa ****************** seleccionar cual empresa  es el ingreso  en ssesion******/
	$sql_empresa = "SELECT * FROM empresa WHERE  id=$id_empresa;";
	
	$res_empresa = mysql_query($sql_empresa,$enlace);
	$row=0;
	
		$empresa_rut=mysql_result($res_empresa, $row, "rut_empresa");
		$empresa_rut = str_replace('.', '', $empresa_rut);
		$rut_representante=mysql_result($res_empresa, $row, "rut_representante");
	  	$rut_representante = str_replace('.', '', $rut_representante);
		$fecha_resolucion=mysql_result($res_empresa, $row, "fecha_resolucion");
		$numero_resolucion=mysql_result($res_empresa, $row, "numero_resolucion");
		
		$correo_dte=mysql_result($res_empresa, $row, "correo_dte");
		$clave_correo_dte=mysql_result($res_empresa, $row, "clave_correo_dte");
		
		$certificacion=mysql_result($res_empresa, $row, "certificacion");
		$fecha_certificacion=mysql_result($res_empresa, $row, "fecha_certificacion");
		$sitio_empresa=mysql_result($res_empresa, $row, "sitio_empresa");
        $ip_empresa=mysql_result($res_empresa, $row, "ip_empresa");
	     $clave_certificado_digital=mysql_result($res_empresa, $row, "clave_certificado_digital");
	   $correo_cifrado=mysql_result($res_empresa, $row, "correo_cifrado");
	   $correo_puerto=mysql_result($res_empresa, $row, "correo_puerto");
	   $correo_smtp=mysql_result($res_empresa, $row, "correo_smtp");
	   $nombre_empresa=mysql_result($res_empresa, $row, "nombre");		 
		
	
	if($certificacion=='SI') { $ambiente="CERTIFICACION"; $fecha_resolucion=$fecha_certificacion; $numero_resolucion=0;} else      {$ambiente="PRODUCCION";}
	
		
define("SLC_HAMBIENTE", $ambiente );

define("RUT_EMISOR", $empresa_rut );  
define("RUT_ENVIA", $rut_representante);
define("PK_RUTA",'./'.$rut_representante.'.pfx');

define("FECHA_RESOLUCION", $fecha_resolucion);
define("NUMERO_RESOLUCION", $numero_resolucion);

define("PK_PASS", $clave_certificado_digital);

define("PEM_RUTA", "./crt.pem");
define("KEY_RUTA", "./server.key");


    $arrDocRecibido = explode("|",$doc_recibido);

    foreach ($arrDocRecibido as $indiceDocs => $nDocs) 
	   {
        $documentos[$indiceDocs]["ruta"] = "../DOC/ORIGINAL/".$nDocs ;
        $documentos[$indiceDocs]["nombre"] = $nDocs ;
       }
    

    foreach ($documentos as $indice => $arrDocs) 
    {    
        $esteDocFrimar = new Firmar();
        $esteDocFrimar->dteFirmarRuta = $arrDocs["ruta"];
        $esteDocFrimar->dteFirmarNombre = $arrDocs["nombre"];
        $esteDocFrimar->pkRuta = PK_RUTA;
        $esteDocFrimar->pkPass = PK_PASS;
        $esteDocFrimar->Procesa();

        $documentos[$indice]["rutaFirmado"] = $esteDocFrimar->arrDteFirmadoRuta['archivo'];
        $documentos[$indice]["tipoDTE"] = $esteDocFrimar->tipoDTE;

        unset($esteDocFrimar);

    }
    
    $estaAutentificacion = new Autentificacion();
    
    $estaAutentificacion->pkPass = PK_PASS;
    $estaAutentificacion->pkRuta = PK_RUTA;
    $estaAutentificacion->pemRuta = PEM_RUTA;
    $estaAutentificacion->keyRuta = KEY_RUTA;

    $estaAutentificacion->getToken(); 
    
    $token = $estaAutentificacion->token;
 
    $estePaquete = new Empaquetar($documentos);
    $estePaquete->sRutEmisor=RUT_EMISOR;
    $estePaquete->sRutEnvia=RUT_ENVIA;
    $estePaquete->pkPass=PK_PASS;
    $estePaquete->pkRuta=PK_RUTA;
     $estePaquete->sFechaResolucion=FECHA_RESOLUCION;
    $estePaquete->sNumeroResolucion=NUMERO_RESOLUCION;
    $estePaquete->Empaqueta();

    $arrEnviar = $estePaquete->arrXmlEnviar;
//exit();   // no envia a SII
    $esteSoap = new Clase_SoapSII();

    $envio = $esteSoap->sendUploadDTE(array('rutEmisor' => RUT_EMISOR,'rutEnvia' => RUT_ENVIA,'archivo' => $arrEnviar['archivo'],'token' => $token));
    print_r($envio);


		//*******  saca datos de envio ****
	$trackid=get_string_between($envio,"<TRACKID>","</TRACKID>");
	  // echo ($trackid);
	$doc=get_string_between($envio,"<FILE>","</FILE>");
	   //echo (" ".$doc);
	$tipo_doc=get_string_between($doc,"DOC_","_");
      // echo (" ".$tipo_doc);
	$num_doc=get_string_between($doc,"DOC_".$tipo_doc."_","_".$id_empresa);
	  // echo (" ".$num_doc."  ");
	
	///************PDF ****************
	
	 $nDocs = str_replace(".xml",'_f.xml',$nDocs);
	 
	$rutadoc = '../DOC/ORIGINAL/';
    $rutafrm = '../DOC/FIRMADO/';
    $rutapdf = '../DOC/PDF/';
	$xmlf = file_get_contents($rutafrm.$nDocs);
    $archivo_xml = base64_encode($xmlf);
   
   	$up_dcto = "UPDATE salida SET token='$trackid', archivo_xml='$archivo_xml' WHERE tipo_dcto=$tipo_doc and num_dcto=$num_doc and empresa=$id_empresa";
	 mysql_query($up_dcto,$enlace);	
	
	
        $documentos[$indiceDocs]["ruta"] = "../DOC/FIRMADO/".$nDocs ;
        $documentos[$indiceDocs]["nombre"] = $nDocs ;
    
    
    $esLibro = FALSE ;

    foreach ($documentos as $indice => $arrDocs) 
    {    
        $esteDocFrimar = new Firmar();
        $esteDocFrimar->dteFirmarRuta = $arrDocs["ruta"];
        $esteDocFrimar->pkRuta = PK_RUTA;
        $esteDocFrimar->pkPass = PK_PASS;
        $esteDocFrimar->getXMLdteFirmar();
        $esteDocFrimar->getTipoDocumentoFirmar();
        
        if ($esteDocFrimar->dteFrimarTipo=="DTE") {
            $oDoc =  new DOMDocument('1.0', 'ISO-8859-1');

            $oDoc->loadXML( $esteDocFrimar->dteFirmarXML );
            $oDTEs=$oDoc->getElementsByTagName('DTE');

            $aDatos= $esteDocFrimar-> obtieneDatosDTEdesdeXML($oDTEs->item(0));

            $sCodTdo=$aDatos['Encabezado']['IdDoc']['TipoDTE'];
            
            $sRutReceptor = $aDatos['Encabezado']['Receptor']['RUTRecep'] ;

            $esteDocFrimar->tipoDTE = $sCodTdo;
            
            $documentos[$indice]["rutaFirmado"] = $documentos[$indiceDocs]["ruta"];
           // echo "<pre>".$esteDocFrimar->tipoDTE."</pre>";
            $documentos[$indice]["tipoDTE"] = $esteDocFrimar->tipoDTE;
           
        }
        else {
            $documentos[$indice]["rutaFirmado"] = $arrDocs["ruta"];
            $esLibro= TRUE ;
            $documentos[$indice]["tipoDTE"] = $esteDocFrimar->tipoLibro;
        }

        unset($esteDocFrimar);

    }


    $estePaquete = new Empaquetar($documentos);
    $estePaquete->sRutEmisor=RUT_EMISOR; 
    $estePaquete->sRutEnvia=RUT_ENVIA;
    $estePaquete->sRutSII=$sRutReceptor;
    $estePaquete->pkPass=PK_PASS;
    $estePaquete->pkRuta=PK_RUTA;
     $estePaquete->sFechaResolucion=FECHA_RESOLUCION;
    $estePaquete->sNumeroResolucion=NUMERO_RESOLUCION;
    
    $estePaquete->Empaqueta();
    
    $arrEnviar= $estePaquete->arrXmlEnviar;
 }
 exit();
/*****fin******/
function get_string_between($string, $start, $end)
    {
    $string = " ".$string;
     $ini = strpos($string,$start);
     if ($ini == 0) return "";
     $ini += strlen($start);     
     $len = strpos($string,$end,$ini) - $ini;
     return substr($string,$ini,$len);
   }

?>