/** * Método que lista os conceitos do professor * @param int $pkUsuarioProfessor * @param int $unidade * @param int $ensino * @param int $serie * @param int $turma * @param int $area * @param int $frente * @param int $disciplina * @param DateInterval $periodoDe * @param DateTime $periodoAte * @param int $ano */ public function listarConceitos($pkUsuarioProfessor, $unidade = FALSE, $ensino = FALSE, $serie = FALSE, $turma = FALSE, $area = FALSE, $frente = FALSE, $disciplina = FALSE, $periodoDe = FALSE, $periodoAte = FALSE, $ano = FALSE, $tipoFap = FALSE, array $order = array('fap.fap_registro.pk_fap_registro'), $oderAsc = FALSE) { if (!$this->fapRegistros instanceof fap_fap_registro) { throw new Exception('Invalid object: o objeto informado é inválido'); } $where = 'fap.fap_registro.fk_usuario_professor=' . $pkUsuarioProfessor; $where .= ' and "public".usuario_tipo_vin.fk_tipo_usuario!=11'; $where .= is_int($unidade) ? ' and "public".turma.fk_unidade=' . $unidade : ''; $where .= is_int($ensino) ? ' and "public".serie.ensino=' . $ensino : ''; $where .= is_int($serie) ? ' and "public".serie.pk_serie=' . $serie : ''; $where .= is_int($turma) ? ' and "public".turma.pk_turma=' . $turma : ''; $where .= is_int($area) ? ' and "public".materia_mae.are=' . $area : ''; $where .= is_int($disciplina) ? ' and "public".materia.pk_materia=' . $disciplina : ''; $where .= Data::validar($periodoDe, "d/m/Y") ? ' and fap.fap_registro.data_evento>\'' . Data::brasilParaSql($periodoDe) . '\'' : ''; $where .= Data::validar($periodoAte, "d/m/Y") ? ' and fap.fap_registro.data_evento<\'' . Data::brasilParaSql($periodoAte) . '\'' : ''; $where .= !Data::validar($periodoDe, "d/m/Y") && !Data::validar($periodoAte, "d/m/Y") ? ' and extract(year from fap.fap_registro.data_evento)=' . (Data::validar($ano, "Y") ? $ano : Loader::data("config", "site", "ano_letivo")) : ''; $where .= is_int($tipoFap) ? ' and fap.fap_tipo.pk_fap_tipo=' . $tipoFap : ''; $inner = 'inner join fap.fap_subtipo on fap.fap_subtipo.pk_fap_subtipo=fap.fap_registro.fk_fap_subtipo '; $inner .= 'inner join fap.fap_tipo on fap.fap_tipo.pk_fap_tipo=fap.fap_subtipo.fk_fap_tipo '; $inner .= 'inner join "public".usuario on "public".usuario.pk_usuario=fap.fap_registro.fk_usuario_inc '; $inner .= 'inner join "public".usuario_tipo_vin on "public".usuario_tipo_vin.fk_usuario="public".usuario.pk_usuario '; $inner .= 'inner join "public".tipo_usuario on "public".tipo_usuario.pk_tipo_usuario="public".usuario_tipo_vin.fk_tipo_usuario '; ///////////////////////// $inner .= 'left join "public".coordenacao_vin on "public".coordenacao_vin.fk_usuario_tipo_vin="public".usuario_tipo_vin.pk_usuario_tipo_vin '; $inner .= 'left join "public".coordenacao on "public".coordenacao.pk_coordenacao="public".coordenacao_vin.fk_coordenacao '; /////////////////////Tabelas usadas para filtragem de conteúdo $inner .= 'left join "public".aula on "public".aula.pk_aula=fap.fap_registro.fk_aula '; $inner .= 'left join "public".grade on "public".grade.pk_grade="public".aula.fk_grade '; $inner .= 'left join "public".turma on "public".turma.pk_turma="public".grade.fk_turma '; $inner .= 'left join "public".serie on "public".serie.pk_serie="public".turma.fk_serie '; $inner .= 'left join "public".materia_vin on "public".materia_vin.pk_materia_vin="public".grade.fk_materia_vin '; $inner .= 'left join "public".materia on "public".materia.pk_materia="public".materia_vin.fk_materia '; if (is_int($frente)) { #?Apenas se for filtrar por materia mãe $where .= ' and "public".materia.fk_materia_mae=' . $frente; $inner .= 'left join "public".materia_mae on "public".materia_mae.pk_materia_mae=' . '"public".materia.fk_materia_mae'; } $tmp = $this->fapRegistros->select($where, array(), $inner, $order, array(), 0, 0, $oderAsc); return $tmp; }