<?php
//Incluimos conexion a la base de 
require_once('../config/Conexion.php');

Class Producto
{
  //Implementando nuestro constructor
  public function __construct()
  {

  }
    
      public function insertar($nombre,$idtipo_prenda,$material,$precio,$imagen,$estado,$talla) {
        $sql = "INSERT INTO producto(nombre,material,precio,idtipo_prenda,estado,imagen) 
                VALUES ('$nombre','$material','$precio','$idtipo_prenda','$estado','$imagen')";
        $idproducto = ejecutarConsulta_retornarID($sql);

      $num_elementos=0;
      $sw=true;

      while($num_elementos < count($talla) )
      {
        $sql_detalle="INSERT INTO detalle_talla(idproducto,idtalla) VALUES('$idproducto','$talla[$num_elementos]')";
        ejecutarConsulta($sql_detalle) or $sw=false;
        $num_elementos=$num_elementos+1;
      }
      return $sw;
    }

    // Método para editar
    public function editar($idproducto,$nombre,$idtipo_prenda,$material,$precio,$imagen,$estado,$talla) {
        $sql = "UPDATE producto SET 
                nombre = '$nombre', 
                material = '$material', 
                precio = '$precio', 
                idtipo_prenda = '$idtipo_prenda', 
                imagen = '$imagen', 
                estado = '$estado'
                WHERE idproducto = '$idproducto'";
        ejecutarConsulta($sql);

        $sqldel="DELETE FROM detalle_talla WHERE idproducto='$idproducto'";
		  ejecutarConsulta($sqldel);

      $num_elementos=0;
      $sw=true;

      while ($num_elementos < count($talla))
      {
        $sql_detalle="INSERT INTO detalle_talla(idproducto,idtalla) VALUES('$idproducto','$talla[$num_elementos]')";
        ejecutarConsulta($sql_detalle) or $sw=false;
        $num_elementos=$num_elementos+1;
      }

      return $sw;
    }

    public function listarproducto(){

      $sql="SELECT a.idproducto,a.nombre,a.material,a.precio,t.nombre as prenda,a.estado,a.imagen  FROM producto a inner join tipo_prenda t on a.idtipo_prenda=t.idtipo_prenda ";
      return ejecutarConsulta($sql);
    }

    public function mostrar($idproducto)
    {
      $sql="SELECT * FROM producto where idproducto='$idproducto'";
      return ejecutarConsultaSimpleFila($sql);

    }

    //Implementamos un metodo para eliminar registro
    public function eliminar($idproducto)
    {
      $sql="DELETE FROM producto where idproducto='$idproducto'";
      return ejecutarConsulta($sql);
    }

    public function selectTipo()
    {
      $sql="SELECT * FROM tipo_prenda";
      return ejecutarConsulta($sql);

    }

    public function selectProducto()
    {
      $sql="SELECT * FROM producto where estado='1'";
      return ejecutarConsulta($sql);
    }

    public function selectProductoI()
    {
      $sql="SELECT * FROM producto where estado='1' and estado_inventario='1'";
      return ejecutarConsulta($sql);
    }

    public function obtenerDatosProducto($idproducto)
    {
      $sql="SELECT * FROM producto where idproducto='$idproducto'";
      return ejecutarConsultaSimpleFila($sql);
    }

    public function grafico_stock()
    {
        // Consulta para obtener los datos del stock de productos
        $queryStock = "SELECT 
                      p.nombre AS name, 
                      (i.ingreso - i.salida) AS stock_actual
                  FROM 
                      inventario_almacen i
                  JOIN 
                      producto p ON i.idproducto = p.idproducto
                  WHERE 
                      (i.ingreso - i.salida) > 0"; 
        $resultStock = ejecutarConsulta($queryStock);
    
        $data = [];
        while ($row = $resultStock->fetch_assoc()) {
            // Convertimos cada fila en un objeto con las propiedades 'name' y 'y'
            $data[] = [
                "name" => $row["name"],
                "y" => (float)$row["stock_actual"] // Usamos el alias stock_actual en lugar de 'y'
            ];
        }
    
        // Retornar el resultado como un arreglo asociativo
        return [
            "data" => $data
        ];
    }



}


?>