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

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

  }
    
      public function insertar($nombre,$descripcion,$tipo,$condicion) {
        $sql = "INSERT INTO categoria_egreso(nombre,descripcion,tipo,condicion) 
                VALUES ('$nombre','$descripcion','$tipo','$condicion')";
        return ejecutarConsulta($sql);
    }
    // Método para editar
    public function editar($idcategoria_egreso,$nombre,$descripcion,$tipo,$condicion) {
        $sql = "UPDATE categoria_egreso SET 
                nombre = '$nombre', 
                descripcion = '$descripcion', 
                tipo = '$tipo',
                condicion= '$condicion'                 
                WHERE idcategoria_egreso = '$idcategoria_egreso'";
        return ejecutarConsulta($sql);
    }

    public function insertar_egreso($idusuario,$idcaja,$tipo,$idresponsable,$idbanco,$idconcepto_egreso,$tipopago,$monto,$nrorecibo,$nro_operacion,$descripcion,$fechapago,$hora,$comprobante,$fechavencimiento,$iddetalle_egreso,$mes_anterior,$mes_actual,$precio_luz,$monto_concepto){


        $sql = "INSERT INTO egreso(idtipo,idusuario,idtecnico,idcaja,idbanco,idcierre,idconcepto_egreso,tipopago,monto,nrorecibo,nroperacion,descripcion,pago,hora,tipo_comprobante,fechapago,fechavence,cerrado) 
        VALUES ('$tipo','$idusuario','$idresponsable', '$idcaja' , '$idbanco','0','$idconcepto_egreso','$tipopago','$monto','$nrorecibo','$nro_operacion','$descripcion','$fechapago','$hora','$comprobante','$fechapago','$fechavencimiento','0')";
        $idegreso = ejecutarConsulta_retornarID($sql);

      if($mes_actual > 0){

        $sql_luz="  INSERT INTO detalle_luz (idconcepto_egreso,mes_anterior,mes_actual,precio_luz,total_luz,estado,idegreso) VALUES('$idconcepto_egreso','$mes_anterior','$mes_actual','$precio_luz','$monto_concepto','2','$idegreso')";
        ejecutarConsulta($sql_luz);

        $update_luz="UPDATE concepto_egreso SET mes_anterior='$mes_actual',precio_luz='$precio_luz' WHERE idconcepto_egreso='$idconcepto_egreso'";
        ejecutarConsulta($update_luz);

      }

      $sql_update ="UPDATE detalle_egreso set estado='2',fecha_pago='$fechapago',monto='$monto',idegreso='$idegreso' WHERE iddetalle_egreso='$iddetalle_egreso' ";
      ejecutarConsulta($sql_update);

      $sql_traer_datos="SELECT count(d.estado)as estado,c.cuotas FROM detalle_egreso d 
                          JOIN concepto_egreso c ON d.idconcepto_egreso=c.idconcepto_egreso 
                          WHERE d.idconcepto_egreso='$idconcepto_egreso' and d.estado='2'";
        $resultado = ejecutarConsultaSimpleFila($sql_traer_datos);
        $estadocuota = $resultado['estado'];
        $cantidad_cuotas = $resultado['cuotas'];

        if($estadocuota == $cantidad_cuotas){
           $update_concepto="UPDATE concepto_egreso set condicion='2' WHERE idconcepto_egreso='$idconcepto_egreso'";
          return  ejecutarConsulta($update_concepto);
        }
        $update_concepto="UPDATE concepto_egreso set condicion='1' WHERE idconcepto_egreso='$idconcepto_egreso'";
        return  ejecutarConsulta($update_concepto);
      
    }

    public function editar_egreso($idegreso,$idusuario,$idcaja,$tipo,$idresponsable,$idbanco,$idconcepto_egreso,$tipopago,$monto,$nrorecibo,$nro_operacion,$descripcion,$fechapago,$hora,$comprobante,$fechavencimiento,$iddetalle_egreso,$mes_anterior,$mes_actual,$precio_luz,$monto_concepto){

      $sql_update ="UPDATE detalle_egreso set estado='2',fecha_pago='$fechapago',monto='$monto' WHERE iddetalle_egreso='$iddetalle_egreso' ";
      ejecutarConsulta($sql_update);

      $sql_update_luz ="UPDATE detalle_luz set mes_anterior='$mes_anterior', mes_actual='$mes_actual', precio_luz='$precio_luz' , total_luz='$monto_concepto' WHERE idegreso='$idegreso'";
      ejecutarConsulta($sql_update_luz);

      $update_luz="UPDATE concepto_egreso SET mes_anterior='$mes_actual',precio_luz='$precio_luz' WHERE idconcepto_egreso='$idconcepto_egreso'";
      ejecutarConsulta($update_luz);

      $sql = "UPDATE egreso SET idtipo='$tipo',idusuario='$idusuario',idtecnico='$idresponsable',idcaja='$idcaja',idbanco='$idbanco',
               idconcepto_egreso='$idconcepto_egreso',tipopago='$tipopago',monto='$monto',nrorecibo='$nrorecibo',nroperacion='$nro_operacion',descripcion='$descripcion',
               pago='$fechapago',hora='$hora',tipo_comprobante='$comprobante',fechapago='$fechapago',fechavence='$fechavencimiento',cerrado='0'
               WHERE idegreso='$idegreso'";
      return ejecutarConsulta($sql);
    }

    public function listarcategoriaegreso()
    {
      $sql=" SELECT * FROM categoria_egreso";
      return ejecutarConsulta($sql);

    }

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

    }

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

    public function selectCategoriaEgreso()
    {
      $sql=" SELECT * FROM categoria_egreso WHERE condicion='1'";
      return ejecutarConsulta($sql);

    }

    public function selectCategoriaEgresoTipo($tipo)
    {
      $sql=" SELECT * FROM categoria_egreso where tipo='$tipo' and condicion='1'";
      return ejecutarConsulta($sql);

    }

    public function selectConceptoEgreso($idcategoria_egreso)
    {
      $sql=" SELECT * FROM concepto_egreso where idcategoria_egreso='$idcategoria_egreso'";
      return ejecutarConsulta($sql);

    }

    public function obtenerDatosConcepto($id)
    {
      $sql_concepto="SELECT d.iddetalle_egreso,c.archivador,folio,c.descripcion,d.monto,d.numero_cuota,d.fechavencimiento,c.mes_anterior,c.precio_luz,c.nombre_pago,c.descripcion_pago,c.cuotas FROM concepto_egreso c 
            JOIN detalle_egreso d ON c.idconcepto_egreso=d.idconcepto_egreso
            WHERE c.condicion='1' and d.idconcepto_egreso='$id' and d.estado='1' 
            order by d.iddetalle_egreso 
            limit 1";
      $resultConcepto = ejecutarConsulta($sql_concepto);
      $conceptos = [];
      while ($row = $resultConcepto->fetch_assoc()) {
        $conceptos[] = $row;
       }

      return [
        "conceptos" => $conceptos
        ];
    }

    public function obtenerDatosConceptoEgreso($id)
    {
      $sql_concepto="SELECT d.iddetalle_egreso,c.archivador,folio,c.descripcion,d.monto,d.numero_cuota,d.fechavencimiento,c.mes_anterior,c.precio_luz FROM concepto_egreso c 
            JOIN detalle_egreso d ON c.idconcepto_egreso=d.idconcepto_egreso
            WHERE c.condicion='1' and d.idconcepto_egreso='$id' and d.estado='1' 
            order by d.iddetalle_egreso 
            limit 1";
      $resultConcepto = ejecutarConsulta($sql_concepto);
      $conceptos = [];
      while ($row = $resultConcepto->fetch_assoc()) {
        $conceptos[] = $row;
       }

      return [
        "conceptos" => $conceptos
        ];
    }

    
    public function listar_pago()
    {
      $sql=" SELECT e.idegreso,c.concepto,e.idtipo,b.nombre as banco,e.monto,e.nroperacion,e.descripcion,e.tipo_comprobante,e.nrorecibo,e.fechapago
             FROM egreso e 
             JOIN concepto_egreso c ON e.idconcepto_egreso=c.idconcepto_egreso
             LEFT JOIN banco b ON e.idbanco=b.idbanco";
      return ejecutarConsulta($sql);

    }
    public function mostrar_egreso($idegreso) {

      $sql="SELECT e.idegreso,e.descripcion,e.monto,e.hora,e.fechapago,e.tipo_comprobante,e.nrorecibo,e.idtecnico,e.nroperacion,e.idbanco,e.tipopago,c.tipo,c.idcategoria_egreso,
                  c.idconcepto_egreso,c.descripcion as descripcion_concepto,c.monto as monto_concepto,c.fechavencimiento,c.archivador,c.folio,
                  d.numero_cuota,l.mes_anterior,l.mes_actual,l.total_luz,l.precio_luz,d.iddetalle_egreso,c.nombre_pago,c.descripcion_pago,c.cuotas 
             FROM egreso e 
             JOIN concepto_egreso c ON e.idconcepto_egreso=c.idconcepto_egreso
             LEFT JOIN detalle_egreso d ON e.idegreso=d.idegreso
             LEFT JOIN detalle_luz l ON e.idegreso=l.idegreso
             WHERE e.idegreso='$idegreso'";
      $resultEgresos = ejecutarConsulta($sql);

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

    public function eliminar_egreso($idegreso)
    {
      $sql="DELETE FROM egreso where idegreso=$idegreso'";
      return ejecutarConsulta($sql);
    }

}


?>