<?php
//Incluimos conexion a la base de trader_cdlrisefall3methods
require "../config/Conexion.php";
date_default_timezone_set('America/Lima');
Class Caja
{
  //Implementando nuestro constructor
  public function __construct()
  {


  }
      public function insertar($descripcion,$idusuario) {
        $sql = "INSERT INTO caja (descripcion, idusuario) 
                VALUES ('$descripcion', '$idusuario')";
        return ejecutarConsulta($sql);
    }

    // Método para editar
    public function editar($idcaja, $descripcion,$idusuario) {
        $sql = "UPDATE caja SET 
                descripcion = '$descripcion', 
                idusuario = '$idusuario'                 
                WHERE idcaja = '$idcaja'";
        return ejecutarConsulta($sql);
    }

    public function listarcaja()
    {
      $sql="SELECT c.idcaja,c.descripcion,u.nombre as usuario  FROM caja c join usuario u on c.idusuario=u.idusuario ";
      return ejecutarConsulta($sql);

    }

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

    }

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

    public function cerrar_caja($idcaja,$total_efectivo,$total_transferencia,$fecha_cierre,$fecha_apertura,$monto_cierre) {

      $sql_caja = "SELECT * FROM caja WHERE idcaja = '$idcaja'";
      $resultado = ejecutarConsultaSimpleFila($sql_caja);
      $estado_caja = $resultado['estado'];

      if($estado_caja == 2){

        $correlativo = "SELECT count(nrocorrelativo)+1 as nrocorrelativo FROM cajacorrelativo where idresponsable='$idcaja'";
        $resultadoc = ejecutarConsultaSimpleFila($correlativo);
        $nrocorrelativo = $resultadoc['nrocorrelativo'];

        $insert_correlativo="INSERT INTO cajacorrelativo(nrocorrelativo,idresponsable,fechainsert) values('$nrocorrelativo','$idcaja',now())";
        ejecutarConsulta($insert_correlativo);


        $sql = "INSERT INTO movimiento_caja (idcaja, monto_apertura, monto_efectivo, monto_deposito, estado_caja, condicion, idcierre, nrocorrelativo, fecha_apertura,fecha_cierre) 
        VALUES ('$idcaja', '$monto_cierre', '$total_efectivo', '$total_transferencia', '2', '1', '0','$nrocorrelativo','$fecha_apertura','$fecha_cierre')";
          $idcierre = ejecutarConsulta_retornarID($sql); 

        $sql_update="UPDATE caja SET estado='1' WHERE idcaja='$idcaja'";
        ejecutarConsulta($sql_update);

        $sql_update_ingreso="UPDATE pago SET cerrado='1', idcierre='$idcierre' WHERE idcaja='$idcaja' and cerrado='0' ";
        ejecutarConsulta($sql_update_ingreso);

        $sql_update_egreso="UPDATE egreso SET cerrado='1', idcierre='$idcierre' WHERE idcaja='$idcaja' and cerrado='0' ";
        ejecutarConsulta($sql_update_egreso);

        $sql_update_movimiento="UPDATE movimiento_caja SET condicion='2', idcierre='$idcierre',nrocorrelativo='$nrocorrelativo' 
                               WHERE idcaja='$idcaja'  and condicion='1' ";

        return ejecutarConsulta($sql_update_movimiento)? "Cierre de Caja Registrado" : "Error al registrar .";



      }else{
        return "La Caja no esta Abierta!!";
      }
        
    }

    

  }

 ?>