<?php

Class clsacceso {	 

    private $acc_codigo;
    private $pro_codigo;
    private $veh_placa;
	private $veh_tipo;
    private $veh_marca;
    private $veh_color;
    private $acc_fecha;
    private $acc_hora_entrada;
    private $acc_hora_salida;
    private $acc_autorizado_por;
    private $acc_estado;
	private $acc_observaciones;
	private $acc_visitante;

    ////////////////////////////// CONSTRUCTORES //////////////////////

    public function carga_acc_codigo($acc_codigo){ $this->acc_codigo = $acc_codigo; }
    public function carga_pro_codigo($pro_codigo){ $this->pro_codigo = $pro_codigo; }
    public function carga_veh_placa($veh_placa){ $this->veh_placa = $veh_placa; }
	public function carga_tipo($veh_tipo){ $this->veh_tipo = $veh_tipo; }
    public function carga_veh_marca($veh_marca){ $this->veh_marca = $veh_marca; }
    public function carga_veh_color($veh_color){ $this->veh_color = $veh_color; }
    public function carga_acc_fecha($acc_fecha){ $this->acc_fecha = $acc_fecha; }
    public function carga_acc_hora_entrada($acc_hora_entrada){ $this->acc_hora_entrada = $acc_hora_entrada; }
    public function carga_acc_hora_salida($acc_hora_salida){ $this->acc_hora_salida = $acc_hora_salida; }
    public function carga_acc_autorizado_por($acc_autorizado_por){ $this->acc_autorizado_por = $acc_autorizado_por; }
    public function carga_acc_estado($acc_estado){ $this->acc_estado = $acc_estado; }
	public function carga_observaciones($acc_observaciones){ $this->acc_observaciones = $acc_observaciones;}
	public function carga_acc_visitante($acc_visitante){ $this->acc_visitante = $acc_visitante;}
	

    ////////////////////////////// INSERTAR //////////////////////

    public function acceso_insertar(){
        $bd = new clsbdd;
        $this->carga_acc_codigo(0);
        $this->carga_acc_estado(1);
		if (empty($this->acc_fecha)) {
        $this->carga_acc_fecha(date("Y-m-d"));
    }

    if (empty($this->acc_hora_entrada)) {
        $this->carga_acc_hora_entrada(date("H:i:s"));
    }
		$this->carga_acc_hora_salida(null);

        $valores = $this->acc_codigo.","
		.$this->pro_codigo.",'"
		.$this->veh_placa."','"
		.$this->veh_tipo."','"
		.$this->veh_marca."','"
		.$this->veh_color."','"
		.$this->acc_fecha."','"
		.$this->acc_hora_entrada."',"
		.($this->acc_hora_salida ? "'".$this->acc_hora_salida."'" : "NULL").",'"
		.$this->acc_autorizado_por."','"
		.$this->acc_visitante."',"
		.$this->acc_estado;

		$campos = "acc_codigo,
		pro_codigo,
		veh_placa,
		veh_tipo,
		veh_marca,
		veh_color,
		acc_fecha,
		acc_hora_entrada,
		acc_hora_salida,
		acc_autorizado_por,
		acc_visitante,
		acc_estado";

    $bd->carga_valores($valores);

        $bd->carga_valores($valores);
        $bd->carga_campos($campos);
		//echo "<pre>INSERTANDO: $valores</pre>";
        $id = $bd->insertar("bb3_acceso");

        if($id>0)
            return $id;
        else
            return 0;
    }

    ////////////////////////////// ACTUALIZAR //////////////////////

    public function acceso_actualizar(){
        $bd = new clsbdd;

        $parametros = "
            veh_placa = '".$this->veh_placa."', 
            veh_marca = '".$this->veh_marca."', 
            veh_color = '".$this->veh_color."', 
            acc_hora_salida = '".$this->acc_hora_salida."', 
            acc_autorizado_por = '".$this->acc_autorizado_por."'
        ";

        $bd->carga_valores("acc_codigo = ".$this->acc_codigo);
        $bd->carga_campos($parametros);

        if($bd->actualizar("bb3_acceso"))
            return 1;
        else
            return 0;
    }

    ////////////////////////////// ELIMINAR (lógico) //////////////////////

    public function acceso_eliminar(){
        $bd = new clsbdd;
        $parametros = "acc_estado = 0";
        $bd->carga_valores("acc_codigo = ".$this->acc_codigo);
        $bd->carga_campos($parametros);

        if($bd->actualizar("bb3_acceso"))
            return 1;
        else
            return 0;
    }

    ////////////////////////////// SELECCIONAR //////////////////////

    public function acceso_seleccionar(){
        $bd = new clsbdd;
        $sql = "SELECT * FROM bb3_acceso WHERE acc_estado = 1 AND acc_codigo = ".$this->acc_codigo;
        $rs = $bd->ejecutar($sql);
        return $rs;
    }

    public function acceso_seleccionartodo(){
        $bd = new clsbdd;
        $sql = "SELECT a.acc_codigo, a.acc_fecha, a.acc_hora_entrada, a.acc_hora_salida, a.veh_placa, a.veh_marca, a.veh_color, a.acc_autorizado_por,
		p.pro_nombre,  CONCAT(per.per_apellido, ' ', per.per_nombre) AS propietario, per.per_identificacion 
		FROM bb3_acceso a 
		INNER JOIN bb3_propiedad p ON a.pro_codigo = p.pro_codigo 
		INNER JOIN bb3_personapropiedad pp ON p.pro_codigo = pp.pro_codigo 
		INNER JOIN bb3_persona per ON pp.per_codigo = per.per_codigo 
		WHERE a.acc_estado = 1 and pp.ppr_representante=1";
        $rs = $bd->ejecutar($sql);
        return $rs;
    }

    ////////////////////////////// CONSULTAS ESPECÍFICAS //////////////////////

    public function acceso_por_fecha($fecha){
        $bd = new clsbdd;
        $sql = "SELECT * FROM bb3_acceso WHERE acc_estado = 1 AND acc_fecha = '".$fecha."' ORDER BY acc_hora_entrada";
        $rs = $bd->ejecutar($sql);
        return $rs;
    }

    public function acceso_por_propiedad(){
        $bd = new clsbdd;
        $sql = "SELECT * FROM bb3_acceso WHERE acc_estado = 1 AND pro_codigo = ".$this->pro_codigo." ORDER BY acc_fecha DESC";
        $rs = $bd->ejecutar($sql);
        return $rs;
    }
	public function acceso_seleccionarcedula($cedula){
        $bd = new clsbdd;
        $sql = "SELECT a.acc_codigo, a.acc_fecha, a.acc_hora_entrada, a.acc_hora_salida, a.veh_placa, a.veh_marca, a.veh_color, a.acc_autorizado_por,
		p.pro_nombre,  CONCAT(per.per_apellido, ' ', per.per_nombre) AS propietario, per.per_identificacion,a.veh_tipo,a.acc_visitante  
		FROM bb3_acceso a 
		INNER JOIN bb3_propiedad p ON a.pro_codigo = p.pro_codigo 
		INNER JOIN bb3_personapropiedad pp ON p.pro_codigo = pp.pro_codigo 
		INNER JOIN bb3_persona per ON pp.per_codigo = per.per_codigo 
		WHERE a.acc_estado = 1 AND per.per_identificacion='".$cedula."'";
        $rs = $bd->ejecutar($sql);
        return $rs;
    }
	public function acceso_registrar_salida(){
		$bd = new clsbdd;
    		// Hora actual del sistema
		$hora_salida = date("H:i:s");
				// Busca el registro activo (sin salida aún)
		$sql = "UPDATE bb3_acceso 
				SET acc_hora_salida = '$hora_salida'
				WHERE veh_placa = '".$this->veh_placa."' 
				AND acc_hora_salida IS NULL 
				AND acc_estado = 1
				ORDER BY acc_codigo DESC 
				LIMIT 1";

		$rs = $bd->ejecutar($sql);
		return $rs;
	}
	
}
?>


