function Novo() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; $this->ref_cod_cliente = $_SESSION['reservas']['cod_cliente']; @session_write_close(); if ($this->passo == 2) { return true; } $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(609, $this->pessoa_logada, 11, "educar_reservas_lst.php"); $obj_acervo = new clsPmieducarAcervo($this->ref_cod_acervo); $det_acervo = $obj_acervo->detalhe(); // tipo de exemplar $cod_exemplar_tipo = $det_acervo["ref_cod_exemplar_tipo"]; if ($this->existe_reserva == 1) { // die("1"); // echo "EMPRESTIMO <br>"; // ------------------- DADOS DO CLIENTE (EMPRESTIMO) ------------------ // $obj_exemplar_emprestimo = new clsPmieducarExemplarEmprestimo(); $lst_exemplar_emprestimo = $obj_exemplar_emprestimo->lista(null, null, null, null, $this->ref_cod_exemplar, null, null, null, null, null, false, $this->ref_cod_biblioteca); if (is_array($lst_exemplar_emprestimo) && count($lst_exemplar_emprestimo)) { $det_exemplar_emprestimo = array_shift($lst_exemplar_emprestimo); $cod_cliente = $det_exemplar_emprestimo["ref_cod_cliente"]; // data do emprestimo $data_retirada = $det_exemplar_emprestimo["data_retirada"]; $data_prevista_disponivel = dataFromPgToBr($data_retirada, "Y-m-d"); } else { echo "<script> alert('ERRO - Não foi possível encontrar o registro do empréstimo!'); </script>"; } } else { if ($this->existe_reserva == 2) { // die("2"); // echo "RESERVA <br>"; // ------------------- DADOS DO CLIENTE (RESERVA) ------------------ // $obj_reservas = new clsPmieducarReservas(); $lst_reservas = $obj_reservas->lista(null, null, null, null, null, null, $this->data_disponivel, $this->data_disponivel, null, null, $this->ref_cod_exemplar, 1, $this->ref_cod_biblioteca); if (is_array($lst_reservas) && count($lst_reservas)) { $det_reservas = array_shift($lst_reservas); $cod_cliente = $det_reservas["ref_cod_cliente"]; // data da reserva $data_prevista_disponivel = $this->data_disponivel; } else { echo "<script> alert('ERRO - Não foi possível encontrar a reserva!'); </script>"; } } } // echo "data_prevista_disponivel 1: ".$data_prevista_disponivel."<br>"; $obj_cliente_tipo_cliente = new clsPmieducarClienteTipoCliente(); $lst_cliente_tipo_cliente = $obj_cliente_tipo_cliente->lista(null, $cod_cliente, null, null, null, null, null, null, $this->ref_cod_biblioteca); $det_cliente_tipo_cliente = array_shift($lst_cliente_tipo_cliente); // tipo do cliente $cod_cliente_tipo = $det_cliente_tipo_cliente["ref_cod_cliente_tipo"]; $obj_cliente_tipo_exemplar_tipo = new clsPmieducarClienteTipoExemplarTipo($cod_cliente_tipo, $cod_exemplar_tipo); $det_cliente_tipo_exemplar_tipo = $obj_cliente_tipo_exemplar_tipo->detalhe(); // qtde de dias disponiveis para emprestimo $dias_emprestimo = $det_cliente_tipo_exemplar_tipo["dias_emprestimo"]; // echo "dias_espera: ".$this->dias_espera."<br>"; if ($this->existe_reserva == 2) { // Dias que o cliente tem pra pegar o exemplar. Calculo feito levando em consideracao a pior situacao. $data_prevista_disponivel = date("D Y-m-d", strtotime("{$data_prevista_disponivel} +" . $this->dias_espera . " days")); } // echo "data_prevista_disponivel 2: ".$data_prevista_disponivel."<br>"; $data_prevista_disponivel = date("D Y-m-d", strtotime("{$data_prevista_disponivel} +" . $dias_emprestimo . " days")); // echo "data_prevista_disponivel 3: ".$data_prevista_disponivel."<br>"; //---------------------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($this->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"); } } // echo "<pre>"; print_r($biblioteca_dias_feriado)."<br>"; // Cliente tem o dia inteiro para entregar o exemplar. Exemplar somente disponivel para a proxima reserva no dia seguinte. $data_prevista_disponivel = date("D Y-m-d ", strtotime("{$data_prevista_disponivel} +1 day")); // devido a comparacao das datas, é necessario mudar o formato da data $data_prevista_disponivel = dataFromPgToBr($data_prevista_disponivel, "D Y-m-d"); // echo "data_prevista_disponivel 4: ".$data_prevista_disponivel."<br>"; // verifica se a data cai em algum dia que a biblioteca n funciona while (in_array(substr($data_prevista_disponivel, 0, 3), $biblioteca_dias_folga) || in_array($data_prevista_disponivel, $biblioteca_dias_feriado)) { // echo "data_prevista_disponivel ASDFG = ".$data_prevista_disponivel."<br>"; $data_prevista_disponivel = date("D Y-m-d ", strtotime("{$data_prevista_disponivel} +1 day")); $data_prevista_disponivel = dataFromPgToBr($data_prevista_disponivel, "D Y-m-d"); // echo "data_prevista_disponivel ASDFG = ".$data_prevista_disponivel."<br>"; } // echo "data_prevista_disponivel 5: ".$data_prevista_disponivel."<br>";die; $data_prevista_disponivel = dataFromPgToBr($data_prevista_disponivel, "Y-m-d"); $obj = new clsPmieducarReservas(null, null, $this->pessoa_logada, $this->ref_cod_cliente, null, $data_prevista_disponivel, null, $this->ref_cod_exemplar, 1); $cadastrou = $obj->cadastra(); if ($cadastrou) { $this->mensagem .= "Cadastro efetuado com sucesso.<br>"; header("Location: educar_reservas_lst.php"); die; return true; } $this->mensagem = "Cadastro não realizado.<br>"; echo "<!--\nErro ao cadastrar clsPmieducarReservas\nvalores obrigatorios\n is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->ref_cod_cliente} ) && is_numeric( {$this->ref_cod_exemplar} )\n-->"; return false; }
function Gerar() { // primary keys $this->campoOculto("cod_emprestimo", $this->cod_emprestimo); $this->data_retirada = dataFromPgToBr($this->data_retirada, "Y-m-d"); $obj_exemplar = new clsPmieducarExemplar($this->ref_cod_exemplar); $det_exemplar = $obj_exemplar->detalhe(); $cod_acervo = $det_exemplar["ref_cod_acervo"]; $obj_acervo = new clsPmieducarAcervo($cod_acervo); $det_acervo = $obj_acervo->detalhe(); // tipo de exemplar $cod_exemplar_tipo = $det_acervo["ref_cod_exemplar_tipo"]; $titulo_obra = $det_acervo["titulo"]; $this->ref_cod_biblioteca = $det_acervo["ref_cod_biblioteca"]; $this->campoOculto("ref_cod_biblioteca", $this->ref_cod_biblioteca); $obj_biblioteca = new clsPmieducarBiblioteca($this->ref_cod_biblioteca); $det_biblioteca = $obj_biblioteca->detalhe(); // valor da multa da biblioteca por dia $valor_multa_biblioteca = $det_biblioteca["valor_multa"]; $obj_cliente_tipo_cliente = new clsPmieducarClienteTipoCliente(); $lst_cliente_tipo_cliente = $obj_cliente_tipo_cliente->lista(null, $this->ref_cod_cliente, null, null, null, null, null, null, $this->ref_cod_biblioteca); if (is_array($lst_cliente_tipo_cliente) && count($lst_cliente_tipo_cliente)) { $det_cliente_tipo_cliente = array_shift($lst_cliente_tipo_cliente); // tipo do cliente $cod_cliente_tipo = $det_cliente_tipo_cliente["ref_cod_cliente_tipo"]; $obj_cliente_tipo_exemplar_tipo = new clsPmieducarClienteTipoExemplarTipo($cod_cliente_tipo, $cod_exemplar_tipo); $det_cliente_tipo_exemplar_tipo = $obj_cliente_tipo_exemplar_tipo->detalhe(); // qtde de dias disponiveis para emprestimo $dias_emprestimo = $det_cliente_tipo_exemplar_tipo["dias_emprestimo"]; } $data_entrega = date("Y-m-d", strtotime("{$this->data_retirada} +" . $dias_emprestimo . " 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($this->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_entrega = dataFromPgToBr($data_entrega, "D Y-m-d"); if (!is_array($biblioteca_dias_folga)) { $biblioteca_dias_folga = array(null); } if (!is_array($biblioteca_dias_feriado)) { $biblioteca_dias_feriado = array(null); } // verifica se a data cai em algum dia que a biblioteca n funciona while (in_array(substr($data_entrega, 0, 3), $biblioteca_dias_folga) || in_array($data_entrega, $biblioteca_dias_feriado)) { $data_entrega = date("D Y-m-d ", strtotime("{$data_entrega} +1 day")); $data_entrega = dataFromPgToBr($data_entrega, "D Y-m-d"); } $data_entrega = dataFromPgToBr($data_entrega, "Y-m-d"); // verifica se houve atraso na devolucao do exemplar if ($data_entrega < date('Y-m-d')) { $dias_atraso = (int) ((time() - strtotime($data_entrega)) / 86400); $dias_atraso = $dias_atraso > 0 ? $dias_atraso : 0; $valor_divida = $dias_atraso * $valor_multa_biblioteca; $valor_divida = number_format($valor_divida, 2, ",", "."); $data_entrega = dataFromPgToBr($data_entrega, "d/m/Y"); } // 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); $ref_cod_exemplar_ = $this->ref_cod_exemplar; $this->campoTextoInv("ref_cod_exemplar_", "Tombo", $ref_cod_exemplar_, 15, 50); $this->campoOculto("ref_cod_exemplar", $this->ref_cod_exemplar); $this->campoTextoInv("titulo_obra", "Obra", $titulo_obra, 30, 255); @session_start(); $reload = $_SESSION['reload']; @session_write_close(); if ($valor_divida && !$reload) { $this->valor_multa = $valor_divida; $this->campoMonetario("valor_divida", "Valor Multa", $valor_divida, 8, 8, false, '', '', '', true); $this->campoOculto("valor_multa", $this->valor_multa); $reload = 1; @session_start(); $_SESSION['reload'] = $reload; @session_write_close(); echo "<script>\n\t\t\t\tif(!confirm('Atraso na devolução do exemplar ({$dias_atraso} dias)! \\n Data prevista para a entrega: {$data_entrega} \\n Valor total da multa: R\${$valor_divida} \\n Deseja adicionar a multa?'))\n\t\t\t\t\twindow.location = 'educar_exemplar_devolucao_cad.php?cod_emprestimo={$this->cod_emprestimo}';\n\t\t\t</script>"; } elseif ($valor_divida && $reload) { echo "<script> alert('Valor da multa ignorado!'); </script>"; $valor_divida = '0,00'; $this->campoMonetario("valor_divida", "Valor Multa", $valor_divida, 8, 8, false, '', '', '', true); $this->campoOculto("valor_multa", $this->valor_multa); } }
function Gerar() { // primary keys $this->campoOculto("cod_biblioteca", $this->cod_biblioteca); if ($_POST) { foreach ($_POST as $campo => $val) { $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val; } } // foreign keys // text $this->campoTexto("nm_biblioteca", "Biblioteca", $this->nm_biblioteca, 30, 255, true, false, false, "", "", "", "", true); $this->campoMonetario("valor_multa", "Valor Multa", $this->valor_multa, 8, 8, true); $this->campoNumero("max_emprestimo", "Máximo Empréstimo", $this->max_emprestimo, 8, 8, true); $this->campoMonetario("valor_maximo_multa", "Valor Máximo Multa", $this->valor_maximo_multa, 8, 8, true); // $opcoes = array( "" => "Selecione", 1 => "não", 2 => "sim" ); // $this->campoLista( "requisita_senha", "Requisita Senha", $opcoes, $this->requisita_senha ); $this->campoCheck("requisita_senha", "Requisita Senha", $this->requisita_senha); $this->campoNumero("dias_espera", "Dias Espera", $this->dias_espera, 2, 2, true); //-----------------------INCLUI DIA SEMANA------------------------// $this->campoQuebra(); if ($_POST["biblioteca_dia_semana"]) { $this->biblioteca_dia_semana = unserialize(urldecode($_POST["biblioteca_dia_semana"])); } if (is_numeric($this->cod_biblioteca) && !$_POST) { $obj = new clsPmieducarBibliotecaDia(); $registros = $obj->lista($this->cod_biblioteca); if ($registros) { foreach ($registros as $campo) { $this->biblioteca_dia_semana["dia_"][] = $campo["dia"]; } } } if ($_POST["dia"]) { $this->biblioteca_dia_semana["dia_"][] = $_POST["dia"]; unset($this->dia); } $this->campoOculto("excluir_dia_semana", ""); unset($aux); if ($this->biblioteca_dia_semana) { foreach ($this->biblioteca_dia_semana as $key => $campo) { if ($campo) { foreach ($campo as $chave => $dias) { if ($this->excluir_dia_semana == $dias) { $this->biblioteca_dia_semana[$chave] = null; $this->excluir_dia_semana = null; } else { $this->campoTextoInv("dia_{$dias}", "", $this->dias_da_semana[$dias], 8, 8, false, false, false, "", "<a href='#' onclick=\"getElementById('excluir_dia_semana').value = '{$dias}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>"); $aux["dia_"][] = $dias; } } } } unset($this->biblioteca_dia_semana); $this->biblioteca_dia_semana = $aux; } $this->campoOculto("biblioteca_dia_semana", serialize($this->biblioteca_dia_semana)); $opcoes = $this->dias_da_semana; if ($aux) { $this->campoLista("dia", "Dia da Semana", $opcoes, $this->dia, "", false, "", "<a href='#' onclick=\"getElementById('incluir_dia_semana').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>", false, false); } else { $this->campoLista("dia", "Dia da Semana", $opcoes, $this->dia, "", false, "", "<a href='#' onclick=\"getElementById('incluir_dia_semana').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>"); } $this->campoOculto("incluir_dia_semana", ""); // $this->campoRotulo( "bt_incluir_dia_semana", "Dia da Semana", "<a href='#' onclick=\"getElementById('incluir_dia_semana').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_incluir2.gif' title='Incluir' border=0></a>" ); $this->campoQuebra(); //-----------------------FIM INCLUI DIA SEMANA------------------------// //-----------------------INCLUI FERIADO------------------------// $this->campoQuebra(); if ($_POST["biblioteca_feriado"]) { $this->biblioteca_feriado = unserialize(urldecode($_POST["biblioteca_feriado"])); } if (is_numeric($this->cod_biblioteca) && !$_POST) { $obj = new clsPmieducarBibliotecaFeriados(); $registros = $obj->lista(null, $this->cod_biblioteca); if ($registros) { foreach ($registros as $campo) { $aux["nm_feriado_"] = $campo["nm_feriado"]; $aux["data_feriado_"] = dataFromPgToBr($campo["data_feriado"]); $this->biblioteca_feriado[] = $aux; } } } unset($aux); if ($_POST["nm_feriado"] && $_POST["data_feriado"]) { $aux["nm_feriado_"] = $_POST["nm_feriado"]; $aux["data_feriado_"] = $_POST["data_feriado"]; $this->biblioteca_feriado[] = $aux; unset($this->nm_feriado); unset($this->data_feriado); } $this->campoOculto("excluir_feriado", ""); unset($aux); if ($this->biblioteca_feriado) { foreach ($this->biblioteca_feriado as $key => $feriado) { if ($this->excluir_feriado == $feriado["nm_feriado_"]) { unset($this->biblioteca_feriado[$key]); unset($this->excluir_feriado); } else { $this->campoTextoInv("nm_feriado_{$feriado["nm_feriado_"]}", "", $feriado["nm_feriado_"], 30, 255, false, false, true); $this->campoTextoInv("data_feriado_{$feriado["nm_feriado_"]}", "", $feriado['data_feriado_'], 10, 10, false, false, false, "", "<a href='#' onclick=\"getElementById('excluir_feriado').value = '{$feriado["nm_feriado_"]}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>"); $aux["nm_feriado_"] = $feriado["nm_feriado_"]; $aux["data_feriado_"] = $feriado['data_feriado_']; } } } $this->campoOculto("biblioteca_feriado", serialize($this->biblioteca_feriado)); $this->campoTexto("nm_feriado", "Feriado", $this->nm_feriado, 30, 255); $this->campoData("data_feriado", " Data Feriado", $this->data_feriado); $this->campoOculto("incluir_feriado", ""); $this->campoRotulo("bt_incluir_feriado", "Feriado", "<a href='#' onclick=\"getElementById('incluir_feriado').value = 'S'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>"); $this->campoQuebra(); //-----------------------FIM INCLUI FERIADO------------------------// }
function Gerar() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; session_write_close(); $this->titulo = "Dados Biblioteca - Detalhe"; $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet"); $this->cod_biblioteca = $_GET["cod_biblioteca"]; $tmp_obj = new clsPmieducarBiblioteca($this->cod_biblioteca); $registro = $tmp_obj->detalhe(); if (class_exists("clsPmieducarInstituicao")) { $obj_ref_cod_instituicao = new clsPmieducarInstituicao($registro["ref_cod_instituicao"]); $det_ref_cod_instituicao = $obj_ref_cod_instituicao->detalhe(); $registro["ref_cod_instituicao"] = $det_ref_cod_instituicao["nm_instituicao"]; } else { $registro["ref_cod_instituicao"] = "Erro na geracao"; echo "<!--\nErro\nClasse nao existente: clsPmieducarInstituicao\n-->"; } if (class_exists("clsPmieducarEscola")) { $obj_ref_cod_escola = new clsPmieducarEscola($registro["ref_cod_escola"]); $det_ref_cod_escola = $obj_ref_cod_escola->detalhe(); $idpes = $det_ref_cod_escola["ref_idpes"]; if ($idpes) { $obj_escola = new clsPessoaJuridica($idpes); $obj_escola_det = $obj_escola->detalhe(); $registro["ref_cod_escola"] = $obj_escola_det["fantasia"]; } else { $obj_escola = new clsPmieducarEscolaComplemento($registro["ref_cod_escola"]); $obj_escola_det = $obj_escola->detalhe(); $registro["ref_cod_escola"] = $obj_escola_det["nm_escola"]; } } else { $registro["ref_cod_escola"] = "Erro na geracao"; echo "<!--\nErro\nClasse nao existente: clsPmieducarEscola\n-->"; } $obj_permissoes = new clsPermissoes(); $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada); if ($nivel_usuario <= 3) { $permitido = true; } else { $obj_usuario_bib = new clsPmieducarBibliotecaUsuario(); $lista_bib = $obj_usuario_bib->lista(null, $this->pessoa_logada); $permitido = false; if ($lista_bib) { foreach ($lista_bib as $biblioteca) { if ($this->cod_biblioteca == $biblioteca['ref_cod_biblioteca']) { $permitido = true; } } } } if (!$registro || !$permitido) { header("location: educar_biblioteca_dados_lst.php"); die; } if ($nivel_usuario == 1) { if ($registro["ref_cod_instituicao"]) { $this->addDetalhe(array("Instituição", "{$registro["ref_cod_instituicao"]}")); } } if ($nivel_usuario == 1 || $nivel_usuario == 2) { if ($registro["ref_cod_escola"]) { $this->addDetalhe(array("Escola", "{$registro["ref_cod_escola"]}")); } } if ($registro["nm_biblioteca"]) { $this->addDetalhe(array("Biblioteca", "{$registro["nm_biblioteca"]}")); } if ($registro["valor_multa"]) { $registro["valor_multa"] = number_format($registro["valor_multa"], 2, ",", "."); $this->addDetalhe(array("Valor Multa", "{$registro["valor_multa"]}")); } if ($registro["max_emprestimo"]) { $this->addDetalhe(array("Máximo Empréstimo", "{$registro["max_emprestimo"]}")); } if ($registro["valor_maximo_multa"]) { $registro["valor_maximo_multa"] = number_format($registro["valor_maximo_multa"], 2, ",", "."); $this->addDetalhe(array("Valor Máximo Multa", "{$registro["valor_maximo_multa"]}")); } if ($registro["requisita_senha"]) { if ($registro["requisita_senha"] == 0) { $registro["requisita_senha"] = "não"; } else { if ($registro["requisita_senha"] == 1) { $registro["requisita_senha"] = "sim"; } } $this->addDetalhe(array("Requisita Senha", "{$registro["requisita_senha"]}")); } if ($registro["dias_espera"]) { $this->addDetalhe(array("Dias Espera", "{$registro["dias_espera"]}")); } $obj = new clsPmieducarBibliotecaDia(); $lst = $obj->lista($this->cod_biblioteca); if ($lst) { $tabela = "<TABLE>\n\t\t\t\t\t <TR align=center>\n\t\t\t\t\t <TD bgcolor=#A1B3BD><B>Nome</B></TD>\n\t\t\t\t\t </TR>"; $cont = 0; foreach ($lst as $valor) { if ($cont % 2 == 0) { $color = " bgcolor=#E4E9ED "; } else { $color = " bgcolor=#FFFFFF "; } $tabela .= "<TR>\n\t\t\t\t\t\t\t <TD {$color} align=left>{$this->dias_da_semana[$valor["dia"]]}</TD>\n\t\t\t\t\t\t\t</TR>"; $cont++; } $tabela .= "</TABLE>"; } if ($tabela) { $this->addDetalhe(array("Dia da Semana", "{$tabela}")); } $obj = new clsPmieducarBibliotecaFeriados(); $obj->setOrderby("data_feriado ASC"); $lst = $obj->lista(null, $this->cod_biblioteca); if ($lst) { $tabela1 = "<TABLE>\n\t\t\t\t\t <TR align=center>\n\t\t\t\t\t <TD bgcolor=#A1B3BD><B>Nome</B></TD>\n\t\t\t\t\t <TD bgcolor=#A1B3BD><B>Data</B></TD>\n\t\t\t\t\t </TR>"; $cont = 0; foreach ($lst as $valor) { if ($cont % 2 == 0) { $color = " bgcolor=#E4E9ED "; } else { $color = " bgcolor=#FFFFFF "; } $valor["data_feriado"] = dataFromPgToBr($valor["data_feriado"]); $tabela1 .= "<TR>\n\t\t\t\t\t\t\t <TD {$color} align=left>{$valor["nm_feriado"]}</TD>\n\t\t\t\t\t\t\t <TD {$color} align=left>{$valor["data_feriado"]}</TD>\n\t\t\t\t\t\t\t</TR>"; $cont++; } $tabela1 .= "</TABLE>"; } if ($tabela1) { $this->addDetalhe(array("Data do Feriado", "{$tabela1}")); } if ($obj_permissoes->permissao_cadastra(629, $this->pessoa_logada, 11)) { $this->url_editar = "educar_biblioteca_dados_cad.php?cod_biblioteca={$registro["cod_biblioteca"]}"; } $this->url_cancelar = "educar_biblioteca_dados_lst.php"; $this->largura = "100%"; }
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------------------------// }
protected function getDataPrevistaDisponivelForExemplar($exemplar, $dataInicio, $format = 'd/m/Y') { $qtdDiasEmprestimo = $this->loadQtdDiasEmprestimoForExemplar($exemplar); // reformada data dd/mm/aaaa => mm/dd/aaaa $_format = explode('/', $format); if (count($_format) > 0 && $_format[0] == 'd') { list($diaInicio, $mesInicio, $anoInicio) = explode("/", $dataInicio); $dataInicio = "{$mesInicio}/{$diaInicio}/{$anoInicio}"; } // soma dias emprestimo $date = date('Y-m-d', strtotime("+{$qtdDiasEmprestimo} days", strtotime($dataInicio))); // #TODO Caso seja a devolução seja refatorada, separar esse trecho num método para reutilizar código $dias_da_semana = array('Sun' => 1, 'Mon' => 2, 'Tue' => 3, 'Wed' => 4, 'Thu' => 5, 'Fri' => 6, 'Sat' => 7); $obj_biblioteca_dia = new clsPmieducarBibliotecaDia(); $lst_biblioteca_dia = $obj_biblioteca_dia->lista($this->getRequest()->biblioteca_id); 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"]; } } // Array de dias de não 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); $obj_biblioteca_feriado = new clsPmieducarBibliotecaFeriados(); $lst_biblioteca_feriado = $obj_biblioteca_feriado->lista(null, $this->getRequest()->biblioteca_id); 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"); } } $data_entrega = dataFromPgToBr($date, "D Y-m-d"); if (!is_array($biblioteca_dias_folga)) { $biblioteca_dias_folga = array(null); } if (!is_array($biblioteca_dias_feriado)) { $biblioteca_dias_feriado = array(null); } // verifica se a data cai em algum dia que a biblioteca n funciona while (in_array(substr($data_entrega, 0, 3), $biblioteca_dias_folga) || in_array($data_entrega, $biblioteca_dias_feriado)) { $data_entrega = date("D Y-m-d ", strtotime("{$data_entrega} +1 day")); $data_entrega = dataFromPgToBr($data_entrega, "D Y-m-d"); } $data_entrega = dataFromPgToBr($data_entrega, $format); return $data_entrega; }