Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Portábilis Patch 25/11/2024 #980

Merged
merged 63 commits into from
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
224f670
Adiciona regra de aprovação após exame final com base na frequência
robertfsousa Sep 27, 2024
6056813
Corrige serviço dos horários da turma
robertfsousa Sep 30, 2024
7d511ea
Atualiza versão `dex/frontier`
edersoares Oct 2, 2024
dab27a7
Altera execução de function devido à replicação
edineivaldameri Oct 10, 2024
5798ddb
Merge pull request #9901 from portabilis/issue-5058
edineivaldameri Oct 10, 2024
0d8c710
Merge pull request #9895 from portabilis/issue-5006
robertfsousa Oct 11, 2024
18ef945
GraphQL
edersoares Oct 12, 2024
9d06423
Merge branch 'main' into frontier
edersoares Oct 12, 2024
f53c773
Merge pull request #9897 from portabilis/frontier
edersoares Oct 12, 2024
e556067
Version
edersoares Oct 13, 2024
54f4efa
Adiciona novo método no model da regra de avaliação
robertfsousa Oct 14, 2024
0811443
Ignora conexão de auditoria
edineivaldameri Oct 18, 2024
2353889
Incrementa versão dos assets
robertfsousa Oct 18, 2024
ef5fe7d
Corrige validação dos pareceres descritivos incompatíveis
robertfsousa Oct 18, 2024
b332cf5
Adiciona eventos de criação de funcionário e estudante
edineivaldameri Oct 21, 2024
d052c6e
Corrige testes para utilizar o nome da tabela
edineivaldameri Oct 22, 2024
d3f2d35
Corrige testes para utilizar o nome da tabela
edineivaldameri Oct 22, 2024
c9f9d75
Merge pull request #9906 from portabilis/database-has-model
edineivaldameri Oct 22, 2024
ca5b7d7
Merge branch 'main' into refactor-increment-assets
edineivaldameri Oct 22, 2024
ec45428
Merge branch 'main' into issue-5084
edineivaldameri Oct 22, 2024
9e8861a
Merge branch 'main' into issue-4923
robertfsousa Oct 22, 2024
d1b0e1c
Merge pull request #9905 from portabilis/issue-5084
robertfsousa Oct 22, 2024
720c0de
Merge pull request #9904 from portabilis/refactor-increment-assets
robertfsousa Oct 22, 2024
49993fe
Merge pull request #9902 from portabilis/issue-4923
robertfsousa Oct 22, 2024
0316d1d
Merge branch 'main' into audit-connection
edineivaldameri Oct 23, 2024
b51a96f
Merge branch 'main' into issue-5053
edineivaldameri Oct 23, 2024
559c47a
Adiciona Formação/Complementação pedagógica no exportador de professores
robertfsousa Oct 23, 2024
b32f434
Corrige visualização dos detalhes do aluno
robertfsousa Oct 24, 2024
49c47ff
Corrige exibição do nome na exibição da ficha médica do aluno
robertfsousa Oct 24, 2024
8d74e98
Adiciona o disparo de evento na criação de um servidor
edineivaldameri Oct 24, 2024
80dd717
Merge pull request #9909 from portabilis/issue-5097
robertfsousa Oct 24, 2024
13e0ccc
Adiciona evento na criação de um estudante
edineivaldameri Oct 24, 2024
151c3b3
Cria teste para garantir o disparo de eventos do estudante e servidor
edineivaldameri Oct 24, 2024
7236dcb
Incrementa versão dos assets
robertfsousa Oct 25, 2024
9241ea7
Merge branch 'main' into issue-5093
robertfsousa Oct 28, 2024
0b7197a
Merge pull request #9903 from portabilis/audit-connection
edineivaldameri Oct 29, 2024
f5d8190
Corrige erro na exportação quando não possui formação/complementação …
robertfsousa Oct 29, 2024
09534ca
Merge pull request #9908 from portabilis/issue-5093
robertfsousa Oct 29, 2024
adf041f
Cria estado civil manualmente
edineivaldameri Oct 29, 2024
4c70ec5
Organiza `ReportsRenderServerFactory` para permitir a geração de rela…
edineivaldameri Oct 29, 2024
816d15a
Cria tela de atualizar em lote a opção bloquear enturmação após ating…
robertfsousa Oct 30, 2024
1a96122
Remove cast para inteiro na carga horária dos históricos
robertfsousa Oct 30, 2024
7202bbd
Corrige atualização da situação de matrículas em lote
robertfsousa Oct 31, 2024
ef15171
Merge pull request #9912 from portabilis/issue-5120
robertfsousa Oct 31, 2024
9ef40d1
Merge pull request #9907 from portabilis/issue-5053
edineivaldameri Nov 1, 2024
31f8684
Incrementa versão dos assets
robertfsousa Nov 4, 2024
ee927f2
Merge pull request #9910 from portabilis/issue-5105
robertfsousa Nov 4, 2024
35fd6c4
Adiciona regra de aprovar pela frequência após exame na situação da d…
robertfsousa Nov 6, 2024
033b835
Atualiza versão dos assets
robertfsousa Nov 7, 2024
8011177
Merge branch 'main' into issue-4994
robertfsousa Nov 7, 2024
c17234a
Corrige situação do componente curricular
robertfsousa Nov 7, 2024
869bfc6
Remove comentário
robertfsousa Nov 11, 2024
a7d1b78
Merge pull request #9894 from portabilis/issue-4994
edineivaldameri Nov 11, 2024
5d8d7c2
Merge pull request #9913 from portabilis/issue-5123
edineivaldameri Nov 11, 2024
c8893d7
Merge branch 'main' into reports-pmd
edineivaldameri Nov 12, 2024
de79233
Merge pull request #9914 from portabilis/issue-5126
robertfsousa Nov 12, 2024
aa91ed6
Remove propriedade depreciada
edineivaldameri Nov 12, 2024
bd79261
Atualiza o composer.lock
edineivaldameri Nov 12, 2024
afac08d
Merge pull request #9916 from portabilis/sonar-qube-scope
edineivaldameri Nov 21, 2024
ae3ba59
Merge pull request #9911 from portabilis/reports-pmd
edineivaldameri Nov 21, 2024
a92d953
Merge pull request #9917 from portabilis/composer-lock
edineivaldameri Nov 21, 2024
076675f
Merge branch 'main' into portabilis-patch-2024-11-25
edineivaldameri Nov 25, 2024
e5d06ee
Atualiza o composer.lock
edineivaldameri Nov 25, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions app/Events/EmployeeCreated.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace App\Events;

use App\Models\Employee;
use App\Models\LegacyRegistration;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class EmployeeCreated
{
use Dispatchable;
use InteractsWithSockets;
use SerializesModels;

public function __construct(
public Employee $employee,
) {}
}
19 changes: 19 additions & 0 deletions app/Events/StudentCreated.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace App\Events;

use App\Models\LegacyStudent;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;

class StudentCreated
{
use Dispatchable;
use InteractsWithSockets;
use SerializesModels;

public function __construct(
public LegacyStudent $student,
) {}
}
59 changes: 59 additions & 0 deletions app/Http/Controllers/BlockEnrollmentController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
<?php

namespace App\Http\Controllers;

use App\Http\Requests\BlockEnrollmentRequest;
use App\Models\LegacySchoolGrade;
use App\Process;
use iEducar\Support\Exceptions\Exception;
use Illuminate\Support\Facades\DB;

class BlockEnrollmentController extends Controller
{
public function update(BlockEnrollmentRequest $request)
{
$query = LegacySchoolGrade::query()
->whereHas('school', fn ($q) => $q->whereInstitution($request->get('ref_cod_instituicao')))
->when($request->get('ref_cod_escola'), fn ($q, $school) => $q->where('ref_cod_escola', $school))
->when($request->get('ref_cod_curso'), function ($q, $course) {
$q->whereHas('grade', fn ($q) => $q->whereCourse($course));
})
->whereRaw("anos_letivos @> ?", ["{" . $request->get('ano') . "}"])
->where('ativo', 1);

$gradesCount = $query->count();

if ($gradesCount === 0) {
return redirect()->route('block-enrollment.edit')->withInput()->with('error', 'Nenhuma série da escola encontrada com os filtros selecionados');
}

if (empty($request->get('confirmation'))) {
return redirect()->route('block-enrollment.edit')->withInput()->with('show-confirmation', $gradesCount);
}

try {
DB::beginTransaction();
$query->update([
'bloquear_enturmacao_sem_vagas' => $request->get('bloquear_enturmacao_sem_vagas'),
'updated_at' => now()
]);
DB::commit();
session()->flash('success', 'Atualização em lote efetuada com sucesso.');
} catch (Exception) {
DB::rollBack();
session()->flash('error', 'Atualização em lote não realizada.');
}

return redirect()->route('block-enrollment.edit');
}

public function edit()
{
$this->menu(Process::BLOCK_ENROLLMENT);
$this->breadcrumb('Bloquear enturmação em lote', [
url('/intranet/educar_configuracoes_index.php') => 'Configurações',
]);

return view('block-enrollment.edit', ['user' => request()->user()]);
}
}
24 changes: 24 additions & 0 deletions app/Http/Requests/BlockEnrollmentRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

class BlockEnrollmentRequest extends FormRequest
{
protected function prepareForValidation()
{
$this->merge([
'bloquear_enturmacao_sem_vagas' => $this->has('bloquear_enturmacao_sem_vagas') ? 1 : 0,
]);
}

public function rules()
{
return [
'ano' => ['required','integer'],
'ref_cod_instituicao' => ['required','integer'],
'bloquear_enturmacao_sem_vagas' => ['required','in:0,1'],
];
}
}
1 change: 1 addition & 0 deletions app/Models/Exporter/Teacher.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ public function getExportedColumnsByGroup()
'high_school_type' => 'Tipo de ensino médio cursado',
'employee_postgraduates_complete' => 'Pós-Graduações concluídas',
'continuing_education_course' => 'Outros cursos de formação continuada',
'complementacao_pedagogica' => 'Formação/Complementação pedagógica',
'employee_graduation_complete' => 'Curso(s) superior(es) concluído(s)',
'allocations.funcao_exercida' => 'Função exercida',
'allocations.tipo_vinculo' => 'Tipo de vínculo',
Expand Down
5 changes: 5 additions & 0 deletions app/Models/LegacyEvaluationRule.php
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,11 @@ public function isSpecificRetake(): bool
return $this->tipo_recuperacao_paralela == self::PARALLEL_REMEDIAL_PER_SPECIFIC_STAGE;
}

public function isByStage(): bool
{
return $this->tipo_recuperacao_paralela == self::PARALLEL_REMEDIAL_PER_STAGE;
}

public function isSumScoreCalculation(): bool
{
return $this->tipo_recuperacao_paralela == self::PARALLEL_REMEDIAL_PER_STAGE
Expand Down
5 changes: 5 additions & 0 deletions app/Models/LegacySchoolGrade.php
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,9 @@ public function grade(): BelongsTo
{
return $this->belongsTo(LegacyGrade::class, 'ref_cod_serie');
}

public function school(): BelongsTo
{
return $this->belongsTo(LegacySchool::class, 'ref_cod_escola');
}
}
2 changes: 2 additions & 0 deletions app/Process.php
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,6 @@ class Process
public const ACTIVE_LOOKING = 9998921;

public const ANNOUNCEMENT = 9999114;

public const BLOCK_ENROLLMENT = 9999115;
}
9 changes: 7 additions & 2 deletions app/Rules/IncompatibleDescriptiveOpinion.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,18 @@ public function passes($attribute, $value)
$schoolClass = $value[0]['turma_id'];
$schoolClass = LegacySchoolClass::find($schoolClass);
$grades = array_column($value, 'serie_id');
$utilizaRegraDiferenciada = $schoolClass->school->utiliza_regra_diferenciada;

$descriptiveOpinionType = LegacyEvaluationRuleGradeYear::query()
->whereIn('serie_id', $grades)
->where('ano_letivo', $schoolClass->ano)
->with('evaluationRule')
->with(['evaluationRule', 'differentiatedEvaluationRule'])
->get()
->map(function ($model) {
->map(function ($model) use ($utilizaRegraDiferenciada) {
if ($utilizaRegraDiferenciada && $model->differentiatedEvaluationRule) {
return $model->differentiatedEvaluationRule->parecer_descritivo;
}

return $model->evaluationRule->parecer_descritivo;
})
->toArray();
Expand Down
56 changes: 36 additions & 20 deletions app/Services/RegistrationService.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@

use App\Models\LegacyEnrollment;
use App\Models\LegacyRegistration;
use App\Models\LegacyRegistrationScore;
use App\Models\LegacySchoolClass;
use App\Models\LegacySchoolClassGrade;
use App\Models\LegacyTransferRequest;
use App\User;
use App_Model_MatriculaSituacao;
use Avaliacao_Model_NotaAlunoDataMapper;
use Avaliacao_Model_NotaComponenteMediaDataMapper;
use DateTime;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
Expand Down Expand Up @@ -95,29 +98,42 @@ private function checkUpdatedStatusAction($data, LegacyRegistration $registratio
{
$newStatus = $data['nova_situacao'];

if ($newStatus == App_Model_MatriculaSituacao::TRANSFERIDO) {
$this->markEnrollmentsAsTransferred($registration);
$this->createTransferRequest(
$data['transferencia_data'],
$data['transferencia_tipo'],
$data['transferencia_observacoes'],
$registration
);

$registration->data_cancel = DateTime::createFromFormat('d/m/Y', $data['transferencia_data']);
$registration->saveOrFail();
}

if ($newStatus == App_Model_MatriculaSituacao::RECLASSIFICADO) {
$this->markEnrollmentsAsReclassified($registration);
switch ($newStatus) {
case App_Model_MatriculaSituacao::TRANSFERIDO:
$this->markEnrollmentsAsTransferred($registration);
$this->createTransferRequest(
$data['transferencia_data'],
$data['transferencia_tipo'],
$data['transferencia_observacoes'],
$registration
);
$registration->data_cancel = DateTime::createFromFormat('d/m/Y', $data['transferencia_data']);
$registration->saveOrFail();
$this->processDisciplineScoreSituation($registration, $newStatus);
break;

case App_Model_MatriculaSituacao::RECLASSIFICADO:
$this->markEnrollmentsAsReclassified($registration);
break;

case App_Model_MatriculaSituacao::ABANDONO:
$this->markEnrollmentsAsAbandoned($registration);
$this->processDisciplineScoreSituation($registration, $newStatus);
break;

case App_Model_MatriculaSituacao::FALECIDO:
$this->markEnrollmentsAsDeceased($registration);
$this->processDisciplineScoreSituation($registration, $newStatus);
break;
}
}

if ($newStatus == App_Model_MatriculaSituacao::ABANDONO) {
$this->markEnrollmentsAsAbandoned($registration);
}
private function processDisciplineScoreSituation(LegacyRegistration $registration, $newStatus)
{
$registrationScoreId = $registration->registrationStores()->value('id');

if ($newStatus == App_Model_MatriculaSituacao::FALECIDO) {
$this->markEnrollmentsAsDeceased($registration);
if ($registrationScoreId) {
(new Avaliacao_Model_NotaComponenteMediaDataMapper())->updateSituation($registrationScoreId, $newStatus);
}
}

Expand Down
2 changes: 1 addition & 1 deletion app/Services/SchoolClass/AvailableTimeService.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public function isAvailable(int $studentId, int $schoolClassId, ?int $turnoId =
{
$schoolClass = LegacySchoolClass::findOrFail($schoolClassId);

if ($schoolClass->tipo_mediacao_didatico_pedagogico != 1) {
if ($schoolClass->tipo_mediacao_didatico_pedagogico != 1 || ($this->onlySchoolClassesInformedOnCensus && $schoolClass->nao_informar_educacenso == 1)) {
return true;
}

Expand Down
2 changes: 1 addition & 1 deletion app/Support/Database/Connections.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@ public function getConnections()
{
$connections = config('database.connections');

return array_diff(array_keys($connections), ['sqlite', 'mysql', 'pgsql', 'sqlsrv', 'bussolastaging', 'mariadb']);
return array_diff(array_keys($connections), ['sqlite', 'mysql', 'pgsql', 'sqlsrv', 'bussolastaging', 'mariadb', 'audit']);
}
}
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"aws/aws-sdk-php-laravel": "^3.7",
"composer/semver": "^3.2",
"dex/composer-plug-and-play": "^0.20",
"dex/frontier": "^0.12.0",
"dex/frontier": "^0.14.0",
"google/recaptcha": "^1.2",
"guzzlehttp/guzzle": "^7.3",
"honeybadger-io/honeybadger-laravel": "^4.0",
Expand Down
Loading