<?php
require_once('./config/app/views.php');
require_once('./config/app/controller.php');

class Productos extends controller
{      //INICIO DE SSECIO
    public function __construct()
    {
        SESSION_START();
       
        //INICIO DE SSECION 

        parent::__construct();
    }

    public function index()
    {
        if (empty($_SESSION ['activo'])) {
            header("location:" . base_url);
         }
         $id_user = (int)$_SESSION['id_usuario'];
         $verificar = $this->model->verificarPermiso($id_user, 'productos');
         if (!empty($verificar) || $id_user == 1 ) {
             
        $data['medidas'] = $this->model->getMedidas();
        $data['categorias'] = $this->model->getCategorias();
        $this->views->getviews($this, "index", $data);
         } else {
             header('Location: ' . base_url . 'errors/permisos');
 
         }
         


    }

public function listar()
{
    $data = $this->model->getProductos();
    $output = [];

    for ($i = 0; $i < count($data); $i++) {
        $data[$i]['imagen'] = '<img class="img-thumbnail" src="' . base_url . "assets/img/" . $data[$i]['foto'] . '" width="75">';

        if ($data[$i]['estado'] == 1) {
            $data[$i]['estado'] = '<span class="badge badge-success">activo</span>';
            $data[$i]['acciones'] = '<div>
                <button class="btn btn-primary" type="button" onclick="btnEditarPro(' . $data[$i]['id'] . ');"><i class="fas fa-edit"></i></button>
                <button class="btn btn-danger" type="button" onclick="btnEliminarPro(' . $data[$i]['id'] . ');"><i class="fas fa-trash-alt"></i></button>
            </div>';
            $data[$i]['input'] = '
            <div class="form-group col-sm-6">
                <input type="text" class="form-control" id="ingrer_' . $data[$i]['id'] . '" name="ingrer" placeholder="Ingreso De Productos" onkeyup="btnIngresrProductos(' . $data[$i]['id'] . ', event);">
            </div>';
        } else {
            $data[$i]['estado'] = '<span class="badge badge-danger">suspendido</span>';
            $data[$i]['acciones'] = '<div>
                <button class="btn btn-success" type="button" onclick="btnReningresarPro(' . $data[$i]['id'] . ');">Activar</button>
            </div>';
            $data[$i]['input'] = ''; // Añadir la columna 'input' incluso si está vacía
        }

        $output[] = $data[$i];
    }

    echo json_encode($output, JSON_UNESCAPED_UNICODE);
    die();
}


    
    
    public function registrar()
    {
        $codigo = $_POST['codigo'];
        $nombre = $_POST['nombre'];
        $precio_compra = $_POST['precio_compra'];
        $precio_venta = $_POST['precio_venta'];
        $medida = $_POST['medida'];
        $categoria = $_POST['categoria'];
        $id = $_POST['id'];
        $img = $_FILES['imagen'];
        $name = $img['name'];
        $tmpname = $img['tmp_name'];
        
        $fecha = date("YmdHis");
        if (empty($codigo) || empty($nombre) || empty($precio_compra) || empty($precio_venta) || empty($medida)  || empty($categoria)) {
            $smg = "Todos los campos son obligatorios";
        } else {
            if (!empty($name)) {
                $imgNombre= $fecha.".jpg";
                $destino = "assets/img/".$imgNombre;
                # code...
            }elseif (!empty($_POST['foto_actual']) && empty($name)) {
                $imgNombre = $_POST['foto_actual'];
            }else {
                $imgNombre ="default.png";
            }

            if ($id == "") {
                $data = $this->model->registrarProductos($codigo, $nombre, $precio_compra, $precio_venta, $medida, $categoria, $imgNombre);
               
                if ($data == "ok") {
                    if (!empty($name)) {
                        move_uploaded_file($tmpname, $destino);
                    }
                    $smg = "si";
                   
                } elseif ($data == "existe") {
                    $smg = "El producto ya existe";
                } else {
                    $smg = "Error al registrar el producto";
                }
            } else {
                $imgDelete = $this->model->editarPro($id);
                if ($imgDelete['foto'] != 'default.png') {
                    if (file_exists("assets/img/". $imgDelete['foto'])) {
                        unlink("assets/img/" . $imgDelete['foto']);
                        
                    }
                   
                }
                $data = $this->model->modificarProductos($codigo, $nombre, $precio_compra, $precio_venta, $medida, $categoria, $imgNombre, $id);
                if ($data == "modificado") {
                    if (!empty($name)) {
                        move_uploaded_file($tmpname, $destino);
                    }
                    $smg = "modificado";
                } else {
                    $smg = "Error al modificar el producto";
                }
                
            }
        }
        echo json_encode($smg, JSON_UNESCAPED_UNICODE);
        die();
    }

    
    public function ReingresarProducs($id) {
        $id_user = (int)$_SESSION['id_usuario'];
        $ingresos = $_POST['ingrer'];
        $productos_cantidad = $this->model->TraerProducs($id);
        if (isset($productos_cantidad['cantidad'])) {
            $totalDeProducs = $ingresos + $productos_cantidad['cantidad'];
            $ingresarProducstos = $this->model->IngresarProductos($totalDeProducs, $id);
            if ($ingresarProducstos == 1) {
                $consultar_productos = $this->model->consultar_prodcutos($id);
                $producto = $consultar_productos['descripcion'];
                $id_medida = $consultar_productos['id_medida'];
                $tipo = "Adiciono la cantidad de";
                $registrar_observaciones = $this->model->ingresar_observaciones($id_user, $id, $producto, $productos_cantidad['cantidad'], $tipo, $id_medida, $ingresos);
                if ($registrar_observaciones == 1) {
                    $res = "ok";
                }else {
                    $res = "error al reportar en observaciones";
                }
                echo json_encode($res, JSON_UNESCAPED_UNICODE);
                exit;
               
            } else {
                $res = "error";
            }
        } else {
            $res = "error";
        }
    
        echo json_encode($res, JSON_UNESCAPED_UNICODE);
    }




    



    
    public function editar(int $id)
    {
        $data = $this->model->editarPro($id);
        echo json_encode($data, JSON_UNESCAPED_UNICODE);
        die();
    }

    public function eliminar(int $id)
    {
        $data = $this->model->accionPro(0, $id);
        if ($data == 1) {
            $smg = "ok";
        } else {
            $smg = "error al eliminar el Productos";
        }
        echo json_encode($smg, JSON_UNESCAPED_UNICODE);
        die();
    }

    public function reingresar(int $id)
    {
        $data = $this->model->accionPro(1, $id);
        if ($data == 1) {
            $smg = "ok";
        } else {
            $smg = "error al reingresar el Productos";
        }
        echo json_encode($smg, JSON_UNESCAPED_UNICODE);
        die();

          }
          public function traer_tipos_compras(){
            $tipos_de_pagos = $this->model->tipos_de_pagos();
            echo json_encode($tipos_de_pagos);
            exit;
          }

          public function verificar_productos_asignados($id_tipo){
            $id_producto = $_POST['id'];
          $verificar = $this->model->consultar_productos_asignados($id_producto, $id_tipo);
          if (!empty($verificar)) {
                $res = "YA SE AGREGO EL TIPO DE VENTA MAYORISTA";
                echo json_encode($res, JSON_UNESCAPED_UNICODE);
                exit;
          }else {
            $registrar = $this->model->registrar_precio_mayor_asignados($id_producto, $id_tipo);
            if ($registrar == 1) {
                $res = "ok";
            }else{
                $res = "error";
            }
            echo json_encode($res, JSON_UNESCAPED_UNICODE);
            exit;
          }
          }
          public function precios_asignados($id_producto){
            $traer_precios_asigando = $this->model->traer_precios_asigando($id_producto);
            echo json_encode($traer_precios_asigando, JSON_UNESCAPED_UNICODE);
            exit;
          }

          public function registrar_configuracion() {
            if(isset($_POST['id_producto_mayorista_0']) && isset($_POST['cantidad_mayores_0']) && isset($_POST['precios_mayores_0'])) {
                $datos = array();
                $i = 0;
                while(isset($_POST["id_producto_mayorista_$i"])) {
                    $id_producto_mayorista = $_POST["id_producto_mayorista_$i"];
                    $cantidad_mayores = $_POST["cantidad_mayores_$i"];
                    $precios_mayores = $_POST["precios_mayores_$i"];
                    $id_producto = $_POST["id_producs_config"];
                    $registrar_configuraion_productos = $this->model->registrar_configuraion_productos($id_producto_mayorista, $cantidad_mayores, $precios_mayores, $id_producto);
                    $i++;
                    if ($registrar_configuraion_productos == 1) {
                       $res = "ok";
                    } else {
                        $res = "No se pudo configurar";
                    }
                    // No hagas echo aquí
                }
                // Haz el echo aquí, después de salir del bucle while
                echo json_encode($res, JSON_UNESCAPED_UNICODE);
                exit;
            } else {
                echo json_encode("error");
            }
        }
        






















}




















?>
