SetTitulo( "{$this->_instituicao} i-Educar - Exemplar Empréstimo" ); $this->processoAp = "610"; } } class indice extends clsCadastro { /** * Referencia pega da session para o idpes do usuario atual * * @var int */ var $pessoa_logada; var $cod_emprestimo; var $ref_usuario_devolucao; var $ref_usuario_cad; var $ref_cod_cliente; var $ref_cod_exemplar; var $data_retirada; var $data_devolucao; var $valor_multa; var $ref_cod_biblioteca; var $exemplar_emprestimo; var $incluir_tombo; var $excluir_tombo; var $confirmado; function Inicializar() { $retorno = "Novo"; @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; $this->ref_cod_cliente = $_SESSION['emprestimo']['cod_cliente']; $this->ref_cod_biblioteca = $_SESSION['emprestimo']['ref_cod_biblioteca']; @session_write_close(); $this->cod_emprestimo=$_GET["cod_emprestimo"]; $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra( 610, $this->pessoa_logada, 11, "educar_exemplar_emprestimo_lst.php" ); if( is_numeric( $this->cod_emprestimo ) ) { $obj = new clsPmieducarExemplarEmprestimo( $this->cod_emprestimo ); $registro = $obj->detalhe(); if( $registro ) { foreach( $registro AS $campo => $val ) // passa todos os valores obtidos no registro para atributos do objeto $this->$campo = $val; } } $this->url_cancelar = "educar_exemplar_emprestimo_lst.php"; $this->nome_url_cancelar = "Cancelar"; return $retorno; } function Gerar() { $this->campoOculto("ref_cod_biblioteca", $this->ref_cod_biblioteca); $obj_biblioteca = new clsPmieducarBiblioteca($this->ref_cod_biblioteca); $det_biblioteca = $obj_biblioteca->detalhe(); $max_emprestimo = $det_biblioteca["max_emprestimo"]; $dias_espera = $det_biblioteca["dias_espera"]; $valor_maximo_multa = $det_biblioteca["valor_maximo_multa"]; $valor_maximo_multa = number_format( $valor_maximo_multa, 2, ",", "." ); $obj_cliente_suspenso = new clsPmieducarCliente(); $lst_cliente_suspenso = $obj_cliente_suspenso->lista( $this->ref_cod_cliente,null,null,null,null,null,null,null,null,null,1,null,"suspenso" ); // echo "
";print_r($lst_cliente_suspenso);
if ( is_array($lst_cliente_suspenso) )
{
echo "";
die();
}
$obj_exemplar_emprestimo = new clsPmieducarExemplarEmprestimo();
$lst_exemplar_emprestimo = $obj_exemplar_emprestimo->lista( null,null,null,$this->ref_cod_cliente,null,null,null,null,null,null,false,$this->ref_cod_biblioteca );
if ( count($lst_exemplar_emprestimo) >= $max_emprestimo )
{
echo "";
die();
}
$lst_cliente_divida = $obj_exemplar_emprestimo->clienteDividaTotal(null,$this->ref_cod_cliente);
if( is_array( $lst_cliente_divida ) && count( $lst_cliente_divida ) )
{// calcula o valor total das multas do cliente em todas as bibliotecas
foreach ($lst_cliente_divida as $divida)
{
$valor_total_multa = $divida["valor_multa"];
$valor_total_pago = $divida["valor_pago"];
}
$valor_total_divida = $valor_total_multa - $valor_total_pago;
}
//$lst_cliente_divida = $obj_exemplar_emprestimo->clienteDividaTotal( null,$this->ref_cod_cliente,null,$this->ref_cod_biblioteca );
$lst_cliente_divida = $obj_exemplar_emprestimo->listaDividaPagamentoCliente( $this->ref_cod_cliente, null, null, null, $this->ref_cod_biblioteca );
if( is_array( $lst_cliente_divida ) && count( $lst_cliente_divida ) )
{// calcula o valor das multas do cliente na biblioteca em que esta realizando o emprestimo
foreach ($lst_cliente_divida as $divida)
{
$valor_multa = $divida["valor_multa"];
$valor_pago = $divida["valor_pago"];
}
$valor_divida = $valor_multa - $valor_pago;
}
if (!$valor_total_divida)
{
$valor_total_divida = 0;
}
if (!$valor_divida)
{
$valor_divida = 0;
}
$valor_total_divida = number_format( $valor_total_divida, 2, ",", "." );
$valor_divida = number_format( $valor_divida, 2, ",", "." );
// verifica se o valor da divida ultrapassou o valor maximo permitido da multa pela biblioteca
if ( ($valor_maximo_multa <= $valor_total_divida) && ($this->confirmado != true) )
{
echo "";
$this->confirmado = true;
$this->campoOculto( "confirmado", $this->confirmado );
}
// primary keys
$this->campoOculto( "cod_emprestimo", $this->cod_emprestimo );
// foreign keys
$obj_cliente = new clsPmieducarCliente($this->ref_cod_cliente);
$det_cliente = $obj_cliente->detalhe();
$ref_idpes = $det_cliente["ref_idpes"];
$obj_pessoa = new clsPessoa_($ref_idpes);
$det_pessoa = $obj_pessoa->detalhe();
$nm_pessoa = $det_pessoa["nome"];
$this->campoTextoInv("nm_pessoa", "Cliente", $nm_pessoa, 30, 255);
//-----------------------INCLUI TOMBO------------------------//
$this->campoQuebra();
if( $_POST )
foreach( $_POST AS $campo => $val )
$this->$campo = ( $this->$campo ) ? $this->$campo : $val;
if ( $_POST["exemplar_emprestimo"] )
$this->exemplar_emprestimo = unserialize( urldecode( $_POST["exemplar_emprestimo"] ) );
if ( $_POST["ref_cod_exemplar"] )
{
$this->exemplar_emprestimo["ref_cod_exemplar_"][] = $_POST["ref_cod_exemplar"];
unset( $this->ref_cod_exemplar );
}
$this->campoOculto( "excluir_tombo", "" );
unset($aux);
if ( isset($this->exemplar_emprestimo) )
{
foreach ( $this->exemplar_emprestimo as $key => $campo )
{
if($campo)
{
foreach ($campo as $chave => $exemplar)
{
if ( $this->excluir_tombo == $exemplar )
{
unset($this->exemplar_emprestimo[$key][$chave]);
unset($this->excluir_tombo);
}
else
{
$obj_exemplar = new clsPmieducarExemplar();
// $lst_exemplar = $obj_exemplar->lista($exemplar,null,null,null,null,null,null,2,null,null,null,null,null,1,null,null,null,null,$this->ref_cod_biblioteca);
$lst_exemplar = $obj_exemplar->lista(null,null,null,null,null,null,null,2,null,null,null,null,null,1,null,null,null,null,$this->ref_cod_biblioteca, null, null,null, $exemplar);
//verifica se o exemplar é disponibilizado para empréstimo
if( is_array( $lst_exemplar ) && count( $lst_exemplar ) )
{
$det_exemplar = array_shift($lst_exemplar);
$cod_situacao = $det_exemplar["ref_cod_situacao"];
$obj_situacao = new clsPmieducarSituacao($cod_situacao);
$det_situacao = $obj_situacao->detalhe();
$situacao_padrao = $det_situacao["situacao_padrao"];
$permite_emprestimo = $det_situacao["permite_emprestimo"];
// echo ""; print_r($det_situacao); die();
// verifica se a situacao do exemplar é padrao (disponivel)
if ($situacao_padrao == 1 && $permite_emprestimo == 2)
{
$obj_reservas = new clsPmieducarReservas();
$lst_reservas = $obj_reservas->lista(null,null,null,$this->ref_cod_cliente,null,null,null,null,null,null,$exemplar,1);
// verifica se o cliente reservou o exemplar
if( is_array( $lst_reservas ) && count( $lst_reservas ) )
{
$reservas = array_shift($lst_reservas);
// registra a retirada do exemplar pelo cliente
$obj = new clsPmieducarReservas($reservas["cod_reserva"], $this->pessoa_logada, null, null, null, null, date('Y-m-d'), null, 0);
$editou = $obj->edita();
if( $editou )
{
// adiciona exemplar para empréstimo
$obj_exemplar = new clsPmieducarExemplar($exemplar);
$det_exemplar = $obj_exemplar->detalhe();
$acervo = $det_exemplar["ref_cod_acervo"];
$obj_acervo = new clsPmieducarAcervo($acervo);
$det_acervo = $obj_acervo->detalhe();
$titulo = $det_acervo["titulo"];
$this->campoTextoInv( "ref_cod_exemplar_{$exemplar}", "", $exemplar, 8, 255, false, false, true );
$this->campoTextoInv( "titulo_{$exemplar}", "", $titulo, 30, 255, false, false, false, "", "__nome}.submit();\">
" );
$aux["ref_cod_exemplar_"][] = $exemplar;
}
else
{
echo "";
}
}
else
{
$lst_reservas = $obj_reservas->lista(null,null,null,null,null,null,null,null,null,null,$exemplar,1);
// verifica se existem reservas do exemplar
if( is_array( $lst_reservas ) && count( $lst_reservas ) )
{
$reservas = $obj_reservas->getUltimaReserva($exemplar);
// verifica se a ultima reserva expirou
if( is_array( $reservas ) && count( $reservas ) )
{
$dias_da_semana = array( 'Sun' => 1, 'Mon' => 2, 'Tue' => 3, 'Wed' => 4, 'Thu' => 5, 'Fri' => 6, 'Sat' => 7 );
$det_reserva = array_shift($reservas);
$data_disponivel = $reservas["data_prevista_disponivel"];
if ($dias_espera == 1)
{
$data_disponivel = date("D Y-m-d", strtotime("$data_disponivel +".$dias_espera." day"));
}
elseif ($dias_espera > 1)
{
$data_disponivel = date("D Y-m-d", strtotime("$data_disponivel +".$dias_espera." days"));
}
//---------------------DIAS FUNCIONAMENTO----------------------//
$obj_biblioteca_dia = new clsPmieducarBibliotecaDia();
$lst_biblioteca_dia = $obj_biblioteca_dia->lista($this->ref_cod_biblioteca);
if( is_array( $lst_biblioteca_dia ) && count( $lst_biblioteca_dia ) )
{
foreach ($lst_biblioteca_dia AS $dia_semana)
{
// dias de funcionamento da biblioteca
$biblioteca_dias_semana[] = $dia_semana["dia"];
}
}
// salva somente os dias que n se repetem ( dias de n funcionamento)
$biblioteca_dias_folga = array_diff($dias_da_semana, $biblioteca_dias_semana);
// inverte as relacoes entre chaves e valores ( de $variavel["Sun"] => 1, para $variavel[1] => "Sun")
$biblioteca_dias_folga = array_flip($biblioteca_dias_folga);
//---------------------DIAS FERIADO----------------------//
$obj_biblioteca_feriado = new clsPmieducarBibliotecaFeriados();
$lst_biblioteca_feriado = $obj_biblioteca_feriado->lista( null, $this->ref_cod_biblioteca );
if( is_array( $lst_biblioteca_feriado ) && count( $lst_biblioteca_feriado ) )
{
foreach ($lst_biblioteca_feriado AS $dia_feriado)
{
// dias de feriado da biblioteca
$biblioteca_dias_feriado[] = dataFromPgToBr($dia_feriado["data_feriado"], "D Y-m-d");
}
}
// devido a comparacao das datas, é necessario mudar o formato da data
$data_disponivel = dataFromPgToBr($data_disponivel, "D Y-m-d");
// verifica se a data cai em algum dia que a biblioteca n funciona
while( in_array(substr($data_disponivel,0,3), $biblioteca_dias_folga) || in_array($data_disponivel, $biblioteca_dias_feriado) )
{
$data_disponivel = date("D Y-m-d ",strtotime("$data_disponivel +1 day"));
$data_disponivel = dataFromPgToBr($data_disponivel, "D Y-m-d");
}
$data_disponivel = dataFromPgToBr($data_disponivel, "Y-m-d");
if ($data_disponivel < date('Y-m-d'))
{
// desativa reserva desatualizada
$obj = new clsPmieducarReservas();
$lst = $obj->lista(null,null,null,null,null,null,$reservas["data_prevista_disponivel"],$reservas["data_prevista_disponivel"],null,null,$reservas["ref_cod_exemplar"],1,$this->ref_cod_biblioteca);
if( is_array( $lst ) && count( $lst ) )
{
$det = array_shift($lst);
$cod_reserva = $det["cod_reserva"];
$obj = new clsPmieducarReservas($cod_reserva, $this->pessoa_logada, null, null, null, null, null, null, 0);
$excluiu = $obj->excluir();
if( $excluiu )
{
// adiciona exemplar para empréstimo
$obj_exemplar = new clsPmieducarExemplar($exemplar);
$det_exemplar = $obj_exemplar->detalhe();
$acervo = $det_exemplar["ref_cod_acervo"];
$obj_acervo = new clsPmieducarAcervo($acervo);
$det_acervo = $obj_acervo->detalhe();
$titulo = $det_acervo["titulo"];
$this->campoTextoInv( "ref_cod_exemplar_{$exemplar}", "", $exemplar, 8, 255, false, false, true );
$this->campoTextoInv( "titulo_{$exemplar}", "", $titulo, 30, 255, false, false, false, "", "__nome}.submit();\">
" );
$aux["ref_cod_exemplar_"][] = $exemplar;
}
else
{
echo "";
}
}
else
{
echo "";
}
}
else
{
echo "";
}
}
}// adiciona exemplar para empréstimo
else
{
$obj_exemplar = new clsPmieducarExemplar($exemplar);
$det_exemplar = $obj_exemplar->detalhe();
$acervo = $det_exemplar["ref_cod_acervo"];
$obj_acervo = new clsPmieducarAcervo($acervo);
$det_acervo = $obj_acervo->detalhe();
$titulo = $det_acervo["titulo"];
$this->campoTextoInv( "ref_cod_exemplar_{$exemplar}", "", $exemplar, 8, 255, false, false, true );
$this->campoTextoInv( "titulo_{$exemplar}", "", $titulo, 30, 255, false, false, false, "", "__nome}.submit();\">
" );
$aux["ref_cod_exemplar_"][] = $exemplar;
}
}
}
else
{
echo "";
}
}
else
{
echo "";
}
}
}
}
}
unset($this->exemplar_emprestimo);
$this->exemplar_emprestimo = $aux;
}
$this->campoOculto( "exemplar_emprestimo", serialize( $this->exemplar_emprestimo ) );
if ( $aux )
$this->campoNumero( "ref_cod_exemplar", "Tombo", $this->ref_cod_exemplar, 15, 50,false,"","
");
else
$this->campoNumero( "ref_cod_exemplar", "Tombo", $this->ref_cod_exemplar, 15, 50, true,"","
");
$this->campoOculto( "incluir_tombo", "" );
// $this->campoRotulo( "bt_incluir_tombo", "Tombo", "__nome}.submit();\">
" );
$this->campoQuebra();
//-----------------------FIM INCLUI TOMBO------------------------//
}
function Novo()
{
@session_start();
$this->pessoa_logada = $_SESSION['id_pessoa'];
$this->ref_cod_cliente = $_SESSION['emprestimo']['cod_cliente'];
@session_write_close();
$obj_permissoes = new clsPermissoes();
$obj_permissoes->permissao_cadastra( 610, $this->pessoa_logada, 11, "educar_exemplar_emprestimo_lst.php" );
$this->exemplar_emprestimo = unserialize( urldecode( $this->exemplar_emprestimo ) );
if ($this->exemplar_emprestimo)
{
$this->exemplar_emprestimo = $this->exemplar_emprestimo['ref_cod_exemplar_'];
foreach ( $this->exemplar_emprestimo AS $campo )
{
$obj = new clsPmieducarExemplarEmprestimo( null, null, $this->pessoa_logada, $this->ref_cod_cliente, $campo );
$cadastrou = $obj->cadastra();
if( $cadastrou )
{
$obj_situacao = new clsPmieducarSituacao();
$lst_situacao = $obj_situacao->lista(null,null,null,null,1,null,0,1,null,null,null,null,1,$this->ref_cod_biblioteca);
if( is_array( $lst_situacao ) && count( $lst_situacao ) )
{
$det_situacao = array_shift($lst_situacao);
$cod_situacao = $det_situacao["cod_situacao"];
$obj = new clsPmieducarExemplar( $campo, null, null, null, $cod_situacao, $this->pessoa_logada, null, null, null, null, null, 1 );
$editou = $obj->edita();
if (!$editou)
{
$this->mensagem = "Cadastro não realizado.
";
echo "";
return false;
}
}
else
{
echo "";
}
}
else
{
$this->mensagem = "Cadastro não realizado.
";
echo "";
return false;
}
}
$this->mensagem .= "Cadastro efetuado com sucesso.
";
header( "Location: educar_exemplar_emprestimo_lst.php" );
die();
return true;
}
echo "";
$this->mensagem = "Cadastro não realizado.
";
return false;
}
}
// cria uma extensao da classe base
$pagina = new clsIndexBase();
// cria o conteudo
$miolo = new indice();
// adiciona o conteudo na clsBase
$pagina->addForm( $miolo );
// gera o html
$pagina->MakeAll();
?>