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 Novo() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); $obj_permissoes = new clsPermissoes(); $obj_permissoes->permissao_cadastra(610, $this->pessoa_logada, 11, "educar_exemplar_emprestimo_lst.php"); if ($this->ref_cod_cliente) { @session_start(); $_SESSION['emprestimo']['cod_cliente'] = $this->ref_cod_cliente; $_SESSION['emprestimo']['ref_cod_biblioteca'] = $this->ref_cod_biblioteca; @session_write_close(); header("Location: educar_exemplar_emprestimo_cad.php"); die; return true; } else { if ($this->login_ && $this->senha_) { $this->senha_ = md5($this->senha_ . "asnk@#*&(23"); $obj_cliente = new clsPmieducarCliente(); $lst_cliente = $obj_cliente->lista(null, null, null, null, $this->login_, $this->senha_, null, null, null, null, 1); if (is_array($lst_cliente) && count($lst_cliente)) { $cliente = array_shift($lst_cliente); $cod_cliente = $cliente["cod_cliente"]; $obj_cliente_tipo_cliente = new clsPmieducarClienteTipoCliente(); $lst_cliente_tipo_cliente = $obj_cliente_tipo_cliente->lista(null, $cod_cliente); if (is_array($lst_cliente_tipo_cliente) && count($lst_cliente_tipo_cliente)) { foreach ($lst_cliente_tipo_cliente as $cliente_tipo) { // tipo do cliente $cod_cliente_tipo = $cliente_tipo["ref_cod_cliente_tipo"]; $obj_cliente_tipo = new clsPmieducarClienteTipo($cod_cliente_tipo); $det_cliente_tipo = $obj_cliente_tipo->detalhe(); $biblioteca_cliente = $det_cliente_tipo["ref_cod_biblioteca"]; if ($this->ref_cod_biblioteca == $biblioteca_cliente) { @session_start(); $_SESSION['emprestimo']['cod_cliente'] = $cod_cliente; $_SESSION['emprestimo']['ref_cod_biblioteca'] = $this->ref_cod_biblioteca; @session_write_close(); $this->mensagem .= "Login efetuado com sucesso.<br>"; header("Location: educar_exemplar_emprestimo_cad.php"); die; return true; } } echo "<script> alert('Cliente não pertence a biblioteca escolhida!'); </script>"; return true; } } else { $this->mensagem = "Login e/ou Senha incorreto(s).<br>"; return false; } } else { $this->mensagem = "Preencha o(s) campo(s) corretamente.<br>"; 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); } }