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

class Vendedormodel extends Query {
    private $usuario, $nombre, $clave, $id_caja, $estado, $id, $id_rol;
    public function __construct() {
        parent::__construct();
    }

    public function traerProductosVendedor(){
        $sql = "SELECT v.id, v.id_medida, descripcion, precio_venta, foto, nombre_corto
                FROM productos v 
                INNER JOIN medidas m ON v.id_medida = m.id 
                WHERE v.estado = 1";
        
        $data = $this->selectAll($sql);
        return $data;
    }
    
    public function consultarClienteExistente(int $id_user) {
        $sql = "SELECT cliente FROM pedidos WHERE id_usuario = $id_user AND estado = 1";
        $data = $this->select($sql);
        return !empty($data);
    }
    
    public function registrarCliente(int $id_user,string $cliente) {
        $sql = "INSERT INTO pedidos (id_usuario, cliente) VALUES (?, ?)";
        $datos = array($id_user, $cliente);
        $data = $this->save($sql, $datos);
        return $data;
    }

    public function avtivarEstado($id_user){
        $sql = "SELECT * FROM pedidos WHERE estado = 1 and id_usuario = $id_user";
        $data = $this->selectAll($sql);
        return $data;
        
    }
    
    public function traerClientes($id_user){
        $sql = "SELECT * FROM pedidos WHERE estado = 1 and id_usuario = $id_user";
        $data = $this->selectAll($sql);
        return $data;
        
    }

    public function registrarProducsd(int $id_user,string $id_producto, int $cantidad , string $precio_venta, string $precio_compra , int $id_medida  ) {
        $sql = "INSERT INTO vendedorventa (id_usuario, id_producto, cantidad, precio, precio_compra, id_medida) VALUES (?, ?, ?, ?, ?, ?)";
        $datos = array($id_user, $id_producto, $cantidad, $precio_venta, $precio_compra, $id_medida);
        $data = $this->save($sql, $datos);
        return $data;
    }

    public function getProducs($id_producto){
        $sql = "SELECT * FROM productos WHERE estado = 1 AND id = $id_producto";
        $data = $this->select($sql);
        return $data;
        
    }

//consulta para mostrar a la vista de la lista del los productos
    public function productosTemp($id_user){
        $sql = "SELECT v.id, v.id_producto, v.cantidad, v.precio, v.id_medida, v.subtotal, p.descripcion, m.nombre_corto FROM vendedorventa v INNER JOIN productos p ON p.id = v.id_producto INNER JOIN medidas m ON m.id = v.id_medida WHERE id_usuario = $id_user ";
        $data = $this->selectAll($sql);
        return $data;
    }
    public function consultarsiExiste($id_producto, $id_medida, $id_user){
        $sql = "SELECT id_producto, id_medida FROM vendedorventa WHERE id_producto = $id_producto AND id_medida = $id_medida AND id_usuario = $id_user";
        $data = $this->select($sql);
        return $data;
        
    }

    public function productosLista($idproducto, $id_medida, $id_user){
        $sql = "SELECT cantidad FROM vendedorventa WHERE id_producto = $idproducto AND id_medida = $id_medida AND id_usuario = $id_user";
        $data = $this->select($sql);
        return $data;
        
    }
    public function ActualizarDetallesVenta(string  $cantidad, int $id_producto, int $id_medida, int $id_user ){
        $sql = "UPDATE vendedorventa SET cantidad = ? WHERE id_producto = ? AND id_medida =? AND id_usuario =? ";
        $datos = array($cantidad, $id_producto, $id_medida, $id_user);
        $data = $this->save($sql, $datos);
        return $data ;
    }

    public function calcularPrecio($id_producto, $id_medida , $id_user){
        $sql = "SELECT cantidad, precio FROM vendedorventa WHERE id_producto = $id_producto and id_medida = $id_medida AND id_usuario = $id_user";
        $data = $this->select($sql);
        return $data;
    }

    public function ActualizarPrecio(string $precio, int $id_producto,int $id_medida,  int $id_user, string $Pcompra){
        $sql = "UPDATE vendedorventa SET subtotal = ?, sub_total_compra = ? WHERE id_producto = ? AND id_medida = ? AND id_usuario = ?";
        $datos = array($precio,$Pcompra , $id_producto, $id_medida, $id_user );
        $data = $this->save($sql, $datos);
        return $data ;
    }

    public function eliminarProsList(int $id){
        $sql = "DELETE FROM vendedorventa WHERE id = ?";
        $datos =array($id);
        $data =$this->save($sql, $datos);
        return $data;
        
    }

    public function cancelarPedidos(int $id, int $id_usuario){
        $sql = "UPDATE pedidos SET estado = ? WHERE id = ? and id_usuario = ? ";
        $datos = array(0, $id, $id_usuario);
        $data = $this->save($sql, $datos);
        return $data ;
    }

    public function eliminarLista(int $id_usuario){
        
        $sql = "DELETE FROM vendedorventa WHERE id_usuario = ?";
        $datos =array($id_usuario);
        $data =$this->save($sql, $datos);
        return $data;
    }

    public function registrarVenta($id_user){
        $sql = "SELECT v.sub_total_compra, v.id, v.id_producto , v.cantidad, v.precio, v.subtotal, v.precio_compra, v.id_medida, p.descripcion, m.nombre_corto FROM vendedorventa v INNER JOIN productos p ON p.id = v.id_producto INNER JOIN medidas m ON m.id = v.id_medida WHERE id_usuario = $id_user";
        $data = $this->selectAll($sql);
        return $data;
        
    }

    public function recogerIdDelCliente($id_user){
        $sql = "SELECT * FROM pedidos WHERE id_usuario = $id_user AND estado = 1";
        $data = $this->select($sql);
        return $data;
    }

    public function emviarVentasVendedor($id_user, $id_producto, $cantidad, $precio, $subtotal, $precio_compra, $id_medida, $id_pedido, $sub_total_compra){
        $sql = "INSERT INTO ventas_emviadas (id_usuario, id_producto, cantidad, precio, sub_total, precio_compra, id_medida, id_pedidos, total_compra) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
        $datos = array($id_user, $id_producto, $cantidad, $precio, $subtotal, $precio_compra, $id_medida, $id_pedido, $sub_total_compra);
        $data = $this->save($sql, $datos);
        return $data;
    }

    public function obtenerDatos($id_user, $id_pedidos){
        $sql = "SELECT SUM(sub_total) as total, SUM(total_compra) as total_compras, id_usuario, id_pedidos  FROM ventas_emviadas WHERE id_usuario = $id_user and id_pedidos = $id_pedidos";
        $data = $this->select($sql);
        return $data;
    }

    public function emviarAcaja($id_usuario, $id_pedidos, $total_ventas, $total_compras, $fecha){
        $sql = "INSERT INTO vendedor_final (id_usuario, id_cliente, total, total_compras, fecha) VALUES (?, ?, ?, ?, ?)";
        $datos = array($id_usuario, $id_pedidos, $total_ventas, $total_compras, $fecha);
        $data = $this->save($sql, $datos);
        return $data;
    }


    
    public function sumarTotal($id_user){
        $sql = "SELECT SUM(subtotal) as total FROM vendedorventa WHERE id_usuario = $id_user";
        $data = $this->select($sql);
        return $data;
        
    }
} 
