Пример #1
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Biblioteca - Detalhe";
     $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet");
     $this->cod_biblioteca = $_GET["cod_biblioteca"];
     $tmp_obj = new clsPmieducarBiblioteca($this->cod_biblioteca);
     $registro = $tmp_obj->detalhe();
     if (!$registro) {
         header("location: educar_biblioteca_lst.php");
         die;
     }
     if (class_exists("clsPmieducarInstituicao")) {
         $obj_ref_cod_instituicao = new clsPmieducarInstituicao($registro["ref_cod_instituicao"]);
         $det_ref_cod_instituicao = $obj_ref_cod_instituicao->detalhe();
         $registro["ref_cod_instituicao"] = $det_ref_cod_instituicao["nm_instituicao"];
     } else {
         $registro["ref_cod_instituicao"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarInstituicao\n-->";
     }
     if (class_exists("clsPmieducarEscola")) {
         $obj_ref_cod_escola = new clsPmieducarEscola($registro["ref_cod_escola"]);
         $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
         $idpes = $det_ref_cod_escola["ref_idpes"];
         if ($idpes) {
             $obj_escola = new clsPessoaJuridica($idpes);
             $obj_escola_det = $obj_escola->detalhe();
             $registro["ref_cod_escola"] = $obj_escola_det["fantasia"];
         } else {
             $obj_escola = new clsPmieducarEscolaComplemento($registro["ref_cod_escola"]);
             $obj_escola_det = $obj_escola->detalhe();
             $registro["ref_cod_escola"] = $obj_escola_det["nm_escola"];
         }
     } else {
         $registro["ref_cod_escola"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarEscola\n-->";
     }
     $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&ccedil;&atilde;o", "{$registro["ref_cod_instituicao"]}"));
         }
     }
     if ($registro["ref_cod_escola"]) {
         $this->addDetalhe(array("Escola", "{$registro["ref_cod_escola"]}"));
     }
     if ($registro["nm_biblioteca"]) {
         $this->addDetalhe(array("Biblioteca", "{$registro["nm_biblioteca"]}"));
     }
     if ($registro["tombo_automatico"]) {
         $this->addDetalhe(array("Tombo Automático", dbBool($registro["tombo_automatico"]) ? "Sim" : "Não"));
     }
     $obj = new clsPmieducarBibliotecaUsuario();
     $lst = $obj->lista($this->cod_biblioteca);
     if ($lst) {
         $tabela = "<TABLE>\n\t\t\t\t\t       <TR align=center>\n\t\t\t\t\t           <TD bgcolor=#A1B3BD><B>Nome</B></TD>\n\t\t\t\t\t       </TR>";
         $cont = 0;
         foreach ($lst as $valor) {
             if ($cont % 2 == 0) {
                 $color = " bgcolor=#E4E9ED ";
             } else {
                 $color = " bgcolor=#FFFFFF ";
             }
             $obj_cod_usuario = new clsPessoa_($valor["ref_cod_usuario"]);
             $obj_usuario_det = $obj_cod_usuario->detalhe();
             $nome_usuario = $obj_usuario_det['nome'];
             $tabela .= "<TR>\n\t\t\t\t\t\t\t    <TD {$color} align=left>{$nome_usuario}</TD>\n\t\t\t\t\t\t\t</TR>";
             $cont++;
         }
         $tabela .= "</TABLE>";
     }
     if ($tabela) {
         $this->addDetalhe(array("Usu&aacute;rio", "{$tabela}"));
     }
     if ($obj_permissoes->permissao_cadastra(591, $this->pessoa_logada, 3)) {
         $this->url_novo = "educar_biblioteca_cad.php";
         $this->url_editar = "educar_biblioteca_cad.php?cod_biblioteca={$registro["cod_biblioteca"]}";
     }
     $this->url_cancelar = "educar_biblioteca_lst.php";
     $this->largura = "100%";
 }
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @param integer int_ordem
  * @param bool bool_ativo
  *
  * @return array
  */
 function lista($int_ref_cod_tipo_portaria = null, $int_cod_campo = null, $int_tipo = null, $int_ordem = null, $bool_ativo = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_ref_cod_tipo_portaria)) {
         $filtros .= "{$whereAnd} ref_cod_tipo_portaria = '{$int_ref_cod_tipo_portaria}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_cod_campo)) {
         $filtros .= "{$whereAnd} cod_campo = '{$int_cod_campo}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_tipo)) {
         $filtros .= "{$whereAnd} tipo = '{$int_tipo}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_sequencial)) {
         $filtros .= "{$whereAnd} sequencial = '{$int_sequencial}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ordem)) {
         $filtros .= "{$whereAnd} ordem = '{$int_ordem}'";
         $whereAnd = " AND ";
     }
     if (!is_null($bool_ativo)) {
         if (dbBool($bool_ativo)) {
             $filtros .= "{$whereAnd} ativo = TRUE";
         } else {
             $filtros .= "{$whereAnd} ativo = FALSE";
         }
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }
Пример #3
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Acesso - Detalhe";
     $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet");
     $this->cod_acesso = $_GET["cod_acesso"];
     $tmp_obj = new clsPortalAcesso($this->cod_acesso);
     $registro = $tmp_obj->detalhe();
     if (!$registro) {
         header("location: portal_acesso_lst.php");
         die;
     }
     if ($registro["cod_acesso"]) {
         $this->addDetalhe(array("Acesso", "{$registro["cod_acesso"]}"));
     }
     if ($registro["data_hora"]) {
         $this->addDetalhe(array("Data Hora", dataFromPgToBr($registro["data_hora"], "d/m/Y H:i")));
     }
     if ($registro["ip_externo"]) {
         $this->addDetalhe(array("Ip Externo", "{$registro["ip_externo"]}"));
     }
     if ($registro["ip_interno"]) {
         $this->addDetalhe(array("Ip Interno", "{$registro["ip_interno"]}"));
     }
     if ($registro["cod_pessoa"]) {
         $this->addDetalhe(array("Pessoa", "{$registro["cod_pessoa"]}"));
     }
     if ($registro["obs"]) {
         $this->addDetalhe(array("Obs", "{$registro["obs"]}"));
     }
     if (!is_null($registro["sucesso"])) {
         $this->addDetalhe(array("Sucesso", dbBool($registro["sucesso"]) ? "Sim" : "Não"));
     }
     $this->url_novo = "portal_acesso_cad.php";
     $this->url_editar = "portal_acesso_cad.php?cod_acesso={$registro["cod_acesso"]}";
     $this->url_cancelar = "portal_acesso_lst.php";
     $this->largura = "100%";
 }
 /**
  * Edita os dados de um registro
  *
  * @return bool
  */
 function edita()
 {
     if (is_numeric($this->cod_topo_portal) && is_numeric($this->ref_funcionario_exc)) {
         $db = new clsBanco();
         $set = "";
         if (is_numeric($this->ref_funcionario_cad)) {
             $set .= "{$gruda}ref_funcionario_cad = '{$this->ref_funcionario_cad}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_funcionario_exc)) {
             $set .= "{$gruda}ref_funcionario_exc = '{$this->ref_funcionario_exc}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_menu_portal)) {
             $set .= "{$gruda}ref_cod_menu_portal = '{$this->ref_cod_menu_portal}'";
             $gruda = ", ";
         }
         if (is_string($this->caminho1)) {
             $set .= "{$gruda}caminho1 = '{$this->caminho1}'";
             $gruda = ", ";
         }
         if (is_string($this->caminho2)) {
             $set .= "{$gruda}caminho2 = '{$this->caminho2}'";
             $gruda = ", ";
         }
         if (is_string($this->caminho3)) {
             $set .= "{$gruda}caminho3 = '{$this->caminho3}'";
             $gruda = ", ";
         }
         if (is_string($this->data_cadastro)) {
             $set .= "{$gruda}data_cadastro = '{$this->data_cadastro}'";
             $gruda = ", ";
         }
         $set .= "{$gruda}data_exclusao = NOW()";
         $gruda = ", ";
         if (isset($this->ativo)) {
             if (dbBool($this->ativo)) {
                 $this->ativo = "1";
             } else {
                 $this->ativo = "0";
             }
             $set .= "{$gruda}ativo = {$this->ativo}";
             $gruda = ", ";
         }
         if ($set) {
             $db->Consulta("UPDATE {$this->_tabela} SET {$set} WHERE cod_topo_portal = '{$this->cod_topo_portal}'");
             return true;
         }
     }
     return false;
 }
*						ctima@itajai.sc.gov.br					    	 *
*																		 *
*	Este  programa  é  software livre, você pode redistribuí-lo e/ou	 *
*	modificá-lo sob os termos da Licença Pública Geral GNU, conforme	 *
*	publicada pela Free  Software  Foundation,  tanto  a versão 2 da	 *
*	Licença   como  (a  seu  critério)  qualquer  versão  mais  nova.	 *
*																		 *
*	Este programa  é distribuído na expectativa de ser útil, mas SEM	 *
*	QUALQUER GARANTIA. Sem mesmo a garantia implícita de COMERCIALI-	 *
*	ZAÇÃO  ou  de ADEQUAÇÃO A QUALQUER PROPÓSITO EM PARTICULAR. Con-	 *
*	sulte  a  Licença  Pública  Geral  GNU para obter mais detalhes.	 *
*																		 *
*	Você  deve  ter  recebido uma cópia da Licença Pública Geral GNU	 *
*	junto  com  este  programa. Se não, escreva para a Free Software	 *
*	Foundation,  Inc.,  59  Temple  Place,  Suite  330,  Boston,  MA	 *
*	02111-1307, USA.													 *
*																		 *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
require_once "include/clsBanco.inc.php";
require_once "include/funcoes.inc.php";
if (is_numeric($_GET['biblioteca'])) {
    $db = new clsBanco();
    $tombo = $db->CampoUnico("SELECT tombo_automatico FROM pmieducar.biblioteca WHERE cod_biblioteca = {$_GET["biblioteca"]} AND ativo = 1");
    if (dbBool($tombo)) {
        echo 1;
    } else {
        echo 0;
    }
    die;
}
echo 0;
 /**
  * Edita os dados de um registro
  *
  * @return bool
  */
 function edita()
 {
     if (is_numeric($this->cod_biblioteca)) {
         $db = new clsBanco();
         $set = "";
         if (is_numeric($this->ref_cod_instituicao)) {
             $set .= "{$gruda}ref_cod_instituicao = '{$this->ref_cod_instituicao}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_escola)) {
             $set .= "{$gruda}ref_cod_escola = '{$this->ref_cod_escola}'";
             $gruda = ", ";
         }
         if (is_string($this->nm_biblioteca)) {
             $set .= "{$gruda}nm_biblioteca = '{$this->nm_biblioteca}'";
             $gruda = ", ";
         }
         if (is_numeric($this->valor_multa)) {
             $set .= "{$gruda}valor_multa = '{$this->valor_multa}'";
             $gruda = ", ";
         } else {
             if ($this->valor_multa == "NULL") {
                 $set .= "{$gruda}valor_multa = {$this->valor_multa}";
                 $gruda = ", ";
             }
         }
         if (is_numeric($this->max_emprestimo)) {
             $set .= "{$gruda}max_emprestimo = '{$this->max_emprestimo}'";
             $gruda = ", ";
         } else {
             if ($this->max_emprestimo == "NULL") {
                 $set .= "{$gruda}max_emprestimo = {$this->max_emprestimo}";
                 $gruda = ", ";
             }
         }
         if (is_numeric($this->valor_maximo_multa)) {
             $set .= "{$gruda}valor_maximo_multa = '{$this->valor_maximo_multa}'";
             $gruda = ", ";
         } else {
             if ($this->valor_maximo_multa == "NULL") {
                 $set .= "{$gruda}valor_maximo_multa = {$this->valor_maximo_multa}";
                 $gruda = ", ";
             }
         }
         if (is_string($this->data_cadastro)) {
             $set .= "{$gruda}data_cadastro = '{$this->data_cadastro}'";
             $gruda = ", ";
         }
         $set .= "{$gruda}data_exclusao = NOW()";
         $gruda = ", ";
         if (is_numeric($this->requisita_senha)) {
             $set .= "{$gruda}requisita_senha = '{$this->requisita_senha}'";
             $gruda = ", ";
         } else {
             if ($this->requisita_senha == "NULL") {
                 $set .= "{$gruda}requisita_senha = {$this->requisita_senha}";
                 $gruda = ", ";
             }
         }
         if (is_numeric($this->ativo)) {
             $set .= "{$gruda}ativo = '{$this->ativo}'";
             $gruda = ", ";
         }
         if (is_numeric($this->dias_espera)) {
             $set .= "{$gruda}dias_espera = '{$this->dias_espera}'";
             $gruda = ", ";
         } else {
             if ($this->dias_espera == "NULL") {
                 $set .= "{$gruda}dias_espera = {$this->dias_espera}";
                 $gruda = ", ";
             }
         }
         if (!is_null($this->tombo_automatico)) {
             $aux = dbBool($this->tombo_automatico) ? "TRUE" : "FALSE";
             $set .= "{$gruda}tombo_automatico = {$aux}";
             $gruda = ", ";
         }
         if ($set) {
             $db->Consulta("UPDATE {$this->_tabela} SET {$set} WHERE cod_biblioteca = '{$this->cod_biblioteca}'");
             return true;
         }
     }
     return false;
 }
 /**
  * Edita os dados de um registro
  *
  * @return bool
  */
 function edita()
 {
     if (is_numeric($this->cod_turma) && is_numeric($this->ref_usuario_exc)) {
         $db = new clsBanco();
         $set = "";
         if (is_numeric($this->ref_usuario_exc)) {
             $set .= "{$gruda}ref_usuario_exc = '{$this->ref_usuario_exc}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_usuario_cad)) {
             $set .= "{$gruda}ref_usuario_cad = '{$this->ref_usuario_cad}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_ref_cod_serie)) {
             $set .= "{$gruda}ref_ref_cod_serie = '{$this->ref_ref_cod_serie}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_ref_cod_escola)) {
             $set .= "{$gruda}ref_ref_cod_escola = '{$this->ref_ref_cod_escola}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_infra_predio_comodo)) {
             $set .= "{$gruda}ref_cod_infra_predio_comodo = '{$this->ref_cod_infra_predio_comodo}'";
             $gruda = ", ";
         }
         if (is_string($this->nm_turma)) {
             $set .= "{$gruda}nm_turma = '{$this->nm_turma}'";
             $gruda = ", ";
         }
         if (is_string($this->sgl_turma)) {
             $set .= "{$gruda}sgl_turma = '{$this->sgl_turma}'";
             $gruda = ", ";
         }
         if (is_numeric($this->max_aluno)) {
             $set .= "{$gruda}max_aluno = '{$this->max_aluno}'";
             $gruda = ", ";
         }
         if (is_numeric($this->multiseriada)) {
             $set .= "{$gruda}multiseriada = '{$this->multiseriada}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}multiseriada = '0'";
             $gruda = ", ";
         }
         if (is_string($this->data_cadastro)) {
             $set .= "{$gruda}data_cadastro = '{$this->data_cadastro}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_regente)) {
             $set .= "{$gruda}ref_cod_regente = '{$this->ref_cod_regente}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_instituicao_regente)) {
             $set .= "{$gruda}ref_cod_instituicao_regente = '{$this->ref_cod_instituicao_regente}'";
             $gruda = ", ";
         }
         $set .= "{$gruda}data_exclusao = NOW()";
         $gruda = ", ";
         if (is_numeric($this->ativo)) {
             $set .= "{$gruda}ativo = '{$this->ativo}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_turma_tipo)) {
             $set .= "{$gruda}ref_cod_turma_tipo = '{$this->ref_cod_turma_tipo}'";
             $gruda = ", ";
         }
         if ($this->hora_inicial) {
             $set .= "{$gruda}hora_inicial = '{$this->hora_inicial}'";
             $gruda = ", ";
         }
         if ($this->hora_final) {
             $set .= "{$gruda}hora_final = '{$this->hora_final}'";
             $gruda = ", ";
         }
         if ($this->hora_inicio_intervalo) {
             $set .= "{$gruda}hora_inicio_intervalo = '{$this->hora_inicio_intervalo}'";
             $gruda = ", ";
         }
         if ($this->hora_fim_intervalo) {
             $set .= "{$gruda}hora_fim_intervalo = '{$this->hora_fim_intervalo}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_instituicao)) {
             $set .= "{$gruda}ref_cod_instituicao = '{$this->ref_cod_instituicao}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_curso)) {
             $set .= "{$gruda}ref_cod_curso = '{$this->ref_cod_curso}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_ref_cod_escola_mult)) {
             $set .= "{$gruda}ref_ref_cod_escola_mult = '{$this->ref_ref_cod_escola_mult}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}ref_ref_cod_escola_mult = NULL";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_ref_cod_serie_mult)) {
             $set .= "{$gruda}ref_ref_cod_serie_mult = '{$this->ref_ref_cod_serie_mult}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}ref_ref_cod_serie_mult = NULL";
             $gruda = ", ";
         }
         if (dbBool($this->visivel)) {
             $set .= "{$gruda}visivel = TRUE";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}visivel = FALSE";
             $gruda = ", ";
         }
         if (is_numeric($this->turma_turno_id)) {
             $set .= "{$gruda}turma_turno_id = '{$this->turma_turno_id}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}turma_turno_id = NULL";
             $gruda = ", ";
         }
         if (is_numeric($this->tipo_boletim)) {
             $set .= "{$gruda}tipo_boletim = '{$this->tipo_boletim}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}tipo_boletim = NULL";
             $gruda = ", ";
         }
         if (is_numeric($this->ano)) {
             $set .= "{$gruda}ano = '{$this->ano}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}ano = NULL";
             $gruda = ", ";
         }
         if (is_string($this->data_fechamento) && $this->data_fechamento != '') {
             $set .= "{$gruda}data_fechamento = '{$this->data_fechamento}'";
             $gruda = ", ";
         } else {
             $set .= "{$gruda}data_fechamento = NULL";
             $gruda = ", ";
         }
         if ($set) {
             $db->Consulta("UPDATE {$this->_tabela} SET {$set} WHERE cod_turma = '{$this->cod_turma}'");
             return true;
         }
     }
     return false;
 }
Пример #8
0
 /**
  * Retorna uma lista de registros filtrados de acordo com os parâmetros.
  * @return array
  */
 public function lista($int_cod_escola = NULL, $int_ref_usuario_cad = NULL, $int_ref_usuario_exc = NULL, $int_ref_cod_instituicao = NULL, $int_ref_cod_escola_localizacao = NULL, $int_ref_cod_escola_rede_ensino = NULL, $int_ref_idpes = NULL, $str_sigla = NULL, $date_data_cadastro = NULL, $date_data_exclusao = NULL, $int_ativo = NULL, $str_nome = NULL, $escola_sem_avaliacao = NULL)
 {
     $sql = "\n      SELECT * FROM\n      (\n        SELECT j.fantasia AS nome, {$this->_campos_lista}, 1 AS tipo_cadastro\n          FROM {$this->_tabela} e, cadastro.juridica j\n          WHERE e.ref_idpes = j.idpes\n        UNION\n        SELECT c.nm_escola AS nome, {$this->_campos_lista}, 2 AS tipo_cadastro\n          FROM {$this->_tabela} e, pmieducar.escola_complemento c\n          WHERE e.cod_escola = c.ref_cod_escola\n      ) AS sub";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_cod_escola)) {
         $filtros .= "{$whereAnd} cod_escola = '{$int_cod_escola}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_usuario_cad)) {
         $filtros .= "{$whereAnd} ref_usuario_cad = '{$int_ref_usuario_cad}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_usuario_exc)) {
         $filtros .= "{$whereAnd} ref_usuario_exc = '{$int_ref_usuario_exc}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_instituicao)) {
         $filtros .= "{$whereAnd} ref_cod_instituicao = '{$int_ref_cod_instituicao}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_escola_localizacao)) {
         $filtros .= "{$whereAnd} ref_cod_escola_localizacao = '{$int_ref_cod_escola_localizacao}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_escola_rede_ensino)) {
         $filtros .= "{$whereAnd} ref_cod_escola_rede_ensino = '{$int_ref_cod_escola_rede_ensino}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_idpes)) {
         $filtros .= "{$whereAnd} ref_idpes = '{$int_ref_idpes}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_sigla)) {
         $filtros .= "{$whereAnd} sigla LIKE '%{$str_sigla}%'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_ini)) {
         $filtros .= "{$whereAnd} data_cadastro >= '{$date_data_cadastro_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_fim)) {
         $filtros .= "{$whereAnd} data_cadastro <= '{$date_data_cadastro_fim}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_ini)) {
         $filtros .= "{$whereAnd} data_exclusao >= '{$date_data_exclusao_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_fim)) {
         $filtros .= "{$whereAnd} data_exclusao <= '{$date_data_exclusao_fim}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ativo)) {
         $filtros .= "{$whereAnd} ativo = '{$int_ativo}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_nome)) {
         $filtros .= "{$whereAnd} nome LIKE '%{$str_nome}%'";
         $whereAnd = " AND ";
     }
     if (is_bool($escola_sem_avaliacao)) {
         if (dbBool($escola_sem_avaliacao)) {
             $filtros .= "{$whereAnd} NOT EXISTS (SELECT 1 FROM pmieducar.escola_curso ec, pmieducar.curso c WHERE\n                        ec.ref_cod_escola = cod_escola\n                        AND ec.ref_cod_curso = c.cod_curso\n                        AND ec.ativo = 1 AND c.ativo = 1)";
         } else {
             $filtros .= "{$whereAnd} EXISTS (SELECT 1 FROM pmieducar.escola_curso ec, pmieducar.curso c WHERE\n                        ec.ref_cod_escola = cod_escola\n                        AND ec.ref_cod_curso = c.cod_curso\n                        AND ec.ativo = 1 AND c.ativo = 1)";
         }
     }
     $db = new clsBanco();
     $countCampos = count(explode(',', $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $db->Consulta("\n        SELECT COUNT(0) FROM\n        (\n          SELECT j.fantasia AS nome, {$this->_campos_lista}, 1 AS tipo_cadastro\n          FROM {$this->_tabela} e, cadastro.juridica j\n          WHERE e.ref_idpes = j.idpes\n        UNION\n          SELECT c.nm_escola AS nome, {$this->_campos_lista}, 2 AS tipo_cadastro\n          FROM {$this->_tabela} e, pmieducar.escola_complemento c\n          WHERE e.cod_escola = c.ref_cod_escola\n        ) AS sub\n        {$filtros}\n    ");
     $db->ProximoRegistro();
     list($this->_total) = $db->Tupla();
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
             $this->_total = count($tupla);
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return FALSE;
 }
Пример #9
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%';
 }
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @param integer int_ref_cod_status
  * @param string date_data_cadastro_ini
  * @param string date_data_cadastro_fim
  * @param string date_data_exclusao_ini
  * @param string date_data_exclusao_fim
  * @param integer int_ativo
  * @param integer int_ref_cod_setor
  * @param integer int_num_portaria
  * @param string str_portaria_texto
  * @param integer int_ref_pessoa_cad
  * @param integer int_ref_pessoa_exc
  * @param integer int_ref_cod_instituicao
  *
  * @return array
  */
 function lista($int_ref_cod_status = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $int_ativo = null, $int_ref_cod_setor = null, $int_num_portaria = null, $str_portaria_texto = null, $int_ref_pessoa_cad = null, $int_ref_pessoa_exc = null, $int_ref_cod_instituicao = null, $bool_aprovado = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_cod_portaria)) {
         $filtros .= "{$whereAnd} cod_portaria = '{$int_cod_portaria}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_status)) {
         $filtros .= "{$whereAnd} ref_cod_status = '{$int_ref_cod_status}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_ini)) {
         $filtros .= "{$whereAnd} data_cadastro >= '{$date_data_cadastro_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_fim)) {
         $filtros .= "{$whereAnd} data_cadastro <= '{$date_data_cadastro_fim}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_ini)) {
         $filtros .= "{$whereAnd} data_exclusao >= '{$date_data_exclusao_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_fim)) {
         $filtros .= "{$whereAnd} data_exclusao <= '{$date_data_exclusao_fim}'";
         $whereAnd = " AND ";
     }
     if (is_null($int_ativo) || $int_ativo) {
         $filtros .= "{$whereAnd} ativo = '1'";
         $whereAnd = " AND ";
     } else {
         $filtros .= "{$whereAnd} ativo = '0'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_setor)) {
         $filtros .= "{$whereAnd} ref_cod_setor = '{$int_ref_cod_setor}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_num_portaria)) {
         $filtros .= "{$whereAnd} num_portaria = '{$int_num_portaria}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_portaria_texto)) {
         $filtros .= "{$whereAnd} portaria_texto LIKE '%{$str_portaria_texto}%'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_pessoa_cad)) {
         $filtros .= "{$whereAnd} ref_pessoa_cad = '{$int_ref_pessoa_cad}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_pessoa_exc)) {
         $filtros .= "{$whereAnd} ref_pessoa_exc = '{$int_ref_pessoa_exc}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_instituicao)) {
         $filtros .= "{$whereAnd} ref_cod_instituicao = '{$int_ref_cod_instituicao}'";
         $whereAnd = " AND ";
     }
     if (!is_null($bool_aprovado)) {
         $aprovado = dbBool($bool_aprovado) ? "TRUE" : "FALSE";
         $filtros .= "{$whereAnd} ref_cod_status IN (SELECT cod_status FROM pmidrh.status WHERE aprovado = '{$aprovado}')";
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @param integer int_ref_funcionario_exc
  * @param integer int_ref_funcionario_cad
  * @param integer int_ref_cod_software
  * @param string str_motivo
  * @param string str_tipo
  * @param string str_descricao
  * @param string date_data_cadastro_ini
  * @param string date_data_cadastro_fim
  * @param string date_data_exclusao_ini
  * @param string date_data_exclusao_fim
  * @param bool bool_ativo
  * @param string str_script_banco
  *
  * @return array
  */
 function lista($int_ref_funcionario_exc = null, $int_ref_funcionario_cad = null, $int_ref_cod_software = null, $str_motivo = null, $str_tipo = null, $str_descricao = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $bool_ativo = null, $str_script_banco = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_cod_software_alteracao)) {
         $filtros .= "{$whereAnd} cod_software_alteracao = '{$int_cod_software_alteracao}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_funcionario_exc)) {
         $filtros .= "{$whereAnd} ref_funcionario_exc = '{$int_ref_funcionario_exc}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_funcionario_cad)) {
         $filtros .= "{$whereAnd} ref_funcionario_cad = '{$int_ref_funcionario_cad}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_software)) {
         $filtros .= "{$whereAnd} ref_cod_software = '{$int_ref_cod_software}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_motivo)) {
         $filtros .= "{$whereAnd} motivo LIKE '%{$str_motivo}%'";
         $whereAnd = " AND ";
     }
     if (is_string($str_tipo)) {
         $filtros .= "{$whereAnd} tipo LIKE '%{$str_tipo}%'";
         $whereAnd = " AND ";
     }
     if (is_string($str_descricao)) {
         $filtros .= "{$whereAnd} descricao LIKE '%{$str_descricao}%'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_ini)) {
         $filtros .= "{$whereAnd} data_cadastro >= '{$date_data_cadastro_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_fim)) {
         $filtros .= "{$whereAnd} data_cadastro <= '{$date_data_cadastro_fim}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_ini)) {
         $filtros .= "{$whereAnd} data_exclusao >= '{$date_data_exclusao_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_fim)) {
         $filtros .= "{$whereAnd} data_exclusao <= '{$date_data_exclusao_fim}'";
         $whereAnd = " AND ";
     }
     if (!is_null($bool_ativo)) {
         if (dbBool($bool_ativo)) {
             $filtros .= "{$whereAnd} ativo = TRUE";
         } else {
             $filtros .= "{$whereAnd} ativo = FALSE";
         }
         $whereAnd = " AND ";
     }
     if (is_string($str_script_banco)) {
         $filtros .= "{$whereAnd} script_banco LIKE '%{$str_script_banco}%'";
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }
 /**
  * Retorna uma lista de registros filtrados de acordo com os parâmetros.
  * @return array
  */
 function lista($int_cod_matricula = NULL, $int_ref_cod_reserva_vaga = NULL, $int_ref_ref_cod_escola = NULL, $int_ref_ref_cod_serie = NULL, $int_ref_usuario_exc = NULL, $int_ref_usuario_cad = NULL, $int_ref_cod_aluno = NULL, $int_aprovado = NULL, $date_data_cadastro_ini = NULL, $date_data_cadastro_fim = NULL, $date_data_exclusao_ini = NULL, $date_data_exclusao_fim = NULL, $int_ativo = NULL, $int_ano = NULL, $int_ref_cod_curso2 = NULL, $int_ref_cod_instituicao = NULL, $int_ultima_matricula = NULL, $int_modulo = NULL, $int_padrao_ano_escolar = NULL, $int_analfabeto = NULL, $int_formando = NULL, $str_descricao_reclassificacao = NULL, $int_matricula_reclassificacao = NULL, $boo_com_deficiencia = NULL, $int_ref_cod_curso = NULL, $bool_curso_sem_avaliacao = NULL, $arr_int_cod_matricula = NULL, $int_mes_defasado = NULL, $boo_data_nasc = NULL, $boo_matricula_transferencia = NULL, $int_semestre = NULL, $int_ref_cod_turma = NULL)
 {
     if ($boo_data_nasc) {
         $this->_campos_lista .= " ,(SELECT data_nasc\n                        FROM cadastro.fisica\n                           WHERE idpes = ref_idpes\n                    ) as data_nasc";
     }
     $sql = "SELECT {$this->_campos_lista}, c.ref_cod_instituicao, p.nome, a.cod_aluno, a.ref_idpes, c.cod_curso FROM {$this->_tabela} m, {$this->_schema}curso c, {$this->_schema}aluno a, cadastro.pessoa p ";
     $whereAnd = " AND ";
     $filtros = " WHERE m.ref_cod_aluno = a.cod_aluno AND m.ref_cod_curso = c.cod_curso AND p.idpes = a.ref_idpes ";
     if (is_numeric($int_cod_matricula)) {
         $filtros .= "{$whereAnd} m.cod_matricula = '{$int_cod_matricula}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_reserva_vaga)) {
         $filtros .= "{$whereAnd} m.ref_cod_reserva_vaga = '{$int_ref_cod_reserva_vaga}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_ref_cod_escola)) {
         $filtros .= "{$whereAnd} m.ref_ref_cod_escola = '{$int_ref_ref_cod_escola}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_ref_cod_serie)) {
         $filtros .= "{$whereAnd} m.ref_ref_cod_serie = '{$int_ref_ref_cod_serie}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_usuario_exc)) {
         $filtros .= "{$whereAnd} m.ref_usuario_exc = '{$int_ref_usuario_exc}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_usuario_cad)) {
         $filtros .= "{$whereAnd} m.ref_usuario_cad = '{$int_ref_usuario_cad}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_aluno)) {
         $filtros .= "{$whereAnd} m.ref_cod_aluno = '{$int_ref_cod_aluno}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_aprovado)) {
         $filtros .= "{$whereAnd} m.aprovado = '{$int_aprovado}'";
         $whereAnd = " AND ";
     } elseif (is_array($int_aprovado)) {
         $int_aprovado = implode(",", $int_aprovado);
         $filtros .= "{$whereAnd} m.aprovado in ({$int_aprovado})";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_ini)) {
         $filtros .= "{$whereAnd} m.data_cadastro >= '{$date_data_cadastro_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_fim)) {
         $filtros .= "{$whereAnd} m.data_cadastro <= '{$date_data_cadastro_fim}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_ini)) {
         $filtros .= "{$whereAnd} m.data_exclusao >= '{$date_data_exclusao_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_fim)) {
         $filtros .= "{$whereAnd} m.data_exclusao <= '{$date_data_exclusao_fim}'";
         $whereAnd = " AND ";
     }
     if ($int_ativo) {
         $filtros .= "{$whereAnd} m.ativo = '1'";
         $whereAnd = " AND ";
     } elseif (!is_null($int_ativo) && is_numeric($int_ativo)) {
         $filtros .= "{$whereAnd} m.ativo = '0'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ano)) {
         $filtros .= "{$whereAnd} m.ano = '{$int_ano}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_curso)) {
         $filtros .= "{$whereAnd} m.ref_cod_curso = '{$int_ref_cod_curso}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_padrao_ano_escolar)) {
         $filtros .= "{$whereAnd} c.padrao_ano_escolar = '{$int_padrao_ano_escolar}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_instituicao)) {
         $filtros .= "{$whereAnd} c.ref_cod_instituicao = '{$int_ref_cod_instituicao}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ultima_matricula)) {
         $filtros .= "{$whereAnd} ultima_matricula = '{$int_ultima_matricula}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_modulo)) {
         $filtros .= "{$whereAnd} m.modulo = '{$int_modulo}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_analfabeto)) {
         $filtros .= "{$whereAnd} a.analfabeto = '{$int_analfabeto}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_formando)) {
         $filtros .= "{$whereAnd} a.formando = '{$int_formando}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_matricula_reclassificacao)) {
         $filtros .= "{$whereAnd} m.matricula_reclassificacao = '{$int_matricula_reclassificacao}'";
         $whereAnd = " AND ";
     }
     if (dbBool($boo_matricula_transferencia)) {
         $boo_matricula_transferencia = dbBool($boo_matricula_transferencia) ? 't' : 'f';
         $filtros .= "{$whereAnd} m.matricula_transferencia = '{$boo_matricula_transferencia}'";
         $whereAnd = " AND ";
     }
     if (is_string($int_matricula_reclassificacao)) {
         $filtros .= "{$whereAnd} to_ascii(a.matricula_reclassificacao) like to_ascii('%{$int_matricula_reclassificacao}%')";
         $whereAnd = " AND ";
     }
     if (is_bool($boo_com_deficiencia)) {
         $not = $boo_com_deficiencia === true ? "" : "NOT";
         $filtros .= "{$whereAnd} {$not} EXISTS (SELECT 1 FROM cadastro.fisica_deficiencia fd, pmieducar.aluno a WHERE a.cod_aluno = m.ref_cod_aluno AND fd.ref_idpes = a.ref_idpes)";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_semestre)) {
         $filtros .= "{$whereAnd} m.semestre = '{$int_semestre}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_turma)) {
         $filtros .= "{$whereAnd} EXISTS (SELECT 1 FROM pmieducar.matricula_turma mt WHERE mt.ativo = 1 AND mt.ref_cod_turma = {$int_ref_cod_turma} AND mt.ref_cod_matricula = m.cod_matricula)";
         $whereAnd = " AND ";
     }
     if (is_array($arr_int_cod_matricula) && count($arr_int_cod_matricula)) {
         $filtros .= "{$whereAnd} cod_matricula IN (" . implode(',', $arr_int_cod_matricula) . ")";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_mes_defasado)) {
         $primeiroDiaDoMes = mktime(0, 0, 0, $int_mes_defasado, 1, $int_ano);
         $NumeroDiasMes = date('t', $primeiroDiaDoMes);
         $ultimoDiaMes = date('d/m/Y', mktime(0, 0, 0, $int_mes_defasado, $NumeroDiasMes, $int_ano));
         $ultimoDiaMes = dataToBanco($ultimoDiaMes, FALSE);
         $primeiroDiaDoMes = date('d/m/Y', $primeiroDiaDoMes);
         $primeiroDiaDoMes = dataToBanco($primeiroDiaDoMes, FALSE);
         $filtroAux = "{$whereAnd} ((aprovado IN (1,2,3) AND m.data_cadastro <= '{$ultimoDiaMes}')\n                         OR  (aprovado IN (1,2,3,4) AND m.data_exclusao >= '{$primeiroDiaDoMes}' AND m.data_exclusao <= '{$ultimoDiaMes}')\n                       )";
         $filtros .= $filtroAux;
         $whereAnd = ' AND ';
     }
     $db = new clsBanco();
     $countCampos = count(explode(',', $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} m, {$this->_schema}curso c, {$this->_schema}aluno a, cadastro.pessoa p {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return FALSE;
 }
 function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(650, $this->pessoa_logada, 7, "educar_turma_mvto_det.php");
     if ($this->passo == 1) {
         // selecionou o curso, nao cadastra nada
         return true;
     } else {
         if ($this->passo == 2) {
             // deu notas e faltas aos alunos
             $objCurso = new clsPmieducarCurso($this->ref_cod_curso);
             $detalhe_curso = $objCurso->detalhe();
             $db = new clsBanco();
             $qtd_disciplinas = $db->CampoUnico("SELECT COUNT(0) FROM pmieducar.escola_serie_disciplina WHERE ref_ref_cod_serie = '{$this->ref_cod_serie_disciplina}' AND ref_ref_cod_escola = '{$this->ref_ref_cod_escola}' AND ativo = 1");
             foreach ($this->nota as $matricula => $sequencial) {
                 // cadastra a nota
                 if ($this->is_nota_exame) {
                     $nota = str_replace(",", ".", $sequencial);
                     $objNotaAluno = new clsPmieducarNotaAluno(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, null, $nota);
                 } else {
                     $objNotaAluno = new clsPmieducarNotaAluno(null, $sequencial, $detalhe_curso["ref_cod_tipo_avaliacao"], $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, null);
                 }
                 $existe_nota = $objNotaAluno->lista(null, null, $detalhe_curso["ref_cod_tipo_avaliacao"], $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, null, 1, $this->num_modulo, null, null);
                 /**
                  * somente cadastra
                  * se nao tiver nenhuma nota
                  * cadastrada para a disciplina
                  */
                 if ($existe_nota) {
                     $cadastrado = $objNotaAluno->edita();
                 } else {
                     $cadastrado = $objNotaAluno->cadastra();
                 }
                 $existe_nota = null;
                 $ultima_nota = false;
                 if ($cadastrado) {
                     // nota cadastrada com sucesso
                     // verifica se essa eh a ultima nota desse modulo. Se for passa o aluno pro proximo modulo
                     $qtd_dispensas = (int) $db->CampoUnico("SELECT COUNT(0) AS dispensas FROM pmieducar.dispensa_disciplina WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1");
                     $qtd_notas = (int) $db->CampoUnico("SELECT COUNT(0) AS notas FROM pmieducar.nota_aluno WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1 AND modulo = '{$this->num_modulo}'");
                     if ($qtd_dispensas + $qtd_notas >= $qtd_disciplinas) {
                         // eh a ultima nota do modulo, vamos passar o aluno adiante
                         $ultima_nota = true;
                         $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada);
                         $det_matricula = $objMatricula->detalhe();
                         $max_modulo_nota = (int) $db->CampoUnico("SELECT max(modulo) FROM pmieducar.nota_aluno WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1");
                         /**
                          * so avança o modulo
                          * caso ele seja igual ao da maior nota
                          * e que seja a ultima disciplina
                          */
                         if ($det_matricula['modulo'] <= $max_modulo_nota) {
                             $objMatricula->avancaModulo();
                         }
                     }
                     // tratamento para faltas
                     if (!$this->falta_ch_globalizada) {
                         // se a falta nao for globalizada adiciona falta
                         $this->falta[$matricula] = $this->falta[$matricula] ? $this->falta[$matricula] : 0;
                         $objFaltaAluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo);
                         $existe_falta = $objFaltaAluno->lista(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, 1, $this->num_modulo);
                         /**
                          * somente cadastra se
                          * jah nao tiver sido cadastrado
                          */
                         if ($existe_falta) {
                             $objFaltaAluno->edita();
                         } else {
                             $objFaltaAluno->cadastra();
                         }
                     } else {
                         // falta eh globalizada
                         if ($this->ultima_nota[$matricula]) {
                             // essa eh a ultima nota do aluno nesse modulo, vamos adicionar a falta globalizada dele
                             $this->falta[$matricula] = $this->falta[$matricula] ? $this->falta[$matricula] : 0;
                             $objFaltas = new clsPmieducarFaltas($matricula, $this->num_modulo, $this->pessoa_logada, $this->falta[$matricula]);
                             if ($objFaltas->existe()) {
                                 $objFaltas->edita();
                             } else {
                                 $objFaltas->cadastra();
                             }
                         }
                     }
                     // quando for o ultimo modulo o aluno deve ser aprovado, reprovado, marcado como excessao, ou colocado em exame
                     if ($ultima_nota && $this->num_modulo == $this->max_modulos) {
                         // esta na ultima nota do ultimo modulo
                         $objEscolaSerieDisciplina = new clsPmieducarEscolaSerieDisciplina();
                         $listaEscolaSerieDisciplina = $objEscolaSerieDisciplina->lista($this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, null, 1);
                         //$this->ref_cod_serie_disciplina $this->ref_ref_cod_serie
                         $reprovado_por_nota = false;
                         $existiu_excessao = false;
                         $obj_serie = new clsPmieducarSerie($this->ref_cod_serie_disciplina);
                         $det_serie = $obj_serie->detalhe();
                         $media_especial = dbBool($det_serie['media_especial']);
                         if (is_array($listaEscolaSerieDisciplina)) {
                             // percorre todas as disciplinas
                             $reprovou_ultima_nota = false;
                             $foi_aprovado = null;
                             foreach ($listaEscolaSerieDisciplina as $value) {
                                 $excessao = false;
                                 $nota = false;
                                 //  ve as faltas
                                 if (!$this->falta_ch_globalizada) {
                                     $objFaltaAluno = new clsPmieducarFaltaAluno();
                                     $faltas = $objFaltaAluno->total_faltas_disciplina($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"]);
                                     if ($reprovou) {
                                         // se reprovou cria uma excessao
                                         $existiu_excessao = true;
                                         $excessao = true;
                                     }
                                 }
                                 /**
                                  * se a media for especial somente
                                  * verifica se nao esta reprovado por falta
                                  */
                                 if ($media_especial) {
                                     continue;
                                 }
                                 if (!dbBool($det_serie["ultima_nota_define"])) {
                                     //  ve a media
                                     /**
                                      * @author HY 15-12-2006
                                      * @see quando for dar as notas e for calcular a ultima
                                      * ao fazer a media e essa nota estiver abaixo nao
                                      * pode ser feito o arredondamento, somente se estiver
                                      *  acima da media deixando o aluno em exame
                                      */
                                     $objNotaAluno = new clsPmieducarNotaAluno();
                                     $media = $objNotaAluno->getMediaAluno($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"], $this->max_modulos, $detalhe_curso["media"]);
                                     if ($media < $detalhe_curso["media"]) {
                                         //  se reprovar em alguma marca uma flag de reprovado por nota (nao edita o aluno porque ele ainda vai fazer exame)
                                         $reprovado_por_nota = true;
                                         $nota = true;
                                     }
                                 } else {
                                     //									echo "<pre>"; print_r($detalhe_curso); die();
                                     $objNotaAluno = new clsPmieducarNotaAluno();
                                     $ultima_nota_modulo = $objNotaAluno->getUltimaNotaModulo($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"], $this->num_modulo);
                                     if ($ultima_nota_modulo < $detalhe_curso["media"]) {
                                         $foi_aprovado = 2;
                                         $reprovou_ultima_nota = true;
                                     }
                                 }
                                 if ($excessao) {
                                     // existiu uma excessao entao cria um registro de excessao no banco
                                     $objExcessao = new clsPmieducarMatriculaExcessao(null, $matricula, $this->ref_cod_turma, 1, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $value["ref_cod_disciplina"], true, $nota);
                                     $objExcessao->cadastra();
                                 }
                             }
                             if (dbBool($det_serie["ultima_nota_define"])) {
                                 if ($reprovou_ultima_nota) {
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                     $objMatricula->edita();
                                 } else {
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1);
                                     $objMatricula->edita();
                                     $foi_aprovado = 1;
                                 }
                             }
                             /**
                              * calcula outro modo de média se for especial
                              */
                             if ($media_especial) {
                                 $objNotaAluno = new clsPmieducarNotaAluno();
                                 $media = $objNotaAluno->getMediaEspecialAluno($matricula, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->max_modulos, $detalhe_curso["media"]);
                                 if ($media < $detalhe_curso["media"]) {
                                     //  se reprovar marca uma flag de reprovado por nota (
                                     $reprovado_por_nota = true;
                                     $nota = true;
                                 }
                             }
                         }
                         if (!$reprovado_por_nota && !$existiu_excessao && !dbBool($det_serie["ultima_nota_define"])) {
                             // nao foi reprovado em nenhuma disciplina e nao teve nenhuma excessao
                             //marca como aprovado
                             $foi_aprovado = 1;
                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1);
                             $objMatricula->edita();
                         }
                         /**
                          * media especial e reprovado por falta.. marca aluno como reprovado se nao marca como aprovado
                          */
                         if ($media_especial) {
                             $aprovado = $reprovado_por_nota ? '2' : '1';
                             $foi_aprovado = $aprovado;
                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado);
                             $objMatricula->edita();
                         }
                     } else {
                         if ($this->num_modulo - 1 == $this->max_modulos) {
                             // se estiver recebendo nota do exame temos que ver se eh a ultima, se for temos que aprovar/reprovar o aluno
                             // num_modulo == max_modulo = ultimo modulo
                             // num_modulo - 1 == max_modulo = exame
                             // esta no exame
                             $objNotaAluno = new clsPmieducarNotaAluno();
                             $qtd_exames = $objNotaAluno->getQtdMateriasExame($matricula, $this->max_modulos, $detalhe_curso["media"], true);
                             $qtd_notas_exame = $objNotaAluno->getQtdNotasExame($matricula, $this->max_modulos);
                             //die("recebendo nota de exame!!!! [{$qtd_exames}] [{$qtd_notas_exame}]");
                             if ($qtd_exames == $qtd_notas_exame) {
                                 // eh a ultima disciplina do exame
                                 $reprovado = false;
                                 $disciplinas_exame = $objNotaAluno->getDisciplinasExameDoAluno($matricula, $this->max_modulos, $detalhe_curso["media"], true);
                                 if (is_array($disciplinas_exame)) {
                                     foreach ($disciplinas_exame as $disciplina) {
                                         $media_exame = $objNotaAluno->getMediaAlunoExame($matricula, $disciplina["cod_disciplina"], $disciplina["cod_serie"], $this->max_modulos);
                                         // se reprovou marca como reprovado e sai do loop (break)
                                         //abaixo original
                                         //									$media_exame = $objNotaAluno->getMediaAluno($matricula,$disciplina["cod_disciplina"],$disciplina["cod_serie"],$this->max_modulos + 1, false, true);
                                         if ($media_exame < $detalhe_curso["media_exame"]) {
                                             // reprovou
                                             //remove possiveis excessoes
                                             $objExcessoes = new clsPmieducarMatriculaExcessao();
                                             $objExcessoes->excluirPorMatricula($matricula);
                                             // marca como reprovado
                                             $foi_aprovado = 2;
                                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                             $objMatricula->edita();
                                             $reprovado = true;
                                             break;
                                         }
                                     }
                                 }
                                 if (!$reprovado) {
                                     // se chegar aqui sem ter sido reprovado, marca como aprovado
                                     //remove possiveis excessoes
                                     $objExcessoes = new clsPmieducarMatriculaExcessao();
                                     $objExcessoes->excluirPorMatricula($matricula);
                                     // aprova
                                     $foi_aprovado = 1;
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1);
                                     $objMatricula->edita();
                                 } else {
                                     // se chegar aqui sem ter sido reprovado, marca como aprovado
                                     //remove possiveis excessoes
                                     $objExcessoes = new clsPmieducarMatriculaExcessao();
                                     $objExcessoes->excluirPorMatricula($matricula);
                                     // reprova
                                     $foi_aprovado = 2;
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                     $objMatricula->edita();
                                 }
                             }
                         }
                     }
                 }
                 /**************HISTORICO ESCOLAR****************************/
                 if ($foi_aprovado == 1 || $foi_aprovado == 2) {
                     $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
                     $det_serie = $obj_serie->detalhe();
                     $carga_horaria_serie = $det_serie["carga_horaria"];
                     $obj_escola = new clsPmieducarEscola($this->ref_ref_cod_escola);
                     $det_escola = $obj_escola->detalhe();
                     $ref_idpes = $det_escola["ref_idpes"];
                     $this->ref_cod_instituicao = $det_escola["ref_cod_instituicao"];
                     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
                     $lst_ano_letivo = $obj_ano_letivo->lista($this->ref_ref_cod_escola, null, null, null, 1, null, null, null, null, 1);
                     if (is_array($lst_ano_letivo)) {
                         $det_ano_letivo = array_shift($lst_ano_letivo);
                         $this->ano_letivo = $det_ano_letivo["ano"];
                     }
                     // busca informacoes da escola
                     if ($ref_idpes) {
                         $obj_escola = new clsPessoaJuridica($ref_idpes);
                         $det_escola = $obj_escola->detalhe();
                         $nm_escola = $det_escola["fantasia"];
                         if ($det_escola) {
                             $cidade = $det_escola["cidade"];
                             $uf = $det_escola["sigla_uf"];
                         }
                     } else {
                         if (class_exists("clsPmieducarEscolaComplemento")) {
                             $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                             $det_escola = $obj_escola->detalhe();
                             $nm_escola = $det_escola["nm_escola"];
                             $cidade = $det_escola["municipio"];
                         }
                     }
                     $this->padrao_ano_escolar = $detalhe_curso["padrao_ano_escolar"];
                     if ($this->padrao_ano_escolar) {
                         $extra_curricular = 0;
                     } else {
                         $extra_curricular = 1;
                     }
                     $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$matricula}";
                     $db5 = new clsBanco();
                     $total_faltas = $db5->CampoUnico($sql);
                     $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($detalhe_curso["ref_cod_tipo_avaliacao"]);
                     $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                     $this->conceitual = $det_tipo_avaliacao["conceitual"];
                     $obj_aluno = new clsPmieducarMatricula($matricula);
                     $det_aluno = $obj_aluno->detalhe();
                     $this->ref_cod_aluno = $det_aluno["ref_cod_aluno"];
                     $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_serie['nm_serie'], $this->ano_letivo, $carga_horaria_serie, null, $nm_escola, $cidade, $uf, null, $foi_aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, $extra_curricular, $matricula);
                     $cadastrou2 = $obj->cadastra();
                     if ($cadastrou2 && !$this->conceitual) {
                         $obj_historico = new clsPmieducarHistoricoEscolar();
                         $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno);
                         $historico_disciplina = array();
                         $obj_disciplina_hist = new clsPmieducarEscolaSerieDisciplina();
                         $lst_disciplina_hist = $obj_disciplina_hist->lista($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, 1);
                         foreach ($lst_disciplina_hist as $disciplina_hist) {
                             $objFaltaAluno = new clsPmieducarFaltaAluno();
                             $faltas = $objFaltaAluno->total_faltas_disciplina($matricula, $disciplina_hist["ref_cod_disciplina"], $this->ref_ref_cod_serie);
                             $historico_disciplina[$disciplina_hist["ref_cod_disciplina"]] = $faltas;
                             $obj_nota_aluno = new clsPmieducarNotaAluno();
                             $obj_nota_aluno->setOrderby("modulo ASC");
                             $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina_hist["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, 1);
                             $possui_nota_exame = false;
                             foreach ($lst_nota_aluno as $nota_aluno) {
                                 if (dbBool($det_serie["ultima_nota_define"])) {
                                     $obj_tipo_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"], null, null, null, null, 1);
                                     $det_tipo_avaliacao_valores = $obj_tipo_avaliacao_valores->detalhe();
                                     $soma_notas[$disciplina_hist["ref_cod_disciplina"]] = $det_tipo_avaliacao_valores["valor"];
                                 } else {
                                     if ($nota_aluno["nota"]) {
                                         $soma_notas[$disciplina_hist["ref_cod_disciplina"]] += $nota_aluno["nota"] * 2;
                                         $possui_nota_exame = true;
                                     } else {
                                         $obj_tipo_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"], null, null, null, null, 1);
                                         $det_tipo_avaliacao_valores = $obj_tipo_avaliacao_valores->detalhe();
                                         $soma_notas[$disciplina_hist["ref_cod_disciplina"]] += $det_tipo_avaliacao_valores["valor"];
                                     }
                                 }
                             }
                             if (!dbBool($det_serie["ultima_nota_define"])) {
                                 if ($possui_nota_exame) {
                                     $soma_notas[$disciplina_hist["ref_cod_disciplina"]] /= $this->num_modulo + 1;
                                 } else {
                                     $soma_notas[$disciplina_hist["ref_cod_disciplina"]] /= $this->max_modulos;
                                 }
                             }
                             /*************FALTAS******************/
                             //											$this->falta_ch_globalizada = $detalhe_curso["falta_ch_globalizada"];
                             $this->ref_cod_tipo_avaliacao = $detalhe_curso["ref_cod_tipo_avaliacao"];
                             if (!$detalhe_curso["falta_ch_globalizada"]) {
                                 $obj_falta_aluno = new clsPmieducarFaltaAluno();
                                 $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina_hist["ref_cod_disciplina"], $matricula, null, null, null, null, null, 1);
                                 if (is_array($lst_falta_aluno)) {
                                     foreach ($lst_falta_aluno as $key => $falta_aluno) {
                                         $soma_faltas[$disciplina_hist["ref_cod_disciplina"]][$key] = $falta_aluno["faltas"];
                                     }
                                 }
                             }
                         }
                         $faltas_media_aluno = array();
                         if (is_array($soma_faltas)) {
                             foreach ($soma_faltas as $cod_disciplina => $faltas) {
                                 foreach ($array_faltas as $falta) {
                                     $faltas_media_aluno[$disciplina] += $falta;
                                 }
                             }
                         }
                         $obj_historico = new clsPmieducarHistoricoEscolar();
                         $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno);
                         $historico_disciplina = array();
                         foreach ($soma_notas as $key => $nota) {
                             $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]);
                         }
                         foreach ($historico_disciplina as $cod_disciplina => $campo) {
                             $obj_disciplina_cad = new clsPmieducarDisciplina($cod_disciplina);
                             $det_disciplina_cad = $obj_disciplina_cad->detalhe();
                             $nm_disciplina = $det_disciplina_cad["nm_disciplina"];
                             $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                             $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]);
                             if (is_array($lst_avaliacao_valores)) {
                                 $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                                 $nm_nota = $det_avaliacao_valores["nome"];
                                 $obj = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]);
                                 $cadastrou3 = $obj->cadastra();
                                 if (!$cadastrou3) {
                                     die("nao cadastrou");
                                 }
                             }
                         }
                     } else {
                         if (!$cadastrou2) {
                             $this->mensagem = "Cadastro do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                             return false;
                         }
                     }
                 }
                 /**************HISTORICO ESCOLAR****************************/
             }
             $this->ref_cod_disciplina = null;
             $this->passo = 0;
             return true;
         } else {
             if ($this->passo == 3) {
                 if ($this->pula_passo) {
                     $this->pula_passo = false;
                     if (is_array($this->nota) && is_array($this->resultado_final) && is_array($this->falta)) {
                         foreach ($this->nota as $matricula => $value) {
                             $objTpAvalValores = new clsPmieducarTipoAvaliacaoValores($this->ref_cod_tipo_avaliacao, $value, null, null, null, null, 1);
                             $valorNota = $objTpAvalValores->detalhe();
                             $objNotaAluno = new clsPmieducarNotaAluno(null, $value, $this->ref_cod_tipo_avaliacao, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, $this->ref_cod_curso, $valorNota["valor"]);
                             if (!$objNotaAluno->cadastra()) {
                                 die("não cadastrou (nota)");
                             }
                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, $this->pessoa_logada, null, $this->resultado_final[$matricula]);
                             if (!$objMatricula->edita()) {
                                 die("não cadastrou (resultado final)");
                             }
                             $objFaltaAluno = new clsPmieducarFaltaAluno();
                             $existe_falta = $objFaltaAluno->lista(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, 1, $this->modulo, $this->ref_cod_disciplina);
                             if ($existe_falta) {
                                 $objFaltaAluno = new clsPmieducarFaltaAluno($existe_falta[0]['cod_falta_aluno'], $this->pessoa_logada, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo);
                                 if (!$objFaltaAluno->edita()) {
                                     die("não editou (falta)");
                                 }
                             } else {
                                 $objFaltaAluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo);
                                 if (!$objFaltaAluno->cadastra()) {
                                     die("não cadastrou (falta)");
                                 }
                             }
                         }
                     } else {
                         die("falto parâmetros");
                     }
                 }
                 //			die("nao");
                 // o professor decidiu sobre as excessoes
                 foreach ($this->excessao as $cod_excessao => $sentenca) {
                     $objExcessao = new clsPmieducarMatriculaExcessao($cod_excessao);
                     $detalhe_excessao = $objExcessao->detalhe();
                     // verifica se ela ainda existe porque se houve uma sentenca anterior para o mesmo aluno reprovando ele, todas as outras sentencas sao removidas
                     if ($detalhe_excessao) {
                         if ($sentenca == 0) {
                             // aluno reprovado
                             // reprova aluno
                             $objMatricula = new clsPmieducarMatricula($detalhe_excessao["ref_cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2);
                             $objMatricula->edita();
                             // remove excessoes
                             $objExcessao->excluirPorMatricula($detalhe_excessao["ref_cod_matricula"]);
                             $this->passo = 0;
                             return true;
                         } else {
                             if ($sentenca == 1) {
                                 // aluno podera fazer exame
                                 // remove excessao
                                 $objExcessao->excluir();
                                 $this->passo = 0;
                                 return true;
                             } else {
                                 if ($sentenca == 2) {
                                     // aluno aprovado
                                     // aprova aluno
                                     $objMatricula = new clsPmieducarMatricula($detalhe_excessao["ref_cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                     $objMatricula->edita();
                                     // remove excessao
                                     $objExcessao->excluir();
                                     $this->passo = 0;
                                     return true;
                                 }
                             }
                         }
                     }
                 }
             } else {
                 if ($this->passo == 4) {
                     //			echo "<pre>"; print_r($this->resultado_final); die();
                     // aprovou/reprovou alunos manualmente
                     $objCurso = new clsPmieducarCurso($this->ref_cod_curso);
                     foreach ($this->resultado_final as $key => $value) {
                         if ($value) {
                             // remove excessoes
                             $objExcessao = new clsPmieducarMatriculaExcessao();
                             $objExcessao->excluirPorMatricula($key);
                             // aprova/reprova
                             $objMatricula = new clsPmieducarMatricula($key, null, null, null, $this->pessoa_logada, null, null, $value);
                             $objMatricula->edita();
                         }
                     }
                     $this->passo = 0;
                     return true;
                 }
             }
         }
     }
     return false;
 }
Пример #14
0
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @return array
  */
 function lista($date_data_hora_ini = null, $date_data_hora_fim = null, $str_ip_externo = null, $str_ip_interno = null, $int_cod_pessoa = null, $str_obs = null, $bool_sucesso = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_cod_acesso)) {
         $filtros .= "{$whereAnd} cod_acesso = '{$int_cod_acesso}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_hora_ini)) {
         $filtros .= "{$whereAnd} data_hora >= '{$date_data_hora_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_hora_fim)) {
         $filtros .= "{$whereAnd} data_hora <= '{$date_data_hora_fim}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_ip_externo)) {
         $filtros .= "{$whereAnd} ip_externo LIKE '%{$str_ip_externo}%'";
         $whereAnd = " AND ";
     }
     if (is_string($str_ip_interno)) {
         $filtros .= "{$whereAnd} ip_interno LIKE '%{$str_ip_interno}%'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_cod_pessoa)) {
         $filtros .= "{$whereAnd} cod_pessoa = '{$int_cod_pessoa}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_obs)) {
         $filtros .= "{$whereAnd} obs LIKE '%{$str_obs}%'";
         $whereAnd = " AND ";
     }
     if (!is_null($bool_sucesso)) {
         if (dbBool($bool_sucesso)) {
             $filtros .= "{$whereAnd} sucesso = TRUE";
         } else {
             $filtros .= "{$whereAnd} sucesso = FALSE";
         }
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @param integer int_ref_cod_categoria_nivel
  * @param integer int_ref_usuario_exc
  * @param integer int_ref_usuario_cad
  * @param integer int_ref_cod_nivel_anterior
  * @param string str_nm_nivel
  * @param integer int_salario_base
  * @param string date_data_cadastro_ini
  * @param string date_data_cadastro_fim
  * @param string date_data_exclusao_ini
  * @param string date_data_exclusao_fim
  * @param bool bool_ativo
  *
  * @return array
  */
 function lista($int_cod_nivel = null, $int_ref_cod_categoria_nivel = null, $int_ref_usuario_exc = null, $int_ref_usuario_cad = null, $int_ref_cod_nivel_anterior = null, $str_nm_nivel = null, $int_salario_base = null, $date_data_cadastro_ini = null, $date_data_cadastro_fim = null, $date_data_exclusao_ini = null, $date_data_exclusao_fim = null, $bool_ativo = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_cod_nivel)) {
         $filtros .= "{$whereAnd} cod_nivel = '{$int_cod_nivel}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_categoria_nivel)) {
         $filtros .= "{$whereAnd} ref_cod_categoria_nivel = '{$int_ref_cod_categoria_nivel}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_usuario_exc)) {
         $filtros .= "{$whereAnd} ref_usuario_exc = '{$int_ref_usuario_exc}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_usuario_cad)) {
         $filtros .= "{$whereAnd} ref_usuario_cad = '{$int_ref_usuario_cad}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_nivel_anterior)) {
         $filtros .= "{$whereAnd} ref_cod_nivel_anterior = '{$int_ref_cod_nivel_anterior}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_nm_nivel)) {
         $filtros .= "{$whereAnd} nm_nivel LIKE '%{$str_nm_nivel}%'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_salario_base)) {
         $filtros .= "{$whereAnd} salario_base = '{$int_salario_base}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_ini)) {
         $filtros .= "{$whereAnd} data_cadastro >= '{$date_data_cadastro_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_cadastro_fim)) {
         $filtros .= "{$whereAnd} data_cadastro <= '{$date_data_cadastro_fim}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_ini)) {
         $filtros .= "{$whereAnd} data_exclusao >= '{$date_data_exclusao_ini}'";
         $whereAnd = " AND ";
     }
     if (is_string($date_data_exclusao_fim)) {
         $filtros .= "{$whereAnd} data_exclusao <= '{$date_data_exclusao_fim}'";
         $whereAnd = " AND ";
     }
     if (!is_null($bool_ativo)) {
         if (dbBool($bool_ativo)) {
             $filtros .= "{$whereAnd} ativo = TRUE";
         } else {
             $filtros .= "{$whereAnd} ativo = FALSE";
         }
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }
 function Gerar()
 {
     if ($_POST) {
         foreach ($_POST as $campo => $val) {
             $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val;
         }
     }
     // primary keys
     $this->campoOculto("cod_serie", $this->cod_serie);
     if ($_GET['precisa_lista']) {
         $obrigatorio = true;
         $get_curso = true;
         include "include/pmieducar/educar_campo_lista.php";
     }
     // text
     $this->campoTexto("nm_serie", "S&eacute;rie", $this->nm_serie, 30, 255, true);
     $opcoes = array("" => "Selecione");
     if ($this->ref_cod_curso) {
         $objTemp = new clsPmieducarCurso();
         $lista = $objTemp->lista($this->ref_cod_curso, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes_["{$registro['cod_curso']}"] = "{$registro['qtd_etapas']}";
             }
         }
         for ($i = 1; $i <= $opcoes_["{$registro['cod_curso']}"]; $i++) {
             $opcoes[$i] = "Etapa {$i}";
         }
     }
     $this->campoLista("etapa_curso", "Etapa Curso", $opcoes, $this->etapa_curso);
     $opcoes = array("" => "Selecione", 1 => "n&atilde;o", 2 => "sim");
     $this->campoLista("concluinte", "Concluinte", $opcoes, $this->concluinte);
     $this->campoMonetario("carga_horaria", "Carga Hor&aacute;ria", $this->carga_horaria, 7, 7, true);
     $this->campoNumero("intervalo", "Intervalo", $this->intervalo, 2, 2, true);
     $this->media_especial = dbBool($this->media_especial) ? 'true' : '';
     $this->campoCheck('media_especial', 'M&eacute;dia Especial', $this->media_especial);
     $this->campoNumero("idade_inicial", "Faixa et&aacute;ria", $this->idade_inicial, 2, 2, false, "", "", false, false, true);
     $this->campoNumero("idade_final", "&nbsp;até", $this->idade_final, 2, 2, false);
     //-----------------------INCLUI DISCIPLINA------------------------//
     $this->campoQuebra();
     /*
     if ( $_POST["disciplina_serie"] )
     	$this->disciplina_serie = unserialize( urldecode( $_POST["disciplina_serie"] ) );
     */
     if (is_numeric($this->cod_serie)) {
         $obj = new clsPmieducarDisciplinaSerie();
         $registros = $obj->lista(null, $this->cod_serie, 1);
         if ($registros) {
             foreach ($registros as $campo) {
                 $this->disciplina_serie[$campo["ref_cod_disciplina"]] = $campo["ref_cod_disciplina"];
             }
         }
     }
     $disciplinas = "Nenhum curso selecionado";
     if ($this->ref_cod_curso) {
         $disciplinas = "";
         $conteudo = "";
         $objTemp = new clsPmieducarDisciplina();
         $objTemp->setOrderby("nm_disciplina");
         $lista = $objTemp->lista(null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_curso);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 //					$opcoes["{$registro['cod_disciplina']}"] = "{$registro['nm_disciplina']}";
                 $checked = "";
                 if ($this->disciplina_serie[$registro["cod_disciplina"]] == $registro["cod_disciplina"]) {
                     $checked = "checked=\"checked\"";
                 }
                 $conteudo .= "<input type=\"checkbox\" {$checked} name=\"disciplinas[]\" id=\"disciplinas[]\" value=\"{$registro["cod_disciplina"]}\"><label for=\"disciplinas[]\">{$registro["nm_disciplina"]}</label> <br />";
             }
         }
         $disciplinas = '<table cellspacing="0" cellpadding="0" border="0">';
         $disciplinas .= "<tr align=\"left\"><td> {$conteudo} </td></tr>";
         $disciplinas .= '</table>';
     }
     $this->campoRotulo("disciplinas_", "Disciplinas", "<div id='disciplinas'>{$disciplinas}</div>");
     $this->campoQuebra();
     //-----------------------FIM INCLUI DISCIPLINA------------------------//
 }
 function Editar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(642, $this->pessoa_logada, 7, "educar_falta_nota_aluno_lst.php");
     //************************************* EDITA - MATRICULADO NUMA SERIE *************************************//
     if ($this->ref_ref_cod_serie) {
         //			if (is_numeric($this->modulo))
         //			{
         //				$this->mat_modulo = $this->modulo;
         //			}
         if (!$this->reprova_falta) {
             $this->editaSNotasFaltas();
         }
         /**
          * verifica se existem disciplinas sem notas
          *
          */
         $obj_nota_aluno = new clsPmieducarNotaAluno();
         $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_cod_turma, $this->modulo, $this->ref_ref_cod_escola);
         /* verifica se o aluno está em exame
          * e se todas as matérias do exame estão com notas
          */
         $aluno_esta_em_exame = $_POST["aluno_esta_em_exame"];
         $qtd_disciplinas_aluno_exame = $_POST["qtd_disciplinas_aluno_exame"];
         if ($aluno_esta_em_exame == 1) {
             $sql = "SELECT COUNT(0)\n\t\t\t\t\t\t\t\tFROM pmieducar.nota_aluno na\n\t\t\t\t\t\t\t\t, pmieducar.disciplina d\n\t\t\t\t\t\t\t\t, pmieducar.v_matricula_matricula_turma mmt\n\t\t\t\t\t\t\t\tWHERE na.ref_cod_matricula = '{$this->ref_cod_matricula}'\n\t\t\t\t\t\t\t\tAND na.ref_cod_matricula = mmt.cod_matricula\n\t\t\t\t\t\t\t\tAND mmt.ref_cod_turma = '{$this->ref_cod_turma}'\n\t\t\t\t\t\t\t\tAND na.ativo = 1\n\t\t\t\t\t\t\t\tAND mmt.ativo = 1\n\t\t\t\t\t\t\t\tAND na.ref_cod_disciplina = d.cod_disciplina\n\t\t\t\t\t\t\t\tAND na.ref_cod_serie = '{$this->ref_ref_cod_serie}'\n\t\t\t\t\t\t\t\tAND na.modulo = '{$this->modulo}'";
             $db = new clsBanco();
             $notas_exame_ja_recebidas = $db->CampoUnico($sql);
             if ($qtd_disciplinas_aluno_exame == $notas_exame_ja_recebidas) {
                 $total = 0;
             }
         }
         /**
          * existem disciplinas sem notas
          * somente cadastra e o modulo do aluno
          * continua igual sem calcular nada
          */
         if ($total > 0) {
             /**
              * caso NENHUMA materia tenha nota
              * (por motivo de exclusao) verificar se o modulo da matricula
              * é maior que o ultimo modulo com nota
              * entao decrementar o modulo da matricula
              */
             $ultimo_modulo_matricula = $obj_nota_aluno->getMaxNotas($this->ref_cod_matricula);
             if ($ultimo_modulo_matricula < $this->mat_modulo) {
                 if ($this->nota_foi_removida && $this->pessoa_logada == 184580) {
                     $obj_hst_escolar = new clsPmieducarHistoricoEscolar();
                     $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, null, null, null, $this->ref_cod_matricula);
                     if (is_array($lst_hst_escolar)) {
                         $det_hst_escolar = array_shift($lst_hst_escolar);
                         $obj_hd = new clsPmieducarHistoricoDisciplinas();
                         $excluiu_hd = $obj_hd->excluirTodos($this->ref_cod_aluno, $det_hst_escolar["sequencial"]);
                         if (!$excluiu_hd) {
                             $this->mensagem = "Exclus&atilde;o do Hist&oacute;rico Disciplina n&atilde;o realizado.<br>";
                             return false;
                         }
                         $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0);
                         $excluiu_he = $obj_hst_escolar->excluir();
                         if (!$excluiu_he) {
                             $this->mensagem = "Exclus&atilde;o do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                             return false;
                         }
                     }
                 }
                 $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, 3, null, null, null, null, null, $ultimo_modulo_matricula);
                 $editou = $obj->edita();
             }
             $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
             header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}");
             die;
             return true;
         } else {
             //$ultimo_modulo_matricula = $obj_nota_aluno->getMaxNotas($this->ref_cod_matricula);
             //die("$ultimo_modulo_matricula < $this->mat_modulo || $this->modulo");
             if ($this->mat_modulo == $this->modulo) {
                 $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, 3, null, null, null, null, null, $ultimo_modulo_matricula);
                 $editou = $obj->avancaModulo();
             }
         }
         $aprovado = 3;
         if ($this->qtd_modulos <= $this->mat_modulo) {
             $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
             $det_curso = $obj_curso->detalhe();
             $frequencia_minima = $det_curso["frequencia_minima"];
             $hora_falta = $det_curso["hora_falta"];
             $carga_horaria_curso = $det_curso["carga_horaria"];
             $obj_esd = new clsPmieducarEscolaSerieDisciplina();
             $lst_esd = $obj_esd->lista($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, 1);
             if (is_array($lst_esd)) {
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 $max_nota = $obj_nota_aluno->getMaxNotas($this->ref_cod_matricula);
                 $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
                 $det_serie = $obj_serie->detalhe();
                 $media_especial = $det_serie['media_especial'];
                 foreach ($lst_esd as $campo) {
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $obj_nota_aluno->setOrderby("modulo ASC");
                     $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $campo["ref_cod_disciplina"], $this->ref_cod_matricula, null, null, null, null, null, null, 1);
                     // so busca as notas da disciplina se nao for media especial
                     if (is_array($lst_nota_aluno) && !dbBool($media_especial)) {
                         foreach ($lst_nota_aluno as $key => $nota_aluno) {
                             if ($nota_aluno['nota']) {
                                 $soma_notas[$campo["ref_cod_disciplina"]][$key] = $nota_aluno['nota'] * 2;
                             } else {
                                 $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]);
                                 $det_avaliacao_valores = $obj_avaliacao_valores->detalhe();
                                 $soma_notas[$campo["ref_cod_disciplina"]][$key] = $det_avaliacao_valores["valor"];
                             }
                         }
                     }
                     if (!$this->falta_ch_globalizada) {
                         $obj_falta_aluno = new clsPmieducarFaltaAluno();
                         $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $campo["ref_cod_disciplina"], $this->ref_cod_matricula, null, null, null, null, null, 1);
                         if (is_array($lst_falta_aluno)) {
                             foreach ($lst_falta_aluno as $key => $falta_aluno) {
                                 $soma_faltas[$campo["ref_cod_disciplina"]][$key] = $falta_aluno["faltas"];
                             }
                         }
                     }
                 }
                 if (is_array($soma_faltas)) {
                     foreach ($soma_faltas as $disciplina => $faltas) {
                         foreach ($faltas as $falta) {
                             $faltas_media_aluno[$disciplina] += $falta;
                         }
                     }
                 }
             }
             if (is_array($faltas_media_aluno)) {
                 foreach ($faltas_media_aluno as $disciplina => $faltas) {
                     $obj_disciplina = new clsPmieducarDisciplina($disciplina);
                     $det_disciplina = $obj_disciplina->detalhe();
                     $carga_horaria_disciplina = $det_disciplina["carga_horaria"];
                     // calcula o maximo de horas q o aluno pode faltar na disciplina
                     $max_falta = $carga_horaria_disciplina * $frequencia_minima / 100;
                     $max_falta = $carga_horaria_disciplina - $max_falta;
                     // calcula a quantidade de faltas por hora do aluno na disciplina
                     $faltas *= $hora_falta;
                     if ($faltas > $max_falta && !$this->reprova_falta) {
                         echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>";
                         return true;
                     }
                     if ($this->reprova_falta == 's') {
                         $aprovado = 2;
                         // aluno reprovado por falta
                     }
                 }
             } else {
                 $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
                 $det_serie = $obj_serie->detalhe();
                 $carga_horaria_serie = $det_serie["carga_horaria"];
                 // calcula o maximo de horas q o aluno pode faltar na serie
                 $max_falta = $carga_horaria_serie * $frequencia_minima / 100;
                 $max_falta = $carga_horaria_serie - $max_falta;
                 // calcula a quantidade de faltas por hora do aluno na serie
                 $obj_faltas = new clsPmieducarFaltas();
                 $lst_faltas = $obj_faltas->lista($this->ref_cod_matricula);
                 if (is_array($lst_faltas)) {
                     $total_faltas = 0;
                     foreach ($lst_faltas as $key => $faltas) {
                         $total_faltas += $faltas['falta'];
                     }
                     $total_faltas *= $hora_falta;
                     if ($total_faltas > $max_falta && !$this->reprova_falta) {
                         echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$total_faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>";
                         return true;
                     }
                     if ($this->reprova_falta == 's') {
                         $aprovado = 2;
                         // aluno reprovado por falta
                     }
                 }
             }
             /**
              * calculo de media especial
              */
             if (dbBool($media_especial)) {
                 $objNotaAluno = new clsPmieducarNotaAluno();
                 $media = $objNotaAluno->getMediaEspecialAluno($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->qtd_modulos, $this->media);
                 if ($media < $this->media) {
                     //  reprovado direto sem exame
                     $aprovado = 2;
                 }
             }
         }
         $db2 = new clsBanco();
         //retorna quantas matérias o aluno cursa não contabilizando as matérias com dispensa
         $sql = "SELECT COUNT(0) FROM pmieducar.escola_serie_disciplina WHERE ref_ref_cod_serie = {$this->ref_ref_cod_serie} \n\t\t\t\t\tAND ref_ref_cod_escola = {$this->ref_ref_cod_escola} AND escola_serie_disciplina.ativo = 1\n\t\t\t\t\tAND ref_cod_disciplina NOT IN (\n\t\t\t\t\t\tSELECT ref_cod_disciplina\n\t\t\t\t\t\tFROM pmieducar.dispensa_disciplina WHERE \n\t\t\t\t\t\tref_cod_matricula = {$this->ref_cod_matricula} AND ref_cod_serie = {$this->ref_ref_cod_serie}\n\t\t\t\t\t\tAND ref_cod_escola = {$this->ref_ref_cod_escola} AND ativo = 1\n\t\t\t\t\t)";
         $qtd_materias = $db2->CampoUnico($sql);
         //retorna quantas notas notas o aluno possui não contabilizandoa das matérias dispensadas
         $sql = "SELECT COUNT(0) FROM pmieducar.nota_aluno \n\t\t\t\t\tWHERE ref_cod_matricula = {$this->ref_cod_matricula} AND ativo = 1\n\t\t\t\t\tAND ref_cod_disciplina NOT IN (\n\t\t\t\t\t\t\tSELECT ref_cod_disciplina FROM pmieducar.dispensa_disciplina WHERE \n\t\t\t\t\t\t\tref_cod_matricula = {$this->ref_cod_matricula} AND ref_cod_serie = {$this->ref_ref_cod_serie} \n\t\t\t\t\t\t\tAND ref_cod_escola = {$this->ref_ref_cod_escola} AND ativo = 1\n\t\t\t\t\t)";
         //variável em uma edição para verificar se o aluno possui todas as notas
         //para mudar o estado de aprovado dele
         $qtd_notas_possui = $db2->CampoUnico($sql);
         $possui_todas_as_notas = $this->qtd_modulos * $qtd_materias >= $qtd_notas_possui || $aluno_esta_em_exame == 1 ? true : false;
         if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos == $max_nota && !dbBool($media_especial)) {
             if (is_array($soma_notas) && !dbBool($media_especial)) {
                 foreach ($soma_notas as $disciplina => $notas) {
                     foreach ($notas as $nota) {
                         if (dbBool($det_serie["ultima_nota_define"])) {
                             $nota_media_aluno[$disciplina] = $nota;
                         } else {
                             $nota_media_aluno[$disciplina] += $nota;
                         }
                     }
                     if (!dbBool($det_serie["ultima_nota_define"])) {
                         $nota_media_aluno[$disciplina] /= $this->mat_modulo - 1;
                     }
                 }
                 foreach ($nota_media_aluno as $disciplina => $nota) {
                     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                     $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota);
                     if (is_array($lst_avaliacao_valores)) {
                         $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                         $valor = $det_avaliacao_valores["valor"];
                     }
                     /**
                      * verifica se existem disciplinas sem notas
                      * somente aprova caso seja zero
                      */
                     //$obj_nota_aluno = new clsPmieducarNotaAluno();
                     //	$total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula,$this->ref_ref_cod_serie,$this->ref_cod_turma,$this->modulo,$this->ref_ref_cod_escola);
                     if ($nota < $this->media && $this->media_exame && !$this->conceitual && $possui_todas_as_notas) {
                         $em_exame = true;
                         // aluno em exame
                     } else {
                         if ($valor < $this->media && !$this->media_exame && !$this->conceitual && $possui_todas_as_notas) {
                             $aprovado = 2;
                             // aluno reprovado direto (n existe exame)
                         }
                     }
                 }
             }
         } else {
             if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos < $max_nota && !dbBool($media_especial)) {
                 //				echo "<pre>"; print_r($soma_notas);
                 foreach ($soma_notas as $disciplina => $notas) {
                     $qtd_notas = 0;
                     foreach ($notas as $nota) {
                         $nota_media_aluno[$disciplina] += $nota;
                         $qtd_notas++;
                     }
                     if ($qtd_notas == $this->modulo) {
                         $nota_media_aluno[$disciplina] /= $this->modulo + 1;
                     } else {
                         $nota_media_aluno[$disciplina] /= $this->modulo - 1;
                     }
                 }
                 foreach ($nota_media_aluno as $disciplina => $nota) {
                     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                     $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota);
                     if (is_array($lst_avaliacao_valores)) {
                         $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                         $valor = $det_avaliacao_valores["valor"];
                         if ($valor < $this->media_exame) {
                             $aprovado = 2;
                             // aluno reprovado no exame
                         }
                         /*else if ( ($valor < $this->media) && ($this->qtd_modulos >= $this->modulo) )
                         		$aprovado = 7; // aluno em exame*/
                     }
                 }
             }
         }
         /**
          * verifica se existem disciplinas sem notas
          * somente aprova caso seja zero
          */
         //$obj_nota_aluno = new clsPmieducarNotaAluno();
         //$total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula,$this->ref_ref_cod_serie,$this->ref_cod_turma,$this->modulo,$this->ref_ref_cod_escola);
         if ($this->conceitual) {
             $aprovado = $this->aprovado;
             // situacao definida pelo professor
         } else {
             if (!$em_exame && $this->qtd_modulos <= $this->mat_modulo && $aprovado == 3 && !$this->conceitual && $possui_todas_as_notas) {
                 $aprovado = 1;
                 // aluno aprovado
             }
         }
         $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado);
         $editou = $obj->edita();
         //die($aprovado);
         if ($editou) {
             /**
              * aluno reprovado mantem historico
              * 01/03/2006
              */
             if ($aprovado == 2 || $aprovado == 3 || $aprovado == 1) {
                 $obj_hst_escolar = new clsPmieducarHistoricoEscolar();
                 $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_serie["nm_serie"], $this->ano_letivo, $carga_horaria_serie, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, null, $this->ref_cod_matricula);
                 if (is_array($lst_hst_escolar)) {
                     $det_hst_escolar = array_shift($lst_hst_escolar);
                     $obj_hd = new clsPmieducarHistoricoDisciplinas();
                     $excluiu_hd = $obj_hd->excluirTodos($this->ref_cod_aluno, $det_hst_escolar["sequencial"]);
                     if (!$excluiu_hd) {
                         $this->mensagem = "Exclus&atilde;o do Hist&oacute;rico Disciplina n&atilde;o realizado.<br>";
                         return false;
                     }
                     $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0);
                     $excluiu_he = $obj_hst_escolar->excluir();
                     if (!$excluiu_he) {
                         $this->mensagem = "Exclus&atilde;o do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                         return false;
                     }
                 }
             }
             /*else */
             if ($aprovado == 1 || $aprovado == 2) {
                 $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
                 $det_serie = $obj_serie->detalhe();
                 $carga_horaria_serie = $det_serie["carga_horaria"];
                 $obj_escola = new clsPmieducarEscola($this->ref_ref_cod_escola);
                 $det_escola = $obj_escola->detalhe();
                 $ref_idpes = $det_escola["ref_idpes"];
                 // busca informacoes da escola
                 if ($ref_idpes) {
                     $obj_escola = new clsPessoaJuridica($ref_idpes);
                     $det_escola = $obj_escola->detalhe();
                     $nm_escola = $det_escola["fantasia"];
                     if ($det_escola) {
                         $cidade = $det_escola["cidade"];
                         $uf = $det_escola["sigla_uf"];
                     }
                 } else {
                     if (class_exists("clsPmieducarEscolaComplemento")) {
                         $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                         $det_escola = $obj_escola->detalhe();
                         $nm_escola = $det_escola["nm_escola"];
                         $cidade = $det_escola["municipio"];
                     }
                 }
                 if ($this->padrao_ano_escolar) {
                     $extra_curricular = 0;
                 } else {
                     $extra_curricular = 1;
                 }
                 $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$this->ref_cod_matricula}";
                 $db5 = new clsBanco();
                 $total_faltas = $db5->CampoUnico($sql);
                 $obj_hst_escolar = new clsPmieducarHistoricoEscolar();
                 $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_serie["nm_serie"], $this->ano_letivo, $carga_horaria_serie, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, null, $this->ref_cod_matricula);
                 if (is_array($lst_hst_escolar)) {
                     $det_hst_escolar = array_shift($lst_hst_escolar);
                     $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, null, null, $extra_curricular);
                     $editou_he = $obj->edita();
                 } else {
                     $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_serie["nm_serie"], $this->ano_letivo, $carga_horaria_serie, null, $nm_escola, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, $extra_curricular, $this->ref_cod_matricula);
                     $cadastrou_he = $obj->cadastra();
                 }
                 if (($editou_he || $cadastrou_he) && !$this->conceitual) {
                     if ($cadastrou_he) {
                         $obj_historico = new clsPmieducarHistoricoEscolar();
                         $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno);
                     } else {
                         $sequencial = $det_hst_escolar["sequencial"];
                     }
                     $historico_disciplina = array();
                     foreach ($nota_media_aluno as $key => $nota) {
                         $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]);
                     }
                     foreach ($historico_disciplina as $disciplina => $campo) {
                         $obj_disciplina = new clsPmieducarDisciplina($disciplina);
                         $det_disciplina = $obj_disciplina->detalhe();
                         $nm_disciplina = $det_disciplina["nm_disciplina"];
                         $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                         $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]);
                         if (is_array($lst_avaliacao_valores)) {
                             $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                             $nm_nota = $det_avaliacao_valores["nome"];
                             $obj_hd = new clsPmieducarHistoricoDisciplinas();
                             $lst_hd = $obj_hd->lista(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina);
                             if (is_array($lst_hd)) {
                                 $det_hd = array_shift($lst_hd);
                                 $obj_hd = new clsPmieducarHistoricoDisciplinas($det_hd["sequencial"], $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]);
                                 $hst_disciplina = $obj_hd->edita();
                             } else {
                                 $obj_hd = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]);
                                 $hst_disciplina = $obj_hd->cadastra();
                             }
                             if (!$hst_disciplina) {
                                 $this->mensagem = "Cadastro/Edi&ccedil;&atilde;o do Hist&oacute;rico Disciplinas n&atilde;o realizado.<br>";
                                 return false;
                             }
                         } else {
                             $this->mensagem = "N&atilde;o foi poss&iacute;vel encontrar os Valores do Tipo de Avalia&ccedil;&atilde;o.<br>";
                             return false;
                         }
                     }
                 }
                 /*
                 else if( (!$editou_he || !$cadastrou_he) && (!$this->conceitual) )
                 {
                 	$this->mensagem = "Cadastro/Edi&ccedil;&atilde;o do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                 	return false;
                 }
                 */
             }
             $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
             header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}");
             die;
             return true;
         }
         $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada (Matr&iacute;cula).<br>";
         echo "<!--\nErro ao editar clsPmieducarMatricula\nvalores obrigatorios\nis_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->modulo} )\n-->";
         return false;
     } else {
         if (!$this->reprova_falta) {
             $this->editaCNotasFaltas();
         }
         /**
          * verifica se existem disciplinas sem notas
          *
          */
         $obj_nota_aluno = new clsPmieducarNotaAluno();
         $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_cod_turma, $this->modulo, $this->ref_ref_cod_escola);
         /**
          * existem disciplinas sem notas
          * somente cadastra e o modulo do aluno
          * continua igual sem calcular nada
          */
         if ($total) {
             $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
             header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}");
             die;
             return true;
         }
         $aprovado = 3;
         if ($this->qtd_modulos <= $this->mat_modulo) {
             $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
             $det_curso = $obj_curso->detalhe();
             $frequencia_minima = $det_curso["frequencia_minima"];
             $hora_falta = $det_curso["hora_falta"];
             $carga_horaria_curso = $det_curso["carga_horaria"];
             $obj_disciplina = new clsPmieducarDisciplina();
             $lst_disciplina = $obj_disciplina->lista(null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_curso);
             if (is_array($lst_disciplina)) {
                 foreach ($lst_disciplina as $campo) {
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, null, 1, null, $campo["cod_disciplina"]);
                     if (is_array($lst_nota_aluno)) {
                         foreach ($lst_nota_aluno as $key => $nota_aluno) {
                             if ($nota_aluno["nota"]) {
                                 $soma_notas[$campo["cod_disciplina"]][$key] = $nota_aluno["nota"] * 2;
                             } else {
                                 $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]);
                                 $det_avaliacao_valores = $obj_avaliacao_valores->detalhe();
                                 $soma_notas[$campo["cod_disciplina"]][$key] = $det_avaliacao_valores["valor"];
                             }
                         }
                     }
                     if (!$this->falta_ch_globalizada) {
                         $obj_falta_aluno = new clsPmieducarFaltaAluno();
                         $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, 1, null, $campo["cod_disciplina"]);
                         if (is_array($lst_falta_aluno)) {
                             foreach ($lst_falta_aluno as $key => $falta_aluno) {
                                 $soma_faltas[$campo["cod_disciplina"]][$key] = $falta_aluno["faltas"];
                             }
                         }
                     }
                 }
                 if (is_array($soma_faltas)) {
                     foreach ($soma_faltas as $disciplina => $faltas) {
                         foreach ($faltas as $falta) {
                             $faltas_media_aluno[$disciplina] += $falta;
                         }
                     }
                 }
             }
             if (is_array($faltas_media_aluno)) {
                 foreach ($faltas_media_aluno as $disciplina => $faltas) {
                     $obj_disciplina = new clsPmieducarDisciplina($disciplina);
                     $det_disciplina = $obj_disciplina->detalhe();
                     $carga_horaria_disciplina = $det_disciplina["carga_horaria"];
                     // calcula o maximo de horas q o aluno pode faltar na disciplina
                     $max_falta = $carga_horaria_disciplina * $frequencia_minima / 100;
                     $max_falta = $carga_horaria_disciplina - $max_falta;
                     // calcula a quantidade de faltas por hora do aluno na disciplina
                     $faltas *= $hora_falta;
                     if ($faltas > $max_falta && !$this->reprova_falta) {
                         echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>";
                         return true;
                     }
                     if ($this->reprova_falta == 's') {
                         $aprovado = 2;
                         // aluno reprovado por falta
                     }
                 }
             } else {
                 // calcula o maximo de horas q o aluno pode faltar no curso
                 $max_falta = $carga_horaria_curso * $frequencia_minima / 100;
                 $max_falta = $carga_horaria_curso - $max_falta;
                 // calcula a qtd de faltas por hora do aluno no curso
                 $obj_faltas = new clsPmieducarFaltas();
                 $lst_faltas = $obj_faltas->lista($this->ref_cod_matricula);
                 if (is_array($lst_faltas)) {
                     $total_faltas = 0;
                     foreach ($lst_faltas as $key => $faltas) {
                         $total_faltas += $faltas['falta'];
                     }
                     $total_faltas *= $hora_falta;
                     if ($total_faltas > $max_falta && !$this->reprova_falta) {
                         echo "<script>\n\t\t\t\t\t\t\t\t\tif( confirm('O aluno excedeu o valor máximo de faltas permitidas, \\n deseja reprová-lo? \\n Quantidade de faltas do aluno: {$total_faltas} \\n Valor máximo de faltas permitido: {$max_falta} \\n \\n Clique em OK para reprová-lo ou em CANCELAR para ignorar.') )\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=s';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\twindow.location = 'educar_falta_nota_aluno_cad.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&ref_sequencial_matricula_turma={$this->ref_sequencial_matricula_turma}&modulo={$this->modulo}&falta=n';\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</script>";
                         return true;
                     }
                     if ($this->reprova_falta == 's') {
                         $aprovado = 2;
                         // aluno reprovado por falta
                     }
                 }
             }
         }
         if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos == $max_nota) {
             if (is_array($soma_notas)) {
                 foreach ($soma_notas as $disciplina => $notas) {
                     foreach ($notas as $nota) {
                         $nota_media_aluno[$disciplina] += $nota;
                     }
                     $nota_media_aluno[$disciplina] /= $this->mat_modulo - 1;
                 }
                 foreach ($nota_media_aluno as $disciplina => $nota) {
                     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                     $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota);
                     if (is_array($lst_avaliacao_valores)) {
                         $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                         $valor = $det_avaliacao_valores["valor"];
                         /*
                         if ( ($valor < $this->media) && $this->media_exame && !$this->conceitual )
                         {
                         	$em_exame = true;
                         }
                         else if ( ($valor < $this->media) && !$this->media_exame && !$this->conceitual )
                         {
                         	$aprovado = 2; // aluno reprovado direto (n existe exame)
                         }
                         */
                     }
                     /**
                      * verifica se existem disciplinas sem notas
                      * somente aprova caso seja zero
                      */
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_cod_turma, $this->modulo, $this->ref_ref_cod_escola);
                     if ($nota < $this->media && $this->media_exame && !$this->conceitual) {
                         $em_exame = true;
                         // aluno em exame
                     } else {
                         if ($valor < $this->media && !$this->media_exame && !$this->conceitual) {
                             $aprovado = 2;
                             // aluno reprovado direto (n existe exame)
                         }
                     }
                 }
             }
         } else {
             if ($this->qtd_modulos < $this->mat_modulo && $this->qtd_modulos < $max_nota) {
                 foreach ($soma_notas as $disciplina => $notas) {
                     $qtd_notas = 0;
                     foreach ($notas as $nota) {
                         $nota_media_aluno[$disciplina] += $nota;
                         $qtd_notas++;
                     }
                     if ($qtd_notas == $this->mat_modulo) {
                         $nota_media_aluno[$disciplina] /= $this->mat_modulo;
                     } else {
                         $nota_media_aluno[$disciplina] /= $this->mat_modulo - 1;
                     }
                 }
                 foreach ($nota_media_aluno as $disciplina => $nota) {
                     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                     $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $nota, $nota);
                     if (is_array($lst_avaliacao_valores)) {
                         $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                         $valor = $det_avaliacao_valores["valor"];
                         if ($valor < $this->media_exame) {
                             $aprovado = 2;
                             // aluno reprovado no exame
                         }
                     }
                 }
             }
         }
         /**
          * verifica se existem disciplinas sem notas
          * somente aprova caso seja zero
          */
         //$obj_nota_aluno = new clsPmieducarNotaAluno();
         //$total = $obj_nota_aluno->getQtdRestanteNotasAlunoNaoApuraFaltas($this->ref_cod_matricula,$this->ref_ref_cod_serie,$this->ref_cod_turma,$this->modulo,$this->ref_ref_cod_escola);
         if ($this->conceitual) {
             $aprovado = $this->aprovado;
             // situacao definida pelo professor
         } else {
             if (!$em_exame && $this->qtd_modulos <= $this->mat_modulo && $aprovado == 3 && !$this->conceitual) {
                 $aprovado = 1;
                 // aluno aprovado
             }
         }
         $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado);
         $editou = $obj->edita();
         if ($editou) {
             /**
              * aluno reprovado edita nao remove do historico
              */
             if ($aprovado == 2 || $aprovado == 3) {
                 $obj_hst_escolar = new clsPmieducarHistoricoEscolar();
                 $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula);
                 if (is_array($lst_hst_escolar)) {
                     $det_hst_escolar = array_shift($lst_hst_escolar);
                     $obj_hd = new clsPmieducarHistoricoDisciplinas();
                     $excluiu_hd = $obj_hd->excluirTodos($this->ref_cod_aluno, $det_hst_escolar["sequencial"]);
                     if (!$excluiu_hd) {
                         $this->mensagem = "Exclus&atilde;o do Hist&oacute;rico Disciplina n&atilde;o realizado.<br>";
                         return false;
                     }
                     $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, null, null, null, null, null, null, null, null, null, null, null, 0);
                     $excluiu_he = $obj_hst_escolar->excluir();
                     if (!$excluiu_he) {
                         $this->mensagem = "Exclus&atilde;o do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                         return false;
                     }
                 }
             }
             /*else*/
             if ($aprovado == 1 || $aprovado == 2) {
                 // busca informacoes da instituicao
                 $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
                 $det_instituicao = $obj_instituicao->detalhe();
                 $nm_instituicao = $det_instituicao["nm_instituicao"];
                 $cidade = $det_instituicao["cidade"];
                 $uf = $det_instituicao["ref_sigla_uf"];
                 $obj_hst_escolar = new clsPmieducarHistoricoEscolar();
                 $lst_hst_escolar = $obj_hst_escolar->lista($this->ref_cod_aluno, null, null, null, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, null, null, null, null, null, null, null, null, null, null, null, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula);
                 $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$this->ref_cod_matricula}";
                 $db5 = new clsBanco();
                 $total_faltas = $db5->CampoUnico($sql);
                 if (is_array($lst_hst_escolar)) {
                     $det_hst_escolar = array_shift($lst_hst_escolar);
                     $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, $det_hst_escolar["sequencial"], $this->pessoa_logada, null, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, $nm_instituicao, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula);
                     $editou_he = $obj_hst_escolar->edita();
                 } else {
                     $obj_hst_escolar = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_curso['nm_curso'], $this->ano_letivo, $carga_horaria_curso, null, $nm_instituicao, $cidade, $uf, null, $aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, 1, $this->ref_cod_matricula);
                     $cadastrou_he = $obj_hst_escolar->cadastra();
                 }
                 if (($editou_he || $cadastrou_he) && !$this->conceitual) {
                     if ($cadastrou_he) {
                         $obj_historico = new clsPmieducarHistoricoEscolar();
                         $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno);
                     } else {
                         $sequencial = $det_hst_escolar["sequencial"];
                     }
                     $historico_disciplina = array();
                     foreach ($nota_media_aluno as $key => $nota) {
                         $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]);
                     }
                     foreach ($historico_disciplina as $disciplina => $campo) {
                         $obj_disciplina = new clsPmieducarDisciplina($disciplina);
                         $det_disciplina = $obj_disciplina->detalhe();
                         $nm_disciplina = $det_disciplina["nm_disciplina"];
                         $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                         $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]);
                         if (is_array($lst_avaliacao_valores)) {
                             $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                             $nm_nota = $det_avaliacao_valores["nome"];
                             $obj_hd = new clsPmieducarHistoricoDisciplinas();
                             $lst_hd = $obj_hd->lista(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina);
                             if (is_array($lst_hd)) {
                                 $det_hd = array_shift($lst_hd);
                                 $obj_hd = new clsPmieducarHistoricoDisciplinas($det_hd["sequencial"], $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]);
                                 $hst_disciplina = $obj_hd->edita();
                             } else {
                                 $obj_hd = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]);
                                 $hst_disciplina = $obj_hd->cadastra();
                             }
                             if (!$hst_disciplina) {
                                 $this->mensagem = "Cadastro/Edi&ccedil;&atilde;o do Hist&oacute;rico Disciplinas n&atilde;o realizado.<br>";
                                 return false;
                             }
                         } else {
                             $this->mensagem = "N&atilde;o foi poss&iacute;vel encontrar os Valores do Tipo de Avalia&ccedil;&atilde;o.<br>";
                             return false;
                         }
                     }
                 }
                 /*
                 else if( !$editou_he || !$cadastrou_he )
                 {
                 	$this->mensagem = "Cadastro/Edi&ccedil;&atilde;o do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                 	return false;
                 }
                 */
             }
             $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
             header("Location: educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}");
             die;
             return true;
         }
         $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada (Matr&iacute;cula).<br>";
         echo "<!--\nErro ao editar clsPmieducarMatricula\nvalores obrigatorios\nis_numeric( {$this->ref_cod_matricula} ) && is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->modulo} )\n-->";
         return false;
     }
 }
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @param integer int_ref_cod_matricula
  * @param integer int_ref_cod_turma
  * @param integer int_ref_sequencial
  * @param integer int_ref_cod_serie
  * @param integer int_ref_cod_escola
  * @param integer int_ref_cod_disciplina
  * @param bool bool_reprovado_faltas
  * @param bool bool_precisa_exame
  * @param bool bool_permite_exame
  *
  * @return array
  */
 function lista($int_ref_cod_matricula = null, $int_ref_cod_turma = null, $int_ref_sequencial = null, $int_ref_cod_serie = null, $int_ref_cod_escola = null, $int_ref_cod_disciplina = null, $bool_reprovado_faltas = null, $bool_precisa_exame = null, $bool_permite_exame = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_cod_aluno_excessao)) {
         $filtros .= "{$whereAnd} cod_aluno_excessao = '{$int_cod_aluno_excessao}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_matricula)) {
         $filtros .= "{$whereAnd} ref_cod_matricula = '{$int_ref_cod_matricula}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_turma)) {
         $filtros .= "{$whereAnd} ref_cod_turma = '{$int_ref_cod_turma}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_sequencial)) {
         $filtros .= "{$whereAnd} ref_sequencial = '{$int_ref_sequencial}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_serie)) {
         $filtros .= "{$whereAnd} ref_cod_serie = '{$int_ref_cod_serie}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_escola)) {
         $filtros .= "{$whereAnd} ref_cod_escola = '{$int_ref_cod_escola}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_ref_cod_disciplina)) {
         $filtros .= "{$whereAnd} ref_cod_disciplina = '{$int_ref_cod_disciplina}'";
         $whereAnd = " AND ";
     }
     if (!is_null($bool_reprovado_faltas)) {
         if (dbBool($bool_reprovado_faltas)) {
             $filtros .= "{$whereAnd} reprovado_faltas = TRUE";
         } else {
             $filtros .= "{$whereAnd} reprovado_faltas = FALSE";
         }
         $whereAnd = " AND ";
     }
     if (!is_null($bool_precisa_exame)) {
         if (dbBool($bool_precisa_exame)) {
             $filtros .= "{$whereAnd} precisa_exame = TRUE";
         } else {
             $filtros .= "{$whereAnd} precisa_exame = FALSE";
         }
         $whereAnd = " AND ";
     }
     if (!is_null($bool_permite_exame)) {
         if ($bool_permite_exame == IS_NULL) {
             $filtros .= "{$whereAnd} permite_exame IS NULL";
         } else {
             if ($bool_permite_exame == IS_NOT_NULL) {
                 $filtros .= "{$whereAnd} permite_exame IS NOT NULL";
             } else {
                 if (dbBool($bool_permite_exame)) {
                     $filtros .= "{$whereAnd} permite_exame = TRUE";
                 } else {
                     $filtros .= "{$whereAnd} permite_exame = FALSE";
                 }
             }
         }
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }
Пример #19
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Turma - Listagem";
     foreach ($_GET as $var => $val) {
         // passa todos os valores obtidos no GET para atributos do objeto
         $this->{$var} = $val === "" ? null : $val;
     }
     $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet");
     $lista_busca = array("Ano", "Turma", "Turno", "S&eacute;rie", "Curso");
     $obj_permissao = new clsPermissoes();
     $nivel_usuario = $obj_permissao->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         $lista_busca[] = "Escola";
         //$lista_busca[] = "Institui&ccedil;&atilde;o";
     } else {
         if ($nivel_usuario == 2) {
             $lista_busca[] = "Escola";
         }
     }
     $lista_busca[] = "Situação";
     $this->addCabecalhos($lista_busca);
     $get_escola = true;
     //		$get_escola_curso = true;
     $get_escola_curso_serie = true;
     $sem_padrao = true;
     $get_curso = true;
     include "include/pmieducar/educar_campo_lista.php";
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     $helperOptions = array();
     $this->inputsHelper()->dynamic('anoLetivo', array(), $helperOptions);
     $this->campoTexto("nm_turma", "Turma", $this->nm_turma, 30, 255, false);
     $this->campoLista("visivel", "Situação", array("" => "Selecione", "1" => "Ativo", "2" => "Inativo"), $this->visivel);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET["pagina_{$this->nome}"] ? $_GET["pagina_{$this->nome}"] * $this->limite - $this->limite : 0;
     $obj_turma = new clsPmieducarTurma();
     $obj_turma->setOrderby("nm_turma ASC");
     $obj_turma->setLimite($this->limite, $this->offset);
     if ($this->visivel == 1) {
         $visivel = true;
     } elseif ($this->visivel == 2) {
         $visivel = false;
     } else {
         $visivel = array("true", "false");
     }
     $lista = $obj_turma->lista2(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, $this->nm_turma, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null, $this->ref_cod_curso, $this->ref_cod_instituicao, null, null, null, null, null, $visivel, null, null, $this->ano);
     $total = $obj_turma->_total;
     // monta a lista
     if (is_array($lista) && count($lista)) {
         $ref_cod_escola = "";
         $nm_escola = "";
         foreach ($lista as $registro) {
             // pega detalhes de foreign_keys
             /*	if( class_exists( "clsPmieducarEscolaSerie" ) )
             			{
             				$obj_ref_ref_cod_serie = new clsPmieducarEscolaSerie( $registro["ref_ref_cod_escola"], $registro["ref_ref_cod_serie"] );
             				$det_ref_ref_cod_serie = $obj_ref_ref_cod_serie->detalhe();
             				$registro["ref_ref_cod_serie"] = $det_ref_ref_cod_serie["ref_cod_serie"];
             			}
             			else
             			{
             				$registro["ref_ref_cod_serie"] = "Erro na geracao";
             				echo "<!--\nErro\nClasse nao existente: clsPmieducarEscolaSerie\n-->";
             			}*/
             /*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"];
             		}
             		else
             		{
             			$registro["ref_cod_curso"] = "Erro na geracao";
             			echo "<!--\nErro\nClasse nao existente: clsPmieducarCurso\n-->";
             		}
             		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&ccedil;&atilde;o";
             			echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarInstituicao\n-->";
             		}*/
             if (class_exists("clsPmieducarEscola") && $registro["ref_ref_cod_escola"] != $ref_cod_escola) {
                 $ref_cod_escola = $registro["ref_ref_cod_escola"];
                 $obj_ref_cod_escola = new clsPmieducarEscola($registro["ref_ref_cod_escola"]);
                 $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
                 $ref_cod_escola = $registro["ref_ref_cod_escola"];
                 $nm_escola = $det_ref_cod_escola["nome"];
             }
             /*$obj_ser = new clsPmieducarSerie( $registro["ref_ref_cod_serie"], null, null, $this->ref_cod_curso );
             		$det_ser = $obj_ser->detalhe();
             		$obj_cur = new clsPmieducarCurso( $det_ser["ref_cod_curso"] );
             		$det_cur = $obj_cur->detalhe();*/
             $lista_busca = array("<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["ano"]}</a>", "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_turma"]}</a>");
             if ($registro["turma_turno_id"]) {
                 $options = array('params' => $registro["turma_turno_id"], 'return_only' => 'first-field');
                 $turno = Portabilis_Utils_Database::fetchPreparedQuery("select nome from pmieducar.turma_turno where id = \$1", $options);
                 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$turno}</a>";
             } else {
                 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\"></a>";
             }
             if ($registro["nm_serie"]) {
                 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_serie"]}</a>";
             } else {
                 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">-</a>";
             }
             $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_curso"]}</a>";
             if ($nivel_usuario == 1) {
                 if ($nm_escola) {
                     $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$nm_escola}</a>";
                 } else {
                     $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">-</a>";
                 }
                 //$lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$registro["nm_instituicao"]}</a>";
             } else {
                 if ($nivel_usuario == 2) {
                     if ($nm_escola) {
                         $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">{$nm_escola}</a>";
                     } else {
                         $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">-</a>";
                     }
                 }
             }
             if (dbBool($registro["visivel"])) {
                 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">Ativo</a>";
             } else {
                 $lista_busca[] = "<a href=\"educar_turma_det.php?cod_turma={$registro["cod_turma"]}\">Inativo</a>";
             }
             $this->addLinhas($lista_busca);
         }
     }
     $this->addPaginador2("educar_turma_lst.php", $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(586, $this->pessoa_logada, 7)) {
         $this->acao = "go(\"educar_turma_cad.php\")";
         $this->nome_acao = "Novo";
     }
     $this->largura = "100%";
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "i-Educar", "educar_index.php" => "Escola", "" => "Lista de Turmas"));
     $this->enviaLocalizacao($localizacao->montar());
 }
Пример #20
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);
 }
Пример #21
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()';
 }
 /**
  * Retorna uma lista filtrados de acordo com os parametros
  *
  * @return array
  */
 function lista($int_ref_cod_tipo_avaliacao = null, $int_sequencial = null, $str_nome = null, $int_valor = null, $int_valor_min = null, $int_valor_max = null, $bool_ativo = null)
 {
     $sql = "SELECT {$this->_campos_lista} FROM {$this->_tabela}";
     $filtros = "";
     $whereAnd = " WHERE ";
     if (is_numeric($int_ref_cod_tipo_avaliacao)) {
         $filtros .= "{$whereAnd} ref_cod_tipo_avaliacao = '{$int_ref_cod_tipo_avaliacao}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_sequencial)) {
         $filtros .= "{$whereAnd} sequencial = '{$int_sequencial}'";
         $whereAnd = " AND ";
     }
     if (is_string($str_nome)) {
         $filtros .= "{$whereAnd} nome LIKE '%{$str_nome}%'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_valor)) {
         $filtros .= "{$whereAnd} valor = '{$int_valor}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_valor_min)) {
         $filtros .= "{$whereAnd} valor_min <= '{$int_valor_min}'";
         $whereAnd = " AND ";
     }
     if (is_numeric($int_valor_max)) {
         $filtros .= "{$whereAnd} valor_max >= '{$int_valor_max}'";
         $whereAnd = " AND ";
     }
     if (dbBool($bool_ativo)) {
         $bool_ativo = dbBool($bool_ativo) ? "true" : "false";
         $filtros .= "{$whereAnd} ativo = {$bool_ativo}";
         $whereAnd = " AND ";
     } else {
         $filtros .= "{$whereAnd} ativo = true";
         $whereAnd = " AND ";
     }
     $db = new clsBanco();
     $countCampos = count(explode(",", $this->_campos_lista));
     $resultado = array();
     $sql .= $filtros . $this->getOrderby() . $this->getLimite();
     $this->_total = $db->CampoUnico("SELECT COUNT(0) FROM {$this->_tabela} {$filtros}");
     $db->Consulta($sql);
     if ($countCampos > 1) {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $tupla["_total"] = $this->_total;
             $resultado[] = $tupla;
         }
     } else {
         while ($db->ProximoRegistro()) {
             $tupla = $db->Tupla();
             $resultado[] = $tupla[$this->_campos_lista];
         }
     }
     if (count($resultado)) {
         return $resultado;
     }
     return false;
 }