<?
include("funciones/funciones_backup.php");
include("conexion/conexion.php");
include("Menu/menu_inicio.php");
echo"<meta name=\"author\" content='DESARROLLO WEB'>";
echo"<link rel='stylesheet' href='css/style.css' type=\"text/css\">";
if (file_exists('Plano_GuiasSinActualizar.csv')) {
    unlink('Plano_GuiasSinActualizar.csv');
}
?>
<link rel="stylesheet" href="css/demos.css" media="screen" type="text/css">
<link rel="stylesheet" href="css/modal-message.css" type="text/css">
<script type="text/javascript" src="js/modal-message.js"></script>
<script type="text/javascript">
    messageObj = new DHTML_modalMessage();	// We only create one object of this class
    messageObj.setShadowOffset(0);	// Large shadow
    function displayStaticMessage(messageContent, cssClass, src) {
        messageObj.setHtmlContent(messageContent);
        messageObj.setSize(350, 100);
        messageObj.setCssClassMessageBox(cssClass);
        messageObj.setSource(false);	// no html source since we want to use a static message here.
        messageObj.setShadowDivVisible(false);	// Disable shadow for these boxes
        messageObj.display();
    }
    function closeMessage() {
        messageObj.close();
    }
</script>
<?
$_SESSION['titulo'] = $_GET['titulo'];
$_SESSION['tipo'] = $_GET['tipo'];
$_SESSION['tabla_guia'] = $_GET['tabla'];
?>
<CENTER>
    <form action="" method="POST" name="backup" encType="multipart/form-data" target="IF">
        <table width="335">
            <tr class=miTable_tr>
                <td class=miTable_th1 colspan="2"><div align="center">..:: <? echo $_SESSION['titulo']; ?> ::..</div></td>
            </tr>
            <tr class=miTable_tr>
                <td class=miTable_td>
                    Seleccione Archivo:</td>
                <td class=miTable_td><input type="file" name="txt" class="inputbox"></td>
            </tr>
            <tr class=miTable_tr>
                <td class=miTable_td>
                    Separador:</td>
                <td class=miTable_td>
                    <select name="sep" class="inputbox">
                        <option value=";">Punto y Coma (;)</option>                        
                    </select>
                </td>
            </tr>


            <tr class=miTable_tr>
                <td class=miTable_td>
                    Ejemplo:</td>
                <td class=miTable_td>
                    Guia;CodigoDevolucion;Paquete,NoReporte
                    <br>
                    68262303;16;A10,180
                    <br>
                    68262305;6;B02,C-221
                </td>
            </tr>



            <tr class=miTable_tr>
                <td class=miTable_th1 colspan="2">
                    <div align="center">
                        <input type="submit" value="Procesar" name="buscar" class="inputbox" onclick="displayStaticMessage('<p align=center><font color=#bb0415><b>Espere por Favor Se esta cargando la Informacion</b></font><br><br><img src=\'imagenes/indicator_arrows.gif\'></p>', false)">
                    </div>
                </td>
            </tr>
        </table>
    </form>
</CENTER>
<?
if (isset($_POST['buscar'])) {

    class nuevoPrueba {

        // PROPIEDADES
        var $pruebaObj;
        var $conexionObj;
        var $estado;

        // OPERACION DE NEGOCIO
        function validar($tabla) {
            $this->conexionObj = new conexion();
            $this->conexionObj->conectarse();
            $this->insertarDatos($tabla);
        }

//END FUNCION VALIDAR

        function insertarDatos($tabla) {
            $sep = ';';
            $nombre = $_FILES['txt']['name'];
            $tipo = $_FILES['txt']['type'];
            $tam = $_FILES['txt']['size'];
            $temp = $_FILES['txt']['tmp_name'];
            $id_suc = $_GET['sucursal'];
            $this->userObj = new select_zonas();
            $tabla_rastreo = $this->userObj->get_tabla_rastreo($id_suc);
            // VERIFICA Q SI EXISTA EL ARCHIVO //
            if ($nombre == '') {
                $id_user = $_GET['id_user'];
                $msgBOX = "No Selecciono un Archivo.";
                echo "<script>
				alert('$msgBOX');
				setTimeout(location.href='ejecuta_cargar.php?tipo=" . $_SESSION['tipo'] . "&titulo=" . $_SESSION['titulo'] . "', 100);
				</script>";
            }
            // END VERIFICA //
            // RUTA DEL ARCHIVO A CARGAR //
            $path = exec("pwd");
            $nombret = $path . "/" . $nombre;
            // FUNCION PARA SUBIR ARCHIVO AL SERVIDOR //
            if (move_uploaded_file($temp, $nombret)) {
                
            } else {
                echo "No se subio el archivo, verifique permisos sobre el servidor.";
            }
            
            
            $maneja_archivo = FOPEN($nombret, "r") or die("No fue posible abrir el archivo: ". $nombret);
            $linea_texto = FGETS($maneja_archivo, 4096); //lee PRIMERA linea del archivo
            $explode_valores = explode($sep, $linea_texto);
            if(count($explode_valores)<2){
                die ("El archivo debe contener minimo el numero de guia y el codigo de la devolucion.");
            }
            
            
            
            
            $lines = file($nombret);
            $i = 0;
            $cont_noupdate = 0;
            $cont_update = 0;
            foreach ($lines as $line_num => $line) {
                $value_str = strstr($line, $sep);
                if ($value_str == '') { // SI EL SEPARADOR NO ES EL ESCOGIDO USA EL OTRO SEPARADOR //
                    $sep = ',';
                    $value_str = strstr($line, $sep);
                    if ($value_str == '') {
                        $id_user = $_GET['id_user'];
                        $msgBOX = "Verifique Separador.";
                        echo "<script>						
						alert('$msgBOX');
                        setTimeout(location.href='ejecuta_cargar.php?tipo=" . $_SESSION['tipo'] . "&titulo=" . $_SESSION['titulo'] . "', 100);
						</script>";
                    } 
                    else {
                        $sep2 = $sep;
                    }
                } else {
                    $sep2 = $sep;
                }
                // LEE LA LINEA DEL ARCHIVO Y USANDO EL SEPARADOR CREA UN ARREGLO //
                $datos = explode($sep2, $line);
                $guia = $datos[0];
                $path = $datos[1];
                $npaq = $datos[2];
$norepo = $datos[3];
                $path = trim($path);
                $guia = trim($guia);
                $npaq = trim($npaq);
$norepo = trim($norepo);
                if ($i > 0) {
                    $insertar = '';
                    for ($j = 0; $j < count($datos); $j++) {
                        if ($j == 0) {
                            $insertar.="'" . trim($datos[$j]) . "'";
                        }
                        else
                            $insertar.=",'" . trim($datos[$j]) . "'";
                    }//END FOR//
                    if ($_SESSION['tipo'] == 2) {
                        $estado = 16;
                        //BUSCA ID_DEVOLUCION//			 			
                        $path = str_replace("\"", " ", $path);
                        $dev_select = $this->conexionObj->consultar("SELECT id_devolucion FROM devoluciones WHERE cod_devolucion = '$path'");
                        if(mysql_num_rows($dev_select)>0){
                        $id_dev = mysql_fetch_array($dev_select);
                        $add = ", M16='$id_dev[0]'";
                        $guia = str_replace("\"", " ", $guia);
                        $guia = trim($guia);
//INSERTAR DEVOLUCIONES EN REPORTE//
$rst_insertar=$this->conexionObj->consultar("delete from paquetes_ciudades where guia='".$guia."'");
$rst_insertar=$this->conexionObj->consultar("insert into paquetes_ciudades (guia,paquete_ciudades,id_estado,id_devoluciones)
value('".$guia."','".$norepo."','16','".$path."')");
                        
$strsql = "UPDATE paquetes_ciudades SET id_devoluciones ='".$id_dev[0]."',id_estado='16',paquete_ciudades='".$norepo."' WHERE guia='".$guia."' AND id_estado in(13,14,15,16,17)";
                        $rst = $this->conexionObj->consultar($strsql);
                        $val = mysql_affected_row;


                        //ACTUALIZA DEVOLUCIONES//
                        $strsql = "UPDATE guias_proceso SET id_devolucion ='".$id_dev[0]."',id_estado='16',no_paquete='".$npaq."',path='' WHERE guia='".$guia."' AND id_estado in(13,14,15,16,17)";
                        $rst = $this->conexionObj->consultar($strsql);
                        $val = mysql_affected_rows();                                                
                        if($id_dev[0]=='2'){
                            $dir_select=$this->conexionObj->consultar("select nom_cliente,identificacion,direccion,especial10,ciudad from guias_proceso where guia='".$guia."'");
                            $idir = mysql_fetch_array($dir_select);
                            $ncli=trim($idir[0]);
                            $niden=trim($idir[1]);
                            $ndir=trim($idir[2]);
                            $nnorm=trim($idir[3]);
                            $nciu=trim($idir[4]);
                            $this->conexionObj->consultar("insert into malas values('".$ncli."','".$niden."','".$ndir."','".$nnorm."','".$nciu."',date(now())) ON DUPLICATE KEY UPDATE fecha=date(now()) ");
                        }
                        //echo $strsql.'<br>';
                        }else{
                            $val=0;    
                        }
                    }

                    if ($val <= 0) {
//Guias Motivo Deovulvion que no cargaron y no actualizaron
$dir_select=$this->conexionObj->consultar("select guia,estados_gestion.nombre from guias_proceso 
inner join estados_gestion on guias_proceso.id_estado=estados_gestion.id_estado where guia='".$guia."'");
$idir = mysql_fetch_array($dir_select);
$nguia=trim($idir[0]);
$nombreestado=trim($idir[1]);

                        $cont_noupdate = $cont_noupdate + 1;
                        $cadena = $nguia. ';'. $nombreestado. chr(13) . chr(10);  //trim($guia) . ';' . trim($path) . chr(13) . chr(10);
                        $archivo = fopen('Plano_GuiasSinActualizar.csv', "a+");
                        fwrite($archivo, $cadena);
                        fclose($archivo);
                    } else {                        
                            $this->conexionObj->consultar("UPDATE rastreo_guias SET E16='16' $add, F16 = now(),E14=0,F14='0000-00-00 00:00:00',E15=0,F15='0000-00-00 00:00:00' WHERE guia = '" . $guia . "'");                            
                            $cont_update = $cont_update + 1;                        
                    }
                } else {
                    // FOR PARA CREAR TABLA TEMP //
                    for ($j = 0; $j < count($datos); $j++) {
                        if ($j == 0) {
                            $valor.="" . trim($datos[$j]) . " VARCHAR(200)";
                        }
                        else
                            $valor.="," . trim($datos[$j]) . " VARCHAR(200)";
                    }// END FOR //
                }
                $i = $i + 1;
            }
            if(file_exists($nombret)){
                @unlink($nombret);
            }
            
            $i--;
            //REPORTE DE CANTIDADES//
            echo "<center>";
            echo "<form action='' method='POST'>";
            echo "<table border=0 width=335 id=table1>
			<tr class=miTable_tr>
			<td class=miTable_th1 colspan=2>Archivo $nombre</td></tr>
			<tr class=miTable_tr><td class=miTable_td width=200>Registros Actualizados</td>";
            echo "<td class=miTable_td>" . $cont_update;
            echo "</td></tr>";
            echo "<tr class=miTable_tr><td class=miTable_td width=135>Registros No Actualizados</td>";
            echo "<td class=miTable_td>" . $cont_noupdate . ' &nbsp;&nbsp;&nbsp;';
            if (file_exists('Plano_GuiasSinActualizar.csv')) {
                echo"<a title='Ver Guias.' target='_blank' href='Plano_GuiasSinActualizar.csv'>Ver Guias</a>";
            }
            echo "</td></tr>";
            echo "<tr class=miTable_tr><td class=miTable_th1 colspan=2>";
            echo "</td></tr>";
            echo "</table></form>";
        }
// END FUNCION INSERTAR
    }
// END CLASE PRUEBA
// CREACION DEL OBJETO
   $nuevoPruebaObj = new nuevoPrueba();
// CONFIGURANDO LAS PROPIEDADES DEL OBJETO
// LAMANDO EL METODO DE NEGOCIO
   $nuevoPruebaObj->validar($_SESSION['tabla_guia']);
}
?>
