<?php
set_time_limit(600);
include "conn.php";

// si ya confirmaron pulsando el boton
// ****************************************************************************************************
if (isset($_POST['submit'])) {
  
$tiempo_inicial = microtime(true);

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Make MySQLi throw exceptions.

try {
    // Try Connect to the DB with new MySqli object - Params {hostname, userid, password, dbname}
    $mysqli = new mysqli($host, $user, $pass, $base);

    
    $handle = fopen($_FILES['metas']['tmp_name'], "r");
    $headers = fgetcsv($handle, 1000, ",");

    /*while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
    {
        echo $data[0];
        echo $data[1];
    }*/

    $query = "DELETE FROM metas where genero='".$_POST["genero"]."'";
    $mysqli->query($query);

    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        //echo "<p>Hay $num columnas en el renglon $data: <br /></p>\n";
        
        for ($c=0; $c < $num; $c++) {
            $respuesta = $respuesta . $data[2] . ' - ' . $headers[$c] . ' - ' . $data[1] . ' - ' . $data[$c] . ' - ' . $data[0] . "<br />\n";
            $query = "replace into metas(tienda,genero,linea,almacen,meta,total) values('".$data[2]."','".$_POST["genero"]."','".$headers[$c]."','".$data[1]."','".$data[$c]."','".$data[0]."')";
            $mysqli->query($query);
            //echo $query."<hr>";
        }
    }
    //die('ok');
    $query = "DELETE FROM metas WHERE linea IN ('#SKUS','UBIC','TDA','Total general','SUC','SKUS')";
    $mysqli->query($query);

    $query = "DELETE FROM metas WHERE LENGTH(meta)>3";
    $mysqli->query($query); 

    $query = "DELETE FROM metas WHERE tienda='corrida'";
    $mysqli->query($query);

    $query = "DELETE FROM metas WHERE LEFT(tienda,4)='CANT'";
    $mysqli->query($query);

    $query = "DELETE FROM metas WHERE tienda='piezas'";
    $mysqli->query($query);
    
    // ya no se ejecuta porque borra los del cedis
    //$query = "DELETE FROM metas WHERE almacen='TOTALES'";
    //$mysqli->query($query);

    $query = "delete from metas where left(tienda,1)='%'";
    $mysqli->query($query);

    $query = "delete from metas where left(tienda,5)='TOTAL'";
    $mysqli->query($query);


// cambia categorias
/*
    $query = "UPDATE metas SET linea='BERMUDA FRENCH' WHERE linea='BERMUDA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='CAMISA M CORTA CASUAL' WHERE linea='CAMISA M CORTA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='PANTALON JOGGER CASUAL' WHERE linea='JOGGER CASUAL'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='TRAJE SMOKING' WHERE linea='SOMOKING'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='CHALECO LIGERO' WHERE linea='CHALECO LIGERO DAMA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='CHAMARRA LIGERA' WHERE linea='CHAMARRA DAMA LIGERA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='CONJUNTO MANGA CORTA' WHERE linea='CONJUNTO M CORTA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='CONJUNTO MANGA LARGA' WHERE linea='CONJUNTO M LARGA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='PLAYERA MANGA CORTA' WHERE linea='PLAYERA M CORTA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='PLAYERA MANGA LARGA' WHERE linea='PLAYERA M LARGA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='SACO MODA' WHERE linea='SACO DAMA MODA'";
    $mysqli->query($query);

    $query = "UPDATE metas SET linea='SWEATER LIGERO' WHERE linea='SWEATER LIGERO DAMA'";
    $mysqli->query($query);

*/    
// fin de cambia categorias

    // elimina espacios
    $query = "update metas set tienda=trim(tienda)";
    $mysqli->query($query);

    $query = "DELETE FROM metas WHERE LENGTH(tienda)>7";
    $mysqli->query($query);

    $query = "DELETE FROM metas WHERE almacen NOT IN ('piso','bodega','bod')";
    $mysqli->query($query);
        
    // contempla si viene el nombre de almacen BOD
    $query = "update metas set almacen='BODEGA' where almacen='BOD'";
    $mysqli->query($query);

      // pone las metas del Cedis importadas
      $query = "UPDATE metas SET tienda='00 CDS',almacen='PISO' WHERE tienda='ENTALLADOS CEDIS LOTES'";
      $mysqli->query($query);

      // respalda metas de CDS
      $query = "delete from metas_cds where genero='".$_POST["genero"]."'";
      $mysqli->query($query);

      $query = "insert into metas_cds(tienda,genero,linea,almacen,meta,total)
      select tienda,genero,linea,almacen,meta,total from metas where genero='".$_POST["genero"]."'";
      $mysqli->query($query);

// PARA QUE LA META DEL CEDIS SEA CALCULADO
// elimina las importadas del archivo
if($_POST["calcula_cds"]=="si"){
    //die($_POST["calcula_cds"]." --> ".$_POST["porc_cedis"]);
  $query = "delete from metas WHERE tienda='00 CDS' AND genero='".$_POST["genero"]."'";
  $mysqli->query($query);

  $porcentaje_entallado_cedis = $_POST["porc_cedis"];
  $query = "insert into metas
  select '00 CDS' as tienda,genero,linea,almacen,SUM( ROUND(meta*($porcentaje_entallado_cedis/100)) ) as meta,0 as total
  from metas inner join globales
  where tienda not in ('00 CDS') and almacen='piso' and genero='".$_POST["genero"]."'
  group by 1,2,3,4";
  $mysqli->query($query);

  $query = "update globales set porcentaje_entallado_cedis=$porcentaje_entallado_cedis";
  $mysqli->query($query);
} 
// PARA QUE LA META DE LA BODEGA SEA CALCULADO
// elimina las importadas del archivo
if($_POST["calcula_bodega"]=="si"){

  $porcentaje_entallado_bodega = $_POST["porc_bodega"];
  $query = "replace into metas(tienda,genero,linea,almacen,meta,total)
  select tienda,genero,linea,'BODEGA' as almacen,sum(round(meta*($porcentaje_entallado_bodega/100))) as meta,0 as total
  from metas inner join globales
  where tienda not in ('00 CDS') and almacen='piso' and genero='".$_POST["genero"]."'
  group by 1,2,3,4";
  $mysqli->query($query);

  $query = "update globales set porcentaje_entallado_bodega=$porcentaje_entallado_bodega";
  $mysqli->query($query);

}  

    $query = "DROP TABLE if exists linea_gen_meta";
    $mysqli->query($query);

    $query = "create table linea_gen_meta
select genero,linea,sum(meta) as meta
from metas 
where almacen='piso' 
group by 1,2";
    $mysqli->query($query);

    $query = "DELETE FROM tot_entallado";
    $mysqli->query($query);

    $query = "INSERT INTO tot_entallado(tienda,genero,total)
    SELECT tienda,genero,SUM(meta) AS tot_meta
    FROM metas where almacen='piso'
    GROUP BY 1,2";
    $mysqli->query($query);

    $query = "DELETE FROM metas2";
    $mysqli->query($query);

    $query = "INSERT INTO metas2(tienda,genero,linea,meta_piso)
    SELECT tienda,genero,linea,meta
    FROM metas 
    WHERE almacen='piso'";
    $mysqli->query($query);

    # pone meta bodega
    $query = "UPDATE metas2 a INNER JOIN metas b ON a.tienda=b.`tienda` 
    AND a.`genero`=b.`genero` AND a.`linea`=b.linea AND b.almacen='bodega'
    SET a.`meta_bodega`=b.`meta`";
    $mysqli->query($query);

    # metas que no tienen existencia
    # inserta en tabla de tienda_entallado para que aparezacan en el query que muestra todas las metas 
    # en index.php y detalle metas que no tienen existencia
    # este query también debe de ejecutarse al subirse nuevas metas
    $mysqli->query("INSERT INTO tienda_entallado(fecha,suc,genero,linea,articulos_entallados,parte_entallados,articulos_picos,
    parte_picos,articulos_unitalla,parte_unitalla,tot_articulos,tot_existencia,tot_transito)
    SELECT CURDATE() AS fecha,a.tienda AS suc,a.genero,a.linea,0 AS ent,0 AS pent,0 AS pic,0 AS ppic,0 AS uni,0 AS puni,0 AS arti,0 AS exi,0 AS transi 
    FROM metas a
    LEFT JOIN tienda_entallado b ON b.suc=a.tienda AND b.genero=a.genero AND b.linea=a.linea
    AND b.fecha=CURDATE()
    WHERE b.linea IS NULL
    GROUP BY 1,2,3,4");

  # calcula el % de la meta del cedis
  $query = "REPLACE INTO metas_cedis_calc(tienda,genero,linea,meta_tot,meta_calc)
  SELECT a.tienda,a.genero,a.linea,SUM(a.meta) AS meta_tot
  ,ROUND(SUM(a.meta)*(porcentaje_entallado_cedis/100)) AS meta_calc
  FROM metas a INNER JOIN globales
  WHERE a.almacen='piso' and tienda<>'00 CDS'
  GROUP BY 1,2,3";
  $mysqli->query($query);

  # actualiza la meta del cedis calculada
  $query = "UPDATE metas2 a INNER JOIN metas_cedis_calc b ON a.tienda=b.tienda AND a.genero=b.genero AND a.linea=b.linea
  SET a.meta_cedis_calc=b.meta_calc";
  $mysqli->query($query);

  # borra cedis calculada
  $query = "UPDATE metas2 SET meta_cedis_calc=0 WHERE tienda='00 CDS'";
  $mysqli->query($query);

             // regenera tablas metas2
             $query = "call sp_actualiza_metas()";
             $mysqli->query($query);    
              
    fclose($handle);

} catch (mysqli_sql_exception $e) { // Failed to connect? Lets see the exception details..
    echo "MySQLi Error Code: " . $e->getCode() . "<br />";
    echo "Exception Msg: " . $e->getMessage();
    echo "<hr>" .$query;
    exit; // exit and close connection.
}

$mysqli->close(); // finally, close the connection

$tiempo_final = microtime(true);
$tiempo = round($tiempo_final - $tiempo_inicial);
$date = date('m/d/Y h:i:s a', time());
$mensaje = "se cargargon las metas en ".$tiempo." segundos. ".$date; 
       
 // FIN de ya confirmaron pulsando el boton
// ****************************************************************************************************       
} 
    
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Make MySQLi throw exceptions.

        try {
            // Try Connect to the DB with new MySqli object - Params {hostname, userid, password, dbname}
            $mysqli = new mysqli($host, $user, $pass, $base);


              $tienda = "Metas";
              
              $titulo = "Resumen";
              if(isset($mensaje)){
                $subtitulo = $mensaje;
              } else {
                $subtitulo = "La actualización las ventas tarda 15 segs. aprox.";
              }

            // # para mostrar antes de actualizar el inventario
            $query = "select * from globales
            ";

            //echo $query;
            
            if ($result = $mysqli->query($query)) {

                /* fetch associative array */
                while ($row = $result->fetch_assoc()) {
                    
                    $porcentaje_entallado_cedis = $row["porcentaje_entallado_cedis"];
                    $porcentaje_entallado_bodega = $row["porcentaje_entallado_bodega"];

                }

                /* free the memory associated with this result set */
                $result->free();
            }
        } catch (mysqli_sql_exception $e) { // Failed to connect? Lets see the exception details..
            echo "MySQLi Error Code: " . $e->getCode() . "<br />";
            echo "Exception Msg: " . $e->getMessage();
            exit; // exit and close connection.
        }

        $mysqli->close(); // finally, close the connection
    
 ?>  
 
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <meta name="description" content="Start your development with a Dashboard for Bootstrap 4.">
  <meta name="author" content="Creative Tim">
  <title><?php echo $marca;?></title>

  <!-- Fonts -->
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700">
  <!-- Icons -->
  <link rel="stylesheet" href="../../assets/vendor/nucleo/css/nucleo.css" type="text/css">
  <link rel="stylesheet" href="../../assets/vendor/@fortawesome/fontawesome-free/css/all.min.css" type="text/css">
  <!-- Page plugins -->
  <link rel="stylesheet" href="../../assets/vendor/datatables.net-bs4/css/dataTables.bootstrap4.min.css">
  <link rel="stylesheet" href="../../assets/vendor/datatables.net-buttons-bs4/css/buttons.bootstrap4.min.css">
  <link rel="stylesheet" href="../../assets/vendor/datatables.net-select-bs4/css/select.bootstrap4.min.css">
  <!-- Argon CSS -->
  <link rel="stylesheet" href="../../assets/css/argon.css?v=1.1.0" type="text/css">

</head>

<body>

  <!-- menu lateral -->
  <?php include "menu.php"?>
  
  <!-- Main content -->
  <div class="main-content" id="panel">
    <!-- Topnav -->
    
    <!-- Header -->
    <!-- Header -->
    <div class="header bg-primary pb-6">
      <div class="container-fluid">
        <div class="header-body">
        <div class="row align-items-center py-4">

<div class="col-lg-6 col-7">
  <h6 class="h2 text-white d-inline-block mb-0"><?php echo $tienda;?></h6>
</div>

  <!-- Sidenav toggler -->
  <?php include "toggler.php"?>


</div>
        </div>
      </div>
    </div>
<!-- Page content -->

<div class="container-fluid mt--6">

<div class="row">

  <div class="col-lg-6">
    <div class="card-wrapper">
     
      
      
      <!-- File browser -->
      <div class="card">
        <!-- Card header -->
        <div class="card-header">
          <h3 class="mb-0">Importar archivo CSV</h3>
        </div>
        <!-- Card body -->
        <div class="card-body">
        <form enctype='multipart/form-data' action='' method='post'>
        <div class="custom-file">
              <select name="genero"  id="genero">
                <option>CABALLERO</option>
                <option>DAMA</option>
</select>
            </div>
            <div class="custom-file">
              <input type="file" name="metas" id="metas"> 
              
            </div>
            <div class="custom-file">
            <input type='submit' name='submit' value='Importar' onclick="if(document.getElementById('metas').value==''){alert('Seleccione un archivo CSV por favor');return false;}">
            <br>
            <hr>
            Descargar plantillas de archivos: <a href="metas_caballero.csv">METAS_CABALLERO.CSV</a> y <a href="metas_dama.csv">METAS_DAMA.CSV</a>
            <hr>
            <div class="card-header">
          <h3 class="mb-0">Cedis meta de entallados</h3>
        </div>            
              <input type="checkbox" name="calcula_cds" value="si"> Calcular y sobreecribir las metas del Cedis usando:<br>
              Porcentaje para calcular metas del Cedis: <input type="textbox" size="2" maxlength="2" name="porc_cedis" value="<?php echo $porcentaje_entallado_cedis?>">%
              <hr>
              <div class="card-header">
          <h3 class="mb-0">Bodega meta de entallados</h3>
        </div>
              <input type="checkbox" name="calcula_bodega" value="si"> Calcular y sobreecribir las metas de las bodegas usando:<br>
              Porcentaje para calcular metas de la bodega de cada tienda: <input type="textbox" size="2" maxlength="2" name="porc_bodega" value="<?php echo $porcentaje_entallado_bodega?>">%
            </div>
            
        </form>
        </div>
      </div>
      <!-- Checkboxes and radios -->

        
    </div>
  </div>
</div>
<?php echo $respuesta;?>
       <!-- Footer -->
       <footer class="footer pt-0">
         <div class="row align-items-center justify-content-lg-between">
           <div class="col-lg-6">
             <div class="copyright text-center text-lg-left text-muted">
               &copy; <?php echo $anio;?> <a href="#" class="font-weight-bold ml-1" ><?php echo $marca;?></a>
             </div>
           </div>

         </div>
       </footer>
    </div>
  </div>
  <!-- Argon Scripts -->
  <!-- Core -->
  <script src="../../assets/vendor/jquery/dist/jquery.min.js"></script>
  <script src="../../assets/vendor/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
  <script src="../../assets/vendor/js-cookie/js.cookie.js"></script>
  <script src="../../assets/vendor/jquery.scrollbar/jquery.scrollbar.min.js"></script>
  <script src="../../assets/vendor/jquery-scroll-lock/dist/jquery-scrollLock.min.js"></script>
  <!-- Optional JS -->
  <script src="../../assets/vendor/datatables.net/js/jquery.dataTables.min.js"></script>
  <script src="../../assets/vendor/datatables.net-bs4/js/dataTables.bootstrap4.min.js"></script>
  <script src="../../assets/vendor/datatables.net-buttons/js/dataTables.buttons.min.js"></script>
  <script src="../../assets/vendor/datatables.net-buttons-bs4/js/buttons.bootstrap4.min.js"></script>
  <script src="../../assets/vendor/datatables.net-buttons/js/buttons.html5.min.js"></script>
  <script src="../../assets/vendor/datatables.net-buttons/js/buttons.flash.min.js"></script>
  <script src="../../assets/vendor/datatables.net-buttons/js/buttons.print.min.js"></script>
  <script src="../../assets/vendor/datatables.net-select/js/dataTables.select.min.js"></script>
  <!-- Argon JS -->
  <script src="../../assets/js/argon.js?v=1.1.0"></script>

</body>

</html>
 