<?php
// modificado   04-01-2017 10:00 psg
// modificado   16-07-2019 15:40 mcc 
session_start();
if ($_SESSION['estado'] != "ON")
		{
		?>
		<script>
			parent.location.href = '../index.php';
		</script>
		<? 
		exit();
		}
$id_empresa = $_SESSION['ss_empresa'];
include('../../conex.php');




/************** 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);
		$rut_representante=mysql_result($res_empresa, 0, "rut_representante");
	  	$rut_representante = str_replace('.', '', $rut_representante);
		$clave_certificado_digital=mysql_result($res_empresa, 0, "clave_certificado_digital");
		$rut_empresa=mysql_result($res_empresa, 0, "rut_empresa");
	//echo $rut_empresa;
require '../Clases/Autentificacion.php';
require_once '../Clases/AceptaRechazaConsultaDteSii.php';

define("PK_PASS", $clave_certificado_digital); 
define("PK_RUTA",'./'.$rut_representante.'.pfx');
define("PEM_RUTA", "./crt.pem");
define("KEY_RUTA", "./server.key");
	 $estaAutentificacion = new Autentificacion();
    
    $estaAutentificacion->pkPass = PK_PASS;
    $estaAutentificacion->pkRuta = PK_RUTA;
    $estaAutentificacion->pemRuta = PEM_RUTA;
    $estaAutentificacion->keyRuta = KEY_RUTA;

    $estaAutentificacion->getToken(); 
    
	$token = $estaAutentificacion->token;
echo $token;
$txtfecha=$_POST["txtfecha"];
$dia = substr ($txtfecha, 0, 2);
$mes = substr ($txtfecha, 3, 2);
$mes2=$mes;
$aņo = substr ($txtfecha, 6, 4);
$ano2=$aņo;

$num_dcto=$_POST["txtndcto"];
$tipo_dcto=$_POST["lstdcto"];
  
$sqlfs="SELECT * FROM salida WHERE tipo_dcto=$tipo_dcto AND num_dcto=$num_dcto and empresa=$id_empresa";   
echo $sqlfs;
$resfs = mysql_query($sqlfs,$enlace);	
$cont=0;


$servicio="https://palena.sii.cl/DTEWS/services/QueryEstDteAv?wsdl"; //url del servicio
$opt = array('ssl' => array('verify_peer' => false, 'verify_peer_name' => false ,'allow_self_signed' => true));

$inicio_rut_empresa = substr ($rut_empresa, 0,1);
if($inicio_rut_empresa=='0'){
	$rut_empresa=substr($rut_empresa,1);// si inicia en 0 lo saca
}
$rut_empresa= str_replace('.', '', $rut_empresa);//saca puntos
$dvEmisor = substr ($rut_empresa, -1);    // devuelve DV
$rutEmisor=substr($rut_empresa,0,-2); //devuelve cuerpo rut
//echo $rutEmisor." dv: ".$dvEmisor;


while (mysql_fetch_object ($resfs)){				
$salida_id = mysql_result($resfs, $cont, "salida.id"); 
$archivo_xml = mysql_result($resfs, $cont, "archivo_xml"); 
$rut_cliente = mysql_result($resfs, $cont, "rut_cliente");
$inicio_rut_cliente = substr ($rut_cliente, 0,1);

if($inicio_rut_cliente=='0'){
	$rut_cliente=substr($rut_cliente,1);// si inicia en 0 lo saca
}
$rut_cliente= str_replace('.', '', $rut_cliente);//saca puntos
$dvReceptor = substr ($rut_cliente, -1);    // devuelve DV
$rutReceptor=substr($rut_cliente,0,-2); //devuelve cuerpo rut

if ($archivo_xml=='')
   {
   echo $rut_cliente;
   
     $nDocs =  '../DOC/FIRMADO/DOC_'.$tipo_dcto.'_'.$num_dcto.'_f.xml';
	 $xmlf = file_get_contents($nDocs);
	 $archivo_xml = base64_encode($xmlf); 
	 $up_dcto = "UPDATE salida SET archivo_xml='$archivo_xml' WHERE id=$salida_id";
     mysql_query($up_dcto,$enlace);
	 }
	 


$documento= base64_decode($archivo_xml);

$xml_venta=<<<XML
$documento
XML;
$xml = simplexml_load_string($xml_venta);
$firmaDte = $xml->Signature->SignatureValue;
$firmaDte = str_replace("\n", '', $firmaDte);

$tipoDoc = mysql_result($resfs, $cont, "tipo_dcto"); 
$folio = mysql_result($resfs, $cont, "num_dcto"); 
$fechaEmision = mysql_result($resfs, $cont, "fecha_emision"); 
$fechaEmision_new = date("d-m-Y", strtotime($fechaEmision));

$montoTotal = mysql_result($resfs, $cont, "total"); 
$montoTotal=number_format($montoTotal, 0, "", "");

echo $rutEmisor." ".$dvEmisor." ".$rutReceptor." ".$dvReceptor." ".$tipoDoc." ".$folio." ".$fechaEmision_new." ".$montoTotal."<br>";

$client = new SoapClient($servicio, $opt);						   
$resultado = $client->getEstDteAv($rutEmisor,$dvEmisor,$rutReceptor,$dvReceptor,$tipoDoc,$folio,$fechaEmision_new,$montoTotal,$firmaDte,$token);

$obtener_estado=get_string_between($resultado,"<ESTADO>","</ESTADO>");

$obtener_trackid=get_string_between($resultado,"<TRACKID>","</TRACKID>");

echo htmlentities($resultado);
if (!empty($resultado))
 {
  if ($obtener_estado!='')
   {
	$up_dcto = "UPDATE salida SET estado_sii='$obtener_estado' WHERE id=$salida_id";
	mysql_query($up_dcto,$enlace);	
	}
  if ($obtener_trackid!='')
   {
	$up_dcto = "UPDATE salida SET token='$obtener_trackid' WHERE id=$salida_id";
	mysql_query($up_dcto,$enlace);	
	}
 }


$cont+=1;
}

 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);
   }
?>   
<br>
<input name="button" type="button" onclick="cerrar();" value="Cerrar ventana" /> 	

<script>
function cerrar()
{
window.top.open('','_parent','');
window.top.close();
}
</script>