function Gerar() { $this->campoOculto("ref_cod_biblioteca", $this->ref_cod_biblioteca); if ($this->ref_cod_acervo) { $obj_acervo = new clsPmieducarAcervo($this->ref_cod_acervo); $det_acervo = $obj_acervo->detalhe(); $this->titulo_obra = $det_acervo["titulo"]; } $this->cod_biblioteca = $this->ref_cod_biblioteca; $this->campoOculto("cod_biblioteca", $this->cod_biblioteca); $obj_biblioteca = new clsPmieducarBiblioteca($this->ref_cod_biblioteca); $det_biblioteca = $obj_biblioteca->detalhe(); $max_emprestimo = $det_biblioteca["max_emprestimo"]; $valor_maximo_multa = $det_biblioteca["valor_maximo_multa"]; $this->dias_espera = $det_biblioteca["dias_espera"]; $this->campoOculto("dias_espera", $this->dias_espera); $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"); if (is_array($lst_cliente_suspenso)) { echo "<script> alert('Cliente atualmente suspenso!\\nNão é possivel realizar a reserva.'); window.location = 'educar_reservas_lst.php';</script>"; die; } $obj_reservas = new clsPmieducarReservas(); $lst_reservas = $obj_reservas->lista(null, null, null, $this->ref_cod_cliente, null, null, null, null, null, null, null, 1, $this->ref_cod_biblioteca); // verifica se o cliente excedeu a qntde de reservas permitidas pela biblioteca if (count($lst_reservas) >= $max_emprestimo) { echo "<script> alert('Excedido o número máximo de reservas do cliente!\\nNão é possivel realizar a reserva.'); window.location = 'educar_reservas_lst.php';</script>"; die; } $obj_exemplar_emprestimo = new clsPmieducarExemplarEmprestimo(); $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); 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; } // 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 "<script> if(!confirm('Excedido o valor total das multas do cliente! \\n Valor total das multas: R\${$valor_total_divida},00 \\n Valor total das multas nessa biblioteca: R\${$valor_divida},00 \\n Valor máximo da multa permitido nessa biblioteca: R\${$valor_maximo_multa},00 \\n Deseja mesmo assim realizar a reserva?')) window.location = 'educar_reservas_lst.php';</script>"; $this->confirmado = true; $this->campoOculto("confirmado", $this->confirmado); } if ($this->titulo_obra) { $obj_exemplar = new clsPmieducarExemplar(); $lst_exemplar = $obj_exemplar->lista(null, null, null, $this->ref_cod_acervo, null, null, null, 2, null, null, null, null, null, 1, null, null, null, null, $this->ref_cod_biblioteca); // verifica se o exemplar pode ser emprestado if (is_array($lst_exemplar) && count($lst_exemplar)) { $obj_reservas = new clsPmieducarReservas(); foreach ($lst_exemplar as $exemplar) { $lst_reservas = $obj_reservas->lista(null, null, null, $this->ref_cod_cliente, null, null, null, null, null, null, $exemplar["cod_exemplar"], 1); if (is_array($lst_reservas) && count($lst_reservas)) { // Já existe uma reserva do exemplar feita pelo cliente $reservou = true; } } if (!$reservou) { // volta para o inicio da lista reset($lst_exemplar); $reservas = array(); foreach ($lst_exemplar as $exemplar) { $obj_situacao = new clsPmieducarSituacao($exemplar["ref_cod_situacao"]); $det_situacao = $obj_situacao->detalhe(); $situacao_permite_emprestimo = $det_situacao["permite_emprestimo"]; $situacao_emprestada = $det_situacao["situacao_emprestada"]; $situacao_padrao = $det_situacao["situacao_padrao"]; // verifica se a situacao do exemplar permite emprestimo if ($situacao_permite_emprestimo == 2 && $situacao_emprestada == 0 && $situacao_padrao == 1) { unset($this->titulo_obra); unset($this->ref_cod_acervo); echo "<script> alert('Exemplar disponível para empréstimo!\\nNão é possivel realizar a reserva.\\n TOMBO #{$exemplar["cod_exemplar"]}'); </script>"; } else { if ($situacao_permite_emprestimo == 1 && $situacao_emprestada == 1 && $situacao_padrao == 0) { $lst_reservas = $obj_reservas->lista(null, null, null, null, null, null, null, null, null, null, $exemplar["cod_exemplar"], 1); // verifica se existem reservas do exemplar if (is_array($lst_reservas) && count($lst_reservas)) { $this->existe_reserva = 2; } else { // encontrado exemplar sem reservas $this->ref_cod_exemplar = $exemplar["cod_exemplar"]; break; } } else { unset($this->titulo_obra); unset($this->ref_cod_acervo); echo "<script> alert('Situação atual do exemplar não permite reserva!'); </script>"; } } } } else { unset($this->titulo_obra); unset($this->ref_cod_acervo); echo "<script> alert('Já existe uma reserva do exemplar feita pelo cliente!'); </script>"; } } else { unset($this->titulo_obra); unset($this->ref_cod_acervo); echo "<script> alert('Exemplar não disponível para reserva/empréstimo!'); </script>"; } } // 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); // outros Filtros $this->campoTexto("titulo_obra", "Obra", $this->titulo_obra, 30, 255, true, false, false, "", "<img border=\"0\" onclick=\"pesquisa_obra();\" id=\"ref_cod_acervo_lupa\" name=\"ref_cod_acervo_lupa\" src=\"imagens/lupa.png\"\\/>", "", "", true); $this->campoOculto("ref_cod_acervo", $this->ref_cod_acervo); // caso exemplar esteja emprestado, mas ainda nao exista reserva if (isset($this->ref_cod_exemplar)) { // die("emprestado, sem reserva"); $this->campoOculto("ref_cod_exemplar", $this->ref_cod_exemplar); $this->existe_reserva = 1; $this->campoOculto("existe_reserva", $this->existe_reserva); } else { if ($this->existe_reserva == 2) { // die("emprestado, com reserva"); $lst_reserva = $obj_reservas->getUltimasReservas($this->ref_cod_acervo, 1); if (is_array($lst_reserva) && count($lst_reserva)) { $det_reserva = array_shift($lst_reserva); $this->ref_cod_exemplar = $det_reserva["ref_cod_exemplar"]; $this->data_disponivel = $det_reserva["data_prevista_disponivel"]; $this->data_disponivel = dataFromPgToBr($this->data_disponivel, "Y-m-d"); $this->campoOculto("data_disponivel", $this->data_disponivel); $this->campoOculto("ref_cod_exemplar", $this->ref_cod_exemplar); $this->campoOculto("existe_reserva", $this->existe_reserva); } } } $this->campoOculto("passo", 1); $this->url_cancelar = "educar_reservas_lst.php"; $this->nome_url_cancelar = "Cancelar"; }
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 "<pre>";print_r($lst_cliente_suspenso); if (is_array($lst_cliente_suspenso)) { echo "<script> alert('Cliente atualmente suspenso!\\nNão é possivel realizar o empréstimo.'); window.location = 'educar_exemplar_emprestimo_lst.php';</script>"; 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 "<script> alert('Excedido o número máximo de empréstimos do cliente!\\nNão é possivel realizar o empréstimo.'); window.location = 'educar_exemplar_emprestimo_lst.php';</script>"; 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 "<script> if(!confirm('Excedido o valor total das multas do cliente! \\n Valor total das multas: R\${$valor_total_divida} \\n Valor total das multas nessa biblioteca: R\${$valor_divida} \\n Valor máximo da multa permitido nessa biblioteca: R\${$valor_maximo_multa} \\n Deseja mesmo assim realizar o empréstimo?')) window.location = 'educar_exemplar_emprestimo_lst.php';</script>"; $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 "<pre>"; 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, "", "<a href='#' onclick=\"getElementById('excluir_tombo').value = '{$exemplar}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>"); $aux["ref_cod_exemplar_"][] = $exemplar; } else { echo "<script> alert('ERRO !!!\\nNão foi possível registrar a retirada do exemplar.'); </script>"; } } 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, "", "<a href='#' onclick=\"getElementById('excluir_tombo').value = '{$exemplar}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>"); $aux["ref_cod_exemplar_"][] = $exemplar; } else { echo "<script> alert('ERRO - Não foi possível desativar reserva desatualizada!'); </script>"; } } else { echo "<script> alert('ERRO - Não foi possível encontrar a reserva!'); </script>"; } } else { echo "<script> alert('Exemplar reservado!\\nNo momento, não disponível para empréstimo.'); </script>"; } } } 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, "", "<a href='#' onclick=\"getElementById('excluir_tombo').value = '{$exemplar}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>"); $aux["ref_cod_exemplar_"][] = $exemplar; } } } else { echo "<script> alert('Situação atual do exemplar não permite empréstimo!'); </script>"; } } else { echo "<script> alert('Exemplar não disponível para empréstimo!'); </script>"; } } } } } 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, "", "<a href='#' onclick=\"getElementById('incluir_tombo').value = 'S'; getElementById('tipoacao').value = ''; acao();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>"); } else { $this->campoNumero("ref_cod_exemplar", "Tombo", $this->ref_cod_exemplar, 15, 50, true, "", "<a href='#' onclick=\"getElementById('incluir_tombo').value = 'S'; getElementById('tipoacao').value = ''; acao();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>"); } $this->campoOculto("incluir_tombo", ""); // $this->campoRotulo( "bt_incluir_tombo", "Tombo", "<a href='#' onclick=\"getElementById('incluir_tombo').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_incluir2.gif' title='Incluir' border=0></a>" ); $this->campoQuebra(); //-----------------------FIM INCLUI TOMBO------------------------// }