diff --git a/app/Models/Disciplina.php b/app/Models/Disciplina.php new file mode 100644 index 0000000000000000000000000000000000000000..f0dfd277b7419c0cca17dd3a9cfb6ba4302c8b0a --- /dev/null +++ b/app/Models/Disciplina.php @@ -0,0 +1,44 @@ +belongsTo(Curso::class); + } + + /** + * @return string + */ + public function __toString() + { + return $this->name; + } + +} diff --git a/app/Models/Tabelas/Ensino/EnsinoAula.php b/app/Models/Tabelas/Ensino/EnsinoAula.php index 27c50eb3615feb7fc25a2d9237e663c73919c30d..4c3382cceb96fef769a5ea739b8f64dc85333559 100644 --- a/app/Models/Tabelas/Ensino/EnsinoAula.php +++ b/app/Models/Tabelas/Ensino/EnsinoAula.php @@ -32,6 +32,10 @@ class EnsinoAula extends Model protected $fillable = ['cod_atividade', 'componente_curricular', 'curso_id', 'nivel', 'modalidade', 'ch_semanal', 'ch_total', 'pad_id']; + /** + * cod_dimensao from planejamento table + * @var array + */ private $codesDimensao = ['E-1', 'E-2', 'E-3']; @@ -67,13 +71,13 @@ class EnsinoAula extends Model */ public function orientacaoPreenchimento() { return [ - 'descricao' => 'Ensino (Aulas em componentes curriculares)', - 'componente_curricular' => 'Nome do Componente: Nome do componente curricular como descrito no PPC do curso', - 'curso' => 'Curso: Nome do curso ao qual o componente curricular pertence', - 'nivel' => 'Nível: Preencher o nível do curso ao qual o componente curricular pertence, sendo as opções: Graduação, Pós-graduação Stricto Sensu, Pós-Graduação Lato Sensu', - 'modalidade' => 'Modalidade: Preencher a modalidade que o componente curricular é ofertado, sendo as opções: Presencial e EAD', - 'ch_semanal' => 'Carga Horária Semanal: Carga horária total efetiva exercida pelo docente dentro do componente curricular dividida pelo número de semanas que o mesmo ocorre', - 'ch_total' => 'Carga Horária Total: Carga horária total efetiva exercida pelo docente dentro do(s) componente(s) curricular (es)', + 'descricao' => ['item' => '1.', 'descricao' => 'Ensino (Aulas em componentes curriculares)'], + 'componente_curricular' => ['item' => 'Nome do Componente:', 'descricao' => 'Nome do componente curricular como descrito no PPC do curso'], + 'curso' => ['item' => 'Curso:', 'descricao' => 'Nome do curso ao qual o componente curricular pertence'], + 'nivel' => ['item' => 'Nível:', 'descricao' => 'Preencher o nível do curso ao qual o componente curricular pertence, sendo as opções: Graduação, Pós-graduação Stricto Sensu, Pós-Graduação Lato Sensu'], + 'modalidade' => ['item' => 'Modalidade:', 'descricao' => 'Preencher a modalidade que o componente curricular é ofertado, sendo as opções: Presencial e EAD'], + 'ch_semanal' => ['item' => 'Carga Horária Semanal:', 'descricao' => 'Carga horária total efetiva exercida pelo docente dentro do componente curricular dividida pelo número de semanas que o mesmo ocorre'], + 'ch_total' => ['item' => 'Carga Horária Total:', 'descricao' => 'Carga horária total efetiva exercida pelo docente dentro do(s) componente(s) curricular (es)'], ]; } diff --git a/app/Models/Tabelas/Ensino/EnsinoCoordenacao.php b/app/Models/Tabelas/Ensino/EnsinoCoordenacao.php new file mode 100644 index 0000000000000000000000000000000000000000..21fed4dcba7ace3b91768610ae1ccf53019de247 --- /dev/null +++ b/app/Models/Tabelas/Ensino/EnsinoCoordenacao.php @@ -0,0 +1,110 @@ + 'Graduação', + self::NIVEL_POS_GRADUACAO_LATO_SENSU => 'Pós-graduação Stricto Sensu', + self::NIVEL_POS_GRADUACAO_STRICTO_SENSU => 'Pós-Graduação Lato Sensu', + + ]; + + return $value !== null? $values[$value] : $values; + } + + + /** + * @return array|string + */ + public function listModalidade($value = null) { + $values = [ + self::MODALIDADE_EAD => 'EAD', + self::MODALIDADE_PRESENCIAL => 'Presencial', + + ]; + + return $value !== null? $values[$value] : $values; + } + + /** + * @return array + */ + public function orientacaoPreenchimento() { + return [ + 'descricao' => ['item' => '2.', 'ENSINO (COORDENAÇÃO/ REGÊNCIA COMPONENTES CURRICULARES)'], + 'componente_curricular' => ['item' => 'Nome do Componente:', 'descricao' => 'Nome do componente curricular como descrito no PPC do curso'], + 'curso' => ['item' => 'Curso:', 'descricao' => 'Nome do curso ao qual o componente curricular pertence'], + 'nivel' => ['item' => 'Nível:', 'descricao' => 'Preencher o nível do curso ao qual o componente curricular pertence, sendo as opções: Graduação, Pós-graduação Stricto Sensu, Pós-Graduação Lato Sensu'], + 'modalidade' => ['item' => 'Modalidade:', 'descricao' => 'Preencher a modalidade que o componente curricular é ofertado, sendo as opções: Presencial e EAD'], + 'ch_semanal' => ['item' => 'Carga Horária Semanal:', 'descricao' => 'Carga horária semanal efetivamente exercida na atividade (preencher de acordo com quadro de referência)'], + ]; + } + + + /** + * Get PAD with pad.id = ensino_coordenacao.pad_id + * + * @return PAD + */ + public function pad() { + return $this->belongsTo(PAD::class); + } + + /** + * Get Curso with curso.id = ensino_aulas.curso_id + * + * @return Curso + */ + public function curso() + { + return $this->belongsTo(Curso::class); + } + + /** + * @return array + */ + public function getPlanejamentos() { + $query = new PlanejamentoQuery(); + return $query->whereInCodDimensao($this->codesDimensao)->get(); + } + +} diff --git a/app/Models/Tabelas/Ensino/EnsinoOrientacao.php b/app/Models/Tabelas/Ensino/EnsinoOrientacao.php new file mode 100644 index 0000000000000000000000000000000000000000..c44e59db98ab666a88e9afd58604227cbebe4a94 --- /dev/null +++ b/app/Models/Tabelas/Ensino/EnsinoOrientacao.php @@ -0,0 +1,125 @@ + 'Graduação', + self::NIVEL_POS_GRADUACAO_LATO_SENSU => 'Pós-graduação Stricto Sensu', + self::NIVEL_POS_GRADUACAO_STRICTO_SENSU => 'Pós-Graduação Lato Sensu', + + ]; + + return $value !== null? $values[$value] : $values; + } + + /** + * @return array|string + */ + public function listModalidade($value = null) { + $values = [ + self::MODALIDADE_EAD => 'EAD', + self::MODALIDADE_PRESENCIAL => 'Presencial', + + ]; + + return $value !== null? $values[$value] : $values; + } + + /** + * @return array|string + */ + public function listTypeOrientacao($value = null) { + $values = [ + self::ORIENTACAO_GRUPO => 'Individual', + self::ORIENTACAO_INDIVIDUAL => 'Grupo', + ]; + + return $value !== null? $values[$value] : $values; + } + + /** + * @return array + */ + public function orientacaoPreenchimento() { + return [ + 'descricao' => ['item' => '3.', 'ENSINO (ORIENTAÇÕES: ORIENTAÇÃO DE ESTÁGIO, ORIENTAÇÃO DE TCC, ORIENTAÇÃO DE RESIDÊNCIA, ORIENTAÇÃO DE MESTRADO E/OU ORIENTAÇÃO DE DOUTORADO. COORIENTAÇÕES: TCC, MESTRADO E/OU DOUTORADO)'], + 'atividade' => ['item' => 'Atividade de Orientação e Coorientação:', 'descricao' => 'Nome do componente curricular como descrito no PPC do curso'], + 'curso' => ['item' => 'Curso:', 'descricao' => 'Nome do curso ao qual o(s) discente(s) orientado(s) pertence'], + 'nivel' => ['item' => 'Nível:', 'descricao' => 'Preencher o nível do curso que a orientação é realizada, sendo as opções: Graduação, Pós-graduação Stricto Sensu, Pós-Graduação Lato Sensu'], + 'type_orientacao' => ['item' => 'Individual ou Grupo:', 'descricao' => 'Preencher se a orientação é individual ou em grupo. Caso seja em grupo, informar o número de participantes'], + 'modalidade' => ['item' => 'Modalidade:', 'descricao' => 'Preencher a modalidade que o componente curricular é ofertado, sendo as opções: Presencial e EAD'], + 'ch_semanal' => ['item' => 'Carga Horária Semanal:', 'descricao' => 'Carga horária semanal efetivamente exercida na atividade (preencher de acordo com quadro de referência)'], + ]; + } + + /** + * Get PAD with pad.id = ensino_coordenacao.pad_id + * + * @return PAD + */ + public function pad() { + return $this->belongsTo(PAD::class); + } + + /** + * Get Curso with curso.id = ensino_aulas.curso_id + * + * @return Curso + */ + public function curso() + { + return $this->belongsTo(Curso::class); + } + + /** + * @return array + */ + public function getPlanejamentos() { + $query = new PlanejamentoQuery(); + return $query->whereInCodDimensao($this->codesDimensao)->get(); + } + + +} diff --git a/app/Queries/PlanejamentoQuery.php b/app/Queries/PlanejamentoQuery.php index 3ea1d83f6bb28f13b7a093598bce2b6792fe2021..c8df6bb3cbf9668693d92419e1436abde0f5adea 100644 --- a/app/Queries/PlanejamentoQuery.php +++ b/app/Queries/PlanejamentoQuery.php @@ -16,7 +16,8 @@ class PlanejamentoQuery extends Query { * @return Builder */ public function whereDimensao(int $dimensao, string $expression = '=') { - return $this->query->where('dimensao', $expression, $dimensao); + $this->query = $this->query->where('dimensao', $expression, $dimensao); + return $this->query; } /** @@ -25,7 +26,8 @@ class PlanejamentoQuery extends Query { * @return Builder */ public function whereCodDimensao(string $cod_dimensao, string $expression = '=') { - return $this->query->where('cod_dimensao', $expression, $cod_dimensao); + $this->query = $this->query->where('cod_dimensao', $expression, $cod_dimensao); + return $this->query; } /** @@ -34,7 +36,8 @@ class PlanejamentoQuery extends Query { * @return Builder */ public function whereInCodDimensao($codes_dimensao) { - return $this->query->whereIn('cod_dimensao', $codes_dimensao); + $this->query = $this->query->whereIn('cod_dimensao', $codes_dimensao); + return $this->query; } -} \ No newline at end of file +} diff --git a/database/migrations/2022_03_22_225548_create_ensino_aulas_table.php b/database/migrations/2022_03_22_225548_create_ensino_aulas_table.php index a4d073c4864f19c91ca5631f3a8316a006ed1ca0..fe5011d9ecde0d6e6e2e6c8960971525953747b4 100644 --- a/database/migrations/2022_03_22_225548_create_ensino_aulas_table.php +++ b/database/migrations/2022_03_22_225548_create_ensino_aulas_table.php @@ -22,7 +22,7 @@ class CreateEnsinoAulasTable extends Migration $table->tinyInteger('modalidade')->notNull(); $table->integer('ch_semanal')->notNull(); $table->integer('ch_total')->notNull(); - $table->foreignId('pad_id'); + $table->foreignId('pad_id')->notNull(); $table->timestamps(); }); } diff --git a/database/migrations/2022_03_23_184642_create_ensino_coordenacao_table.php b/database/migrations/2022_03_23_184642_create_ensino_coordenacao_table.php new file mode 100644 index 0000000000000000000000000000000000000000..2c0c78466534004639fd45cf4ab370708b85597a --- /dev/null +++ b/database/migrations/2022_03_23_184642_create_ensino_coordenacao_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('cod_atividade')->notNull(); + $table->string('componente_curricular')->notNull(); + $table->foreignId('curso_id')->notNull(); + $table->tinyInteger('nivel')->notNull(); + $table->tinyInteger('modalidade')->notNull(); + $table->integer('ch_semanal')->notNull(); + $table->foreignId('pad_id')->notNull(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('ensino_coordenacao'); + } +} diff --git a/database/migrations/2022_03_23_190559_create_ensino_orientacoes_table.php b/database/migrations/2022_03_23_190559_create_ensino_orientacoes_table.php new file mode 100644 index 0000000000000000000000000000000000000000..7185464933f2b9828cba48a6564b13ae2fe6d352 --- /dev/null +++ b/database/migrations/2022_03_23_190559_create_ensino_orientacoes_table.php @@ -0,0 +1,39 @@ +id(); + $table->string('cod_atividade')->notNull(); + $table->string('atividade')->notNull(); + $table->foreignId('curso_id')->notNull(); + $table->tinyInteger('nivel')->notNull(); + $table->tinyInteger('type_orientacao')->notNull(); + $table->tinyInteger('numero_orientandos')->nullable(); + $table->integer('ch_semanal')->notNull(); + $table->foreignId('pad_id')->notNull(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('ensino_orientacoes'); + } +} diff --git a/database/migrations/2022_03_23_201201_create_disciplinas_table.php b/database/migrations/2022_03_23_201201_create_disciplinas_table.php new file mode 100644 index 0000000000000000000000000000000000000000..005d16fd63b17c5ed49394c0a40a25b4fb84af3d --- /dev/null +++ b/database/migrations/2022_03_23_201201_create_disciplinas_table.php @@ -0,0 +1,33 @@ +id(); + $table->string('name'); + $table->foreignId('curso_id'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('disciplinas'); + } +} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 02e0dfec876bdf03e1ccda40850b30d748ae2762..bd75be5e81f7afdfae1cebd046e648b8fc6cd477 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -22,7 +22,8 @@ class DatabaseSeeder extends Seeder CursoSeeder::class, UserSeeder::class, PlanejamentoSeeder::class, - PADSeeder::class + PADSeeder::class, + DisciplinaSeeder::class, ]); } } diff --git a/database/seeders/DisciplinaSeeder.php b/database/seeders/DisciplinaSeeder.php new file mode 100644 index 0000000000000000000000000000000000000000..0c4705ca7188fd1ccc40e9ec20f51640bc0cdda2 --- /dev/null +++ b/database/seeders/DisciplinaSeeder.php @@ -0,0 +1,30 @@ + $curso->name .' - '. $disciplina, + 'curso_id' => $curso->id, + ]); + } + } + } +}