Ejemplo n.º 1
0
 public function Gerar()
 {
     $headers = $this->getTableMap();
     $this->addCabecalhos(array_keys($headers));
     $entries = $this->getEntries();
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     foreach ($entries as $entry) {
         $item = array();
         $data = $entry->toArray();
         $options = array('query' => array('id' => $entry->id, 'servidor' => $entry->servidor, 'instituicao' => $this->getRequest()->instituicao));
         foreach ($headers as $label => $attr) {
             $item[] = CoreExt_View_Helper_UrlHelper::l($entry->{$attr}, 'view', $options);
         }
         $this->addLinhas($item);
     }
     $this->addPaginador2("", count($entries), $_GET, $this->nome, $this->limite);
     $this->setAcao();
     $this->acao_voltar = sprintf('go("/intranet/educar_servidor_det.php?cod_servidor=%d&ref_cod_instituicao=%d")', $this->getRequest()->servidor, $this->getRequest()->instituicao);
     $this->largura = "100%";
 }
 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 = 'Faltas e atrasos - Listagem';
     foreach ($_GET as $var => $val) {
         $this->{$var} = $val === '' ? NULL : $val;
     }
     $this->addCabecalhos(array('Escola', 'Instituiçã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';
             $urlHelper = CoreExt_View_Helper_UrlHelper::getInstance();
             $url = 'educar_falta_atraso_det.php';
             $options = array('query' => array('cod_falta_atraso' => $registro['cod_falta_atraso'], 'ref_cod_servidor' => $registro['ref_cod_servidor'], 'ref_cod_escola' => $registro['ref_cod_escola'], 'ref_cod_instituicao' => $registro['ref_ref_cod_instituicao']));
             $this->addLinhas(array($urlHelper->l($registro['nm_escola'], $url, $options), $urlHelper->l($det_ins['nm_instituicao'], $url, $options), $urlHelper->l($tipo, $url, $options), $urlHelper->l($horas_aux, $url, $options), $urlHelper->l($minutos_aux, $url, $options)));
         }
     }
     $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[] = sprintf('educar_falta_atraso_cad.php?ref_cod_servidor=%d&ref_cod_instituicao=%d', $this->ref_cod_servidor, $this->ref_ref_cod_instituicao);
     }
     $this->array_botao[] = 'Voltar';
     $this->array_botao_url[] = sprintf('educar_servidor_det.php?cod_servidor=%d&ref_cod_instituicao=%d', $this->ref_cod_servidor, $this->ref_cod_instituicao);
     $this->largura = '100%';
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Listagem de faltas/atrasos do servidor"));
     $this->enviaLocalizacao($localizacao->montar());
 }
Ejemplo n.º 3
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = 'Servidor - Listagem';
     // passa todos os valores obtidos no GET para atributos do objeto
     foreach ($_GET as $var => $val) {
         $this->{$var} = $val === '' ? NULL : $val;
     }
     $this->addCabecalhos(array('Nome do Servidor', 'Matrícula', 'Instituição'));
     $get_escola = TRUE;
     $obrigatorio = TRUE;
     $exibe_nm_escola = TRUE;
     include 'include/pmieducar/educar_campo_lista.php';
     $opcoes = array('' => 'Pesquise o funcionario clicando na lupa ao lado');
     if ($this->cod_servidor) {
         $objTemp = new clsFuncionario($this->cod_servidor);
         $detalhe = $objTemp->detalhe();
         $detalhe = $detalhe['idpes']->detalhe();
         $opcoes[$detalhe['idpes']] = $detalhe['nome'];
     }
     $parametros = new clsParametrosPesquisas();
     $parametros->setSubmit(0);
     $parametros->adicionaCampoSelect('cod_servidor', 'ref_cod_pessoa_fj', 'nome');
     $this->campoListaPesq('cod_servidor', 'Servidor', $opcoes, $this->cod_servidor, 'pesquisa_funcionario_lst.php', '', FALSE, '', '', NULL, NULL, '', FALSE, $parametros->serializaCampos() . '&com_matricula=false', TRUE);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_servidor = new clsPmieducarServidor();
     $obj_servidor->setOrderby('carga_horaria ASC');
     $obj_servidor->setLimite($this->limite, $this->offset);
     $lista = $obj_servidor->lista($this->cod_servidor, $this->ref_cod_deficiencia, $this->ref_idesco, $this->carga_horaria, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao, NULL, NULL, NULL, NULL, NULL, NULL, TRUE, NULL, NULL, NULL, NULL, !isset($_GET['busca']) ? $this->ref_cod_escola : NULL, NULL, NULL, NULL, NULL, !isset($_GET['busca']) ? 1 : NULL);
     $total = $obj_servidor->_total;
     // UrlHelper
     $url = CoreExt_View_Helper_UrlHelper::getInstance();
     // Monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             // Pega detalhes de foreign_keys
             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 geração';
             }
             if (class_exists('clsFuncionario')) {
                 $obj_cod_servidor = new clsFuncionario($registro['cod_servidor']);
                 $det_cod_servidor = $obj_cod_servidor->detalhe();
                 $registro['matricula'] = $det_cod_servidor['matricula'];
                 $det_cod_servidor = $det_cod_servidor['idpes']->detalhe();
                 $registro['nome'] = $det_cod_servidor['nome'];
             } else {
                 $registro['cod_servidor'] = 'Erro na geracao';
             }
             $path = 'educar_servidor_det.php';
             $options = array('query' => array('cod_servidor' => $registro['cod_servidor'], 'ref_cod_instituicao' => $det_ref_cod_instituicao['cod_instituicao']));
             $this->addLinhas(array($url->l($registro['nome'], $path, $options), $url->l($registro['matricula'], $path, $options), $url->l($registro['ref_cod_instituicao'], $path, $options)));
         }
     }
     $this->addPaginador2('educar_servidor_lst.php', $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(635, $this->pessoa_logada, 7)) {
         $this->acao = 'go("educar_servidor_cad.php")';
         $this->nome_acao = 'Novo';
     }
     $this->largura = '100%';
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Listagem de servidores"));
     $this->enviaLocalizacao($localizacao->montar());
 }
Ejemplo n.º 4
0
 /**
  * Getter para a opção de configuração baseurl.
  *
  * Caso a opção não esteja configurada, determina um valor baseado na
  * variável $_SERVER['REQUEST_URI'] da requisição, usando apenas os
  * componentes scheme e path da URL. Veja {@link http://php.net/parse_url}
  * para mais informações sobre os componentes de uma URL.
  *
  * @return string
  */
 public function getBaseurl()
 {
     if (is_null($this->_getOption('baseurl'))) {
         require_once 'CoreExt/View/Helper/UrlHelper.php';
         $url = CoreExt_View_Helper_UrlHelper::url($this->get('REQUEST_URI'), array('absolute' => TRUE, 'components' => CoreExt_View_Helper_UrlHelper::URL_HOST));
         $this->setBaseurl($url);
     }
     return $this->_getOption('baseurl');
 }
Ejemplo n.º 5
0
 * @since     Arquivo disponível desde a versão 1.1.0
 * @version   $Id$
 */
require_once '../includes/bootstrap.php';
require_once 'include/clsBanco.inc.php';
require_once 'App/Model/IedFinder.php';
require_once 'CoreExt/View/Helper/UrlHelper.php';
require_once 'CoreExt/Controller/Request.php';
require_once 'CoreExt/Controller/Front.php';
require_once 'CoreExt/DataMapper.php';
require_once 'modules/Error/Mailers/NotificationMailer.php';
try {
    // Objeto de requisição
    $request = new CoreExt_Controller_Request();
    // Helper de URL. Auxilia para criar uma URL no formato http://www.example.org/module
    $url = CoreExt_View_Helper_UrlHelper::getInstance();
    $url = $url->url($request->get('REQUEST_URI'), array('components' => CoreExt_View_Helper_UrlHelper::URL_HOST));
    // Configura o baseurl da request
    $request->setBaseurl(sprintf('%s/module', $url));
    // Configura o DataMapper para usar uma instância de clsBanco com fetch de resultados
    // usando o tipo FETCH_ASSOC
    CoreExt_DataMapper::setDefaultDbAdapter(new clsBanco(array('fetchMode' => clsBanco::FETCH_ASSOC)));
    // Inicia o Front Controller
    $frontController = CoreExt_Controller_Front::getInstance();
    $frontController->setRequest($request);
    // Configura o caminho aonde os módulos estão instalados
    $frontController->setOptions(array('basepath' => PROJECT_ROOT . DS . 'modules'));
    $frontController->dispatch();
    // Resultado
    print $frontController->getViewContents();
} catch (Exception $e) {
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Faltas/Notas Aluno - Listagem";
     // Passa todos os valores obtidos no GET para atributos do objeto
     foreach ($_GET as $var => $val) {
         $this->{$var} = $val === '' ? NULL : $val;
     }
     $lista_busca = array('Aluno', 'Matrícula', 'Turma', 'Série', 'Curso');
     $obj_permissao = new clsPermissoes();
     $nivel_usuario = $obj_permissao->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         $lista_busca[] = 'Escola';
         $lista_busca[] = 'Institui&ccedil;&atilde;o';
     } else {
         if ($nivel_usuario == 2) {
             $lista_busca[] = 'Escola';
         }
     }
     $this->addCabecalhos($lista_busca);
     $this->campoTexto('nm_aluno', 'Aluno', $this->nm_aluno, 30, 255, FALSE, FALSE, FALSE, '', "<img border=\"0\" onclick=\"pesquisa_aluno();\" id=\"ref_cod_aluno_lupa\" name=\"ref_cod_aluno_lupa\" src=\"imagens/lupa.png\"\\/>", '', '', TRUE);
     $this->campoOculto('ref_cod_aluno', $this->ref_cod_aluno);
     $get_escola = TRUE;
     $get_curso = TRUE;
     $sem_padrao = TRUE;
     $get_escola_curso_serie = TRUE;
     $get_turma = TRUE;
     include 'include/pmieducar/educar_campo_lista.php';
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     $opcoes = array('' => 'Selecione', 1 => 'Aprovado', 2 => 'Reprovado', 3 => 'Em Andamento');
     $this->campoLista('aprovado', 'Situa&ccedil;&atilde;o', $opcoes, $this->aprovado, '', '', '', '', FALSE, FALSE);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_nota_aluno = new clsPmieducarMatriculaTurma();
     $obj_nota_aluno->setOrderby('ref_cod_matricula ASC');
     $obj_nota_aluno->setLimite($this->limite, $this->offset);
     $aparece = TRUE;
     $lista = $obj_nota_aluno->lista($this->ref_cod_matricula, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_ref_cod_serie, $this->ref_cod_curso, $this->ref_ref_cod_escola, $this->ref_cod_instituicao, $this->ref_cod_aluno, NULL, $this->aprovado, NULL, NULL, NULL, TRUE, FALSE, NULL, 1, TRUE, TRUE, NULL, NULL, NULL, NULL, $aparece);
     $total = $obj_nota_aluno->_total;
     // monta a lista
     if (is_array($lista) && count($lista)) {
         $ref_cod_serie = '';
         $nm_serie = '';
         $ref_cod_escola = '';
         $nm_escola = '';
         foreach ($lista as $registro) {
             if ($registro['ref_ref_cod_serie'] != '' && $ref_cod_serie != $registro['ref_ref_cod_serie']) {
                 $obj_ref_cod_serie = new clsPmieducarSerie($registro['ref_ref_cod_serie']);
                 $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
                 $ref_cod_serie = $registro['ref_ref_cod_serie'];
                 $nm_serie = $det_ref_cod_serie['nm_serie'];
             } elseif ($registro['ref_ref_cod_serie'] == '') {
                 $ref_cod_serie = '';
                 $nm_serie = '';
             }
             if ($registro['ref_ref_cod_escola'] != '' && $ref_cod_escola != $registro['ref_ref_cod_escola']) {
                 $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_ref_cod_escola']);
                 $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
                 $ref_cod_escola = $registro['ref_ref_cod_escola'];
                 $nm_escola = $det_ref_cod_escola['nome'];
             } elseif ($registro['ref_ref_cod_escola'] == '') {
                 $ref_cod_escola = '';
                 $nm_escola = '';
             }
             // Itens a mostrar na listagem de alunos
             $lista_busca = array();
             // Variáveis para a geração do link
             $path = '/module/Avaliacao/boletim';
             $params = array('query' => array('matricula' => $registro['ref_cod_matricula']));
             // Instância de UrlHelper
             $url = CoreExt_View_Helper_UrlHelper::getInstance();
             $lista_busca[] = $url->l($registro['nome'], $path, $params);
             $lista_busca[] = $url->l($registro['ref_cod_matricula'], $path, $params);
             $lista_busca[] = $url->l($registro['nm_turma'], $path, $params);
             $lista_busca[] = $url->l($registro['ref_ref_cod_serie'] ? $registro['ref_ref_cod_serie'] : '', $path, $params);
             $lista_busca[] = $url->l($registro['nm_curso'], $path, $params);
             if ($nivel_usuario == 1) {
                 $lista_busca[] = $url->l($registro['ref_ref_cod_escola'] ? $nm_escola : '-', $path, $params);
                 $lista_busca[] = $url->l($registro['nm_instituicao'], $path, $params);
             } elseif ($nivel_usuario == 2) {
                 $lista_busca[] = $url->l($registro['ref_ref_cod_escola'] ? $registro['ref_ref_cod_escola'] : '-', $path, $params);
             }
             $this->addLinhas($lista_busca);
         }
     }
     $this->addPaginador2('educar_falta_nota_aluno_lst.php', $total, $_GET, $this->nome, $this->limite);
     $this->largura = '100%';
 }
Ejemplo n.º 7
0
 /**
  * Configura a URL padrão para a ação Cancelar da tela de Edição de um
  * registro.
  *
  * Por padrão, cria uma URL "index".
  *
  * @param CoreExt_Entity $entry A instância atual recuperada
  *   ViewController::Gerar().
  */
 public function setUrlCancelar(CoreExt_Entity $entry)
 {
     $this->url_cancelar = CoreExt_View_Helper_UrlHelper::url('index');
 }
Ejemplo n.º 8
0
 public function testCriaLinkComUrlAbsolutaImplicita()
 {
     $expected = '<a href="http://localhost/index.php?param1=value1">Index</a>';
     $this->assertEquals($expected, CoreExt_View_Helper_UrlHelper::l('Index', 'http://localhost/index.php', array('query' => array('param1' => 'value1'))));
 }
Ejemplo n.º 9
0
 /**
  * Implementação padrão para as subclasses que estenderem essa classe. Cria
  * uma lista de apresentação de dados simples utilizando o mapeamento de
  * $_tableMap.
  *
  * @see Core_Controller_Page_ListController#$_tableMap
  * @see clsDetalhe#Gerar()
  */
 public function Gerar()
 {
     $headers = $this->getTableMap();
     // Configura o cabeçalho da listagem.
     $this->addCabecalhos(array_keys($headers));
     // Recupera os registros para a listagem.
     $entries = $this->getEntries();
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     foreach ($entries as $entry) {
         $item = array();
         $data = $entry->toArray();
         $options = array('query' => array('id' => $entry->id));
         foreach ($headers as $label => $attr) {
             $item[] = CoreExt_View_Helper_UrlHelper::l($entry->{$attr}, 'view', $options);
         }
         $this->addLinhas($item);
     }
     $this->addPaginador2('', count($entries), $_GET, $this->nome, $this->limite);
     // Configura o botão padrão de ação para a criação de novo registro.
     $this->setAcao();
     // Largura da tabela HTML onde se encontra a listagem.
     $this->largura = '100%';
 }
Ejemplo n.º 10
0
 public function setUrlCancelar(CoreExt_Entity $entry)
 {
     $this->url_cancelar = CoreExt_View_Helper_UrlHelper::url('index', array('query' => array('id' => $entry->id, 'servidor' => $entry->servidor, 'instituicao' => $this->getRequest()->instituicao)));
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     // Helper para url
     $urlHelper = CoreExt_View_Helper_UrlHelper::getInstance();
     $this->titulo = 'Dispensa Componente Curricular - Listagem';
     // passa todos os valores obtidos no GET para atributos do objeto
     foreach ($_GET as $var => $val) {
         $this->{$var} = $val === '' ? NULL : $val;
     }
     if (!$_GET['ref_cod_matricula']) {
         header('Location: educar_matricula_lst.php');
         die;
     }
     $this->ref_cod_matricula = $_GET['ref_cod_matricula'];
     $obj_matricula = new clsPmieducarMatricula();
     $lst_matricula = $obj_matricula->lista($this->ref_cod_matricula);
     if (is_array($lst_matricula)) {
         $det_matricula = array_shift($lst_matricula);
         $this->ref_cod_instituicao = $det_matricula['ref_cod_instituicao'];
         $this->ref_cod_escola = $det_matricula['ref_ref_cod_escola'];
         $this->ref_cod_serie = $det_matricula['ref_ref_cod_serie'];
         $obj_matricula_turma = new clsPmieducarMatriculaTurma();
         $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, NULL, $this->ref_cod_escola);
         if (is_array($lst_matricula_turma)) {
             $det = array_shift($lst_matricula_turma);
             $this->ref_cod_turma = $det['ref_cod_turma'];
             $this->ref_sequencial = $det['sequencial'];
         }
     }
     $this->campoOculto('ref_cod_turma', $this->ref_cod_turma);
     $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
     $this->addCabecalhos(array('Disciplina', 'Tipo Dispensa', 'Data Dispensa'));
     // Filtros de Foreign Keys
     $opcoes = array('' => 'Selecione');
     $objTemp = new clsPmieducarTipoDispensa();
     if ($this->ref_cod_instituicao) {
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     } else {
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
     }
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             $opcoes[$registro['cod_tipo_dispensa']] = $registro['nm_tipo'];
         }
     }
     $this->campoLista('ref_cod_tipo_dispensa', 'Motivo', $opcoes, $this->ref_cod_tipo_dispensa, '', FALSE, '', '', FALSE, FALSE);
     $this->campoOculto('ref_cod_matricula', $this->ref_cod_matricula);
     // outros Filtros
     $opcoes = array('' => 'Selecione');
     // Escola série disciplina
     $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
     foreach ($componentes as $componente) {
         $opcoes[$componente->id] = $componente->nome;
     }
     $this->campoLista('ref_cod_disciplina', 'Disciplina', $opcoes, $this->ref_cod_disciplina, '', FALSE, '', '', FALSE, FALSE);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_dispensa_disciplina = new clsPmieducarDispensaDisciplina();
     $obj_dispensa_disciplina->setOrderby('data_cadastro ASC');
     $obj_dispensa_disciplina->setLimite($this->limite, $this->offset);
     $lista = $obj_dispensa_disciplina->lista($this->ref_cod_matricula, NULL, NULL, $this->ref_cod_disciplina, NULL, NULL, $this->ref_cod_tipo_dispensa, NULL, NULL, NULL, NULL, 1);
     $total = $obj_dispensa_disciplina->_total;
     // Mapper de componente curricular
     $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper();
     // monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             // muda os campos data
             $registro['data_cadastro_time'] = strtotime(substr($registro['data_cadastro'], 0, 16));
             $registro['data_cadastro_br'] = date('d/m/Y', $registro['data_cadastro_time']);
             // Tipo da dispensa
             $obj_ref_cod_tipo_dispensa = new clsPmieducarTipoDispensa($registro['ref_cod_tipo_dispensa']);
             $det_ref_cod_tipo_dispensa = $obj_ref_cod_tipo_dispensa->detalhe();
             $registro['ref_cod_tipo_dispensa'] = $det_ref_cod_tipo_dispensa['nm_tipo'];
             // Componente curricular
             $componente = $componenteMapper->find($registro['ref_cod_disciplina']);
             // Dados para a url
             $url = 'educar_dispensa_disciplina_det.php';
             $options = array('query' => array('ref_cod_matricula' => $registro['ref_cod_matricula'], 'ref_cod_serie' => $registro['ref_cod_serie'], 'ref_cod_escola' => $registro['ref_cod_escola'], 'ref_cod_disciplina' => $registro['ref_cod_disciplina']));
             $this->addLinhas(array($urlHelper->l($componente->nome, $url, $options), $urlHelper->l($registro['ref_cod_tipo_dispensa'], $url, $options), $urlHelper->l($registro['data_cadastro_br'], $url, $options)));
         }
     }
     $this->addPaginador2('educar_dispensa_disciplina_lst.php', $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7)) {
         $this->array_botao_url[] = 'educar_dispensa_disciplina_cad.php?ref_cod_matricula=' . $this->ref_cod_matricula;
         $this->array_botao[] = 'Novo';
     }
     $this->array_botao_url[] = 'educar_matricula_det.php?cod_matricula=' . $this->ref_cod_matricula;
     $this->array_botao[] = 'Voltar';
     $this->largura = '100%';
 }
Ejemplo n.º 12
0
 /**
  * Configura botões padrão de clsCadastro
  * @return Core_Controller_Page_Abstract Provê interface fluída
  */
 public function configurarBotoes()
 {
     // Botão Cancelar (clsDetalhe e clsCadastro)
     if ($this->_hasOption('url_cancelar')) {
         $config = $this->getOption('url_cancelar');
         if (is_string($config)) {
             $this->url_cancelar = $config;
         } elseif (is_array($config)) {
             $this->url_cancelar = CoreExt_View_Helper_UrlHelper::url($config['path'], $config['options']);
         }
     }
     return $this;
 }
Ejemplo n.º 13
0
 function MakeMenu($linhaTemplate, $categoriaTemplate)
 {
     // Usa helper de Url para pegar o path da requisição
     require_once 'CoreExt/View/Helper/UrlHelper.php';
     $uri = explode('/', CoreExt_View_Helper_UrlHelper::url($_SERVER['REQUEST_URI'], array('components' => CoreExt_View_Helper_UrlHelper::URL_PATH)));
     $this->aberto = 0;
     $saida = '';
     $linha_nova = $linhaTemplate;
     $linha_nova_subtitulo = $categoriaTemplate;
     $super_usuario = '';
     $itens_menu = array();
     $autorizado_menu = array();
     @session_start();
     $id_usuario = $_SESSION['id_pessoa'];
     $opcoes_menu = $_SESSION['menu_opt'];
     $dba = new clsBanco();
     $dba->Consulta('
   SELECT
     ref_cod_menu_submenu
   FROM
     menu_funcionario
   WHERE
     ref_ref_cod_pessoa_fj = ' . $id_usuario);
     while ($dba->ProximoRegistro()) {
         list($aut) = $dba->Tupla();
         $autorizado_menu[] = $aut;
         if ($aut == 0) {
             $super_usuario = TRUE;
         }
     }
     $strAutorizado = implode(', ', $autorizado_menu);
     if (@$_SESSION['convidado']) {
         $strAutorizado = '999999';
     }
     session_write_close();
     $db = new clsBanco();
     if ($strAutorizado == '0' || $super_usuario) {
         if ($_GET['suspenso'] == 1 || $_SESSION['suspenso'] == 1 || $_SESSION['tipo_menu'] == 1) {
             $sql = "\n          SELECT\n            pai.nm_menu,\n            nome_menu.nm_menu AS nm_menu_pai,\n            pai.title AS title_pai,\n            sub.nm_submenu,\n            sub.arquivo,\n            sub.title,\n            pai.cod_menu_menu,\n            CASE\n              WHEN pai.ref_cod_menu_pai IS NULL\n                THEN 0\n              ELSE\n                1\n            END AS ref_menu_pai\n          FROM\n            menu_menu AS pai LEFT OUTER JOIN\n              menu_menu AS filho ON (filho.ref_cod_menu_pai = pai.cod_menu_menu AND pai.ref_cod_menu_pai = NULL),\n            menu_submenu AS sub,\n            menu_menu as nome_menu\n          WHERE\n            nome_menu.cod_menu_menu = COALESCE(pai.ref_cod_menu_pai,pai.cod_menu_menu)\n            AND sub.cod_sistema = '2'\n            AND pai.cod_menu_menu = sub.ref_cod_menu_menu\n            AND sub.cod_menu_submenu NOT IN (\n              SELECT\n                ref_cod_menu_submenu\n              FROM\n                pmicontrolesis.menu\n              WHERE\n                suprime_menu = 1\n                AND ref_cod_menu_submenu IS NOT NULL\n            )\n          ORDER BY\n            upper(nome_menu.nm_menu), ref_menu_pai, UPPER(pai.nm_menu), sub.nm_submenu";
         } else {
             $sql = "\n          SELECT\n            DISTINCT pai.nm_menu,\n            nome_menu.nm_menu AS nm_menu_pai,\n            pai.title AS title_pai,\n            sub.nm_submenu,\n            sub.arquivo,\n            sub.title,\n            pai.cod_menu_menu,\n            CASE\n              WHEN pai.ref_cod_menu_pai IS NULL\n                THEN 0\n              ELSE\n                1\n            END AS ref_menu_pai,\n            UPPER(nome_menu.nm_menu), UPPER(pai.nm_menu), sub.nm_submenu\n          FROM\n            menu_menu AS pai LEFT OUTER JOIN\n              menu_menu AS filho ON (filho.ref_cod_menu_pai = pai.cod_menu_menu),\n            menu_submenu AS sub,\n            menu_menu AS nome_menu\n          WHERE\n            nome_menu.cod_menu_menu = COALESCE(pai.ref_cod_menu_pai, pai.cod_menu_menu)\n            AND sub.cod_sistema = '2'\n            AND pai.cod_menu_menu = sub.ref_cod_menu_menu\n          ORDER BY\n            UPPER(nome_menu.nm_menu), ref_menu_pai, UPPER(pai.nm_menu), sub.nm_submenu";
         }
     } else {
         $query_lista = '';
         if ($strAutorizado) {
             $query_lista = "sub.cod_menu_submenu in ({$strAutorizado}) OR ";
         }
         $suspenso = '';
         if ($_GET['suspenso'] == 1 || $_SESSION['suspenso'] == 1 || $_SESSION['tipo_menu'] == 1) {
             $suspenso = " AND sub.cod_menu_submenu not in (select ref_cod_menu_submenu FROM pmicontrolesis.menu WHERE suprime_menu = 1 AND ref_cod_menu_submenu IS NOT NULL)";
         }
         if ($strAutorizado == '999999') {
             $sql = "\n          SELECT\n            pai.nm_menu,\n            nome_menu.nm_menu AS nm_menu_pai,\n            pai.title AS title_pai,\n            sub.nm_submenu,\n            sub.arquivo,\n            sub.title,\n            pai.cod_menu_menu,\n            CASE\n              WHEN pai.ref_cod_menu_pai IS NULL\n                THEN 0\n              ELSE\n               1\n            END AS ref_menu_pai\n          FROM\n            menu_menu AS pai LEFT OUTER JOIN menu_menu as filho ON (filho.ref_cod_menu_pai = pai.cod_menu_menu),\n            menu_submenu AS sub,\n            menu_menu AS nome_menu\n          WHERE\n            nome_menu.cod_menu_menu = COALESCE(pai.ref_cod_menu_pai, pai.cod_menu_menu)\n            AND sub.cod_sistema = '2'\n            AND pai.cod_menu_menu = sub.ref_cod_menu_menu\n            AND ({$query_lista}\n              sub.cod_menu_submenu IN (\n                SELECT\n                  sub2.cod_menu_submenu\n                FROM\n                  menu_submenu sub2\n                WHERE\n                  sub2.nivel='1'\n              )\n            )\n          ORDER BY\n            UPPER(nome_menu.nm_menu), ref_menu_pai, UPPER(pai.nm_menu), sub.nm_submenu";
         } else {
             $sql = "\n          SELECT\n            DISTINCT pai.nm_menu,\n            nome_menu.nm_menu AS nm_menu_pai,\n            pai.title AS title_pai,\n            sub.nm_submenu,\n            sub.arquivo,\n            sub.title,\n            pai.cod_menu_menu,\n            CASE\n              WHEN pai.ref_cod_menu_pai IS NULL\n                THEN 0\n              ELSE\n                1\n            END AS ref_menu_pai,\n            UPPER(nome_menu.nm_menu),\n            UPPER(pai.nm_menu)\n          FROM\n            menu_menu AS pai\n            LEFT OUTER JOIN menu_menu AS filho ON (filho.ref_cod_menu_pai = pai.cod_menu_menu),\n            menu_submenu AS sub,\n            menu_menu AS nome_menu\n          WHERE\n            nome_menu.cod_menu_menu = COALESCE(pai.ref_cod_menu_pai, pai.cod_menu_menu)\n            AND sub.cod_sistema = '2'\n            AND pai.cod_menu_menu = sub.ref_cod_menu_menu\n            AND ({$query_lista}\n              sub.cod_menu_submenu IN (\n                SELECT\n                  sub2.cod_menu_submenu\n                FROM\n                  menu_submenu sub2\n                WHERE\n                  sub2.nivel='2')\n            )\n            {$suspenso}\n          ORDER BY\n            UPPER(nome_menu.nm_menu), ref_menu_pai, UPPER(pai.nm_menu), sub.nm_submenu\n        ";
         }
     }
     $db->Consulta($sql);
     while ($db->ProximoRegistro()) {
         list($nome, $nomepai, $titlepai, $nomesub, $arquivo, $titlesub, $cod_submenu, $ref_menu_pai) = $db->Tupla();
         $itens_menu[] = array($nome, $nomepai, $titlepai, $nomesub, $arquivo, $titlesub, $cod_submenu, $ref_menu_pai);
     }
     $saida = '';
     $menuPaiAtual = '';
     foreach ($itens_menu as $item) {
         if ($item[0] != $menuPaiAtual) {
             $estilo_linha = 'nvp_cor_sim';
             $this->aberto = 0;
             $menuPaiId = $item[6];
             if (isset($_COOKIE['menu_' . $menuPaiId])) {
                 if ($_COOKIE['menu_' . $menuPaiId] == 'V') {
                     $this->aberto = 1;
                 }
             }
             // Define a ação para ser contrária ao status atual
             if ($this->aberto) {
                 $imagem = 'up2';
                 $acao = 0;
                 $simbolo = '-';
                 $title_acao = 'Fechar a categoria';
             } else {
                 $imagem = 'down2';
                 $acao = 1;
                 $simbolo = '+';
                 $title_acao = 'Abrir a categoria';
             }
             $saida = str_replace('<!-- #&MENUS&# -->', $submenus, $saida);
             $submenus = '';
             // Adiciona um menu pai
             $aux_temp = $linha_nova_subtitulo;
             $aux_temp = str_replace('<!-- #&NOME&# -->', $item[0], $aux_temp);
             $aux_temp = str_replace('<!-- #&ALT&# -->', $item[3], $aux_temp);
             $aux_temp = str_replace('<!-- #&ID&# -->', $item[6], $aux_temp);
             $aux_temp = str_replace('<!-- #&ACAO&# -->', $acao, $aux_temp);
             $aux_temp = str_replace('<!-- #&SIMBOLO&# -->', $simbolo, $aux_temp);
             $aux_temp = str_replace('<!-- #&TITLE_ACAO&# -->', $title_acao, $aux_temp);
             $aux_temp = str_replace('<!-- #&MENUPAI&# -->', $item[0], $aux_temp);
             $aux_temp = str_replace('<!-- #&IMAGEM&# -->', $imagem, $aux_temp);
             $aux_temp = str_replace('<!-- #&IDMENUPAI&# -->', $menuPaiId, $aux_temp);
             $style = $this->aberto == 1 ? '' : 'style="display:none;"';
             $aux_temp = str_replace('<!-- #&STYLE&# -->', $style, $aux_temp);
             $saida .= $aux_temp;
             // Define que este é o menu pai atual
             $menuPaiAtual = $item[0];
         }
         $aux_temp = $linha_nova;
         if (substr($item[4], 0, 5) == 'http:') {
             $target = '_blank';
         } else {
             $target = '_top';
         }
         $estilo_linha = $estilo_linha == 'nvp_cor_sim' ? 'nvp_cor_nao' : 'nvp_cor_sim';
         // Path do item de menu
         $path = $item[4];
         // Corrige o path usando caminhos relativos para permitir a inclusão
         // de itens no menu que apontem para um módulo
         if ($uri[1] == 'module') {
             if (0 === strpos($path, 'module')) {
                 $path = '../../' . $path;
             } else {
                 $path = '../../intranet/' . $path;
             }
         } elseif (0 === strpos($path, 'module')) {
             $path = '../../' . $path;
         }
         $aux_temp = str_replace('<!-- #&CLASS&# -->', $estilo_linha, $aux_temp);
         $aux_temp = str_replace('<!-- #&NOME&# -->', $item[3], $aux_temp);
         $aux_temp = str_replace('<!-- #&LINK&# -->', $path, $aux_temp);
         $aux_temp = str_replace('<!-- #&ALT&# -->', $item[3], $aux_temp);
         $aux_temp = str_replace('<!-- #&TARGET&# -->', $target, $aux_temp);
         $submenus .= $aux_temp;
     }
     $saida = str_replace('<!-- #&MENUS&# -->', $submenus, $saida);
     return $saida;
 }
Ejemplo n.º 14
0
 function Gerar()
 {
     @session_start();
     $this->__pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->__titulo = 'Bairro - Listagem';
     // Passa todos os valores obtidos no GET para atributos do objeto
     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('Nome', 'Zona Localização', 'Município', 'Estado', 'Pais'));
     // Filtros de Foreign Keys
     $opcoes = array('' => 'Selecione');
     if (class_exists('clsPais')) {
         $objTemp = new clsPais();
         $lista = $objTemp->lista(FALSE, FALSE, FALSE, FALSE, FALSE, 'nome ASC');
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes[$registro['idpais']] = $registro['nome'];
             }
         }
     } else {
         echo "<!--\nErro\nClasse clsPais nao encontrada\n-->";
         $opcoes = array('' => 'Erro na geração');
     }
     $this->campoLista('idpais', 'Pais', $opcoes, $this->idpais, '', FALSE, '', '', FALSE, FALSE);
     $opcoes = array('' => 'Selecione');
     if (class_exists('clsUf')) {
         if ($this->idpais) {
             $objTemp = new clsUf();
             $lista = $objTemp->lista(FALSE, FALSE, $this->idpais, FALSE, FALSE, 'nome ASC');
             if (is_array($lista) && count($lista)) {
                 foreach ($lista as $registro) {
                     $opcoes[$registro['sigla_uf']] = $registro['nome'];
                 }
             }
         }
     } else {
         echo "<!--\nErro\nClasse clsUf nao encontrada\n-->";
         $opcoes = array('' => 'Erro na geração');
     }
     $this->campoLista('sigla_uf', 'Estado', $opcoes, $this->sigla_uf, '', FALSE, '', '', FALSE, FALSE);
     $opcoes = array('' => 'Selecione');
     if (class_exists('clsMunicipio')) {
         if ($this->sigla_uf) {
             $objTemp = new clsMunicipio();
             $lista = $objTemp->lista(FALSE, $this->sigla_uf, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 'nome ASC');
             if (is_array($lista) && count($lista)) {
                 foreach ($lista as $registro) {
                     $opcoes[$registro['idmun']] = $registro['nome'];
                 }
             }
         }
     } else {
         echo "<!--\nErro\nClasse clsMunicipio nao encontrada\n-->";
         $opcoes = array('' => 'Erro na geração');
     }
     $this->campoLista('idmun', 'Município', $opcoes, $this->idmun, '', FALSE, '', '', FALSE, FALSE);
     // Outros filtros
     $this->campoTexto('nome', 'Nome', $this->nome, 30, 255, FALSE);
     // Paginador
     $this->__limite = 20;
     $this->__offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->__limite - $this->__limite : 0;
     $obj_bairro = new clsPublicBairro();
     $obj_bairro->setOrderby('nome ASC');
     $obj_bairro->setLimite($this->__limite, $this->__offset);
     $lista = $obj_bairro->lista($this->idmun, NULL, $this->nome, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, $this->idpais, $this->sigla_uf);
     $total = $obj_bairro->_total;
     // Zona Localização.
     $zona = App_Model_ZonaLocalizacao::getInstance();
     // UrlHelper.
     $url = CoreExt_View_Helper_UrlHelper::getInstance();
     $options = array('query' => array('idbai' => NULL));
     // Monta a lista.
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             $zl = $zona->getValue($registro['zona_localizacao']);
             $options['query']['idbai'] = $registro['idbai'];
             $this->addLinhas(array($url->l($registro['nome'], 'public_bairro_det.php', $options), $url->l($zl, 'public_bairro_det.php', $options), $url->l($registro['nm_municipio'], 'public_bairro_det.php', $options), $url->l($registro['nm_estado'], 'public_bairro_det.php', $options), $url->l($registro['nm_pais'], 'public_bairro_det.php', $options)));
         }
     }
     $this->addPaginador2('public_bairro_lst.php', $total, $_GET, $this->nome, $this->__limite);
     $this->acao = 'go("public_bairro_cad.php")';
     $this->nome_acao = 'Novo';
     $this->largura = '100%';
 }
Ejemplo n.º 15
0
 /**
  * @see clsCadastro#Gerar()
  */
 public function Gerar()
 {
     // Dados da matrícula
     $matricula = $this->_service->getOption('matriculaData');
     // Nome do aluno
     $nome = $matricula['nome'];
     // Nome da escola
     $escola = new clsPmieducarEscola($matricula['ref_ref_cod_escola']);
     $escola = $escola->detalhe();
     $escola = ucwords(strtolower($escola['nome']));
     // Nome do curso
     $curso = $matricula['curso_nome'];
     // Nome da série
     $serie = $matricula['serie_nome'];
     // Nome da turma
     $turma = $matricula['turma_nome'];
     // Situação da matrícula
     $situacao = App_Model_MatriculaSituacao::getInstance();
     $situacao = $situacao->getValue($matricula['aprovado']);
     // Dados da matrícula
     $this->addDetalhe(array('Aluno', $nome));
     $this->addDetalhe(array('Escola', $escola));
     $this->addDetalhe(array('Curso', $curso));
     $this->addDetalhe(array('Série/Turma', $serie . ' / ' . $turma));
     $this->addDetalhe(array('Situação', $situacao));
     // Booleano para saber se o tipo de nota é nenhum.
     $nenhumaNota = $this->_service->getRegra()->get('tipoNota') == RegraAvaliacao_Model_Nota_TipoValor::NENHUM;
     // Booleano para saber o tipo de presença em que ocorre apuração
     $porComponente = $this->_service->getRegra()->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::POR_COMPONENTE;
     // Dados da regra de avaliação
     $this->addDetalhe(array('Regra avaliação', $this->_service->getRegra()));
     $this->addDetalhe(array('Apuração de falta', $this->_service->getRegra()->tipoPresenca));
     $this->addDetalhe(array('Parecer descritivo', $this->_service->getRegra()->parecerDescritivo));
     $this->addDetalhe(array('Progressão', $this->_service->getRegra()->tipoProgressao));
     if ($nenhumaNota) {
         $media = 'Não usa nota';
     } else {
         $media = $this->_service->getRegra()->media;
     }
     $this->addDetalhe(array('Média', $media));
     // Cria um array com a quantidade de etapas de 1 a n
     $etapas = range(1, $this->_service->getOption('etapas'), 1);
     // Atributos para a tabela
     $attributes = array('style' => 'background-color: #A1B3BD; padding: 5px; text-align: center');
     // Atributos para a tabela de notas/faltas
     $zebra = array(0 => array('style' => 'background-color: #E4E9ED'), 1 => array('style' => 'background-color: #FFFFFF'));
     // Helper para criar links e urls
     $url = CoreExt_View_Helper_UrlHelper::getInstance();
     // Usa helper de tabela para criar a tabela de notas/faltas
     $table = CoreExt_View_Helper_TableHelper::getInstance();
     // Enum para situação de matrícula
     $situacao = App_Model_MatriculaSituacao::getInstance();
     // Situação do boletim do aluno
     $sit = $this->_situacao;
     // Títulos da tabela
     $labels = array();
     $labels[] = array('data' => 'Disciplinas', 'attributes' => $attributes);
     foreach ($etapas as $etapa) {
         $data = array('data' => sprintf('Etapa %d', $etapa));
         if ($nenhumaNota) {
             $data['colspan'] = 1;
         } else {
             $data['colspan'] = $porComponente ? 2 : 1;
         }
         $data['attributes'] = $attributes;
         $labels[] = $data;
     }
     // Flag para auxiliar na composição da tabela em casos onde o parecer
     // descritivo é lançado anualmente e por componente
     $parecerComponenteAnual = FALSE;
     $colspan = 0;
     if ($this->_service->getRegra()->get('parecerDescritivo') == RegraAvaliacao_Model_TipoParecerDescritivo::ANUAL_COMPONENTE) {
         if (TRUE == $this->_componenteEncerrado($sit->nota->componentesCurriculares)) {
             $parecerComponenteAnual = TRUE;
             $colspan++;
         }
     }
     // Colspan para tabela com labels e sublabels
     $colspan += $porComponente && $sit->recuperacao ? 4 : 3;
     if ($nenhumaNota) {
         $colspan--;
     }
     if (!$nenhumaNota) {
         $labels[] = array('data' => $porComponente ? '' : 'Média', 'attributes' => $attributes, 'colspan' => $porComponente ? $colspan : 1);
     }
     // Inclui coluna para % de presença geral.
     if (!$porComponente) {
         if ($sit->recuperacao) {
             $labels[] = array('data' => 'Exame', 'attributes' => $attributes);
         }
         if ($parecerComponenteAnual) {
             $labels[] = array('data' => 'Parecer', 'attributes' => $attributes);
         }
         $labels[] = array('data' => 'Presença', 'attributes' => $attributes);
         $labels[] = array('data' => 'Situação', 'attributes' => $attributes);
     }
     $table->addHeaderRow($labels);
     // Cria sub-header caso tenha faltas lançadas por componentes
     if ($porComponente) {
         $subLabels = array();
         $subLabels[] = array('attributes' => $attributes);
         for ($i = 0, $loop = count($etapas); $i < $loop; $i++) {
             if (!$nenhumaNota) {
                 $subLabels[] = array('data' => 'Nota', 'attributes' => $attributes);
             }
             $subLabels[] = array('data' => 'Falta', 'attributes' => $attributes);
         }
         if (!$nenhumaNota) {
             $subLabels[] = array('data' => 'Média', 'attributes' => $attributes);
         }
         if ($sit->recuperacao) {
             $subLabels[] = array('data' => 'Exame', 'attributes' => $attributes);
         }
         if ($porComponente) {
             if ($parecerComponenteAnual) {
                 $subLabels[] = array('data' => 'Parecer', 'attributes' => $attributes);
             }
             $subLabels[] = array('data' => 'Presença', 'attributes' => $attributes);
             $subLabels[] = array('data' => 'Situação', 'attributes' => $attributes);
         }
         $table->addHeaderRow($subLabels);
     }
     // Atributos usados pelos itens de dados
     $attributes = array('style' => 'padding: 5px; text-align: center');
     // Notas
     $componentes = $this->_service->getComponentes();
     $notasComponentes = $this->_service->getNotasComponentes();
     $mediasSituacoes = $this->_situacao->nota;
     $mediasComponentes = $this->_service->getMediasComponentes();
     $faltasComponentes = $this->_service->getFaltasComponentes();
     // Calcula as porcentagens de presença
     $faltasStats = $this->_service->getSituacaoFaltas();
     // Texto do link
     if ($nenhumaNota) {
         $linkText = 'falta';
         $linkPath = 'falta';
     } else {
         $linkText = $porComponente ? 'nota/falta' : 'nota';
         $linkPath = 'nota';
     }
     // Parâmetros para o link de nota/falta nova
     $newLink = array('text' => 'Lançar ' . $linkText, 'path' => $linkPath, 'query' => array('matricula' => $matricula['cod_matricula'], 'componenteCurricular' => 0));
     $iteration = 0;
     foreach ($componentes as $id => $componente) {
         $data = array();
         // Nome do componente curricular
         $data[] = array('data' => $componente, 'attributes' => array('style' => 'padding: 5px; text-align: left'));
         $notas = $notasComponentes[$id];
         $mediaSituacao = $mediasSituacoes->componentesCurriculares[$id];
         $medias = $mediasComponentes[$id];
         $faltas = $faltasComponentes[$id];
         $faltaStats = $faltasStats->componentesCurriculares[$id];
         $parecer = NULL;
         // Caso os pareceres sejam por componente e anuais, recupera a instância
         if ($parecerComponenteAnual) {
             $parecer = $this->_service->getPareceresComponentes();
             $parecer = $parecer[$id];
         }
         if ($porComponente == TRUE) {
             $new = $url->l('Lançar nota', 'nota', array('query' => array('matricula' => $matricula['cod_matricula'], 'componenteCurricular' => $id)));
         }
         $newLink['query']['componenteCurricular'] = $id;
         $new = $url->l($newLink['text'], $newLink['path'], array('query' => $newLink['query']));
         $update = array('query' => array('matricula' => $matricula['cod_matricula'], 'componenteCurricular' => $id, 'etapa' => 0));
         // Lista as notas do componente por etapa
         for ($i = 0, $loop = count($etapas); $i < $loop; $i++) {
             $nota = $falta = NULL;
             if (isset($notas[$i])) {
                 $update['query']['etapa'] = $notas[$i]->etapa;
                 $nota = $url->l($notas[$i]->notaArredondada, 'nota', $update);
             }
             if (isset($faltas[$i])) {
                 $update['query']['etapa'] = $faltas[$i]->etapa;
                 $linkPath = $nenhumaNota ? 'falta' : 'nota';
                 $falta = $url->l($faltas[$i]->quantidade, $linkPath, $update);
             }
             /*
              * Exibição muito dinâmica. Em resumo, os casos são:
              *
              * 1. nota & falta componente
              * 2. nota
              * 3. falta componente
              * 4. falta geral
              */
             if ($nenhumaNota) {
                 $colspan = 1;
             } elseif (!$nenhumaNota && $porComponente && is_null($falta)) {
                 $colspan = 2;
             } else {
                 $colspan = 1;
             }
             // Caso 1.
             if (!$nenhumaNota) {
                 if ($nota) {
                     // Caso 2: resolvido com colspan.
                     $data[] = array('data' => $nota, 'attributes' => $attributes, 'colspan' => $colspan);
                     if ($porComponente) {
                         $data[] = array('data' => $falta, 'attributes' => $attributes);
                     }
                 } else {
                     $data[] = array('data' => $new, 'attributes' => $attributes, 'colspan' => $colspan);
                     $new = '';
                 }
             } elseif ($nenhumaNota && $porComponente) {
                 if ($falta) {
                     $data[] = array('data' => $falta, 'attributes' => $attributes, 'colspan' => $colspan);
                 } else {
                     $data[] = array('data' => $new, 'attributes' => $attributes, 'colspan' => $colspan);
                     $new = '';
                 }
             } else {
                 $data[] = array('data' => '', 'attributes' => $attributes);
             }
         }
         // Média no componente curricular
         if (!$nenhumaNota) {
             $media = $medias[0]->mediaArredondada . ($medias[0]->etapa == 'Rc' ? ' (Rc)' : '');
             $data[] = array('data' => $media, 'attributes' => $attributes);
         }
         // Adiciona uma coluna extra caso aluno esteja em exame em alguma componente curricular
         if ($sit->recuperacao) {
             if ($mediaSituacao->situacao == App_Model_MatriculaSituacao::EM_EXAME || $mediaSituacao->situacao == App_Model_MatriculaSituacao::APROVADO_APOS_EXAME || $mediaSituacao->situacao == App_Model_MatriculaSituacao::REPROVADO) {
                 $link = $newLink;
                 $link['query']['componenteCurricular'] = $id;
                 $link['query']['etapa'] = 'Rc';
                 $notaRec = $i;
                 if (isset($notas[$notaRec]) && $notas[$notaRec]->etapa == 'Rc') {
                     $link['text'] = $notas[$notaRec]->notaArredondada;
                 }
                 $recuperacaoLink = $url->l($link['text'], $link['path'], array('query' => $link['query']));
                 $data[] = array('data' => $recuperacaoLink, 'attributes' => $attributes);
             } else {
                 $data[] = array('data' => '', 'attributes' => $attributes);
             }
         }
         // Adiciona uma coluna extra caso o parecer seja por componente ao final do ano
         if ($parecerComponenteAnual) {
             $link = array('text' => '', 'path' => 'parecer', 'query' => array('matricula' => $this->getRequest()->matricula));
             if (0 == count($parecer)) {
                 $text = 'Lançar';
             } else {
                 $text = 'Editar';
             }
             $link['query']['componenteCurricular'] = $id;
             // @todo Constante ou CoreExt_Enum
             $link['query']['etapa'] = 'An';
             $link = $url->l($text, $link['path'], array('query' => $link['query']));
             if (isset($mediaSituacao->situacao) && $mediaSituacao->situacao != App_Model_MatriculaSituacao::EM_ANDAMENTO) {
                 $data[] = array('data' => $link, 'attributes' => $attributes);
             } else {
                 $data[] = array('data' => '', 'attributes' => $attributes);
             }
         }
         // Informações extras como porcentagem de presença e situação do aluno
         if ($porComponente) {
             $data[] = array('data' => sprintf('%.2f%%', $faltaStats->porcentagemPresenca), 'attributes' => $attributes);
         } else {
             $data[] = array('data' => '', 'attributes' => $attributes);
         }
         $data[] = array('data' => $situacao->getValue($mediaSituacao->situacao), 'attributes' => $attributes);
         $iteration++;
         $class = $iteration % 2;
         $table->addBodyRow($data, $zebra[$class]);
     }
     $newLink = array('text' => 'Lançar falta', 'path' => 'falta', 'query' => array('matricula' => $matricula['cod_matricula']));
     // Situação geral das faltas
     $data = array(0 => array('data' => 'Faltas', 'attributes' => array('style' => 'padding: 5px; text-align: left')));
     $faltas = $this->_service->getFaltasGerais();
     $new = $url->l($newLink['text'], $newLink['path'], array('query' => $newLink['query']));
     // Listas faltas (para faltas no geral)
     for ($i = 1, $loop = count($etapas); $i <= $loop; $i++) {
         if (isset($faltas[$i])) {
             $link = $newLink;
             $link['query']['etapa'] = $faltas[$i]->etapa;
             $link = $porComponente ? '' : $url->l($faltas[$i]->quantidade, $link['path'], array('query' => $link['query']));
             $data[] = array('data' => $link, 'attributes' => $attributes);
             if ($porComponente) {
                 $data[] = array('data' => '', 'attributes' => $attributes);
             }
         } else {
             $new = $porComponente ? '' : $new;
             $data[] = array('data' => $new, 'attributes' => $attributes);
             $new = '';
             if ($porComponente && !$nenhumaNota) {
                 $data[] = array('data' => '', 'attributes' => $attributes);
             }
         }
     }
     if (!$nenhumaNota) {
         $data[] = array();
     }
     if ($sit->recuperacao) {
         $data[] = array('data' => '', 'attributes' => $attributes);
     }
     if ($parecerComponenteAnual) {
         $data[] = array('data' => '', 'attributes' => $attributes);
     }
     // Porcentagem presença
     $data[] = array('data' => sprintf('%.2f%%', $faltasStats->porcentagemPresenca), 'attributes' => $attributes);
     $data[] = array('data' => $situacao->getValue($sit->falta->situacao), 'attributes' => $attributes);
     $table->addFooterRow($data, $zebra[$class ^ 1]);
     // Adiciona linha com links para lançamento de parecer descritivo geral por etapa
     if ($this->_service->getRegra()->get('parecerDescritivo') == RegraAvaliacao_Model_TipoParecerDescritivo::ETAPA_GERAL) {
         $newLink = array('text' => 'Lançar parecer', 'path' => 'parecer', 'query' => array('matricula' => $matricula['cod_matricula']));
         $data = array(0 => array('data' => 'Pareceres', 'attributes' => array('style' => 'padding: 5px; text-align: left')));
         $pareceres = $this->_service->getPareceresGerais();
         for ($i = 1, $loop = count($etapas); $i <= $loop; $i++) {
             if (isset($pareceres[$i])) {
                 $link = $newLink;
                 $link['text'] = 'Editar parecer';
                 $link['query']['etapa'] = $i;
                 $data[] = array('data' => $url->l($link['text'], $link['path'], array('query' => $link['query'])), 'attributes' => $attributes);
             } else {
                 if ('' == $newLink) {
                     $link = '';
                 } else {
                     $link = $url->l($newLink['text'], $newLink['path'], array('query' => $newLink['query']));
                 }
                 $data[] = array('data' => $link, 'attributes' => $attributes);
                 $newLink = '';
             }
         }
         if ($sit->recuperacao) {
             $data[] = array('data' => '', 'attributes' => $attributes);
         }
         $data[] = array('data' => '', 'attributes' => $attributes);
         $data[] = array('data' => '', 'attributes' => $attributes);
         $table->addFooterRow($data);
     }
     // Adiciona tabela na página
     $this->addDetalhe(array('Disciplinas', '<div id="disciplinas">' . $table . '</div>'));
     // Adiciona link para lançamento de parecer descritivo anual geral
     if (FALSE == $sit->andamento && $this->_service->getRegra()->get('parecerDescritivo') == RegraAvaliacao_Model_TipoParecerDescritivo::ANUAL_GERAL) {
         if (0 == count($this->_service->getPareceresGerais())) {
             $label = 'Lançar';
         } else {
             $label = 'Editar';
         }
         $link = array('text' => $label . ' parecer descritivo do aluno', 'path' => 'parecer', 'query' => array('matricula' => $this->getRequest()->matricula));
         $this->addDetalhe(array('Parecer descritivo anual', $url->l($link['text'], $link['path'], array('query' => $link['query']))));
     }
     // Caso o tipo de progressão seja manual, a situação das notas/faltas não
     // esteja mais em "andamento" e a matrícula esteja em andamento, exibe
     // botões de ação
     if ($this->_service->getRegra()->get('tipoProgressao') == RegraAvaliacao_Model_TipoProgressao::NAO_CONTINUADA_MANUAL && FALSE == $sit->andamento && $matricula['aprovado'] == App_Model_MatriculaSituacao::EM_ANDAMENTO) {
         $link = array('text' => 'sim', 'path' => 'boletim', 'query' => array('matricula' => $this->getRequest()->matricula, 'promove' => 1));
         $sim = '<span class="confirm yes">' . $url->l($link['text'], $link['path'], array('query' => $link['query'])) . '</span>';
         $link['text'] = 'não (retém o aluno)';
         $link['query']['promove'] = 0;
         $nao = '<span class="confirm no">' . $url->l($link['text'], $link['path'], array('query' => $link['query'])) . '</span>';
         $links = '<div style="padding: 5px 0 5px 0">' . $sim . $nao . '</div>';
         $this->addDetalhe(array('Promover aluno?', $links));
     }
 }
Ejemplo n.º 16
0
 /**
  * Cria o menu suspenso dos subsistemas Escola e Biblioteca.
  *
  * @todo Refatorar lógica do primeiro par if/else, duplicação
  * @return bool|string Retorna FALSE em caso de erro
  */
 function makeMenuSuspenso()
 {
     // Usa helper de Url para pegar o path da requisição
     require_once 'CoreExt/View/Helper/UrlHelper.php';
     $uri = explode('/', CoreExt_View_Helper_UrlHelper::url($_SERVER['REQUEST_URI'], array('components' => CoreExt_View_Helper_UrlHelper::URL_PATH)));
     @session_start();
     $idpes = $_SESSION['id_pessoa'];
     @session_write_close();
     $submenu = array();
     $menu_tutor = '';
     if ($this->processoAp) {
         $menu_atual = $this->db()->UnicoCampo("SELECT ref_cod_menu_menu FROM menu_submenu WHERE cod_menu_submenu = '{$this->processoAp}'");
         if ($menu_atual) {
             $this->db()->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$menu_atual}'");
             while ($this->db()->ProximoRegistro()) {
                 $tupla = $this->db()->Tupla();
                 $submenu[] = $tupla['cod_menu_submenu'];
             }
             $where = implode(" OR ref_cod_menu_submenu = ", $submenu);
             $where = "ref_cod_menu_submenu = {$where}";
             $menu_tutor = $this->db()->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE {$where} LIMIT 1 OFFSET 0");
         } else {
             $this->prog_alert .= "O menu pai do processo AP {$this->processoAp} está voltando vazio (cod_menu inexistente?).<br>";
         }
     } elseif ($_SESSION['menu_atual']) {
         $this->db()->Consulta("SELECT cod_menu_submenu FROM menu_submenu WHERE ref_cod_menu_menu = '{$_SESSION['menu_atual']}'");
         while ($this->db()->ProximoRegistro()) {
             $tupla = $this->db()->Tupla();
             $submenu[] = $tupla['cod_menu_submenu'];
         }
         $where = implode(" OR ref_cod_menu_submenu = ", $submenu);
         $where = "ref_cod_menu_submenu = {$where}";
         $menu_tutor = $this->db()->UnicoCampo("SELECT ref_cod_tutormenu FROM pmicontrolesis.menu WHERE {$where} LIMIT 1 OFFSET 0");
     }
     if ($menu_tutor) {
         $obj_menu_suspenso = new clsMenuSuspenso();
         $lista_menu = $obj_menu_suspenso->listaNivel($menu_tutor, $idpes);
         $lista_menu_suspenso = $lista_menu;
         if ($lista_menu_suspenso) {
             for ($i = 0, $loop = count($lista_menu_suspenso); $i < $loop; $i++) {
                 $achou = FALSE;
                 if (!$lista_menu_suspenso[$i]['ref_cod_menu_submenu']) {
                     foreach ($lista_menu as $id => $menu) {
                         if ($menu['ref_cod_menu_pai'] == $lista_menu_suspenso[$i]['cod_menu']) {
                             $achou = TRUE;
                         }
                     }
                     if (!$achou) {
                         unset($lista_menu[$i]);
                     }
                 }
             }
             $saida = '<script type="text/javascript">';
             $saida .= 'array_menu = new Array(); array_id = new Array();';
             foreach ($lista_menu as $menu_suspenso) {
                 $ico_menu = '';
                 if (is_numeric($menu_suspenso['ref_cod_ico'])) {
                     $this->db()->Consulta("SELECT caminho FROM portal.imagem WHERE cod_imagem = {$menu_suspenso['ref_cod_ico']} ");
                     if ($this->db()->ProximoRegistro()) {
                         list($ico_menu) = $this->db()->Tupla();
                         $ico_menu = "imagens/banco_imagens/{$ico_menu}";
                     }
                 }
                 $alvo = $menu_suspenso['alvo'] ? $menu_suspenso['alvo'] : '_self';
                 // Corrige o path usando caminhos relativos para permitir a inclusão
                 // de itens no menu que apontem para um módulo
                 if ($uri[1] == 'module') {
                     if (0 === strpos($menu_suspenso['caminho'], 'module')) {
                         $menu_suspenso['caminho'] = '../../' . $menu_suspenso['caminho'];
                     } else {
                         $menu_suspenso['caminho'] = '../../intranet/' . $menu_suspenso['caminho'];
                     }
                 } elseif (0 === strpos($menu_suspenso['caminho'], 'module')) {
                     $menu_suspenso['caminho'] = '../../' . $menu_suspenso['caminho'];
                 }
                 $saida .= "array_menu[array_menu.length] = new Array(\"{$menu_suspenso['tt_menu']}\",{$menu_suspenso['cod_menu']},'{$menu_suspenso['ref_cod_menu_pai']}','', '{$ico_menu}', '{$menu_suspenso['caminho']}', '{$alvo}');";
                 if (!$menu_suspenso['ref_cod_menu_pai']) {
                     $saida .= "array_id[array_id.length] = {$menu_suspenso['cod_menu']};";
                 }
             }
             $saida .= "</script>";
         }
         $saida .= "<script type=\"text/javascript\">\n          setTimeout(\"setXY();\",150);\n          MontaMenu();\n        </script>";
         return $saida;
     }
     return FALSE;
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->ref_cod_servidor = $_GET['ref_cod_servidor'];
     $this->ref_cod_instituicao = $_GET['ref_cod_instituicao'];
     $this->titulo = 'Servidor Formacao - Listagem';
     // passa todos os valores obtidos no GET para atributos do objeto
     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('Nome Formação', 'Tipo'));
     $this->campoOculto('ref_cod_servidor', $this->ref_cod_servidor);
     $this->campoOculto('ref_cod_instituicao', $this->ref_cod_instituicao);
     // Filtros
     $this->campoTexto('nm_formacao', 'Nome da Formação', $this->nm_formacao, 30, 255, FALSE);
     $opcoes = array('' => 'Selecione', 'C' => 'Cursos', 'T' => 'Títulos', 'O' => 'Concursos');
     $this->campoLista('tipo', 'Tipo de Formação', $opcoes, $this->tipo);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_servidor_formacao = new clsPmieducarServidorFormacao();
     $obj_servidor_formacao->setOrderby('nm_formacao ASC');
     $obj_servidor_formacao->setLimite($this->limite, $this->offset);
     if (!isset($this->tipo)) {
         $this->tipo = NULL;
     }
     $lista = $obj_servidor_formacao->lista(NULL, NULL, NULL, $this->ref_cod_servidor, $this->nm_formacao, $this->tipo, NULL, NULL, NULL, 1);
     $total = $obj_servidor_formacao->_total;
     // UrlHelper
     $url = CoreExt_View_Helper_UrlHelper::getInstance();
     $path = 'educar_servidor_formacao_det.php';
     // Monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             // Pega detalhes de foreign_keys
             if (class_exists('clsPmieducarUsuario')) {
                 $obj_ref_usuario_exc = new clsPmieducarUsuario($registro['ref_usuario_exc']);
                 $det_ref_usuario_exc = $obj_ref_usuario_exc->detalhe();
                 $registro['ref_usuario_exc'] = $det_ref_usuario_exc['data_cadastro'];
             } else {
                 $registro['ref_usuario_exc'] = 'Erro na geracao';
             }
             if (class_exists('clsPmieducarServidor')) {
                 $obj_ref_cod_servidor = new clsPmieducarServidor($registro['ref_cod_servidor']);
                 $det_ref_cod_servidor = $obj_ref_cod_servidor->detalhe();
                 $registro['ref_cod_servidor'] = $det_ref_cod_servidor['cod_servidor'];
             } else {
                 $registro['ref_cod_servidor'] = 'Erro na geracao';
             }
             if ($registro['tipo'] == 'C') {
                 $registro['tipo'] = 'Curso';
             } elseif ($registro['tipo'] == 'T') {
                 $registro['tipo'] = 'Título';
             } else {
                 $registro['tipo'] = 'Concurso';
             }
             $options = array('query' => array('cod_formacao' => $registro['cod_formacao']));
             $this->addLinhas(array($url->l($registro['nm_formacao'], $path, $options), $url->l($registro['tipo'], $path, $options)));
             $this->tipo = '';
         }
     }
     $this->addPaginador2('educar_servidor_formacao_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[] = sprintf('educar_servidor_formacao_cad.php?ref_cod_servidor=%d&ref_cod_instituicao=%d', $this->ref_cod_servidor, $this->ref_cod_instituicao);
     }
     $this->array_botao[] = 'Voltar';
     $this->array_botao_url[] = sprintf('educar_servidor_det.php?cod_servidor=%d&ref_cod_instituicao=%d', $this->ref_cod_servidor, $this->ref_cod_instituicao);
     $this->largura = '100%';
 }