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

class inventario extends controller
{      

    public function __construct()
    {  
        SESSION_START();
        if (empty($_SESSION['activo'])) {
           header("location:" . base_url);
        }
      $this->model = new InventarioModel(); 
        parent::__construct();
    }

    public function index()
    {
        $data['medidas'] = $this->model->traeMedi();
        $data['categorias'] = $this->model->traeCategor();
        $this->views->getviews($this, "index", $data);
    }



        public function obtenerProductosPorCategoriaYMedida() {
            if ($_SERVER["REQUEST_METHOD"] === "POST") {
                $categoria = isset($_POST['categoria']) ? $_POST['categoria'] : '';
                $medida = isset($_POST['tipo']) ? $_POST['tipo'] : ''; // Agrega la medida
                $productos = $this->model->consultarProductosPorCategoriaYMedida($categoria, $medida); // Llama a la función con ambos parámetros
                header('Content-Type: application/json');
                echo json_encode($productos);
            }
        }
        
        



        public function registrarInventario() {
            $id_user = (int)$_SESSION['id_usuario'];
            $data = json_decode(file_get_contents("php://input"), true);
        
            if (empty($data)) {
                $response = array("message" => "No se recibieron datos válidos");
            } else {
                $categoria = $data["categoria"];
                $medida = $data["medida"];
                foreach ($data["productos"] as $item) {
                    $producto = $item["producto"];
                    $cantidad = $item["cantidad"];
                    $resultado = $this->model->insertarInventario($producto, $cantidad, $categoria, $medida,$id_user);
        
                    if ($resultado != "ok") {
                        $response = array("message" => "Error al registrar el producto");
                        header('Content-Type: application/json');
                        echo json_encode($response, JSON_UNESCAPED_UNICODE);
                        die();
                    }
                }
                $response = array("message" => "si");
            }
        
            // Devuelve una respuesta JSON de éxito
            header('Content-Type: application/json');
            echo json_encode($response, JSON_UNESCAPED_UNICODE);
            die();
        }
        
        
        
        
        public function obtenerIdsCategoriaYMedida() {
            if ($_SERVER["REQUEST_METHOD"] === "POST") {
                $categoria = isset($_POST['categoria']) ? $_POST['categoria'] : '';
                $medida = isset($_POST['tipo']) ? $_POST['tipo'] : '';
        
                $categoriaId = $this->model->obtenerIdCategoriaPorNombre($categoria);
                $medidaId = $this->model->obtenerIdMedidaPorNombre($medida);  
                echo "Categoría: $categoria, Categoría ID: $categoriaId, Medida: $medida, Medida ID: $medidaId";
                $ids = array("id_categoria" => $categoriaId, "id_medida" => $medidaId);
                header('Content-Type: application/json');
                echo json_encode($ids);
            }
        }


        public function obtenerDatosRechazados(){
            $data = $this->model->obtener_datos_rechazados();
            echo json_encode($data, JSON_UNESCAPED_UNICODE);
        }



        public function recibirDatosActualizados() {
                $idInventario = $_POST['idInventario'];
                $nuevoValor = $_POST['nuevoValor'];
                $resultado = $this->model->registrarDatosActualizados($nuevoValor,$idInventario);
                $this->model->editarMotificacion($idInventario);
                $this->model->cambiarestado($idInventario);
                if ($resultado == 1) {
                    $this->model->eliminarLinia($idInventario);
                    $this->model->eliminarinventariTemp($idInventario);
                 
                    
                   


                    echo json_encode(['status' => 'ok'], JSON_UNESCAPED_UNICODE);
                } else {
                    echo json_encode(['status' => 'error'], JSON_UNESCAPED_UNICODE);
                }
            }
        }
        

        
        
        
        






       




    
    
    ?>
    