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

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

  }
    
      public function insertar($idcategoria_egreso,$tipo,$concepto,$descripcion,$folio,$archivador,$monto,$cuota,$fechavencimiento,$idusuario,$condicion,$precio_luz,$monto_total,$nombre_pago,$descripcion_pago) {

        $sw = true;

        $sql = "INSERT INTO concepto_egreso(idcategoria_egreso,tipo,descripcion,monto,fechavencimiento,archivador,folio,idusuario,cuotas,concepto,condicion,precio_luz,monto_total,nombre_pago,descripcion_pago) 
                VALUES ('$idcategoria_egreso','$tipo','$descripcion','$monto','$fechavencimiento','$archivador','$folio','$idusuario','$cuota','$concepto','$condicion','$precio_luz','$monto_total','$nombre_pago','$descripcion_pago')";
         $idconcepto_egreso = ejecutarConsulta_retornarID($sql);

          if (!isset($cuota)) {
          $sw = false;
          return $sw;
         }
         $diai = date('d', strtotime($fechavencimiento));

         for ($contador = 1; $contador <= $cuota; $contador++) {
          if ($diai == 31 || $diai == 30 || $diai==29 || $diai==28  ) {
             // $fechai = date("Y-m-d", strtotime("last day of this month" . $fechav . "+" . $contador . " month"));
              $fechavi = date("Y-m-d", strtotime("last day of this month" . $fechavencimiento . "+" . $contador . " month"));
          } else {
             // $fechai = date("Y-m-d", strtotime($fechav . "+" . $contador . " month"));
              $fechavi = date("Y-m-d", strtotime($fechavencimiento . "+" . $contador . " month"));
          }
          $cone = "INSERT INTO detalle_egreso (idconcepto_egreso,numero_cuota,monto,fechavencimiento,estado)
          VALUES ('$idconcepto_egreso','$contador','$monto', '$fechavi', '1')";
            if (!ejecutarConsulta($cone)) {
                $sw = false;
                error_log("Error al insertar la primera cuota: $cone");
                break;
            }
        }
        return $sw;
    }

    // Método para editar
    public function editar($idconcepto_egreso,$idcategoria_egreso,$tipo,$concepto,$descripcion,$folio,$archivador,$monto,$cuota,$fechavencimiento,$idusuario,$condicion,$precio_luz,$monto_total,$nombre_pago,$descripcion_pago,$crear_cuota) {
        $sw = true;
        // Siempre actualiza primero el concepto_egreso
          $sql = "UPDATE concepto_egreso SET 
                  idcategoria_egreso = '$idcategoria_egreso', 
                  tipo = '$tipo',
                  concepto = '$concepto',
                  descripcion = '$descripcion',
                  monto = '$monto',
                  fechavencimiento = '$fechavencimiento', 
                  archivador = '$archivador',                 
                  folio = '$folio',
                  idusuario = '$idusuario',
                  cuotas = '$cuota',
                  condicion = '$condicion',
                  precio_luz = '$precio_luz',
                  monto_total = '$monto_total',
                  nombre_pago = '$nombre_pago',
                  descripcion_pago = '$descripcion_pago'
                  WHERE idconcepto_egreso = '$idconcepto_egreso'";
          ejecutarConsulta($sql);
        
      if($crear_cuota > 0){
        $diai = date('d', strtotime($fechavencimiento));

        for ($contador = 1; $contador <= $cuota; $contador++) {
          if ($diai == 31 || $diai == 30 || $diai==29 || $diai==28  ) {
             // $fechai = date("Y-m-d", strtotime("last day of this month" . $fechav . "+" . $contador . " month"));
              $fechavi = date("Y-m-d", strtotime("last day of this month" . $fechavencimiento . "+" . $contador . " month"));
          } else {
             // $fechai = date("Y-m-d", strtotime($fechav . "+" . $contador . " month"));
              $fechavi = date("Y-m-d", strtotime($fechavencimiento . "+" . $contador . " month"));
          }
          $cone = "INSERT INTO detalle_egreso (idconcepto_egreso,numero_cuota,monto,fechavencimiento,estado)
          VALUES ('$idconcepto_egreso','$contador','$monto', '$fechavi', '1')";
            if (!ejecutarConsulta($cone)) {
                $sw = false;
                error_log("Error al insertar la primera cuota: $cone");
                break;
            }
        }
      }
        return $sw;
    }

    public function listarregistroegreso()
    {
      $sql="SELECT c.idconcepto_egreso,c.idcategoria_egreso,c.tipo,c.descripcion,c.archivador,c.folio,e.nombre,c.monto,c.cuotas,c.fechavencimiento,c.concepto,c.condicion FROM concepto_egreso c join categoria_egreso e on e.idcategoria_egreso=c.idcategoria_egreso";
      return ejecutarConsulta($sql);

    }

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

    }

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

    



}


?>