<?php 
require_once 'db.php';
require_once 'Producto.php';
require_once 'Venta.php';

class reportes extends conn { 
//Metodo para mostrar cuantas ventas se han hecho en el dia
public function ventas_dia(){
          $conn = parent::crearconn();
            $sql = "SELECT COUNT(*) FROM factura WHERE DATE(Fecha) = DATE(NOW())  AND delet_venta IS NULL";
            $result = $conn->query($sql);
             $re=mysqli_fetch_row($result)[0];
              return $re ;
    }
//Metodo para mostrar cuanto dinero ha ingresado en el dia
public function dinero_dia(){
           $conn = parent::crearconn();
            $sql = "SELECT SUM(Total) FROM factura where DATE(Fecha) = DATE(NOW()) AND delet_venta IS NULL";
            $result = $conn->query($sql);
            $re=mysqli_fetch_row($result)[0];

            return $re ;
    }
//Metodo para mostrar cuantos productos se han vendido en el dia
     public function productos_dia(){
            $conn = parent::crearconn();
           $sql = "SELECT SUM(de.Cantidad) FROM detalles_factura AS de
            INNER JOIN factura AS ve ON ve.N_Factura=de.ID_Factura
            where DATE(ve.Fecha) = DATE(NOW()) AND de.delet_venta IS NULL";
             $result = $conn->query($sql);
            $re=mysqli_fetch_row($result)[0];

            return $re ;
    }
//Metodo para mostrar cuantos productos hay con el stock menor a 10 
public function stock_bajo($limiteStock = 10){
            $conn = parent::crearconn();
            $sql = "SELECT count(Cod) FROM productos where Estado = 1 and Stock_Actual < $limiteStock";
           $result = $conn->query($sql);
           
            $re=mysqli_fetch_row($result)[0];

            return $re ;
    }
//Metodo para mostrar los detalles de los productos con el stock menor a 10
  public function productostockbajo($limiteStock = 10){
    $conn = parent::crearconn();
    $sql = "SELECT Cod, Stock_Actual, Nombre from productos where Estado = 1 and Stock_Actual < $limiteStock order by Stock_Actual asc";

    $result = $conn->query($sql);
    
    // Manejo de los resultados o cualquier otra operación que necesites realizar
    $productos = array();
    while ($row = $result->fetch_assoc()) {
        $productos[] = $row;
    }
    
    return $productos;
}

    public function nclientes(){
            $conn = parent::crearconn();
            $sql = "SELECT count(ID) FROM cliente where Estado = 1";
           $recl = $conn->query($sql);
            $rec=mysqli_fetch_row($recl)[0];

            return $rec ;
    }

     public function nproveedores(){
            $conn = parent::crearconn();
            $sql = "SELECT count(ID) FROM proveedores where Estado = 1";
           $recl = $conn->query($sql);
            $rec=mysqli_fetch_row($recl)[0];

            return $rec ;
    }

//Metodo para mostrar en la grafica los productos 5 mas vendidos
 public function productosmasvendidos(){
            $conn = parent::crearconn();
            $sql = "SELECT p.Cod, p.Nombre as Nom_produc , p.Stock_Actual as stock, sum(df.Cantidad) as cantidad, sum(Round(df.subtotal,2)) as total_venta from detalles_factura df inner join productos p on df.Cod_Productos = p.Cod group by p.Cod, p.Nombre order by sum(df.Cantidad) desc limit 5";
            $result = $conn->query($sql);
            $array = array();
    if ($result->num_rows > 0) {
     while ($row = $result->fetch_assoc()) {
         $array[] = $row;
       }   
    }   
    return $array;
}
//Metodo para mostrar en la grafica los productos 5 mas vendidos por parametro de fecha
public function productosmasvendidosporfecha($f1,$f2){
            $conn = parent::crearconn();
            $sql = "SELECT p.Cod, p.Nombre as Nom_produc , p.Stock_Actual as stock, sum(df.Cantidad) as cantidad, sum(Round(df.subtotal,2)) as total_venta from detalles_factura df 
inner join productos p on df.Cod_Productos = p.Cod 
inner join factura f on df.ID_Factura = f.N_factura 
where f.Fecha >= '$f1 00:00:00' and  f.Fecha <= '$f2 23:59:59' AND f.delet_venta IS NULL group by p.Cod, p.Nombre order by sum(df.Cantidad) desc limit 5";
            $result = $conn->query($sql);
            $array = array();
    if ($result->num_rows > 0) {
     while ($row = $result->fetch_assoc()) {
         $array[] = $row;
       }   
    }   
    return $array;
}

public function productosvendidoseneldia() {
         $conn = parent::crearconn();
         $sql = "SELECT p.Cod, p.Nombre AS Nom_produc, p.Stock_Actual AS stock_restante, SUM(df.Cantidad) AS cantidad_vendida, SUM(ROUND(df.subtotal,2)) AS total_venta FROM detalles_factura df INNER JOIN productos p ON df.Cod_Productos = p.Cod INNER JOIN factura ve ON df.ID_Factura = ve.N_Factura WHERE DATE(ve.Fecha) = CURDATE() AND df.delet_venta IS NULL GROUP BY p.Cod ";
         $result = $conn->query($sql);
            $re=mysqli_fetch_row($result)[0];
            return $result ;

}


}


?> 