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

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

  }
    
      public function insertar($nombre,$idcategoria,$unidadmedida,$descripcion,$imagen,$codigo,$estado,$nroproducto) {
        $sql = "INSERT INTO articulo(nombre,idcategoria,unidad_medida,descripcion,afectacion,imagen,codigo,estado,nroproducto) 
                VALUES ('$nombre','$idcategoria','$unidadmedida','$descripcion','Gravado','$imagen','$codigo','$estado','1000')";
        $idarti=ejecutarConsulta_retornarID($sql);
        
        	$sql_buscar="SELECT codigo FROM categoria WHERE idcategoria='$idcategoria'";
	       $fila = ejecutarConsultaSimpleFila($sql_buscar);
	       $codigo=$fila['codigo'];
	       $concat=$codigo.''.$idarti;
	       $sql_arti="UPDATE articulo set codigo='$concat' WHERE idarticulo='$idarti'";
	       ejecutarConsulta($sql_arti);
	

        $sql = "INSERT INTO inventario_almacen(idalmacen,idarticulo,stock_inicial,stock_ingreso,stock_salida,stock_actual) 
        VALUES ('1','$idarti','0','0','0','0')";
       return ejecutarConsulta($sql);
    }

    // Método para editar
    public function editar($idarticulo,$nombre,$idcategoria,$unidadmedida,$descripcion,$imagen,$codigo,$estado,$nroproducto) {
    
   	$sql_buscar="SELECT codigo FROM categoria WHERE idcategoria='$idcategoria'";
      	$fila = ejecutarConsultaSimpleFila($sql_buscar);
      	$codigo=$fila['codigo'];
        $concat=$codigo.''.$idarticulo;
       
        $sql = "UPDATE articulo SET 
                nombre = '$nombre', 
                idcategoria = '$idcategoria', 
                unidad_medida = '$unidadmedida', 
                descripcion = '$descripcion', 
                imagen = '$imagen', 
                codigo = '$concat',
                estado = '$estado',
                nroproducto = '$nroproducto'
                WHERE idarticulo = '$idarticulo'";
        return ejecutarConsulta($sql);
    }

    public function listarpro($idcate){

      $sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo,a.nombre,a.stock,a.descripcion,a.imagen,a.condicion,a.afectacion,a.marca,a.descripcion,c.codigo as cod, a.nroproducto,a.estado FROM articulo a inner join categoria c on a.idcategoria=c.idcategoria where a.condicion='1' and a.idcategoria='$idcate' ";
      return ejecutarConsulta($sql);
    }

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

    }

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

    public function listarArticulos()
    {
      $sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo,a.nombre,a.stock,a.descripcion,a.imagen,a.condicion,a.afectacion, a. nroproducto FROM articulo a inner join categoria c on a.idcategoria=c.idcategoria where a.estado='1'";
      return ejecutarConsulta($sql);

    }

    public function grafico_stock()
    {
        // Consulta para obtener los datos del stock de productos
        $queryStock = "SELECT 
                      p.nombre AS name, 
                      (i.stock_ingreso - i.stock_salida) AS stock_actual
                  FROM 
                      inventario_almacen i
                  JOIN 
                     articulo p ON i.idarticulo = p.idarticulo
                  WHERE 
                      (i.stock_ingreso - i.stock_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
        ];
    }





}


?>