<?php
//Incluimos conexion a la base de trader_cdlrisefall3methods
require "../config/Conexion.php";

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


  }
      public function insertar($idinventario_ingreso,$idusuario,$descripcion_garantia,$condicion,$codigo_producto) {

       // $condicion = trim($condicion); // Elimina espacios en blanco
       
        $sql_comprobar="SELECT count(idgarantia)as contador FROM garantia WHERE codigo='$codigo_producto' and estado_garantia!='3'";
         $comprobar =  ejecutarConsultaSimpleFila($sql_comprobar);
         $contador_codigo = $comprobar['contador'];
         if($contador_codigo == 1){
          return "Error: Ya esta en proceso de garantia.";
         }

        // Convertimos la cadena a minúsculas para hacer una comparación más flexible
        if ($condicion === "Apto para garantia") {
            $estado_garantia = '1';
        } else if ($condicion === "No apto para garantia") {
            $estado_garantia = '4';
        } else {
            // Si la condición no es válida, puedes manejarlo de otra manera
            return "Error: condición no válida.";
        }

        // Actualizar la condición en la tabla inventario_ingreso
        $sql_update = "UPDATE inventario_ingreso SET condicion='2' WHERE codigo='$codigo_producto'";
        ejecutarConsulta($sql_update);

        // Insertar en la tabla garantia
        $sql = "INSERT INTO garantia (idusuario, idinventario_ingreso, descripcion_garantia, estado_garantia, condicion, fecharetorno, fechaenvio,codigo) 
                VALUES ('$idusuario', '$idinventario_ingreso', '$descripcion_garantia', '$estado_garantia', '$condicion', '' ,'','$codigo_producto')";

        //return ejecutarConsulta($sql);
        return ejecutarConsulta($sql)? "Garantia Registrado" : "Garantia no se pudo registrar";
    }

    // Método para editar
    public function editar($idgarantia,$idinventario_ingreso,$idusuario,$descripcion_garantia) {
        $sql = "UPDATE garantia SET 
                idinventario_ingreso='$idinventario_ingreso',
                descripcion_garantia = '$descripcion_garantia', 
                idusuario = '$idusuario'                 
                WHERE idgarantia = '$idgarantia'";
        return ejecutarConsulta($sql);
    }

    public function listar_garantia($codigo_producto)
    {
      $sql="SELECT i.idinventario_ingreso,i.nrofactura,i.codigo,i.mac,i.garantia,date(i.fechaingreso)as fechaingreso,p.nombre as proveedor,a.nombre as producto, i.marca,l.nombre as almacen   
            FROM  inventario_ingreso i
            JOIN persona p on p.idpersona=i.idprovedor 
            JOIN articulo a on a.idarticulo=i.idarticulo
            JOIN almacen l on l.idalmacen=i.idalmacen
            WHERE (i.codigo = '$codigo_producto' OR i.mac = '$codigo_producto')
            ORDER BY i.idinventario_ingreso desc";
      $resultInventario = ejecutarConsulta($sql);

      $inventarios = [];
      while ($row = $resultInventario->fetch_assoc()) {
        $inventarios[] = $row;
    }
      // Respuesta JSON
    return [
        "inventarios" => $inventarios
        ];
    }

    public function mostrar($idgarantia)
    {
      $sql="SELECT g.idgarantia,i.idinventario_ingreso,i.nrofactura,i.codigo,i.mac,i.garantia,date(i.fechaingreso)as fechaingreso,p.nombre as proveedor,a.nombre as producto, i.marca,l.nombre as almacen,g.estado_garantia,g.created_at,g.fecharetorno,g.descripcion_garantia,g.condicion,g.fechaenvio,g.nombre_ticket,g.imagenTicket,g.imagenConstancia   
            FROM garantia g 
            JOIN inventario_ingreso i on i.idinventario_ingreso=g.idinventario_ingreso
            JOIN persona p on p.idpersona=i.idprovedor 
            JOIN articulo a on a.idarticulo=i.idarticulo
            JOIN almacen l on l.idalmacen=i.idalmacen 
            WHERE g.idgarantia='$idgarantia'";
      return ejecutarConsultaSimpleFila($sql);

    }

    public function listar()
    {
      $sql="SELECT g.idgarantia,i.idinventario_ingreso,i.nrofactura,i.codigo,i.mac,i.garantia,date(i.fechaingreso)as fechaingreso,p.nombre as proveedor,a.nombre as producto, i.marca,l.nombre as almacen,g.estado_garantia,g.created_at,g.fecharetorno,g.fechaenvio   
            FROM garantia g 
            JOIN inventario_ingreso i on i.idinventario_ingreso=g.idinventario_ingreso
            JOIN persona p on p.idpersona=i.idprovedor 
            JOIN articulo a on a.idarticulo=i.idarticulo
            JOIN almacen l on l.idalmacen=i.idalmacen";
      return  ejecutarConsulta($sql);
    }

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

     public function guardarproceso($idgarantia,$nombre_envio,$fechaenvio,$imagen){


      $update_garantia="UPDATE garantia SET nombre_ticket='$nombre_envio',fechaenvio='$fechaenvio',imagenTicket='$imagen',estado_garantia='2' WHERE idgarantia='$idgarantia'";
      return ejecutarConsulta($update_garantia);

     }

     public function guardarretorno($idgarantia,$fecharetorno,$imagen,$estado_garantia, $descripcion_retorno){

      $update_garantia="UPDATE garantia SET fecharetorno='$fecharetorno',imagenConstancia='$imagen',estado_garantia='$estado_garantia',descripcion_retorno='$descripcion_retorno' WHERE idgarantia='$idgarantia'";
      return ejecutarConsulta($update_garantia);

     }

  }

 ?>