<?php $r="../";
require_once($r."inc/funciones.php");
validNotSession($r);
$id=$_GET['id'];
$spe=$_SESSION['perfil'];
$idusuario=$_SESSION["userid"];
$mysqli = connectDB($r);
$tabla= 'z_productos';

    $fecha = date("Y-m-d H:i:s");
/* FORMULARIO NUEVO */
if (isset($_POST["nuevo"])) {

    // Sanitización inicial
    $nameimagen = mysqli_real_escape_string($mysqli, $_POST['nameimagen']);
    $nombre     = mysqli_real_escape_string($mysqli, $_POST['nombre']);
    $iva        = mysqli_real_escape_string($mysqli, $_POST['iva']);
    $unidad     = mysqli_real_escape_string($mysqli, $_POST['unidad']);
    $descipb    = mysqli_real_escape_string($mysqli, $_POST['descripcionbreve']);
    $descripcion= mysqli_real_escape_string($mysqli, $_POST['descripcion']);
    $precio     = mysqli_real_escape_string($mysqli, $_POST['precio']);

    if (empty($_POST['categoria'])) {
        echo '<div class="alert alert-warning h3" role="alert">Es necesario agregar una categoría</div>';
        exit();
    }

    // Archivos (imágenes)
    $file1 = isset($_FILES['archivo1']) ? loadsfile($_FILES['archivo1'], 'archivos') : '';
    $file2 = isset($_FILES['archivo2']) ? loadsfile($_FILES['archivo2'], 'archivos') : '';
    $file3 = isset($_FILES['archivo3']) ? loadsfile($_FILES['archivo3'], 'archivos') : '';

    // Recolección de presentaciones
    $pila = [];
    foreach ($_POST as $key => $item) {
        if (strpos($key, 'idpre') === 0 && !empty($item)) {
            $pila[] = $item;
        }
    }

    if (empty($pila)) {
        echo '<div class="alert alert-warning h3" role="alert">Es necesario agregar una presentación</div>';
        exit();
    }

    // Insertar producto
    $query = "INSERT INTO $tabla (codigo, producto, descripcionbreve, descripcion, precio, unidad2, archivo1, archivo2, archivo3, iva, imagen) 
              VALUES ('$nombre','$nombre','$descipb','$descripcion','$precio','$unidad','$file1','$file2','$file3','$iva','$nameimagen')";
    $mysqli->query($query);
    $last_id = $mysqli->insert_id;

    // Insertar en inventario
    $mysqli->query("INSERT INTO z_inventario (idproducto, cantidad, precio, iduser) VALUES ($last_id, 0, 0, $idusuario)");

    // Presentaciones
    foreach ($pila as $idpresent) {
        $minorista      = mysqli_real_escape_string($mysqli, $_POST['minprecio'.$idpresent]);
        $mayorista      = mysqli_real_escape_string($mysqli, $_POST['mayprecio'.$idpresent]);
        $preciopresent  = mysqli_real_escape_string($mysqli, $_POST['prepre'.$idpresent]);
        $ofertapresent  = mysqli_real_escape_string($mysqli, $_POST['ofepre'.$idpresent]);

        $mysqli->query("INSERT INTO z_producto_presentacion (idproducto, idpresentacion, minorista, mayorista, precio, oferta) 
                        VALUES ('$last_id', '$idpresent', '$minorista', '$mayorista', '$preciopresent', '$ofertapresent')");
    }
    
    $primer_idcategoria = null;

    if(!empty($_POST['categoria']) && is_array($_POST['categoria'])){
    
        foreach ($_POST['categoria'] as $i => $idcategoria) {
    
            $idcategoria = (int)$idcategoria;
    
            if($i === 0){
                $primer_idcategoria = $idcategoria;
            }
    
            $mysqli->query("
                INSERT INTO z_productos_categorias (idproducto,idcategoria) 
                VALUES ($last_id,$idcategoria)
            ");
        }
    
    }
    
    if($primer_idcategoria){
    
        $res = $mysqli->query("
            SELECT categoria 
            FROM z_categorias 
            WHERE idcategoria = $primer_idcategoria
            LIMIT 1
        ");
        $row = $res->fetch_assoc();
    
        $categoria = strtoupper(substr($row['categoria'],0,3));
    
        $res = $mysqli->query("
            SELECT COUNT(*) total
            FROM z_productos_categorias pc
            INNER JOIN z_productos p ON p.idproducto = pc.idproducto
            WHERE pc.idcategoria = $primer_idcategoria
        ");
        $row = $res->fetch_assoc();
    
        $numero = $row['total'] + 1;
    
        $codigo = $categoria.'-'.$numero;
    
        $mysqli->query("
            UPDATE z_productos 
            SET codigo = '$codigo'
            WHERE idproducto = $last_id
        ");
    }

    // Galería de imágenes
    if (!empty($_FILES['galeria']['name'][0])) {
        $galeria = loadgalery($_FILES['galeria']);
        foreach ($galeria as $img) {
            $mysqli->query("INSERT INTO z_productos_galeria (idproducto, src) VALUES ('$last_id','$img')");
        }
    }

    // Preferido
    if (isset($_POST['preferido'])) {
        $idpreferido = (int)$_POST['preferido'];
        $mysqli->query("UPDATE z_producto_presentacion SET preferido = 1 WHERE idproducto = $last_id AND idpresentacion = $idpreferido");
    }

    $mysqli->close();
    echo "editar.php?id=$last_id&msn=El Producto <b>\"$nombre\"</b> se ha creado!";
    exit();
}



/* FORMULARIO EDITAR */
if(isset($_POST["editar"])){ 
    $id=$_POST['editar'];
    $si = 0;
    $pila = array();
    foreach($_POST as $key => $item){
        $param_name = 'idpre';
        if(substr($key, 0, strlen($param_name)) == $param_name) {
            $idpresent=$item;
            $si=$item;
            $minorista= $_POST['minprecio'.$idpresent];
            $mayorita= $_POST['mayprecio'.$idpresent];
            $preciopresent= $_POST['prepre'.$idpresent];
            $ofertapresent= $_POST['ofepre'.$idpresent];
            $qry1=$mysqli->query("SELECT * FROM `z_producto_presentacion` WHERE `idproducto` = $id AND `idpresentacion` = $idpresent");
            $num1 = $qry1->num_rows;
            if($num1 > 0){
                $mysqli->query("UPDATE `z_producto_presentacion` SET minorista='$minorista', mayorista='$mayorita', precio='$preciopresent', oferta='$ofertapresent'  WHERE `idproducto` = $id AND `idpresentacion` = $idpresent");
            }else{
                $mysqli->query("INSERT INTO `z_producto_presentacion`(`idproducto`, `idpresentacion`, `precio`, `minorista`, `mayorista`, `oferta`) VALUES ('$id','$idpresent','$preciopresent','$minorista','$mayorita','$ofertapresent')");
            }
            array_push($pila, $idpresent);
        }
    }
    if(empty($_POST['categoria'])){
        echo '<div class="alert alert-warning h3" role="alert">Es necesario agregar una categoria</div>';exit();
    }
    if($si==0){ echo '<div class="alert alert-warning h3" role="alert">Es necesario agregar una presentacion</div>';exit();}
    $qry1=$mysqli->query("SELECT * FROM `z_producto_presentacion` WHERE `idproducto` = $id");
    while ($fila = $qry1->fetch_assoc()){
        if (!in_array($fila['idpresentacion'], $pila)) {
            $idpresentnull = $fila['id'];
            $mysqli->query("DELETE FROM `z_producto_presentacion` WHERE `id`=$idpresentnull");
        }
    }
    $mysqli->query("UPDATE z_producto_presentacion SET preferido=0  WHERE `idproducto` = $id");
    if(isset($_POST['preferido'])){
        $idpreferido = $_POST['preferido'];
        $mysqli->query("UPDATE z_producto_presentacion SET preferido=1  WHERE `idproducto` = $id AND `idpresentacion` = $idpreferido");
    }
    
    $nameimagen=$_POST['nameimagen']; $nombre=mysqli_real_escape_string($mysqli, $nameimagen);
    $namevideo = mysqli_real_escape_string($mysqli, $_POST['namevideo']);
    $nombre=$_POST['nombre']; $nombre=mysqli_real_escape_string($mysqli, $nombre);
    $descipb=$_POST['descripcionbreve']; $descipb=mysqli_real_escape_string($mysqli, $descipb);
    $descripcion=$_POST['descripcion']; $descripcion=mysqli_real_escape_string($mysqli, $descripcion);
    $precio=$_POST['precio']; $precio=mysqli_real_escape_string($mysqli, $precio);
    $unidad=$_POST['unidad']; $unidad=mysqli_real_escape_string($mysqli, $unidad);
    $iva=$_POST['iva']; $iva=mysqli_real_escape_string($mysqli, $iva);
    if($nameimagen!=""){$mysqli->query("UPDATE $tabla SET imagen='$nameimagen' WHERE id='$id'");}
    if($nameimagen!=""){$mysqli->query("UPDATE $tabla SET img='$nameimagen' WHERE id='$id'");}
    if($nameimagen!=""){$mysqli->query("UPDATE $tabla SET video='$namevideo' WHERE id='$id'");}
    if($nombre!=""){$mysqli->query("UPDATE $tabla SET producto='$nombre' WHERE id='$id'");}
    if($corto!=""){$mysqli->query("UPDATE $tabla SET codigo='$corto' WHERE id='$id'");}
    if($descipb!=""){$mysqli->query("UPDATE $tabla SET descripcionbreve='$descipb' WHERE id='$id'");}
    if($descripcion!=""){$mysqli->query("UPDATE $tabla SET descripcion='$descripcion' WHERE id='$id'");}
    if($precio!=""){$mysqli->query("UPDATE $tabla SET precio='$precio' WHERE id='$id'");}
    if($unidad!=""){$mysqli->query("UPDATE $tabla SET unidad2='$unidad' WHERE id='$id'");}
    
    if(isset($_FILES['archivo1'])){
       $file1 = loadsfile($_FILES['archivo1'], 'archivos');
       $mysqli->query("UPDATE $tabla SET archivo1='$file1' WHERE id='$id'");
    }
    if(isset($_FILES['archivo2'])){
       $file2 = loadsfile($_FILES['archivo2'], 'archivos');
       $mysqli->query("UPDATE $tabla SET archivo2='$file2' WHERE id='$id'");
    }	
    if(isset($_FILES['archivo3'])){
       $file3 = loadsfile($_FILES['archivo3'], 'archivos');
       $mysqli->query("UPDATE $tabla SET archivo3='$file3' WHERE id='$id'");
    }
    $mysqli->query("DELETE FROM `z_productos_categorias` WHERE `idproducto`=$id");
    foreach($_POST['categoria'] as $key => $item){
        $mysqli->query("INSERT INTO `z_productos_categorias`(`idproducto`, `idcategoria`) VALUES ('$id','$item')");
    }
    if($iva!=""){$mysqli->query("UPDATE $tabla SET iva='$iva' WHERE id='$id'");}
    echo 'index.php?msn=El Producto <b>"'.$nombre.'"</b> se ha actualizado!';
    exit();
}

function loadsfile($file, $ruta){
      $errors = array();
      $file_name = $file['name'];
      $file_size =$file['size'];
      $file_tmp =$file['tmp_name'];
      $file_type=$file['type'];
      $file_ext=strtolower(end(explode('.',$file['name'])));
      $now =  strtotime($fecha);
      $target_path=$ruta."/".$now.'2.'.$file_ext;
      if($file_size > 2097152){
         $errors[]='File size must be excately 2 MB';
      }
      
      if(empty($errors)==true){
         move_uploaded_file($file_tmp,$target_path);
         return $target_path;
      }else{
         print_r($errors);
         echo '<br/> vuelve a intentar si el problema persite comuniquece con soporte tecnico';
        exit();
      }
}


function loadgalery($galery){
    if(isset($galery)){
        $errors = [];
        $uploadedFiles = [];
        $uploadDir = 'uploads/';
        $date = time();
    
        // Recorre todos los archivos
        foreach($galery['tmp_name'] as $key => $tmp_name){
            $file_name = $galery['name'][$key];
            $file_ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));
            $new_name = $date. '_' . $key.'.'.$file_ext;
            $file_size =$galery['size'][$key];
            $file_tmp =$galery['tmp_name'][$key];
            $file_type=$galery['type'][$key];
    
            // Validar tipo de archivo y tamaño
            // Aquí puedes agregar tus propias validaciones, por ejemplo, verificar la extensión y el tamaño máximo permitido
            if($file_size > 3097152){
                $errors[]='El archivo '.$file_name.' excede el tamaño permitido (3 MB)';
            }
            // Si no hay errores, sube el archivo
            if(empty($errors)==true){
                move_uploaded_file($file_tmp, $uploadDir.$new_name);
                $uploadedFiles[] = $new_name;
            }
        }
    
        // Mostrar resultados
        if($errors){
            echo '<div class="alert alert-warning h3" role="alert">';
            print_r($errors);
            echo '</div>';exit();
            exit();
        }
        if($uploadedFiles){
            return $uploadedFiles;
        }
    }
}

if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["caracteristicas"]) && isset($_POST["idproductoct"])) {
    $idproducto = intval($_POST["idproductoct"]); // Sanitiza el ID del producto
    $archivo = $_FILES["caracteristicas"];

    // Verificar si el archivo es un Word
    $ext = strtolower(pathinfo($archivo["name"], PATHINFO_EXTENSION));
    if ($ext !== "doc" && $ext !== "docx") {
        die("Error: Solo se permiten archivos Word (.doc, .docx).");
    }
    
    // Definir la carpeta de destino y el nuevo nombre del archivo
    $directorio = $_SERVER['DOCUMENT_ROOT'] . "/ct/"; // Asegúrate de que esta carpeta tiene permisos de escritura
    $nombreArchivo = "archivo_" . $idproducto . "." . $ext; // Renombrar con el ID del producto y extensión original
    $rutaCompleta = $directorio . $nombreArchivo;
    
    // Mover el archivo al directorio destino
    if (move_uploaded_file($archivo["tmp_name"], $rutaCompleta)) {
        // Guardar la ruta en la base de datos
        $rutaBD = $nombreArchivo; // Ruta accesible desde el dominio
        $sql = "UPDATE z_productos SET ficha_caracteristica = ? WHERE id = ?";
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param("si", $rutaBD, $idproducto);
    
        if ($stmt->execute()) {
            echo 'index.php?msn=ficha caracteristica <b>Actualizada</b>';
        } else {
            echo "Error al actualizar la base de datos.";
        }
    
        $stmt->close();
        $mysqli->close();
    } else {
        echo "Error al subir el archivo.";
    }

}



if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["fichatecnica"]) && isset($_POST["idproductoficha"])) {

    $idproducto = intval($_POST["idproductoficha"]); // Sanitiza el ID del producto
    $archivo = $_FILES["fichatecnica"];

    // Verificar si el archivo es un PDF
    $ext = pathinfo($archivo["name"], PATHINFO_EXTENSION);
    if (strtolower($ext) !== "pdf") {
        die("Error: Solo se permiten archivos PDF.");
    }

    // Definir la carpeta de destino y el nuevo nombre del archivo
    $directorio = $_SERVER['DOCUMENT_ROOT'] . "/ft/"; // Asegúrate de que esta carpeta tiene permisos de escritura
    $nombreArchivo = "archivo_" . $idproducto . ".pdf"; // Renombrar con el ID del producto
    $rutaCompleta = $directorio . $nombreArchivo;

    // Mover el archivo al directorio destino
    if (move_uploaded_file($archivo["tmp_name"], $rutaCompleta)) {
        // Guardar la ruta en la base de datos
        $rutaBD = $nombreArchivo; // Ruta accesible desde el dominio
        $sql = "UPDATE z_productos SET ficha_tecnica = ? WHERE id = ?";
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param("si", $rutaBD, $idproducto);

        if ($stmt->execute()) {
            echo 'index.php?msn=Ficha tecnica <b>Actualizada</b>';
        } else {
            echo "Error al actualizar la base de datos.";
        }

        $stmt->close();
        $mysqli->close();
    } else {
        echo "Error al subir el archivo.";
    }
}

// Eliminar
if(isset($_GET["eliminar"])) {
$row1=$mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
$row2=$row1->fetch_assoc();
$mysqli->query("UPDATE $tabla SET eliminado='1' WHERE id='$id'");
exit(header("Location: index.php?error=El $tipo <b>".$row2['nombre']."</b> ha sido eliminado!"));
}

if(isset($_GET["restore"])) {
$row1=$mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
$row2=$row1->fetch_assoc();
$mysqli->query("UPDATE $tabla SET eliminado=0 WHERE id='$id'");
exit(header("Location: index.php?error=El $tipo <b>".$row2['nombre']."</b> ha sido eliminado!"));
}

// Desactivar
if(isset($_GET["desactivar"])) {
    $row1 = $mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
    $row1=$row1->fetch_assoc();
    $mysqli->query("UPDATE $tabla SET estado='0' WHERE id='$id'");
    exit(header("Location: index.php?msn=El $tipo <b>".$row1['nombre']."</b> ha sido Desactivado!"));
}
// Activar
if(isset($_GET["activar"])) {
    $row1 = $mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
    $row1=$row1->fetch_assoc();
    $mysqli->query("UPDATE $tabla SET estado='1' WHERE id='$id'");
    exit(header("Location: index.php?msn=El $tipo <b>".$row1['nombre']."</b> ha sido activado!"));
}
if(isset($_GET["invisible"])) {
    $row1 = $mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
    $row1=$row1->fetch_assoc();
    $mysqli->query("UPDATE $tabla SET visible='0' WHERE id='$id'");
    exit(header("Location: index.php?msn=El $tipo <b>".$row1['nombre']."</b> ha sido Desactivado!"));
}
// Activar
if(isset($_GET["visible"])) {
    $row1 = $mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
    $row1=$row1->fetch_assoc();
    $mysqli->query("UPDATE $tabla SET visible='1' WHERE id='$id'");
    exit(header("Location: index.php?msn=El $tipo <b>".$row1['nombre']."</b> ha sido activado!"));
}
if(isset($_GET["negociar"])) {
    $row1 = $mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
    $row1=$row1->fetch_assoc();
    $mysqli->query("UPDATE $tabla SET encargo='1' WHERE id='$id'");
    exit(header("Location: index.php?msn=El $tipo <b>".$row1['nombre']."</b> ha sido activado la Negociacion!"));
}
if(isset($_GET["desnegociar"])) {
    $row1 = $mysqli->query("SELECT * FROM $tabla WHERE id='$id'");
    $row1=$row1->fetch_assoc();
    $mysqli->query("UPDATE $tabla SET encargo='0' WHERE id='$id'");
    exit(header("Location: index.php?msn=El $tipo <b>".$row1['nombre']."</b> ha sido desactivada la negociacion!"));
}
?>