Пример #1
0
 protected function inputOptions($options)
 {
     $resources = $options['resources'];
     $instituicaoId = $this->getInstituicaoId($options['instituicaoId']);
     $escolaId = $this->getEscolaId($options['escolaId']);
     $serieId = $this->getSerieId($options['serieId']);
     $ano = $this->viewInstance->ano;
     $userId = $this->getCurrentUserId();
     $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId);
     if ($escolaId and $serieId and empty($resources) and $isProfessor) {
         $turmas = Portabilis_Business_Professor::turmasAlocado($escolaId, $serieId, $userId);
         $resources = Portabilis_Array_Utils::setAsIdValue($turmas, 'id', 'nome');
     } elseif ($escolaId && $serieId && empty($resources)) {
         $resources = App_Model_IedFinder::getTurmas($escolaId, $serieId);
     }
     // caso no letivo esteja definido para filtrar turmas por ano,
     // somente exibe as turmas do ano letivo.
     if ($escolaId && $ano && $this->turmasPorAno($escolaId, $ano)) {
         foreach ($resources as $id => $nome) {
             $turma = new clsPmieducarTurma();
             $turma->cod_turma = $id;
             $turma = $turma->detalhe();
             if ($turma['ano'] != $ano) {
                 unset($resources[$id]);
             }
         }
     }
     return $this->insertOption(null, "Selecione uma turma", $resources);
 }
Пример #2
0
 /**
  * @see CoreExt_Entity_Validatable#getDefaultValidatorCollection()
  */
 public function getDefaultValidatorCollection()
 {
     // Enums
     $tipoNotaValor = RegraAvaliacao_Model_Nota_TipoValor::getInstance();
     $tipoProgressao = RegraAvaliacao_Model_TipoProgressao::getInstance();
     $tipoParecerDescritivo = RegraAvaliacao_Model_TipoParecerDescritivo::getInstance();
     $tipoPresenca = RegraAvaliacao_Model_TipoPresenca::getInstance();
     // ids de fórmulas de média
     $formulaMedia = $this->getDataMapper()->findFormulaMediaFinal();
     $formulaMedia = CoreExt_Entity::entityFilterAttr($formulaMedia, 'id');
     // ids de fórmulas de recuperação
     $formulaRecuperacao = $this->getDataMapper()->findFormulaMediaRecuperacao();
     $formulaRecuperacao = CoreExt_Entity::entityFilterAttr($formulaRecuperacao, 'id');
     $formulaRecuperacao[0] = NULL;
     // ids de tabelas de arredondamento
     $tabelas = $this->getDataMapper()->findTabelaArredondamento($this);
     $tabelas = CoreExt_Entity::entityFilterAttr($tabelas, 'id');
     // Instituições
     $instituicoes = array_keys(App_Model_IedFinder::getInstituicoes());
     // Fórmula de média é obrigatória?
     $isFormulaMediaRequired = TRUE;
     // Média é obrigatória?
     $isMediaRequired = TRUE;
     if ($this->get('tipoNota') == RegraAvaliacao_Model_Nota_TipoValor::NENHUM) {
         $isFormulaMediaRequired = FALSE;
         $isMediaRequired = FALSE;
         // Aceita somente o valor NULL quando o tipo de nota é Nenhum.
         $formulaMedia = $formulaMedia + array(NULL);
     }
     return array('instituicao' => new CoreExt_Validate_Choice(array('choices' => $instituicoes)), 'nome' => new CoreExt_Validate_String(array('min' => 5, 'max' => 50)), 'formulaMedia' => new CoreExt_Validate_Choice(array('choices' => $formulaMedia, 'required' => $isFormulaMediaRequired)), 'formulaRecuperacao' => new CoreExt_Validate_Choice(array('choices' => $formulaRecuperacao, 'required' => FALSE)), 'tipoNota' => new CoreExt_Validate_Choice(array('choices' => $tipoNotaValor->getKeys())), 'tipoProgressao' => new CoreExt_Validate_Choice(array('choices' => $tipoProgressao->getKeys())), 'tabelaArredondamento' => new CoreExt_Validate_Choice(array('choices' => $tabelas, 'choice_error' => 'A tabela de arredondamento selecionada não ' . 'corresponde ao sistema de nota escolhido.')), 'parecerDescritivo' => new CoreExt_Validate_Choice(array('choices' => $tipoParecerDescritivo->getKeys())), 'tipoPresenca' => new CoreExt_Validate_Choice(array('choices' => $tipoPresenca->getKeys())), 'media' => $this->validateIfEquals('tipoProgressao', RegraAvaliacao_Model_TipoProgressao::CONTINUADA, 'CoreExt_Validate_Numeric', array('required' => $isMediaRequired, 'min' => 1, 'max' => 10), array('required' => $isMediaRequired, 'min' => 0, 'max' => 10)), 'porcentagemPresenca' => new CoreExt_Validate_Numeric(array('min' => 1, 'max' => 100)), 'mediaRecuperacao' => $this->validateIfEquals('tipoProgressao', RegraAvaliacao_Model_TipoProgressao::CONTINUADA, 'CoreExt_Validate_Numeric', array('required' => $isMediaRequired, 'min' => 1, 'max' => 14), array('required' => $isMediaRequired, 'min' => 0, 'max' => 14)));
 }
Пример #3
0
 protected function getTipoBoletim()
 {
     $tipo = App_Model_IedFinder::getTurma($codTurma = $this->getRequest()->id);
     $tipo = $tipo['tipo_boletim'];
     $tiposBoletim = Portabilis_Model_Report_TipoBoletim;
     $tipos = array(null => 'indefinido', $tiposBoletim::BIMESTRAL => 'portabilis_boletim', $tiposBoletim::TRIMESTRAL => 'portabilis_boletim_trimestral', $tiposBoletim::TRIMESTRAL_CONCEITUAL => 'portabilis_boletim_primeiro_ano_trimestral', $tiposBoletim::SEMESTRAL => 'portabilis_boletim_semestral', $tiposBoletim::SEMESTRAL_CONCEITUAL => 'portabilis_boletim_conceitual_semestral', $tiposBoletim::SEMESTRAL_EDUCACAO_INFANTIL => 'portabilis_boletim_educ_infantil_semestral', $tiposBoletim::PARECER_DESCRITIVO_COMPONENTE => 'portabilis_boletim_parecer', $tiposBoletim::PARECER_DESCRITIVO_GERAL => 'portabilis_boletim_parecer_geral');
     return array('tipo-boletim' => $tipos[$tipo]);
 }
Пример #4
0
 protected function inputOptions($options)
 {
     $resources = $options['resources'];
     if (empty($resources)) {
         $resources = App_Model_IedFinder::getInstituicoes();
     }
     return $this->insertOption(null, "Selecione uma instituição", $resources);
 }
Пример #5
0
 public function getDefaultValidatorCollection()
 {
     $instituicoes = array_keys(App_Model_IedFinder::getInstituicoes());
     $tipoBase = ComponenteCurricular_Model_TipoBase::getInstance();
     $tipos = $tipoBase->getKeys();
     $areas = $this->getDataMapper()->findAreaConhecimento();
     $areas = CoreExt_Entity::entityFilterAttr($areas, 'id');
     return array('instituicao' => new CoreExt_Validate_Choice(array('choices' => $instituicoes)), 'nome' => new CoreExt_Validate_String(array('min' => 5, 'max' => 200)), 'abreviatura' => new CoreExt_Validate_String(array('min' => 2, 'max' => 15)), 'tipo_base' => new CoreExt_Validate_Choice(array('choices' => $tipos)), 'area_conhecimento' => new CoreExt_Validate_Choice(array('choices' => $areas)));
 }
 protected function getObra($id)
 {
     if (!$id) {
         $id = $this->getAcervoId($id);
     }
     // chama finder somente se possuir id, senão ocorrerá exception
     $obra = empty($id) ? null : App_Model_IedFinder::getBibliotecaObra($this->getBibliotecaId(), $id);
     return $obra;
 }
Пример #7
0
 /**
  * @see clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('id', $this->getEntity()->id);
     // Instituição
     $instituicoes = App_Model_IedFinder::getInstituicoes();
     $this->campoLista('instituicao', $this->_getLabel('instituicao'), $instituicoes, $this->getEntity()->instituicao);
     // Nome
     $this->campoTexto('nome', $this->_getLabel('nome'), $this->getEntity()->nome, 60, 60, TRUE, FALSE, FALSE, $this->_getHelp('nome'));
 }
Пример #8
0
 protected function inputOptions($options)
 {
     $resources = $options['resources'];
     $bibliotecaId = $this->getBibliotecaId();
     if ($bibliotecaId and empty($resources)) {
         $resources = App_Model_IedFinder::getBibliotecaFontes($bibliotecaId);
     }
     return $this->insertOption(null, "Selecione uma fonte", $resources);
 }
Пример #9
0
 protected function inputOptions($options)
 {
     $resources = $options['resources'];
     $bibliotecaId = $this->getBibliotecaId();
     if ($bibliotecaId and empty($resources)) {
         $resources = App_Model_IedFinder::getBibliotecaSituacoes($bibliotecaId);
     }
     return $this->insertOption(null, "Selecione uma situação", $resources);
 }
Пример #10
0
 protected function getResource($id)
 {
     if (!$id) {
         $id = $this->inputValue($id);
     }
     // chama finder somente se possuir id, senão ocorrerá exception
     $resource = empty($id) ? null : App_Model_IedFinder::getAluno($this->getEscolaId(), $id);
     return $resource;
 }
Пример #11
0
 /**
  * @see CoreExt_Entity_Validatable#getDefaultValidatorCollection()
  */
 public function getDefaultValidatorCollection()
 {
     $instituicoes = array_keys(App_Model_IedFinder::getInstituicoes());
     // Tipo nota
     $tipoNota = RegraAvaliacao_Model_Nota_TipoValor::getInstance();
     $tipoNotas = $tipoNota->getKeys();
     // Remove "nenhum" das opções.
     unset($tipoNotas[RegraAvaliacao_Model_Nota_TipoValor::NENHUM]);
     return array('instituicao' => new CoreExt_Validate_Choice(array('choices' => $instituicoes)), 'nome' => new CoreExt_Validate_String(array('min' => 5, 'max' => 50)), 'tipoNota' => new CoreExt_Validate_Choice(array('choices' => $tipoNotas)));
 }
Пример #12
0
 protected function inputOptions($options)
 {
     $resources = $options['resources'];
     $escolaId = $this->getEscolaId($options['escolaId']);
     $cursoId = $this->getCursoId($options['cursoId']);
     if ($escolaId && $cursoId && empty($resources)) {
         $resources = App_Model_IedFinder::getSeries($instituicaoId = null, $escolaId, $cursoId);
     }
     return $this->insertOption(null, "Selecione uma série", $resources);
 }
Пример #13
0
 function templateName()
 {
     $flagTipoBoletimTurma = App_Model_IedFinder::getTurma($codTurma = $this->args['turma']);
     $flagTipoBoletimTurma = $flagTipoBoletimTurma['tipo_boletim'];
     if (empty($flagTipoBoletimTurma)) {
         throw new Exception(Portabilis_String_Utils::toLatin1("Não foi definido o tipo de boletim no cadastro de turmas."));
     }
     $tiposBoletim = Portabilis_Model_Report_TipoBoletim;
     $templates = array($tiposBoletim::BIMESTRAL => 'portabilis_boletim', $tiposBoletim::TRIMESTRAL => 'portabilis_boletim_trimestral', $tiposBoletim::TRIMESTRAL_CONCEITUAL => 'portabilis_boletim_primeiro_ano_trimestral', $tiposBoletim::SEMESTRAL => 'portabilis_boletim_semestral', $tiposBoletim::SEMESTRAL_CONCEITUAL => 'portabilis_boletim_conceitual_semestral', $tiposBoletim::SEMESTRAL_EDUCACAO_INFANTIL => 'portabilis_boletim_educ_infantil_semestral', $tiposBoletim::PARECER_DESCRITIVO_COMPONENTE => 'portabilis_boletim_parecer', $tiposBoletim::PARECER_DESCRITIVO_GERAL => 'portabilis_boletim_parecer_geral');
     $template = is_null($flagTipoBoletimTurma) ? '' : $templates[$flagTipoBoletimTurma];
     if (empty($template)) {
         throw new Exception(Portabilis_String_Utils::toLatin1("Não foi possivel recuperar nome do template para o boletim."));
     }
     return $template;
 }
Пример #14
0
 protected function inputOptions($options)
 {
     $resources = $options['resources'];
     $instituicaoId = $this->getInstituicaoId($options['instituicaoId']);
     $escolaId = $this->getEscolaId($options['escolaId']);
     $userId = $this->getCurrentUserId();
     $isProfessor = Portabilis_Business_Professor::isProfessor($instituicaoId, $userId);
     if ($instituicaoId and $escolaId and empty($resources) and $isProfessor) {
         $cursos = Portabilis_Business_Professor::cursosAlocado($instituicaoId, $escolaId, $userId);
         $resources = Portabilis_Array_Utils::setAsIdValue($cursos, 'id', 'nome');
     } elseif ($escolaId && empty($resources)) {
         $resources = App_Model_IedFinder::getCursos($escolaId);
     }
     return $this->insertOption(null, "Selecione um curso", $resources);
 }
Пример #15
0
 /**
  * @see clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('id', $this->getEntity()->id);
     // Instituição
     $instituicoes = App_Model_IedFinder::getInstituicoes();
     $this->campoLista('instituicao', $this->_getLabel('instituicao'), $instituicoes, $this->getEntity()->instituicao);
     // Nome
     $this->campoTexto('nome', $this->_getLabel('nome'), $this->getEntity()->nome, 50, 200, TRUE, FALSE, FALSE, $this->_getHelp('nome'));
     // Abreviatura
     $this->campoTexto('abreviatura', $this->_getLabel('abreviatura'), $this->getEntity()->abreviatura, 50, 25, TRUE, FALSE, FALSE, $this->_getHelp('abreviatura'));
     // Tipo Base
     $tipoBase = ComponenteCurricular_Model_TipoBase::getInstance();
     $this->campoRadio('tipo_base', $this->_getLabel('tipo_base'), $tipoBase->getEnums(), $this->getEntity()->get('tipo_base'));
     // Área de conhecimento
     $areas = $this->getDataMapper()->findAreaConhecimento();
     $areas = CoreExt_Entity::entityFilterAttr($areas, 'id', 'nome');
     $this->campoLista('area_conhecimento', $this->_getLabel('area_conhecimento'), $areas, $this->getEntity()->get('area_conhecimento'));
 }
Пример #16
0
 public function stringInput($options = array())
 {
     $defaultOptions = array('options' => array());
     $options = $this->mergeOptions($options, $defaultOptions);
     // subescreve $options['options']['value'] com nome escola
     if (isset($options['options']['value']) && $options['options']['value']) {
         $escolaId = $options['options']['value'];
     } else {
         $escolaId = $this->getEscolaId($options['id']);
     }
     $escola = App_Model_IedFinder::getEscola($escolaId);
     $options['options']['value'] = $escola['nome'];
     $defaultInputOptions = array('id' => 'ref_cod_escola', 'label' => 'Escola', 'value' => '', 'inline' => false, 'descricao' => '', 'separador' => ':');
     $inputOptions = $this->mergeOptions($options['options'], $defaultInputOptions);
     $this->viewInstance->campoOculto($inputOptions['id'], $escolaId);
     $inputOptions['id'] = 'escola_nome';
     call_user_func_array(array($this->viewInstance, 'campoRotulo'), $inputOptions);
 }
Пример #17
0
 /**
  * @see clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('id', $this->getEntity()->id);
     // Instituição
     $instituicoes = App_Model_IedFinder::getInstituicoes();
     $this->campoLista('instituicao', $this->_getLabel('instituicao'), $instituicoes, $this->getEntity()->instituicao);
     // Nome
     $this->campoTexto('nome', $this->_getLabel('nome'), $this->getEntity()->nome, 40, 50, TRUE, FALSE, FALSE, $this->_getHelp('nome'));
     // Fórmula de média
     $this->campoTexto('formulaMedia', $this->_getLabel('formulaMedia'), $this->getEntity()->formulaMedia, 40, 50, TRUE, FALSE, FALSE, $this->_getHelp('formulaMedia'));
     // Fórmula de recuperação
     /*$this->campoTexto('formulaRecuperacao', $this->_getLabel('formulaRecuperacao'),
       $this->getEntity()->formulaRecuperacao, 40, 50, TRUE, FALSE, FALSE,
       $this->_getHelp('formulaRecuperacao'));*/
     // Tipo de fórmula
     $tipoFormula = FormulaMedia_Model_TipoFormula::getInstance();
     $this->campoRadio('tipoFormula', $this->_getLabel('tipoFormula'), $tipoFormula->getEnums(), $this->getEntity()->get('tipoFormula'));
 }
 function renderHTML()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     $_SESSION['calendario']['ultimo_valido'] = 0;
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->nivel_acesso($this->pessoa_logada) > 7) {
         $retorno .= '
     <table width="100%" height="40%" cellspacing="1" cellpadding="2" border="0" class="tablelistagem">
       <tbody>';
         $retorno .= '
       <tr>
         <td colspan="2" valig="center" height="50">
           <center class="formdktd">Usuário sem permissão para acessar esta página</center>
         </td>
       </tr>';
         $retorno .= '
       </tbody>
     </table>';
         return $retorno;
     }
     $retorno .= '
   <table width="100%" cellspacing="1" cellpadding="2" border="0" class="tablelistagem">
     <tbody>';
     if ($_POST) {
         $this->ref_cod_escola = $_POST['ref_cod_escola'] ? $_POST['ref_cod_escola'] : $_SESSION['calendario']['ref_cod_escola'];
         $this->ref_cod_instituicao = $_POST['ref_cod_instituicao'] ? $_POST['ref_cod_instituicao'] : $_SESSION['calendario']['ref_cod_instituicao'];
         if ($_POST['mes']) {
             $this->mes = $_POST['mes'];
         }
         if ($_POST['ano']) {
             $this->ano = $_POST['ano'];
         }
         if ($_POST['cod_calendario_ano_letivo']) {
             $this->cod_calendario_ano_letivo = $_POST['cod_calendario_ano_letivo'];
         }
     } elseif (isset($_SESSION['calendario'])) {
         // passa todos os valores em SESSION para atributos do objeto
         foreach ($_SESSION['calendario'] as $var => $val) {
             $this->{$var} = $val === '' ? NULL : $val;
         }
     }
     if ($_GET) {
         header('Location: educar_calendario_ano_letivo_lst.php');
     }
     if (!$this->mes) {
         $this->mes = date('n');
     }
     if (!$this->ano) {
         $this->ano = date('Y');
     }
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if (!$this->ref_cod_escola) {
         $this->ref_cod_escola = $obj_permissoes->getEscola($this->pessoa_logada);
     }
     if (!$this->ref_cod_instituicao) {
         $this->ref_cod_instituicao = $obj_permissoes->getInstituicao($this->pessoa_logada);
     }
     $get_escola = 1;
     $obrigatorio = FALSE;
     include 'educar_calendario_pesquisas.php';
     $obj_calendario_ano_letivo = new clsPmieducarCalendarioAnoLetivo();
     $obj_calendario_ano_letivo->setOrderby('ano ASC');
     $obj_calendario_ano_letivo->setLimite($this->limite, $this->offset);
     $lista = array();
     $obj_calendario_ano_letivo->setOrderby('ano');
     switch ($nivel_usuario) {
         // Poli-institucional
         case 1:
         case 2:
         case 4:
             if (!isset($this->ref_cod_escola)) {
                 break;
             }
             $lista = $obj_calendario_ano_letivo->lista($this->cod_calendario_ano_letivo, $this->ref_cod_escola, NULL, NULL, !isset($this->cod_calendario_ano_letivo) ? $this->ano : NULL, NULL, NULL, 1);
             break;
     }
     $total = $obj_calendario_ano_letivo->_total;
     if (empty($lista)) {
         if ($nivel_usuario == 4) {
             $retorno .= '<tr><td colspan="2" align="center" class="formdktd">Sem Calendário Letivo</td></tr>';
         } else {
             if ($_POST) {
                 $retorno .= '<tr><td colspan="2" align="center" class="formdktd">Sem Calendário para o ano selecionado</td></tr>';
             } else {
                 $retorno .= '<tr><td colspan="2" align="center" class="formdktd">Selecione uma escola para exibir o calendário</td></tr>';
             }
         }
     }
     // Monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $key => $registro) {
             // Guarda dados na $_SESSION
             $_SESSION['calendario'] = array('cod_calendario_ano_letivo' => $registro['cod_calendario_ano_letivo'], 'ref_cod_instituicao' => $this->ref_cod_instituicao, 'ref_cod_escola' => $this->ref_cod_escola, 'ano' => $this->ano, 'mes' => $this->mes);
             // 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'];
             // Início e término do ano letivo.
             $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
             $inicio_ano = $obj_ano_letivo_modulo->menorData($registro['ano'], $this->ref_cod_escola);
             $fim_ano = $obj_ano_letivo_modulo->maiorData($registro['ano'], $this->ref_cod_escola);
             $inicio_ano = explode('/', dataFromPgToBr($inicio_ano));
             $fim_ano = explode('/', dataFromPgToBr($fim_ano));
             // Turmas da escola
             $turmas = App_Model_IedFinder::getTurmas($registro['ref_cod_escola']);
             // Mapper de Calendario_Model_TurmaDataMapper
             $calendarioTurmaMapper = new Calendario_Model_TurmaDataMapper();
             $obj_calendario = new clsCalendario();
             $obj_calendario->setLargura(600);
             $obj_calendario->permite_trocar_ano = TRUE;
             $obj_calendario->setCorDiaSemana(array(0, 6), 'ROSA');
             $obj_dia_calendario = new clsPmieducarCalendarioDia($registro['cod_calendario_ano_letivo'], $this->mes, NULL, NULL, NULL, NULL, NULL);
             $lista_dia = $obj_dia_calendario->lista($registro['cod_calendario_ano_letivo'], $this->mes, NULL, NULL, NULL, NULL);
             if ($lista_dia) {
                 $array_dias = array();
                 $array_descricao = array();
                 foreach ($lista_dia as $dia) {
                     $descricao = '';
                     $url = sprintf('educar_calendario_anotacao_lst.php?ref_cod_calendario_ano_letivo=%s&ref_cod_escola=%s&dia=%s&mes=%s&ano=%s', $registro['cod_calendario_ano_letivo'], $this->ref_cod_escola, $dia['dia'], $dia['mes'], $this->ano);
                     $botao_editar = sprintf('
           <div style="z-index: 0;">
             <br />
             <input type="button" value="Anotações" onclick="window.location=\'%s\';" class="botaolistagem"/>
           </div>', $url);
                     if ($dia['ref_cod_calendario_dia_motivo']) {
                         $array_dias[$dia['dia']] = $dia['dia'];
                         $obj_motivo = new clsPmieducarCalendarioDiaMotivo($dia['ref_cod_calendario_dia_motivo']);
                         $det_motivo = $obj_motivo->detalhe();
                         /**
                          * @todo CoreExt_Enum?
                          */
                         $tipo = strtoupper($det_motivo['tipo']) == 'E' ? 'Dia Extra-Letivo' : 'Dia Não Letivo';
                         // Busca pelas turmas que estão marcadas para esse dia
                         $args = array('calendarioAnoLetivo' => $registro['cod_calendario_ano_letivo'], 'mes' => $dia['mes'], 'dia' => $dia['dia'], 'ano' => $this->ano);
                         $calendarioTurmas = $calendarioTurmaMapper->findAll(array(), $args);
                         $nomeTurmas = array();
                         foreach ($calendarioTurmas as $calendarioTurma) {
                             $nomeTurmas[] = $turmas[$calendarioTurma->turma];
                         }
                         if (0 == count($nomeTurmas)) {
                             $calendarioTurmas = '';
                         } else {
                             $calendarioTurmas = 'Turmas: <ul><li>' . implode('</li><li>', $nomeTurmas) . '</li></ul>';
                         }
                         $descricao = sprintf('<div style="z-index: 0;">%s</div><div align="left" style="z-index: 0;">Motivo: %s<br />Descrição: %s<br />%s</div>%s', $tipo, $det_motivo['nm_motivo'], $dia['descricao'], $calendarioTurmas, $botao_editar);
                         $array_descricao[$dia['dia']] = $descricao;
                         if (strtoupper($det_motivo['tipo']) == 'E') {
                             $obj_calendario->adicionarLegenda('Extra Letivo', 'LARANJA_ESCURO');
                             $obj_calendario->adicionarArrayDias('Extra Letivo', array($dia['dia']));
                         } elseif (strtoupper($det_motivo['tipo']) == 'N') {
                             $obj_calendario->adicionarLegenda('Não Letivo', '#VERDE_ESCURO');
                             $obj_calendario->adicionarArrayDias('Não Letivo', array($dia['dia']));
                         }
                         $obj_calendario->diaDescricao($array_dias, $array_descricao);
                     } elseif ($dia['descricao']) {
                         $array_dias[$dia['dia']] = $dia['dia'];
                         $descricao = sprintf('<div style="z-index: 0;">Descrição: %s</div>%s', $dia['descricao'], $botao_editar);
                         $array_descricao[$dia['dia']] = $descricao;
                     }
                 }
                 if (!empty($array_dias)) {
                     $obj_calendario->diaDescricao($array_dias, $array_descricao);
                 }
             }
             if ($this->mes <= (int) $inicio_ano[1] && $this->ano == (int) $inicio_ano[2]) {
                 if ($this->mes == (int) $inicio_ano[1]) {
                     $obj_calendario->adicionarLegenda('Início Ano Letivo', 'AMARELO');
                     $obj_calendario->adicionarArrayDias('Início Ano Letivo', array($inicio_ano[0]));
                 }
                 $dia_inicio = (int) $inicio_ano[0];
                 $dias = array();
                 if ($this->mes < (int) $inicio_ano[1]) {
                     $NumeroDiasMes = (int) date('t', $this->mes);
                     for ($d = 1; $d <= $NumeroDiasMes; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Não Letivo');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 } else {
                     $dia_inicio;
                     for ($d = 1; $d < $dia_inicio; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Dias Letivos', 'AZUL_CLARO');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarLegenda('Não Letivo', '#F7F7F7');
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 }
             } elseif ($this->mes >= (int) $fim_ano[1] && $this->ano == (int) $fim_ano[2]) {
                 $dia_inicio = (int) $fim_ano[0];
                 $dias = array();
                 if ($this->mes > (int) $fim_ano[1]) {
                     $NumeroDiasMes = (int) date('t', $this->mes);
                     for ($d = 1; $d <= $NumeroDiasMes; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Não Letivo');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 } else {
                     $NumeroDiasMes = (int) date('t', $this->mes);
                     for ($d = $fim_ano[0]; $d <= $NumeroDiasMes; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Dias Letivos', 'AZUL_CLARO');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarLegenda('Não Letivo', '#F7F7F7');
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 }
                 if ($this->mes == (int) $fim_ano[1]) {
                     $obj_calendario->adicionarLegenda('Término Ano Letivo', 'AMARELO');
                     $obj_calendario->adicionarArrayDias('Término Ano Letivo', array($fim_ano[0]));
                 }
             } else {
                 $obj_calendario->setLegendaPadrao('Dias Letivos', 'AZUL_CLARO');
             }
             $obj_calendario->setCorDiaSemana(array(0, 6), 'ROSA');
             $obj_anotacao = new clsPmieducarCalendarioDiaAnotacao();
             $lista_anotacoes = $obj_anotacao->lista(NULL, $this->mes, $registro['cod_calendario_ano_letivo'], NULL, 1);
             if ($lista_anotacoes) {
                 $dia_anotacao = array();
                 foreach ($lista_anotacoes as $anotacao) {
                     if ($this->mes == (int) $anotacao['ref_mes']) {
                         $dia_anotacao[$anotacao['ref_dia']] = $anotacao['ref_dia'];
                     }
                 }
                 $obj_calendario->adicionarIconeDias($dia_anotacao, 'A');
             }
             $obj_calendario->all_days_url = sprintf('educar_calendario_anotacao_lst.php?ref_cod_calendario_ano_letivo=%s', $registro['cod_calendario_ano_letivo']);
             // Gera código HTML do calendário
             $calendario = $obj_calendario->getCalendario($this->mes, $this->ano, 'mes_corrente', $_GET, array('cod_calendario_ano_letivo' => $registro['cod_calendario_ano_letivo']));
             $retorno .= sprintf('<tr><td colspan="2"><center><b>%s</b>%s</center></td></tr>', $registro['nm_escola'], $calendario);
         }
     }
     if ($obj_permissoes->permissao_cadastra(620, $this->pessoa_logada, 7)) {
         if ($_POST && empty($lista) && $_SESSION['calendario']['ultimo_valido']) {
             $url = sprintf('educar_calendario_ano_letivo_lst.php?ref_cod_instituicao=%s&ref_cod_escola=%s&ano=%s', $this->ref_cod_instituicao, $this->ref_cod_escola, $_SESSION['calendario']['ano']);
             $bt_voltar = sprintf('<input type="button" value="Voltar" onclick="window.location=\'%s\';" class="botaolistagem" />', $url);
         }
         $url = sprintf('educar_calendario_ano_letivo_cad.php?ref_cod_instituicao=%s&ref_cod_escola=%s', $this->ref_cod_instituicao, $this->ref_cod_escola);
         $retorno .= sprintf('
     <tr>
       <td>&nbsp;</td>
     </tr>
     <tr>
       <td align="center" colspan="2">
         %s
         <input type="button" value="Novo Calendário Letivo" onclick="window.location=\'%s\';" class="botaolistagem" />
       </td>
     </tr>', $bt_voltar, $url);
     }
     $retorno .= '
     </tbody>
   </table>';
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Calend&aacute;rio do ano letivo"));
     $this->enviaLocalizacao($localizacao->montar());
     return $retorno;
 }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     // Instancia o objeto clsPDF
     $this->pdf = new clsPDF('Boletim', 'BolTit', 'A4', '');
     $this->pdf->largura = 842.0;
     $this->pdf->altura = 595.0;
     $this->pdf->topmargin = 5;
     $this->pdf->bottommargirn = 5;
     $altura_linha = 13;
     // Instituição
     $instituicao = App_Model_IedFinder::getInstituicoes();
     $instituicao = $instituicao[$this->ref_cod_instituicao];
     // Escola
     $escola = new clsPmieducarEscola();
     $escola->cod_escola = $this->ref_cod_escola;
     $escola = $escola->detalhe();
     $escola = $escola['nome'];
     // Carrega as informações do curso
     $serie = new clsPmieducarSerie($this->ref_ref_cod_serie, NULL, NULL, $this->ref_cod_curso);
     // Dados da série
     $serie = $serie->detalhe();
     // Recupera a regra da série
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $regra = $regraMapper->find($serie['regra_avaliacao_id']);
     // Carrega alunos matriculados
     $matriculaTurma = new clsPmieducarMatriculaTurma();
     $matriculaTurma->setOrderby('nome_aluno');
     $matriculados = $matriculaTurma->lista($this->ref_cod_matricula, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, NULL, NULL, NULL, $this->ano, NULL, TRUE);
     foreach ($matriculados as $matriculado) {
         $this->pdf->OpenPage();
         $this->page_y = 10;
         $codMatricula = $matriculado['ref_cod_matricula'];
         $nomeAluno = $matriculado['nome_aluno'];
         $turma = $matriculado['nm_turma'];
         $boletim = new Avaliacao_Service_Boletim(array('matricula' => $codMatricula));
         $matriculaData = $boletim->getOption('matriculaData');
         $curso = $matriculaData['curso_nome'];
         $serie = $matriculaData['serie_nome'];
         $this->addCabecalho($instituicao, $escola, $codMatricula, $nomeAluno, $curso, $turma, $serie);
         $this->inicio_y = $this->page_y - 25;
         $this->_notasFaltasComponentes($boletim);
         $situacao = $boletim->getSituacaoAluno();
         $this->page_y += 25;
         $this->rodape($codMatricula, $nomeAluno, $matriculaData['aprovado']);
         $this->pdf->ClosePage();
     }
     $this->pdf->CloseFile();
     $this->get_link = $this->pdf->GetLink();
     echo sprintf('
   <script>
     window.onload = function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br /><a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a>
       </span>
     </center>
   </html>', $this->get_link);
 }
 function Gerar()
 {
     if ($_POST) {
         foreach ($_POST as $campo => $val) {
             $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val;
         }
     }
     $obrigatorio = TRUE;
     $desabilitado = TRUE;
     $get_escola = TRUE;
     $get_curso = TRUE;
     $get_escola_curso_serie = TRUE;
     $get_turma = TRUE;
     include 'include/pmieducar/educar_campo_lista.php';
     $this->campoQuebra();
     /**
      * Campos a serem preenchidos com os dados necessários para a inclusão de horários
      */
     // foreign keys
     $opcoes_disc = array('' => 'Selecione uma disciplina');
     // Componentes curriculares da série
     $componentesTurma = array();
     try {
         $componentesTurma = App_Model_IedFinder::getComponentesTurma($this->ref_ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
     } catch (Exception $e) {
     }
     if (0 == count($componentesTurma)) {
         $opcoes_disc = array('NULL' => 'A série dessa escola não possui componentes cadastrados');
     } else {
         foreach ($componentesTurma as $componente) {
             $opcoes_disc[$componente->id] = $componente;
         }
     }
     $this->campoLista('ref_cod_disciplina', 'Componente curricular', $opcoes_disc, $this->ref_cod_disciplina, '', FALSE, '', '', FALSE, FALSE);
     $this->campoOculto('identificador', $this->identificador);
     $opcoesDias = array('' => 'Selecione um dia da semana', 1 => 'Domingo', 2 => 'Segunda-Feira', 3 => 'Terça-Feira', 4 => 'Quarta-Feira', 5 => 'Quinta-Feira', 6 => 'Sexta-Feira', 7 => 'Sábado');
     $this->campoOculto('dia_semana', $this->dia_semana);
     $this->campoLista('dia_semana_', 'Dia da Semana', $opcoesDias, $this->dia_semana, '', FALSE, '', '', TRUE, FALSE);
     $this->campoHora('hora_inicial', 'Hora Inicial', $this->hora_inicial, FALSE);
     $this->campoHora('hora_final', 'Hora Final', $this->hora_final, FALSE);
     $this->campoListaPesq('ref_cod_servidor', 'Servidor', array('' => 'Selecione um servidor'), $this->ref_cod_servidor, '', '', FALSE, '', '', NULL, NULL, '', TRUE, FALSE, FALSE);
     $this->campoRotulo('bt_incluir_horario', 'Hor&aacute;rio', "<a href='#' onclick=\"" . "if (document.getElementById('ref_cod_disciplina').value == '') {\n         alert('Você deve escolher a disciplina!');\n         return;\n       }\n       else if (document.getElementById('hora_inicial').value == '') {\n         alert('Você deve preencher o campo Hora Inicial!');\n         return;\n       }\n       else if (document.getElementById('hora_final').value == '') {\n         alert('Você deve preencher o campo Hora Final!');\n         return;\n       }\n       else if (document.getElementById('ref_cod_servidor').value == '') {\n         alert('Você deve selecionar um servidor no campo Servidor');\n         return;\n       }\n       else {\n         if (verificaQuadroHorario()) {\n           getElementById('incluir_horario').value = 'S';\n           getElementById('tipoacao').value = '';\n           {$this->__nome}.submit();\n         }\n       }\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>");
     $this->campoOculto('incluir_horario', '');
     /**
      * Inclui horários
      */
     if ($_POST['quadro_horario']) {
         $this->quadro_horario = unserialize(urldecode($_POST['quadro_horario']));
     }
     $qtd_horario = count($this->quadro_horario) == 0 ? 1 : count($this->quadro_horario) + 1;
     // primary keys
     if ($this->incluir_horario) {
         if (is_numeric($_POST['ref_cod_servidor']) && is_string($_POST['hora_inicial']) && is_string($_POST['hora_final']) && is_numeric($_POST['dia_semana']) && is_numeric($_POST['ref_cod_disciplina'])) {
             $this->quadro_horario[$qtd_horario]['ref_cod_quadro_horario_'] = $this->ref_cod_quadro_horario;
             $this->quadro_horario[$qtd_horario]['ref_ref_cod_serie_'] = $this->ref_ref_cod_serie;
             $this->quadro_horario[$qtd_horario]['ref_ref_cod_escola_'] = $this->ref_cod_escola;
             $this->quadro_horario[$qtd_horario]['ref_ref_cod_disciplina_'] = $_POST['ref_cod_disciplina'];
             $this->quadro_horario[$qtd_horario]['ref_cod_instituicao_servidor_'] = $this->ref_cod_instituicao;
             $this->quadro_horario[$qtd_horario]['ref_servidor_'] = $_POST['ref_cod_servidor'];
             $this->quadro_horario[$qtd_horario]['ref_servidor_substituto_'] = $_POST['ref_servidor_substituto'];
             $this->quadro_horario[$qtd_horario]['hora_inicial_'] = $_POST['hora_inicial'];
             $this->quadro_horario[$qtd_horario]['hora_final_'] = $_POST['hora_final'];
             $this->quadro_horario[$qtd_horario]['ativo_'] = 1;
             $this->quadro_horario[$qtd_horario]['dia_semana_'] = $_POST['dia_semana'];
             $this->quadro_horario[$qtd_horario]['qtd_horario_'] = $qtd_horario;
             $qtd_horario++;
             /**
              * salva os dados em uma tabela temporaria
              * para realizar consulta na listagem
              */
             $obj_quadro_horario = new clsPmieducarQuadroHorarioHorariosAux($this->ref_cod_quadro_horario, NULL, $this->ref_cod_disciplina, $this->ref_cod_escola, $this->ref_ref_cod_serie, $this->ref_cod_instituicao, $this->ref_cod_servidor, $this->dia_semana, $this->hora_inicial, $this->hora_final, $this->identificador);
             $obj_quadro_horario->cadastra();
             unset($this->ref_cod_servidor);
             unset($this->ref_cod_disciplina);
             unset($this->hora_inicial);
             unset($this->hora_final);
             echo "\n          <script>\n            window.onload = function() {\n              document.getElementById('ref_cod_servidor').value   = '';\n              document.getElementById('ref_cod_disciplina').value = '';\n              document.getElementById('hora_inicial').value       = '';\n              document.getElementById('hora_final').value         = '';\n            }\n          </script>";
         }
     }
     echo "<script>\n            quadro_horario = " . count($this->quadro_horario) . ";\n        </script>";
     $this->campoOculto('excluir_horario', '');
     $qtd_horario = 1;
     $this->lst_matriculas = urldecode($this->lst_matriculas);
     $this->min_mat = $this->min_ves = $this->min_not = 0;
     if ($this->quadro_horario) {
         foreach ($this->quadro_horario as $campo) {
             if ($this->excluir_horario == $campo['qtd_horario_']) {
                 $obj_horario = new clsPmieducarQuadroHorarioHorarios();
                 $lst_horario = $obj_horario->lista($campo['ref_cod_quadro_horario_'], $campo['ref_ref_cod_serie_'], $campo['ref_ref_cod_escola_'], $campo['ref_ref_cod_disciplina_'], NULL, NULL, NULL, $campo['ref_cod_instituicao_servidor_'], NULL, $campo['ref_servidor_'], $campo['hora_inicial_'], NULL, $campo['hora_final_'], NULL, NULL, NULL, NULL, NULL, 1, $campo['dia_semana_']);
                 if (is_array($lst_horario)) {
                     $campo['ativo_'] = 0;
                     if (isset($this->lst_matriculas)) {
                         $this->lst_matriculas .= '' . $campo['ref_servidor_'] . '';
                     } else {
                         $this->lst_matriculas .= ', ' . $campo['ref_servidor_'] . '';
                     }
                 } else {
                     $campo['ativo_'] = 2;
                     if (isset($this->lst_matriculas)) {
                         $this->lst_matriculas .= '' . $campo['ref_servidor_'] . '';
                     } else {
                         $this->lst_matriculas .= ', ' . $campo['ref_servidor_'] . '';
                     }
                 }
                 $this->excluir_horario = NULL;
                 $obj_horario = new clsPmieducarQuadroHorarioHorariosAux();
                 $lst_horario = $obj_horario->excluiRegistro($campo['ref_cod_quadro_horario_'], $campo['ref_ref_cod_serie_'], $campo['ref_ref_cod_escola_'], $campo['ref_ref_cod_disciplina_'], $campo['ref_cod_instituicao_servidor_'], $campo['ref_servidor_'], $this->identificador);
             } else {
                 switch ($campo['dia_semana_']) {
                     case 1:
                         $campo['nm_dia_semana_'] = 'Domingo';
                         break;
                     case 2:
                         $campo['nm_dia_semana_'] = 'Segunda-Feira';
                         break;
                     case 3:
                         $campo['nm_dia_semana_'] = 'Terça-Feira';
                         break;
                     case 4:
                         $campo['nm_dia_semana_'] = 'Quarta-Feira';
                         break;
                     case 5:
                         $campo['nm_dia_semana_'] = 'Quinta-Feira';
                         break;
                     case 6:
                         $campo['nm_dia_semana_'] = 'Sexta-Feira';
                         break;
                     case 7:
                         $campo['nm_dia_semana_'] = 'S&aacute;bado';
                         break;
                 }
             }
             if ($campo['ativo_'] == 1) {
                 $this->campoTextoInv($campo['qtd_horario_'] . '_nm_dia_semana', '', $campo['nm_dia_semana_'], 13, 255, FALSE, FALSE, TRUE);
                 $this->campoOculto($campo['qtd_horario_'] . '_dia_semana', $campo['dia_semana_']);
                 $this->campoTextoInv($campo['qtd_horario_'] . '_hora_inicial', '', $campo['hora_inicial_'], 5, 255, FALSE, FALSE, TRUE);
                 $this->campoTextoInv($campo['qtd_horario_'] . '_hora_final', '', $campo['hora_final_'], 5, 255, FALSE, FALSE, TRUE);
                 $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper();
                 $componente = $componenteMapper->find($campo['ref_ref_cod_disciplina_']);
                 $this->campoTextoInv($campo['qtd_horario_'] . '_ref_cod_disciplina', '', $componente->nome, 30, 255, FALSE, FALSE, TRUE);
                 $obj_pes = new clsPessoa_($campo['ref_servidor_']);
                 $det_pes = $obj_pes->detalhe();
                 if (is_numeric($campo['ref_servidor_substituto_'])) {
                     $this->campoTextoInv($campo['qtd_horario_'] . '_ref_cod_servidor', '', $det_pes['nome'], 30, 255, FALSE, FALSE, FALSE, '', '');
                 } else {
                     $this->campoTextoInv($campo['qtd_horario_'] . '_ref_cod_servidor', '', $det_pes['nome'], 30, 255, FALSE, FALSE, FALSE, '', "<a href='#' onclick=\"getElementById('excluir_horario').value = '{$campo["qtd_horario_"]}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>");
                 }
             }
             if ($campo['ativo_'] != 2) {
                 $horarios_incluidos[$qtd_horario]['ref_cod_quadro_horario_'] = $campo['ref_cod_quadro_horario_'];
                 $horarios_incluidos[$qtd_horario]['ref_ref_cod_serie_'] = $campo['ref_ref_cod_serie_'];
                 $horarios_incluidos[$qtd_horario]['ref_ref_cod_escola_'] = $campo['ref_ref_cod_escola_'];
                 $horarios_incluidos[$qtd_horario]['ref_ref_cod_disciplina_'] = $campo['ref_ref_cod_disciplina_'];
                 $horarios_incluidos[$qtd_horario]['sequencial_'] = $campo['sequencial_'];
                 $horarios_incluidos[$qtd_horario]['ref_cod_instituicao_servidor_'] = $campo['ref_cod_instituicao_servidor_'];
                 $horarios_incluidos[$qtd_horario]['ref_servidor_'] = $campo['ref_servidor_'];
                 $horarios_incluidos[$qtd_horario]['ref_servidor_substituto_'] = $campo['ref_servidor_substituto_'];
                 $horarios_incluidos[$qtd_horario]['hora_inicial_'] = $campo['hora_inicial_'];
                 $horarios_incluidos[$qtd_horario]['hora_final_'] = $campo['hora_final_'];
                 $horarios_incluidos[$qtd_horario]['ativo_'] = $campo['ativo_'];
                 $horarios_incluidos[$qtd_horario]['dia_semana_'] = $campo['dia_semana_'];
                 $horarios_incluidos[$qtd_horario]['qtd_horario_'] = $qtd_horario;
                 $qtd_horario++;
             }
         }
         unset($this->quadro_horario);
         $this->quadro_horario = $horarios_incluidos;
     }
     $this->campoOculto('ref_cod_turma', $this->ref_cod_turma);
     $this->campoOculto('quadro_horario', serialize($this->quadro_horario));
     $this->campoOculto('ref_cod_curso_', $this->ref_cod_curso);
     $this->campoOculto('lst_matriculas', urlencode($this->lst_matriculas));
     $this->campoOculto('min_mat', $this->min_mat);
     $this->campoOculto('min_ves', $this->min_ves);
     $this->campoOculto('min_not', $this->min_not);
     $this->campoQuebra();
 }
 function renderHTML()
 {
     session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     foreach ($_POST as $key => $value) {
         $this->{$key} = $value;
     }
     $this->ref_cod_serie = $this->ref_ref_cod_serie;
     $fonte = 'arial';
     $corTexto = '#000000';
     if (!is_numeric($this->ref_cod_instituicao) || !is_numeric($this->ref_cod_escola) || !is_numeric($this->ref_cod_curso) || !is_numeric($this->ref_cod_serie) || !is_numeric($this->ref_cod_turma) || !is_numeric($this->ano)) {
         echo '
     <script>
       alert("A turma não possui nenhum aluno com situação final definida");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     $sql = sprintf("\n      SELECT\n        cod_matricula,\n        aprovado,\n        ref_ref_cod_serie,\n        (SELECT\n           nome\n         FROM\n           pmieducar.aluno a,\n           cadastro.pessoa p\n         WHERE\n           a.cod_aluno = m.ref_cod_aluno\n           AND p.idpes = a.ref_idpes\n        ) AS nome\n      FROM\n        pmieducar.matricula m,\n        pmieducar.matricula_turma mt\n      WHERE\n        mt.ref_cod_turma = %d\n        AND mt.ref_cod_matricula = m.cod_matricula\n        AND m.ativo = 1\n        AND mt.ativo = 1\n        AND aprovado IN (1, 2)\n        AND ano = %d\n      ORDER BY\n        ref_ref_cod_serie, nome", $this->ref_cod_turma, $this->ano);
     //verificar se a turma é multiseriada
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $ref_ref_cod_serie_mult = $det_turma['ref_ref_cod_serie_mult'];
     $db = new clsBanco();
     $db->Consulta($sql);
     if (!$db->numLinhas()) {
         echo '
     <script>
       alert("A turma não possui nenhum aluno com situação final definida");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length - 1));
     </script>';
         return TRUE;
     }
     $numAlunos = $db->numLinhas();
     // Nome da instituição
     $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
     $det_instituicao = $obj_instituicao->detalhe();
     $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     // Nome da escola
     $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
     $det_escola = $obj_escola->detalhe();
     $this->nm_escola = $det_escola['nome'];
     // Nome do curso
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $this->nm_curso = $det_curso['nm_curso'];
     // Série
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $obj_serie->setOrderby('nm_serie');
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     // Seleciona a regra de avaliação da série
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']);
     // Carrega as definições de disciplina
     $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
     foreach ($componentes as $id => $componente) {
         $this->componentes[$id] = $componente;
     }
     $this->presencaGeral = $this->regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL;
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $obj_turma->setCamposLista('nm_turma, hora_inicial');
     $det_turma = $obj_turma->detalhe();
     if ($det_turma['hora_inicial'] < '12:00') {
         $this->nm_turno = 'Matutino';
     } elseif ($det_turma['hora_inicial'] < '18:00') {
         $this->nm_turno = 'Vespertino';
     } else {
         $this->nm_turno = 'Noturno';
     }
     $this->nm_turma = $det_turma["nm_turma"];
     $this->buscaDiasLetivos();
     asort($this->componentes);
     $this->pdf = new clsPDF('Ata de Resultado Final - ' . $this->ano, 'Ata de Resultado Final', 'A4', '', FALSE, FALSE);
     $this->pdf->largura = 842.0;
     $this->pdf->altura = 595.0;
     $this->pdf->OpenPage();
     $this->addCabecalho();
     $esquerda = 3;
     $direita = 834;
     $tam_texto = 10;
     $altura = 130;
     $altura += 50;
     $espessura_linha = 0.3;
     $alunos_matriculados = array();
     while ($db->ProximoRegistro()) {
         list($cod_matricula, $aprovado, $ref_cod_serie, $nome) = $db->Tupla();
         $alunos_matriculados[$cod_matricula] = array('aprovado' => $aprovado, 'nome' => $nome, 'ref_cod_serie' => $ref_cod_serie);
     }
     if (is_array($alunos_matriculados) && count($alunos_matriculados)) {
         $this->getAlunoNotasFaltasTable($alunos_matriculados, $det_curso, $curso_conceitual);
     }
     $this->rodape();
     $this->pdf->CloseFile();
     $this->get_link = $this->pdf->GetLink();
     echo sprintf("\n        <script>\n          window.onload=function() {\n            parent.EscondeDiv('LoadImprimir');\n            window.location='download.php?filename=%s'\n          }\n        </script>", $this->get_link);
     echo sprintf("\n        <html>\n          <center>\n            Se o download não iniciar automaticamente <br /><a target='_blank' href='%s' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n            <span style='font-size: 10px;'>\n              Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n              Clique na Imagem para Baixar o instalador<br><br>\n              <a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br>\n                <img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\">\n              </a>\n            </span>\n          </center>\n        </html>", $this->get_link);
 }
Пример #22
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = 'Turma - Detalhe';
     $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
     $this->cod_turma = $_GET['cod_turma'];
     $tmp_obj = new clsPmieducarTurma();
     $lst_obj = $tmp_obj->lista($this->cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, array('true', 'false'));
     $registro = array_shift($lst_obj);
     foreach ($registro as $key => $value) {
         $this->{$key} = $value;
     }
     if (!$registro) {
         header('Location: educar_turma_lst.php');
         die;
     }
     if (class_exists('clsPmieducarTurmaTipo')) {
         $obj_ref_cod_turma_tipo = new clsPmieducarTurmaTipo($registro['ref_cod_turma_tipo']);
         $det_ref_cod_turma_tipo = $obj_ref_cod_turma_tipo->detalhe();
         $registro['ref_cod_turma_tipo'] = $det_ref_cod_turma_tipo['nm_tipo'];
     } else {
         $registro['ref_cod_turma_tipo'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarInfraPredioComodo')) {
         $obj_ref_cod_infra_predio_comodo = new clsPmieducarInfraPredioComodo($registro['ref_cod_infra_predio_comodo']);
         $det_ref_cod_infra_predio_comodo = $obj_ref_cod_infra_predio_comodo->detalhe();
         $registro['ref_cod_infra_predio_comodo'] = $det_ref_cod_infra_predio_comodo['nm_comodo'];
     } else {
         $registro['ref_cod_infra_predio_comodo'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarInstituicao')) {
         $obj_cod_instituicao = new clsPmieducarInstituicao($registro['ref_cod_instituicao']);
         $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe();
         $registro['ref_cod_instituicao'] = $obj_cod_instituicao_det['nm_instituicao'];
     } else {
         $registro['ref_cod_instituicao'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarEscola')) {
         $this->ref_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();
         $registro['ref_ref_cod_escola'] = $det_ref_cod_escola['nome'];
     } else {
         $registro['ref_cod_escola'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarCurso')) {
         $obj_ref_cod_curso = new clsPmieducarCurso($registro['ref_cod_curso']);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $registro['ref_cod_curso'] = $det_ref_cod_curso['nm_curso'];
         $padrao_ano_escolar = $det_ref_cod_curso['padrao_ano_escolar'];
     } else {
         $registro['ref_cod_curso'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarSerie')) {
         $this->ref_ref_cod_serie = $registro['ref_ref_cod_serie'];
         $obj_ser = new clsPmieducarSerie($registro['ref_ref_cod_serie']);
         $det_ser = $obj_ser->detalhe();
         $registro['ref_ref_cod_serie'] = $det_ser['nm_serie'];
     } else {
         $registro['ref_ref_cod_serie'] = 'Erro na geração';
     }
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         if ($registro['ref_cod_instituicao']) {
             $this->addDetalhe(array('Instituição', $registro['ref_cod_instituicao']));
         }
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($registro['ref_ref_cod_escola']) {
             $this->addDetalhe(array('Escola', $registro['ref_ref_cod_escola']));
         }
     }
     if ($registro['ref_cod_curso']) {
         $this->addDetalhe(array('Curso', $registro['ref_cod_curso']));
     }
     if ($registro['ref_ref_cod_serie']) {
         $this->addDetalhe(array('Série', $registro['ref_ref_cod_serie']));
     }
     if ($registro['ref_cod_regente']) {
         $obj_pessoa = new clsPessoa_($registro['ref_cod_regente']);
         $det = $obj_pessoa->detalhe();
         $this->addDetalhe(array('Professor/Regente', $det['nome']));
     }
     if ($registro['ref_cod_infra_predio_comodo']) {
         $this->addDetalhe(array('Sala', $registro['ref_cod_infra_predio_comodo']));
     }
     if ($registro['ref_cod_turma_tipo']) {
         $this->addDetalhe(array('Tipo de Turma', $registro['ref_cod_turma_tipo']));
     }
     if ($registro['nm_turma']) {
         $this->addDetalhe(array('Turma', $registro['nm_turma']));
     }
     if ($registro['sgl_turma']) {
         $this->addDetalhe(array('Sigla', $registro['sgl_turma']));
     }
     if ($registro['max_aluno']) {
         $this->addDetalhe(array('Máximo de Alunos', $registro['max_aluno']));
     }
     $this->addDetalhe(array('Situação', dbBool($registro['visivel']) ? 'Ativo' : 'Desativo'));
     if ($registro['multiseriada'] == 1) {
         if ($registro['multiseriada'] == 1) {
             $registro['multiseriada'] = 'sim';
         } else {
             $registro['multiseriada'] = 'não';
         }
         $this->addDetalhe(array('Multi-Seriada', $registro['multiseriada']));
         $obj_serie_mult = new clsPmieducarSerie($registro['ref_ref_cod_serie_mult']);
         $det_serie_mult = $obj_serie_mult->detalhe();
         $this->addDetalhe(array('Série Multi-Seriada', $det_serie_mult['nm_serie']));
     }
     if ($padrao_ano_escolar == 1) {
         if ($registro['hora_inicial']) {
             $registro['hora_inicial'] = date('H:i', strtotime($registro['hora_inicial']));
             $this->addDetalhe(array('Hora Inicial', $registro['hora_inicial']));
         }
         if ($registro['hora_final']) {
             $registro['hora_final'] = date('H:i', strtotime($registro['hora_final']));
             $this->addDetalhe(array('Hora Final', $registro['hora_final']));
         }
         if ($registro['hora_inicio_intervalo']) {
             $registro['hora_inicio_intervalo'] = date('H:i', strtotime($registro['hora_inicio_intervalo']));
             $this->addDetalhe(array('Hora Início Intervalo', $registro['hora_inicio_intervalo']));
         }
         if ($registro['hora_fim_intervalo']) {
             $registro['hora_fim_intervalo'] = date('H:i', strtotime($registro['hora_fim_intervalo']));
             $this->addDetalhe(array('Hora Fim Intervalo', $registro['hora_fim_intervalo']));
         }
     } elseif ($padrao_ano_escolar == 0) {
         $obj = new clsPmieducarTurmaModulo();
         $obj->setOrderby('data_inicio ASC');
         $lst = $obj->lista($this->cod_turma);
         if ($lst) {
             $tabela = '
       <table>
         <tr align="center">
           <td bgcolor="#A1B3BD"><b>Nome</b></td>
           <td bgcolor="#A1B3BD"><b>Data Início</b></td>
           <td bgcolor="#A1B3BD"><b>Data Fim</b></td>
         </tr>';
             $cont = 0;
             foreach ($lst as $valor) {
                 if ($cont % 2 == 0) {
                     $color = ' bgcolor="#E4E9ED" ';
                 } else {
                     $color = ' bgcolor="#FFFFFF" ';
                 }
                 $obj_modulo = new clsPmieducarModulo($valor['ref_cod_modulo']);
                 $det_modulo = $obj_modulo->detalhe();
                 $nm_modulo = $det_modulo['nm_tipo'];
                 $valor['data_inicio'] = dataFromPgToBr($valor['data_inicio']);
                 $valor['data_fim'] = dataFromPgToBr($valor['data_fim']);
                 $tabela .= sprintf('
         <tr>
           <td %s align=left>%s</td>
           <td %s align=left>%s</td>
           <td %s align=left>%s</td>
         </tr>', $color, $nm_modulo, $color, $valor['data_inicio'], $color, $valor['data_fim']);
                 $cont++;
             }
             $tabela .= '</table>';
         }
         if ($tabela) {
             $this->addDetalhe(array('Módulo', $tabela));
         }
         $dias_da_semana = array('' => 'Selecione', 1 => 'Domingo', 2 => 'Segunda', 3 => 'Terça', 4 => 'Quarta', 5 => 'Quinta', 6 => 'Sexta', 7 => 'Sábado');
         $obj = new clsPmieducarTurmaDiaSemana();
         $lst = $obj->lista(NULL, $this->cod_turma);
         if ($lst) {
             $tabela1 = '
       <table>
         <tr align="center">
           <td bgcolor="#A1B3BD"><b>Nome</b></td>
           <td bgcolor="#A1B3BD"><b>Hora Inicial</b></td>
           <td bgcolor="#A1B3BD"><b>Hora Final</b></td>
         </tr>';
             $cont = 0;
             foreach ($lst as $valor) {
                 if ($cont % 2 == 0) {
                     $color = ' bgcolor="#E4E9ED" ';
                 } else {
                     $color = ' bgcolor="#FFFFFF" ';
                 }
                 $valor['hora_inicial'] = date('H:i', strtotime($valor['hora_inicial']));
                 $valor['hora_final'] = date('H:i', strtotime($valor['hora_final']));
                 $tabela1 .= sprintf("\n            <tr>\n              <td %s align=left>%s</td>\n              <td %s align=left>%s</td>\n              <td %s align=left>%s</td>\n            </tr>", $color, $dias_da_semana[$valor['dia_semana']], $color, $valor['hora_inicial'], $color, $valor['hora_final']);
                 $cont++;
             }
             $tabela1 .= '</table>';
         }
         if ($tabela1) {
             $this->addDetalhe(array('Dia da Semana', $tabela1));
         }
     }
     // Recupera os componentes curriculares da turma
     $componentes = array();
     try {
         $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_turma);
     } catch (Exception $e) {
     }
     $tabela3 = '
   <table>
     <tr align="center">
       <td bgcolor="#A1B3BD"><b>Nome</b></td>
       <td bgcolor="#A1B3BD"><b>Carga horária</b></td>
     </tr>';
     $cont = 0;
     foreach ($componentes as $componente) {
         $color = $cont++ % 2 == 0 ? ' bgcolor="#E4E9ED" ' : ' bgcolor="#FFFFFF" ';
         $tabela3 .= sprintf('
     <tr>
       <td %s align="left">%s</td>
       <td %s align="center">%.0f h</td>
     </tr>', $color, $componente, $color, $componente->cargaHoraria);
     }
     $tabela3 .= '</table>';
     $this->addDetalhe(array('Componentes curriculares', $tabela3));
     if ($obj_permissoes->permissao_cadastra(586, $this->pessoa_logada, 7)) {
         $this->url_novo = 'educar_turma_cad.php';
         $this->url_editar = 'educar_turma_cad.php?cod_turma=' . $registro['cod_turma'];
     }
     $this->url_cancelar = 'educar_turma_lst.php';
     $this->largura = '100%';
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Detalhe da turma"));
     $this->enviaLocalizacao($localizacao->montar());
     $this->array_botao[] = 'Reclassificar alunos alfabeticamente';
     $this->array_botao_url_script[] = "if(confirm(\"Deseja realmente reclassificar os alunos alfabeticamente?\\nAo utilizar esta opção para esta turma, a ordenação dos alunos no diário e em relatórios que é controlada por ordem de chegada após a data de fechamento da turma (campo Data de fechamento), passará a ter o controle novamente alfabético, desconsiderando a data de fechamento.\"))reclassifica_matriculas({$registro['cod_turma']})";
     Portabilis_View_Helper_Application::loadJQueryLib($this);
     $scripts = array('/modules/Portabilis/Assets/Javascripts/Utils.js', '/modules/Portabilis/Assets/Javascripts/ClientApi.js', '/modules/Cadastro/Assets/Javascripts/TurmaDet.js');
     Portabilis_View_Helper_Application::loadJavascript($this, $scripts);
 }
Пример #23
0
 /**
  * @see clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('id', $this->getEntity()->id);
     // Instituição
     $instituicoes = App_Model_IedFinder::getInstituicoes();
     $this->campoLista('instituicao', $this->_getLabel('instituicao'), $instituicoes, $this->getEntity()->instituicao);
     // Nome
     $this->campoTexto('nome', $this->_getLabel('nome'), $this->getEntity()->nome, 40, 50, TRUE, FALSE, FALSE, $this->_getHelp('nome'));
     // Tipo de nota
     $notaTipoValor = RegraAvaliacao_Model_Nota_TipoValor::getInstance();
     $notaTipos = $notaTipoValor->getEnums();
     unset($notaTipos[RegraAvaliacao_Model_Nota_TipoValor::NENHUM]);
     if ($this->getEntity()->id != '') {
         $this->campoTexto('tipNota', $this->_getLabel('tipoNota'), $notaTipos[$this->getEntity()->get('tipoNota')], 40, 40, false, false, false, '', '', '', '', true);
     } else {
         $this->campoRadio('tipoNota', $this->_getLabel('tipoNota'), $notaTipos, $this->getEntity()->get('tipoNota'), '', $this->_getHelp('tipoNota'));
     }
     // Parte condicional
     if (!$this->getEntity()->isNew()) {
         // Quebra
         $this->campoQuebra();
         // Ajuda
         $help = 'Caso seja necessário adicionar mais notas, ' . 'salve o formulário. Automaticamente 3 campos ' . 'novos ficarão disponíveis.<br /><br />';
         $this->campoRotulo('__help1', '<strong>Notas para arredondamento</strong><br />', $help, FALSE, '', '');
         // Cria campos para a postagem de notas
         $valores = $this->getDataMapper()->findTabelaValor($this->getEntity());
         for ($i = 0, $loop = count($valores); $i < ($loop == 0 ? 5 : $loop + 3); $i++) {
             $valorNota = $valores[$i];
             $valor_label = sprintf("valor[label][%d]", $i);
             $valor_id = sprintf("valor[id][%d]", $i);
             $valor_nome = sprintf("valor[nome][%d]", $i);
             $valor_descricao = sprintf("valor[descricao][%d]", $i);
             $valor_valor_minimo = sprintf("valor[valor_minimo][%d]", $i);
             $valor_valor_maximo = sprintf("valor[valor_maximo][%d]", $i);
             $this->campoRotulo($valor_label, 'Arredondamento ' . ($i + 1), $this->_getLabel(''), TRUE);
             // Id
             $this->campoOculto($valor_id, $valorNota->id);
             // Nome
             $this->campoTexto($valor_nome, $this->_getLabel('valor_nome'), $valorNota->nome, 5, 5, FALSE, FALSE, TRUE, $this->_getHelp('valor_nome'));
             // Descrição (se conceitual)
             if (RegraAvaliacao_Model_Nota_TipoValor::CONCEITUAL == $this->getEntity()->get('tipoNota')) {
                 $this->campoTexto($valor_descricao, $this->_getLabel('valor_descricao'), $valorNota->descricao, 15, 25, FALSE, FALSE, TRUE, $this->_getHelp('valor_descricao'));
             }
             // Valor mínimo
             $this->campoTexto($valor_valor_minimo, $this->_getLabel('valor_valor_minimo'), $valorNota->valorMinimo, 6, 6, FALSE, FALSE, TRUE, $this->_getHelp('valor_valor_minimo'));
             // Valor máximo
             $this->campoTexto($valor_valor_maximo, $this->_getLabel('valor_valor_maximo'), $valorNota->valorMaximo, 6, 6, FALSE, FALSE, FALSE, $this->_getHelp('valor_valor_maximo'));
         }
         // Quebra
         $this->campoQuebra();
     }
 }
Пример #24
0
 /**
  * @see CoreExt_Entity_Validatable#getDefaultValidatorCollection()
  */
 public function getDefaultValidatorCollection()
 {
     $instituicoes = array_keys(App_Model_IedFinder::getInstituicoes());
     $tipoFormula = FormulaMedia_Model_TipoFormula::getInstance();
     // Se for de recuperação, inclui a token "Rc" como permitida.
     $formulaValidatorOptions = array();
     if (FormulaMedia_Model_TipoFormula::MEDIA_RECUPERACAO == $this->get('tipoFormula')) {
         $formulaValidatorOptions = array('excludeToken' => NULL);
     }
     return array('instituicao' => new CoreExt_Validate_Choice(array('choices' => $instituicoes)), 'nome' => new CoreExt_Validate_String(array('min' => 5, 'max' => 50)), 'formulaMedia' => new FormulaMedia_Validate_Formula($formulaValidatorOptions), 'tipoFormula' => new CoreExt_Validate_Choice(array('choices' => $tipoFormula->getKeys())));
 }
Пример #25
0
 protected function getEscolaId($escolaId = null)
 {
     if (!$escolaId && $this->viewInstance->ref_cod_escola) {
         $escolaId = $this->viewInstance->ref_cod_escola;
     } elseif (!$escolaId && is_numeric($this->viewInstance->ref_cod_biblioteca)) {
         $biblioteca = App_Model_IedFinder::getBiblioteca($this->viewInstance->ref_cod_biblioteca);
         $escolaId = $biblioteca['ref_cod_escola'];
     } elseif (!$escolaId) {
         $escolaId = $this->getPermissoes()->getEscola($this->getCurrentUserId());
     }
     return $escolaId;
 }
Пример #26
0
 function Gerar()
 {
     if ($_POST) {
         foreach ($_POST as $campo => $val) {
             $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val;
         }
     }
     $this->campoOculto('cod_turma', $this->cod_turma);
     // foreign keys
     $obrigatorio = FALSE;
     $instituicao_obrigatorio = TRUE;
     $escola_curso_obrigatorio = TRUE;
     $curso_obrigatorio = TRUE;
     $get_escola = TRUE;
     $get_escola_curso_serie = FALSE;
     $sem_padrao = TRUE;
     $get_curso = TRUE;
     $bloqueia = false;
     $anoVisivel = false;
     if (isset($this->ano) || !is_numeric($this->cod_turma)) {
         $anoVisivel = true;
     }
     if (!isset($this->cod_turma)) {
         $bloqueia = false;
     } else {
         if (is_numeric($this->cod_turma)) {
             $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
             $obj_matriculas_turma->setOrderby('nome_aluno');
             $lst_matriculas_turma = $obj_matriculas_turma->lista(NULL, $this->cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, array(1, 2, 3), NULL, NULL, NULL, NULL, TRUE, NULL, 1, TRUE);
             if (is_array($lst_matriculas_turma) && count($lst_matriculas_turma) > 0) {
                 $bloqueia = true;
             }
         }
     }
     $desabilitado = $bloqueia;
     include 'include/pmieducar/educar_campo_lista.php';
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     $opcoes_serie = array('' => 'Selecione');
     // Editar
     if ($this->ref_cod_curso) {
         $obj_serie = new clsPmieducarSerie();
         $obj_serie->setOrderby('nm_serie ASC');
         $lst_serie = $obj_serie->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
         if (is_array($lst_serie) && count($lst_serie)) {
             foreach ($lst_serie as $serie) {
                 $opcoes_serie[$serie['cod_serie']] = $serie['nm_serie'];
             }
         }
     }
     if ($bloqueia) {
         $this->campoOculto('serie_param', $this->serie_param = $this->ref_ref_cod_serie);
         $this->campoOculto('escola_param', $this->escola_param = $this->ref_cod_escola);
     }
     $this->campoLista('ref_ref_cod_serie', 'Série', $opcoes_serie, $this->ref_ref_cod_serie, '', FALSE, '', NULL, $bloqueia);
     // o campo ano somente é exibido para turmas novas  ou cadastradas após inclusão deste campo.
     if ($anoVisivel) {
         $this->inputsHelper()->dynamic('anoLetivo', array('disabled' => $bloqueia));
         if ($bloqueia) {
             $this->inputsHelper()->hidden('ano_hidden', array('value' => $this->ano));
         }
     }
     // Infra prédio cômodo
     $opcoes = array('' => 'Selecione');
     // Editar
     if ($this->ref_ref_cod_escola) {
         $obj_infra_predio = new clsPmieducarInfraPredio();
         $obj_infra_predio->setOrderby('nm_predio ASC');
         $lst_infra_predio = $obj_infra_predio->lista(NULL, NULL, NULL, $this->ref_ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
         if (is_array($lst_infra_predio) && count($lst_infra_predio)) {
             foreach ($lst_infra_predio as $predio) {
                 $obj_infra_predio_comodo = new clsPmieducarInfraPredioComodo();
                 $lst_infra_predio_comodo = $obj_infra_predio_comodo->lista(NULL, NULL, NULL, NULL, $predio['cod_infra_predio'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
                 if (is_array($lst_infra_predio_comodo) && count($lst_infra_predio_comodo)) {
                     foreach ($lst_infra_predio_comodo as $comodo) {
                         $opcoes[$comodo['cod_infra_predio_comodo']] = $comodo['nm_comodo'];
                     }
                 }
             }
         }
     }
     $this->campoLista('ref_cod_infra_predio_comodo', 'Sala', $opcoes, $this->ref_cod_infra_predio_comodo, NULL, NULL, NULL, NULL, NULL, FALSE);
     $array_servidor = array('' => 'Selecione um servidor');
     if ($this->ref_cod_regente) {
         $obj_pessoa = new clsPessoa_($this->ref_cod_regente);
         $det = $obj_pessoa->detalhe();
         $array_servidor[$this->ref_cod_regente] = $det['nome'];
     }
     $this->campoListaPesq('ref_cod_regente', 'Professor/Regente', $array_servidor, $this->ref_cod_regente, '', '', FALSE, '', '', NULL, NULL, '', TRUE, FALSE, FALSE);
     // Turma tipo
     $opcoes = array('' => 'Selecione');
     // Editar
     if ($this->ref_cod_instituicao) {
         $objTemp = new clsPmieducarTurmaTipo();
         $objTemp->setOrderby('nm_tipo ASC');
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes[$registro['cod_turma_tipo']] = $registro['nm_tipo'];
             }
         }
     }
     $this->campoLista('ref_cod_turma_tipo', 'Tipo de Turma', $opcoes, $this->ref_cod_turma_tipo, '', FALSE, '', NULL);
     $this->campoTexto('nm_turma', 'Turma', $this->nm_turma, 30, 255, TRUE);
     $this->campoTexto('sgl_turma', 'Sigla', $this->sgl_turma, 15, 15, FALSE);
     $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE);
     $this->inputsHelper()->date('data_fechamento', array('required' => false, 'label' => 'Data de fechamento', 'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_fechamento)));
     $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true;
     $this->campoCheck('visivel', 'Ativo', $ativo);
     $this->campoCheck('multiseriada', 'Multi-Seriada', $this->multiseriada, '', FALSE, FALSE);
     $this->campoLista('ref_ref_cod_serie_mult', 'Série', array('' => 'Selecione'), '', '', FALSE, '', '', '', FALSE);
     $this->campoOculto('ref_ref_cod_serie_mult_', $this->ref_ref_cod_serie_mult);
     $this->campoQuebra2();
     // hora
     $this->campoHora('hora_inicial', 'Hora Inicial', $this->hora_inicial, FALSE);
     $this->campoHora('hora_final', 'Hora Final', $this->hora_final, FALSE);
     $this->campoHora('hora_inicio_intervalo', Portabilis_String_Utils::toLatin1('Hora Início Intervalo'), $this->hora_inicio_intervalo, FALSE);
     $this->campoHora('hora_fim_intervalo', 'Hora Fim Intervalo', $this->hora_fim_intervalo, FALSE);
     $this->inputsHelper()->turmaTurno();
     // modelos boletim
     require_once 'Portabilis/Model/Report/TipoBoletim.php';
     require_once 'Portabilis/Array/Utils.php';
     $tiposBoletim = Portabilis_Model_Report_TipoBoletim::getInstance()->getEnums();
     $tiposBoletim = Portabilis_Array_Utils::insertIn(null, "Selecione um modelo", $tiposBoletim);
     $this->campoLista('tipo_boletim', Portabilis_String_Utils::toLatin1('Modelo relatório boletim'), $tiposBoletim, $this->tipo_boletim);
     $this->campoQuebra2();
     if ($this->ref_ref_cod_serie) {
         require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php';
         require_once 'ComponenteCurricular/Model/AnoEscolarDataMapper.php';
         require_once 'ComponenteCurricular/Model/TurmaDataMapper.php';
         $disciplinas = '';
         $conteudo = '';
         // Instancia o mapper de componente curricular
         $mapper = new ComponenteCurricular_Model_ComponenteDataMapper();
         // Instancia o mapper de ano escolar
         $anoEscolar = new ComponenteCurricular_Model_AnoEscolarDataMapper();
         $lista = $anoEscolar->findComponentePorSerie($this->ref_ref_cod_serie);
         // Instancia o mapper de turma
         $componenteTurmaMapper = new ComponenteCurricular_Model_TurmaDataMapper();
         $componentesTurma = array();
         if (isset($this->cod_turma) && is_numeric($this->cod_turma)) {
             $componentesTurma = $componenteTurmaMapper->findAll(array(), array('turma' => $this->cod_turma));
         }
         $componentes = array();
         foreach ($componentesTurma as $componenteTurma) {
             $componentes[$componenteTurma->get('componenteCurricular')] = $componenteTurma;
         }
         unset($componentesTurma);
         $this->escola_serie_disciplina = array();
         if (is_array($lista) && count($lista)) {
             $conteudo .= '<div style="margin-bottom: 10px;">';
             $conteudo .= '  <span style="display: block; float: left; width: 250px;">Nome</span>';
             $conteudo .= '  <span style="display: block; float: left; width: 100px;">' . Portabilis_String_Utils::toLatin1('Carga horária') . '</span>';
             $conteudo .= '  <span style="display: block; float: left">' . Portabilis_String_Utils::toLatin1('Usar padrão do componente?') . '</span>';
             $conteudo .= '</div>';
             $conteudo .= '<br style="clear: left" />';
             foreach ($lista as $registro) {
                 $checked = '';
                 $usarComponente = FALSE;
                 if (isset($componentes[$registro->id])) {
                     $checked = 'checked="checked"';
                 }
                 if (is_null($componentes[$registro->id]->cargaHoraria) || 0 == $componentes[$registro->id]->cargaHoraria) {
                     $usarComponente = TRUE;
                 } else {
                     $cargaHoraria = $componentes[$registro->id]->cargaHoraria;
                 }
                 $cargaComponente = $registro->cargaHoraria;
                 $conteudo .= '<div style="margin-bottom: 10px; float: left">';
                 $conteudo .= "  <label style='display: block; float: left; width: 250px'><input type=\"checkbox\" {$checked} name=\"disciplinas[{$registro->id}]\" id=\"disciplinas[]\" value=\"{$registro->id}\">{$registro}</label>";
                 $conteudo .= "  <label style='display: block; float: left; width: 100px;'><input type='text' name='carga_horaria[{$registro->id}]' value='{$cargaHoraria}' size='5' maxlength='7'></label>";
                 $conteudo .= "  <label style='display: block; float: left'><input type='checkbox' name='usar_componente[{$registro->id}]' value='1' " . ($usarComponente == TRUE ? $checked : '') . ">({$cargaComponente} h)</label>";
                 $conteudo .= '</div>';
                 $conteudo .= '<br style="clear: left" />';
                 $cargaHoraria = '';
             }
             $disciplinas = '<table cellspacing="0" cellpadding="0" border="0">';
             $disciplinas .= sprintf('<tr align="left"><td>%s</td></tr>', $conteudo);
             $disciplinas .= '</table>';
         } else {
             $disciplinas = Portabilis_String_Utils::toLatin1('A série/ano escolar não possui componentes curriculares cadastrados.');
         }
     }
     $componentes = $help = array();
     try {
         $componentes = App_Model_IedFinder::getEscolaSerieDisciplina($this->ref_ref_cod_serie, $this->ref_cod_escola);
     } catch (Exception $e) {
     }
     foreach ($componentes as $componente) {
         $help[] = sprintf('%s (%.0f h)', $componente->nome, $componente->cargaHoraria);
     }
     if (count($componentes)) {
         $help = '<ul><li>' . implode('</li><li>', $help) . '</li></ul>';
     } else {
         $help = '';
     }
     $label = 'Componentes curriculares:<br />' . '<strong>Observa&ccedil;&atilde;o:</strong> caso n&atilde;o defina os componentes<br />' . 'curriculares para a turma, esta usar&aacute; a defini&ccedil;&atilde;o<br />' . 'da s&eacute;rie/ano escolar da escola:' . '<span id="_escola_serie_componentes">%s</span>';
     $label = sprintf($label, $help);
     $this->campoRotulo('disciplinas_', $label, "<div id='disciplinas'>{$disciplinas}</div>");
     $this->campoQuebra2();
     if ($_POST['turma_modulo']) {
         $this->turma_modulo = unserialize(urldecode($_POST['turma_modulo']));
     }
     $qtd_modulo = count($this->turma_modulo) == 0 ? 1 : count($this->turma_modulo) + 1;
     if (is_numeric($this->cod_turma) && !$_POST) {
         $obj = new clsPmieducarTurmaModulo();
         $registros = $obj->lista($this->cod_turma);
         if ($registros) {
             foreach ($registros as $campo) {
                 $this->turma_modulo[$campo[$qtd_modulo]]['sequencial_'] = $campo['sequencial'];
                 $this->turma_modulo[$campo[$qtd_modulo]]['ref_cod_modulo_'] = $campo['ref_cod_modulo'];
                 $this->turma_modulo[$campo[$qtd_modulo]]['data_inicio_'] = dataFromPgToBr($campo['data_inicio']);
                 $this->turma_modulo[$campo[$qtd_modulo]]['data_fim_'] = dataFromPgToBr($campo['data_fim']);
                 $qtd_modulo++;
             }
         }
     }
     if ($_POST["ref_cod_modulo"] && $_POST["data_inicio"] && $_POST["data_fim"]) {
         $this->turma_modulo[$qtd_modulo]["sequencial_"] = $qtd_modulo;
         $this->turma_modulo[$qtd_modulo]["ref_cod_modulo_"] = $_POST["ref_cod_modulo"];
         $this->turma_modulo[$qtd_modulo]["data_inicio_"] = $_POST["data_inicio"];
         $this->turma_modulo[$qtd_modulo]["data_fim_"] = $_POST["data_fim"];
         $qtd_modulo++;
         unset($this->ref_cod_modulo);
         unset($this->data_inicio);
         unset($this->data_fim);
     }
     $this->campoOculto("excluir_modulo", "");
     $qtd_modulo = 1;
     unset($aux);
     if ($this->turma_modulo) {
         foreach ($this->turma_modulo as $campo) {
             if ($this->excluir_modulo == $campo['sequencial_']) {
                 $this->turma_modulo[$campo['sequencial']] = NULL;
                 $this->excluir_modulo = NULL;
             } else {
                 $obj_modulo = new clsPmieducarModulo($campo['ref_cod_modulo_']);
                 $det_modulo = $obj_modulo->detalhe();
                 $nm_tipo_modulo = $det_modulo['nm_tipo'];
                 $this->campoTextoInv('ref_cod_modulo_' . $campo['sequencial_'], '', $nm_tipo_modulo, 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_modulo');
                 $this->campoTextoInv('data_inicio_' . $campo['sequencial_'], '', $campo['data_inicio_'], 10, 10, FALSE, FALSE, TRUE, '', '', '', '', '');
                 $this->campoTextoInv('data_fim_' . $campo['sequencial_'], '', $campo['data_fim_'], 10, 10, FALSE, FALSE, FALSE, '', "<a href='#' onclick=\"document.getElementById('excluir_modulo').value = '{$campo["sequencial_"]}'; document.getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>", '', '', '');
                 $aux[$qtd_modulo]['sequencial_'] = $qtd_modulo;
                 $aux[$qtd_modulo]['ref_cod_modulo_'] = $campo['ref_cod_modulo_'];
                 $aux[$qtd_modulo]['data_inicio_'] = $campo['data_inicio_'];
                 $aux[$qtd_modulo]['data_fim_'] = $campo['data_fim_'];
                 $qtd_modulo++;
             }
         }
         unset($this->turma_modulo);
         $this->turma_modulo = $aux;
     }
     $this->campoOculto('turma_modulo', serialize($this->turma_modulo));
     // Módulo
     // foreign keys
     $opcoes = array('' => 'Selecione');
     // Editar
     if ($this->ref_cod_instituicao) {
         $objTemp = new clsPmieducarModulo();
         $objTemp->setOrderby('nm_tipo ASC');
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes[$registro['cod_modulo']] = $registro['nm_tipo'];
             }
         }
     }
     $this->campoLista('ref_cod_modulo', Portabilis_String_utils::toLatin1('Módulo'), $opcoes, $this->ref_cod_modulo, NULL, NULL, NULL, NULL, NULL, FALSE);
     $this->campoData('data_inicio', Portabilis_String_utils::toLatin1('Data Início'), $this->data_inicio, FALSE);
     $this->campoData('data_fim', 'Data Fim', $this->data_fim, FALSE);
     $this->campoOculto('incluir_modulo', '');
     $this->campoRotulo('bt_incluir_modulo', Portabilis_String_utils::toLatin1('Módulo'), "<a href='#' onclick=\"document.getElementById('incluir_modulo').value = 'S'; document.getElementById('tipoacao').value = ''; acao();\"><img src='imagens/nvp_bot_adiciona.gif' alt='adicionar' title='Incluir' border=0></a>");
     $this->campoQuebra2();
     if ($_POST['turma_dia_semana']) {
         $this->turma_dia_semana = unserialize(urldecode($_POST['turma_dia_semana']));
     }
     if (is_numeric($this->cod_turma) && !$_POST) {
         $obj = new clsPmieducarTurmaDiaSemana();
         $registros = $obj->lista(NULL, $this->cod_turma);
         if ($registros) {
             foreach ($registros as $campo) {
                 $aux['dia_semana_'] = $campo['dia_semana'];
                 $aux['hora_inicial_'] = $campo['hora_inicial'];
                 $aux['hora_final_'] = $campo['hora_final'];
                 $this->turma_dia_semana[] = $aux;
             }
         }
     }
     unset($aux);
     if ($_POST['dia_semana'] && $_POST['ds_hora_inicial'] && $_POST['ds_hora_final']) {
         $aux['dia_semana_'] = $_POST['dia_semana'];
         $aux['hora_inicial_'] = $_POST['ds_hora_inicial'];
         $aux['hora_final_'] = $_POST['ds_hora_final'];
         $this->turma_dia_semana[] = $aux;
         unset($this->dia_semana);
         unset($this->ds_hora_inicial);
         unset($this->ds_hora_final);
     }
     $this->campoOculto('excluir_dia_semana', '');
     unset($aux);
     if ($this->turma_dia_semana) {
         foreach ($this->turma_dia_semana as $key => $dias_semana) {
             if ($this->excluir_dia_semana == $dias_semana['dia_semana_']) {
                 unset($this->turma_dia_semana[$key]);
                 unset($this->excluir_dia_semana);
             } else {
                 $nm_dia_semana = $this->dias_da_semana[$dias_semana['dia_semana_']];
                 $this->campoTextoInv('dia_semana_' . $dias_semana['dia_semana_'], '', $nm_dia_semana, 8, 8, FALSE, FALSE, TRUE, '', '', '', '', 'dia_semana');
                 $this->campoTextoInv('hora_inicial_' . $dias_semana['dia_semana_'], '', $dias_semana['hora_inicial_'], 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_inicial_');
                 $this->campoTextoInv('hora_final_' . $dias_semana['dia_semana_'], '', $dias_semana['hora_final_'], 5, 5, FALSE, FALSE, FALSE, '', "<a href='#' onclick=\"document.getElementById('excluir_dia_semana').value = '{$dias_semana["dia_semana_"]}'; document.getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>", '', '', 'ds_hora_final_');
                 $aux['dia_semana_'] = $dias_semana['dia_semana_'];
                 $aux['hora_inicial_'] = $dias_semana['hora_inicial_'];
                 $aux['hora_final_'] = $dias_semana['hora_final_'];
             }
         }
     }
     $this->campoOculto('turma_dia_semana', serialize($this->turma_dia_semana));
     if (class_exists('clsPmieducarTurmaDiaSemana')) {
         $opcoes = $this->dias_da_semana;
     } else {
         echo '<!--\\nErro\\nClasse clsPmieducarTurmaDiaSemana não encontrada\\n-->';
         $opcoes = array('' => Portabilis_String_utils::toLatin1('Erro na geração'));
     }
     $this->campoLista('dia_semana', 'Dia Semana', $opcoes, $this->dia_semana, NULL, false, '', '', false, false);
     $this->campoHora('ds_hora_inicial', 'Hora Inicial', $this->ds_hora_inicial, FALSE);
     $this->campoHora('ds_hora_final', 'Hora Final', $this->ds_hora_final, FALSE);
     $this->campoOculto('incluir_dia_semana', '');
     $this->campoRotulo('bt_incluir_dia_semana', 'Dia Semana', "<a href='#' onclick=\"document.getElementById('incluir_dia_semana').value = 'S'; document.getElementById('tipoacao').value = ''; acao();\"><img src='imagens/nvp_bot_adiciona.gif' alt='adicionar' title='Incluir' border=0></a>");
     $this->campoOculto('padrao_ano_escolar', $this->padrao_ano_escolar);
     $this->acao_enviar = 'valida()';
 }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     if (empty($this->ref_cod_turma)) {
         echo '
     <script>
       alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     if ($this->ref_cod_escola) {
         $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
         $det_escola = $obj_escola->detalhe();
         $this->nm_escola = $det_escola['nome'];
         $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
         $det_instituicao = $obj_instituicao->detalhe();
         $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     }
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']);
     $det = $obj_pessoa->detalhe();
     $this->nm_professor = $det['nome'];
     if (!$lista_calendario) {
         echo '
     <script>
       alert("Escola não possui calendário definido para este ano");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     $titulo = 'Diário de Classe - ' . $this->ano;
     $prox_mes = $this->mes + 1;
     $this->pdf = new clsPDF($titulo, $titulo, 'A4', '', FALSE, FALSE);
     $altura_linha = 15;
     $inicio_escrita_y = 175;
     $altura_pagina = 760;
     $obj = new clsPmieducarSerie();
     $obj->setOrderby('cod_serie, etapa_curso');
     $lista_serie_curso = $obj->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     // Recupera a lista de componentes curriculares da escola/série
     $componentes = App_Model_IedFinder::getEscolaSerieDisciplina($this->ref_cod_serie, $this->ref_cod_escola);
     if (0 == count($componentes)) {
         echo '
     <script>
       alert("Turma não possui matriculas");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return;
     } else {
         foreach ($componentes as $id => $componente) {
             $this->nm_disciplina = $componente->nome;
             $this->page_y = 139;
             // Número de semanas dos meses
             $obj_quadro = new clsPmieducarQuadroHorario();
             $obj_quadro->setCamposLista('cod_quadro_horario');
             $quadro_horario = $obj_quadro->lista(NULL, NULL, NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, 1);
             if (!$quadro_horario && $det_curso['avaliacao_globalizada'] == 't') {
                 echo '
         <script>
           alert("Turma não possui quadro de horários");
           window.location = "educar_relatorio_diario_classe.php";
         </script>';
                 break;
             }
             $obj_quadro_horarios = new clsPmieducarQuadroHorarioHorarios();
             $obj_quadro_horarios->setCamposLista('dia_semana');
             $obj_quadro_horarios->setOrderby('1 asc');
             $lista_quadro_horarios = $obj_quadro_horarios->lista($quadro_horario, $this->ref_cod_serie, $this->ref_cod_escola, $disciplina, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
             if (!$this->em_branco) {
                 $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                 $obj_matricula_turma->setOrderby('nome_ascii');
                 $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, TRUE, NULL, NULL, TRUE);
             }
             $num_aluno = 1;
             if ($lista_matricula || $this->em_branco) {
                 $this->pdf->OpenPage();
                 $this->addCabecalho();
                 if ($this->em_branco) {
                     $lista_matricula = array();
                     $this->numero_registros = $this->numero_registros ? $this->numero_registros : 20;
                     for ($i = 0; $i < $this->numero_registros; $i++) {
                         $lista_matricula[] = '';
                     }
                 }
                 foreach ($lista_matricula as $matricula) {
                     if ($this->page_y > $altura_pagina) {
                         $this->desenhaLinhasVertical();
                         $this->pdf->ClosePage();
                         $this->pdf->OpenPage();
                         $this->page_y = 139;
                         $this->addCabecalho();
                     }
                     $this->pdf->quadrado_relativo(30, $this->page_y, 540, $altura_linha);
                     $this->pdf->escreve_relativo($num_aluno, 38, $this->page_y + 4, 30, 15, $fonte, 7, $corTexto, 'left');
                     $this->pdf->escreve_relativo($matricula['nome_aluno'], 55, $this->page_y + 4, 160, 15, $fonte, 7, $corTexto, 'left');
                     $num_aluno++;
                     $this->page_y += $altura_linha;
                 }
                 $this->desenhaLinhasVertical();
                 $this->rodape();
                 $this->pdf->ClosePage();
             }
         }
         $this->pdf->CloseFile();
         $this->get_link = $this->pdf->GetLink();
     }
     echo sprintf('
   <script>
     window.onload=function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br>
       <a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">
         Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a>
       </span>
     </center>
   </html>', $this->get_link);
 }
Пример #28
0
 public function getDefaultValidatorCollection()
 {
     $instituicoes = array_keys(App_Model_IedFinder::getInstituicoes());
     return array('instituicao' => new CoreExt_Validate_Choice(array('choices' => $instituicoes)), 'nome' => new CoreExt_Validate_String(array('min' => 5, 'max' => 60)), 'secao' => new CoreExt_Validate_String(array('min' => 0, 'max' => 50)));
 }
Пример #29
0
 /**
  * Setter.
  * @return App_Service_Boletim Provê interface fluída
  */
 protected function _setMatriculaInfo()
 {
     $codMatricula = $this->getOption('matricula');
     $this->_setRegra(App_Model_IedFinder::getRegraAvaliacaoPorMatricula($codMatricula, $this->getRegraDataMapper()))->_setComponentes(App_Model_IedFinder::getComponentesPorMatricula($codMatricula, $this->getComponenteDataMapper(), $this->getComponenteTurmaDataMapper()));
     // Valores scalar de referência
     $matricula = App_Model_IedFinder::getMatricula($codMatricula);
     $etapas = App_Model_IedFinder::getQuantidadeDeModulosMatricula($codMatricula);
     $this->setOption('matriculaData', $matricula);
     $this->setOption('aprovado', $matricula['aprovado']);
     $this->setOption('cursoHoraFalta', $matricula['curso_hora_falta']);
     $this->setOption('cursoCargaHoraria', $matricula['curso_carga_horaria']);
     $this->setOption('serieCargaHoraria', $matricula['serie_carga_horaria']);
     $this->setOption('etapas', $etapas);
     return $this;
 }
Пример #30
0
 /**
  * @see clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('id', $this->getEntity()->id);
     // Instituição
     $instituicoes = App_Model_IedFinder::getInstituicoes();
     $this->campoLista('instituicao', $this->_getLabel('instituicao'), $instituicoes, $this->getEntity()->instituicao);
     // Nome
     $this->campoTexto('nome', $this->_getLabel('nome'), $this->getEntity()->nome, 50, 50, TRUE, FALSE, FALSE, $this->_getHelp('nome'));
     // Nota tipo valor
     $notaTipoValor = RegraAvaliacao_Model_Nota_TipoValor::getInstance();
     $this->campoRadio('tipoNota', $this->_getLabel('tipoNota'), $notaTipoValor->getEnums(), $this->getEntity()->get('tipoNota'), '', $this->_getHelp('tipoNota'));
     // Tabela de arredondamento
     $tabelaArredondamento = $this->getDataMapper()->findTabelaArredondamento($this->getEntity());
     $tabelaArredondamento = CoreExt_Entity::entityFilterAttr($tabelaArredondamento, 'id', 'nome');
     if (empty($tabelaArredondamento)) {
         $tabelaArredondamento = array(0 => 'O tipo de nota não possui tabela de arredondamento.');
     }
     $this->campoLista('tabelaArredondamento', $this->_getLabel('tabelaArredondamento'), $tabelaArredondamento, $this->getEntity()->get('tabelaArredondamento'), '', FALSE, $this->_getHelp('tabelaArredondamento'), '', FALSE, FALSE);
     // Tipo progressão
     $tipoProgressao = RegraAvaliacao_Model_TipoProgressao::getInstance();
     $this->campoRadio('tipoProgressao', $this->_getLabel('tipoProgressao'), $tipoProgressao->getEnums(), $this->getEntity()->get('tipoProgressao'), '', $this->_getHelp('tipoProgressao'));
     // Média
     $this->campoTexto('media', $this->_getLabel('media'), $this->getEntity()->media, 5, 50, FALSE, FALSE, FALSE, $this->_getHelp('media'));
     $this->campoTexto('mediaRecuperacao', $this->_getLabel('mediaRecuperacao'), $this->getEntity()->mediaRecuperacao, 5, 50, FALSE, FALSE, FALSE, $this->_getHelp('mediaRecuperacao'));
     // Cálculo média
     $formulas = $this->getDataMapper()->findFormulaMediaFinal();
     $formulas = CoreExt_Entity::entityFilterAttr($formulas, 'id', 'nome');
     $this->campoLista('formulaMedia', $this->_getLabel('formulaMedia'), $formulas, $this->getEntity()->get('formulaMedia'), '', FALSE, $this->_getHelp('formulaMedia'), '', FALSE, FALSE);
     // Cálculo média recuperação
     $formulas = $this->getDataMapper()->findFormulaMediaRecuperacao();
     $formulasArray = array(0 => 'Não usar recuperação');
     $formulasArray = $formulasArray + CoreExt_Entity::entityFilterAttr($formulas, 'id', 'nome');
     $this->campoLista('formulaRecuperacao', $this->_getLabel('formulaRecuperacao'), $formulasArray, $this->getEntity()->get('formulaRecuperacao'), '', FALSE, $this->_getHelp('formulaRecuperacao'), '', FALSE, FALSE);
     // Porcentagem presença
     $this->campoTexto('porcentagemPresenca', $this->_getLabel('porcentagemPresenca'), $this->getEntity()->porcentagemPresenca, 5, 50, TRUE, FALSE, FALSE, $this->_getHelp('porcentagemPresenca'));
     // Parecer descritivo
     $parecerDescritivo = RegraAvaliacao_Model_TipoParecerDescritivo::getInstance();
     $this->campoRadio('parecerDescritivo', $this->_getLabel('parecerDescritivo'), $parecerDescritivo->getEnums(), $this->getEntity()->get('parecerDescritivo'), '', $this->_getHelp('parecerDescritivo'));
     // Presença
     $tipoPresenca = RegraAvaliacao_Model_TipoPresenca::getInstance();
     $this->campoRadio('tipoPresenca', $this->_getLabel('tipoPresenca'), $tipoPresenca->getEnums(), $this->getEntity()->get('tipoPresenca'), '', $this->_getHelp('tipoPresenca'));
 }