




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

class ProductosModel extends Query {
    private $codigo, $nombre, $precio_compra, $id_medida, $id_categoria,
     $precio_venta, $id, $estado, $img;
    public function __construct() {
        parent::__construct();
    }
 
    public function getMedidas() {

        $sql = "SELECT * FROM `medidas` WHERE estado = 1";
        $data = $this->selectAll($sql);
        return $data;} 
        
    public function getCategorias() {

        $sql = "SELECT * FROM `categorias` WHERE estado = 1";
        $data = $this->selectAll($sql);
        return $data;} 


    public function getProductos() {
        $sql = "SELECT p.*, m.id AS id_medida, m.nombre AS medida, c.id AS id_categoria, c.nombre AS categoria FROM productos p INNER JOIN medidas m ON p.id_medida = m.id INNER JOIN categorias c ON p.id_categoria = c.id";
        $data = $this->selectAll($sql);
        return $data;
       

    }

    public function registrarProductos(string $codigo, string $nombre, string $precio_compra, string $precio_venta, int $id_medida, int $id_categoria, string $img) {
        $this->codigo=$codigo;
        $this->nombre=$nombre;
        $this->precio_compra=$precio_compra;
        $this->precio_venta=$precio_venta;
        $this->id_medida=$id_medida;
        $this->id_categoria=$id_categoria;
        $this->img=$img;


        $verificar = "SELECT * FROM `productos` WHERE codigo = '$this->codigo'";
        $existe = $this->select($verificar);
        if (empty($existe)) {
            $sql = "INSERT INTO `productos` (codigo, descripcion, precio_compra, precio_venta, id_medida, id_categoria, foto) VALUES (?, ?, ?, ?, ?, ?, ?)";
            $datos = array($this->codigo, $this->nombre, $this->precio_compra, $this->precio_venta, $this->id_medida, $this->id_categoria, $this->img);
            $data = $this->save($sql, $datos); 
          
    
            if ($data == 1) {
                $res = "ok";
            } else {
                $res = "error";
            }
        } else {
            $res = "existe";
        }
    
        return $res;
    }
    
     public function TraerProducs($id){
        $sql = "SELECT cantidad FROM productos WHERE id = $id";
        $data = $this->select($sql);
        return $data;
    }

    public function IngresarProductos($cantidad, $id){
        $sql =  "UPDATE productos SET cantidad = ? WHERE id = ?";
        $datos = array($cantidad, $id);
        $data = $this->save($sql, $datos);
        return $data;
    }
    
    
    
    public function modificarProductos(string $codigo, string $nombre, string $precio_compra, string $precio_venta, int $id_medida, int $id_categoria, string $img, int $id) {
        $this->codigo=$codigo;
        $this->nombre=$nombre;
        $this->precio_compra=$precio_compra;
        $this->precio_venta=$precio_venta;
        $this->id_medida=$id_medida;
        $this->id_categoria=$id_categoria;
        $this->img=$img;
        $this->id = $id;
        $sql = "UPDATE `productos` SET codigo = ?, descripcion = ?, precio_compra = ?, precio_venta = ?, id_medida = ?, id_categoria = ?, foto = ? WHERE id = ?";
        $datos = array($this->codigo, $this->nombre, $this->precio_compra, $this->precio_venta, $this->id_medida, $this->id_categoria, $this->img, $this->id);
        $data = $this->save($sql, $datos);
        if ($data == 1) {
            $res = "modificado";
        } else {
            $res = "error";   
        }
        
        return $res;
    }
    
    public function editarPro(int $id)
    {
      
        $sql = "SELECT * FROM productos WHERE id = $id";
        $data = $this->select($sql, [$id]);
        return $data;
    }
    
    function accionPro(int $estado, int $id){
        $this->id = $id;
        $this->estado = $estado;
        
        $sql = "UPDATE productos SET estado = ? WHERE id = ?";
    
        $datos = [$this->estado, $this->id];
        $data = $this->save($sql, $datos);
        return $data;
    }
    public function verificarPermiso(int $id_user, string $nombre) {
        $sql = "SELECT p.id, p.permiso, d.id, d.id_usuario, d.id_permiso FROM permisos p INNER JOIN detalle_permisos d ON p.id = d.id_permiso WHERE d.id_usuario = $id_user AND p.permiso = '$nombre'";
        $data = $this->selectAll($sql);
        return $data;
        
    }
    public function tipos_de_pagos(){
        $sql = "SELECT * FROM tipo_ventas WHERE estado = 1";
        $data = $this->selectAll($sql);
        return $data;
    }

    public function consultar_productos_asignados($id_producto, $id_tipo){
        $sql = "SELECT * FROM ventas_mayor WHERE id_producto = $id_producto AND id_tipo = $id_tipo";
        $data = $this->select($sql);
        return $data;
    }
    public function registrar_precio_mayor_asignados($id_producto, $id_tipo){
        $sql = "INSERT INTO ventas_mayor(id_tipo, id_producto)VALUES(?, ?)";
        $datos = array($id_tipo, $id_producto);
        $data = $this->save($sql, $datos);
        return $data;
        }
    public function traer_precios_asigando($id_producto){
        $sql = "SELECT v.*, t.tipo FROM ventas_mayor v INNER JOIN tipo_ventas t ON t.id = v.id_tipo WHERE v.id_producto = $id_producto";
        $data= $this->selectAll($sql);
        return $data;
    }    

    public function registrar_configuraion_productos($id_producto_mayorista, $cantidad_mayores, $precios_mayores, $id_producto){
        $sql = "UPDATE ventas_mayor SET cantidad = ?, precio = ? WHERE id = ? AND id_producto = ?";
        $datos = array($cantidad_mayores, $precios_mayores, $id_producto_mayorista, $id_producto);
        $data = $this->save($sql, $datos);
        return $data;
    }

    public function consultar_prodcutos($id_producto){
        $sql = "SELECT * FROM productos WHERE id = $id_producto";
        $data = $this->select($sql);
        return $data;
    }
    public function ingresar_observaciones($id_usuario, $id_producto, $producto, $productos_cantidad, $tipo, $id_medida, $totalDeProducs){
        $sql = "INSERT INTO observaciones (id_usuario, id_producto, producto, cantidad_actual, tipo, id_medida, actual_actualizado)VALUES(?, ?, ?, ?, ?, ?, ?)";
        $datos = array($id_usuario, $id_producto, $producto, $productos_cantidad, $tipo, $id_medida, $totalDeProducs);
        $data = $this->save($sql, $datos);
        return $data;
    }













      
   } 






?>
