function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(620, $this->pessoa_logada, 7, "educar_calendario_anotacao_lst.php");
     $obj_dia = new clsPmieducarCalendarioDia($this->ref_ref_cod_calendario_ano_letivo, $this->mes, $this->dia);
     if (!$obj_dia->existe()) {
         $obj_dia = new clsPmieducarCalendarioDia($this->ref_ref_cod_calendario_ano_letivo, $this->mes, $this->dia, null, $this->pessoa_logada, null, null, null, null, 1);
         $ref_cod_dia_letivo = $obj_dia->cadastra();
         if (!$ref_cod_dia_letivo) {
             echo "<!--\nErro ao cadastrar clsPmieducarCalendarioDia -->";
             return false;
         }
     }
     $obj = new clsPmieducarCalendarioAnotacao($this->cod_calendario_anotacao, $this->pessoa_logada, $this->pessoa_logada, $this->nm_anotacao, $this->descricao, $this->data_cadastro, $this->data_exclusao, $this->ativo);
     $cadastrou = $obj->cadastra();
     if ($cadastrou) {
         $obj_anotacao_dia = new clsPmieducarCalendarioDiaAnotacao($this->dia, $this->mes, $this->ref_ref_cod_calendario_ano_letivo, $cadastrou);
         $cadastrado = $obj_anotacao_dia->cadastra();
         if ($cadastrado) {
             $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
             header("location: educar_calendario_anotacao_lst.php?dia={$this->dia}&mes={$this->mes}&ano={$this->ano}&ref_cod_calendario_ano_letivo={$this->ref_ref_cod_calendario_ano_letivo}");
             return true;
         }
         return false;
     }
     die("tres");
     $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
     echo "<!--\nErro ao cadastrar clsPmieducarCalendarioAnotacao\nvalores obrigatorios\nis_numeric( {$this->ref_usuario_exc} ) && is_numeric( {$this->ref_usuario_cad} ) && is_string( {$this->nm_anotacao} )\n-->";
     return false;
 }
 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 Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     foreach ($_GET as $var => $val) {
         // passa todos os valores obtidos no GET para atributos do objeto
         $this->{$var} = $val === "" ? null : $val;
     }
     if ($this->ref_cod_calendario_ano_letivo && $this->ano && $this->mes && $this->dia) {
         $obj_calendario = new clsPmieducarCalendarioAnoLetivo($this->ref_cod_calendario_ano_letivo);
         if (!$obj_calendario->existe()) {
             header("location: educar_calendario_ano_letivo_lst.php");
             die;
         }
         $this->titulo = "Anota&ccedil;&otilde;oes Calend&aacute;rio <b>{$this->dia}/{$this->mes}/{$this->ano}</b> - Listagem";
         @session_start();
         $_SESSION["calendario"]["anotacao"]["dia"] = $this->dia;
         $_SESSION["calendario"]["anotacao"]["mes"] = $this->mes;
         $_SESSION["calendario"]["anotacao"]["ano"] = $this->ano;
         $_SESSION["calendario"]["anotacao"]["ref_cod_calendario_ano_letivo"] = $this->ref_cod_calendario_ano_letivo;
         session_write_close();
     } else {
         header("location: educar_calendario_ano_letivo_lst.php");
     }
     $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet");
     $this->addCabecalhos(array("Anotac&atilde;o", "Descri&ccedil;&atilde;o"));
     // Filtros de Foreign Keys
     //// outros Filtros
     //	$this->campoTexto( "nm_anotacao", "Nome Anotac&atilde;o", $this->nm_anotacao, 30, 255, false );
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET["pagina_{$this->nome}"] ? $_GET["pagina_{$this->nome}"] * $this->limite - $this->limite : 0;
     /*$obj_calendario_anotacao = new clsPmieducarCalendarioAnotacao();
     		$obj_calendario_anotacao->setOrderby( "nm_anotacao ASC" );
     		$obj_calendario_anotacao->setLimite( $this->limite, $this->offset );
     
     		$lista = $obj_calendario_anotacao->lista(
     			$this->cod_calendario_anotacao,
     			null,
     			null,
     			$this->nm_anotacao,
     			$this->descricao,
     			null,
     			null,
     			1
     		);*/
     $obj_calendario_anotacao_dia = new clsPmieducarCalendarioDiaAnotacao();
     $obj_calendario_anotacao_dia->setLimite($this->limite, $this->offset);
     $lista = $obj_calendario_anotacao_dia->lista($this->dia, $this->mes, $this->ref_cod_calendario_ano_letivo, null, 1);
     $total = $obj_calendario_anotacao_dia->_total;
     // monta a lista
     $get = "&dia={$this->dia}&mes={$this->mes}&ano={$this->ano}&ref_cod_calendario_ano_letivo={$this->ref_cod_calendario_ano_letivo}";
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             $obj_calendario_anotacao = new clsPmieducarCalendarioAnotacao($registro['ref_cod_calendario_anotacao'], null, null, null, null, null, null, 1);
             $det = $obj_calendario_anotacao->detalhe();
             /*
             	"<a href=\"educar_calendario_anotacao_det.php?cod_calendario_anotacao={$det["cod_calendario_anotacao"]}\">{$registro["ref_dia"]}</a>",
             	"<a href=\"educar_calendario_anotacao_det.php?cod_calendario_anotacao={$det["cod_calendario_anotacao"]}\">{$registro["ref_mes"]}</a>",
             */
             $this->addLinhas(array("<a href=\"educar_calendario_anotacao_cad.php?cod_calendario_anotacao={$det["cod_calendario_anotacao"]}{$get}\">{$det["nm_anotacao"]}</a>", "<a href=\"educar_calendario_anotacao_cad.php?cod_calendario_anotacao={$det["cod_calendario_anotacao"]}{$get}\">{$det["descricao"]}</a>"));
         }
     }
     $this->addPaginador2("educar_calendario_anotacao_lst.php", $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(620, $this->pessoa_logada, 7)) {
         $this->acao = "go(\"educar_calendario_anotacao_cad.php?dia={$this->dia}&mes={$this->mes}&ano={$this->ano}&ref_cod_calendario_ano_letivo={$this->ref_cod_calendario_ano_letivo}\")";
         $this->nome_acao = "Nova Anota&ccedil;&atilde;o";
         $this->array_botao = array('Dia Extra/N&atilde;o Letivo', 'Calend&aacute;rio');
         $this->array_botao_url = array("educar_calendario_dia_cad.php?dia={$this->dia}&mes={$this->mes}&ano={$this->ano}&ref_cod_calendario_ano_letivo={$this->ref_cod_calendario_ano_letivo}", "educar_calendario_ano_letivo_lst.php?dia={$this->dia}&mes={$this->mes}&ano={$this->ano}&ref_cod_calendario_ano_letivo={$this->ref_cod_calendario_ano_letivo}");
     }
     $this->largura = "100%";
 }