<?php
		
class vrcexml1
{    
  var $idreturn;
  var $email;
	function vrcexml1($docu,$idnum)
	{

	require('../cfg/res.php');		
// echo "prueba";
		
if (mb_stristr('FC.NC.GR.RP',substr($docu,0,2)))
{		
		
		
$sql_empr='select * from empr0';
$res_empr=mysql_query($sql_empr,$link_vcrx);
$rucempr = mysql_result($res_empr,0,'empr_ruc');
	
$xambiente="1";	
if (mb_stristr('vare',substr($_SESSION['user_vcrx_empr'],0,4)))
{$xambiente="2";}	
	

$sql_tabla='select *from docu0 where docu_codigo="'.$docu.'"';
$res_tabla=mysql_query($sql_tabla,$link_vcrx);

$docu_tabla=mysql_result($res_tabla,0,'docu_tabla');
$docu_tabla=strtolower($docu_tabla);

$sql_empr='select *from empr1';
$res_empr=mysql_query($sql_empr,$link_vcrx);

$sql_clave1='update '.$docu_tabla.'1 set claveacc=concat(fecha+"","01","'.$rucempr.'","'.$xambiente.'",ptoe,numero,"12345678","1",right(numero,1))';
$sql_clave1.=' where docu like "'.$docu.'" and idnum1="'.$idnum.'"';		
// 	echo $sql_clave1;
$res_clave1=mysql_query($sql_clave1,$link_vcrx);

		
		

		if (mb_stristr('clie',substr($_SESSION['user_vcrx_tipo'],0,4)))
		{
			if (substr($docu,0,1)=='O')
			{$docu_tabla='clie';}
	
			if (substr($docu,0,1)=='F')
			{$docu_tabla='vtas';}
		}

		if (mb_stristr('prov',substr($_SESSION['user_vcrx_tipo'],0,4)))
		{
			if (substr($docu,0,1)=='O')
			{
			$docu_tabla='prov';
			}
	
			if (substr($docu,0,1)=='F')
			{
			$docu_tabla='comp';
			}
			if (substr($docu,0,1)=='R')
			{
			$docu_tabla='retp';
			}
		}
		
		$sql_tran1='select *from '.$docu_tabla.'11 where idnum1="'.$idnum.'"';
		if (mb_stristr('clie.prov',substr($_SESSION['user_vcrx_empr'],0,4)))
		{	$sql_tran1.='and enti like "'.$_SESSION['user_vcrx_empr'].'%"';	}

		$res_tran1=mysql_query($sql_tran1,$link_vcrx);


		//$sql_tran2='select *from '.$docu_tabla.'12 where idnum1="'.$idnum.'" order by item_codigov, item ';
		$sql_tran2='select *from '.$docu_tabla.'12 where idnum1="'.$idnum.'" order by item_nctlg desc, item_pctlg, item ';
		$res_tran2=mysql_query($sql_tran2,$link_vcrx);
		
		$sql_tran3='select * from '.$docu_tabla.'12 where idnum1="'.$idnum.'" and item like "%TRAN%"';
		$res_tran3=mysql_query($sql_tran3,$link_vcrx);
		$xenvioa=1;


		if (mb_stristr('gnya',$_SESSION['user_vcrx_empr']))
		{
		$xdrtr=mysql_result($res_tran2,0,'drtr');
		if (!empty($xdrtr))
		{
		$sql_drtr='select *from enti00 where enti_codigo="'.$xdrtr.'"';
		$res_drtr=mysql_query($sql_drtr,$link_vcrx);
		$xdrtr=mysql_result($res_drtr,0,'enti_descri');
		}
		}		

		if(mysql_num_rows($res_tran3)!=0)
		{
			$xtran=mysql_result($res_tran3,0,'puni');
			if($xtran==1)
			{
				$xenvioa=2;
				$entienvio=mysql_result($res_tran1,0,'enti_referidox');
				
			}
			else
			{
				
				$xenvioa=3;
				$entienvio=mysql_result($res_tran1,0,'enti');

			}
			
			if (empty($xentienvio))
			{
				$entienvio=mysql_result($res_tran1,0,'drtr');
			}
			
			$sql_envioa='select *from enti00 where enti_codigo="'.$entienvio.'"';
			$res_envioa=mysql_query($sql_envioa,$link_vcrx);
			
                       
                        if(mysql_num_rows($res_envioa)!=0)
			{
				$envio_descri=mysql_result($res_envioa,0,'enti_descri');
				$envio_ciudad=mysql_result($res_envioa,0,'prvc_descri').' /'.mysql_result($res_envioa,0,'cdad_descri');
				$envio_direcc=trim(mysql_result($res_envioa,0,'enti_direccion')) .' /'.trim(mysql_result($res_envioa,0,'enti_calle1')) .' /'.trim(mysql_result($res_envioa,0,'enti_callen')) .' /'.trim(mysql_result($res_envioa,0,'enti_calle2')) .' /'.trim(mysql_result($res_envioa,0,'enti_calle3'));
				$envio_tlfn=mysql_result($res_envioa,0,'enti_telefono');
			}
			else
			{
				$envio_descri='-';
				$envio_ciudad='-';
				$envio_direcc='-';
				$envio_tlfn='-';
				
			}



		}
		
		$sql_enti='select *from enti00 where enti_codigo="'.mysql_result($res_tran1,0,'enti').'"';
		$res_enti=mysql_query($sql_enti,$link_vcrx);
		
		//echo $sql_enti;
		
		$sql_drtr='select *from drtr0 where left(enti_codigo,10) like "'.$_SESSION['user_vcrx_id'].'%"';
		$res_drtr=mysql_query($sql_drtr,$link_vcrx);
		$drtr=0;
	
		if (mb_stristr('gnya',substr($_SESSION['user_vcrx_empr'],0,4)))
		{if (mysql_num_rows($res_drtr)!=0)	{$drtr=1;}}


		$sql_drtr='select *from enti0 where enti_codigo="'.mysql_result($res_enti,0,'enti_referidox').'"';
		$res_drtr=mysql_query($sql_drtr,$link_vcrx);


		
		
// 		$xcelec='vtas.comp.guia.retc.retp.cont';
		$xcelec='vtas.guia.retp';
// echo $sql_tran1;
$namexml=mysql_result($res_tran1,0,'claveacc');
//$namexml='prueba123';
$xml1 = "../../_celec/".$namexml.".xml"  ;
//$xml1 = "../celec1/".$namexml.".xml"  ;
// $xml1 = "../_celec/".$namexml.".xml"  ;
$this->idreturn=$namexml.".xml"  ;
		
$xml=new DomDocument("1.0","UTF-8");

$xml->xmlStandalone = true;
$factura=$xml->createElement("factura");
$factura=$xml->appendChild($factura);

$factura->setAttribute("id","comprobante");
$factura->setAttribute("version", "1.0.0");

$infoTributaria=$xml->createElement("infoTributaria");
$infoTributaria=$factura->appendChild($infoTributaria);

$ambiente=$xml->createElement("ambiente", "2");
$ambiente=$infoTributaria->appendChild($ambiente);

$tipoEmision=$xml->createElement("tipoEmision", "1");
$tipoEmision=$infoTributaria->appendChild($tipoEmision);

$xrazsoc=	mysql_result($res_empr,0,'enti_razsoc');
$xrazsoc=str_replace('&','Y',$xrazsoc);
	
$xnomcom=	mysql_result($res_empr,0,'enti_nomcom');
$xnomcom=str_replace('&','Y',$xnomcom);
	
$razonSocial=$xml->createElement("razonSocial", $xrazsoc);
$razonSocial=$infoTributaria->appendChild($razonSocial);

//++++++++++++
$this->email=mysql_result($res_empr,0,'enti_email');
//+++++++++++++

$nombreComercial=$xml->createElement("nombreComercial", $xnomcom);
$nombreComercial=$infoTributaria->appendChild($nombreComercial);

$ruc=$xml->createElement("ruc", mysql_result($res_empr,0,'enti_codigo'));
$ruc=$infoTributaria->appendChild($ruc);

// CLAVE DE ACCESO
$claveAcceso=$xml->createElement("claveAcceso", mysql_result($res_tran1,0,'claveacc'));
$claveAcceso=$infoTributaria->appendChild($claveAcceso);
//
//$claveAcceso=$xml->createElement("claveAcceso", "0110201401091537937400120010010000009841234567812");
//$claveAcceso=$infoTributaria->appendChild($claveAcceso);


$codDoc=$xml->createElement("codDoc", mysql_result($res_tran1,0,'numero'));
$codDoc=$infoTributaria->appendChild($codDoc);

$estab=$xml->createElement("estab", "001");
$estab=$infoTributaria->appendChild($estab);

$ptoEmi=$xml->createElement("ptoEmi",  mysql_result($res_tran1,0,'ptoe'));
$ptoEmi=$infoTributaria->appendChild($ptoEmi);

$secuencial=$xml->createElement("secuencial", mysql_result($res_tran1,0,'numero'));
$secuencial=$infoTributaria->appendChild($secuencial);

$dirMatriz=$xml->createElement("dirMatriz", mysql_result($res_empr,0,'enti_calle1').' /'.mysql_result($res_empr,0,'enti_callen').' /'.mysql_result($res_empr,0,'enti_calle2'));
$dirMatriz=$infoTributaria->appendChild($dirMatriz);


//#########
$infoFactura=$xml->createElement("infoFactura");
$infoFactura=$factura->appendChild($infoFactura);

$fechaEmision=$xml->createElement("fechaEmision", mysql_result($res_tran1,0,'fechadmy'));
$fechaEmision=$infoFactura->appendChild($fechaEmision);

$dirEstablecimiento=$xml->createElement("dirEstablecimiento", mysql_result($res_empr,0,'enti_calle1').' /'.mysql_result($res_empr,0,'enti_callen').' /'.mysql_result($res_empr,0,'enti_calle2'));
$dirEstablecimiento=$infoFactura->appendChild($dirEstablecimiento);

$obligadoContabilidad=$xml->createElement("obligadoContabilidad", mysql_result($res_empr,0,'enti_pcont'));
$obligadoContabilidad=$infoFactura->appendChild($obligadoContabilidad);

$tipoIdentificacionComprador=$xml->createElement("tipoIdentificacionComprador", "04");
$tipoIdentificacionComprador=$infoFactura->appendChild($tipoIdentificacionComprador);

$xrazsoc=	mysql_result($res_enti,0,'enti_razsoc');
$xrazsoc=str_replace('&','Y',$xrazsoc);
	
$xnomcom=	mysql_result($res_enti,0,'enti_nomcom');
$xnomcom=str_replace('&','Y',$xnomcom);

$razonSocialComprador=$xml->createElement("razonSocialComprador", $xrazsoc);
$razonSocialComprador=$infoFactura->appendChild($razonSocialComprador);

$identificacionComprador=$xml->createElement("identificacionComprador",mysql_result($res_enti,0,'enti_codigo'));
$identificacionComprador=$infoFactura->appendChild($identificacionComprador);

$totalSinImpuestos=$xml->createElement("totalSinImpuestos", number_format(mysql_result($res_tran1,0,'total'),2));
$totalSinImpuestos=$infoFactura->appendChild($totalSinImpuestos);

$totalDescuento=$xml->createElement("totalDescuento", number_format(mysql_result($res_tran1,0,'tdcto'),2));
$totalDescuento=$infoFactura->appendChild($totalDescuento);
//***
$totalConImpuestos=$xml->createElement("totalConImpuestos");
$totalConImpuestos=$infoFactura->appendChild($totalConImpuestos);

$totalImpuesto=$xml->createElement("totalImpuesto");
$totalImpuesto=$totalConImpuestos->appendChild($totalImpuesto);

$codigo=$xml->createElement("codigo","2");
$codigo=$totalImpuesto->appendChild($codigo);

$codigoPorcentaje=$xml->createElement("codigoPorcentaje","2");
$codigoPorcentaje=$totalImpuesto->appendChild($codigoPorcentaje);

$baseImponible=$xml->createElement("baseImponible",number_format(mysql_result($res_tran1,0,'tsubtiva'),2));
$baseImponible=$totalImpuesto->appendChild($baseImponible);

$valor=$xml->createElement("valor",number_format(mysql_result($res_tran1,0,'tiva'),2));
$valor=$totalImpuesto->appendChild($valor);

//***


$propina=$xml->createElement("propina", "0.00");
$propina=$infoFactura->appendChild($propina);

$importeTotal=$xml->createElement("importeTotal", number_format(mysql_result($res_tran1,0,'tsubt'),2));
$importeTotal=$infoFactura->appendChild($importeTotal);

$moneda=$xml->createElement("moneda", "DOLAR");
$moneda=$infoFactura->appendChild($moneda);

$detalles=$xml->createElement("detalles");
$detalles=$factura->appendChild($detalles);

//+++++++++++
$res_tran2=mysql_query($sql_tran2,$link_vcrx);
while($r_tran2=mysql_fetch_assoc($res_tran2))
{
	 $detalle=$xml->createElement("detalle");
	$detalle=$detalles->appendChild($detalle);

	$codigoPrincipal=$xml->createElement("codigoPrincipal",$r_tran2['item_codigov']);
	$codigoPrincipal=$detalle->appendChild($codigoPrincipal);

	$codigoAuxiliar=$xml->createElement("codigoAuxiliar",$r_tran2['item_codigov']);
	$codigoAuxiliar=$detalle->appendChild($codigoAuxiliar);

	$descripcion=$xml->createElement("descripcion",$r_tran2['item_descri']);
	$descripcion=$detalle->appendChild($descripcion);

	$cantidad=$xml->createElement("cantidad",$r_tran2['cant']);
	$cantidad=$detalle->appendChild($cantidad);

	$precioUnitario=$xml->createElement("precioUnitario",number_format($r_tran2['puni'],2));
	$precioUnitario=$detalle->appendChild($precioUnitario);

	if(mysql_result($res_tran1,0,'tdcto')>0)
	{
		$descuento=$xml->createElement("descuento",number_format($r_tran2['tdcto'],2));
		$descuento=$detalle->appendChild($descuento);

	}
	else
	{
		$descuento=$xml->createElement("descuento","0.00");
		$descuento=$detalle->appendChild($descuento);

	}

	$precioTotalSinImpuesto=$xml->createElement("precioTotalSinImpuesto",number_format($r_tran2['tsubt'],2));
	$precioTotalSinImpuesto=$detalle->appendChild($precioTotalSinImpuesto);


	$impuestos=$xml->createElement("impuestos");
	$impuestos=$detalle->appendChild($impuestos);

	$impuesto=$xml->createElement("impuesto");
	$impuesto=$impuestos->appendChild($impuesto);


	$codigo=$xml->createElement("codigo","2");
	$codigo=$impuesto->appendChild($codigo);
			
	$codigoPorcentaje=$xml->createElement("codigoPorcentaje","2");
	$codigoPorcentaje=$impuesto->appendChild($codigoPorcentaje);
				
	$tarifa=$xml->createElement("tarifa","12.00");
	$tarifa=$impuesto->appendChild($tarifa);
				
	$baseImponible=$xml->createElement("baseImponible",number_format($r_tran2['tsubt'],2));
	$baseImponible=$impuesto->appendChild($baseImponible);
					
	$valor=$xml->createElement("valor",number_format($r_tran2['tiva'],2));
	$valor=$impuesto->appendChild($valor);

}
//+++++++++++

$infoAdicional=$xml->createElement("infoAdicional");
$infoAdicional=$factura->appendChild($infoAdicional);

$campoAdicional=$xml->createElement("campoAdicional","ALBORADA 3RA ETAPA");
$campoAdicional=$infoAdicional->appendChild($campoAdicional);
$campoAdicional->setAttribute('nombre', 'Direccion');

$campoAdicional=$xml->createElement("campoAdicional","000000");
$campoAdicional=$infoAdicional->appendChild($campoAdicional);
$campoAdicional->setAttribute('nombre', 'Telefono');

$campoAdicional=$xml->createElement("campoAdicional","VICORE@HOTMAIL.COM");
$campoAdicional=$infoAdicional->appendChild($campoAdicional);
$campoAdicional->setAttribute('nombre', 'Email');

$campoAdicional=$xml->createElement("campoAdicional","PRUEBA DE SISTEMAS");
$campoAdicional=$infoAdicional->appendChild($campoAdicional);
$campoAdicional->setAttribute('nombre', 'Concepto');

//#########
$xml->formatOut=true;
 
$strings_xml=$xml->saveXML();

if($xml->save($xml1))
{
 //echo "Termino de crear el xml.".$namexml.'#####';
//  echo "Termino de crear el xml.";

//firmar
$xml2=str_replace('.xml','.signed',$xml1).'.xml';

$xfirma = 'http://vcrxol.com/_cer/vicore7.p7b';
  
//openssl_pkcs7_sign("msg.txt","signed.txt",     "signing_cert.pem",array("private_key.pem",     "password"),array());

// if(openssl_pkcs7($xml1,$xml2,$xfirma)){}

  
//try 
if (1==0)
	{
	// Conexion al web service
	//$client = new SoapClient("https://celcer.sri.gob.ec/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl", array('trace' => TRUE,'connection_timeout'=>120));
	
 	//$varXml = new SoapVar($xml1,XSD_ANYXML,null,null,null);
	
 
	// Llamamos a la función que recibe como parametro el XML
	// el resultado lo asignamos a la variable $result.
	$result = $client->validarComprobante($varXml);
	
	echo '*'.$result.'*';
	
	} 
//	catch (Exception $e) {
	    // Codigo
//	}  
  
  
  
}
else
{
  echo "No pudimos guardar el xml.";
}


}
}
}

?>