<?php

// 	echo msql_error($link_vcrx)<?php
// CODIGOS DE CLAVE DE ACCESOS
// secuencial
// 12345678
// 13579246
// 00000000
// 00000001
// 00000002
// ruc(1,8)
// ruc(1,8)
// ddmmaaaa  CNT
// numero(2,9)  EL ROSADO /CNT

// CELEC
{

  
function reset_ce($docu,$idnum)
{
//      return;
  if(!mb_stristr('FC.NC.RP.GR',substr($docu,0,2)) and !mb_stristr('FP03.FP11',substr($docu,0,4))){return;}
  
    
	include('../_cfg/config.php');
	include('php_session.php');

	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
	$tabla=r_fiel('docu',$docu,'tabla');
  
//   $sql_cele='select * from '.$tabla.'1 where idnum1="'.$idnum.'"';
//   $res_cele=msql_query($res_cele,$link_vcrx);
  
//   $autorfec=msql_result($res_cele,0,'autorfec');
//   if(empty($autorfec))
  {
       
    $sql_reset ='update tran1,clac0 set ';
    $sql_reset.='claveacc=null, ';
    $sql_reset.='clac_xml1=null, clac_xml2=null, ';
    $sql_reset.='firmafec=null, recepfec=null, ';
//     $sql_reset.='recepmsj=null ';
    $sql_reset.='where fecha>="'.$fecha1.'"';
    $sql_reset.='and claveacc=clac_codigo and (autornum="" or autornum is null)';
       
    $sql_updt=str_replace('tran1','vtas1',$sql_updt);
    $res_updt=msql_query($sql_updt,$link_vcrx);
    $sql_updt=str_replace('tran1','comp1',$sql_updt);
    $res_updt=msql_query($sql_updt,$link_vcrx);
    $sql_updt=str_replace('tran1','retp1',$sql_updt);
    $res_updt=msql_query($sql_updt,$link_vcrx);
    $sql_updt=str_replace('tran1','guia1',$sql_updt);
    $res_updt=msql_query($sql_updt,$link_vcrx);
  }
    
  gen_claveacc($docu,$idnum);  
}
  
  
function full_ce($docu,$idnum)
{
	$claveacc=gen_claveacc($docu,$idnum);
	$tabla=r_fiel('docu',$docu,'tabla');
	if(val_clac($claveacc))
	{
		$autorfec=r_fiel($tabla,$idnum,'autorfec');
		$firmafec=r_fiel($tabla,$idnum,'firmafec');
		$recepmsj=r_fiel($tabla,$idnum,'recepmsj');
		$xml1=r_fiel($clac0,$claveacc,'xml1');
		if($autorfec=='')
		{
			{
				if($firmafec=='')
				{
					if($xml1==''){gen_cexml($claveacc);}
				}
				ws_recep($claveacc);
			}
			ws_autor($claveacc);
		}
	}
}
	
function updt_itemce($docu,$idnum)
{
  if($docu!='FP10'){return;}
	include('../_cfg/config.php');
	include('php_session.php');

  $tabla='comp';
  $valitemce=0;
  $emisores='***';
	if(mb_stristr('vare.demo.nmkt.cele',$cfg_empr))
  {
    $emisores.='1790016919.'; //supermaxi
    $emisores.='0990017514.'; // tia
    $emisores.='0990004196.'; // comisariato
//     $emisores.='0190072002.'; // gerardo ortiz hipercoral
  }
  
	if(mb_stristr('tgck',$cfg_empr))
  {
    $emisores.='0990658498.'; //inverneg
    $emisores.='0991466177.'; // filtrocorp
    $emisores.='0992536403.'; // bombastic
    $emisores.='0990270236.'; // vepamil
  }
	
	$sql_comp='select * from comp1 left join comp2 on idnum1=idnum2';
	$sql_comp.=' where idnum1='.$idnum;
	$res_comp=msql_query($sql_comp,$link_vcrx);

	$claveacc=@msql_result($res_comp,0,'claveacc');
// 	upl_cexml($claveacc,'1');
// 	echo '*/*/*/'.$emisores;
// 	echo '*/*/*/'.$sql_comp;
	$res_comp=msql_query($sql_comp,$link_vcrx);
	while($aso_comp=@msql_fetch_assoc($res_comp))
	{
		$emisor=substr($aso_comp['enti'],0,10);
		$fecha=$aso_comp['fecha'];
		$itemce=$aso_comp['itemce'];
		$uxpre=$aso_comp['uxpre'];
		$facon=$aso_comp['facon'];
		$itemce1=$aso_comp['itemce'];
		$itemce2=$aso_comp['itemce2'];
		$xiddet=$aso_comp['iddet'];
		//SUPERMAXI - GRAN AKI / TIA / COMISARIATO  
		if(mb_stristr($emisores,substr($emisor,0,10)))
		{
			$xnewean1='';
			$xnewean2='';
			
			if(strlen($itemce1)==13){$xnewean1=$itemce1;}
			if(strlen($itemce2)==13){$xnewean2=$itemce2;}
			if(strlen($itemce1)==12){$xnewean1=$itemce1;$xnewean1.=val_ean($xnewean1);}
			if(strlen($itemce2)==12){$xnewean2=$itemce2;$xnewean2.=val_ean($xnewean2);}
			
			$ean1=val_ean($xnewean1,true);
			$ean2=val_ean($xnewean2,true);

			if($ean1)
			{
				$sql_updt='update comp2 set item="'.$xnewean1.'" where idnum2="'.$aso_comp['idnum1'].'" and iddet="'.$aso_comp['iddet'].'"';
				$res_updt=msql_query($sql_updt,$link_vcrx);

				$sql_updt='update item0 set item_descri="'.$aso_comp['detalle'].'" where trim(item_codigo)="'.$xnewean1.'"';
				$res_updt=msql_query($sql_updt,$link_vcrx);

        if(mb_stristr('tgck',$cfg_empr))
        {
          $sql_updt='update item0 set item_descri="'.$aso_comp['itemce'].' /'.$aso_comp['detalle'].'" where trim(item_codigo)="'.$xnewean1.'"';
          $res_updt=msql_query($sql_updt,$link_vcrx);
        }
        
			}	

			if($ean2)
			{
// 				echo 'HERE 222';
				$sql_updt='update comp2 set item="'.$xnewean2.'" where idnum2="'.$aso_comp['idnum1'].'" and iddet="'.$aso_comp['iddet'].'"';
				$res_updt=msql_query($sql_updt,$link_vcrx);

				$sql_updt='update item0 set item_descri="'.$aso_comp['detalle'].'" where trim(item_codigo)="'.$xnewean2.'"';
				$res_updt=msql_query($sql_updt,$link_vcrx);
        
        if(mb_stristr('tgck',$cfg_empr))
        {
          $sql_updt='update item0 set item_descri="'.$aso_comp['itemce'].' /'.$aso_comp['detalle'].'" where trim(item_codigo)="'.$xnewean2.'"';
          $res_updt=msql_query($sql_updt,$link_vcrx);
        }
			}	

			if(!$ean1 and !$ean2)
			{
// 				$sql_updt='update comp2 set item="9999999999" where idnum2="'.$aso_comp['idnum1'].'" and iddet="'.$aso_comp['iddet'].'"';
// 				$res_updt=msql_query($sql_updt,$link_vcrx);
			}

      
      
		}

    
    $litem=get_litem($emisor,$itemce,$itemce2,$fecha);
    
// echo '*/*/*/'.$litem;
      if(!empty($litem) and !empty($itemce))
      {
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='item="'.$litem.'",';
					$sql_deta.='detalle=detalle ';
					$sql_deta.=' where idnum2="'.$idnum.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and itemce="'.$itemce.'"';
					$sql_deta.=' and itemce!="" and itemce is not null ';
					$sql_deta.=' and (item="" or item is null or item like "9999%")';
					$res_deta=msql_query($sql_deta,$link_vcrx);
        
          $luxpre=get_luxpre($itemce,$fecha);
          if(!empty($luxpre))
          {
            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='uxpre="'.$luxpre.'",';
            $sql_deta.='detalle=detalle ';
            $sql_deta.=' where idnum2="'.$idnum.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $sql_deta.=' and itemce="'.$itemce.'"';
            $sql_deta.=' and itemce!="" and itemce is not null ';
            $res_deta=msql_query($sql_deta,$link_vcrx);
          }

          $lfacon=get_lfacon($itemce,$fecha);
          if(!empty($lfacon))
          {
            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='facon="'.$lfacon.'",';
            $sql_deta.='detalle=detalle ';
            $sql_deta.=' where idnum2="'.$idnum.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $sql_deta.=' and itemce="'.$itemce.'"';
            $sql_deta.=' and itemce!="" and itemce is not null ';
            $res_deta=msql_query($sql_deta,$link_vcrx);
          }

        
				}
      
    
    
	}
	
}
	
function val_clac($clave_acceso)
{
	include('../_cfg/config.php');
// 	include('php_gene1.php');

  
  if(!ctype_digit($clave_acceso)){return false;}
  
	$ccheck=true;
	$err='';

  $clave_acceso=trim($clave_acceso);
  $clave_acceso=substr($clave_acceso,0,49);
	$anio2=date("Y", time());
	$anioact=date("Y");
	$cdia=substr($clave_acceso,0,2);
	$cmes=substr($clave_acceso,2,2);
	$canio=substr($clave_acceso,4,4);
	$cfecha=$canio.'-'.$cmes.'-'.$cdia;
	$ctipo=substr($clave_acceso,8,2);
	$cruc=substr($clave_acceso,10,13);
	$cptoe=substr($clave_acceso,24,6);
	$cnumero=substr($clave_acceso,30,9);
	$cambi=substr($clave_acceso,23,1);

  $emisores='***';
  
  if(mb_stristr('demo.cele',$cfg_empr))
  {
    $emisores.='1790016919.'; //supermaxi
    $emisores.='0990017514.'; // tia
    $emisores.='0990004196.'; // comisariato
//     $emisores.='0190072002.'; // gerardo ortiz hipercoral
    
    $emisores.='1790710319.'; //fybeca
    $emisores.='0992696036.'; //  cofarmalsa
    $emisores.='0992870095.'; // comprimfarm;
    $emisores.='0990858322.'; //difare
    $emisores.='1791715772.'; // econofarm
    $emisores.='0992563168.'; // divifarm
    $emisores.='1791984722.'; //farmaenlace
    $emisores.='0992495685.'; // megafarmacias
//     if(!mb_stristr($emisores,substr($cruc,0,10))){$ccheck=false;$err.='*** EMISOR '; }
  }
  
  
	if(strlen($clave_acceso)!=49){return false;}
	if(!mb_stristr('0123',substr($clave_acceso,0,1))){return false;}
	
	if($cdia<1 or $cdia>date('t',strtotime($canio.$cmes.'01'))){$ccheck=false;$err.='*DIA'; }
	if($cmes<1 or $cmes>12){$ccheck=false;$err.='*MES'; }
	if($canio<2014 or $canio>$anioact){$ccheck=false;$err.='*AÑO'; }
	if(val_ruced($cruc)!=0){$ccheck=false;$err.='*RUC';}
	//ambiente
	if($cambi!='1' and $cambi!='2'){$ccheck=false;$err.='*AMBIENTE';}
	//emision
	if(substr($clave_acceso,47,1)!='1' and substr($clave_acceso,47,1)!='2'){$ccheck=false;$err.='*EMISION';}
	if(!val_mod11($clave_acceso,true)){$ccheck=false;$err.='*VERIFICADOR';}

  if($ccheck)
	{
		$cdescri =$canio.'-'.$cmes.'-'.$cdia;
		$cdescri.=' /'.$cruc;
		$cdescri.=' /'.$ctipo;
		$cdescri.=' /'.$cptoe.'-'.$cnumero;
		$sql_clac ='insert into clac0(clac_codigo,clac_descri,clac_tipo,clac_fecha,clac_enti,clac_status,clac_idate)';
		$sql_clac.=' value("'.$clave_acceso.'","'.$cdescri.'","'.$ctipo.'","'.substr($cfecha,0,10).'","'.$cruc.'","-",now())';
		$res_clac=msql_query($sql_clac,$link_vcrx);
// 		echo '<br>'.$clave_acceso.' ==>> OK '.$sql_clac.msql_error($link_vcrx);
	}
	else {echo '<br>CA :'.$clave_acceso.' ==>> ERROR : '.$err.'';}

	return $ccheck;	
}

function val_xml1($clave_acceso)
{
  include('../_cfg/config.php');
  
  if(substr($clave_acceso,8,2)=='06'){return 1;}
  
  $xml_ok=0;
  
  $tabla='vtas';
  if(substr($clave_acceso,8,2)=='03'){$tabla='comp';}
//   if(substr($clave_acceso,8,2)=='06'){$tabla='guia';}
 
     
  $sql_docu='select sum(total) as total, count(iddet) as deta from '.$tabla.'12 where claveacc="'.$clave_acceso.'"';
  $res_docu=msql_query($sql_docu,$link_vcrx);
  $docu_total=abs(@msql_result($res_docu,0,'total'));
  $docu_deta=@msql_result($res_docu,0,'deta');
  $docu_total=round($docu_total,2);

  $xml1=r_fiel('clac',$clave_acceso,'xml1');  

	$DOM1 = new DOMDocument('1.0', 'utf-8');
	$DOM1->loadXML($xml1);
	$xml1_total= $DOM1->getElementsByTagName('importeTotal')->item(0)->nodeValue;
  $contaiddet='detalle';
  if(substr($clave_acceso,8,2)=='04')
  {$xml1_total= $DOM1->getElementsByTagName('valorModificacion')->item(0)->nodeValue; }
  if(substr($clave_acceso,8,2)=='05')
  {$xml1_total= $DOM1->getElementsByTagName('valorTotal')->item(0)->nodeValue; $contaiddet='motivo';}

//   $xml2=$DOM1->getElementsByTagName('detalle')->item(0)->nodeValue;
  $xiddet=0;	
	$detallex= $DOM1->getElementsByTagName($contaiddet);
  foreach($detallex as $detalley)
  {
    $xiddet++;
    $dcto=0;
    $ice=0;
    $iva=0;
    $irbp=0;
    $itemce2='';

    foreach($detalley->childNodes as $detalle)
    {
      if($detalle->nodeName=='codigoPrincipal'){$itemce=$detalle->nodeValue;}
      if($detalle->nodeName=='codigoAuxiliar'){$itemce2=$detalle->nodeValue;}
      if($detalle->nodeName=='cantidad'){$cant=$detalle->nodeValue;}
      if($detalle->nodeName=='precioUnitario'){$puni=$detalle->nodeValue;}
      if($detalle->nodeName=='descuento'){$dcto=$detalle->nodeValue;}
      if($detalle->nodeName=='descripcion'){$xdetalle=$detalle->nodeValue;}
      if($detalle->nodeName=='impuestos')
      {
        foreach($detalle->childNodes as $impuestos)
        {
          if($impuestos->nodeName=='impuesto')
          {
            foreach($impuestos->childNodes as $impuesto)
            {
              if($impuesto->nodeName=='codigo')
              {$codigoimp=$impuesto->nodeValue;}
              if($impuesto->nodeName=='tarifa')
              {
                if($codigoimp=='2'){$iva=$impuesto->nodeValue;}
                if($codigoimp=='3'){$ice=$impuesto->nodeValue;}
              }
            }
          }
        }
       }
    }
  }

//   echo '<br>';
//   echo $docu_total;
//   echo '<br>';
//   echo $xml1_total;
//   echo '<br>';
//   echo $docu_deta;
//   echo '<br>';
//   echo $xiddet;
  if($docu_total==$xml1_total and $docu_deta==$xiddet)
  {$xml_ok=1;}
  else
  {
     $sql_cele="update clac0 set clac_xml1=null, clac_xml2=null where clac_codigo='".$clave_acceso."'";
     $res_cele=msql_query($sql_cele,$link_vcrx);
  }
  return $xml_ok;
}  

function gen_claveacc($docu,$idnum)
{
include('../_cfg/config.php');
include('php_session.php');

//    echo '<br>*/*/*/*/'.$docu.$idnum;
   
if($cfg_ruc=="9999999999999"){$cfg_ruc="0915379374001";}
     
     
     
$sql_docu='select * from docu0 where docu_codigo="'.$docu.'"';
$res_docu=@msql_query($sql_docu,$link_vcrx);
$tabla=@msql_result($res_docu,0,'docu_tabla');
$tice=@msql_result($res_docu,0,'docu_tice');
// $tabla=r_fiel('docu',$docu,'tabla');
  
if(!mb_stristr('vtas.retp.guia.clie.prov.role.caja.bcos.comp.prod',$tabla)){return '';}
if(!mb_stristr('FC.NC.RP.GR.PC.PF.PP.RE.IE.IC.CH.DC.FP.OP',substr($docu,0,2))){return '';}
if(mb_stristr('NC.NP',substr($docu,0,2))){val_ncre($docu,$idnum);}

// if($tabla=='comp' and $docu!='FP11'){return;}  
if($tabla=='comp' and !mb_stristr('FP11.FP03',$docu)){return;}  
  
if($tabla=='guia')
{
	$sql_guia='update '.$tabla.'1 set fecha1=fecha where (fecha1="" or fecha1 is null) and idnum1="'.$idnum.'"';
	$res_guia=msql_query($sql_guia,$link_vcrx);

	$sql_guia='update '.$tabla.'1 set fecha=fecha1 where idnum1="'.$idnum.'"';
	$res_guia=msql_query($sql_guia,$link_vcrx);
}

     
if(mb_stristr('vtas',$tabla))
{
  $fpagvali='01.15.16.17.18.19.20.21';
  
  $sql_cele ='update '.$tabla.'1 set fpag="19" ';
  $sql_cele.='where fpag in("10","11") ';
  $sql_cele.='and idnum1="'.$idnum.'"';
  $res_cele=msql_query($sql_cele,$link_vcrx);
  
  $sql_cele ='update '.$tabla.'1 set fpag="20" ';
  $sql_cele.='where fpag in("02","03","04","05","06","07","08","09") ';
  $sql_cele.='and idnum1="'.$idnum.'"';
  $res_cele=msql_query($sql_cele,$link_vcrx);
  
//   $sql_cele='update '.$tabla.'1 set fpag="20" where (fpag="" or fpag is null) and idnum1="'.$idnum.'"';
  $sql_cele ='update '.$tabla.'1 set fpag="20" ';
  $sql_cele.='where (fpag="" or fpag is null) ';
  $sql_cele.='and idnum1="'.$idnum.'"';
  $res_cele=msql_query($sql_cele,$link_vcrx);
}  
  
// echo '<br>***'.$sql_cele;  
$ambi = '1';	 //1:pruebas 2:produccion
$tipoemi ='1'; // 1:normal 2:indisponibilidad	
$fcnego=0;
// $tice=r_fiel('docu',$docu,'tice');

$sql_empr='select * from empr0';
$res_empr=msql_query($sql_empr,$link_vcrx);
$empr_ceuser=msql_result($res_empr,0,'empr_ceuser');     
  
$sql_cele='select * from '.$tabla.'1 where idnum1="'.$idnum.'"';
$res_cele=msql_query($sql_cele,$link_vcrx);
$xstatus=msql_result($res_cele,0,'status');
$xfecha=msql_result($res_cele,0,'fecha');
$xptoe=	msql_result($res_cele,0,'ptoe');
$xnumero=	msql_result($res_cele,0,'numero');
$xenti= msql_result($res_cele,0,'enti');
$xptov=@msql_result($res_cele,0,'ptov');
$autorfec=@msql_result($res_cele,0,'autorfec');
if(!empty($autorfec)){return;}  
     

if($empr_ceuser==1)
{
     
$docu_vndd=msql_result($res_cele,0,'vndd');
$docu_vndd=substr($docu_vndd,0,10).'001';   
$cfg_ruc=$docu_vndd;

$sql_user='select * from user0 where user_codigo='.msql_result($res_cele,0,'iuser');     
$res_user=msql_query($sql_user,$link_vcrx);
$res_user=msql_result($res_user,0,'iuser');

$ambi=msql_result($res_user,0,'ambice');
     
}
               
     
     
     
if($xfecha>$fechaa and 1==2)
{
//      echo '*/*/*/'.$xfecha;
//      echo '*/*/*/'.$fechaa;
	$sql_cele ='update '.$tabla.'1 ';
	$sql_cele.='set claveacc=null,';
// 	$sql_cele.='emailto="'.$email.'",';
// 	$sql_cele.='stfin="1", ';
	$sql_cele.='status=status ';
	$sql_cele.='where idnum1="'.$idnum.'" ';
//      if(mb_stristr('vtas.retp.guia.comp',$tabla))
//      {
          $sql_cele.='and (autornum="" or autornum is null)';
//           $sql_cele.='and (fecha<=now())';
//      }
//      else
//      {$sql_cele.='and (claveacc="" or claveacc is null)';}
     echo 'error '.$sql_cele;
	$res_cele=msql_query($sql_cele,$link_vcrx);
     return;
}
     
     
// //   Alba Vasquez     
// if($cfg_empr=='gmny' and $xfecha>='2021-04-01'){$cfg_ruc="1900318468001";}
// if($cfg_empr=='gnya' and $xfecha>='2021-04-01'){$cfg_ruc="1900318468001";}
if($cfg_empr=='gnya' and $xfecha>='2021-04-01' and $docu=='FC10'){$cfg_ruc="1900318468001";}
if($cfg_empr=='gnya' and $xfecha>='2021-04-01' and $docu=='NC10'){$cfg_ruc="1900318468001";}
          
$ambi=msql_result($res_empr,0,'empr_ambice');
if(mb_stristr('vtas',$tabla) and mb_stristr('FC.NV',substr($docu,0,2)))
{$ambi=r_fiel('ptov',$xptov,'ambice');}
  
if(mb_stristr('vtas',$tabla) and mb_stristr('NC',substr($docu,0,2)))
{$ambi=r_fiel('ptov',$xptov,'ambice');}
     
     
     
     
if(mb_stristr('retp',$tabla) and mb_stristr('RPRO',substr($docu,0,4)))
{$ambi=r_fiel('ptoe',$xptoe,'ambice');}
     
  
if(mb_stristr('guia',$tabla) and mb_stristr('GR',substr($docu,0,2)))
{$ambi=r_fiel('ptoe',$xptoe,'ambice');}
//  echo '*/*/*/*'.$xptoe;    
// echo '*/*/*/*'.$ambi;    

if(mb_stristr('comp',$tabla) and mb_stristr('FP11.FP03',substr($docu,0,4)))
{$ambi=r_fiel('ptoe',$xptoe,'ambice');}
  
if($ambi==""){$ambi=1;}
if(mb_stristr('clie.prov',$tabla)){$ambi=1;}
    
if($cfg_empr=='pcs1' and mb_stristr('FP11.FP03',$docu) and $xfecha<='2019-11-30') 
{$ambi=1;}  
 
if($cfg_empr=='tgck' and mb_stristr('001101.001102',$xptoe)) 
{$ambi=2;}  
  
if(mb_stristr('amay.amin',$cfg_empr))
{if($xptoe!='001100' or $xfecha<'2019-01-01' ){return;}}

//   echo 'AMAYAMIN';
  
if($xfecha>$fechaa){return 'POST-FECHA';} 
if($xstatus=='O'){return 'ANULADO';}
if($xstatus=='O'){return 'ELIMINADO';}
	
$fecha1 =	date_create('2000-01-01');
$fecha2 = date_create($xfecha);
$xdia=date_diff($fecha1,$fecha2);
$xdia=$xdia->format('%a');
$xdoy=date('z',strtotime($xfecha))+1;
$xnumero5=substr($xnumero,-5);
$xenti10=substr($xenti,0,10);
	
$email=r_fiel('enti',$xenti,'emailce');
if($email==""){$email=r_fiel('enti',$xenti,'email');;}
if($email==""){$email='vicore@hotmail.com';}

$sql_enti='update enti0 set enti_matriz=enti_direccion where (enti_matriz="" or enti_matriz is null) and enti_codigo like "'.$xenti10.'%"';
$res_enti=msql_query($sql_enti,$link_vcrx);
   
$codinume = '';
$codinume.=val_mod10($xenti10).val_mod10($xnumero).val_mod10($xdoy).val_mod10($xdia);
$codinume.=val_mod11($xenti10).val_mod11($xnumero).val_mod11($xdoy).val_mod11($xdia);
	
// if(mb_stristr('nsm1.japi',$cfg_empr) and $xfecha<='20180117')
// {$codinume='1101608';}
if(mb_stristr('amay',$cfg_empr))
{$codinume='12345678';}
		
$clave1 ='';
$clave1.=substr(msql_result($res_cele,0,'fecha'),8,2);
$clave1.=substr(msql_result($res_cele,0,'fecha'),5,2);
$clave1.=substr(msql_result($res_cele,0,'fecha'),0,4);
// $clave1.=	msql_result($res_docu,0,'docu_tice');
$clave1.=$tice;
$clave1.=$cfg_ruc;
$clave1.=$ambi;
$clave1.=msql_result($res_cele,0,'ptoe').msql_result($res_cele,0,'numero');
$clave1.=$codinume;
$clave1.=$tipoemi;
     
$xmod11 = val_mod11($clave1);
$clave1.=$xmod11;
// echo '*****'.$clave1;

  
if(val_clac($clave1))
{
	$sql_cele ='update '.$tabla.'1 ';
	$sql_cele.='set claveacc="'.$clave1.'",';
	$sql_cele.='emailto="'.$email.'",';
// 	$sql_cele.='stfin="1", ';
	$sql_cele.='status=status ';
	$sql_cele.='where idnum1="'.$idnum.'" ';
     if(mb_stristr('vtas.retp.guia.comp',$tabla))
     {
          $sql_cele.='and (autornum="" or autornum is null)';
          $sql_cele.='and (fecha<=now())';
     }
     else
     {$sql_cele.='and (claveacc="" or claveacc is null)';}
	$res_cele=msql_query($sql_cele,$link_vcrx);

  if(mb_stristr('vtas.retp.guia.comp',$tabla)){gen_cexml($clave1);}  
}
else
{
  $clave1='*** ERROR AL GENERAR CLAVE ==> '.$clave1;
//   echo '<br>TICE: '.$tice;
//   echo '<br>RUC: '.$cfg_ruc;
//   echo '<br>AMBI: '.$ambi;
//   echo '<br>CODI :'.$codinume;
//   echo '<br>TEMI: '.$tipoemi;
}
  
return $clave1;
}

function gen_cexml($clave_acceso)
{
include('../_cfg/config.php');
include('php_session.php');
if($cfg_ruc=="9999999999999"){$cfg_ruc="0915379374001";}


$sel_empr='select * from empr0 where empr_codigo="'.$cfg_empr.'"';
$res_empr=msql_query($sel_empr,$link_vcrx);
$empr_ceuser=msql_result($res_empr,0,'empr_ceuser');     
$empr_taxi=msql_result($res_empr,0,'empr_taxi');     
   
if(mb_stristr('amay.amin',$cfg_empr))
{if(substr($clave_acceso,24,6)!='001100' or substr($clave_acceso,4,4)<'2019' ){return;}}
  
	$sql_cele="update clac0 set clac_xml1=null where clac_codigo='".$clave_acceso."'";
	$res_cele=msql_query($sql_cele,$link_vcrx);
  

	$estab=substr($clave_acceso,24,3);
	$codDoc=substr($clave_acceso,8,2); 	
	//01 04 05
	$tabla='vtas';
// 	if($codDoc=='05'){$tabla='vtas';}
	if($codDoc=='03'){$tabla='comp';}
	if($codDoc=='06'){$tabla='guia';}
	if($codDoc=='07'){$tabla='retp';}
  
	if($codDoc=='81'){$tabla='caja';}
	if($codDoc=='82'){$tabla='bcos';}
  
	if($codDoc=='91'){$tabla='clie';}
	if($codDoc=='92'){$tabla='clie';}
	if($codDoc=='95'){$tabla='prov';}
	if($codDoc=='99'){$tabla='role';}

     
     
     $sql_docu='select * from '.$tabla.'1 where claveacc="'.$clave_acceso.'" and(autornum="" or autornum is null) and status!="O" and status!="X"';
     $res_docu=msql_query($sql_docu,$link_vcrx);
     if(msql_num_rows($res_docu)==0){return;}
     
	{
         $total_sql.='sum(tcant) as stcant,';
         $total_sql.='sum(tsubt) as stsubt,';
		$total_sql.='sum(tsubtiva0) as stsubtiva0,';
		$total_sql.='sum(tsubtiva) as stsubtiva,';
		$total_sql.='sum(tsubtice) as stsubtice,';
		$total_sql.='sum(tdcto) as stdcto,';
		$total_sql.='sum(tprop) as stprop,';
		$total_sql.='sum(tice) as stice,';
		$total_sql.='sum(tiva) as stiva,';
		$total_sql.='sum(tirbp) as stirbp,';

		$total_sql.='max(dcto) as pdcto,';
		$total_sql.='max(prop) as pprop,';
		$total_sql.='max(ice) as pice,';
		$total_sql.='max(iva) as piva,';
		$total_sql.='max(irbp) as pirbp,';
	}
  
	if(val_clac($clave_acceso))
	{	
		{

//   Alba Vasquez     
$xfecha=msql_result($res_docu,0,'fecha');   
$xuser=msql_result($res_docu,0,'iuser');               
               
               

if($empr_ceuser==1)
{
     
$docu_vndd=msql_result($res_docu,0,'vndd');
$docu_vndd=substr($docu_vndd,0,10).'001';   
$cfg_ruc=$docu_vndd;

$sql_user='select * from user0 where user_codigo='.msql_result($res_docu,0,'iuser');     
$res_user=msql_query($sql_user,$link_vcrx);
$res_user=msql_result($res_user,0,'iuser');
     
}
               
               
// if($cfg_empr=='gmny' and $xfecha>='2021-04-01'){$cfg_ruc="1900318468001";}
// if($cfg_empr=='gnya' and $xfecha>='2021-04-01'){$cfg_ruc="1900318468001";}
if($cfg_empr=='gnya' and $xfecha>='2021-04-01' and $codDoc=='01'){$cfg_ruc="1900318468001";}
if($cfg_empr=='gnya' and $xfecha>='2021-04-01' and $codDoc=='04'){$cfg_ruc="1900318468001";}

               
// if($empr_ceuser==1){$cfg_ruc=msql_result($res_docu,0,'vndd')}
               
		$sql_emis='select * from enti0 where enti_codigo="'.$cfg_ruc.'"';
		$res_emis=msql_query($sql_emis,$link_vcrx);
               

		$rime=@msql_result($res_emis,0,'enti_rime');
		$rimpe=@msql_result($res_emis,0,'enti_rimpe');
		$agret=@msql_result($res_emis,0,'enti_agret');
         
               
         
		$sql_adrs='select * from adrs0 where adrs_enti="'.$cfg_ruc.'" and adrs_sucu="'.substr($clave_acceso,24,3).'"';
		$res_adrs=msql_query($sql_adrs,$link_vcrx);

// 		$sql_cel1='select * from '.$tabla.'11 where claveacc="'.$clave_acceso.'"';
		$sql_cel1='select * from '.$tabla.'12 where claveacc="'.$clave_acceso.'"';
          $sql_total=sql_total($tabla);      
		$sql_cel1=str_replace('*','*,'.$sql_total,$sql_cel1);
      
		$res_cel1=msql_query($sql_cel1,$link_vcrx);
               
//                echo '<br>=====*/*/*'.msql_num_rows($res_cel1);
         
		$enti=msql_result($res_cel1,0,'enti');
		$enti_razsoc=msql_result($res_cel1,0,'enti_razsoc');
		$enti_nomcom=msql_result($res_cel1,0,'enti_nomcom');
		$enti_descri=msql_result($res_cel1,0,'enti_descri');
		$enti_exiva=msql_result($res_cel1,0,'enti_exiva');
		$idnum=msql_result($res_cel1,0,'idnum1');
		$status=msql_result($res_cel1,0,'status');

// echo '<br>====+++===='.$enti;               
         
    if($enti_razsoc=="")
    {
      get_ruc0($enti);
      $res_cel1=msql_query($sql_cel1,$link_vcrx);
      $enti_razsoc=msql_result($res_cel1,0,'enti_razsoc');
         
    }
    
    if(!empty($enti_descri))
    {if(mb_stristr('***',$enti_descri)){$enti_descri='';}}
    if(empty($enti_razsoc)){$enti_razsoc=$enti_descri;}
    if(empty($enti_razsoc)){$enti_razsoc=$enti_nomcom;echo '<br>***'.$enti_razsoc;}
    if(empty($enti_razsoc)){return '*** FALTA RAZON SOCIAL ***';}
    
		$sql_cel2='select * from '.$tabla.'12 where idnum1="'.$idnum.'"';
		$res_cel2=msql_query($sql_cel2,$link_vcrx);

		$sql_enti='select * from enti0 where enti_codigo="'.$enti.'"';
		$res_enti=msql_query($sql_enti,$link_vcrx);
	
		}

    
		$dirEstab='';
		{
			if(msql_num_rows($res_adrs)!=0){$dirEstab=msql_result($res_adrs,0,'adrs_direccion');}
			$matriz=msql_result($res_emis,0,'enti_matriz');
			$tipoId=msql_result($res_cel1,0,'enti_tipoid');
			if(strlen(trim($dirEstab))<=2 or $estab=='001'){$dirEstab=$matriz;}
			if(strlen(trim($dirEstab))<=2 ){$dirEstab=msql_result($res_emis,0,'enti_direccion');}
			if(strlen(trim($dirEstab))<=2 ){$dirEstab=msql_result($res_emis,0,'enti_ciudad');}
//                echo '<br>*/*/*/*'.msql_result($res_emis,0,'enti_codigo');
//                echo '<br>*/*/*/*'.msql_result($res_emis,0,'enti_ciudad');
	     }
          
          
      if(strlen(trim($dirEstab))<=2){$dirEstab='Guayaquil';}
		
		$tipoIdComp='04';
		{
      if($tipoId=='R'){$tipoIdComp='04';}
      if($tipoId=='C'){$tipoIdComp='05';}
      if($tipoId=='P'){$tipoIdComp='06';}
      if($tipoId=='F'){$tipoIdComp='07';}
      if($tipoId=='E'){$tipoIdComp='08';}
      if($tipoId=='V'){$tipoIdComp='09';}
		}

		if($tabla=='vtas')
		{
			
      $porcIva=msql_result($res_cel1,0,'iva');
      {
        if($porcIva==0){$codPorcIva='0';}
        if($porcIva==12){$codPorcIva='2';}
        if($porcIva==14){$codPorcIva='3';}
        if($porcIva==15){$codPorcIva='4';}
        if($enti_exiva==1){$codPorcIva='7';}
      }

      $porcIce=msql_result($res_cel1,0,'ice');
      if($porcIce==0){$codPorcIce='0';}
		
		}
		
		$xml=new DomDocument("1.0","UTF-8");
		$xml->xmlStandalone = true;

    
		if($codDoc=='01')
		{
			$factura=$xml->appendChild($xml->createElement("factura"));
			$factura->setAttribute("id","comprobante");
			$factura->setAttribute("version", "1.1.0");
			{
				$rucemi=msql_result($res_emis,0,'enti_codigo');
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');

//         $razsoc=utf8_encode($razsoc);
//         $nomcom=utf8_encode($nomcom);

//           echo '<br>*/*/*'.$razsoc;                    
                    
//         $xletraN='Ã' ; //Ñ 
//         $razsoc=str_replace('&','&amp;',$razsoc);
//         $razsoc=str_replace('"','&quot;',$razsoc);
//         $razsoc=str_replace($xletraN,'N',$razsoc);
        
//         $nomcom=str_replace('&','&amp;',$nomcom);
//         $nomcom=str_replace('"','&quot;',$nomcom);
//         $nomcom=str_replace($xletraN,'N',$nomcom);

//           echo '<br>*/*/*'.$razsoc;                    
                    
                    
//           $razsoc=str_replace('ñ','n',$razsoc);                    
//           $nomcom=str_replace('ñ','n',$nomcom); 
//           $razsoc=str_replace('Ñ','N',$razsoc);                    
//           $nomcom=str_replace('Ñ','N',$nomcom); 
                    
        if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
                         if(empty($empr_ceuser))
                         {
                              $infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
                              $infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
                              $infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
                              $infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
                              $infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
                              $infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
                              $infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
                              $infoTrib->appendChild($xml->createElement("estab",$estab));
                              $infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
                              $infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
                              $infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
                               if($rime==12)
                               {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
                    //            if($rimpe==1)
                               //{$infoTrib->appendChild($xml->createElement("rimpe","RIMPE"));}
                               if($agret==1)
                               {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
                         }                              

                         
                         
                         if(!empty($empr_ceuser))
                         {
                              $infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
                              $infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
                              $infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
                              $infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
                              $infoTrib->appendChild($xml->createElement("ruc",substr($clave_acceso,10,13)));
                              $infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
                              $infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
                              $infoTrib->appendChild($xml->createElement("estab",$estab));
                              $infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
                              $infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
//                               $infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
                              $xmatriz=r_fiel('user',$xuser,'calle1');
                              $infoTrib->appendChild($xml->createElement("dirMatriz",$xmatriz));
                    //            if($rimpe==1)
                               //{$infoTrib->appendChild($xml->createElement("rimpe","RIMPE"));}
//                                if($agret==1)
//                                {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
                         }                              
                         
                         
//           echo '*/*/*/'.$matriz;
				}
				$infoFact=$factura->appendChild($xml->createElement("infoFactura"));
				{
					$xfecha= date('d/m/Y' ,strtotime(msql_result($res_cel1,0,'fecha')));
					$xcoesp='NO';
					$xobcon='NO';
					$xcoesn=msql_result($res_cel1,0,'enti_coesn');
					$xcoesn='5368';
          $xdircomp=@msql_result($res_cel1,0,'enti_matriz');
          if($xdircomp=='')
          {$xdircomp=@msql_result($res_cel1,0,'enti_direccion');}
          
          $xfpag=msql_result($res_cel1,0,'fpag');
          $xefect=@msql_result($res_cel1,0,'efectivo');
          $xtarje=@msql_result($res_cel1,0,'tarjeta');
//                if(!empty($xefect)){$xfpag='01';}
//                if(!empty($xtarje)){$xfpag='19';}
               if($xefect!=0){$xfpag='01';}
               if($xtarje!=0){$xfpag='19';}
          
          
					$plazo=msql_result($res_cel1,0,'plazo');
					$correo=@msql_result($res_cel1,0,'enti_email');
          
//           if($xdircomp!='' and $correo!=''){$fcnego=1;}
					
// 					if(msql_result($res_cel1,0,'enti_coesp')=='1'){$xcoesp='SI'; $xcoesn='';}
// 					if(msql_result($res_cel1,0,'enti_obcon')=='1'){$xobcon='SI';}
          
          $xobcon='NO';
          if(msql_result($res_emis,0,'enti_obcon')=='1'){$xobcon='SI';}
          if(msql_result($res_emis,0,'enti_coesp')=='1'){$xcoesp='SI'; $xcoesn='';}
          if(msql_result($res_emis,0,'enti_obcon')=='S'){$xobcon='SI';}
          if(msql_result($res_emis,0,'enti_coesp')=='S'){$xcoesp='SI'; $xcoesn='';}
          
          $idComprador=msql_result($res_cel1,0,'enti');
          if(mb_stristr('06',$tipoIdComp))
          {$idComprador=msql_result($res_cel1,0,'enti_pasaporte');}  
          if(mb_stristr('08',$tipoIdComp))
          {$idComprador=msql_result($res_cel1,0,'enti_idexterior');}

          if(substr($enti,0,4)=='9999'){$fcnego=0;$idComprador='9999999999999';}
          
					$infoFact->appendChild($xml->createElement("fechaEmision",$xfecha));
					$infoFact->appendChild($xml->createElement("dirEstablecimiento",$dirEstab));
// 					if($xcoesp=='SI'){$infoFact->appendChild($xml->createElement("contribuyenteEspecial",$xcoesn));}
					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionComprador",$tipoIdComp));
					$infoFact->appendChild($xml->createElement("razonSocialComprador",htmlspecialchars($enti_razsoc)));
					$infoFact->appendChild($xml->createElement("identificacionComprador",$idComprador));

          if($fcnego==1)
          {$infoFact->appendChild($xml->createElement("direccionComprador",$xdircomp));}
          
          $totalsinimpuestos1=msql_result($res_cel1,0,'stsubt')-msql_result($res_cel1,0,'stdcto');
					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format($totalsinimpuestos1,2,'.','')));
          // 6 ago 2020
// 					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format($totalsinimpuestos1,6,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalSubsidio",number_format(msql_result($res_cel1,0,'stsubt'),2,'.','')));
					$infoFact->appendChild($xml->createElement("totalDescuento",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
          
          // REEMBOLSOS
// 					$infoFact->appendChild($xml->createElement("codDocReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalComprobantesReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalBaseImponibleReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalImpuestoReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
          
          
					$totConImp=$infoFact->appendChild($xml->createElement("totalConImpuestos"));
					{
						// 2 IVA
						$xtsubtiva0=msql_result($res_cel1,0,'stsubtiva0');
						if($xtsubtiva0!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje","0"));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva0,2,'.','')));
							$totImp->appendChild($xml->createElement("tarifa","0"));
							$totImp->appendChild($xml->createElement("valor","0.00"));
              // 6 ago 2020
// 							$totImp->appendChild($xml->createElement("valor","0.000000"));
							
						}
						}

						
						$porcIva=msql_result($res_cel1,0,'piva');
						if($porcIva==0){$codPorcIva='0';}
						if($porcIva==12){$codPorcIva='2';}
						if($porcIva==14){$codPorcIva='3';}
						if($porcIva==15){$codPorcIva='4';}
                              if($enti_exiva==1){$codPorcIva='7';}
						
						$xtsubtiva=msql_result($res_cel1,0,'stsubtiva');
						if($xtsubtiva!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva,2,'.','')));
              // 6 ago 2020
// 							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva,6,'.','')));
							$totImp->appendChild($xml->createElement("tarifa",number_format(msql_result($res_cel1,0,'piva'),0,'.','')));
							$totImp->appendChild($xml->createElement("valor",number_format(msql_result($res_cel1,0,'stiva'),2,'.','')));
              // 6 ago 2020
// 							$totImp->appendChild($xml->createElement("valor",number_format(msql_result($res_cel1,0,'stiva'),6,'.','')));
						}
						}
			
						// 3 ICE
						// 5 IRBP
					}
					
					$infoFact->appendChild($xml->createElement("propina","0.00"));
					$infoFact->appendChild($xml->createElement("importeTotal",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
					$infoFact->appendChild($xml->createElement("moneda","DOLAR"));
//           $infoFact->appendChild($xml->createElement("placa",msql_result($res_cel1,0,'vhcl')));
//           $xfpag=msql_result($res_cel1,0,'fpag');
// 					$plazo=msql_result($res_cel1,0,'plazo');
// 					$correo=@msql_result($res_cel1,0,'enti_email');
					$pagos=$infoFact->appendChild($xml->createElement("pagos"));
					{
						if($plazo=0){$plazo=1;}
						$pago=$pagos->appendChild($xml->createElement("pago"));
						{
							$pago->appendChild($xml->createElement("formaPago",$xfpag));
							$pago->appendChild($xml->createElement("total",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
							$pago->appendChild($xml->createElement("plazo",number_format($plazo,0)));
							$pago->appendChild($xml->createElement("unidadTiempo","dias"));
						}
					}
				}
				$detalles=$factura->appendChild($xml->createElement("detalles"));
        $totalsinimpuestos12=0;
				{
					while($aso_cel2=msql_fetch_assoc($res_cel2))
					{
						$detalle=$detalles->appendChild($xml->createElement("detalle"));
						{
              $itemdescri=$aso_cel2['item_descri'];
              $itemdescri=str_replace('&','&amp;',$itemdescri);
              $itemdescri=str_replace('"','&quot;',$itemdescri);
              $itemdescri=str_replace('´´','&quot;',$itemdescri);
              $itemdescri=str_replace('``','&quot;',$itemdescri);
              
//               $itemdescri=str_replace('#','\#;',$itemdescri);
              $itemdescri=str_replace(',','.',$itemdescri);
//               if($itemdescri=='')
							$detalle->appendChild($xml->createElement("codigoPrincipal",$aso_cel2['item']));
							$detalle->appendChild($xml->createElement("codigoAuxiliar",$aso_cel2['item']));
							$detalle->appendChild($xml->createElement("descripcion",$itemdescri));
							$detalle->appendChild($xml->createElement("cantidad",number_format($aso_cel2['cant'],2,'.','')));
              // 6 ago 2020
// 							$detalle->appendChild($xml->createElement("cantidad",number_format($aso_cel2['cant'],6,'.','')));
							$detalle->appendChild($xml->createElement("precioUnitario",number_format($aso_cel2['puni'],6,'.','')));
// 							$detalle->appendChild($xml->createElement("precioSinSubsidio",number_format($aso_cel2['puni'],6,'.','')));
							$detalle->appendChild($xml->createElement("descuento",number_format($aso_cel2['tdcto'],2,'.','')));
// 							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format($aso_cel2['tsubt'],2,'.','')));
              $totalsinimpuestos2=$aso_cel2['tsubt']-$aso_cel2['tdcto'];
							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format($totalsinimpuestos2,2,'.','')));
							$totalsinimpuestos12+=$totalsinimpuestos2;

							//maximo 3 campos char(300)
							$detAdic1='';
							$detAdic2='';
							$detAdic3='';
							$nomAdic1='';
							$nomAdic2='';
							$nomAdic3='';
							
							$nomAdic1='Detalle';
							$detAdic1=substr($aso_cel2['detalle'],0,300);

              if($cfg_empr=='pcs1' and $aso_cel2['cntn']!="")
              {
                $nomAdic1='Contenedor';
                $detAdic1=substr($aso_cel2['cntn'],0,20);
                $nomAdic2='Fecha1';
                $detAdic2=substr($aso_cel2['cntnf1'],0,20);
                $nomAdic3='Fecha2';
                $detAdic3=substr($aso_cel2['cntnf2'],0,20);
              }
              
              if($cfg_empr=='tgck' and $aso_cel2['vhcl']!="")
              {
                $nomAdic1='Placa';
                $detAdic1=substr($aso_cel2['vhcl'],0,20);
              }
              
              if($cfg_empr=='sawo' and $aso_cel2['vhcl']!="")
              {
                $nomAdic1='Placa';
                $detAdic1=substr($aso_cel2['vhcl'],0,20);
              }
              
              if($cfg_empr=='imcp' and $aso_cel2['lote']!="")
              {
                $nomAdic1='Lote';
                $detAdic1=substr($aso_cel2['lote'],0,20);
              }
              
							if($detAdic1.$detAdic2.$detAdic3!='')
							{
								$adicionales=$detalle->appendChild($xml->createElement("detallesAdicionales"));
								{
									if($detAdic1!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic1);
										$adicional->setAttribute("valor",$detAdic1);
									}
									if($detAdic2!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic2);
										$adicional->setAttribute("valor",$detAdic2);
									}
									if($detAdic3!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic3);
										$adicional->setAttribute("valor",$detAdic3);
									}
								}
							}
													
							$impuestos=$detalle->appendChild($xml->createElement("impuestos"));
							{
									// 2 IVA
								$porcIva=$aso_cel2['iva'];
								if($porcIva==0){$codPorcIva='0';}
								if($porcIva==12){$codPorcIva='2';}
								if($porcIva==14){$codPorcIva='3';}
								if($porcIva==15){$codPorcIva='4';}
                                        if($enti_exiva==1){$codPorcIva='7';}
								$impuesto=$impuestos->appendChild($xml->createElement("impuesto"));
								{
									$impuesto->appendChild($xml->createElement("codigo","2"));
									$impuesto->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
									$impuesto->appendChild($xml->createElement("tarifa",number_format($aso_cel2['iva'],2,'.','')));
									if($porcIva==0)
									{$impuesto->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['tsubtiva0'],2,'.','')));}
									else
									{$impuesto->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['tsubtiva'],2,'.','')));}
									$impuesto->appendChild($xml->createElement("valor",number_format($aso_cel2['tiva'],2,'.','')));
								}
						
									// 3 ICE
									// 5 IRBP
						
							}
						}
					}	
				}

        
        
//         reembolsos
//           reembolsosDetalle
//             tipoIdentificacionProveedorReembolso
//             identificacionProveedorReembolso
//             codPaisPagoProveedorReembolso
//             tipoProveedorReembolso
//             codDocReembolso
//             estabDocReembolso
//             ptoEmiDocReembolso
//             secuencialDocReembolso
//             fechaEmisionDocReembolso
//             numeroautorizacionDocReemb
            
//             detalleImpuestos
//               detalleImpuesto
//                 codigo
//                 codigoPorcentaje
//                 tarifa
//                 baseImponibleReembolso
//                 impuestoReembolso
                
        
        
        if($fcnego==1)
        {
          $negociable=$factura->appendChild($xml->createElement("tipoNegociable"));
          $correo=$negociable->appendChild($xml->createElement("correo",$correo));
        }
        
        
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional"));
				$adicionales=msql_result($res_cel1,0,'infoadic');
				$adicionales=str_replace('[[','<campoAdicional nombre="',$adicionales);
				$adicionales=str_replace(']]','">',$adicionales);
				$adicionales=str_replace('||','.</campoAdicional>',$adicionales);
        
// 				$adicionales=str_replace('{"','<campoAdicional nombre="',$adicionales);
// 				$adicionales=str_replace('":"','">',$adicionales);
// 				$adicionales=str_replace('"}','.</campoAdicional>',$adicionales);

        $xinfoa=0;
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional",$adicionales));
				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional","[[ADICIONALES]]"));
				{
					// AQUI INFOADIC EDSK

               //sisteplaz empagran
//                if($rucemi=='0992662042001' and $enti=='0990071969001')
//                if($enti=='0990071969001')
                         
          
          
               if($rimpe> 0)
               {
                  if($rimpe == 1)
                     $titrimpe = 'EMPRENDEDOR';
                  if($rimpe == 2)
                     $titrimpe = 'NEGOCIO POPULAR';
                  if($rimpe == 3)
                     $titrimpe = 'REGIMEN GENERAL';
                 
//                  if (substr($cfg_ruc,2,1) <> '9')
//                      $titrimpe = 'EMPRENDEDOR';
//                  else
//                      $titrimpe = 'REGIMEN RIMPE';
                 
                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$titrimpe));
                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
                   $xinfoa=1;
               }

               if($rime==12)
               {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'REGIMEN MICROEMPRESA'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
               }
               
//                if($agret==1)
//                {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'AGENTE DE RETENCION - RESOLUCION No NACDNCRASC20-00000001'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
//                }
               
               

					$adi_concepto=msql_result($res_cel1,0,'concepto');
					if($adi_concepto!='')
               {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
					$campoAdic->setAttribute("nombre","Concepto");
                $xinfoa=1;
					}

					$adi_direccion=msql_result($res_enti,0,'enti_matriz');
					if($adi_direccion!='')
                {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_direccion));
					$campoAdic->setAttribute("nombre","Direccion");
                $xinfoa=1;
					}

					$adi_telefono=msql_result($res_enti,0,'enti_telefono');
					if($adi_telefono!='')
                {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_telefono));
					$campoAdic->setAttribute("nombre","Telefono");
                $xinfoa=1;
					}

               $adi_emailce=get_emailce(msql_result($res_enti,0,'enti_codigo'));
               if($empr_ceuser==1 and empty($adi_emailce))
               {$adi_emailce=get_emailce($cfg_ruc);}
                         
					if($adi_emailce!='')
               {
               $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_emailce));
               $campoAdic->setAttribute("nombre","Email");
               $xinfoa=1;
					}
          
                if($xinfoa==0)
                {
                     $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$enti));
                     $campoAdic->setAttribute("nombre","Cliente");
      //           $xinfoa=1;
                }
               
               
               
				}
			}
		}

		if($codDoc=='03')
		{
			$factura=$xml->appendChild($xml->createElement("liquidacionCompra"));
			$factura->setAttribute("id","comprobante");
			$factura->setAttribute("version", "1.1.0");
			{
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');

        $razsoc=utf8_encode($razsoc);
        $nomcom=utf8_encode($nomcom);
        
        $xletraN='Ã' ; //Ñ 
        
        $razsoc=str_replace('&','&amp;',$razsoc);
        $razsoc=str_replace('"','&quot;',$razsoc);
        $razsoc=str_replace($xletraN,'N',$razsoc);
//         $razsoc=$razsoc.'-';
        
        $nomcom=str_replace('&','&amp;',$nomcom);
        $nomcom=str_replace('"','&quot;',$nomcom);
        $nomcom=str_replace($xletraN,'N',$nomcom);

        if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
					$infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
					$infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
					$infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
					$infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
					$infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
					$infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
					$infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
					$infoTrib->appendChild($xml->createElement("estab",$estab));
					$infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
					$infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
					$infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
           if($rime==12)
           {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
           if($agret==1)
           {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
				}
				$infoFact=$factura->appendChild($xml->createElement("infoLiquidacionCompra"));
				{
					$xfecha= date('d/m/Y' ,strtotime(msql_result($res_cel1,0,'fecha')));
					$xcoesp='NO';
					$xobcon='NO';
					$xcoesn=msql_result($res_cel1,0,'enti_coesn');
					$xcoesn='5368';
          $xdircomp=@msql_result($res_cel1,0,'enti_matriz');
          if($xdircomp=='')
          {$xdircomp=@msql_result($res_cel1,0,'enti_direccion');}
          
          $xfpag=msql_result($res_cel1,0,'fpag');
					$plazo=msql_result($res_cel1,0,'plazo');
					$correo=@msql_result($res_cel1,0,'enti_email');
          
          $fcnego=0;
					
          $xobcon='NO';
          if(msql_result($res_emis,0,'enti_obcon')=='1'){$xobcon='SI';}
          if(msql_result($res_emis,0,'enti_coesp')=='1'){$xcoesp='SI'; $xcoesn='';}
          if(msql_result($res_emis,0,'enti_obcon')=='S'){$xobcon='SI';}
          if(msql_result($res_emis,0,'enti_coesp')=='S'){$xcoesp='SI'; $xcoesn='';}

          
          $idComprador=msql_result($res_cel1,0,'enti');
          if(mb_stristr('06',$tipoIdComp))
          {$idComprador=msql_result($res_cel1,0,'enti_pasaporte');}  
          if(mb_stristr('08',$tipoIdComp))
          {$idComprador=msql_result($res_cel1,0,'enti_idexterior');}
          
          
					$infoFact->appendChild($xml->createElement("fechaEmision",$xfecha));
					$infoFact->appendChild($xml->createElement("dirEstablecimiento",$dirEstab));
// 					if($xcoesp=='SI'){$infoFact->appendChild($xml->createElement("contribuyenteEspecial",$xcoesn));}
					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionProveedor",$tipoIdComp));
					$infoFact->appendChild($xml->createElement("razonSocialProveedor",htmlspecialchars(msql_result($res_cel1,0,'enti_razsoc'))));
					$infoFact->appendChild($xml->createElement("identificacionProveedor",$idComprador));

//           if($fcnego==1)
//           {$infoFact->appendChild($xml->createElement("direccionProveedor",$xdircomp));}
          
          $totalsinimpuestos1=msql_result($res_cel1,0,'stsubt')-msql_result($res_cel1,0,'stdcto');
// 					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format(msql_result($res_cel1,0,'stsubt'),2,'.','')));
					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format($totalsinimpuestos1,2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalSubsidio",number_format(msql_result($res_cel1,0,'stsubt'),2,'.','')));
					$infoFact->appendChild($xml->createElement("totalDescuento",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));

          //REEMBOLSOS
// 					$infoFact->appendChild($xml->createElement("codDocReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalComprobantesReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalBaseImponibleReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("totalImpuestoReembolso",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));

          $totConImp=$infoFact->appendChild($xml->createElement("totalConImpuestos"));
					{
						// 2 IVA 0
						$xtsubtiva0=msql_result($res_cel1,0,'stsubtiva0');
						if($xtsubtiva0!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje","0"));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva0,2,'.','')));
							$totImp->appendChild($xml->createElement("tarifa","0"));
							$totImp->appendChild($xml->createElement("valor","0.00"));
							
						}
						}

						
						$porcIva=msql_result($res_cel1,0,'piva');
						if($porcIva==0){$codPorcIva='0';}
						if($porcIva==12){$codPorcIva='2';}
						if($porcIva==14){$codPorcIva='3';}
						if($porcIva==15){$codPorcIva='4';}
                              if($enti_exiva==1){$codPorcIva='7';}
						
						$xtsubtiva=msql_result($res_cel1,0,'stsubtiva');
						if($xtsubtiva!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva,2,'.','')));
							$totImp->appendChild($xml->createElement("tarifa",number_format(msql_result($res_cel1,0,'piva'),0,'.','')));
							$totImp->appendChild($xml->createElement("valor",number_format(msql_result($res_cel1,0,'stiva'),2,'.','')));
						}
						}
			
						// 3 ICE
						// 5 IRBP
					}
					
// 					$infoFact->appendChild($xml->createElement("propina","0.00"));
					$infoFact->appendChild($xml->createElement("importeTotal",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
					$infoFact->appendChild($xml->createElement("moneda","DOLAR"));
//           $infoFact->appendChild($xml->createElement("placa",msql_result($res_cel1,0,'vhcl')));
//           $xfpag=msql_result($res_cel1,0,'fpag');
// 					$plazo=msql_result($res_cel1,0,'plazo');
// 					$correo=@msql_result($res_cel1,0,'enti_email');
					$pagos=$infoFact->appendChild($xml->createElement("pagos"));
					{
						if($plazo=0){$plazo=1;}
						$pago=$pagos->appendChild($xml->createElement("pago"));
						{
							$pago->appendChild($xml->createElement("formaPago",$xfpag));
							$pago->appendChild($xml->createElement("total",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
							$pago->appendChild($xml->createElement("plazo",number_format($plazo,0)));
							$pago->appendChild($xml->createElement("unidadTiempo","dias"));
						}
					}
				}
				$detalles=$factura->appendChild($xml->createElement("detalles"));
        $totalsinimpuestos12=0;
				{
					while($aso_cel2=msql_fetch_assoc($res_cel2))
					{
						$detalle=$detalles->appendChild($xml->createElement("detalle"));
						{
              $itemdescri=$aso_cel2['item_descri'];
              if($itemdescri==''){$itemdescri=$aso_cel2['detalle'];}
              if($itemdescri==''){$itemdescri=$aso_cel2['concepto'];}
              
              $itemdescri=str_replace('&','&amp;',$itemdescri);
              $itemdescri=str_replace('"','&quot;',$itemdescri);
              $itemdescri=str_replace('´´','&quot;',$itemdescri);
              $itemdescri=str_replace('``','&quot;',$itemdescri);
              
              
//               $itemdescri=str_replace('#','\#;',$itemdescri);
              $itemdescri=str_replace(',','.',$itemdescri);
              
							$detalle->appendChild($xml->createElement("codigoPrincipal",$aso_cel2['item']));
							$detalle->appendChild($xml->createElement("codigoAuxiliar",$aso_cel2['item']));
							$detalle->appendChild($xml->createElement("descripcion",$itemdescri));
// 							$detalle->appendChild($xml->createElement("unidadMedida",number_format($aso_cel2['cant'],2,'.','')));
							$detalle->appendChild($xml->createElement("cantidad",number_format($aso_cel2['cant'],2,'.','')));
							$detalle->appendChild($xml->createElement("precioUnitario",number_format($aso_cel2['puni'],6,'.','')));
// 							$detalle->appendChild($xml->createElement("precioSinSubsidio",number_format($aso_cel2['puni'],6,'.','')));
							$detalle->appendChild($xml->createElement("descuento",number_format($aso_cel2['tdcto'],2,'.','')));
// 							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format($aso_cel2['tsubt'],2,'.','')));
              $totalsinimpuestos2=$aso_cel2['tsubt']-$aso_cel2['tdcto'];
							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format($totalsinimpuestos2,2,'.','')));
							$totalsinimpuestos12+=$totalsinimpuestos2;

							//maximo 3 campos char(300)
							$detAdic1='';
							$detAdic2='';
							$detAdic3='';
							$nomAdic1='';
							$nomAdic2='';
							$nomAdic3='';
							
							$nomAdic1='Detalle';
							$detAdic1=substr($aso_cel2['detalle'],0,300);

              if($cfg_empr=='pcs1' and $aso_cel2['cntn']!="")
              {
                $nomAdic1='Contenedor';
                $detAdic1=substr($aso_cel2['cntn'],0,20);
                $nomAdic2='Fecha1';
                $detAdic2=substr($aso_cel2['cntnf1'],0,20);
                $nomAdic3='Fecha2';
                $detAdic3=substr($aso_cel2['cntnf2'],0,20);
              }
              
              if($cfg_empr=='tgck' and $aso_cel2['vhcl']!="")
              {
                $nomAdic1='Placa';
                $detAdic1=substr($aso_cel2['vhcl'],0,20);
              }
              
              if($cfg_empr=='sawo' and $aso_cel2['vhcl']!="")
              {
                $nomAdic1='Placa';
                $detAdic1=substr($aso_cel2['vhcl'],0,20);
              }
              
							if($detAdic1.$detAdic2.$detAdic3!='')
							{
								$adicionales=$detalle->appendChild($xml->createElement("detallesAdicionales"));
								{
									if($detAdic1!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic1);
										$adicional->setAttribute("valor",$detAdic1);
									}
									if($detAdic2!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic2);
										$adicional->setAttribute("valor",$detAdic2);
									}
									if($detAdic3!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic3);
										$adicional->setAttribute("valor",$detAdic3);
									}
								}
							}
													
							$impuestos=$detalle->appendChild($xml->createElement("impuestos"));
							{
									// 2 IVA
								$porcIva=$aso_cel2['iva'];
								if($porcIva==0){$codPorcIva='0';}
								if($porcIva==12){$codPorcIva='2';}
								if($porcIva==14){$codPorcIva='3';}
								if($porcIva==15){$codPorcIva='4';}
                                        if($enti_exiva==1){$codPorcIva='7';}
								$impuesto=$impuestos->appendChild($xml->createElement("impuesto"));
								{
									$impuesto->appendChild($xml->createElement("codigo","2"));
									$impuesto->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
									$impuesto->appendChild($xml->createElement("tarifa",number_format($aso_cel2['iva'],2,'.','')));
									if($porcIva==0)
									{$impuesto->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['tsubtiva0'],2,'.','')));}
									else
									{$impuesto->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['tsubtiva'],2,'.','')));}
									$impuesto->appendChild($xml->createElement("valor",number_format($aso_cel2['tiva'],2,'.','')));
								}
						
									// 3 ICE
									// 5 IRBP
						
							}
						}
					}	
				}

        
//         reembolsos
//           reembolsosDetalle
//             tipoIdentificacionProveedorReembolso
//             identificacionProveedorReembolso
//             codPaisPagoProveedorReembolso
//             tipoProveedorReembolso
//             codDocReembolso
//             estabDocReembolso
//             ptoEmiDocReembolso
//             secuencialDocReembolso
//             fechaEmisionDocReembolso
//             numeroautorizacionDocReemb
            
//             detalleImpuestos
//               detalleImpuesto
//                 codigo
//                 codigoPorcentaje
//                 tarifa
//                 baseImponibleReembolso
//                 impuestoReembolso
        
        
//         if($fcnego==1)
//         {
//           $negociable=$factura->appendChild($xml->createElement("tipoNegociable"));
//           $correo=$negociable->appendChild($xml->createElement("correo",$correo));
//         }
        
        
        
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional"));
				$adicionales=msql_result($res_cel1,0,'infoadic');
				$adicionales=str_replace('[[','<campoAdicional nombre="',$adicionales);
				$adicionales=str_replace(']]','">',$adicionales);
				$adicionales=str_replace('||','.</campoAdicional>',$adicionales);
        
// 				$adicionales=str_replace('{"','<campoAdicional nombre="',$adicionales);
// 				$adicionales=str_replace('":"','">',$adicionales);
// 				$adicionales=str_replace('"}','.</campoAdicional>',$adicionales);

        $xinfoa=0;
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional",$adicionales));
				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional","[[ADICIONALES]]"));
				{
					// AQUI INFOADIC EDSK
					$adi_concepto=msql_result($res_cel1,0,'concepto');
					if($adi_concepto!='')
          {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
					$campoAdic->setAttribute("nombre","Concepto");
          $xinfoa=1;
					}

					$adi_direccion=msql_result($res_enti,0,'enti_matriz');
					if($adi_direccion!='')
          {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_direccion));
					$campoAdic->setAttribute("nombre","Direccion");
          $xinfoa=1;
					}

					$adi_telefono=msql_result($res_enti,0,'enti_telefono');
					if($adi_telefono!='')
          {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_telefono));
					$campoAdic->setAttribute("nombre","Telefono");
          $xinfoa=1;
					}

          $adi_emailce=get_emailce(msql_result($res_enti,0,'enti_codigo'));
               if($empr_ceuser==1 and empty($adi_emailce))
               {$adi_emailce=get_emailce($cfg_ruc);}
          
					if($adi_emailce!='')
          {
            $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_emailce));
            $campoAdic->setAttribute("nombre","Email");
            $xinfoa=1;
					}
          
          if($xinfoa==0)
          {
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$enti));
					$campoAdic->setAttribute("nombre","Cliente");
//           $xinfoa=1;
          }
				}
			}
		}
    
		if($codDoc=='04')
		{
			$factura=$xml->appendChild($xml->createElement("notaCredito"));
			$factura->setAttribute("id","comprobante");
			$factura->setAttribute("version", "1.1.0");
			{
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');
				if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
					$infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
					$infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
					$infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
					$infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
					$infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
					$infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
					$infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
					$infoTrib->appendChild($xml->createElement("estab",$estab));
					$infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
					$infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
					$infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
           if($rime==12)
           {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
           if($agret==1)
           {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
				}
				$infoFact=$factura->appendChild($xml->createElement("infoNotaCredito"));
				{
					$xfecha= date('d/m/Y' ,strtotime(msql_result($res_cel1,0,'fecha')));
					$xcoesp='NO';
					$xobcon='NO';
					$xcoesn=msql_result($res_cel1,0,'enti_coesn');
					$xcoesn='5368';
					
					$xtodocu=msql_result($res_cel1,0,'todocu');
					$xtoptoe=msql_result($res_cel1,0,'toptoe');
					$xtonumero=msql_result($res_cel1,0,'tonume');
                         
                         if(empty($xtodocu)){$xtodocu='FC10';}
					$sql_todoc='select * from vtas1 where docu="'.$xtodocu.'" and ptoe="'.$xtoptoe.'" and numero="'.$xtonumero.'"';
					$res_todoc=msql_query($sql_todoc,$link_vcrx);
          
                         if(msql_num_rows($res_todoc)==0)
                         {
                           $sql_todoc='select * from vtas1 where docu="'.$xtodocu.'" and numero="'.$xtonumero.'"';
                           $res_todoc=msql_query($sql_todoc,$link_vcrx);
                         }
					
					$xtofecha=@msql_result($res_todoc,0,'fecha');
                         
					$xtofecha=substr($xtofecha,8,2).'/'.substr($xtofecha,5,2).'/'.substr($xtofecha,0,4);
					$xtodocu='01';
					$xtonumero=substr($xtoptoe,0,3).'-'.substr($xtoptoe,3,3).'-'.$xtonumero;
						
                         
					$xobcon='NO';
					if(msql_result($res_cel1,0,'enti_coesp')=='1'){$xcoesp='SI'; $xcoesn='SII';}
					if(msql_result($res_cel1,0,'enti_obcon')=='1'){$xobcon='SI';}
					if(msql_result($res_cel1,0,'enti_coesp')=='S'){$xcoesp='SI'; $xcoesn='SII';}
					if(msql_result($res_cel1,0,'enti_obcon')=='S'){$xobcon='SI';}
					$infoFact->appendChild($xml->createElement("fechaEmision",$xfecha));
					$infoFact->appendChild($xml->createElement("dirEstablecimiento",$dirEstab));
// 					if($xcoesp=='SI'){$infoFact->appendChild($xml->createElement("contribuyenteEspecial",$xcoesn));}
// 					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionComprador",$tipoIdComp));
					$infoFact->appendChild($xml->createElement("razonSocialComprador",htmlspecialchars(msql_result($res_cel1,0,'enti_razsoc'))));
					$infoFact->appendChild($xml->createElement("identificacionComprador",msql_result($res_cel1,0,'enti')));

					$infoFact->appendChild($xml->createElement("codDocModificado",$xtodocu));
					$infoFact->appendChild($xml->createElement("numDocModificado",$xtonumero));
					$infoFact->appendChild($xml->createElement("fechaEmisionDocSustento",$xtofecha));
// 					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format(abs(msql_result($res_cel1,0,'stsubt')),2,'.','')));
					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format(abs(msql_result($res_cel1,0,'stsubt'))-abs(msql_result($res_cel1,0,'stdcto')),2,'.','')));
					$infoFact->appendChild($xml->createElement("valorModificacion",number_format(abs(msql_result($res_cel1,0,'stotal')),2,'.','')));
					$infoFact->appendChild($xml->createElement("moneda",'DOLAR'));
					
// 					$infoFact->appendChild($xml->createElement("totalDescuento",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
					$totConImp=$infoFact->appendChild($xml->createElement("totalConImpuestos"));
					{
						// 2 IVA
						$xtsubtiva0=abs(msql_result($res_cel1,0,'stsubtiva0'));
						if($xtsubtiva0!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje","0"));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva0,2,'.','')));
// 							$totImp->appendChild($xml->createElement("tarifa","0"));
							$totImp->appendChild($xml->createElement("valor","0.00"));
							
						}
						}

						
						$porcIva=msql_result($res_cel1,0,'piva');
						if($porcIva==0){$codPorcIva='0';}
						if($porcIva==12){$codPorcIva='2';}
						if($porcIva==14){$codPorcIva='3';}
						if($porcIva==15){$codPorcIva='4';}
                              if($enti_exiva==1){$codPorcIva='7';}
						
						$xtsubtiva=abs(msql_result($res_cel1,0,'stsubtiva'));
            $xvaloriva=abs(msql_result($res_cel1,0,'stiva'));
						if($xtsubtiva!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva,2,'.','')));
// 							$totImp->appendChild($xml->createElement("tarifa",number_format(msql_result($res_cel1,0,'piva'),0,'.','')));
							$totImp->appendChild($xml->createElement("valor",number_format($xvaloriva,2,'.','')));
						}
						}
			
						// 3 ICE
						// 5 IRBP
					}
					$motivo=msql_result($res_cel1,0,'concepto');
          if($motivo==''){$motivo=@msql_result($res_cel1,0,'detalle');}
          if($motivo==''){$motivo=@msql_result($res_cel1,0,'item_descri');}
//           if($motivo==''){$motivo='NOTA DE CREDITO';}
          
// 					$infoFact->appendChild($xml->createElement("propina","0.00"));
// 					$infoFact->appendChild($xml->createElement("importeTotal",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
					$infoFact->appendChild($xml->createElement("motivo",$motivo));
// 					$infoFact->appendChild($xml->createElement("moneda","DOLAR"));
// 					$pagos=$infoFact->appendChild($xml->createElement("pagos"));
// 					{
// 						$plazo=msql_result($res_cel1,0,'plazo');
// 						if($plazo=0){$plazo=1;}
// 						$pago=$pagos->appendChild($xml->createElement("pago"));
// 						{
// 							$pago->appendChild($xml->createElement("formaPago",msql_result($res_cel1,0,'fpag')));
// 							$pago->appendChild($xml->createElement("total",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
// 							$pago->appendChild($xml->createElement("plazo",number_format($plazo,0)));
// 							$pago->appendChild($xml->createElement("unidadTiempo","dias"));
// 						}
// 					}
				}
				$detalles=$factura->appendChild($xml->createElement("detalles"));
				{
					while($aso_cel2=msql_fetch_assoc($res_cel2))
					{
						$detalle=$detalles->appendChild($xml->createElement("detalle"));
						{
							$detalle->appendChild($xml->createElement("codigoInterno",$aso_cel2['item']));
							$detalle->appendChild($xml->createElement("codigoAdicional",$aso_cel2['item']));
							$detalle->appendChild($xml->createElement("descripcion",$aso_cel2['item_descri']));
							$detalle->appendChild($xml->createElement("cantidad",number_format($aso_cel2['cant'],2,'.','')));
// 							$detalle->appendChild($xml->createElement("precioUnitario",number_format($aso_cel2['puni'],6,'.','')));
							$detalle->appendChild($xml->createElement("precioUnitario",number_format($aso_cel2['puni']*(1-$aso_cel2['dcto']/100),6,'.','')));
// 							$detalle->appendChild($xml->createElement("precioSinSubsidio",number_format($aso_cel2['puni'],6,'.','')));
// 							$detalle->appendChild($xml->createElement("descuento",number_format(abs($aso_cel2['tdcto']),2,'.','')));
// 							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format(abs($aso_cel2['tsubt']),2,'.','')));
							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format(abs($aso_cel2['tsubt'])-abs($aso_cel2['tdcto']),2,'.','')));
							

							//maximo 3 campos char(300)
							$detAdic1='';
							$detAdic2='';
							$detAdic3='';
							$nomAdic1='';
							$nomAdic2='';
							$nomAdic3='';
							
							$detAdic1=substr($aso_cel2['detalle'],0,300);
							$nomAdic1='Detalle';
							if($detAdic1.$detAdic2.$detAdic3!='')
							{
								$adicionales=$detalle->appendChild($xml->createElement("detallesAdicionales"));
								{
									if($detAdic1!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic1);
										$adicional->setAttribute("valor",$detAdic1);
									}
									if($detAdic2!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic2);
										$adicional->setAttribute("valor",$detAdic2);
									}
									if($detAdic3!='')
									{
										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
										$adicional->setAttribute("nombre",$nomAdic3);
										$adicional->setAttribute("valor",$detAdic3);
									}
								}
							}
													
							$impuestos=$detalle->appendChild($xml->createElement("impuestos"));
							{
									// 2 IVA
								$porcIva=$aso_cel2['iva'];
								if($porcIva==0){$codPorcIva='0';}
								if($porcIva==12){$codPorcIva='2';}
								if($porcIva==14){$codPorcIva='3';}
								if($porcIva==15){$codPorcIva='4';}
                                        if($enti_exiva==1){$codPorcIva='7';}
								$impuesto=$impuestos->appendChild($xml->createElement("impuesto"));
								{
									$impuesto->appendChild($xml->createElement("codigo","2"));
									$impuesto->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
									$impuesto->appendChild($xml->createElement("tarifa",number_format($aso_cel2['iva'],2,'.','')));
									if($porcIva==0)
									{$impuesto->appendChild($xml->createElement("baseImponible",number_format(abs($aso_cel2['tsubtiva0']),2,'.','')));}
									else
									{$impuesto->appendChild($xml->createElement("baseImponible",number_format(abs($aso_cel2['tsubtiva']),2,'.','')));}
									$impuesto->appendChild($xml->createElement("valor",number_format(abs($aso_cel2['tiva']),2,'.','')));
								}
						
									// 3 ICE
									// 5 IRBP
						
							}
						}
					}	
				}
				
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional"));
				$adicionales=msql_result($res_cel1,0,'infoadic');
				$adicionales=str_replace('[[','<campoAdicional nombre="',$adicionales);
				$adicionales=str_replace(']]','">',$adicionales);
				$adicionales=str_replace('||','.</campoAdicional>',$adicionales);

// 				$adicionales=str_replace('{"','<campoAdicional nombre="',$adicionales);
// 				$adicionales=str_replace('":"','">',$adicionales);
// 				$adicionales=str_replace('"}','.</campoAdicional>',$adicionales);
        
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional",$adicionales));
				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional","[[ADICIONALES]]"));
				{
					// AQUI INFOADIC EDSK
					
					
					$adi_concepto=msql_result($res_cel1,0,'concepto');
					if($adi_concepto!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
					$campoAdic->setAttribute("nombre","Concepto");
					}

					$adi_direccion=msql_result($res_enti,0,'enti_matriz');
					if($adi_direccion!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_direccion));
					$campoAdic->setAttribute("nombre","Direccion");
					}

					$adi_telefono=msql_result($res_enti,0,'enti_telefono');
					if($adi_telefono!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_telefono));
					$campoAdic->setAttribute("nombre","Telefono");
					}

// 					$adi_emailce=strtolower(msql_result($res_enti,0,'enti_emailce'));
          $adi_emailce=get_emailce(msql_result($res_enti,0,'enti_codigo'));
               if($empr_ceuser==1 and empty($adi_emailce))
               {$adi_emailce=get_emailce($cfg_ruc);}
                         
                         
					if($adi_emailce!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_emailce));
					$campoAdic->setAttribute("nombre","Email");
					}
				}
			}
		}
		
		if($codDoc=='05')
		{
			$factura=$xml->appendChild($xml->createElement("notaDebito"));
			$factura->setAttribute("id","comprobante");
// 			$factura->setAttribute("version", "1.1.0");
			$factura->setAttribute("version", "1.0.0");
			{
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');
				if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
					$infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
					$infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
					$infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
					$infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
					$infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
					$infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
					$infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
					$infoTrib->appendChild($xml->createElement("estab",$estab));
					$infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
					$infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
					$infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
           if($rime==12)
           {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
           if($agret==1)
           {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
				}
				$infoFact=$factura->appendChild($xml->createElement("infoNotaDebito"));
				{
					$xfecha= date('d/m/Y' ,strtotime(msql_result($res_cel1,0,'fecha')));
					$xcoesp='NO';
					$xobcon='NO';
					$xcoesn=msql_result($res_cel1,0,'enti_coesn');
					$xcoesn='5368';
					
					$xtodocu=msql_result($res_cel1,0,'todocu');
					$xtoptoe=msql_result($res_cel1,0,'toptoe');
					$xtonumero=msql_result($res_cel1,0,'tonume');
					$sql_todoc='select * from vtas1 where docu="'.$xtodocu.'" and ptoe="'.$xtoptoe.'" and numero="'.$xtonumero.'"';
					$res_todoc=msql_query($sql_todoc,$link_vcrx);
          
          if(msql_num_rows($res_todoc)==0)
          {
            $sql_todoc='select * from vtas1 where docu="'.$xtodocu.'" and numero="'.$xtonumero.'"';
            $res_todoc=msql_query($sql_todoc,$link_vcrx);
          }
					
					$xtofecha=@msql_result($res_todoc,0,'fecha');
					$xtofecha=substr($xtofecha,8,2).'/'.substr($xtofecha,5,2).'/'.substr($xtofecha,0,4);
					$xtodocu='01';
					$xtonumero=substr($xtoptoe,0,3).'-'.substr($xtoptoe,3,3).'-'.$xtonumero;
						
					
					if(msql_result($res_cel1,0,'enti_coesp')=='1'){$xcoesp='SI'; $xcoesn='SI';}
					if(msql_result($res_cel1,0,'enti_obcon')=='1'){$xobcon='SI';}
					if(msql_result($res_cel1,0,'enti_coesp')=='S'){$xcoesp='SI'; $xcoesn='SI';}
					if(msql_result($res_cel1,0,'enti_obcon')=='S'){$xobcon='SI';}
					$infoFact->appendChild($xml->createElement("fechaEmision",$xfecha));
					$infoFact->appendChild($xml->createElement("dirEstablecimiento",$dirEstab));
// 					if($xcoesp=='SI'){$infoFact->appendChild($xml->createElement("contribuyenteEspecial",$xcoesn));}
// 					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionComprador",$tipoIdComp));
					$infoFact->appendChild($xml->createElement("razonSocialComprador",htmlspecialchars(msql_result($res_cel1,0,'enti_razsoc'))));
					$infoFact->appendChild($xml->createElement("identificacionComprador",msql_result($res_cel1,0,'enti')));

					$infoFact->appendChild($xml->createElement("codDocModificado",$xtodocu));
					$infoFact->appendChild($xml->createElement("numDocModificado",$xtonumero));
					$infoFact->appendChild($xml->createElement("fechaEmisionDocSustento",$xtofecha));
// 					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format(abs(msql_result($res_cel1,0,'stsubt')),2,'.','')));
					$infoFact->appendChild($xml->createElement("totalSinImpuestos",number_format(abs(msql_result($res_cel1,0,'stsubt'))-abs(msql_result($res_cel1,0,'stdcto')),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("valorModificacion",number_format(abs(msql_result($res_cel1,0,'stotal')),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("moneda",'DOLAR'));
					
// 					$infoFact->appendChild($xml->createElement("totalDescuento",number_format(msql_result($res_cel1,0,'stdcto'),2,'.','')));
// 					$totConImp=$infoFact->appendChild($xml->createElement("totalConImpuestos"));
// 					{
// 						// 2 IVA
// 						$xtsubtiva0=abs(msql_result($res_cel1,0,'stsubtiva0'));
// 						if($xtsubtiva0!=0)
// 						{
// 						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
// 						{
// 							$totImp->appendChild($xml->createElement("codigo","2"));
// 							$totImp->appendChild($xml->createElement("codigoPorcentaje","0"));
// // 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
// 							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva0,2,'.','')));
// // 							$totImp->appendChild($xml->createElement("tarifa","0"));
// 							$totImp->appendChild($xml->createElement("valor","0.00"));
							
// 						}
// 						}

						
// 						$porcIva=msql_result($res_cel1,0,'piva');
// 						if($porcIva==0){$codPorcIva='0';}
// 						if($porcIva==12){$codPorcIva='2';}
// 						if($porcIva==14){$codPorcIva='3';}
						
// 						$xtsubtiva=abs(msql_result($res_cel1,0,'stsubtiva'));
//             $xvaloriva=abs(msql_result($res_cel1,0,'stiva'));
// 						if($xtsubtiva!=0)
// 						{
// 						$totImp=$totConImp->appendChild($xml->createElement("totalImpuesto"));
// 						{
// 							$totImp->appendChild($xml->createElement("codigo","2"));
// 							$totImp->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
// // 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
// 							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva,2,'.','')));
// // 							$totImp->appendChild($xml->createElement("tarifa",number_format(msql_result($res_cel1,0,'piva'),0,'.','')));
// 							$totImp->appendChild($xml->createElement("valor",number_format($xvaloriva,2,'.','')));
// 						}
// 						}
			
// 						// 3 ICE
// 						// 5 IRBP
// 					}


          $valorTotal=0;
          
					$totConImp=$infoFact->appendChild($xml->createElement("impuestos"));
					{
						// 2 IVA
						$xtsubtiva0=abs(msql_result($res_cel1,0,'stsubtiva0'));
            $valorTotal=$valorTotal+$xtsubtiva0;
						if($xtsubtiva0!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("impuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje","0"));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("tarifa","0"));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva0,2,'.','')));
							$totImp->appendChild($xml->createElement("valor","0.00"));
							
						}
						}

						
						$porcIva=msql_result($res_cel1,0,'piva');
						if($porcIva==0){$codPorcIva='0';}
						if($porcIva==12){$codPorcIva='2';}
						if($porcIva==14){$codPorcIva='3';}
						if($porcIva==15){$codPorcIva='4';}
                              if($enti_exiva==1){$codPorcIva='7';}
						
						$xtsubtiva=abs(msql_result($res_cel1,0,'stsubtiva'));
            $xvaloriva=abs(msql_result($res_cel1,0,'stiva'));
            $valorTotal=$valorTotal+$xtsubtiva+$xvaloriva;
						if($xtsubtiva!=0)
						{
						$totImp=$totConImp->appendChild($xml->createElement("impuesto"));
						{
							$totImp->appendChild($xml->createElement("codigo","2"));
							$totImp->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
// 							$totImp->appendChild($xml->createElement("descuentoAdicional",number_format(msql_result($res_cel1,0,'stdcto'),2)));
							$totImp->appendChild($xml->createElement("tarifa",number_format($porcIva,2,'.','')));
							$totImp->appendChild($xml->createElement("baseImponible",number_format($xtsubtiva,2,'.','')));
// 							$totImp->appendChild($xml->createElement("tarifa",number_format(msql_result($res_cel1,0,'piva'),0,'.','')));
							$totImp->appendChild($xml->createElement("valor",number_format($xvaloriva,2,'.','')));
						}
						}
			
						// 3 ICE
						// 5 IRBP
					}
          
          
          
					$motivo=msql_result($res_cel1,0,'concepto');
          if($motivo==''){$motivo=@msql_result($res_cel1,0,'detalle');}
          if($motivo==''){$motivo=@msql_result($res_cel1,0,'item_descri');}
//           if($motivo==''){$motivo='NOTA DE CREDITO';}
          
// 					$infoFact->appendChild($xml->createElement("propina","0.00"));
// 					$infoFact->appendChild($xml->createElement("importeTotal",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
					$infoFact->appendChild($xml->createElement("valorTotal",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
// 					$infoFact->appendChild($xml->createElement("moneda","DOLAR"));
					$pagos=$infoFact->appendChild($xml->createElement("pagos"));
					{
						$plazo=msql_result($res_cel1,0,'plazo');
						if($plazo=0){$plazo=1;}
						$pago=$pagos->appendChild($xml->createElement("pago"));
						{
							$pago->appendChild($xml->createElement("formaPago",msql_result($res_cel1,0,'fpag')));
							$pago->appendChild($xml->createElement("total",number_format(msql_result($res_cel1,0,'stotal'),2,'.','')));
							$pago->appendChild($xml->createElement("plazo",number_format($plazo,0)));
							$pago->appendChild($xml->createElement("unidadTiempo","dias"));
						}
					}
				}
        
// 				$detalles->appendChild($xml->createElement("motivo",$motivo));
				$detalles=$factura->appendChild($xml->createElement("motivos"));
				{
					while($aso_cel2=msql_fetch_assoc($res_cel2))
					{
						$detalle=$detalles->appendChild($xml->createElement("motivo"));
						{
              $xrazon=$aso_cel2['detalle'];
              if(empty($xrazon)){$xrazon=$aso_cel2['concepto'];}
							$detalle->appendChild($xml->createElement("razon",$xrazon));
							$detalle->appendChild($xml->createElement("valor",number_format($aso_cel2['tsubt'],2,'.','')));
						}
					}	
				}
        
// 				$detalles=$factura->appendChild($xml->createElement("detalles"));
// 				{
//           msql_data_seek($res_cel2,0);
// 					while($aso_cel2=msql_fetch_assoc($res_cel2))
// 					{
// 						$detalle=$detalles->appendChild($xml->createElement("detalle"));
// 						{
// 							$detalle->appendChild($xml->createElement("codigoInterno",$aso_cel2['item']));
// 							$detalle->appendChild($xml->createElement("codigoAdicional",$aso_cel2['item']));
// 							$detalle->appendChild($xml->createElement("descripcion",$aso_cel2['item_descri']));
// 							$detalle->appendChild($xml->createElement("cantidad",number_format($aso_cel2['cant'],2,'.','')));
// // 							$detalle->appendChild($xml->createElement("precioUnitario",number_format($aso_cel2['puni'],6,'.','')));
// 							$detalle->appendChild($xml->createElement("precioUnitario",number_format($aso_cel2['puni']*(1-$aso_cel2['dcto']/100),6,'.','')));
// // 							$detalle->appendChild($xml->createElement("precioSinSubsidio",number_format($aso_cel2['puni'],6,'.','')));
// // 							$detalle->appendChild($xml->createElement("descuento",number_format(abs($aso_cel2['tdcto']),2,'.','')));
// // 							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format(abs($aso_cel2['tsubt']),2,'.','')));
// 							$detalle->appendChild($xml->createElement("precioTotalSinImpuesto",number_format(abs($aso_cel2['tsubt'])-abs($aso_cel2['tdcto']),2,'.','')));
							

// 							//maximo 3 campos char(300)
// 							$detAdic1='';
// 							$detAdic2='';
// 							$detAdic3='';
// 							$nomAdic1='';
// 							$nomAdic2='';
// 							$nomAdic3='';
							
// 							$detAdic1=substr($aso_cel2['detalle'],0,300);
// 							$nomAdic1='Detalle';
// 							if($detAdic1.$detAdic2.$detAdic3!='')
// 							{
// 								$adicionales=$detalle->appendChild($xml->createElement("detallesAdicionales"));
// 								{
// 									if($detAdic1!='')
// 									{
// 										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
// 										$adicional->setAttribute("nombre",$nomAdic1);
// 										$adicional->setAttribute("valor",$detAdic1);
// 									}
// 									if($detAdic2!='')
// 									{
// 										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
// 										$adicional->setAttribute("nombre",$nomAdic2);
// 										$adicional->setAttribute("valor",$detAdic2);
// 									}
// 									if($detAdic3!='')
// 									{
// 										$adicional=$adicionales->appendChild($xml->createElement("detAdicional"));
// 										$adicional->setAttribute("nombre",$nomAdic3);
// 										$adicional->setAttribute("valor",$detAdic3);
// 									}
// 								}
// 							}
													
// 							$impuestos=$detalle->appendChild($xml->createElement("impuestos"));
// 							{
// 									// 2 IVA
// 								$porcIva=$aso_cel2['iva'];
// 								if($porcIva==0){$codPorcIva='0';}
// 								if($porcIva==12){$codPorcIva='2';}
// 								if($porcIva==14){$codPorcIva='3';}
// 								$impuesto=$impuestos->appendChild($xml->createElement("impuesto"));
// 								{
// 									$impuesto->appendChild($xml->createElement("codigo","2"));
// 									$impuesto->appendChild($xml->createElement("codigoPorcentaje",$codPorcIva));
// 									$impuesto->appendChild($xml->createElement("tarifa",number_format($aso_cel2['iva'],2,'.','')));
// 									if($porcIva==0)
// 									{$impuesto->appendChild($xml->createElement("baseImponible",number_format(abs($aso_cel2['tsubtiva0']),2,'.','')));}
// 									else
// 									{$impuesto->appendChild($xml->createElement("baseImponible",number_format(abs($aso_cel2['tsubtiva']),2,'.','')));}
// 									$impuesto->appendChild($xml->createElement("valor",number_format(abs($aso_cel2['tiva']),2,'.','')));
// 								}
						
// 									// 3 ICE
// 									// 5 IRBP
						
// 							}
// 						}
// 					}	
// 				}
				
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional"));
				$adicionales=msql_result($res_cel1,0,'infoadic');
				$adicionales=str_replace('[[','<campoAdicional nombre="',$adicionales);
				$adicionales=str_replace(']]','">',$adicionales);
				$adicionales=str_replace('||','.</campoAdicional>',$adicionales);

// 				$adicionales=str_replace('{"','<campoAdicional nombre="',$adicionales);
// 				$adicionales=str_replace('":"','">',$adicionales);
// 				$adicionales=str_replace('"}','.</campoAdicional>',$adicionales);
        
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional",$adicionales));
				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional","[[ADICIONALES]]"));
				{
					// AQUI INFOADIC EDSK
					
               if($rimpe> 0)
               {
                  if($rimpe == 1)
                     $titrimpe = 'EMPRENDEDOR';
                  if($rimpe == 2)
                     $titrimpe = 'NEGOCIO POPULAR';
                  if($rimpe == 3)
                     $titrimpe = 'REGIMEN GENERAL';
                
//                  if (substr($cfg_ruc,2,1) <> '9')
//                      $titrimpe = 'RIMPE EMPRENDEDOR';
//                  else
//                      $titrimpe = 'REGIMEN RIMPE';

                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'REGIMEN RIMPE'));
                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
                   $xinfoa=1;
               }
          
              if($rime==12)
               {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'RÉGIMEN MICROEMPRESA'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
               }
					
//                if($agret==1)
//                {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'AGENTE DE RETENCION - RESOLUCION No NACDNCRASC20-00000001'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
//                }
					
					$adi_concepto=msql_result($res_cel1,0,'concepto');
					if($adi_concepto!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
					$campoAdic->setAttribute("nombre","Concepto");
					}

					$adi_direccion=msql_result($res_enti,0,'enti_matriz');
					if($adi_direccion!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_direccion));
					$campoAdic->setAttribute("nombre","Direccion");
					}

					$adi_telefono=msql_result($res_enti,0,'enti_telefono');
					if($adi_telefono!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_telefono));
					$campoAdic->setAttribute("nombre","Telefono");
					}

// 					$adi_emailce=strtolower(msql_result($res_enti,0,'enti_emailce'));
          $adi_emailce=get_emailce(msql_result($res_enti,0,'enti_codigo'));
               if($empr_ceuser==1 and empty($adi_emailce))
               {$adi_emailce=get_emailce($cfg_ruc);}
          
					if($adi_emailce!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_emailce));
					$campoAdic->setAttribute("nombre","Email");
					}
				}
			}
		}
		
		if($codDoc=='06')
		{
			$factura=$xml->appendChild($xml->createElement("guiaRemision"));
			$factura->setAttribute("id","comprobante");
			$factura->setAttribute("version", "1.0.0");
			{
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');
				if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
					$infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
					$infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
					$infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
					$infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
					$infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
					$infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
					$infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
					$infoTrib->appendChild($xml->createElement("estab",$estab));
					$infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
					$infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
					$infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
           if($rime==12)
           {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
           if($agret==1)
           {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
				}
				$infoFact=$factura->appendChild($xml->createElement("infoGuiaRemision"));
				{
					$xobcon='NO';
					$xfecha1=date('d/m/Y', strtotime(msql_result($res_cel1,0,'fecha1')));
					$xfecha2=date('d/m/Y', strtotime(msql_result($res_cel1,0,'fecha2')));
					
					$cedula1=msql_result($res_cel1,0,'cedula1');
//           {
//             $cedula1=msql_result($res_cel1,0,'cedula1').'';
//             $cedula2=msql_result($res_cel1,0,'cedula2').'';
//             $nombre1=r_fiel('enti',$cedula1);
//             $nombre2=r_fiel('enti',$cedula2);
//             if($cedula1=='' and $nombre1=='')
//             {
//               $cedula1=r_fiel('empr',$empr_codigo,'ruc');
//               $cedula1=substr($cedula1,0,10);          
//               $nombre1=r_fiel('enti',$cedula1);
//             }
//             if($cedula2=='' and $nombre2=='')
//             {
//               $cedula2=msql_result($res_tra1,0,'enti');
//               $nombre2=r_fiel('enti',$cedula2);
//             }
//             if($nombre1==''){$nombre1=msql_result($res_cel1,0,'nombre1');}
//             if($nombre2==''){$nombre2=msql_result($res_cel1,0,'nombre2');}
//             if($nombre2==''){$nombre2=msql_result($res_cel1,0,'enti_descri');}
            
//           }

          
					$sql_tran='select * from enti00 where enti_codigo like "'.$cedula1.'%" order by enti_codigo';
					$res_tran=msql_query($sql_tran,$link_vcrx);

          $tipoId=msql_result($res_tran,0,'enti_tipoid');
					
					if($tipoId=='R'){$tipoIdTran='04';}
					if($tipoId=='C'){$tipoIdTran='05';}
					if($tipoId=='P'){$tipoIdTran='06';}
					if($tipoId=='F'){$tipoIdTran='07';}
					if($tipoId=='-'){$tipoIdTran='08';}
					if($tipoId=='V'){$tipoIdTran='09';}
                         

                         $xobcon='NO';
					
					if(r_fiel('enti',$cedula1,'obcon')=='1'){$xobcon='SI';}
					if(r_fiel('enti',$cedula1,'obcon')=='S'){$xobcon='SI';}
					$infoFact->appendChild($xml->createElement("dirPartida",msql_result($res_cel1,0,'punto1')));
					$infoFact->appendChild($xml->createElement("razonSocialTransportista",msql_result($res_cel1,0,'nombre1')));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionTransportista",$tipoIdTran));
					$infoFact->appendChild($xml->createElement("rucTransportista",$cedula1.''));
					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("fechaIniTransporte",$xfecha1));
					$infoFact->appendChild($xml->createElement("fechaFinTransporte",$xfecha2));
					$infoFact->appendChild($xml->createElement("placa",msql_result($res_cel1,0,'placa')));
				}

				$motivo='VENTA';
				$rutagr=msql_result($res_cel1,0,'ruta');
        if($rutagr==''){$rutagr='GUAYAQUIL';}
        
				$idorig=msql_result($res_cel1,0,'idfrom');
				$mdorig=msql_result($res_cel1,0,'mdfrom');

        if($idorig!='')
        {
          $sql_orig='select * from '.$mdorig.'1 where idnum1="'.$idorig.'"';
          $res_orig=msql_query($sql_orig,$link_vcrx);
             
          $docuorig=msql_result($res_orig,0,'docu');
          $ptoeorig=msql_result($res_orig,0,'ptoe');
          $numeorig=substr($ptoeorig,0,3).'-'.substr($ptoeorig,3,3).'-'.msql_result($res_orig,0,'numero');
          $autoorig=@msql_result($res_orig,0,'autornum');
          $coddocsus=r_fiel('docu',$docuorig,'tice');
          if($autoorig==''){$autoorig=@msql_result($res_orig,0,'claveacc');}

             
          if(substr($docuorig,0,2)=='FC'){$motivo='VENTA';}
          if(substr($docuorig,0,2)=='EB'){$motivo='TRANSFERENCIA';}
          if(substr($docuorig,0,4)=='EB10')
          {
               $motivo='VENTA';
               $numfac=msql_result($res_orig,0,'numfac');
               $fecha=msql_result($res_orig,0,'fecha');
               $fecha1=date('Ymd',strtotime($fecha.' -2 month'));
               $fecha2=date('Ymd',strtotime($fecha.' +1 month'));
//                echo '*/*/*/'.$numfac.$fecha1;
               $sql_fact ='select * from vtas1 ';
               $sql_fact.='where status not in ("O","X") ';
               $sql_fact.='and numero='.$numfac.' ';
               $sql_fact.='and fecha>="'.$fecha1.'" ';
               $sql_fact.='and fecha<="'.$fecha2.'" ';
               $res_orig=msql_query($sql_fact,$link_vcrx);
               $idorig=msql_result($res_orig,0,'idnum1');
               if(!empty($idorig))
               {
                    $docuorig=msql_result($res_orig,0,'docu');
                    $ptoeorig=msql_result($res_orig,0,'ptoe');
                    $numeorig=substr($ptoeorig,0,3).'-'.substr($ptoeorig,3,3).'-'.msql_result($res_orig,0,'numero');
                    $autoorig=@msql_result($res_orig,0,'autornum');
                    $coddocsus=r_fiel('docu',$docuorig,'tice');
                    if($autoorig==''){$autoorig=@msql_result($res_orig,0,'claveacc');}
               }

          }
        }
        

				$destinatarios=$factura->appendChild($xml->createElement("destinatarios"));
				{
					$destinatario=$destinatarios->appendChild($xml->createElement("destinatario"));
					{
						$destinatario->appendChild($xml->createElement("identificacionDestinatario",msql_result($res_cel1,0,'cedula2').'001'));
						$destinatario->appendChild($xml->createElement("razonSocialDestinatario",htmlspecialchars(msql_result($res_cel1,0,'nombre2'))));
						$destinatario->appendChild($xml->createElement("dirDestinatario",msql_result($res_cel1,0,'punto2')));
						$destinatario->appendChild($xml->createElement("motivoTraslado",$motivo));
						$destinatario->appendChild($xml->createElement("ruta",$rutagr));
            if($docuorig!='')
            {
              $destinatario->appendChild($xml->createElement("codDocSustento",$coddocsus));
              $destinatario->appendChild($xml->createElement("numDocSustento",$numeorig));
              $destinatario->appendChild($xml->createElement("numAutDocSustento",$autoorig));
            }  

	// 				$detalles=$factura->appendChild($xml->createElement("detalles"));
						$detalles=$destinatario->appendChild($xml->createElement("detalles"));
						{
                                   msql_data_seek($res_cel2);
							while($aso_cel2=msql_fetch_assoc($res_cel2))
							{
								$detalle=$detalles->appendChild($xml->createElement("detalle"));
								{
									$detalle->appendChild($xml->createElement("codigoInterno",$aso_cel2['item']));
									$detalle->appendChild($xml->createElement("codigoAdicional",$aso_cel2['item']));
									$detalle->appendChild($xml->createElement("descripcion",$aso_cel2['item_descri']));
									$detalle->appendChild($xml->createElement("cantidad",number_format($aso_cel2['cant'],2,'.','')));
								}
							}	
						}
				

					}
				}

			}
		}
		
		if($codDoc=='07x')
		{
			$factura=$xml->appendChild($xml->createElement("comprobanteRetencion"));
			$factura->setAttribute("id","comprobante");
			$factura->setAttribute("version", "1.0.0");
			{
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');
				if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
					$infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
					$infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
					$infoTrib->appendChild($xml->createElement("razonSocial",$razsoc));
					$infoTrib->appendChild($xml->createElement("nombreComercial",$nomcom));
					$infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
					$infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
					$infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
					$infoTrib->appendChild($xml->createElement("estab",$estab));
					$infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
					$infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
					$infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
           if($rime==12)
           {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
           if($agret==1)
           {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
				}
				$infoFact=$factura->appendChild($xml->createElement("infoCompRetencion"));
				{
					$xfecha= date('d/m/Y' ,strtotime(msql_result($res_cel1,0,'fecha')));
					$xcoesp='NO';
					$xobcon='NO';
					$xcoesn=msql_result($res_cel1,0,'enti_coesn');
// 					$dirEstab=msql_result($res_cel1,0,'enti_matriz');
          $dirEstab='';
          {
            $matriz=msql_result($res_cel1,0,'enti_matriz');
            $tipoId=msql_result($res_cel1,0,'enti_tipoid');
            if(strlen(trim($dirEstab))<=2 or $estab=='001'){$dirEstab=$matriz;}
          }
          if(strlen(trim($dirEstab))<=2){$dirEstab=r_fiel('enti',msql_result($res_cel1,0,'enti'),'matriz');}
          if(strlen(trim($dirEstab))<=2){$dirEstab='Guayaquil';}
          
                         
          $xobcon='NO';
					$xcoesn='5368';
					if(msql_result($res_cel1,0,'enti_coesp')=='1'){$xcoesp='SI';}
					if(msql_result($res_cel1,0,'enti_obcon')=='1'){$xobcon='SI';}
					if(msql_result($res_cel1,0,'enti_coesp')=='S'){$xcoesp='SI';}
					if(msql_result($res_cel1,0,'enti_obcon')=='S'){$xobcon='SI';}
          $idsujret=msql_result($res_cel1,0,'enti');
          if(mb_stristr('06',$tipoIdComp))
          {$idsujret=msql_result($res_cel1,0,'enti_pasaporte');}  
          if(mb_stristr('08',$tipoIdComp))
          {$idsujret=msql_result($res_cel1,0,'enti_idexterior');}
          
					$infoFact->appendChild($xml->createElement("fechaEmision",$xfecha));
					$infoFact->appendChild($xml->createElement("dirEstablecimiento",$dirEstab));
// 					if($xcoesp=='SI'){$infoFact->appendChild($xml->createElement("contribuyenteEspecial",$xcoesn));}
					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionSujetoRetenido",$tipoIdComp));
					$infoFact->appendChild($xml->createElement("razonSocialSujetoRetenido",htmlspecialchars(msql_result($res_cel1,0,'enti_razsoc'))));
          $infoFact->appendChild($xml->createElement("identificacionSujetoRetenido",$idsujret));
            
          
					$infoFact->appendChild($xml->createElement("periodoFiscal",msql_result($res_cel1,0,'fmes').'/'.msql_result($res_cel1,0,'fanio')));
				}
				$detalles=$factura->appendChild($xml->createElement("impuestos"));
				{
					while($aso_cel2=msql_fetch_assoc($res_cel2))
					{
						$detalle=$detalles->appendChild($xml->createElement("impuesto"));
						{
// 							biva
// 							piva
// 							riva
							//Tabla 20
							$cair=trim($aso_cel2['cair']);
							$puni=$aso_cel2['puni'];
							$biva=$aso_cel2['biva'];
							$brta=$aso_cel2['brta'];
							$deta=$aso_cel2['detalle'];

// 							$coddocsus='01';
// 							if($aso_cel2['docum']=='FP11'){$coddocsus='03';}
                                   $coddocsus=r_fiel('docu',$aso_cel2['docum'],'tico');
// 							if($cair<300){$porcIva=$aso_cel2['puni'];}
							
// 							if($deta=='IVA'){$tabla20='1';}
							
							if($cair>="300"){$tabla20='1';}
							else{$tabla20='2';}
							
							if($tabla20=='1'){$tabla21=$cair;}
							
							if($tabla20=='2')
							{
								if($puni==30){$tabla21='1';} //OK
								if($puni==70){$tabla21='2';}
								if($puni==100){$tabla21='3';}

								if($puni==10){$tabla21='9';}
								if($puni==20){$tabla21='10';}
								if($puni==50){$tabla21='11';}
                
								if($puni==0){$tabla21='7';}
                
                //NO PROCEDE RETENCION
								//if($puni==0){$tabla21='8';}
							}
							
							if($puni==5){$tabla21='5480';}
							

// 							$xfecha= date('d/m/Y' ,strtotime($aso_cel2['fecdocum']));
							$xfecha= date('d/m/Y' ,strtotime($aso_cel2['fecha']));

							$detalle->appendChild($xml->createElement("codigo",$tabla20));
							$detalle->appendChild($xml->createElement("codigoRetencion",$tabla21));
							$detalle->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['cant'],2,'.','')));
							$detalle->appendChild($xml->createElement("porcentajeRetener",number_format($aso_cel2['puni'],2,'.','')));
							$detalle->appendChild($xml->createElement("valorRetenido",number_format($aso_cel2['tcant'],2,'.','')));
							$detalle->appendChild($xml->createElement("codDocSustento",$coddocsus));
							$detalle->appendChild($xml->createElement("numDocSustento",$aso_cel2['ptoem'].$aso_cel2['numer']));
							$detalle->appendChild($xml->createElement("fechaEmisionDocSustento",$xfecha));
						}
					}	
				}
				
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional"));
				$adicionales=msql_result($res_cel1,0,'infoadic');
				$adicionales=str_replace('[[','<campoAdicional nombre="',$adicionales);
				$adicionales=str_replace(']]','">',$adicionales);
				$adicionales=str_replace('||','</campoAdicional>',$adicionales);

// 				$adicionales=str_replace('{"','<campoAdicional nombre="',$adicionales);
// 				$adicionales=str_replace('":"','">',$adicionales);
// 				$adicionales=str_replace('"}','.</campoAdicional>',$adicionales);
        
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional",$adicionales));
				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional","[[ADICIONALES]]"));
				{
					// AQUI INFOADIC EDSK
               
//                if($enti=='0990071969001')
               if($rimpe> 0)
               {
                  if($rimpe == 1)
                     $titrimpe = 'EMPRENDEDOR';
                  if($rimpe == 2)
                     $titrimpe = 'NEGOCIO POPULAR';
                  if($rimpe == 3)
                     $titrimpe = 'REGIMEN GENERAL';
//                  if (substr($cfg_ruc,2,1) <> '9')
//                      $titrimpe = 'RIMPE EMPRENDEDOR';
//                  else
//                      $titrimpe = 'REGIMEN RIMPE';

                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'REGIMEN RIMPE'));
                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
                   $xinfoa=1;
               }
          
               if($rime==12)
               {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'RÉGIMEN MICROEMPRESA'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
               }
					
//                if($agret==1)
//                {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'AGENTE DE RETENCION - RESOLUCION No NACDNCRASC20-00000001'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
//                }
					
					
					$adi_concepto=msql_result($res_cel1,0,'concepto');
					if($adi_concepto!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
					$campoAdic->setAttribute("nombre","Concepto");
					}

					$adi_direccion=msql_result($res_enti,0,'enti_matriz');
               if($adi_direccion==''){$adi_direccion=$dirEstab;}
					if($adi_direccion!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_direccion));
					$campoAdic->setAttribute("nombre","Direccion");
					}

					$adi_telefono=msql_result($res_enti,0,'enti_telefono');
					if($adi_telefono!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_telefono));
					$campoAdic->setAttribute("nombre","Telefono");
					}

// 					$adi_emailce=strtolower(msql_result($res_enti,0,'enti_emailce'));
               $adi_emailce=get_emailce(msql_result($res_enti,0,'enti_codigo'));
               if($empr_ceuser==1 and empty($adi_emailce))
               {$adi_emailce=get_emailce($cfg_ruc);}
                         
					if($adi_emailce!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_emailce));
					$campoAdic->setAttribute("nombre","Email");
					}
				}
			}
		}

		if($codDoc=='07')
		{
			$factura=$xml->appendChild($xml->createElement("comprobanteRetencion"));
			$factura->setAttribute("id","comprobante");
			$factura->setAttribute("version", "2.0.0");
			{
				$razsoc=msql_result($res_emis,0,'enti_razsoc');
				$nomcom=msql_result($res_emis,0,'enti_nomcom');
				if($nomcom==""){$nomcom=$razsoc;}
				$infoTrib=$factura->appendChild($xml->createElement("infoTributaria"));
				{
					$infoTrib->appendChild($xml->createElement("ambiente",substr($clave_acceso,23,1)));
					$infoTrib->appendChild($xml->createElement("tipoEmision",substr($clave_acceso,47,1)));
					$infoTrib->appendChild($xml->createElement("razonSocial",htmlspecialchars($razsoc)));
					$infoTrib->appendChild($xml->createElement("nombreComercial",htmlspecialchars($nomcom)));
					$infoTrib->appendChild($xml->createElement("ruc",msql_result($res_emis,0,'enti_codigo')));
					$infoTrib->appendChild($xml->createElement("claveAcceso",$clave_acceso));
					$infoTrib->appendChild($xml->createElement("codDoc",$codDoc));
					$infoTrib->appendChild($xml->createElement("estab",$estab));
					$infoTrib->appendChild($xml->createElement("ptoEmi",substr($clave_acceso,27,3)));
					$infoTrib->appendChild($xml->createElement("secuencial",substr($clave_acceso,30,9)));
					$infoTrib->appendChild($xml->createElement("dirMatriz",$matriz));
                         
                          if($rime==12)
                          {$infoTrib->appendChild($xml->createElement("regimenMicroempresas","CONTRIBUYENTE RÉGIMEN MICROEMPRESAS"));}
                          if($agret==1)
                          {$infoTrib->appendChild($xml->createElement("agenteRetencion","1"));}
				}
				$infoFact=$factura->appendChild($xml->createElement("infoCompRetencion"));
				{
					$xfecha= date('d/m/Y' ,strtotime(msql_result($res_cel1,0,'fecha')));
// 					$xcoesp='NO';
					$xcoesn='5368';
					$xcoesn=msql_result($res_cel1,0,'enti_coesn');
					$xobcon=msql_result($res_cel1,0,'enti_obcon');
					$xobcon='NO';
                         
                         
// 					$dirEstab=msql_result($res_cel1,0,'enti_matriz');
                         $dirEstab='';
                         {
                           $matriz=msql_result($res_cel1,0,'enti_matriz');
                           $tipoId=msql_result($res_cel1,0,'enti_tipoid');
                           if(strlen(trim($dirEstab))<=2 or $estab=='001'){$dirEstab=$matriz;}
                         }
                         if(strlen(trim($dirEstab))<=2){$dirEstab=r_fiel('enti',msql_result($res_cel1,0,'enti'),'matriz');}
                         if(strlen(trim($dirEstab))<=2){$dirEstab='Guayaquil';}
					if(msql_result($res_cel1,0,'enti_coesp')=='1'){$xcoesp='SI';}
					if(msql_result($res_cel1,0,'enti_obcon')=='1'){$xobcon='SI';}
//                          else{$xobcon='NO';}
					if(msql_result($res_cel1,0,'enti_coesp')=='S'){$xcoesp='SI';}
					if(msql_result($res_cel1,0,'enti_obcon')=='S'){$xobcon='SI';}
//                          else{$xobcon='NO';}
                         
                         $idsujret=msql_result($res_cel1,0,'enti');
                         
                         if(mb_stristr('06',$tipoIdComp)){$idsujret=msql_result($res_cel1,0,'enti_pasaporte');}  
                         if(mb_stristr('08',$tipoIdComp)){$idsujret=msql_result($res_cel1,0,'enti_idexterior');}
                         
//                          echo '*/*/*'.$tipoIdComp;
//                          echo '*/*/*'.$xobcon;
          
					$infoFact->appendChild($xml->createElement("fechaEmision",$xfecha));
					$infoFact->appendChild($xml->createElement("dirEstablecimiento",$dirEstab));
// 					if($xcoesp=='SI'){$infoFact->appendChild($xml->createElement("contribuyenteEspecial",$xcoesn));}
					$infoFact->appendChild($xml->createElement("obligadoContabilidad",$xobcon));
					$infoFact->appendChild($xml->createElement("tipoIdentificacionSujetoRetenido",$tipoIdComp));


                         
                         
                         $tipoId=msql_result($res_cel1,0,'enti_tipoid');
                         $tiposujetoretenido='04';
                         {
//                                if($tipoId=='R'){$tiposujetoretenido='04';}
//                                if($tipoId=='C'){$tiposujetoretenido='05';}
//                                if($tipoId=='F'){$tiposujetoretenido='07';}
                              
//                                if($tipoId=='P'){$tiposujetoretenido='06';}
//                                if($tipoId=='E'){$tiposujetoretenido='08';}
//                                if($tipoId=='V'){$tiposujetoretenido='09';}
                              
                               if($tipoId=='R'){$tiposujetoretenido='01';}
                               if($tipoId=='C'){$tiposujetoretenido='01';}
                               if($tipoId=='F'){$tiposujetoretenido='01';}
                              
                               if($tipoId=='P'){$tiposujetoretenido='02';}
                               if($tipoId=='E'){$tiposujetoretenido='02';}
                               if($tipoId=='V'){$tiposujetoretenido='02';}
                              
                         }
                         
                         
                         
                         
//                          $tiposujetoretenido='';
                         $parterel='NO';
                         
//                          echo '======================='.$tipoId;
                         
//                          if($tipoId!='R')
                         if(!mb_stristr('R.C',$tipoId))     
                         {$infoFact->appendChild($xml->createElement("tipoSujetoRetenido",$tiposujetoretenido));}
					$infoFact->appendChild($xml->createElement("parteRel",$parterel));
                         
                         
					$infoFact->appendChild($xml->createElement("razonSocialSujetoRetenido",htmlspecialchars(msql_result($res_cel1,0,'enti_razsoc'))));
                         $infoFact->appendChild($xml->createElement("identificacionSujetoRetenido",$idsujret));
            
          
					$infoFact->appendChild($xml->createElement("periodoFiscal",msql_result($res_cel1,0,'fmes').'/'.msql_result($res_cel1,0,'fanio')));
				}
                    
                    
                    $sql_fact ='select * from comp12 ';
//                     $sql_fact.='select * from comp ';
//                     $sql_fact.=',*  ';
//                     $sql_fact.='from comp1 left join comp2 on idnum1=idnum2 ';
                    $sql_fact.='where status not in ("O","X") ';
                    $sql_fact.='and enti="'.msql_result($res_cel1,0,'enti').'" ';
                    $sql_fact.='and docu="'.msql_result($res_cel1,0,'docum').'" ';
                    $sql_fact.='and numero="'.msql_result($res_cel1,0,'numer').'" ';
                    $sql_fact.='and fecha>="'.date('Y-m-01',strtotime(msql_result($res_cel1,0,'fecha').' -1 month')).'" ';
                    $sql_fact.='and fecha<="'.msql_result($res_cel1,0,'fecha').'" ';
                    
                    $sql_total=sql_total('comp');      
                    $sql_fact=str_replace('*','*,'.$sql_total,$sql_fact);

                    
                    
                    $res_fact=msql_query($sql_fact,$link_vcrx);
                    
                    $xnumero=msql_result($res_fact,0,'ptoe').msql_result($res_fact,0,'numero');
                    $xfecha=msql_result($res_fact,0,'fecha');
                    if(empty($xnumero))
                    {
                         $xnumero=msql_result($res_cel1,0,'ptoem').msql_result($res_cel1,0,'numer');
                         $xfecha=msql_result($res_cel1,0,'fecha');
                    }
                    
                    $xsuco=msql_result($res_fact,0,'suco');
                    if(strlen($xsuco)<2){$xsuco='01';}
                    
                    $xtico=r_fiel('docu',msql_result($res_fact,0,'docu'),'tico');
                    if(strlen($xtico)<2){$xtico='01';}
                    
                    $xnumaut=msql_result($res_fact,0,'autornum');
                    if(empty($xnumaut))
                    {$xnumaut=msql_result($res_fact,0,'atrznum');}
                    if(empty($xnumaut))
                    {$xnumaut='1234567890';}

                    $xpagole='01';
                    $xpais=r_fiel('enti',msql_result($res_fact,0,'enti'),'pais');
                    if($xpais!='ECUA' and !empty($xpais)){$xpagole='02';}
                    $xpaiscodi=r_fiel('pais',$xpais,'ats');
                    
                    
				$docssustento=$factura->appendChild($xml->createElement("docsSustento"));
                         $docsustento=$docssustento->appendChild($xml->createElement("docSustento"));
                              $docsustento->appendChild($xml->createElement("codSustento",$xsuco));
                              $docsustento->appendChild($xml->createElement("codDocSustento",$xtico));

                              //opcional
                              $docsustento->appendChild($xml->createElement("numDocSustento",$xnumero));                    
                              $docsustento->appendChild($xml->createElement("fechaEmisionDocSustento",date('d/m/Y',strtotime($xfecha))));                    
                              //opcional
                    
                              $docsustento->appendChild($xml->createElement("numAutDocSustento",$xnumaut));                    
                              $docsustento->appendChild($xml->createElement("pagoLocExt",$xpagole));
                    
                              if($xpagole=='02')
                              {
                                   $xtiporegi='01';
                                   $docsustento->appendChild($xml->createElement("tipoRegi",$xtiporegi));
                                   $docsustento->appendChild($xml->createElement("paisEfecPago",$xpaiscodi));
                                   
//                                    $xcondobtri='SI/NO';
                                   $xcondobtri='NO';
//                                    $docsustento->appendChild($xml->createElement("apliConvDobTrib",$xcondobtri));
                                   $docsustento->appendChild($xml->createElement("aplicConvDobTrib",$xcondobtri));
                                   
                                   if($xcondobtri=='NO')
                                   {$docsustento->appendChild($xml->createElement("pagExtSujRetNorLeg",'NO'));}
                                   $docsustento->appendChild($xml->createElement("pagoRegFis",'NO'));
                              }
                    
                              if($xtico=='41')
                              {
                                   $docsustento->appendChild($xml->createElement("totalComprobantesReembolso",''));
                                   $docsustento->appendChild($xml->createElement("totalBaseImponibleReembolso",''));
                                   $docsustento->appendChild($xml->createElement("totalImpuestoReembolso",''));
                              }

                    
//                               echo '*/*/*/*'.msql_result($res_fact,0,'tsubtiva');
//                               echo '*/*/*/*'.msql_result($res_fact,0,'stsubtiva');
                              $totsinimp=msql_result($res_fact,0,'stsubtiva')+msql_result($res_fact,0,'stsubtiva0');
                              $importetotal=msql_result($res_fact,0,'stotal');
                              if($totsinimp==0)
                              {
                                   $totsinimp=abs(msql_result($res_cel1,0,'sbrta'));
                                   $importetotal=abs(msql_result($res_cel1,0,'sbrta'))+abs(msql_result($res_cel1,0,'sbiva'));
                              }

                              $docsustento->appendChild($xml->createElement("totalSinImpuestos",round($totsinimp,2)));
                              $docsustento->appendChild($xml->createElement("importeTotal",round($importetotal,2)));
                    
// tabla 16 CE
// IVA 2
// ICE 3                      
// IRBPNR 5
                                        
// tabla 17 CE
// 0% 0
// 12% 2
// 14% 3
// No Objeto de Impuesto 6
// Exento de IVA 7                    
                              $facbiva=msql_result($res_fact,0,'stsubtiva');
//                               $facpiva=msql_result($res_fact,0,'siva');
                              $facpiva=msql_result($res_fact,0,'piva');
                              $factiva=msql_result($res_fact,0,'stiva');
                    
                              $facbice=msql_result($res_fact,0,'stsubtice');
                              $facpice=msql_result($res_fact,0,'ice');
                              $factice=msql_result($res_fact,0,'stice');
                    
                              $facbirbp=msql_result($res_fact,0,'stsubtirbp');
                              $facpirbp=msql_result($res_fact,0,'irbp');
                              $factirbp=msql_result($res_fact,0,'stirbp');
                    
//                               echo '==='.$facbiva;
//                               echo '==='.$facpiva;
                              if($facbiva==0)
                              {
                                   $facbiva=msql_result($res_cel1,0,'sbiva');
//                                    $facpiva=msql_result($res_cel1,0,'piva');
                                   $facpiva=12;
                                   if(date('Y-m-d')>='2024-04-01')
                                   {$facpiva=15;}
                                   
                                   $facbiva=$facbiva/($facpiva/100);
                                   $factiva=msql_result($res_cel1,0,'sbiva');
                              }
                    
                              if($facbice==0)
                              {
                                   $facbice=msql_result($res_cel1,0,'sbice');
                                   $facpice=msql_result($res_cel1,0,'pice');
                                   $factice=msql_result($res_cel1,0,'rice');
                              }
                    
                              if($facbirbp==0)
                              {
                                   $facbirbp=msql_result($res_cel1,0,'sbirbp');
                                   $facpirbp=msql_result($res_cel1,0,'pirbp');
                                   $factirbp=msql_result($res_cel1,0,'rirbp');
                              }
                    
                              $facbiva=round($facbiva,2);
                              $factiva=round($factiva,2);
//                                         $retencion->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['cant'],2,'.','')));
                    
                                   $codpiva=0;
                                   if($facpiva==0){$codpiva='0';}  
                                   if($facpiva==12){$codpiva='2';}  
                                   if($facpiva==14){$codpiva='3';}  
                                   if($facpiva==15){$codpiva='4';}  


                    
                              $impuestosdocsustento=$docsustento->appendChild($xml->createElement("impuestosDocSustento",''));
                                   if($facbiva==0)
                                   {
                                   $impuestodocsustento=$impuestosdocsustento->appendChild($xml->createElement("impuestoDocSustento",' '));
                                        $impuestodocsustento->appendChild($xml->createElement("codImpuestoDocSustento","2"));
//                                         $impuestodocsustento->appendChild($xml->createElement("codigoPorcentaje","2"));
                                        $impuestodocsustento->appendChild($xml->createElement("codigoPorcentaje",$codpiva));
                                        $impuestodocsustento->appendChild($xml->createElement("baseImponible",number_format($facbiva,2,'.','')));
//                                         $impuestodocsustento->appendChild($xml->createElement("tarifa","12"));
                                        $impuestodocsustento->appendChild($xml->createElement("tarifa",$facpiva));
                                        $impuestodocsustento->appendChild($xml->createElement("valorImpuesto",number_format($factiva,2,'.','')));
                                   }
                    
                                   if($facbiva>0)
                                   {
                                   $impuestodocsustento=$impuestosdocsustento->appendChild($xml->createElement("impuestoDocSustento",' '));
                                        $impuestodocsustento->appendChild($xml->createElement("codImpuestoDocSustento","2"));
                                        $impuestodocsustento->appendChild($xml->createElement("codigoPorcentaje",$codpiva));
                                        $impuestodocsustento->appendChild($xml->createElement("baseImponible",number_format($facbiva,2,'.','')));
                                        $impuestodocsustento->appendChild($xml->createElement("tarifa",$facpiva));
                                        $impuestodocsustento->appendChild($xml->createElement("valorImpuesto",number_format($factiva,2,'.','')));
                                   }
                    
                                   if($facbice>0)
                                   {
                                   $impuestodocsustento=$impuestosdocsustento->appendChild($xml->createElement("impuestoDocSustento",' '));
                                        $impuestodocsustento->appendChild($xml->createElement("codImpuestoDocSustento","3"));
                                        $impuestodocsustento->appendChild($xml->createElement("codigoPorcentaje",""));
                                        $impuestodocsustento->appendChild($xml->createElement("baseImponible",number_format($facbice,2)));
                                        $impuestodocsustento->appendChild($xml->createElement("tarifa",$facpirbp));
                                        $impuestodocsustento->appendChild($xml->createElement("valorImpuesto",$factirbp));
                                   }
                    
                                   if($facbirbp>0)
                                   {
                                   $impuestodocsustento=$impuestosdocsustento->appendChild($xml->createElement("impuestoDocSustento",' '));
                                        $impuestodocsustento->appendChild($xml->createElement("codImpuestoDocSustento","5"));
                                        $impuestodocsustento->appendChild($xml->createElement("codigoPorcentaje",""));
                                        $impuestodocsustento->appendChild($xml->createElement("baseImponible",round($facbirbp,2)));
                                        $impuestodocsustento->appendChild($xml->createElement("tarifa",$facpirbp));
                                        $impuestodocsustento->appendChild($xml->createElement("valorImpuesto",$factirbp));
                                   }
                    

                    
// tabla 19 CE
// RENTA 1
// IVA 2
// ISD 6     
                              $retenciones=$docsustento->appendChild($xml->createElement("retenciones",''));
                                   $totreten=0;
                                   while($aso_cel2=msql_fetch_assoc($res_cel2))
                                   {
                                   $retencion=$retenciones->appendChild($xml->createElement("retencion",''));
                                        //Tabla 20
                                        $cair=trim($aso_cel2['cair']);
                                        $puni=$aso_cel2['puni'];
                                        $biva=$aso_cel2['biva'];
                                        $brta=$aso_cel2['brta'];
                                        $deta=$aso_cel2['detalle'];

//                                         $coddocsus=r_fiel('docu',$aso_cel2['docum'],'tico');
                                        if($cair>="300"){$tabla20='1';}
                                        else{$tabla20='2';}

                                        if($tabla20=='1'){$tabla21=$cair;}

                                        if($tabla20=='2')
                                        {
                                             if($puni==30){$tabla21='1';} //OK
                                             if($puni==70){$tabla21='2';}
                                             if($puni==100){$tabla21='3';}

                                             if($puni==10){$tabla21='9';}
                                             if($puni==20){$tabla21='10';}
                                             if($puni==50){$tabla21='11';}

                                             if($puni==0){$tabla21='7';}

                                        }

                                        if($puni==5){$tabla21='5480';}
                                        $xfecha= date('d/m/Y' ,strtotime($aso_cel2['fecha']));

                                        $retencion->appendChild($xml->createElement("codigo",$tabla20));
                                        $retencion->appendChild($xml->createElement("codigoRetencion",$tabla21));
                                        $retencion->appendChild($xml->createElement("baseImponible",number_format($aso_cel2['cant'],2,'.','')));
                                        $retencion->appendChild($xml->createElement("porcentajeRetener",number_format($aso_cel2['puni'],2,'.','')));
                                        $retencion->appendChild($xml->createElement("valorRetenido",number_format($aso_cel2['tcant'],2,'.','')));
                                        $totreten+=$aso_cel2['tcant'];
//                                         $retencion->appendChild($xml->createElement("codDocSustento",$coddocsus));
//                                         $retencion->appendChild($xml->createElement("numDocSustento",$aso_cel2['ptoem'].$aso_cel2['numer']));
//                                         $retencion->appendChild($xml->createElement("fechaEmisionDocSustento",$xfecha));
                                        
                                   }
                    
//                               msql_data_seek($res_fact);
                    // obligatori coddocsustento=41
//                               $reembolsos=$docsustento->appendChild($xml->createElement("reembolsos",''));
//                                    $reembolsodetalle=$reembolsos->appendChild($xml->createElement("reembolsoDetalle",''));
//                                    $detalleimpuestos=$reembolsos->appendChild($xml->createElement("detalleImpuestos",''));
//                                         $detalleimpuesto=$detalleimpuestos->appendChild($xml->createElement("detalleImpuesto",''));
                    
                    
                              $pagos=$docsustento->appendChild($xml->createElement("pagos",''));
                                   $xpago='20';
                                   $xtotpago=msql_result($res_fact,0,'stotal');
                                   if($xtotpago==0)
                                   {$xtotpago=$importetotal;}
                                   $xtotpago=$xtotpago-abs($totreten);
                                   $pago=$pagos->appendChild($xml->createElement("pago",''));
                                        $pago->appendChild($xml->createElement("formaPago",$xpago));
                                        $pago->appendChild($xml->createElement("total",round($xtotpago,2)));
                         
                    
                    
                    
// 				$detalles=$factura->appendChild($xml->createElement("impuestos"));
// 				{
// 					while($aso_cel2=msql_fetch_assoc($res_cel2))
// 					{
// 						$detalle=$detalles->appendChild($xml->createElement("impuesto"));
// 						{
// 						}
// 					}	
// 				}
				
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional"));
				$adicionales=msql_result($res_cel1,0,'infoadic');
				$adicionales=str_replace('[[','<campoAdicional nombre="',$adicionales);
				$adicionales=str_replace(']]','">',$adicionales);
				$adicionales=str_replace('||','</campoAdicional>',$adicionales);

// 				$adicionales=str_replace('{"','<campoAdicional nombre="',$adicionales);
// 				$adicionales=str_replace('":"','">',$adicionales);
// 				$adicionales=str_replace('"}','.</campoAdicional>',$adicionales);
        
// 				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional",$adicionales));
				$infoAdic=$factura->appendChild($xml->createElement("infoAdicional","[[ADICIONALES]]"));
				{
					// AQUI INFOADIC EDSK
               
//                if($enti=='0990071969001')
              if($rimpe==1)
               {
                 if (substr($cfg_ruc,2,1) <> '9')
                     $titrimpe = 'RIMPE EMPRENDEDOR';
                 else
                     $titrimpe = 'REGIMEN RIMPE';

                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'REGIMEN RIMPE'));
                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
                   $xinfoa=1;
               }
          
               if($rime==12)
               {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'RÉGIMEN MICROEMPRESA'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
               }
					
//                if($agret==1)
//                {
//                   $campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",'AGENTE DE RETENCION - RESOLUCION No NACDNCRASC20-00000001'));
//                   $campoAdic->setAttribute("nombre","CONTRIBUYENTE");
//                   $xinfoa=1;
//                }
					
					
					$adi_concepto=msql_result($res_cel1,0,'concepto');
                         $adi_concepto=str_replace('&',' Y ',$adi_concepto);
                         $adi_concepto=str_replace('/','-',$adi_concepto);
					if($adi_concepto!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
// 					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",htmlspecialchars($adi_concepto)));
					$campoAdic->setAttribute("nombre","Concepto");
					}

					$adi_direccion=msql_result($res_enti,0,'enti_matriz');
                         if($adi_direccion==''){$adi_direccion=$dirEstab;}
					if($adi_direccion!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_direccion));
					$campoAdic->setAttribute("nombre","Direccion");
					}

					$adi_telefono=msql_result($res_enti,0,'enti_telefono');
					if($adi_telefono!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_telefono));
					$campoAdic->setAttribute("nombre","Telefono");
					}

// 					$adi_emailce=strtolower(msql_result($res_enti,0,'enti_emailce'));
                         $adi_emailce=get_emailce(msql_result($res_enti,0,'enti_codigo'));
               if($empr_ceuser==1 and empty($adi_emailce))
               {$adi_emailce=get_emailce($cfg_ruc);}
                         
					if($adi_emailce!=''){
					$campoAdic=$infoAdic->appendChild($xml->createElement("campoAdicional",$adi_emailce));
					$campoAdic->setAttribute("nombre","Email");
					}
				}
			}
		}

    
    
          $subdce=mk_subdce($clave_acceso);
		$xml3=$rutace.$subdce.$clave_acceso.'.xml';
// 		$xml4=$rutace.$subdce.substr($clave_acceso,0,2).$clave_acceso.'.xml';
		$xml->formatOut=true;
		$xml->save($xml3);
		$xmlfile=file_get_contents($xml3);
    
		$xmlfile=str_replace('[[ADICIONALES]]',$adicionales,$xmlfile);
		$xmlfile=str_replace('&','&amp;',$xmlfile);
		$xmlfile=str_replace('´´','&quot;',$xmlfile);
		$xmlfile=str_replace('``','&quot;',$xmlfile);

//     $xmlfile=str_replace('°','&#176;',$xmlfile);
          $xmlfile=str_replace('°','',$xmlfile);

    
// 		$xmlfile=str_replace('á','a',$xmlfile);
// 		$xmlfile=str_replace('Á','A',$xmlfile);
// 		$xmlfile=str_replace('é','e',$xmlfile);
// 		$xmlfile=str_replace('É','E',$xmlfile);
// 		$xmlfile=str_replace('í','i',$xmlfile);
// 		$xmlfile=str_replace('Í','I',$xmlfile);
// 		$xmlfile=str_replace('ó','o',$xmlfile);
// 		$xmlfile=str_replace('Ó','O',$xmlfile);
// 		$xmlfile=str_replace('ú','u',$xmlfile);
// 		$xmlfile=str_replace('Ú','U',$xmlfile);
// 		$xmlfile=str_replace('ñ','n',$xmlfile);
// 		$xmlfile=str_replace('Ñ','N',$xmlfile);
    
		$xmlfile=str_replace('½','(1/2)',$xmlfile);
		$xmlfile=str_replace('º','*',$xmlfile);
		$xmlfile=str_replace('Ø','0',$xmlfile);
		$xmlfile=str_replace('À','A',$xmlfile);
		$xmlfile=str_replace('Ò','O',$xmlfile);
		$xmlfile=str_replace('·',' ',$xmlfile);
      
// 		$xmlfile=str_replace('º','\º',$xmlfile);
// 		$xmlfile=str_replace('N°','#',$xmlfile);
		$xmlfile=str_replace('N°','No.',$xmlfile);
// 		$xmlfile=str_replace('°','\°',$xmlfile);
		$xmlfile=str_replace('\n',' ',$xmlfile);
		$xmlfile=str_replace("\n",' ',$xmlfile);
		$xmlfile=str_replace(',','.',$xmlfile);
		$xmlfile=str_replace("&nbsp;",' ',$xmlfile);

		$xmlfile=str_replace("'",'&apos;',$xmlfile);

    
          $xmlfile=xml_chr13($xmlfile);
// 		$xmlfile=str_replace('CONTRIBUYENTE REGIMEN MICROEMPRESAS','CONTRIBUYENTE RÉGIMEN MICROEMPRESAS',$xmlfile);
		file_put_contents($xml3,$xmlfile);

          
          
    
          $sql_cele="update clac0 set clac_xml1=null where clac_codigo='".$clave_acceso."'";
		$res_cele=msql_query($sql_cele,$link_vcrx);

		$sql_cele="update clac0 set clac_xml1='".$xmlfile."' where clac_codigo='".$clave_acceso."'";
		$res_cele=msql_query($sql_cele,$link_vcrx);
          
//           if($codDoc!='07')  
          if($codDoc!='06' and $codDoc!='07')  
          {val_xml1($clave_acceso);}
    
		return $xml3;
	}
}

function fir_cexml($clave_acceso)
{
	include('../_cfg/config.php');
	include('php_session.php');
     
     $claveac=$clave_acceso;
     $ruc=substr($clave_acceso,10,10);
     
     $tabla='';
    if(substr($clave_acceso,8,2)=='01'){$tabla='vtas';}
    if(substr($clave_acceso,8,2)=='03'){$tabla='comp';}
    if(substr($clave_acceso,8,2)=='04'){$tabla='vtas';}
    if(substr($clave_acceso,8,2)=='06'){$tabla='guia';}
    if(substr($clave_acceso,8,2)=='07'){$tabla='retp';}
     
     
     
     $sql_docu='select * from '.$tabla.'1 where claveacc="'.$clave_acceso.'" and(autornum="" or autornum is null) and status!="O" and status!="X"';
     $res_docu=msql_query($sql_docu,$link_vcrx);
     if(msql_num_rows($res_docu)==0){return;}
     
     $xmlfile=r_fiel('clac',$clave_acceso,'xml1');
     
     
//      if(!empty($xmlfile))
     if(mb_stristr($xmlfile,$clave_acceso))
     {
          $p12file=r_fiel('empr',$cfg_empr,'p12file');
          $p12pass=r_fiel('empr',$cfg_empr,'p12pass');
          $p12file=file_get_contents('../../pk12/'.substr($ruc,0,10).'.p12');

          $headers = array("Content-Type" => "multipart/form-data");
          $vars = array('xmlfile'=>$xmlfile, 'p12file'=>$p12file, 'p12pass'=>$p12pass);
          $ch = curl_init();
          curl_setopt($ch, CURLOPT_URL, "https://vcrxol.jvmhost.net/firmador/firma1.php");
          curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
          curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($ch, CURLOPT_POST, 1);
          curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
     //      curl_setopt($ch, CURLOPT_SAFE_UPLOAD,true);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
          curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);
          $result = curl_exec($ch);

          if(mb_stristr($result,$clave_acceso))
          {
               $sql_updt='update clac0 set clac_xml2=\''.$result.'\' where clac_codigo="'.$clave_acceso.'"';
               $res_updt=msql_query($sql_updt,$link_vcrx);
               echo ' OK' ;
               if(msql_errno($link_vcrx)==0)
               {
                    $sql_updt='update '.$tabla.'1 set firmafec=now() where claveacc="'.$claveac.'"';
                    $res_updt=msql_query($sql_updt,$link_vcrx);
               }
          }
     }
     
}     

function gen_claveaccall()
{
     
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
	$selcol='idnum1,docu,ptoe,numero,fecha,enti,status,stfin,claveacc,idate';
	
	include('../_cfg/config.php');
	include('php_session.php');
  
       $ambiente=r_fiel('empr',$cfg_empr,'ambice');
       if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
  
	if($cfg_empr=='cpc1')
	{
		$sql_rete='update retp1 set ptoe="001002" where docu like "RP%" and fecha>="20180405"';
		$res_rete=msql_query($sql_rete,$link_vcrx);
	}
	
	if($cfg_empr=='flmn')
	{
		$sql_rete='update retp1 set ptoe="002001" where docu like "RP%" and fecha>="20180701"';
		$res_rete=msql_query($sql_rete,$link_vcrx);
	}

	if($cfg_empr=='gmny')
	{
		$sql_rete='update vtas1 set ptoe="003101", ptov="003101" where docu like "FC%" and fecha>="2020-09-01"';
		$res_rete=msql_query($sql_rete,$link_vcrx);
	}
   
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from clie1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O" ';
	$sql_cele.=' and (claveacc is null ';
     $sql_cele.=' or concat(ptoe,numero)!=substring(claveacc,25,15) ';  
	$sql_cele.=' or length(trim(claveacc))<49)';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';

     $sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from vtas1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (claveacc is null ';
     $sql_cele.=' or concat(ptoe,numero)!=substring(claveacc,25,15) ';  
	$sql_cele.=' or length(trim(claveacc))<49)';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
// 	if($cfg_empr=='amay')
//      {$sql_cele.=' limit 100 ';}
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from guia1';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (claveacc is null ';
     $sql_cele.=' or concat(ptoe,numero)!=substring(claveacc,25,15) ';  
	$sql_cele.=' or length(trim(claveacc))<49)';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from prod1';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (claveacc is null ';
     $sql_cele.=' or concat(ptoe,numero)!=substring(claveacc,25,15) ';  
	$sql_cele.=' or length(trim(claveacc))<49)';
// 	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (claveacc is null ';
     $sql_cele.=' or concat(ptoe,numero)!=substring(claveacc,25,15) ';  
	$sql_cele.=' or length(trim(claveacc))<49)';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from comp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (claveacc is null ';
     $sql_cele.=' or concat(ptoe,numero)!=substring(claveacc,25,15) ';  
	$sql_cele.=' or length(trim(claveacc))<49)';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' and (docu="FP03" or docu="FP11")';
	$sql_cele.=' order by fecha, docu, numero';
	$res_cele=msql_query($sql_cele,$link_vcrx);
          
//            echo '<br>'.$sql_cele;
//            echo '<br>'.msql_error($link_vcrx);
//            echo '<br>'.msql_num_rows($res_cele);
          
	while($aso_cele=msql_fetch_assoc($res_cele))
	{
          $xmin=r_fiel('docu',$aso_cele['docu'],'gencla');
          $xmin=(int)$xmin;
          if($xmin==0){$xmin=60;}
          
//           echo '*/*/*'.$xmin;

          if($xmin>0)
		{
               $fecha1= date('Y-m-d H:i:s', strtotime(' now -'.$xmin.' min'));
//           echo '<br>F '.$fecha1;
//           echo '<br>S '.$aso_cele['stfin'];
               if($aso_cele['idate']<=$fecha1 or $aso_cele['stfin']==1)
               {
                    $xclave=gen_claveacc($aso_cele['docu'],$aso_cele['idnum1']);
                    if(substr($xclave,23,1)=='1'){$xamb='PRUEBAS';}
                    if(substr($xclave,23,1)=='2'){$xamb='PRODUCCION';}
                    echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['ptoe'].'-'.$aso_cele['numero'].'-'.$aso_cele['fecha'].'-'.$aso_cele['status'].' / '.$xamb;
                    echo '<br>CLAVE: '.$xclave;
               }
		}	
	}
	}
	
}

function gen_cexmlall()
{
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
// 	$fecha1=date('Y-m-d',strtotime ('-5 days')); 
	$selcol.='idnum1,docu,ptoe,numero,fecha,enti,status,claveacc,firmafec,autornum,recepfec,emailto,autorfec,emailfec,recepmsj,autormsj';
	
	include('../_cfg/config.php');
	include('php_session.php');
  
       $ambiente=r_fiel('empr',$cfg_empr,'ambice');
       if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
  
     $tabla='vtas';
	$sql_ncre='update '.$tabla.'1 set todocu="FC10" where docu like "NC%" and fecha>="'.$fecha1.'" and todocu like "FP%"';
	$res_ncre=msql_query($sql_ncre,$link_vcrx);

  
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from vtas1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	//if($cfg_empr=='amay')
     //{$sql_cele.=' limit 100 ';}
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from guia1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';

	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from comp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' and (docu="FP03" or docu="FP11")';
          
// 	$sql_cele.=' limit 20 ';
    
	$res_cele=msql_query($sql_cele,$link_vcrx);
          
//           echo '<br>==='.$sql_cele;
//           echo '<br>==='.msql_num_rows($res_cele);
          
//           die();
   
	while($aso_cele=msql_fetch_assoc($res_cele))
	{
          if(substr($aso_cele['claveacc'],23,1)=='1'){$xamb='PRUEBAS';}
          if(substr($aso_cele['claveacc'],23,1)=='2'){$xamb='PRODUCCION';}

          echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['ptoe'].'-'.$aso_cele['numero'].'-'.$aso_cele['fecha'].'-'.$aso_cele['status']. ' / '.$xamb;
          echo '<br>CLAVE: '.$aso_cele['claveacc'];
          if($aso_cele['status']!='O' and $aso_cele['status']!='X')
          {echo '<br>XML : '.gen_cexml($aso_cele['claveacc']);}
          echo '<br>';
    
	}
	}
}

function fir_cexmlall()
{
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
	$selcol.='idnum1,docu,ptoe,numero,fecha,enti,status,claveacc,firmafec,autornum,recepfec,emailto,autorfec,emailfec,recepmsj,autormsj';
	
	include('../_cfg/config.php');
	include('php_session.php');

     $ambiente=r_fiel('empr',$cfg_empr,'ambice');
     if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
  
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from vtas1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	//if($cfg_empr=='amay')
     //{$sql_cele.=' limit 100 ';}
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from guia1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';

	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from comp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' and (docu="FP03" or docu="FP11")';
    
	$res_cele=msql_query($sql_cele,$link_vcrx);
          
	while($aso_cele=msql_fetch_assoc($res_cele))
	{
          echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['ptoe'].'-'.$aso_cele['numero'].'-'.$aso_cele['fecha'].'-'.$aso_cele['status']. ' / '.$xamb;
          echo '<br>CLAVE: '.$aso_cele['claveacc'];
          if($aso_cele['status']!='O' and $aso_cele['status']!='X')
          {echo '<br>FIRMA : '; echo fir_cexml($aso_cele['claveacc']);}
	}
	}
}
     
function move_ceall()
{
//    move_ce('2015','01'); 
//    move_ce('2015','02'); 
//    move_ce('2015','03'); 
//    move_ce('2015','04'); 
//    move_ce('2015','05'); 
//    move_ce('2015','06'); 
//    move_ce('2015','07'); 
//    move_ce('2015','08'); 
//    move_ce('2015','09'); 
//    move_ce('2015','10'); 
//    move_ce('2015','11'); 
//    move_ce('2015','12'); 
//    move_ce('2016','01'); 
//    move_ce('2016','02'); 
//    move_ce('2016','03'); 
//    move_ce('2016','04'); 
//    move_ce('2016','05'); 
//    move_ce('2016','06'); 
//    move_ce('2016','07'); 
//    move_ce('2016','08'); 
//    move_ce('2016','09'); 
//    move_ce('2016','10'); 
//    move_ce('2016','11'); 
//    move_ce('2016','12'); 
//    move_ce('2017','01'); 
//    move_ce('2017','02'); 
//    move_ce('2017','03'); 
//    move_ce('2017','04'); 
//    move_ce('2017','05'); 
//    move_ce('2017','06'); 
//    move_ce('2017','07'); 
//    move_ce('2017','08'); 
//    move_ce('2017','09'); 
//    move_ce('2017','10'); 
//    move_ce('2017','11'); 
//    move_ce('2017','12'); 
   move_ce('2018','01'); 
   move_ce('2018','02'); 
   move_ce('2018','03'); 
   move_ce('2018','04'); 
   move_ce('2018','05'); 
   move_ce('2018','06'); 
   move_ce('2018','07'); 
   move_ce('2018','08'); 
   move_ce('2018','09'); 
   move_ce('2018','10'); 
   move_ce('2018','11'); 
  
}
  
function upl_cexmlall()
{
  if($cfg_empr!='cele'){return;}
   $rutace='../../_cel/';
//    mk_subdce('01'.$pmes.$panio);
//    @mkdir($rutace.$panio.$pmes.'/');
    foreach (glob($rutace.'??'.$pmes.$panio.'*.xml') as $xmlfile1)
    {
      $clave_acceso=substr($xmlfile, 11,60);
//       copy($renfile1, $rutace.$panio.$pmes.'/'.$renfile2);
//       unlink($renfile1);
      upl_cexml($clave_acceso);
      echo '<br>';
      echo $xmlfile1;
    }       
  
}
 
function ws_recepall($fecha2='')
{
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
     if(empty($fecha2)){$fecha2=date('Y-m-d');}     
     
	$selcol='idnum1,docu,ptoe,numero,fecha,enti,status,claveacc,firmafec,autornum,recepfec,emailto,autorfec,emailfec,recepmsj,autormsj';
	
	include('../_cfg/config.php');
	include('php_session.php');

     $ambiente=r_fiel('empr',$cfg_empr,'ambice');
     if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
  
//      $fecha1=date('Y-m-d',strtotime ('-2 days')); 
//      $fecha1=date('Y-m-d',strtotime ('-1 days')); 
     
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from vtas1';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';
	//if($cfg_empr=='amay')
//     {$sql_cele.=' limit 10 ';}
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from guia1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retp1 ';
	$sql_cele.=' where status!="X"';
     $sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';
    
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from comp1 ';
	$sql_cele.=' where status!="X"';
     $sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' and (docu="FP11" or docu="FP03") ';

//     {$sql_cele.=' limit 10 ';}
          
//           echo '<br>';
//           echo '<br>============'.$sql_cele;
//           echo '<br>';
          
	$res_cele=msql_query($sql_cele,$link_vcrx);
     msql_data_seek($res_cele);     
          
          
	while($aso_cele=msql_fetch_assoc($res_cele))
	{
          $xmin=r_fiel('docu',$aso_cele['docu'],'recep');
          $xmin=(int)$xmin*1;
          if($xmin==0){$xmin=60;}

//                echo '/*/*/*'.$xmin;
          if($xmin>0)
          {
               $fecha1= date('Y-m-d H:i:s', strtotime(' now -'.$xmin.' min'));
               if($aso_cele['idate']<=$fecha1 or $aso_cele['stfin']==1)
               {
                    if(substr($aso_cele['claveacc'],23,1)=='1'){$xamb='PRUEBAS';}
                    if(substr($aso_cele['claveacc'],23,1)=='2'){$xamb='PRODUCCION';}
                    echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['ptoe'].'-'.$aso_cele['numero'].'-'.$aso_cele['fecha'].'-'.$aso_cele['status']. ' / '.$xamb;
                    echo '<br>CLAVE : '.$aso_cele['claveacc'];
                    if($aso_cele['status']!='O' and $aso_cele['status']!='X')
                    {echo '<br>RECEP: '.ws_recep($aso_cele['claveacc']);}
                    echo '<br>';
               }
          }	


     }
	}
	

}	
	
function ws_autorall($fecha2='')
{
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
// 	$fecha1=date('Y-m-d',strtotime ('-210 days')); 
     if(empty($fecha2)){$fecha2=date('Y-m-d');}
	$selcol='idnum1,docu,ptoe,numero,fecha,enti,status,claveacc,firmafec,autornum,recepfec,emailto,autorfec,emailfec,recepmsj,autormsj';
	
	include('../_cfg/config.php');
	include('php_session.php');

     
// 	$fecha1=date('Y-m-d',strtotime ('-2 days')); 
// 	$fecha1=date('Y-m-d',strtotime ('-1 days')); 
     
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from vtas1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';
	//if($cfg_empr=='amay')
//     {$sql_cele.=' limit 10 ';}
          
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from guia1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';

     $sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';

     $sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from comp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O"';
	$sql_cele.=' and autorfec is null';
	$sql_cele.=' and firmafec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<="'.$fecha2.'"';
// 	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' and (docu="FP11" or docu="FP03")';
    
	$res_cele=msql_query($sql_cele,$link_vcrx);
	while($aso_cele=msql_fetch_assoc($res_cele))
	{
          if(substr($aso_cele['claveacc'],23,1)=='1'){$xamb='PRUEBAS';}
          if(substr($aso_cele['claveacc'],23,1)=='2'){$xamb='PRODUCCION';}
          echo '<br>';
          echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['ptoe'].'-'.$aso_cele['numero'].'-'.$aso_cele['fecha'].'-'.$aso_cele['status']. ' / '.$xamb;
          echo '<br>CA : '.$aso_cele['claveacc'].'-'.$aso_cele['numero'];
          echo '<br>AUT: '.ws_autor($aso_cele['claveacc']);
	}
		
	}
	

}	
	
function mail_ceall()
{
	include('../_cfg/config.php');
	include('php_session.php');

     
//  hostgator limit 500/hour
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
	$limite = 5;
     
     if($cfg_empr=='amay'){$limite=20; $fecha1=date('Y-m-d',strtotime ('-30 days'));}
     if($cfg_empr=='dtec'){$limite=20; $fecha1=date('Y-m-d',strtotime ('-30 days')); }
     
	$selcol='idnum1,docu,ptoe,numero,fecha,enti,status,claveacc,firmafec,autornum,recepfec,emailto,autorfec,emailfec,recepmsj,autormsj';
	$selcol1='idnum1,docu,ptoe,numero,fecha,enti,status,claveacc,"" as firmafec,"" as autornum,"" as recepfec,emailto,"" as autorfec,emailfec,"" as recepmsj,"" as autormsj';
     
     $ambiente=r_fiel('empr',$cfg_empr,'ambice');
//      if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
     if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-15 days'));}
  
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol1.' from clie1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and status!="O" ';
	$sql_cele.=' and emailfec is null';
// 	$sql_cele.=' and autorfec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from vtas1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and emailfec is null';
	$sql_cele.=' and autorfec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from guia1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (emailfec is null or emailfec like "0000%")';
	$sql_cele.=' and autorfec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and emailfec is null';
	$sql_cele.=' and autorfec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from comp1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and emailfec is null';
	$sql_cele.=' and autorfec is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' and(docu="FP03" or docu="FP11")';
	$sql_cele.=' and enti not like "9999%"';
	$res_cele=msql_query($sql_cele,$link_vcrx);
    
//      echo '<br>*/*/*/'.$sql_cele;
//      echo '<br>*/*/*/'.msql_num_rows($res_cele);
//           die();
          
	$conta=0;
	while($aso_cele=msql_fetch_assoc($res_cele) and $conta<$limite)
	{
		$conta++;
		echo '<br>CA : '.$aso_cele['claveacc'].'-'.$aso_cele['numero'];
		echo '<br>MAIL: '.mail_ce($aso_cele['claveacc']);
	}
		
	}

}	
	
function gen_rideall()
{
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
	$selcol='idnum1,docu,ptoe,numero,fecha,enti,status,stfin,claveacc,idate';
	
	include('../_cfg/config.php');
	include('php_session.php');
	
     $ambiente=r_fiel('empr',$cfg_empr,'ambice');
     if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
  
	
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from comp1 where status!="X"';
	$sql_cele.=' and claveacc is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' union ';
	$sql_cele.='select '.$selcol.' from retc1 where status!="X"';
	$sql_cele.=' and claveacc is not null';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' order by idnum1 desc ';
	$res_cele=msql_query($sql_cele,$link_vcrx);
// 	echo explain_sql($sql_cele);
	while($aso_cele=msql_fetch_assoc($res_cele))
	{
          $xride= prnt_docu0($aso_cele['docu'],$aso_cele['idnum1']);
          $xride=str_replace('href=','hxref=',$xride);
          $xfile=$aso_cele['docu'].'_'.$aso_cele['ptoe'].'_'.$aso_cele['numero'].'_'.$aso_cele['enti'];
          $xruta=$rutaride.date('Y',strtotime($aso_cele['fecha'])).'-'.date('m',strtotime($aso_cele['fecha'])).'/';
          if (!file_exists($xruta)){mkdir($xruta);}

          file_put_contents($xruta.$xfile.'.html',$xride);
          echo '<br>RIDE : '.$aso_cele['docu'].'-'.$aso_cele['numero'];

	}
	}
	
}
	
function ws_recep($clave_acceso)
{
// return;
include('../_cfg/config.php');
include('php_session.php');

     
if($cfg_empr=='dtec' and date('dmY')==substr($clave_acceso,0,8) and date('H')>='06' and date('H')<='20'){return '<br> OUT OF TIME';}
     
$subdce=mk_subdce($clave_acceso);

// AQUI VERIFICAR XML firmafec	
$subdce3=substr($subdce,0,6).substr($clave_acceso,0,2).'/';     
$filesign3=$rutace.$subdce3.$clave_acceso.'.sign.xml';

$sql_cele="select * from clac0 where clac_codigo='".$clave_acceso."'";
$res_cele=msql_query($sql_cele,$link_vcrx);

$xmlfecha=msql_result($res_cele,0,'clac_fecha');
$xmlfirmado=msql_result($res_cele,0,'clac_xml2');
// file_put_contents($filesign3,$xmlfirmado);

// $xmlfirmado=file_get_contents($filesign3);     
     
	
$ambiente=substr($clave_acceso,23,1); // 1 pruebas 2 produccion
$codDoc=substr($clave_acceso,8,2); 
  
  
//01 04 05
$tabla='vtas';
if($codDoc=='03'){$tabla='comp';}
if($codDoc=='06'){$tabla='guia';}
if($codDoc=='07'){$tabla='retp';}

     
     $sql_docu ='select * from '.$tabla.'1 ';
     $sql_docu.='where claveacc="'.$clave_acceso.'" ';
     $sql_docu.='and(autornum="" or autornum is null) ';
     $sql_docu.='and status!="O" and status!="X"';
     $res_docu=msql_query($sql_docu,$link_vcrx);
     if(msql_num_rows($res_docu)==0){return;}
     
     
$ser_prue='https://celcer.sri.gob.ec';
$ser_prod='https://cel.sri.gob.ec';
// $url_recep='/comprobantes-electronicos-ws/RecepcionComprobantes?wsdl';
$url_recep='/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdl';
	
//   .gob.ec/comprobantes-electronicos-ws/RecepcionComprobantesOffline?wsdl
	
$ws_recep=$ser_prue.$url_recep;
if($ambiente=='2')
{$ws_recep=$ser_prod.$url_recep;}	

     
     
$olClient = new SoapClient($ws_recep, array('encoding'=>'UTF-8'));
try
{$olResp = $olClient->validarComprobante(array('xml'=>$xmlfirmado));}
catch (Exception $exception) {echo '<br>'.$exception;}  
  
$estado=	$olResp->RespuestaRecepcionComprobante->estado;
$error=	$olResp->RespuestaRecepcionComprobante->comprobantes->comprobante->mensajes->mensaje->mensaje;
$ident=	$olResp->RespuestaRecepcionComprobante->comprobantes->comprobante->mensajes->mensaje->identificador;	
$adici=utf8_decode(	$olResp->RespuestaRecepcionComprobante->comprobantes->comprobante->mensajes->mensaje->informacionAdicional);
	
$mensaje='';
$mensaje.=$estado;	

// echo '<br>/*/*/*'.$mensaje;     
     
if(!mb_stristr($estado,'RECIBIDA'))
{
  $adici=str_replace("cvc-","",$adici);
  $adici=str_replace("-valid","",$adici);
  $adici=str_replace("is not facet-valid with respect to","NO VALIDO ==>",$adici);
  $adici=str_replace("is not facet with respect to","NO VALIDO ==>",$adici);
  $adici=str_replace("for type","DATO :",$adici);
  $adici=str_replace("Se encontr","",$adici);
  $adici=str_replace("error en la estructura del comprobante:","Error Estructura:",$adici);

// Se encontró el siguiente error en la estructura del comprobante: minLength: Value '' with length = '0' is not facet with respect to minLength '1' DATO : 'razonSocialTransportista'..
//   $adici=str_replace("cvc-minLength-valid: Value '' with length = '0' is not facet-valid with respect to minLength '1' for type"," DATO:",$adici);
//   $adici=str_replace("cvc-pattern-valid: Value '' is not facet-valid with respect to pattern '[0-9]{10,49}' for type  "," DATO:",$adici);
 
    
  $mensaje.=' ==>IDENTIF :'.$ident;	
  $mensaje.=' ==>ERROR :'.$error;	
  $mensaje.=' ==>INFO :'.$adici;	
}

$sql_cele ='update '.$tabla.'1 set ';
if(mb_stristr($estado,'RECIBIDA'))
{$sql_cele.='recepfec=now(),';}

$updt_ok=1;     
if($ident=='43'){$updt_ok=0;} // 43 CLAVE REGISTRADA
if($ident=='90'){$updt_ok=0;} // 90 LIMITE DE INTENTOS

if($updt_ok==1)
{$sql_cele.='recepmsj="'.$mensaje.'",';}
  
$sql_cele.='status=status ';
$sql_cele.='where claveacc="'.$clave_acceso.'"';
$res_cele = msql_query($sql_cele,$link_vcrx);
// $mensaje.=$sql_cele;
	
//43 CLAVE DE ACCESO REGISTRADA  
if($error==43){ws_autor($clave_acceso);}

return $mensaje;	

}

function ws_autor($clave_acceso)
{
      
include('../_cfg/config.php');
include('php_session.php');

$subdce=mk_subdce($clave_acceso);
//   echo '***'.$subdce;
  
     
//   echo '<msgalert>';
//   echo '*/*/*/'.$clave_acceso;
//   echo '</msgalert>';
     
// if($clave_acceso!="2111202107130704022800120031010000022432414785211")
// {return;}     
     
if(!val_clac($clave_acceso)){return false;}

if($cfg_ruc=="9999999999999"){$cfg_ruc="0915379374001";}

   
   
$xmlfile=$rutace.$subdce.$clave_acceso.'.xml';
$xmlfileb=$rutace.$subdce.$clave_acceso.'b.xml';
$xmlfecha=r_fiel('clac',$clave_acceso,'fecha');
$ambiente=substr($clave_acceso,23,1); // 1 pruebas 2 produccion
$codDoc=substr($clave_acceso,8,2); 

// $codDoc=substr($clave_acceso,8,2); 

     
// cambio mario ramirez     
// //   Alba Vasquez     
if($cfg_empr=='gnya' and $xmlfecha>='2021-04-01' and $codDoc=='01' ){$cfg_ruc="1900318468001";}
if($cfg_empr=='gnya' and $xmlfecha>='2021-04-01' and $codDoc=='04' ){$cfg_ruc="1900318468001";}
     
     
if(substr($clave_acceso,10,13)!=$cfg_ruc)
{
//01 04 05
	$tabla='comp';
	if($codDoc=='06'){$tabla='guia';}
	if($codDoc=='07'){$tabla='retc';}
}

     
if(substr($clave_acceso,10,13)==$cfg_ruc)
{
	$tabla='vtas';
	if($codDoc=='03'){$tabla='comp';} // liquidacion
	if($codDoc=='06'){$tabla='guia';}
	if($codDoc=='07'){$tabla='retp';}
}

$xceuser=r_fiel('empr',$cfg_empr,'ceuser');
if($xceuser==1){$tabla='vtas';}     
     
$ser_prue='https://celcer.sri.gob.ec';
$ser_prod='https://cel.sri.gob.ec';
// $url_autor='/comprobantes-electronicos-ws/AutorizacionComprobantes?wsdl';
$url_autor='/comprobantes-electronicos-ws/AutorizacionComprobantesOffline?wsdl';
$ws_autor=$ser_prue.$url_autor;
if($ambiente=='2')
{$ws_autor=$ser_prod.$url_autor;}	

// echo $ws_autor;     
     
$params=array('claveAccesoComprobante'=>$clave_acceso);
$result0 = new SoapClient($ws_autor);

// $result1=$result0->autorizacionComprobante($params);
// var_dump($result0);
     
try
{$result1=$result0->autorizacionComprobante($params);}
catch (Exception $exception) {echo '<br> Excep :'.$exception;}  

// var_dump($result1);
     
$result2=$result1->RespuestaAutorizacionComprobante->autorizaciones->autorizacion;
	
// var_dump($result2);
     
$estado=$result2->estado;
$autornum='';
$mensaje='';

// 	echo 'AQUIII '.$estado;
// var_dump($result1); 
//   echo '********************';
// var_dump($result2);  

if($estado=='AUTORIZADO')
{
	$autornum=$result2->numeroAutorizacion;
	$autorfec=$result2->fechaAutorizacion;
	$comprobante=$result2->comprobante;
	$ambiente=$result2->ambiente;

	$ident=$result2->mensajes->mensaje->identificador;
	$msj=$result2->mensajes->mensaje->mensaje;
	$tipo=$result2->mensajes->mensaje->tipo;
	$mensaje.=' ==>IDENTIF A:'.$ident;	
	$mensaje.=' ==>'.$tipo.' :'.$msj;

	$sql_cele ='update '.$tabla.'1 set ';
	$sql_cele.='autorfec="'.$autorfec.'",';
	$sql_cele.='autornum="'.$autornum.'",';
	$sql_cele.='autormsj="'.$autormsj.'",';
	$sql_cele.='status=status ';
	$sql_cele.='where claveacc="'.$clave_acceso.'"';
	$res_cele = msql_query($sql_cele,$link_vcrx);
// 	echo '<br>'.$sql_cele;
// 	echo '<br>'.msql_error($link_vcrx);

	$sql_clac ='update clac0 set ';
	$sql_clac.='clac_autornum="'.$autornum.'",';
	$sql_clac.='clac_autorfec="'.$autorfec.'",';
	$sql_clac.='clac_status="A" ';
	$sql_clac.='where clac_codigo="'.$clave_acceso.'"';
	$res_clac=msql_query($sql_clac,$link_vcrx);
// 	echo $sql_clac;
// 	echo msql_error($link_vcrx);

	$mensaje=$autornum;
	
	// actualiza fecha recep
	{
	$sql_cele ='update '.$tabla.'1 set ';
	$sql_cele.='recepfec="'.$autorfec.'",';
	$sql_cele.='status=status ';
	$sql_cele.='where claveacc="'.$clave_acceso.'"';
	$sql_cele.=' and (recepfec="" or recepfec is null)';
	$res_cele = msql_query($sql_cele,$link_vcrx);
// 	echo msql_error($link_vcrx);

	$sql_clac ='update clac0 set ';
	$sql_clac.='clac_recepfec="'.$autorfec.'",';
	$sql_clac.='clac_status="A" ';
	$sql_clac.='where clac_codigo="'.$clave_acceso.'"';
	$sql_clac.=' and (clac_recepfec="" or clac_recepfec is null)';
	$res_clac=msql_query($sql_clac,$link_vcrx);
// 	echo msql_error($link_vcrx);
	}
	
	
	
// echo 'GENERANDO'.$empr_codigo.$cfg_ruc;	
	
	// genera xml
	if(mb_stristr($comprobante,substr($cfg_ruc,0,10))  or @mb_stristr('demo.cele',$cfg_empr))
	{
// 		echo 'G1';
	$archivo='';
	$archivo.='<?xml version="1.0" encoding="UTF-8"?>';
	$archivo.='<autorizacion>';
	$archivo.='<estado>'.$estado.'</estado>';
	$archivo.='<numeroAutorizacion>'.$autornum.'</numeroAutorizacion>';
	$archivo.='<fechaAutorizacion>'.$autorfec.'</fechaAutorizacion>';
	$archivo.='<ambiente>'.$ambiente.'</ambiente>';
	$archivo.='<comprobante>';	
	$archivo.='<![CDATA[';	
	$archivo.=trim($comprobante);	
	$archivo.=']]>';	
	$archivo.='</comprobante>';	
	$archivo.='</autorizacion>';
		
	$archivo=str_replace('↨','-',$archivo);

	$archivo0 ='<autorizacion>';
	$archivo0.='<estado>'.$estado.'</estado>';
	$archivo0.='<numeroAutorizacion>'.$autornum.'</numeroAutorizacion>';
	$archivo0.='<fechaAutorizacion>'.$autorfec.'</fechaAutorizacion>';
	$archivo0.='<ambiente>'.$ambiente.'</ambiente>';
	$archivo0.='</autorizacion>';

	$archivo2=trim($comprobante);
	$archivo2=str_replace('<infoTributaria>',$archivo0.'<infoTributaria>',$archivo2);

	$cexml1 = fopen($xmlfile,'w');
	fputs($cexml1,$archivo);
	fclose($cexml1);

	$cexml2 = fopen($xmlfileb,'w');
	fputs($cexml2,$archivo2);
	fclose($cexml2);
		
	}

	if(mb_stristr('vtas.retp.guia',$tabla) )
	{
		$sql_cele ='select * from '.$tabla.'1 where claveacc="'.$clave_acceso.'"';
		$res_cele=msql_query($sql_cele,$link_vcrx);
		if(msql_num_rows($res_cele)>0)
		{
		$emailfec=msql_result($res_cele,0,'emailfec');
// 		if($autorfec>$emailfec){mail_ce($clave_acceso);}
		}
	}
	
}
else
{
	$ident=$result2->mensajes->mensaje->identificador;
	$msj=$result2->mensajes->mensaje->mensaje;
	$tipo=$result2->mensajes->mensaje->tipo;
	$info=$result2->mensajes->mensaje->informacionAdicional;
	$mensaje.='==> IDENTIF X : '.$ident.' ';	
	$mensaje.='==> '.$tipo.' : '.$msj.' ==> '.$info.' ';
// 	$mensaje.=' ==>TIPO :'.$tipo;	
	$sql_clac ='update clac0 set ';
	$sql_clac.='clac_autormsj="'.$mensaje.'",';
	$sql_clac.='clac_status=clac_status ';
	$sql_clac.='where clac_codigo="'.$clave_acceso.'"';
	$sql_clac.='and (clac_autornum="" or clac_autornum is null)';
	$res_clac=msql_query($sql_clac,$link_vcrx);
}
 
$sql_cele ='update '.$tabla.'1 set ';
$sql_cele.='autormsj="'.$mensaje.'",';
$sql_cele.='status=status ';
$sql_cele.='where claveacc="'.$clave_acceso.'"';
$res_cele = msql_query($sql_cele,$link_vcrx);
  
return $mensaje;	
}

function mail_ce($clave_acceso,$mailce='')
{
include('../_cfg/config.php');
include('php_session.php');
     
if(!val_clac($clave_acceso)){return false;}
$subdce=mk_subdce($clave_acceso);
     
$test_mail='';
// 	$test_mail='vicore@hotmail.com';
// 	$test_mail='vicore1976@gmail.com';
// 	$test_mail='vicore@hotmail.com,ptama@hotmail.com';
     
	$eol="\r\n";
	$random_hash = md5(time()); 
     
	//01 04 05
	$codDoc=substr($clave_acceso,8,2); 	
	$tabla='vtas';
	if($codDoc=='03'){$tabla='comp';}
	if($codDoc=='06'){$tabla='guia';}
	if($codDoc=='07'){$tabla='retp';}
  
	if($codDoc=='81'){$tabla='caja';}
	if($codDoc=='82'){$tabla='bcos';}
	if($codDoc=='91'){$tabla='clie';}
	if($codDoc=='92'){$tabla='clie';}
	if($codDoc=='95'){$tabla='prov';}
	if($codDoc=='96'){$tabla='prov';}
	if($codDoc=='99'){$tabla='role';}

	$sql_cel1='select * from '.$tabla.'12 where claveacc="'.$clave_acceso.'" ';
// 	$sql_cel1.=' and enti not like "9999%"';
  $sql_total=sql_total($tabla);      
  $sql_cel1=str_replace('*','*,'.$sql_total,$sql_cel1);
  
	$res_cel1=msql_query($sql_cel1,$link_vcrx);
	
	$enti=substr(msql_result($res_cel1,0,'enti'),0,10);
     if(mb_stristr($enti,'9999'))
     {
          $email='celec@vcrxol.com';
		$sql_cel1='update '.$tabla.'1 set emailfec=now(), emailto="'.$email.'" where claveacc="'.$clave_acceso.'"';
		$res_cel1=msql_query($sql_cel1,$link_vcrx);
          return;
     }
     
	$docu=msql_result($res_cel1,0,'docu');
     if(empty($docu)){return;}
	$idnum1=msql_result($res_cel1,0,'idnum1');
	$numero=msql_result($res_cel1,0,'numero');
	$fecha=msql_result($res_cel1,0,'fecha');
     
// 	$entiruc=substr(msql_result($res_cel1,0,'enti'),0,13);
	$enti_descri=msql_result($res_cel1,0,'enti_descri');
	$autornum=@msql_result($res_cel1,0,'autornum');
	$docu_descri=msql_result($res_cel1,0,'docu_descri');
	$tiporuc=msql_result($res_cel1,0,'enti_tiporuc');
	$docupdf=r_fiel('docu',$docu,'pdf');
	$entipdf=@r_fiel('enti',$enti,'pdf');
     $ambiente=substr($clave_acceso,23,1); // 1 pruebas 2 produccion
	
     if($docupdf==1)
     {$docupdfX =prnt_docu2($docu,$idnum1,1,'pdf');}
     
	$tipo_descri='';
	if(substr($clave_acceso,8,2)=='01'){$tipo_descri='FACTURA';}
	if(substr($clave_acceso,8,2)=='04'){$tipo_descri='N.CREDITO';}
	if(substr($clave_acceso,8,2)=='06'){$tipo_descri='GUIA';}
	if(substr($clave_acceso,8,2)=='07'){$tipo_descri='RETENCION';}
	if($tipo_descri!=''){$docu_descri=$tipo_descri;}
	
	
	if(mb_stristr('vtas.guia.retp',$tabla))
	{if($autornum==""){ws_autor($clave_acceso);}}

  $email=$mailce;
	if($email==''){$email=r_fiel('enti',msql_result($res_cel1,0,'enti'),'emailce');}
	if(strlen($email)<=6){$email=r_fiel('enti',msql_result($res_cel1,0,'enti'),'email');}
  
	$email=strtolower($email);
  $email=str_replace(';',',',$email);

  $emailcc=r_fiel('enti',$cfg_ruc,'emailce');
// 	$emailcc=strtolower($emailcc);
  $emailced1='';
  $emailattn='';
  $emailvndd='';
  
  $emailced1=r_fiel('enti',@msql_result($res_cel1,0,'cedula1'),'emailce');
  if(strlen($emailced1)<=6)
  {$emailced1=r_fiel('enti',@msql_result($res_cel1,0,'cedula1'),'email');}
  $emailced1=strtolower($emailced1);
  
  $emailattn=r_fiel('enti',@msql_result($res_cel1,0,'attn'),'emailce');
  if(strlen($emailattn)<=6)
  {$emailattn=r_fiel('enti',@msql_result($res_cel1,0,'attn'),'email');}
  $emailattn=strtolower($emailattn);
  
  $emailvndd=r_fiel('enti',@msql_result($res_cel1,0,'vndd'),'emailce');
  if(strlen($emailvndd)<=6)
  {$emailvndd=r_fiel('enti',@msql_result($res_cel1,0,'vndd'),'email');}
  $emailvndd=strtolower($emailvndd);
  
//   $emailattnce=r_fiel('enti',@msql_result($res_cel1,0,'attn'),'emailce');
//   $emailattnce=strtolower($emailattnce);
  
  $emailcc.=','.$emailattn;
  $emailcc.=','.$emailvndd;
  $emailcc.=','.$emailced1;
  $emailcc=str_replace(';',',',$emailcc);
	$emailcc=strtolower($emailcc);

     
     
     if(mb_stristr('vtas.guia.retp',$tabla) and $ambiente!='2')
     {$email=r_fiel('enti',$cfg_ruc,'emailce');$emailcc=$email;}
     
  $emailbcc='vicore@hotmail.com';
  $ruconta=r_fiel('empr',$cfg_empr,'ruccontador');
  $emconta=r_fiel('enti',$ruconta,'emailce');
  $emailbcc.=','.$emconta;
  $emailbcc=str_replace(';',',',$emailbcc);

 	$reply=$emailcc;
  
  if(mb_stristr('cpc1.stp1.flmn',$cfg_empr))
  {$emailbcc.=','.'peggytama@gmail.com';}
  
  if(mb_stristr('gmny.gnya',$cfg_empr))
  {$emailbcc.=','.'mlr_2021@hotmail.com';}
  
//      echo '<br>/*/*/*'.$email;
//      echo '<br>/*/*/*'.$emailcc;
//      echo '<br>/*/*/*'.$emailbcc;
  
	$asunto=$docu_descri.' '.msql_result($res_cel1,0,'ptonumero').' ';
	$asunto.=$enti_descri;
//      $asunto=str_replace('S.A.','',$asunto);
//      $asunto=str_replace('S. A.','',$asunto);
     
	$documsj=prnt_docu2($docu,$idnum1,1,'mail');
	prnt_docu0($docu,$idnum1);

	$attach1='';
	$attach2='';
	$attach3='';
	
	if(file_exists($rutace.$subdce.$clave_acceso.'.xml'))
	{$attach1=chunk_split(base64_encode(file_get_contents($rutace.$subdce.$clave_acceso.'.xml')));}
	
	if(file_exists($rutadoc.$docu.'_'.fillzero($idnum1).'.html'))
	{$attach2=chunk_split(base64_encode(file_get_contents($rutadoc.$docu.'_'.fillzero($idnum1).'.html'))); } 
	
	if(file_exists($rutace.$subdce.$clave_acceso.'.pdf'))
	{$attach3=chunk_split(base64_encode(file_get_contents($rutace.$subdce.$clave_acceso.'.pdf')));}
  
     if($tiporuc=='N'){$attach3='';}
     
  $resu=0;
	// PARA SANTA PRISCILA	
	if(mb_stristr('0991257721',substr($enti,0,10)) and $empr_codigo=='cpc1'){$resu=1;}
     // INVERNEG
	if(mb_stristr('0990658498',substr($enti,0,10)) and $empr_codigo=='flmn'){$resu=1;}
     
     // AQUAMARKET
// 	if(mb_stristr('0992457260',substr($enti,0,10)) and $empr_codigo=='flmn'){$resu=1;}

     // SONGA
// 	if(mb_stristr('0990033110',substr($enti,0,10)) and $empr_codigo=='sawo'){$resu=1;}
     
  
	if($resu==1 or $entipdf==1)
	{
		$bloque=substr($documsj,strpos($documsj,'<cabecera>'));	
		$bloque=substr($bloque,0,strpos($bloque,'</cabecera>')+11);	
		$cabecera=$bloque;

		$bloque=substr($documsj,strpos($documsj,'<logo>'));	
		$bloque=substr($bloque,0,strpos($bloque,'</logo>')+7);	
		$logo=$bloque;

		$bloque=substr($documsj,strpos($documsj,'<datos>'));	
		$bloque=substr($bloque,0,strpos($bloque,'</datos>')+8);	
		$datos=$bloque;

		$bloque=substr($documsj,strpos($documsj,'<resumen>'));
		$bloque=substr($bloque,0,strpos($bloque,'</resumen>')+10);	
		$resumen=$bloque;
		
// 		$documsj='<table width="25%"><tr><td>'.$logo.$datos.$resumen.'</td></tr></table>';
	}
	
	
//   $documsj='VCRX<br>'.$documsj.'<br>End Of Line';
  
  $cele_preguntas='';
  $cele_preguntas.='<a href=';
  $cele_preguntas.='"http://www.sri.gob.ec/DocumentosAlfrescoPortlet/descargar/cef82829-f261-4374-a45c-96adb2c3ace8/Preguntas+frecuentes+facturaci%F3n+electr%F3nica.pdf"';
  $cele_preguntas.=' target="_blank">';
  $cele_preguntas.='X</a>';
  
//   $documsj=$documsj.'<br>'.$cele_preguntas;
  
  
	if(mb_stristr($documsj,'Warning:')){$email='vicore@hotmail.com';}
	if($test_mail!="")
	{
		$email=$test_mail;
		$emailcc=$test_mail;
		$emailbcc=$test_mail;
	}	

  
  
	$headers ='';
	$headers.= 'From: VCRXOL.COM - '.$cfg_descri.' <celec@vcrxol.com>'. $eol;
     $headers.= 'List-Unsubscribe: <mailto:unsubscribe@vcrxol.com>'.$eol;     
	$headers.= 'Reply-To:'.$reply. $eol;
	$headers.= 'Cc:'.$emailcc. $eol;
	$headers.= 'Bcc:'.$emailbcc. $eol;
	$headers.= 'Return-Path: Soporte '.$cfg_descri.' <celec@vcrxol.com>'.$eol;
     $headers.= 'Errors-To: <vicore@hotmail.com>'.$eol;
	$headers.= 'MIME-Version: 1.0' . $eol;
	$headers.= 'Content-Type: multipart/mixed; boundary="PHP-mixed-'.$random_hash.'"'; 
     
// 	$headers.= 'From: VCRXOL.COM - '.$cfg_descri.' <celec@vcrxol.com>'. $eol;
	
	$mensaje='';
	$mensaje.='--PHP-mixed-'.$random_hash.$eol;   
	$mensaje.='Content-Type: multipart/alternative; boundary="PHP-alt-'.$random_hash.'"'.$eol;  
	$mensaje.='--PHP-alt-'.$random_hash.$eol;
// 	$mensaje.='Content-Type: text/html; charset="utf-8"'.$eol; 
	$mensaje.='Content-Type: text/html; charset="iso-8859-1"'.$eol; 
	$mensaje.='Content-Transfer-Encoding: 7bit'.$eol; 
	$mensaje.= $eol; 
	$mensaje.= $documsj.$eol;  
	$mensaje.='--PHP-alt-'.$random_hash.'--'.$eol;   

// $attach0='';
// $attach1='';
// $attach2='';
// $attach3='';
     
	if($attach1!='')
	{
    $mensaje.='--PHP-mixed-'.$random_hash.$eol;   
    $mensaje.='Content-Type: text/plain;'.'name='.$clave_acceso.'.xml'.$eol; 
    $mensaje.='Content-Transfer-Encoding: base64'.$eol; 
    $mensaje.='Content-Disposition: attachment'.$eol;  
    $mensaje.= $eol; 
    $mensaje.= $attach1.$eol;  
	}	

	if($attach2!='')
	{
    $mensaje.='--PHP-mixed-'.$random_hash.$eol;   
    $mensaje.='Content-Type: text/html;'.'name='.$clave_acceso.'.html'.$eol; 
    $mensaje.='Content-Transfer-Encoding: base64'.$eol; 
    $mensaje.='Content-Disposition: attachment'.$eol;  
    $mensaje.= $eol; 
    $mensaje.= $attach2.$eol;  
	}

	if($attach3!='')
	{
    $mensaje.='--PHP-mixed-'.$random_hash.$eol;   
    $mensaje.='Content-Type: aplication/pdf;'.'name='.$clave_acceso.'.pdf'.$eol; 
    $mensaje.='Content-Transfer-Encoding: base64'.$eol; 
    $mensaje.='Content-Disposition: attachment'.$eol;  
    $mensaje.= $eol; 
    $mensaje.= $attach3.$eol;  
	}

	$mensaje.='--PHP-mixed-'.$random_hash.'--'.$eol;   

     $asunto=str_replace('FACTURA','FACT.ELECT.',$asunto);     

//      $email='vicore@hotmail.com';
//      $asunto='probando '.date('H:i:s');
//      $headers='';
//      $mensaje='prueba de mail';

//      echo '<br>===='.$email;
//      echo '<br>===='.$asunto;
//      echo '<br>===='.$headers;
//      echo '<br>===='.$mensaje;
     

//      file_put_contents('_mail_head_1.txt',$headers);
//      file_put_contents('_mail_mess_1.txt',$mensaje);
     
	$xmail=mail($email, $asunto, $mensaje, $headers);
	if($xmail==1 and $test_mail=='')
	{
		$sql_cel1='update '.$tabla.'1 set emailfec=now(), emailto="'.$email.'" where claveacc="'.$clave_acceso.'"';
		$res_cel1=msql_query($sql_cel1,$link_vcrx);

//           file_put_contents('_header_test.txt',$headers);
          
	}
     
	return $xmail;
}

     
     
     
     
function mail_docu($docu,$idnum,$maildocu='')
{
include('../_cfg/config.php');
include('php_session.php');
  
	$tabla=r_fiel('docu',$docu,'tabla');
 
  
  if(mb_stristr('vtas.clie.retp.guia.role.prov',$tabla))
  {
    $claveacc=gen_claveacc($docu,$idnum);
    gen_cexml($claveacc);
    mail_ce($claveacc,$maildocu);
    //msql_close($link_vcrx) ; 

    return;
  }
	
	$test_mail='';
// 	$test_mail='vicore@hotmail.com;';
	$eol="\r\n";
	$random_hash = md5(time()); 
	$xmail=0;
// 	$claveacc=r_fiel($tabla.'1',$idnum,'claveacc');
// 	$sql_cel1='select * from '.$tabla.'11 where idnum1="'.$idnum.'"';
	$sql_cel1='select * from '.$tabla.'12 where idnum1="'.$idnum.'" limit 1';
	$res_cel1=msql_query($sql_cel1,$link_vcrx);

	$enti=r_fiel($tabla.'1',$idnum,'enti');
	$email=r_fiel('enti',$enti,'email');
	if(strlen($email)<=6){$email=r_fiel('enti',$enti,'emailce');}
  
	$email=strtolower($email);
  $email=str_replace(';',',',$email);
  
  
	$emailcc=r_fiel('enti',$cfg_ruc,'email');
	$emailbcc='vicore@hotmail.com';
	$asunto=msql_result($res_cel1,0,'docu_descri').' '.msql_result($res_cel1,0,'ptonumero');
// 	$mensaje=prnt_docu1($docu,$idnum,'','mail');
	$mensaje=prnt_docu2($docu,$idnum);

   
   if($cfg_empr=='orel')
   {$emailcc.=',ventas@orellanaelec.com';}
   
	if(mb_stristr($mensaje,'Warning:'))
	{
		$email='vicore@hotmail.com';
	}
	
	$headers = 'MIME-Version: 1.0' . $eol;
	$headers.= 'Content-type: text/html; charset=iso-8859-1' . $eol;
// 	$headers.= 'From: VCRXOL.COM - '.$cfg_descri.' <'.$cfg_sopor.'>'. $eol;
	$headers.= 'From: VCRXOL.COM - '.$cfg_descri.' <celec@vcrxol.com>'. $eol;
	$headers.= 'Cc:'.$emailcc. $eol;
	$headers.= 'Bcc:'.$emailbcc. $eol;
// 	$headers.= 'Return-Path: Soporte '.$cfg_descri.' {'.$cfg_sopor.'};';
// 	$headers.= 'Return-Path: Soporte '.$cfg_descri.' {celec@vcrxol.com};';
	$headers.= 'Return-Path: Soporte '.$cfg_descri.' <celec@vcrxol.com>'.$eol;
//   $headers.= 'Errors-To: <vicore@hotmail.com>'.$eol;
	
	$xmail=mail($email, $asunto, $mensaje, $headers);

 	if($xmail==1)
	{
		$sql_mail='update '.$tabla.'1 set mailfec=now(), mailto="'.$email.'" where idnum1="'.$idnum.'"';
		$res_mail=msql_query($sql_cel1,$link_vcrx);
	}
// 	else{$xmail='ERROR :'.$email;}
//msql_close($link_vcrx) ; 

	return $xmail;
}

function get_autorce($clave_acceso,$sri=0)
{
	include('../_cfg/config.php');
	include('php_session.php');
	if(!val_clac($clave_acceso)){return false;}

    $subdce=mk_subdce($clave_acceso);

//   echo '*/*/*/';
	$autorce='';

	if (!file_exists($rutace)){mkdir($rutace);}
	$xmlfile=$rutace.$subdce.$clave_acceso.'.xml';

	$codDoc=substr($clave_acceso,8,2); 
	if(substr($clave_acceso,10,13)!=$cfg_ruc)
	{
	//01 04 05
		$tabla='comp';
		if($codDoc=='07'){$tabla='retc';}
	}

	if(substr($clave_acceso,10,13)==$cfg_ruc and $empr_mice==1)
	{
		$tabla='vtas';
		if($codDoc=='03'){$tabla='comp';}
		if($codDoc=='06'){$tabla='guia';}
		if($codDoc=='07'){$tabla='retp';}
	}

	if(!file_exists($xmlfile) or $sri==1){ws_autor($clave_acceso);}

	if(file_exists($xmlfile))
	{
		$xml1=file_get_contents($xmlfile);
		$xml1 = preg_replace('/&[^; ]{0,6}.?/e', "((substr('\\0',-1) == ';') ? '\\0' : '&amp;'.substr('\\0',1))", $xml1);

		$DOM1 = new DOMDocument('1.0', 'utf-8');
		$DOM2 = new DOMDocument('1.0', 'utf-8');
		$DOM1->loadXML($xml1);
		$autornum= $DOM1->getElementsByTagName('numeroAutorizacion')->item(0)->nodeValue;
		$autorfec= $DOM1->getElementsByTagName('fechaAutorizacion')->item(0)->nodeValue;
		$autorce=$autornum;
		
		$xml2=$DOM1->getElementsByTagName('comprobante')->item(0)->nodeValue;
		$DOM2->loadXML($xml2);
		$emisor=$DOM2->getElementsByTagName('ruc')->item(0)->nodeValue;
		$razsoc=$DOM2->getElementsByTagName('razonSocial')->item(0)->nodeValue;
		$nomcom=$DOM2->getElementsByTagName('nombreComercial')->item(0)->nodeValue;
		$matriz=$DOM2->getElementsByTagName('dirMatriz')->item(0)->nodeValue;
		
		if(val_ruced($emisor)!='0' and 1==0)
		{
// 			$sql_enti ='update enti0 set ';
// 			$sql_enti.='enti_razsoc="'.$razsoc.'"';
// 			$sql_enti.='where enti_codigo="'.$emisor.'"';
// 			$sql_enti.='and enti_razsoc=""';
// 			$res_enti = msql_query($sql_enti,$link_vcrx);
			
// 			$sql_enti ='update enti0 set ';
// 			$sql_enti.='enti_nomcom="'.$nomcom.'"';
// 			$sql_enti.='where enti_codigo="'.$emisor.'"';
// 			$sql_enti.='and enti_nomcom=""';
// 			$res_enti = msql_query($sql_enti,$link_vcrx);

// 			$sql_enti ='update enti0 set ';
// 			$sql_enti.='enti_matriz="'.$matriz.'"';
// 			$sql_enti.='where enti_codigo="'.$emisor.'"';
// 			$sql_enti.='and enti_matriz=""';
// 			$res_enti = msql_query($sql_enti,$link_vcrx);
		}

		$sql_clac ='update clac0 ';
		$sql_clac.='set clac_autornum="'.$autornum.'", ';
		$sql_clac.='clac_autorfec="'.$autorfec.'" ';
		$sql_clac.='where clac_codigo="'.$clave_acceso.'"';
		$res_clac = msql_query($sql_clac,$link_vcrx);
//     echo $sql_clac;
//     echo msql_error($link_vcrx);


		$sql_clac ='update '.$tabla.'1 ';
		$sql_clac.='set autornum="'.$autornum.'", ';
		$sql_clac.='autorfec="'.$autorfec.'" ';
		$sql_clac.='where claveacc="'.$clave_acceso.'"';
		$res_clac = msql_query($sql_clac,$link_vcrx);
	}
	
	$autorce=r_fiel('clac',$clave_acceso,'autornum');
	if($autorce=="")
	{
		$sql_cele ='select * from '.$tabla.'1 ';
		$sql_cele.='where claveacc="'.$clave_acceso.'"';
		$sql_cele.=' and status!="X"';
		$sql_cele.=' and status!="O"';
		$sql_cele.=' and autornum>""';
		$res_cele = msql_query($sql_cele,$link_vcrx);
		$autorce=msql_result($res_cele,0,'autornum');
	}
	
//msql_close($link_vcrx) ; 
	
	return 	$autorce;
}

function upl_claves($recibidos='',$sri=0)
{
	include('../_cfg/config.php');
	include('php_session.php');

//   @mkdir($rutace.$subdce);

	$xmlfile=$rutace.$clave_acceso.'.xml';
	
	$ccell=0;
	$txtfiles=array();
	if($recibidos!='')
	{$txtfiles[0]=$recibidos;}
	else
	{
		for ($cfiles=0;$cfiles<=10;$cfiles++)
		{$txtfiles[$cfiles]=$cfg_ruc.'_Recibidos ('.$cfiles.').txt';}
	}
	
	
	for ($cfiles=10;$cfiles>=0;$cfiles--)
	{
		$filetxt=$rutace.$txtfiles[$cfiles];
		if(file_exists($filetxt) and $txtfiles[$cfiles]!="")
		{
			echo '<br>'.'Archivo : '.$txtfiles[$cfiles];
			foreach (file($filetxt) as $line )
			{
				$regis=explode("\t",trim($line));
				for($ccol=0;$ccol<=count($regis);$ccol++)
				{
					$claveacc=$regis[$ccol];
					if (val_clac($claveacc))
					{
						echo '<br>'.++$ccell.' - '.$claveacc;
						if($sri==1){echo upl_cexml($claveacc).'<br>';}
					}
          else
          {}
				}
			}
		}
	}
}

function upl_claves2($pdocu='',$pfecha1='',$pfecha2='')
{
	include('../_cfg/config.php');
	include('php_session.php');
     
  $scanx=0;
  $empr_mice=r_fiel('empr',$cfg_empr,'mice');
     
     
	$fec1=date('Y-m-01',strtotime('-4 month'));	
	$fec2=date('Y-m-01',strtotime('-1 week'));	
   
   if($cfg_empr=='demo'){$fec1=date('Y-m-01',strtotime('-12 month'));}	
   if($cfg_empr=='fcda' and date('Y-m-d')<'2021-07-10'){$fec1=date('Y-m-01',strtotime('-24 month'));}	
   if($cfg_empr=='gadf' and date('Y-m-d')<'2021-07-10'){$fec1=date('Y-m-01',strtotime('-24 month'));}	
   if($cfg_empr=='vfjw' and date('Y-m-d')<'2021-07-10'){$fec1=date('Y-m-01',strtotime('-24 month'));}	
   if($cfg_empr=='efsa' and date('Y-m-d')<'2022-01-31'){$fec1=date('Y-m-01',strtotime('-24 month'));}	
   if($cfg_empr=='vare' and date('Y-m-d')<'2022-03-31'){$fec1=date('Y-m-01',strtotime('-8 month'));}	
   if($cfg_empr=='dtja' and date('Y-m-d')<'2022-07-05'){$fec1=date('Y-m-01',strtotime('-8 month'));}	
   if($cfg_empr=='sawo' and date('Y-m-d')<'2022-11-15'){$fec1=date('Y-m-01',strtotime('-8 month'));}	
   if($cfg_empr=='pbcf' and date('Y-m-d')<'2023-03-31'){$fec1=date('Y-m-01',strtotime('-8 month'));}	
     
     $limite=20;
  
	$sql_clac ='select case when (clac_autornum="" or clac_autornum is null) then 0 else 1 end as autor,';
	$sql_clac.=' clac0.* ';
	$sql_clac.=' from clac0  ';
// 	$sql_clac.=' where clac_enti!="'.$cfg_ruc.'" ';
// 	$sql_clac.=' and clac_fecha>="'.$fec1.'" ';
	$sql_clac.=' where  clac_fecha>="'.$fec1.'" ';

     if($empr_mice==0)
     {$sql_clac.=' and clac_enti!="'.$cfg_ruc.'" ';}
     
     if($pfecha1!='')
     {$sql_clac.=' and clac_fecha>="'.$pfecha1.'" ';}
     if($pfecha2!='')
     {$sql_clac.=' and clac_fecha<="'.$pfecha2.'" ';}
     
       if($pdocu!='')
       {
         $sql_clac.=' and clac_tipo="'.$pdocu.'"';
         $sql_clac.=' and clac_autornum is null ';
         $limite=10;
       }
    
	// SUPERMAXI
// 	$sql_clac.=' and clac_enti="1790016919001" ';
// 	$sql_clac.=' and (clac_enti like "090436%" or clac_enti like "0902222389%")';
// 	$sql_clac.=' order by autor,clac_upldfec,clac_tipo desc,enti_descri,clac_autormsj,clac_fecha desc ';
// 	$sql_clac.=' order by autor,clac_upldfec,clac_fecha,clac_tipo desc,enti_descri,clac_autormsj,clac_fecha desc ';
	$sql_clac.=' order by autor,clac_upldfec,clac_fecha,clac_tipo desc,clac_autormsj,clac_fecha desc ';
//   $sql_clac.='limit '.$limite;
    
	$res_clac=msql_query($sql_clac,$link_vcrx);
   
//   echo '<msgalert>';
//    echo '/*/*/*/'.$sql_clac.msql_error($link_vcrx);
//   echo '</msgalert>';
   

  if(msql_num_rows($res_clac)>$limite)
  {echo 'Electronicos Pendientes...';}
    
  $conta=0;  
     msql_data_seek($res_clac,0);
	while($aso_clac=msql_fetch_assoc($res_clac))
	{
    $conta++;
    echo '<span ';
    if($pdocu!=''){echo 'style="display:none;"';}
    echo '>';
    echo '<br>'.upl_cexml($aso_clac['clac_codigo']);
    echo '</span>';
//   echo '<msgalert>';
//    echo '/*/*/*/'.$aso_clac['clac_codigo'];
//   echo '</msgalert>';
    if($conta>$limite){break;}
  }
}

function upl_clavesall()
{
	include('../_cfg/config.php');
	include('php_session.php');
	$fec2=date('Y-m-d',strtotime('-2 month'));	
// 	$fec2=date('Y-m-d',strtotime('-10 month'));	
	$fec2=date('Y-m-d',strtotime('-90 days'));	

	$sql_clac0='update clac0,tabla1 set clac_autornum=tabla1.autornum, clac_autorfec=tabla1.autorfec where clac_autornum is null and clac_codigo=claveacc';

	$res_clac=msql_query(str_replace('tabla1','comp1',$sql_clac),$link_vcrx);
	$res_clac=msql_query(str_replace('tabla1','vtas1',$sql_clac),$link_vcrx);
	$res_clac=msql_query(str_replace('tabla1','retc1',$sql_clac),$link_vcrx);
	$res_clac=msql_query(str_replace('tabla1','retp1',$sql_clac),$link_vcrx);
	$res_clac=msql_query(str_replace('tabla1','guia1',$sql_clac),$link_vcrx);
//   echo '*/*/*/'.msql_error($link_vcrx);  
  
  $sql_clac ='select case when (clac_autornum="" or clac_autornum is null) then 0 else 1 end as autor, clac0.*, ';
	$sql_clac.=' enti_descri ';
	$sql_clac.=' from clac0 left join enti0 ';
	$sql_clac.=' on clac_enti=enti_codigo ';
	$sql_clac.=' where clac_enti!="'.$cfg_ruc.'" ';
	$sql_clac.=' and clac_fecha>="'.$fec2.'" ';
	$sql_clac.=' and clac_autornum is null ';
	// SUPERMAXI
// 	$sql_clac.=' and clac_enti="1790016919001" ';
// 	$sql_clac.='order by autor, clac_upldfec, enti_descri, clac_autormsj, clac_fecha desc ';
	$sql_clac.='order by autor, clac_upldfec, clac_fecha,enti_descri, clac_autormsj, clac_fecha desc ';
// 	$sql_clac.='limit 100';
	$res_clac=msql_query($sql_clac,$link_vcrx);
	while($aso_clac=msql_fetch_assoc($res_clac))
	{echo '<br>'.upl_cexml($aso_clac['clac_codigo']);}
}

function upl_cexml($clave_acceso,$sri=0)
{
	include('../_cfg/config.php');
	include('php_session.php');
  
  
  $empr_mice=r_fiel('empr',$cfg_empr,'mice');
  $xupl=0;

  $subdce=mk_subdce($clave_acceso);
     
//      echo '*/*/* AQUI';
 
	if(!val_clac($clave_acceso)){return false;}
//      echo '*/*/* AQUIIII';
	
	$sql_upld='update clac0 set clac_upldfec=now() where clac_codigo="'.$clave_acceso.'"';
	$res_upld=msql_query($sql_upld,$link_vcrx);
	
 	$xmlfile=$rutace.$subdce.$clave_acceso.'.xml';
 	$anioact=date('Y');
  
	$cdia=substr($clave_acceso,0,2);
	$cmes=substr($clave_acceso,2,2);
	$canio=substr($clave_acceso,4,4);
	$cfecha=$canio.'-'.$cmes.'-'.$cdia;
	if($cdia<1 or $cdia>date('t',strtotime($canio.$cmes.'01'))){return '<br>'.'***  DIA INCORRECTO ***'; }
	if($cmes<1 or $cmes>12){return '<br>'.'***  MES INCORRECTO ***'; }
	if($canio<($anioact-2) or $canio>$anioact){return '<br>'.'***  AÑO FUERA DE RANGO ***'; }
	$codDoc=substr($clave_acceso,8,2); 
	if(!mb_stristr('01.04.05.06.07',$codDoc))
	{return '<br>'.'*** TIPO COMPROBANTE NO VALIDO ***';}
	else	
	{
		$tabla='comp';
		$docu='FP10';
		if($codDoc=='04')
		{
			$tabla='comp';
			$docu='NP10';
		}
    
		if($codDoc=='05')
		{
			$tabla='comp';
			$docu='FP05';
		}
    
		if($codDoc=='06')
		{
			$tabla='guia';
			$docu='GR20';
		}
          
		if($codDoc=='07')
		{
			$tabla='retc';
			$docu='RCLI';
		}
    
    
// PROPIOS
    if(substr($clave_acceso,10,13)==$cfg_ruc and $empr_mice==1)
    {
//       echo 'CARGANDO PROPIO';
      $tabla='vtas';
      $docu='FC10';
      if($codDoc=='04')
      {
        $tabla='vtas';
        $docu='FC10';
      }
      if($codDoc=='06')
      {
        $tabla='guia';
        $docu='GR10';
      }
      if($codDoc=='07')
      {
        $tabla='retp';
        $docu='RPRO';
      }
    }
    
          
	}

	if(val_ruced(substr($clave_acceso,10,13))=='0'){return '<br>'.'*** RUC INCORRECTO ***'; }
	if(substr($clave_acceso,23,1)!='2'){return '<br>'.'*** AMBIENTE INCORRECTO ***'; }

//      echo '*/*/*'.file_exists($xmlfile);
//      echo '*/*/*'.$sri;
     
	if(!file_exists($xmlfile) or $sri==1)
     {
          echo '<br>SRI : '.$clave_acceso.'-->'.ws_autor($clave_acceso);
//   echo '<msgalert>';
//   echo '*/*/*/'.$clave_acceso;
//   echo '*/*/*/'.$xmlfile;
//   echo '</msgalert>';
          
     }

//      echo 'AQUII';
     
	if(file_exists($xmlfile))
	{
		$xml1=file_get_contents($xmlfile);
//      echo '*/*/*/*==='.$xmlfile;
//      echo '*/*/*/*==='.$xml1;

//   echo '<msgalert>';
//   echo '*/*/*/'.$xmlfile;
//   echo '</msgalert>';
          
    if(!mb_stristr($xml1,'numeroAutorizacion')){echo '<br>SRI:'.$clave_acceso.'-->'.ws_autor($clave_acceso);}
    
// 		$xml1 = preg_replace('/&[^; ]{0,6}.?/e', "((substr('\\0',-1) == ';') ? '\\0' : '&amp;'.substr('\\0',1))", $xml1);
		$xml1=str_replace('↨','-',$xml1);
		
		$DOM1 = new DOMDocument('1.0', 'utf-8');
		$DOM2 = new DOMDocument('1.0', 'utf-8');
		$DOM3 = new DOMDocument('1.0', 'utf-8');
    
		$DOM1->loadXML($xml1);
		$atrzce= $DOM1->getElementsByTagName('numeroAutorizacion')->item(0)->nodeValue;
//           echo '*******======'.$xml1;
		$atrzfe= $DOM1->getElementsByTagName('fechaAutorizacion')->item(0)->nodeValue;
		$claveacc= $DOM1->getElementsByTagName('claveAcceso')->item(0)->nodeValue;
    $atrzfe=date('Y-m-d H:i:s',strtotime($atrzfe));
    
		$xml2=$DOM1->getElementsByTagName('comprobante')->item(0)->nodeValue;
    $xml2=str_replace("\n",'',$xml2);
    $xml2=str_replace("\r",'',$xml2);
    
		if($claveacc==""){$DOM2->loadXML($xml2);}
		else{$DOM2->loadXML($xml1);}
    
    
// 		$comprobanteVersion= $DOM2->getElementsByTagName('comprobanteRetencion');
		$searchNode= $DOM2->getElementsByTagName('comprobanteRetencion');
    foreach( $searchNode as $searchNode )
    {$version = $searchNode->getAttribute('version');}
    
		$claveacc=$DOM2->getElementsByTagName('claveAcceso')->item(0)->nodeValue;
		$emisor=$DOM2->getElementsByTagName('ruc')->item(0)->nodeValue;
		$razsoc=$DOM2->getElementsByTagName('razonSocial')->item(0)->nodeValue;
		$nomcom=$DOM2->getElementsByTagName('nombreComercial')->item(0)->nodeValue;
		$matriz=$DOM2->getElementsByTagName('dirMatriz')->item(0)->nodeValue;
		$obcon=$DOM2->getElementsByTagName('obligadoContabilidad')->item(0)->nodeValue;
		$coesp=$DOM2->getElementsByTagName('contribuyenteEspecial')->item(0)->nodeValue;
          
//           echo '*/*/*/'.$tabla;
    if($tabla=='vtas')
    {
      $emisor=$DOM2->getElementsByTagName('identificacionComprador')->item(0)->nodeValue;
      $razsoc=$DOM2->getElementsByTagName('razonSocialComprador')->item(0)->nodeValue;
      $nomcom='';
      $matriz=$DOM2->getElementsByTagName('direccionComprador')->item(0)->nodeValue;
      $obcon='';
      $coesp='';
    }

    if($tabla=='retp')
    {
      $emisor=$DOM2->getElementsByTagName('identificacionSujetoRetenido')->item(0)->nodeValue;
      $razsoc=$DOM2->getElementsByTagName('razonSocialSujetoRetenido')->item(0)->nodeValue;
      $nomcom='';
      $matriz=$DOM2->getElementsByTagName('dirEstablecimiento')->item(0)->nodeValue;
      $obcon='';
      $coesp='';
    }

    if($tabla=='guia')
    {
      $emisor=$DOM2->getElementsByTagName('ruc')->item(0)->nodeValue;
      $razsoc=$DOM2->getElementsByTagName('razonSocial')->item(0)->nodeValue;
      $nomcom='';
      $matriz=$DOM2->getElementsByTagName('dirMatriz')->item(0)->nodeValue;
      $cedula1=$DOM2->getElementsByTagName('rucTransportista')->item(0)->nodeValue;
      $cedula2=$DOM2->getElementsByTagName('rucTransportista')->item(0)->nodeValue;
      $obcon='';
      $coesp='';
    }

// echo '*/*/'.$matriz;          
          
		$ptoe= $DOM2->getElementsByTagName('estab')->item(0)->nodeValue.$DOM2->getElementsByTagName('ptoEmi')->item(0)->nodeValue;;
		$numero= $DOM2->getElementsByTagName('secuencial')->item(0)->nodeValue;
		$fecha= $DOM2->getElementsByTagName('fechaEmision')->item(0)->nodeValue;
          if($tabla=='guia')
          {$fecha= $DOM2->getElementsByTagName('fechaFinTransporte')->item(0)->nodeValue;}
          
          
		$placa= $DOM2->getElementsByTagName('placa')->item(0)->nodeValue;
		$propina= $DOM2->getElementsByTagName('propina')->item(0)->nodeValue;
		$formapago= $DOM2->getElementsByTagName('formaPago')->item(0)->nodeValue;
		$totsinimp= $DOM2->getElementsByTagName('totalSinImpuestos')->item(0)->nodeValue;
		$totsubsid= $DOM2->getElementsByTagName('totalSubsidio')->item(0)->nodeValue;
		$fecha=substr($fecha,-4).'-'.substr($fecha,3,2).'-'.substr($fecha,0,2);
		
		$prop=10;
		if($totsinimp>0)
		{$prop=$propina/$totsinimp*100;}

		$enti=$emisor;
    
    $tipoid2='';
    //04 RUC
    //05 CEDULA
    //06 PASAPORTE
    //07 CONSUMIDOR FINAL
    //08 IDENTIFICACION DEL EXTERIOR
    //09 PLACA
		$tipoid2= $DOM2->getElementsByTagName('tipoIdentificacionComprador')->item(0)->nodeValue;
		$ruc2= $DOM2->getElementsByTagName('identificacionComprador')->item(0)->nodeValue;
		$razsoc2= $DOM2->getElementsByTagName('razonSocialComprador')->item(0)->nodeValue;
		$direcc2= $DOM2->getElementsByTagName('direccionComprador')->item(0)->nodeValue;
    
//           echo '*/*/*/*'.$tipoid2;

          
    if($tipoid2=='06' or $tipoid2=='08')
    {
         if($ruc2==$cfg_ruc){$tipoid2='04';}
         if($ruc2==substr($cfg_ruc,0,10)){$tipoid2='05';}
    }
          
//           echo '*/*/*/*'.$tipoid2;
          
    if($tipoid2=='06')
    {
//       $sql_pass='select * from enti0 where enti_pasaporte="'.$ruc2.'"';
      $sql_pass='select * from enti0 where enti_pasaporte="'.$ruc2.'"';
      $res_pass=msql_query($sql_pass,$link_vcrx);
      if(msql_num_rows($res_pass)==0)
      {
         $sql_pass='select * from enti0 where enti_codigo like "'.substr($ruc2,0,10).'%" order by enti_codigo';
         $res_pass=msql_query($sql_pass,$link_vcrx);
      }
      if(msql_num_rows($res_pass)==0)
      {
        new_pasaporte($ruc2,$razsoc2,$direcc2);
        $res_pass=msql_query($sql_pass,$link_vcrx);
      }
      $ruc2=msql_result($res_pass,0,'enti_codigo');
    }

    if($tipoid2=='08')
    {
      $sql_pass='select * from enti0 where enti_idexterior="'.$ruc2.'"';
      $res_pass=msql_query($sql_pass,$link_vcrx);
      if(msql_num_rows($res_pass)==0)
      {
        new_idexterior($ruc2,$razsoc2,$direcc2);
        $res_pass=msql_query($sql_pass,$link_vcrx);
      }
      $ruc2=msql_result($res_pass,0,'enti_codigo');

    }

		// ruc en las retenciones
		$ruc2r= $DOM2->getElementsByTagName('identificacionSujetoRetenido')->item(0)->nodeValue;
		$razsoc2r= $DOM2->getElementsByTagName('razonSocialSujetoRetenido')->item(0)->nodeValue;
    
    $codDocMod=$DOM2->getElementsByTagName('codDocModificado')->item(0)->nodeValue;
    $numDocMod=$DOM2->getElementsByTagName('numDocModificado')->item(0)->nodeValue;
    
		if($ruc2r!=''){$ruc2=$ruc2r;$razsoc2=$razsoc2r;}
		
		$msjxml='';
		
		$sql_ruc2='select * from enti0 where enti_codigo like "'.$ruc2.'%"';
		$res_ruc2=msql_query($sql_ruc2,$link_vcrx);
		if(msql_num_rows($res_ruc2)==0){val_ruced($ruc2,'1');}
    
		$sql_ruc2='update enti0 set enti_descri="'.$razsoc2.'" where enti_codigo like "'.$ruc2.'%" and (enti_descri="" or enti_descri is null or enti_descri like "%sp;%")';
		$res_ruc2=msql_query($sql_ruc2,$link_vcrx);
		
		$sql_ruc2='update enti0 set enti_razsoc="'.$razsoc2.'" where enti_codigo like "'.$ruc2.'%" and (enti_razsoc="" or enti_razsoc is null or enti_razsoc like "%sp;%")';
		$res_ruc2=msql_query($sql_ruc2,$link_vcrx);
		
		$sql_ruc2='update enti0 set enti_nomcom="'.$razsoc2.'" where enti_codigo like "'.$ruc2.'%" and (enti_nomcom="" or enti_razsoc is null or enti_nomcom like "%sp;%")';
		$res_ruc2=msql_query($sql_ruc2,$link_vcrx);

         if(mb_stristr('demo.cele.srie',$cfg_empr))
         {
          $sql_ruc2='update enti0 set enti_matriz="'.$direcc2.'" where enti_codigo like "'.$ruc2.'%" and (enti_matriz="" or enti_matriz is null or enti_matriz like "%sp;%")';
          $res_ruc2=msql_query($sql_ruc2,$link_vcrx);
         }    
    
		if($atrzce=="")
		{return '<br>'.'*** XML SIN AUTORIZACION ***';}
    else
    {$xupl=1;}
    
//     subir facturas propias
//     $tabla='vtas'
//     $codDoc='011' 
    
		$docu90="";
		if(substr($cfg_ruc,0,10)!=substr($ruc2,0,10))
		{
//          echo '<br>cfg'.$cfg_ruc;
//          echo '<br>ruc2'.$ruc2;
         if(!mb_stristr('demo.cele.srie.aacc',$cfg_empr))
         {
           if($empr_mice==1)
           {}
           else
           {
             $ruc3ro=r_fiel('enti',substr($ruc2,0,10),'fp90');
             if($ruc3ro==1)
             {$docu90='FP90';}
             else
             {
               $sql_dele='delete from clac0 where clac_codigo="'.$claveacc.'"';
               $res_dele=msql_query($sql_dele,$link_vcrx);
               return '<br>'.'*** RUC NO CORRESPONDE *** ==>'.$claveacc.'==>'.$tipoid2.'::'.$ruc2;
             }     
           }
         }

      
// 			$sql_ruct='select * from enti0 where enti_codigo like "'.substr($ruc2,0,10).'%" and enti_fp90="1"';
// 			$res_ruct=msql_query($sql_ruct,$link_vcrx);
// 			if(msql_num_rows($res_ruct)==0)	
// 			{return '<br>'.'*** RUC NO CORRESPONDE *** ==>'.$claveacc;}
// 			else 
// 			{$docu90="FP90";}
		}
    
		if(val_ruced($emisor)!='0')
		{
			$sql_enti ='update enti0 set ';
			$sql_enti.=' enti_descri="'.$razsoc.'"';
			$sql_enti.=' where enti_codigo="'.$emisor.'"';
			$sql_enti.=' and (enti_descri="" or enti_descri is null or enti_descri like "%NUEVO%" or enti_descri like "%sp;%")';
			$res_enti = msql_query($sql_enti,$link_vcrx);

      $sql_enti ='update enti0 set ';
			$sql_enti.=' enti_razsoc="'.$razsoc.'"';
			$sql_enti.=' where enti_codigo="'.$emisor.'"';
			$sql_enti.=' and (enti_razsoc="" or enti_razsoc is null or enti_razsoc like "%sp;%")';
			$res_enti = msql_query($sql_enti,$link_vcrx);
//       echo $sql_enti;
//       echo msql_error($link_vcrx);			
			
			$sql_enti ='update enti0 set ';
			$sql_enti.=' enti_nomcom="'.$nomcom.'"';
			$sql_enti.=' where enti_codigo="'.$emisor.'"';
			$sql_enti.=' and (enti_nomcom="" or enti_nomcom is null or enti_nomcom like "%sp;%")';
			$res_enti = msql_query($sql_enti,$link_vcrx);

			$sql_enti ='update enti0 set ';
			$sql_enti.=' enti_matriz="'.$matriz.'"';
			$sql_enti.=' where enti_codigo="'.$emisor.'"';
			$sql_enti.=' and (enti_matriz="" or enti_matriz is null)';
			$res_enti = msql_query($sql_enti,$link_vcrx);
	
      
               get_ruc0($emisor);
		}

    
    if($obcon=='SI')
    {
      $sql_ruc1='update enti0 set enti_obcon="1" where enti_codigo like "'.$emisor.'" ';
      $res_ruc1=msql_query($sql_ruc1,$link_vcrx);
    }

    if($coesp!='')
    {
      $sql_ruc1='update enti0 set enti_coesp=1, enti_coesn="'.$coesp.'" where enti_codigo like "'.$emisor.'" ';
      $res_ruc1=msql_query($sql_ruc1,$link_vcrx);
    }

		// INFO ADICIONAL
		$xinfoadic='';
		{
			$xfirmante='';
			$infox= $DOM2->getElementsByTagName('infoAdicional');
			foreach($infox as $infoy)
			{
				foreach($infoy->childNodes as $adicional)
				{
					$campoadic='';
					if($adicional->nodeName=='campoAdicional')
					{
						$adicnombre=$adicional->getAttribute('nombre');
						$adicvalue=$adicional->nodeValue;
						$xinfoadic.=' /'.$adicnombre.':'.$adicvalue;
						$xinfoadic2.='[['.$adicnombre.']]'.$adicvalue.'||';						
						$xinfoadic3.='{\"'.$adicnombre.'\":\"'.$adicvalue.'\"}';	
// 						if($adicnombre=='CONCEPTO'){$xinfoadic.=' /'.$adicnombre.':'.$adicvalue;}
						if(mb_stristr($adicnombre,'FIRMANTE')){$xfirmante=$adicvalue;}
            if(mb_stristr('demo.cele.srie',$cfg_empr))
            {
						  if(mb_stristr(strtoupper($adicnombre),'DIRECCION'))
              {
                $sql_ruc2='update enti0 set enti_direccion="'.$adicvalue.'" where enti_codigo like "'.$ruc2.'%" and (enti_direccion="" or enti_direccion is null)';
                $res_ruc2=msql_query($sql_ruc2,$link_vcrx);
              }    
						  if(mb_stristr(strtoupper($adicnombre),'TELEFONO'))
              {
                $sql_ruc2='update enti0 set enti_telefono="'.$adicvalue.'" where enti_codigo like "'.$ruc2.'%" and (enti_telefono="" or enti_telefono is null)';
                $res_ruc2=msql_query($sql_ruc2,$link_vcrx);
              }    
						  if(mb_stristr(strtoupper($adicnombre),'EMAIL'))
              {
                $sql_ruc2='update enti0 set enti_email="'.$adicvalue.'" where enti_codigo like "'.$ruc2.'%" and (enti_email="" or enti_email is null)';
                $res_ruc2=msql_query($sql_ruc2,$link_vcrx);
              }    
            }
// 						if($adicnombre=='VALOR IMPAGO'){$xinfoadic.=' /'.$adicnombre.':'.$adicvalue;}
					}
				}
			}
			
		}
//                               $xinfoadic3='{'.str_replace('}{','},{',$xinfoadic3).'}';
		
//           echo '*** '.$xinfoadic3;
		// GET IDNUM1
		{	
			//docu numero fecha enti
			$sql_cabe='update '.$tabla.'1 set adjunto1="OVERWRITE", claveacc="'.$clave_acceso.'"';
			$sql_cabe.=' where docu="'.$docu.'" and numero="'.$numero.'" and fecha="'.$fecha.'" and enti="'.$enti.'"';
			$sql_cabe.=' and (claveacc="" or claveacc is null)';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);

			$sql_cabe='select * from '.$tabla.'1 where claveacc="'.$clave_acceso.'"';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);

			if(msql_num_rows($res_cabe)==0)	
			{
        
        $sql_cabeb ='select * from '.$tabla.'1 ';
        $sql_cabeb.=' where enti like "'.substr($clave_acceso,10,10).'%" and ptoe="'.$ptoe.'" and numero="'.$numero.'" ';
        $sql_cabeb.=' and (claveacc="" or claveacc is null)';
        $sql_cabeb.=' order by idnum1 desc limit 1';
        $res_cabeb=msql_query($sql_cabeb,$link_vcrx);
        if(msql_num_rows($res_cabeb)!=0)	
        {
          $idnumx=msql_result($res_cabeb,0,'idnum1');
          $sql_updt='update '.$tabla.'1 set claveacc="'.$clave_acceso.'" where idnum1="'.$idnumx.'"';
          $res_updt=msql_query($sql_updt,$link_vcrx);
        }
        else
        {
          $sql_cabe='insert into '.$tabla.'1(claveacc,autornum,autorfec,atrznume,status,iuser,idate)';
          $sql_cabe.='value("'.$clave_acceso.'","'.$atrzce.'","'.$atrzfe.'","'.$atrzce.'","-","'.$_SESSION['user_vcrx_id'].'",now())';
          $res_cabe=msql_query($sql_cabe,$link_vcrx);
          
          $sql_cabe='update '.$tabla.'1 set zeus=1 where claveacc="'.$clave_acceso.'"';
          $res_cabe=@msql_query($sql_cabe,$link_vcrx);
        }
        

				$sql_cabe='select * from '.$tabla.'1 where claveacc="'.$clave_acceso.'"';
				$res_cabe=msql_query($sql_cabe,$link_vcrx);
			}
			$xidnum1=msql_result($res_cabe,0,'idnum1');
			$xstatus=msql_result($res_cabe,0,'status');
//       echo $xidnum1;
      
      $sql_clac ='update clac0 set ';
      $sql_clac.='clac_autornum="'.$atrzce.'",';
      $sql_clac.='clac_autorfec="'.$atrzfe.'",';
      $sql_clac.='clac_status="A" ';
      $sql_clac.='where clac_codigo="'.$clave_acceso.'"';
      $res_clac=msql_query($sql_clac,$link_vcrx);
      
		}

    if($xstatus=='A'){return;}
    
		if($codDoc=='01')
		{	
// 			$docu='FP10';	
			if ($docu90!=""){$docu=$docu90;}

			// aqui validar reembolsos
			$total= $DOM2->getElementsByTagName('importeTotal')->item(0)->nodeValue;

			$enti=substr($emisor,0,10).'001';	
			$concepto="";	

      
			//  SUSTENTO COMPROBANTE
			$suco=get_lsuco($emisor);
      
			//  FORMA PAGO
      $fpag=$formapago;
      if($fpag=='')
      {$fpag=get_lfpag($emisor);}
			
			// CABECERA
			{
        $sql_cabe='update '.$tabla.'1 set ';
        if($tabla=='comp')
        {
          $sql_cabe.='enti="'.$emisor.'",';
          $sql_cabe.='toenti="'.$ruc2.'",';
        }  
        if($tabla=='vtas')
        {
          $sql_cabe.='enti="'.$ruc2.'",';
          $sql_cabe.='ptov="'.$ptoe.'",';
        }  
        $sql_cabe.='docu="'.$docu.'",';
        $sql_cabe.='ptoe="'.$ptoe.'",';
        $sql_cabe.='numero="'.$numero.'",';
        $sql_cabe.='fecha="'.$fecha.'",';
        $sql_cabe.='suco="'.$suco.'",';
        $sql_cabe.='fpag="'.$fpag.'",';
        $sql_cabe.='concepto="'.$concepto.'",';
        $sql_cabe.='claveacc="'.$claveacc.'",';
        $sql_cabe.='autornum="'.$atrzce.'",';
        $sql_cabe.='autorfec="'.$atrzfe.'",';
        $sql_cabe.='atrznume="'.$atrzce.'",';
        $sql_cabe.='status="-",';
        $sql_cabe.='stfin="1" ';
        $sql_cabe.=' where idnum1='.$xidnum1.'';
        $sql_cabe.=' and status!="O"';
        $res_cabe=msql_query($sql_cabe,$link_vcrx);
  //         echo $sql_cabe;
			}

			$xiddet=0;	
			$detallex= $DOM2->getElementsByTagName('detalle');
			foreach($detallex as $detalley)
			{
				$xiddet++;
				$dcto=0;
				$ice=0;
				$iva=0;
				$irbp=0;
				$itemce2='';

				foreach($detalley->childNodes as $detalle)
				{
					if($detalle->nodeName=='codigoPrincipal'){$itemce=$detalle->nodeValue;}
					if($detalle->nodeName=='codigoAuxiliar'){$itemce2=$detalle->nodeValue;}
					if($detalle->nodeName=='cantidad'){$cant=$detalle->nodeValue;}
					if($detalle->nodeName=='precioUnitario'){$puni=$detalle->nodeValue;}
					if($detalle->nodeName=='descuento'){$dcto=$detalle->nodeValue;}
					if($detalle->nodeName=='descripcion'){$xdetalle=$detalle->nodeValue;}
					if($detalle->nodeName=='impuestos')
					{
						foreach($detalle->childNodes as $impuestos)
						{
							if($impuestos->nodeName=='impuesto')
							{
								foreach($impuestos->childNodes as $impuesto)
								{
									if($impuesto->nodeName=='codigo')
									{$codigoimp=$impuesto->nodeValue;}
									if($impuesto->nodeName=='tarifa')
									{
										if($codigoimp=='2'){$iva=$impuesto->nodeValue;}
										if($codigoimp=='3'){$ice=$impuesto->nodeValue;}
									}
								}
							}
						}
					 }
				}
// 					if($cant*$puni!=0){$dcto=round(($dcto/($cant * $puni))*100,2);}
					if($cant*$puni!=0){$dcto=round(($dcto/($cant * $puni))*100,6);}
// 						$dcto=round(($dcto/($cant * $puni))*100,4);

					$xdetalle=str_replace('"','-',$xdetalle);
          $itemce=str_replace('"','',$itemce);
          $itemce2=str_replace('"','',$itemce2);
//  					if($xdetalle==''){$xdetalle=$itemce;}
				
					if($xdetalle==""){$xdetalle=$itemce;}

					$sql_deta='select * from '.$tabla.'2  where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
// 					$sql_deta='select * from comp2  where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'" order by ctas desc';
					$res_deta=msql_query($sql_deta,$link_vcrx);
	
				
					if(msql_num_rows($res_deta)!=1)
					{
  					$sql_dele='delete from '.$tabla.'2 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'" and (ctas="" or ctas is null)';
            $res_dele=msql_query($sql_dele,$link_vcrx);
  					$res_deta=msql_query($sql_deta,$link_vcrx);
					}
				
					if(msql_num_rows($res_deta)!=1)
					{
  					$sql_dele='delete from '.$tabla.'2 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
            $res_dele=msql_query($sql_dele,$link_vcrx);
  					$res_deta=msql_query($sql_deta,$link_vcrx);
					}
				
					if(msql_num_rows($res_deta)==0)
					{
            $sql_inse='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
            $res_inse=msql_query($sql_inse,$link_vcrx);
					}
        
        $codret = "";
        if (mb_stristr('pec1',$cfg_empr))
             $codret = '332' ;
        
					$sql_deta='update '.$tabla.'2 set ';
					{
            if($tabla=='comp')
            {
            $sql_deta.='itemce="'.$itemce.'",';
            $sql_deta.='itemce2="'.$itemce2.'",';
            }
            $sql_deta.='cant="'.$cant.'",';
            $sql_deta.='puni="'.$puni.'",';
            $sql_deta.='ice="'.$ice.'",';
            $sql_deta.='dcto="'.$dcto.'",';
            $sql_deta.='prop="'.$prop.'",';
            $sql_deta.='iva="'.$iva.'",';
            $sql_deta.='irbp="'.$irbp.'",';
            $sql_deta.='cair="'.$codret.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=@msql_query($sql_deta,$link_vcrx);
//             echo '<br>***'.$sql_deta;
//             echo '<br>***'.msql_error($link_vcrx);
					}
				
				//  ITEM
// 					$item=get_litem($emisor,$itemce);
// 					if($empr=='demo' and !val_ean($item,true)){$item="9999999999";}
					if(mb_stristr('demo.cele.srie',$cfg_empr) and !val_ean($item,true)){$item="9999999999";}
					else{$item=get_litem($emisor,$itemce,$itemce2,$fecha);}
					
// echo '*/*/*'.$item;
				{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='item="'.$item.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (item="" or item is null or item like "9999%")';
					$res_deta=msql_query($sql_deta,$link_vcrx);
				}
// echo '<br>*/*/*/*'.$sql_deta;
// echo '<br>-+-+-+'.msql_error($link_vcrx);        
// if($xiddet==2)        
// {return;}
        
				//  CTAS
					$ctas=get_lctas($emisor,$itemce);
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='ctas="'.$ctas.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (ctas="" or ctas is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}

				//  CAIR
          // tarjeta va 332 sin retencion
          if(mb_stristr('16.19',$fpag) and  $fecha>="2020-01-01"){$cair='332';}
					else{$cair=get_lcair($emisor,$item);}
                    
          if(mb_stristr('ffsp',$cfg_empr)){$cair='332';}
            
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='cair="'.$cair.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
                         if($cair!='332')
                         {$sql_deta.=' and (cair="" or cair is null)';}
					$res_deta=@msql_query($sql_deta,$link_vcrx);
//             echo '<br>'.$sql_deta;
					}
				
				//  RRTA
					$rrta=get_lrrta($emisor,$item,$cair);
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='rrta="'.$rrta.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (rrta="" or rrta is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}
				
				//  RIVA
					$riva=get_lriva($emisor,$item);
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='riva="'.$riva.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (riva="" or riva is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}
				
			}

// 			if($xconcepto==""){$xconcepto=$xinfoadic;}
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='concepto="'.$xconcepto.'",';
			$sql_cabe.='firmante="'.$xfirmante.'",';
// 			$sql_cabe.='infoadic="'.$xinfoadic2.'" ';
			$sql_cabe.='infoadic="'.$xinfoadic3.'" ';
			$sql_cabe.=' where idnum1="'.$xidnum1.'"';
			$res_cabe=@msql_query($sql_cabe,$link_vcrx);
               
               if($fecha>="2022-01-01" and $docu=='FP10')
               {
                    $sql_infoadic='select * from comp1 where idnum1='.$xidnum1;
                    $res_infoadic=msql_query($sql_infoadic,$link_vcrx);
                    $objadi1=msql_result($res_infoadic,0,'infoadic');
                    $objadi1=str_replace('}{',',',$objadi1);
                    $objadi1=str_replace('}','',$objadi1);
                    $objadi1=str_replace('{','',$objadi1);
                    $objadi1=str_replace('"','',$objadi1);
                    $objadi1=explode(',',$objadi1);
                    for($idx=0; $idx<=count($objadi1); $idx++)
                    {
                         $objadi2=explode(':',$objadi1[$idx]);
                         if(substr($objadi2[0],0,4)=='TASA' or substr($objadi2[0],0,8)=='CONTRIBU')
                         {
                              if(($objadi2[1]*1)>0)
                              {
                                   
                              $sql_iadi='select * from comp2 where idnum2="'.$xidnum1.'" and left(detalle,10)="'.substr($objadi2[1],0,10).'"';
                              $res_iadi=msql_query($sql_iadi,$link_vcrx);
                              $xidadi=msql_result($res_iadi,0,'idnum2');
                              $xiddad=msql_result($res_iadi,0,'iddet');
                              if(empty($xiddad))
                              {
                                   $xiddet++;
                                   $sql_inse='insert into comp2(idnum2,iddet,item,detalle)value("'.$xidnum1.'","'.$xiddet.'","9999999999999","'.$objadi2[0].'")';
                                   $res_inse=msql_query($sql_inse,$link_vcrx);
//                                    echo '<br>'.$sql_inse;
                              }
                              $sql_updt='update comp2 set cant=1, puni='.$objadi2[1].' where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
                              $res_updt=msql_query($sql_updt,$link_vcrx);
//                               echo '<br>'.$sql_updt;
                              }
                                   
                         }
                    }
               }

      
			$msjxml ='';
			$msjxml.='<table border="0" cellpadding="2" style="font-family:arial;font-size:90%; border-collapse:collapse;">';
			$msjxml.='<tr>';
			$msjxml.='<td colspan="2">*** COMPROBANTE OK ***</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Fecha :</td>';
			$msjxml.='<td>'.$fecha.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>FACTURA No :</td>';
      $msjxml.='<td><a href="?prnt=1&docu='.$docu.'&idnum='.$xidnum1.'&formato='.''.'" target="_blank">';
      $msjxml.= $ptoe.'-'.$numero;
      $msjxml.= '</a></td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Proveedor :</td>';
			$msjxml.='<td>'.$emisor.' - '.$razsoc.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Comprador :</td>';
			$msjxml.='<td>'.$ruc2.' - '.$razsoc2.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Clave Acceso :</td>';
			$msjxml.='<td>'.$clave_acceso.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Autorizacion :</td>';
			$msjxml.='<td>'.$atrzce.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
      $msjxml.='<td>TOTAL :</td>';
      $msjxml.='<td>'.$total.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Concepto :</td>';
			$msjxml.='<td>'.$xconcepto.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='</table>';
			
      
      
// 			ob_start();
// 			echo $result;
// 			$obstart = ob_get_clean(); 
// 			$obstart = alltrim($obstart) ;

			
	}

		if($codDoc=='04')
		{	
// 			$docu='NP10';	
			$total= $DOM2->getElementsByTagName('importeTotal')->item(0)->nodeValue;
			$concepto="";	

      $codDocMod='';
      $numDocMod=str_replace('-','',$numDocMod);
      $ptoDocMod=substr($numDocMod,0,6);
      $numDocMod=substr($numDocMod,6,9);
      $codDocMod='FP10';
      if($tabla=='vtas')
      {$codDocMod='FC10';}

			//  SUSTENTO COMPROBANTE
			$suco='-';
			{
				$sql_suco='select * from '.$tabla.'1 ';
				$sql_suco.=' where status not like "O" and status not like "X"' ;
				$sql_suco.=' and docu like "FP%"' ;
				$sql_suco.=' and enti like "'.substr($emisor,0,10).'%"';
				$sql_suco.=' and suco not like ""';
				$sql_suco.=' and suco not like "-%"';
				$sql_suco.=' order by fecha desc, numero desc' ;
				$sql_suco.=' limit 1' ;
				$res_suco=msql_query($sql_suco,$link_vcrx);
				if(msql_num_rows($res_suco)!=0)
				{$suco=msql_result($res_suco,0,'suco');}
			}

			//  FORMA PAGO
			$fpag='-';
			{
				$sql_suco='select * from '.$tabla.'1 ';
				$sql_suco.=' where status not like "O" and status not like "X"' ;
				$sql_suco.=' and docu like "FP%"' ;
				$sql_suco.=' and enti like "'.substr($emisor,0,10).'%"';
				$sql_suco.=' and fpag not like ""';
				$sql_suco.=' and fpag not like "-%"';
				$sql_suco.=' order by fecha desc, numero desc' ;
				$sql_suco.=' limit 1' ;
				$res_suco=msql_query($sql_suco,$link_vcrx);
				if(msql_num_rows($res_suco)!=0)
				{$fpag=msql_result($res_suco,0,'fpag');}
			}

			// CABECERA
			{
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='enti="'.$enti.'",';
			$sql_cabe.='docu="'.$docu.'",';
			$sql_cabe.='ptoe="'.$ptoe.'",';
			$sql_cabe.='numero="'.$numero.'",';
			$sql_cabe.='fecha="'.$fecha.'",';
			$sql_cabe.='suco="'.$suco.'",';
			$sql_cabe.='fpag="'.$fpag.'",';
			$sql_cabe.='claveacc="'.$claveacc.'",';
			$sql_cabe.='autornum="'.$atrzce.'",';
			$sql_cabe.='autorfec="'.$atrzfe.'",';
			$sql_cabe.='atrznume="'.$atrzce.'",';
			$sql_cabe.='concepto="'.$concepto.'",';
			$sql_cabe.='todocu="'.$codDocMod.'",';
			$sql_cabe.='toptoe="'.$ptoDocMod.'",';
			$sql_cabe.='tonume="'.$numDocMod.'",';
			$sql_cabe.='stfin="1" ';
			$sql_cabe.=' where idnum1='.$xidnum1.'';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
			}

			$xiddet=0;	
			$detallex= $DOM2->getElementsByTagName('detalle');
			foreach($detallex as $detalley)
			{
				$xiddet++;
				$dcto=0;
				$ice=0;
				$iva=0;
				$irbp=0;
				$itemce2='';

				foreach($detalley->childNodes as $detalle)
				{
					if($detalle->nodeName=='codigoPrincipal'){$itemce=$detalle->nodeValue;}
					if($detalle->nodeName=='codigoAuxiliar'){$itemce2=$detalle->nodeValue;}
					if($detalle->nodeName=='cantidad'){$cant=$detalle->nodeValue;}
					if($detalle->nodeName=='precioUnitario'){$puni=$detalle->nodeValue;}
					if($detalle->nodeName=='descuento'){$dcto=$detalle->nodeValue;}
					if($detalle->nodeName=='descripcion'){$xdetalle=$detalle->nodeValue;}
					if($detalle->nodeName=='impuestos')
					{
						foreach($detalle->childNodes as $impuestos)
						{
							if($impuestos->nodeName=='impuesto')
							{
								foreach($impuestos->childNodes as $impuesto)
								{
									if($impuesto->nodeName=='codigo')
									{$codigoimp=$impuesto->nodeValue;}
									if($impuesto->nodeName=='tarifa')
									{
// 										$ice=0;
// 										$iva=0;
// 										$irbp=0;
										if($codigoimp=='2'){$iva=$impuesto->nodeValue;}
										if($codigoimp=='3'){$ice=$impuesto->nodeValue;}
									}
								}
							}
						}
					 }
				}
// 				$dcto=round(($dcto/($cant * $puni))*100,2);
        if($cant*$puni!=0)
        {$dcto=round(($dcto/($cant * $puni))*100,6);}

// 				$xdetalle=str_replace('"','-',$xdetalle);
				$xdetalle=str_replace('"','-',$xdetalle).' /'.$itemce;
				if ($xdetalle==""){$xdetalle=$itemce;}

					$sql_deta='select * from '.$tabla.'2  where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
					$res_deta=msql_query($sql_deta,$link_vcrx);
	
	
					if(msql_num_rows ($res_deta)==0)
					{
					$sql_deta='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
					$res_deta=msql_query($sql_deta,$link_vcrx);
					}

				$sql_deta='update '.$tabla.'2 set ';
				{
        if($tabla=='comp')
        {
				$sql_deta.='itemce="'.$itemce.'",';
				$sql_deta.='itemce2="'.$itemce2.'",';
        }  
				$sql_deta.='cant="'.$cant.'",';
				$sql_deta.='puni="'.$puni.'",';
				$sql_deta.='ice="'.$ice.'",';
				$sql_deta.='dcto="'.$dcto.'",';
				$sql_deta.='iva="'.$iva.'",';
				$sql_deta.='irbp="'.$irbp.'",';
				$sql_deta.='detalle="'.$xdetalle.'" ';
				$sql_deta.=' where idnum2="'.$xidnum1.'"';
				$sql_deta.=' and iddet="'.$xiddet.'"';
				$res_deta=msql_query($sql_deta,$link_vcrx);
			 }

				//  ITEM
					$item=get_litem($emisor,$itemce,$itemce2);
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='item="'.$item.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (item="" or item is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}

				//  CTAS
					$ctas=get_lctas($emisor,$itemce);
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='ctas="'.$ctas.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (ctas="" or ctas is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}

				//  CAIR
					$cair=get_lcair($emisor,$itemce);
//           if(mb_stristr('16.19',$fpag)){$cair='332';}
// 					else{$cair=get_lcair($emisor,$itemce);}
//                     echo '*/*/*/*'.$cair;
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='cair="'.$cair.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (cair="" or cair is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}
				
			}


			if($xconcepto==""){$xconcepto=$xinfoadic;}
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='concepto="'.$xconcepto.'",';
			$sql_cabe.='firmante="'.$xfirmante.'",';
// 			$sql_cabe.='infoadic="'.$xinfoadic.'" ';
			$sql_cabe.='infoadic="'.$xinfoadic3.'" ';
			$sql_cabe.=' where idnum1="'.$xidnum1.'"';
			$res_cabe=@msql_query($sql_cabe,$link_vcrx);

			
      
			$msjxml ='';
			$msjxml.='<table border="0" cellpadding="2" style="font-family:arial;font-size:90%; border-collapse:collapse;">';
			$msjxml.='<tr>';
			$msjxml.='<td colspan="2">*** COMPROBANTE OK ***</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Fecha :</td>';
			$msjxml.='<td>'.$fecha.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>N/CREDITO No :</td>';
      $msjxml.='<td><a href="?prnt=1&docu='.$docu.'&idnum='.$xidnum1.'&formato='.''.'" target="_blank">';
      $msjxml.= $ptoe.'-'.$numero;
      $msjxml.= '</a></td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Proveedor :</td>';
			$msjxml.='<td>'.$emisor.' - '.$razsoc.'</td>';
			$msjxml.='</tr>';
            
			$msjxml.='<tr>';
			$msjxml.='<td>Comprador :</td>';
			$msjxml.='<td>'.$ruc2.' - '.$razsoc2.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Clave Acceso :</td>';
			$msjxml.='<td>'.$clave_acceso.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Autorizacion :</td>';
			$msjxml.='<td>'.$atrzce.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
      $msjxml.='<td>TOTAL :</td>';
      $msjxml.='<td>'.$total.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Concepto :</td>';
			$msjxml.='<td>'.$xconcepto.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='</table>';
      
      
			
		}

		if($codDoc=='05')
		{	
// 			$docu='NP10';	
			$total= $DOM2->getElementsByTagName('valorTotal')->item(0)->nodeValue;
			$concepto= $DOM2->getElementsByTagName('razon')->item(0)->nodeValue;
      $xconcepto=$concepto;

      $codDocMod='';
      $numDocMod=str_replace('-','',$numDocMod);
      $ptoDocMod=substr($numDocMod,0,6);
      $numDocMod=substr($numDocMod,6,9);
      $codDocMod='FP10';
      if($tabla=='vtas')
      {$codDocMod='FC10';}

      
			//  SUSTENTO COMPROBANTE
			$suco='-';
      if(1==2)
			{
				$sql_suco='select * from '.$tabla.'1 ';
				$sql_suco.=' where status not like "O" and status not like "X"' ;
				$sql_suco.=' and docu like "FP%"' ;
				$sql_suco.=' and enti like "'.substr($emisor,0,10).'%"';
				$sql_suco.=' and suco not like ""';
				$sql_suco.=' and suco not like "-%"';
				$sql_suco.=' order by fecha desc, numero desc' ;
				$sql_suco.=' limit 1' ;
				$res_suco=msql_query($sql_suco,$link_vcrx);
				if(msql_num_rows($res_suco)!=0)
				{$suco=msql_result($res_suco,0,'suco');}
			}

			//  FORMA PAGO
			$fpag='-';
      if(1==2)
			{
				$sql_suco='select * from '.$tabla.'1 ';
				$sql_suco.=' where status not like "O" and status not like "X"' ;
				$sql_suco.=' and docu like "FP%"' ;
				$sql_suco.=' and enti like "'.substr($emisor,0,10).'%"';
				$sql_suco.=' and fpag not like ""';
				$sql_suco.=' and fpag not like "-%"';
				$sql_suco.=' order by fecha desc, numero desc' ;
				$sql_suco.=' limit 1' ;
				$res_suco=msql_query($sql_suco,$link_vcrx);
				if(msql_num_rows($res_suco)!=0)
				{$fpag=msql_result($res_suco,0,'fpag');}
			}

			// CABECERA
			{
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='enti="'.$enti.'",';
			$sql_cabe.='docu="'.$docu.'",';
			$sql_cabe.='ptoe="'.$ptoe.'",';
			$sql_cabe.='numero="'.$numero.'",';
			$sql_cabe.='fecha="'.$fecha.'",';
			$sql_cabe.='suco="'.$suco.'",';
			$sql_cabe.='fpag="'.$fpag.'",';
			$sql_cabe.='claveacc="'.$claveacc.'",';
			$sql_cabe.='autornum="'.$atrzce.'",';
			$sql_cabe.='autorfec="'.$atrzfe.'",';
			$sql_cabe.='atrznume="'.$atrzce.'",';
			$sql_cabe.='concepto="'.$concepto.'",';
			$sql_cabe.='todocu="'.$codDocMod.'",';
			$sql_cabe.='toptoe="'.$ptoDocMod.'",';
			$sql_cabe.='tonume="'.$numDocMod.'",';
			$sql_cabe.='stfin="1" ';
			$sql_cabe.=' where idnum1='.$xidnum1.'';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
//         echo '*/*/*/'.$concepto;
			}

			$xiddet=0;	
			$detallex= $DOM2->getElementsByTagName('detalle');
// 			foreach($detallex as $detalley)
			{
				$xiddet++;
				$dcto=0;
				$ice=0;
				$iva=0;
				$irbp=0;
				$itemce2='';

// 				foreach($detalley->childNodes as $detalle)
// 				{
// 					if($detalle->nodeName=='codigoPrincipal'){$itemce=$detalle->nodeValue;}
// 					if($detalle->nodeName=='codigoAuxiliar'){$itemce2=$detalle->nodeValue;}
// 					if($detalle->nodeName=='cantidad'){$cant=$detalle->nodeValue;}
// 					if($detalle->nodeName=='precioUnitario'){$puni=$detalle->nodeValue;}
// 					if($detalle->nodeName=='descuento'){$dcto=$detalle->nodeValue;}
// 					if($detalle->nodeName=='descripcion'){$xdetalle=$detalle->nodeValue;}
// 					if($detalle->nodeName=='impuestos')
// 					{
// 						foreach($detalle->childNodes as $impuestos)
// 						{
// 							if($impuestos->nodeName=='impuesto')
// 							{
// 								foreach($impuestos->childNodes as $impuesto)
// 								{
// 									if($impuesto->nodeName=='codigo')
// 									{$codigoimp=$impuesto->nodeValue;}
// 									if($impuesto->nodeName=='tarifa')
// 									{
// // 										$ice=0;
// // 										$iva=0;
// // 										$irbp=0;
// 										if($codigoimp=='2'){$iva=$impuesto->nodeValue;}
// 										if($codigoimp=='3'){$ice=$impuesto->nodeValue;}
// 									}
// 								}
// 							}
// 						}
// 					 }
// 				}
// 				$dcto=round(($dcto/($cant * $puni))*100,2);
        $cant=1;
//         $puni=$DOM2->getElementsByTagName('totalSinImpuestos')->item(0)->nodeValue;
        
			  $impuestosx= $DOM2->getElementsByTagName('impuestos');
						foreach($impuestosx as $impuestos)
						{
							foreach($impuestos->childNodes as $impuesto)
							{
							  foreach($impuesto->childNodes as $impuesto1)
								{
									if($impuesto1->nodeName=='baseImponible')
									{$puni=$impuesto1->nodeValue;}
									if($impuesto1->nodeName=='codigo')
									{$codigoimp=$impuesto1->nodeValue;}
									if($impuesto1->nodeName=='tarifa')
									{
// 										$ice=0;
// 										$iva=0;
// 										$irbp=0;
										if($codigoimp=='2'){$iva=$impuesto1->nodeValue;}
										if($codigoimp=='3'){$ice=$impuesto1->nodeValue;}
									}
								}
							}
						}
        
			  $motivosx= $DOM2->getElementsByTagName('motivos');
						foreach($motivosx as $motivos)
						{
							foreach($motivos->childNodes as $motivo)
							{
							  foreach($motivo->childNodes as $motivo1)
								{
									if($motivo1->nodeName=='razon')
									{$mrazon=$motivo1->nodeValue;}
									if($motivo1->nodeName=='valor')
									{$mvalor=$motivo1->nodeValue;}
								}
							}
						}
        
        
        if($cant*$puni!=0)
        {$dcto=round(($dcto/($cant * $puni))*100,6);}

// 				$xdetalle=str_replace('"','-',$xdetalle);
// 				$xdetalle=str_replace('"','-',$xdetalle).' /'.$itemce;
        $xdetalle=$mrazon;
				if ($xdetalle==""){$xdetalle=$itemce;}

					$sql_deta='select * from '.$tabla.'2  where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
					$res_deta=msql_query($sql_deta,$link_vcrx);
	
	
					if(msql_num_rows ($res_deta)==0)
					{
					$sql_deta='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
					$res_deta=msql_query($sql_deta,$link_vcrx);
					}

				$sql_deta='update '.$tabla.'2 set ';
				{
        if($tabla=='comp')
        {
				$sql_deta.='itemce="'.$itemce.'",';
				$sql_deta.='itemce2="'.$itemce2.'",';
        }  
				$sql_deta.='cant="'.$cant.'",';
				$sql_deta.='puni="'.$puni.'",';
				$sql_deta.='ice="'.$ice.'",';
				$sql_deta.='dcto="'.$dcto.'",';
				$sql_deta.='iva="'.$iva.'",';
				$sql_deta.='irbp="'.$irbp.'",';
				$sql_deta.='detalle="'.$xdetalle.'" ';
				$sql_deta.=' where idnum2="'.$xidnum1.'"';
				$sql_deta.=' and iddet="'.$xiddet.'"';
				$res_deta=msql_query($sql_deta,$link_vcrx);
			 }

				//  ITEM
					$item=get_litem($emisor,$itemce,$itemce2);
        if(1==2)
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='item="'.$item.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (item="" or item is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}

				//  CTAS
					$ctas=get_lctas($emisor,$itemce);
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='ctas="'.$ctas.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (ctas="" or ctas is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}

				//  CAIR
					$cair=get_lcair($emisor,$itemce);
                         if(1==2)
					{
					$sql_deta='update '.$tabla.'2 set ';
					$sql_deta.='cair="'.$cair.'",';
					$sql_deta.='detalle="'.$xdetalle.'" ';
					$sql_deta.=' where idnum2="'.$xidnum1.'"';
					$sql_deta.=' and iddet="'.$xiddet.'"';
					$sql_deta.=' and (cair="" or cair is null)';
					$res_deta=@msql_query($sql_deta,$link_vcrx);
					}
				
			}


			if($xconcepto==""){$xconcepto=$xinfoadic;}
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='concepto="'.$xconcepto.'",';
			$sql_cabe.='firmante="'.$xfirmante.'",';
// 			$sql_cabe.='infoadic="'.$xinfoadic.'" ';
			$sql_cabe.='infoadic="'.$xinfoadic3.'" ';
			$sql_cabe.=' where idnum1="'.$xidnum1.'"';
			$res_cabe=@msql_query($sql_cabe,$link_vcrx);

			
      
			$msjxml ='';
			$msjxml.='<table border="0" cellpadding="2" style="font-family:arial;font-size:90%; border-collapse:collapse;">';
			$msjxml.='<tr>';
			$msjxml.='<td colspan="2">*** COMPROBANTE OK ***</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Fecha :</td>';
			$msjxml.='<td>'.$fecha.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>N/DEBITO No :</td>';
      $msjxml.='<td><a href="?prnt=1&docu='.$docu.'&idnum='.$xidnum1.'&formato='.''.'" target="_blank">';
      $msjxml.= $ptoe.'-'.$numero;
      $msjxml.= '</a></td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Proveedor :</td>';
			$msjxml.='<td>'.$emisor.' - '.$razsoc.'</td>';
			$msjxml.='</tr>';
            
			$msjxml.='<tr>';
			$msjxml.='<td>Comprador :</td>';
			$msjxml.='<td>'.$ruc2.' - '.$razsoc2.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Clave Acceso :</td>';
			$msjxml.='<td>'.$clave_acceso.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Autorizacion :</td>';
			$msjxml.='<td>'.$atrzce.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
      $msjxml.='<td>TOTAL :</td>';
      $msjxml.='<td>'.$total.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Concepto :</td>';
			$msjxml.='<td>'.$xconcepto.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='</table>';
      
      
			
		}

		if($codDoc=='06')
		{	
// 			$docu='RCLI';	
//       $tabla='retc';
			$enti=$emisor;	
			$concepto="";
			
			// CABECERA
			{
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='enti="'.$enti.'",';
// 			$sql_cabe.='toenti="'.$ruc2.'",';
			$sql_cabe.='docu="'.$docu.'",';
			$sql_cabe.='ptoe="'.$ptoe.'",';
			$sql_cabe.='numero="'.$numero.'",';
			$sql_cabe.='fecha="'.$fecha.'",';
			$sql_cabe.='placa="'.$placa.'",';
			$sql_cabe.='cedula1="'.$cedula1.'",';
// 			$sql_cabe.='cedula2="'.$cedula2.'",';
			$sql_cabe.='claveacc="'.$claveacc.'",';
			$sql_cabe.='autornum="'.$atrzce.'",';
			$sql_cabe.='autorfec="'.$atrzfe.'",';
			$sql_cabe.='atrznume="'.$atrzce.'",';
		// 		$sql_cabe.='concepto="'.$concepto.'",';
			$sql_cabe.='stfin="1" ';
			$sql_cabe.=' where idnum1='.$xidnum1.'';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
// 			echo $sql_cabe;
// 			echo msql_error($link_vcrx);
			}
			
			$sql_cabe='delete from '.$tabla.'2 where idnum2='.$xidnum1.'';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
// echo $sql_cabe;

      
// 			$comprobanteVersion= $DOM2->getElementByTagName('comprobanteRetencion');
// //       $version = $comprobanteVersion->getAttribute('version');      
      
			$xiddet=0;	
			$detallex= $DOM2->getElementsByTagName('detalle');
      $ptonumer2='';
//       if($version=='2.0.0')
//       {
//         $detallex= $DOM2->getElementsByTagName('retencion');
//         $search = $DOM2->getElementsByTagName('numDocSustento');
//         foreach($search as $search)
//         {$ptonumer2=$search->nodeValue;}
//       }
      
      if($detallex->length!=0)
      {
        foreach($detallex as $detalley)
        {
          $xiddet++;
          foreach($detalley->childNodes as $detalle)
          {
//             if($detalle->nodeName=='codigo'){$ctas=$detalle->nodeValue;}
//             if($detalle->nodeName=='codigoRetencion'){$cair=$detalle->nodeValue;}
            if($detalle->nodeName=='cantidad'){$cant=$detalle->nodeValue;}
            if($detalle->nodeName=='descripcion'){$xdetalle=$detalle->nodeValue;}
            if($detalle->nodeName=='codigoInterno'){$itemce=$detalle->nodeValue;}
          }
             
          if(!empty($ptonumer2)){$ptonumer=$ptonumer2;}
             
            echo '<msgalert>';
//           echo '--';
//             echo $ptonumer;
            echo '</msgalert>';
          
          $xdetalle=str_replace('"','-',$xdetalle);
//           if($xdetalle==""){}
          // INSERT RETC2
          {
            $ptoem=substr($ptonumer,0,6);
            $numer=substr($ptonumer,6,9);

            
//             $sql_docum='select * from vtas1 ';
//             if($tabla=='retp')
//             {$sql_docum='select * from comp1 ';}
//             $sql_docum.=' where status!="X" ';
//             $sql_docum.=' and enti like "'.$emisor.'"';
//             $sql_docum.=' and docu like "F%"';
//             $sql_docum.=' and ptoe like "'.$ptoem.'"';
//             $sql_docum.=' and numero like "'.$numer.'"';
//             $sql_docum.=' order by fecha desc ';
//             $sql_docum.=' limit 1';
//             $res_docum=msql_query($sql_docum,$link_vcrx);
//             $docum="FC10";
//             if($tabla=='retp')
//             {$docum='FP10';}
//             if(msql_num_rows($res_docum)!=0)
//             {$docum=msql_result($res_docum,0,'docu');}

            $sql_deta='select * from '.$tabla.'2 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
            if(msql_num_rows($res_deta)==0)
            {
              $sql_deta='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
              $res_deta=msql_query($sql_deta,$link_vcrx);
//                  echo '*/*/*'.$sql_deta;
            }	

            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='item="9999999999",';
            $sql_deta.='itemce="'.$itemce.'",';
            $sql_deta.='cant="'.$cant.'",';
            $sql_deta.='puni=0.01,';
//             $sql_deta.='cair="'.$cair.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);

//                echo '/*/*/*'.$sql_deta;die();

//  echo '*/*/*//* HERE 22'.$sql_deta;die()
               
//             $sql_deta='update '.$tabla.'2 set ';
//             $sql_deta.='docum="'.$docum.'",';
//             $sql_deta.='ptoem="'.$ptoem.'",';
//             $sql_deta.='numer="'.$numer.'",';
//             $sql_deta.='detalle="'.$xdetalle.'" ';
//             $sql_deta.=' where idnum2="'.$xidnum1.'"';
//             $sql_deta.=' and iddet="'.$xiddet.'"';
//             $res_deta=msql_query($sql_deta,$link_vcrx);
            
//             echo '<msgalert>';
//             echo $sql_deta;
//             echo '</msgalert>';

            
            
//             if($cair=='4580' or $cair=='323B1')
//             if(mb_stristr('4580.323B1.323E.344A',$cair))
//             if($cair=='323B1' or $cair=='323E' or $cair=='344A' or $cair=='4580')
//             if($cair=='323B1' or $cair=='323E' or $cair=='4580')
//             if($cair=='323B1' or $cair=='323E' or $cair=='34X4A' or $cair=='4580')
//             {
//               $sql_cabe='update '.$tabla.'1 set ';
//               $sql_cabe.='docu="RBCO",';
//               $sql_cabe.='status=status ';
//               $sql_cabe.=' where idnum1="'.$xidnum1.'"';
//               $res_cabe=msql_query($sql_cabe,$link_vcrx);
//             }
          }
        }
      }else{
			  $detallex= $DOM2->getElementsByTagName('docSustento');
//         echo '<br>';
//         echo '<br>';
//               var_dump($DOM2);
//         echo '<br>';
//         echo '<br>';
        foreach($detallex as $detalley)
        {
          foreach($detalley->childNodes as $detalle)
          {
            if($detalle->nodeName=='numDocSustento'){$ptonumer=$detalle->nodeValue;}
            if($detalle->nodeName=='retenciones')
            {
              $xml3=$detalle->nodeValue;
              $xml3='<xml3>'.$xml3.'</xml3>';
              $DOM3->loadXML($xml3);
              $retencionx= $DOM3->getElementsByTagName('xml3');
              $xiddet++;
              foreach($detalle->childNodes as $retenciony)
              {
                foreach($retenciony->childNodes as $retencion)
                {
                  if($retencion->nodeName=='codigo'){$ctas=$retencion->nodeValue;}
                  if($retencion->nodeName=='codigoRetencion'){$cair=$retencion->nodeValue;}
                  if($retencion->nodeName=='baseImponible'){$cant=$retencion->nodeValue;}
                  if($retencion->nodeName=='porcentajeRetener'){$puni=$retencion->nodeValue;}
                }
              }
          // INSERT RETC2
          {
            $ptoem=substr($ptonumer,0,6);
            $numer=substr($ptonumer,6,9);

            $sql_docum='select * from vtas1 ';
            if($tabla=='retp')
            {$sql_docum='select * from comp1 ';}
            $sql_docum.=' where status!="X" ';
            $sql_docum.=' and enti like "'.$emisor.'"';
            $sql_docum.=' and docu like "F%"';
            $sql_docum.=' and ptoe like "'.$ptoem.'"';
            $sql_docum.=' and numero like "'.$numer.'"';
            $sql_docum.=' order by fecha desc ';
            $sql_docum.=' limit 1';
            $res_docum=msql_query($sql_docum,$link_vcrx);
            $docum="FC10";
            if($tabla=='retp')
            {$docum='FP10';}
            if(msql_num_rows($res_docum)!=0)
            {$docum=msql_result($res_docum,0,'docu');}

            $sql_deta='select * from '.$tabla.'2 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
            if(msql_num_rows($res_deta)==0)
            {
              $sql_deta='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
              $res_deta=msql_query($sql_deta,$link_vcrx);
            }	

            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='cant="'.$cant.'",';
            $sql_deta.='puni="'.$puni.'",';
            $sql_deta.='cair="'.$cair.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
               
  
            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='docum="'.$docum.'",';
            $sql_deta.='ptoem="'.$ptoem.'",';
            $sql_deta.='numer="'.$numer.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
  
//             if($cair=='4580' or $cair=='323B1')
//             if($cair=='323B1' or $cair=='323E' or $cair=='344A' or $cair=='4580')          
            if($cair=='323B1' or $cair=='323E'  or $cair=='4580')          
            {
              $sql_cabe='update '.$tabla.'1 set ';
              $sql_cabe.='docu="RBCO",';
              $sql_cabe.='status=status ';
              $sql_cabe.=' where idnum1="'.$xidnum1.'"';
              $res_cabe=msql_query($sql_cabe,$link_vcrx);
            }
          }
                
            }
          }
        }
      }

      
			if($xconcepto==""){$xconcepto=$xinfoadic;}
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='concepto="'.$xconcepto.'",';
			$sql_cabe.='firmante="'.$xfirmante.'",';
// 			$sql_cabe.='infoadic="'.$xinfoadic.'" ';
			$sql_cabe.='infoadic="'.$xinfoadic3.'" ';
			$sql_cabe.=' where idnum1="'.$xidnum1.'"';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
			
			$msjxml ='';
			$msjxml.='<table border="0" cellpadding="2" style="font-family:arial;font-size:90%; border-collapse:collapse;">';
			$msjxml.='<tr>';
			$msjxml.='<td colspan="2">*** COMPROBANTE OK ***</td>';
			$msjxml.='</tr>';

			$msjxml.='<tr>';
			$msjxml.='<td>Fecha :</td>';
			$msjxml.='<td>'.$fecha.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>RETENCION No :</td>';
      $msjxml.='<td><a href="?prnt=1&docu='.$docu.'&idnum='.$xidnum1.'&formato='.''.'" target="_blank">';
      $msjxml.= $ptoe.'-'.$numero;
      $msjxml.= '</a></td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Cliente :</td>';
			$msjxml.='<td>'.$emisor.' - '.$razsoc.'</td>';
			$msjxml.='</tr>';
            
			$msjxml.='<tr>';
			$msjxml.='<td>Proveedor :</td>';
			$msjxml.='<td>'.$ruc2.' - '.$razsoc2.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Clave Acceso :</td>';
			$msjxml.='<td>'.$clave_acceso.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Autorizacion :</td>';
			$msjxml.='<td>'.$atrzce.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
      $msjxml.='<td>TOTAL :</td>';
      $msjxml.='<td>'.$total.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Concepto :</td>';
			$msjxml.='<td>'.$xconcepto.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='</table>';
      
      
      
		}
		
          
		if($codDoc=='07')
		{	
// 			$docu='RCLI';	
//       $tabla='retc';
			$enti=$emisor;	
			$concepto="";
			
			// CABECERA
			{
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='enti="'.$enti.'",';
			$sql_cabe.='toenti="'.$ruc2.'",';
			$sql_cabe.='docu="'.$docu.'",';
			$sql_cabe.='ptoe="'.$ptoe.'",';
			$sql_cabe.='numero="'.$numero.'",';
			$sql_cabe.='fecha="'.$fecha.'",';
			$sql_cabe.='claveacc="'.$claveacc.'",';
			$sql_cabe.='autornum="'.$atrzce.'",';
			$sql_cabe.='autorfec="'.$atrzfe.'",';
			$sql_cabe.='atrznume="'.$atrzce.'",';
		// 		$sql_cabe.='concepto="'.$concepto.'",';
			$sql_cabe.='stfin="1" ';
			$sql_cabe.=' where idnum1='.$xidnum1.'';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
// 			echo $sql_cabe;
// 			echo msql_error($link_vcrx);
			}
			
			$sql_cabe='delete from '.$tabla.'2 where idnum2='.$xidnum1.'';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
// echo $sql_cabe;

      
// 			$comprobanteVersion= $DOM2->getElementByTagName('comprobanteRetencion');
// //       $version = $comprobanteVersion->getAttribute('version');      
      
			$xiddet=0;	
			$detallex= $DOM2->getElementsByTagName('impuesto');
      $ptonumer2='';
      if($version=='2.0.0')
      {
        $detallex= $DOM2->getElementsByTagName('retencion');
        $search = $DOM2->getElementsByTagName('numDocSustento');
        foreach($search as $search)
        {$ptonumer2=$search->nodeValue;}
      }
      
      if($detallex->length!=0)
      {
        foreach($detallex as $detalley)
        {
          $xiddet++;
          foreach($detalley->childNodes as $detalle)
          {
            if($detalle->nodeName=='codigo'){$ctas=$detalle->nodeValue;}
            if($detalle->nodeName=='codigoRetencion'){$cair=$detalle->nodeValue;}
            if($detalle->nodeName=='baseImponible'){$cant=$detalle->nodeValue;}
            if($detalle->nodeName=='porcentajeRetener'){$puni=$detalle->nodeValue;}
            if($detalle->nodeName=='numDocSustento'){$ptonumer=$detalle->nodeValue;}
          }
          if(!empty($ptonumer2))
          {$ptonumer=$ptonumer2;}
            echo '<msgalert>';
          echo '--';
//             echo $ptonumer;
            echo '</msgalert>';
          
          $xdetalle=str_replace('"','-',$xdetalle);
//           if($xdetalle==""){}
          // INSERT RETC2
          {
            $ptoem=substr($ptonumer,0,6);
            $numer=substr($ptonumer,6,9);

            
            $sql_docum='select * from vtas1 ';
            if($tabla=='retp')
            {$sql_docum='select * from comp1 ';}
            $sql_docum.=' where status!="X" ';
            $sql_docum.=' and enti like "'.$emisor.'"';
            $sql_docum.=' and docu like "F%"';
            $sql_docum.=' and ptoe like "'.$ptoem.'"';
            $sql_docum.=' and numero like "'.$numer.'"';
            $sql_docum.=' order by fecha desc ';
            $sql_docum.=' limit 1';
            $res_docum=msql_query($sql_docum,$link_vcrx);
            $docum="FC10";
            if($tabla=='retp')
            {$docum='FP10';}
            if(msql_num_rows($res_docum)!=0)
            {$docum=msql_result($res_docum,0,'docu');}

            $sql_deta='select * from '.$tabla.'2 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
            if(msql_num_rows($res_deta)==0)
            {
              $sql_deta='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
              $res_deta=msql_query($sql_deta,$link_vcrx);
            }	

            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='cant="'.$cant.'",';
            $sql_deta.='puni="'.$puni.'",';
            $sql_deta.='cair="'.$cair.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);

//  echo '*/*/*//* HERE 22'.$sql_deta;die()
               
            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='docum="'.$docum.'",';
            $sql_deta.='ptoem="'.$ptoem.'",';
            $sql_deta.='numer="'.$numer.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
            
//             echo '<msgalert>';
//             echo $sql_deta;
//             echo '</msgalert>';

            
            
//             if($cair=='4580' or $cair=='323B1')
//             if(mb_stristr('4580.323B1.323E.344A',$cair))
//             if($cair=='323B1' or $cair=='323E' or $cair=='344A' or $cair=='4580')
//             if($cair=='323B1' or $cair=='323E' or $cair=='4580')
            if($cair=='323B1' or $cair=='323E' or $cair=='34X4A' or $cair=='4580')
            {
              $sql_cabe='update '.$tabla.'1 set ';
              $sql_cabe.='docu="RBCO",';
              $sql_cabe.='status=status ';
              $sql_cabe.=' where idnum1="'.$xidnum1.'"';
              $res_cabe=msql_query($sql_cabe,$link_vcrx);
            }
          }
        }
      }else{
			  $detallex= $DOM2->getElementsByTagName('docSustento');
//         echo '<br>';
//         echo '<br>';
//               var_dump($DOM2);
//         echo '<br>';
//         echo '<br>';
        foreach($detallex as $detalley)
        {
          foreach($detalley->childNodes as $detalle)
          {
            if($detalle->nodeName=='numDocSustento'){$ptonumer=$detalle->nodeValue;}
            if($detalle->nodeName=='retenciones')
            {
              $xml3=$detalle->nodeValue;
              $xml3='<xml3>'.$xml3.'</xml3>';
              $DOM3->loadXML($xml3);
              $retencionx= $DOM3->getElementsByTagName('xml3');
              $xiddet++;
              foreach($detalle->childNodes as $retenciony)
              {
                foreach($retenciony->childNodes as $retencion)
                {
                  if($retencion->nodeName=='codigo'){$ctas=$retencion->nodeValue;}
                  if($retencion->nodeName=='codigoRetencion'){$cair=$retencion->nodeValue;}
                  if($retencion->nodeName=='baseImponible'){$cant=$retencion->nodeValue;}
                  if($retencion->nodeName=='porcentajeRetener'){$puni=$retencion->nodeValue;}
                }
              }
          // INSERT RETC2
          {
            $ptoem=substr($ptonumer,0,6);
            $numer=substr($ptonumer,6,9);

            $sql_docum='select * from vtas1 ';
            if($tabla=='retp')
            {$sql_docum='select * from comp1 ';}
            $sql_docum.=' where status!="X" ';
            $sql_docum.=' and enti like "'.$emisor.'"';
            $sql_docum.=' and docu like "F%"';
            $sql_docum.=' and ptoe like "'.$ptoem.'"';
            $sql_docum.=' and numero like "'.$numer.'"';
            $sql_docum.=' order by fecha desc ';
            $sql_docum.=' limit 1';
            $res_docum=msql_query($sql_docum,$link_vcrx);
            $docum="FC10";
            if($tabla=='retp')
            {$docum='FP10';}
            if(msql_num_rows($res_docum)!=0)
            {$docum=msql_result($res_docum,0,'docu');}

            $sql_deta='select * from '.$tabla.'2 where idnum2="'.$xidnum1.'" and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
            if(msql_num_rows($res_deta)==0)
            {
              $sql_deta='insert into '.$tabla.'2(idnum2,iddet)value("'.$xidnum1.'","'.$xiddet.'")';
              $res_deta=msql_query($sql_deta,$link_vcrx);
            }	

            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='cant="'.$cant.'",';
            $sql_deta.='puni="'.$puni.'",';
            $sql_deta.='cair="'.$cair.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
               
  
            $sql_deta='update '.$tabla.'2 set ';
            $sql_deta.='docum="'.$docum.'",';
            $sql_deta.='ptoem="'.$ptoem.'",';
            $sql_deta.='numer="'.$numer.'",';
            $sql_deta.='detalle="'.$xdetalle.'" ';
            $sql_deta.=' where idnum2="'.$xidnum1.'"';
            $sql_deta.=' and iddet="'.$xiddet.'"';
            $res_deta=msql_query($sql_deta,$link_vcrx);
  
//             if($cair=='4580' or $cair=='323B1')
//             if($cair=='323B1' or $cair=='323E' or $cair=='344A' or $cair=='4580')          
            if($cair=='323B1' or $cair=='323E'  or $cair=='4580')          
            {
              $sql_cabe='update '.$tabla.'1 set ';
              $sql_cabe.='docu="RBCO",';
              $sql_cabe.='status=status ';
              $sql_cabe.=' where idnum1="'.$xidnum1.'"';
              $res_cabe=msql_query($sql_cabe,$link_vcrx);
            }
          }
                
            }
          }
        }
      }

      
			if($xconcepto==""){$xconcepto=$xinfoadic;}
			$sql_cabe='update '.$tabla.'1 set ';
			$sql_cabe.='concepto="'.$xconcepto.'",';
			$sql_cabe.='firmante="'.$xfirmante.'",';
// 			$sql_cabe.='infoadic="'.$xinfoadic.'" ';
			$sql_cabe.='infoadic="'.$xinfoadic3.'" ';
			$sql_cabe.=' where idnum1="'.$xidnum1.'"';
			$res_cabe=msql_query($sql_cabe,$link_vcrx);
			
			$msjxml ='';
			$msjxml.='<table border="0" cellpadding="2" style="font-family:arial;font-size:90%; border-collapse:collapse;">';
			$msjxml.='<tr>';
			$msjxml.='<td colspan="2">*** COMPROBANTE OK ***</td>';
			$msjxml.='</tr>';

			$msjxml.='<tr>';
			$msjxml.='<td>Fecha :</td>';
			$msjxml.='<td>'.$fecha.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>RETENCION No :</td>';
      $msjxml.='<td><a href="?prnt=1&docu='.$docu.'&idnum='.$xidnum1.'&formato='.''.'" target="_blank">';
      $msjxml.= $ptoe.'-'.$numero;
      $msjxml.= '</a></td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Cliente :</td>';
			$msjxml.='<td>'.$emisor.' - '.$razsoc.'</td>';
			$msjxml.='</tr>';
            
			$msjxml.='<tr>';
			$msjxml.='<td>Proveedor :</td>';
			$msjxml.='<td>'.$ruc2.' - '.$razsoc2.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Clave Acceso :</td>';
			$msjxml.='<td>'.$clave_acceso.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Autorizacion :</td>';
			$msjxml.='<td>'.$atrzce.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
      $msjxml.='<td>TOTAL :</td>';
      $msjxml.='<td>'.$total.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='<tr>';
			$msjxml.='<td>Concepto :</td>';
			$msjxml.='<td>'.$xconcepto.'</td>';
			$msjxml.='</tr>';
      
			$msjxml.='</table>';
      
      
      
		}
		
		if(substr($docu,0,2)=='FP'){updt_itemce($docu,$xidnum1);}
		if(substr($docu,0,2)=='FP'){updt_ctascomp($docu,$xidnum1);}
      
// echo '*/*/*/*/*/*/*/*'.$docu.$xidnum1;
      
          vali_regidocu($docu,$xidnum1);
		gen_contab($docu,$xidnum1);
//       vali_regidocu($docu,$idnum);
// 		gen_contab($docu,$idnum);

      
    return $msjxml;
	}
	
	return $xupl;
}

function firma_ce($docu,$idnum)
{	
	include('../_cfg/config.php');
// 	include('php_session.php');
	
	$claveacc=gen_claveacc($docu,$idnum);
	gen_cexml($claveacc);

	$codDoc=substr($claveacc,8,2); 	
	//01 04 05
	$tabla='vtas';
	if($codDoc=='03'){$tabla='comp';}
	if($codDoc=='06'){$tabla='guia';}
	if($codDoc=='07'){$tabla='retp';}
	
	$sql_firm='update '.$tabla.'1 set firmafec=null where (recepfec="" or recepfec is null) and (autorfec="" or autorfec is null) and idnum1="'.$idnum.'"';
	$res_firm=msql_query($sql_firm,$link_vcrx);
	
// 	$sql_firm='update '.$tabla.'1 set firmafec=null where (recepfec="" or recepfec is null) and (autorfec="" or autorfec is null) and idnum1="'.$idnum.'"';
// 	$res_firm=msql_query($sql_firm,$link_vcrx);
	
	// visual fox
	// java
// 	echo $claveacc;
	return $claveacc;
// 	return get_statusce($claveacc);
		
}	

function get_statusce($claveacc)
{
	include('../_cfg/config.php');
	include('php_session.php');
  
//   echo '*/*/*/';
  
	$tabla='vtas';
	if($codDoc=='03'){$tabla='comp';}
	if($codDoc=='06'){$tabla='guia';}
	if($codDoc=='07'){$tabla='retp';}
	
	$statusce='';
	
	$stclac=val_clac($claveacc);
	if($stclac){$statusce='CLAVE : '.$claveacc.'* OK ';}
	else{return $stclac;}
		
	$sql_cele ='select * from '.$tabla.'1 where claveacc="'.$claveacc.'"';
	$res_cele=msql_query($sql_cele,$link_vcrx);
	
	$sql_clac ='select * from clac0 where clac_codigo="'.$claveacc.'"';
	$res_clac=msql_query($sql_clac,$link_vcrx);
	$xxml1=msql_result($res_clac,0,'clac_xml1');
	$xxml2=msql_result($res_clac,0,'clac_xml2');
	unset($res_clac);
	
	$xautornum=msql_result($res_cele,0,'autornum');
	$xautorfec=msql_result($res_cele,0,'autorfec');
	$xautormsj=msql_result($res_cele,0,'autormsj');
	$xrecepfec=msql_result($res_cele,0,'recepfec');
	$xrecepmsj=msql_result($res_cele,0,'recepmsj');
	unset($res_cele);
	
	if($xxml1!=""){$statusce='CLAVE : '.$claveacc.'* OK * XML GENERADO';}
	if($xxml2!=""){$statusce='CLAVE : '.$claveacc.'* OK * XML FIRMADO';}
	if($xrecepfec!=""){$statusce='CLAVE : '.$claveacc.'* OK * XML ENVIADO '.date('d/M/Y H:i:s',strtotime($xrecepfec));}
	else{$statusce='CLAVE : '.$claveacc.'* OK * XML ENVIADO * SRI :'.$xrecepmsj;}
	if($xautorfec!=""){$statusce='CLAVE : '.$claveacc.'* OK * XML AUTORIZADO '.date('d/M/Y H:i:s',strtotime($xautorfec));}
	else{$statusce='CLAVE : '.$claveacc.'* OK * XML NO AUTORIZADO * SRI :'.$xrecepmsj;}

	return $statusce;
}

function recep_autor()
{
	include('../_cfg/config.php');
	include('php_session.php');
	
	$sql_upd='update tabl1 set autorfec=fecha where autornum!="" and (autorfec="" or autorfec is null)';
	msql_query(str_replace('tabl1','vtas1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','retp1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','guia1',$sql_upd),$link_vcrx);
	
	$sql_upd='update tabl1 set recepfec=autorfec where autorfec!="" and (recepfec="" or recepfec is null)';
	msql_query(str_replace('tabl1','vtas1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','retp1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','guia1',$sql_upd),$link_vcrx);
	
	$sql_upd='update tabl1 set firmafec=recepfec where recepfec!="" and (firmafec="" or firmafec is null)';
	msql_query(str_replace('tabl1','vtas1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','retp1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','guia1',$sql_upd),$link_vcrx);
	
	$sql_upd='update tabl1 set firmafec=recepfec where recepfec!="" and (firmafec="" or firmafec is null)';
	msql_query(str_replace('tabl1','vtas1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','retp1',$sql_upd),$link_vcrx);
	msql_query(str_replace('tabl1','guia1',$sql_upd),$link_vcrx);
	
	
	$fec2=date('Y-m-d',strtotime('-1 days'));	
	$sql_ce ='       select distinct claveacc from vtas1 where stfin=1 and (campofec="" or campofec is null) and fecha>='.$fec2;
	$sql_ce.=' union select distinct claveacc from retp1 where stfin=1 and (campofec="" or campofec is null) and fecha>='.$fec2;
	$sql_ce.=' union select distinct claveacc from guia1 where stfin=1 and (campofec="" or campofec is null) and fecha>='.$fec2;


	$sql_cele=str_replace('campofec','recepfec',$sql_ce);
	$res_cele=msql_query($sql_cele,$link_vcrx);
	while($aso_cele=msql_fetch_assoc($res_cele))
	{echo ws_recep($aso_cele['claveacc']);}
	sleep(5);

	$sql_cele=str_replace('campofec','autorfec',$sql_ce);
	$res_cele=msql_query($sql_cele,$link_vcrx);
	while($aso_cele=msql_fetch_assoc($res_cele))
	{echo ws_autor($aso_cele['claveacc']);}

	$sql_cele=str_replace('campofec','emailfec',$sql_ce);
	$res_cele=msql_query($sql_cele,$link_vcrx);
	while($aso_cele=msql_fetch_assoc($res_cele))
	{echo mail_ce($aso_cele['claveacc']);}

}

function fill_autornum()
{
	include('../_cfg/config.php');

// 	$sql_cele ='update comp1 set atrznume=autornum where claveacc!="" and claveacc is not null';
// 	$res_cele=msql_query($sql_cele,$link_vcrx);
	
// 	$sql_cele ='update retc1 set atrznume=autornum where claveacc!="" and claveacc is not null';
// 	$res_cele=msql_query($sql_cele,$link_vcrx);
	
	
	$sql_cele ='select claveacc,autornum,fecha from comp1 where claveacc is not null and claveacc!="" and autornum="" ';
	$sql_cele.='union select claveacc,autornum,fecha from retc1 where claveacc is not null and claveacc!="" and autornum="" ';
	$sql_cele.='order by fecha desc ';
	$res_cele=msql_query($sql_cele,$link_vcrx);
	
	
	while($aso_cele=msql_fetch_assoc($res_cele))
	{echo '<br>'.$aso_cele['claveacc'].'->'.get_autorce($aso_cele['claveacc'],1);}
	
}
  
function move_ce($panio,$pmes)
{
 $rutace='../../_cel/';
 mk_subdce('01'.$pmes.$panio);
//    @mkdir($rutace.$panio.$pmes.'/');
  foreach (glob($rutace.'??'.$pmes.$panio.'*.*') as $renfile1)
  {
    $renfile2=substr($renfile1, 11,60);
    copy($renfile1, $rutace.$panio.$pmes.'/'.$renfile2);
    unlink($renfile1);
    echo '<br>';
    echo $renfile1;
  }       
}

function mk_subdce($clave)
{
     include('php_session.php');
     
     $subdce=substr($clave,4,4).substr($clave,2,2).'/';
     if (!file_exists($rutace.$subdce.'index.html'))
     {
       @mkdir($rutace.$subdce);
       file_put_contents($rutace.$subdce.'index.html','Espere....');
     }

     $subdce3=substr($clave,4,4).substr($clave,2,2).substr($clave,0,2).'/';
     if (!file_exists($rutace.$subdce3.'index.html'))
     {
       @mkdir($rutace.$subdce3);
       file_put_contents($rutace.$subdce3.'index.html','Espere....');
     }

     return $subdce; 
}
  
function val_p12caduca()
{
	include('../_cfg/config.php');
  $sel_empr='select * from empr0 where empr_codigo="'.$cfg_empr.'"';
  $res_empr=msql_query($sel_empr,$link_vcrx);
  $p12file=msql_result($res_empr,0,'empr_p12file');
  $p12pass=msql_result($res_empr,0,'empr_p12pass');
  $p12caduca=msql_result($res_empr,0,'empr_p12caduca');
  $empresa=msql_result($res_empr,0,'empr_descri');
  $ruc=msql_result($res_empr,0,'empr_ruc');
  $fecha1=date('Y-m-d');
  $fecha2 = $p12caduca;
  $xdias=days_diff($fecha1,$fecha2);
	$eol="\r\n";
     
  if(
     ( ($xdias==(60) or $xdias==(45) or $xdias<=(30)) and $fecha2>=$fecha1 ) 
     or
       ($xdias<=5 and $fecha2<=$fecha1)
     )  
  {
    $email=r_fiel('enti',$ruc,'email');
    $emailcc=r_fiel('enti',$ruc,'emailce');
    $emailbcc='vicore@hotmail.com';
    if($pfecha2=='0000-00-00')
    {
      $email='vicore@hotmail.com';
      $emailcc='vicore@hotmail.com';
    }

    $asunto =' Firma para '.strtoupper($cfg_empr). ' caduca : '.$p12caduca;

    $headers ='';
    $headers.= 'From: VCRXOL.COM - '.$cfg_descri.' <celec@vcrxol.com>'. $eol;
//     $headers.= 'Reply-To:'.$reply. $eol;
    $headers.= 'List-Unsubscribe: <mailto:unsubscribe@vcrxol.com>'.$eol;     
    $headers.= 'Cc:'.$emailcc. $eol;
    $headers.= 'Bcc:'.$emailbcc. $eol;
    $headers.= 'Return-Path: Soporte '.$cfg_descri.' <celec@vcrxol.com>'.$eol;
    $headers.= 'MIME-Version: 1.0' . $eol;
    $headers.= 'Content-Type: multipart/mixed; boundary="PHP-mixed-'.$random_hash.'"'; 

    $mensaje ='';
    $mensaje.= $eol; 
    $mensaje.=' Firma Electrónica para la empresa '.$empresa. ' caduca el '.$p12caduca.$eol;
    $mensaje.= $eol; 
    $mensaje.=' FALTAN : '.$xdias.' DIAS ';
    $xmail=mail($email, $asunto, $mensaje, $headers);
    
//     echo $xmail;
  echo '<br>';
//   echo ' EMPR= '.$cfg_empr;
//   echo '<br>';
  echo ' CADU = '.$fecha2;
//   echo '<br>';
  echo ' DIAS = '.$xdias;
//   echo '<br>';

       
    return $fecha2;
  }
  

  return $fecha2;
    
}
  
function scan_clacall()  
{
	$fecha1=date('Y-m-d',strtotime ('-90 days')); 
	$selcol='idnum1,docu,ptoe,numero,fecha,enti,status,stfin,claveacc,idate';
	
	include('../_cfg/config.php');
	include('php_session.php');
	
//   $ambiente=r_fiel('empr',$cfg_empr,'ambice');
//   if($ambiente!=2){$fecha1=date('Y-m-d',strtotime ('-90 days'));}
  
	{
	$sql_cele='';
	$sql_cele.='select '.$selcol.' from tabla1 ';
	$sql_cele.=' where status!="X"';
	$sql_cele.=' and (length(trim(claveacc))=49)';
	$sql_cele.=' and fecha>="'.$fecha1.'"';
	$sql_cele.=' and fecha<=now()';
	$sql_cele.=' order by numero desc, docu ';
	$sql_cele.=' limit 1';
    
// 	echo explain_sql($sql_cele);
  $sql_cele1=str_replace('tabla','vtas',$sql_cele);
	$res_cele=msql_query($sql_cele1,$link_vcrx);
    while($aso_cele=msql_fetch_assoc($res_cele))
    {
      $fecha1= date('Y-m-d H:i:s', strtotime(' now -'.$xmin.' min'));
      echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['numero'];
      echo '<br>CA : '.$aso_cele['claveacc'];
      scan_clac($aso_cele['claveacc']);
	  }
    
  $sql_cele1=str_replace('tabla','retp',$sql_cele);
	$res_cele=msql_query($sql_cele1,$link_vcrx);
    while($aso_cele=msql_fetch_assoc($res_cele))
    {
      $fecha1= date('Y-m-d H:i:s', strtotime(' now -'.$xmin.' min'));
      echo '<br>DOCU : '.$aso_cele['docu'].'-'.$aso_cele['numero'];
      echo '<br>CA : '.$aso_cele['claveacc'];
      scan_clac($aso_cele['claveacc']);
	  }
	}
	
}
  
function scan_clac($clave)  
{
	include('../_cfg/config.php');
	include('php_session.php');

// MI FINCA  
// 21012020 071308821931001 2003002000000534 20192919 18
// 21012020 071308821931001 2003002000000536 20192919 19
// 07012020 011308821931001 2003002000000101 20192919 15  
  
  $scanx=0;
  $empr_mice=r_fiel('empr',$cfg_empr,'mice');
  if(substr($clave,10,13)==$cfg_ruc and $empr_mice==1){$scanx=1;}
  if($cfg_empr=='demo'){$scanx=1;}
  
     
  if($scanx==1)
  {
    echo '<br>';
    echo 'SCAN ==> '.$clave;
    
    if(substr($clave,8,2)=='01'){$tabla='vtas';}
    if(substr($clave,8,2)=='03'){$tabla='comp';}
    if(substr($clave,8,2)=='04'){$tabla='vtas';}
    if(substr($clave,8,2)=='06'){$tabla='guia';}
    if(substr($clave,8,2)=='07'){$tabla='retp';}
       
    if($cfg_empr=='demo')
    {
         if(substr($clave,8,2)=='01'){$tabla='comp';}
         if(substr($clave,8,2)=='03'){$tabla='comp';}
         if(substr($clave,8,2)=='04'){$tabla='comp';}
         if(substr($clave,8,2)=='06'){$tabla='guia';}
         if(substr($clave,8,2)=='07'){$tabla='retc';}
    }
    
    $sql_clac='select * from '.$tabla.'1 where claveacc="'.$clave.'"';
    $res_clac=msql_query($sql_clac,$link_vcrx);
    $fecha=msql_result($res_clac,0,'fecha');
    $autornum=msql_result($res_clac,0,'autornum');

       echo '<br>'.$autornum;
       
    if($autornum=='')
    {
      upl_cexml($clave);
      $sql_clac='select * from '.$tabla.'1 where claveacc="'.$clave.'"';
      $res_clac=msql_query($sql_clac,$link_vcrx);
      $fecha=msql_result($res_clac,0,'fecha');
      $autornum=msql_result($res_clac,0,'autornum');
    }
    
    if($autornum!='')
    {
      $sql_clac='select * from clac00 where clac_codigo="'.$clave.'"';
      $res_clac=msql_query($sql_clac,$link_vcrx);
      
      $fecha=msql_result($res_clac,0,'clac_fecha');
      $fechadmy=msql_result($res_clac,0,'clac_fechadmy');
      $tipocomp=msql_result($res_clac,0,'clac_tipocomp');
      $ruc=msql_result($res_clac,0,'clac_ruc');
      $tipoambi=msql_result($res_clac,0,'clac_tipoambi');
      $serie=msql_result($res_clac,0,'clac_serie');
      $secuencial=msql_result($res_clac,0,'clac_secuencial');
      $codinume=msql_result($res_clac,0,'clac_codinume');
      $tipoemi=msql_result($res_clac,0,'clac_tipoemi');
      $check=msql_result($res_clac,0,'clac_check');
      
      $fechaa=date('Y-m-d');
      $fecha1=date('Y-m-01',strtotime($fecha.' -90 days'));
         if($cfg_empr=='mfca')
         {$fecha1=date('Y-m-01',strtotime($fecha.' -150 days'));}
         if($cfg_empr=='hg01')
         {$fecha1=date('Y-m-d',strtotime($fecha.' -1 days'));}
      
//      echo '<br>*/*/'.$cfg_empr;
//      echo '<br>*/*/'.$fecha;
//      echo '<br>*/*/'.$fecha1;
//          die();
         
      if($fecha1<'2020-01-01'){$fecha1='2020-01-01';}
      $fecha2=date('Y-m-d',strtotime($fecha.' +10 days'));
      
      $fechax=$fecha1;
      $fecha2=$fechaa;
      
      $secuencial1=$secuencial-5;
      if($cfg_empr=='hg01'){$secuencial1=$secuencial-2;}
      $secuencial2=$secuencial1+10;
      $secuencialx=$secuencial1;
      
echo '<br>'.$secuencialx;
echo '<br>'.$secuencial1;
echo '<br>'.$secuencial2;
         
         
      while($secuencialx>=$secuencial1 and $secuencialx<=$secuencial2)
      {
          echo '<br>';
          echo '<br> ************** SEC:';
          echo $secuencialx;

          while($fechax>=$fecha1 and $fechax<=$fecha2 and $fecha<=$fechaa)
          {
              echo '<br> ************** FEC:';
              echo $fechax;

              $fechadmy=date('dmY',strtotime($fechax));
              $secuencial0=fillzero($secuencialx);

               if($cfg_empr=='hg01'){$codinume=substr($secuencial0,-8);}
               
               for($codinume1=$codinume; $codinume1<=$codinume+20; $codinume1++)
               {
                    
               $codinumex=fillzero($codinume1,8);                    
              $clave1 ='';
              $clave1.=	$fechadmy;
              $clave1.=	$tipocomp;
              $clave1.=	$ruc;
              $clave1.=	$tipoambi;
              $clave1.= $serie;
              $clave1.=	$secuencial0;
              $clave1.=	$codinumex;
              $clave1.=	$tipoemi; 
              $xmod11 = val_mod11($clave1);
              $clave1.=	$xmod11;
            
              $subdce=mk_subdce($clave1);            
            
              echo '<br>';
              echo $clave1;
              echo upl_cexml($clave1);
              if(!file_exists($rutace.$subdce.$clave1.'.xml'))
              {
//                 echo upl_cexml($clave1);
                $autornum=r_fiel('clac',$clave1,'autornum');
                if($autornum==$clave1){break;}
                else{msql_query('delete from clac0 where clac_codigo="'.$clave1.'"',$link_vcrx);}
              }
              else
              {
                echo ' * SKIP * '; break;
              }
                    
               }

              $fechax=date('Y-m-d',strtotime($fechax.' +1 day'));
            
            
            
          }

          $secuencialx=$secuencialx+1;
          // no resetear fecha. dejar q siga buscando hacia adelante
//           $fechax=$fecha1;
        
        
        if(($fechax>=$fecha2 or $fechax>=$fechaa) and $secuencialx<$secuencial2)
        {
          $fechax=$fecha1;
//           $secuencialx=$secuencialx-1;
          echo '<br>';
          echo '****** RETORNO';
          echo '<br>';
          echo $fechax.$secuencialx;
        }
       
      }
      
    
      
      
    }
    
  }
  
  
} 
  

  
  
function repro_ce($docu,$idnum)
{
	include('../_cfg/config.php');
	include('php_session.php');

  $tabla=r_fiel('docu',$tabla,'tabla');
  $sql_repro='update '.$tabla.'1 set ';
  $sql_repro.='claveacc=null,';
  $sql_repro.='autornum=null,';
  $sql_repro.='firmafec=null,';
  $sql_repro.='recepfec=null,';
  $sql_repro.='autorfec=null,';
  $sql_repro.='emailfec=null,';
  $sql_repro.='recepmsj=null,';
  $sql_repro.='autormsj=null,';
  $sql_repro.='status=status ';
  $sql_repro.='where idnum1="'.$idnum.'"';
  
  $res_repro=msql_query($sql_repro,$link_vcrx);
// ?sqle(xcnx,'update vtas1 set claveacc=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set autornum=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set firmafec=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set recepfec=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set autorfec=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set emailfec=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set recepmsj=null where idnum1=285')
// ?sqle(xcnx,'update vtas1 set autormsj=null where idnum1=285')
}  
  
  
  
  
  
}



?>