From cb855e5c9dc152b68ab29a91b340df7223cc77c0 Mon Sep 17 00:00:00 2001 From: Eriksen Costa Paixão Date: Mon, 4 May 2009 18:01:49 +0000 Subject: [PATCH] #22 by Eriksen: Corrigido erro na listagem de faltas e atrasos de um servidor que listava as ocorrências de todos quando deveria mostrar apenas do servidor especificado. Melhorias no display de dados da escola, horas/minutos de um atraso e o tipo da entrada --- ieducar/intranet/educar_falta_atraso_cad.php | 59 +++++++++++++++++++++++++++++------------------------------ ieducar/intranet/educar_falta_atraso_lst.php | 420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 2 files changed, 233 insertions(+), 246 deletions(-) diff --git a/ieducar/intranet/educar_falta_atraso_cad.php b/ieducar/intranet/educar_falta_atraso_cad.php index 9c245bb..eea6aca 100644 --- a/ieducar/intranet/educar_falta_atraso_cad.php +++ b/ieducar/intranet/educar_falta_atraso_cad.php @@ -1,36 +1,35 @@ SetTitulo( "{$this->_instituicao} i-Educar - Falta Atraso" ); - $this->processoAp = "635"; - } +require_once 'include/clsBase.inc.php'; +require_once 'include/clsListagem.inc.php'; +require_once 'include/clsBanco.inc.php'; +require_once 'include/pmieducar/geral.inc.php'; + +class clsIndexBase extends clsBase { + + public function Formular() { + $this->SetTitulo( "{$this->_instituicao} i-Educar - Falta Atraso" ); + $this->processoAp = "635"; + } + } + class indice extends clsListagem { - /** - * Referencia pega da session para o idpes do usuario atual - * - * @var int - */ - var $pessoa_logada; - - /** - * Titulo no topo da pagina - * - * @var int - */ - var $titulo; - - /** - * Quantidade de registros a ser apresentada em cada pagina - * - * @var int - */ - var $limite; - - /** - * Inicio dos registros a serem exibidos (limit) - * - * @var int - */ - var $offset; - - var $cod_falta_atraso; - var $ref_cod_escola; - var $ref_ref_cod_instituicao; - var $ref_usuario_exc; - var $ref_usuario_cad; - var $ref_cod_servidor; - var $tipo; - var $data_falta_atraso; - var $qtd_horas; - var $qtd_min; - var $justificada; - var $data_cadastro; - var $data_exclusao; - var $ativo; - - function Gerar() - { - @session_start(); - $this->pessoa_logada = $_SESSION['id_pessoa']; - session_write_close(); - - $this->ref_cod_servidor = $_GET["ref_cod_servidor"]; - $this->ref_ref_cod_instituicao = $_GET["ref_cod_instituicao"]; - - $this->titulo = "Falta Atraso - Listagem"; - - foreach( $_GET AS $var => $val ) // passa todos os valores obtidos no GET para atributos do objeto - $this->$var = ( $val === "" ) ? null: $val; - - $this->addBanner( "imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet" ); - - $this->addCabecalhos( array( - "Escola", - "Instituicão", - "Quantidade de Horas", - "Quantidade de Minutos" - ) ); - - // Filtros de Foreign Keys - $obrigatorio = false; - $get_instituicao = true; - $get_escola = true; - include("include/pmieducar/educar_campo_lista.php"); - - // outros Filtros - /*$opcoes = array( "" => "Selecione", "1" => "Atraso", "2" => "Falta" ); - $this->campoLista( "tipo", "Tipo", $opcoes, $this->tipo ); - $this->campoData( "data_falta_atraso", "Dia", $this->data_falta_atraso, false );*/ - - - // Paginador - $this->limite = 20; - $this->offset = ( $_GET["pagina_{$this->nome}"] ) ? $_GET["pagina_{$this->nome}"]*$this->limite-$this->limite: 0; - - $obj_falta_atraso = new clsPmieducarFaltaAtraso(null, $this->ref_cod_escola, $this->ref_ref_cod_instituicao, null, null, $this->ref_cod_servidor); - $obj_falta_atraso->setOrderby( "tipo ASC" ); - $obj_falta_atraso->setLimite( $this->limite, $this->offset ); - - //$lista = $obj_falta_atraso->listaHorasEscola( $this->ref_cod_servidor, $this->ref_ref_cod_instituicao, $this->ref_cod_escola ); - - $lista = $obj_falta_atraso->lista(); - - $total = $obj_falta_atraso->_total; - - // monta a lista - if( is_array( $lista ) && count( $lista ) ) - { - foreach ( $lista AS $registro ) - { - // pega detalhes de foreign_keys - if( class_exists( "clsPmieducarEscola" ) ) - { - $obj_ref_cod_escola = new clsPmieducarEscolaComplemento( $registro["ref_cod_escola"] ); - $det_ref_cod_escola = $obj_ref_cod_escola->detalhe(); - $registro["nm_escola"] = $det_ref_cod_escola["nm_escola"]; - } - else - { - $registro["ref_cod_escola"] = "Erro na geracao"; - echo ""; - } - if ( class_exists( "clsPmieducarInstituicao" ) ) { - $obj_ins = new clsPmieducarInstituicao( $registro["ref_ref_cod_instituicao"] ); - $det_ins = $obj_ins->detalhe(); - } - else { - echo ""; - } - if( class_exists( "clsPmieducarFaltaAtrasoCompensado" ) ) - { - $obj_comp = new clsPmieducarFaltaAtrasoCompensado(); - $horas = $obj_comp->ServidorHorasCompensadas( $this->ref_cod_servidor, $registro["ref_cod_escola"], $registro["ref_ref_cod_instituicao"] ); - if ( $horas ) - { - $horas_aux = $horas["hora"]; - $minutos_aux = $horas["min"]; - } - } - else { - echo ""; - } -// $horas_aux = floor( $horas ); -// $minutos_aux = ( $horas - $horas_aux ) * 60; - $horas_aux = $horas_aux - $registro["horas"]; - $minutos_aux = $minutos_aux - $registro["minutos"]; - - if ( $horas_aux > 0 && $minutos_aux < 0 ) - { - $horas_aux--; - $minutos_aux += 60; - } - - if ( $horas_aux < 0 && $minutos_aux > 0 ) - { - $horas_aux--; - $minutos_aux -= 60; - } - - if ( $horas_aux < 0 ) - $horas_aux = "(".$horas_aux.")"; - - if ( $minutos_aux < 0 ) - $minutos_aux = "(".$minutos_aux.")"; - - /*$this->addLinhas( array( - "ref_cod_servidor}&ref_cod_escola={$registro["ref_cod_escola"]}&ref_cod_instituicao={$registro["ref_ref_cod_instituicao"]}\">{$registro["nm_escola"]}", - "ref_cod_servidor}&ref_cod_escola={$registro["ref_cod_escola"]}&ref_cod_instituicao={$registro["ref_ref_cod_instituicao"]}\">{$det_ins["nm_instituicao"]}", - "ref_cod_servidor}&ref_cod_escola={$registro["ref_cod_escola"]}&ref_cod_instituicao={$registro["ref_ref_cod_instituicao"]}\">{$horas_aux}", - "ref_cod_servidor}&ref_cod_escola={$registro["ref_cod_escola"]}&ref_cod_instituicao={$registro["ref_ref_cod_instituicao"]}\">{$minutos_aux}" - ) );*/ - $this->addLinhas( array( - "{$registro["nm_escola"]}", - "{$det_ins["nm_instituicao"]}", - "{$horas_aux}", - "{$minutos_aux}" - ) ); - } - } - $this->addPaginador2( "educar_falta_atraso_lst.php", $total, $_GET, $this->nome, $this->limite ); - $obj_permissoes = new clsPermissoes(); - if( $obj_permissoes->permissao_cadastra( 635, $this->pessoa_logada, 7 ) ) - { - $this->array_botao[] = "Novo"; - $this->array_botao_url[] = "educar_falta_atraso_cad.php?ref_cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_ref_cod_instituicao}"; - } - $this->array_botao[] = "Voltar"; - $this->array_botao_url[] = "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}"; - $this->largura = "100%"; - } + /** + * Referencia pega da session para o idpes do usuario atual + * + * @var int + */ + public $pessoa_logada = 0; + + /** + * Titulo no topo da pagina + * + * @var int + */ + public $titulo = ''; + + /** + * Quantidade de registros a ser apresentada em cada pagina + * + * @var int + */ + public $limite = 0; + + /** + * Inicio dos registros a serem exibidos (limit) + * + * @var int + */ + public $offset = 0; + + public + $cod_falta_atraso = NULL, + $ref_cod_escola = NULL, + $ref_ref_cod_instituicao = NULL, + $ref_usuario_exc = NULL, + $ref_usuario_cad = NULL, + $ref_cod_servidor = NULL, + $tipo = NULL, + $data_falta_atraso = NULL, + $qtd_horas = NULL, + $qtd_min = NULL, + $justificada = NULL, + $data_cadastro = NULL, + $data_exclusao = NULL, + $ativo = NULL; + + + + public function Gerar() { + session_start(); + $this->pessoa_logada = $_SESSION['id_pessoa']; + session_write_close(); + + $this->ref_cod_servidor = isset($_GET['ref_cod_servidor']) ? + $_GET['ref_cod_servidor'] : NULL; + $this->ref_ref_cod_instituicao = isset($_GET['ref_cod_instituicao']) ? + $_GET['ref_cod_instituicao'] : NULL; + + $this->titulo = 'Faltas e atrasos - Listagem'; + + foreach ($_GET as $var => $val) { + $this->$var = ($val === "") ? NULL : $val; + } + + $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet'); + + $this->addCabecalhos(array( + 'Escola', + 'Instituicão', + 'Tipo', + 'Horas', + 'Minutos' + )); + + // Filtros de Foreign Keys + $obrigatorio = FALSE; + $get_instituicao = TRUE; + $get_escola = TRUE; + include_once 'include/pmieducar/educar_campo_lista.php'; + + // Paginador + $this->limite = 20; + $this->offset = ($_GET['pagina_' . $this->nome]) ? + $_GET['pagina_' . $this->nome] * $this->limite-$this->limite : 0; + + $obj_falta_atraso = new clsPmieducarFaltaAtraso(NULL, $this->ref_cod_escola, + $this->ref_ref_cod_instituicao, NULL, NULL, $this->ref_cod_servidor); + + $obj_falta_atraso->setOrderby('tipo ASC'); + $obj_falta_atraso->setLimite($this->limite, $this->offset); + + // Recupera a lista de faltas/atrasos + $lista = $obj_falta_atraso->lista(NULL, NULL, NULL, NULL, NULL, $this->ref_cod_servidor); + + $total = $obj_falta_atraso->_total; + + // monta a lista + if (is_array($lista) && count($lista)) { + foreach ($lista as $registro) { + + // Recupera o nome da escola + $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_cod_escola']); + $det_ref_cod_escola = $obj_ref_cod_escola->detalhe(); + $registro['nm_escola'] = $det_ref_cod_escola['nome']; + + $obj_ins = new clsPmieducarInstituicao($registro['ref_ref_cod_instituicao']); + $det_ins = $obj_ins->detalhe(); + + $obj_comp = new clsPmieducarFaltaAtrasoCompensado(); + $horas = $obj_comp->ServidorHorasCompensadas($this->ref_cod_servidor, + $registro["ref_cod_escola"], $registro["ref_ref_cod_instituicao"]); + + if ($horas) { + $horas_aux = $horas["hora"]; + $minutos_aux = $horas["min"]; + } + + $horas_aux = $horas_aux - $registro["qtd_horas"]; + $minutos_aux = $minutos_aux - $registro["qtd_min"]; + + if ($horas_aux > 0 && $minutos_aux < 0) { + $horas_aux--; + $minutos_aux += 60; + } + + if ($horas_aux < 0 && $minutos_aux > 0) { + $horas_aux--; + $minutos_aux -= 60; + } + + if ($horas_aux < 0) { + $horas_aux = '('.($horas_aux * -1).')'; + } + + if ($minutos_aux < 0) { + $minutos_aux = '('.($minutos_aux * -1).')'; + } + + $tipo = $registro['tipo'] == 1 ? + 'Atraso' : 'Falta'; + + $this->addLinhas( array( + "{$registro["nm_escola"]}", + "{$det_ins["nm_instituicao"]}", + "{$tipo}", + "{$horas_aux}", + "{$minutos_aux}" + )); + } + } + + $this->addPaginador2('educar_falta_atraso_lst.php', $total, $_GET, $this->nome, $this->limite); + $obj_permissoes = new clsPermissoes(); + + if ($obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7)) { + $this->array_botao[] = 'Novo'; + $this->array_botao_url[] = "educar_falta_atraso_cad.php?ref_cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_ref_cod_instituicao}"; + } + + $this->array_botao[] = 'Voltar'; + $this->array_botao_url[] = "educar_servidor_det.php?cod_servidor={$this->ref_cod_servidor}&ref_cod_instituicao={$this->ref_cod_instituicao}"; + $this->largura = "100%"; + } + } + // 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(); -?> \ No newline at end of file +$pagina->MakeAll(); \ No newline at end of file -- libgit2 0.21.2