Skip to content

Commit

Permalink
Merge pull request #689 from portabilis/portabilis-patch-2019-12-15
Browse files Browse the repository at this point in the history
Portabilis patch 15/12/2019
  • Loading branch information
edersoares authored Dec 16, 2019
2 parents 1d363cd + bae1f09 commit 4572ff9
Show file tree
Hide file tree
Showing 40 changed files with 1,160 additions and 193 deletions.
88 changes: 88 additions & 0 deletions app/Http/Controllers/UpdateRegistrationStatusController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?php

namespace App\Http\Controllers;

use App\Http\Requests\UpdateRegistrationStatusRequest;
use App\Models\LegacyRegistration;
use App\Models\LegacyTransferType;
use App\Process;
use App\Services\RegistrationService;
use App_Model_MatriculaSituacao;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;

class UpdateRegistrationStatusController extends Controller
{
/**
* @param Request $request
* @return View
*/
public function index(Request $request)
{
$this->breadcrumb('Atualização da situação de matrículas em lote', [
url('intranet/educar_configuracoes_index.php') => 'Configurações',
]);

$this->menu(Process::UPDATE_REGISTRATION_STATUS);

return view('registration.update-registration-status.index', ['user' => $request->user()]);
}

/**
* Atualiza a situação das matrículas de acordo com o filtro
*
* @param UpdateRegistrationStatusRequest $request
* @param RegistrationService $registrationService
* @return \Illuminate\Http\RedirectResponse
*/
public function updateStatus(UpdateRegistrationStatusRequest $request, RegistrationService $registrationService)
{
$query = LegacyRegistration::active();

if ($request->get('ano')) {
$query->where('ano', $request->get('ano'));
}

if ($request->get('ref_cod_escola')) {
$query->where('ref_ref_cod_escola', $request->get('ref_cod_escola'));
}

if ($request->get('ref_cod_curso')) {
$query->where('ref_cod_curso', $request->get('ref_cod_curso'));
}

if ($request->get('ref_cod_turma')) {
$schoolClassId = $request->get('ref_cod_turma');
$query->whereHas('enrollments', function ($enrollmentQuery) use ($schoolClassId) {
$enrollmentQuery->where('ref_cod_turma', $schoolClassId);
});
}

if ($request->get('ref_cod_serie')) {
$query->where('ref_ref_cod_serie', $request->get('ref_cod_serie'));
}

$query->where('aprovado', $request->get('situacao'));

$registrations = $query->get();

DB::beginTransaction();

foreach ($registrations as $registration) {
$registrationService->updateStatus(
$registration,
$request->only([
'nova_situacao',
'transferencia_data',
'transferencia_tipo',
'transferencia_observacoes',
])
);
}

DB::commit();

return redirect()->route('update-registration-status.index')->with('success', count($registrations) . ' matrículas atualizadas com sucesso.');
}
}
56 changes: 56 additions & 0 deletions app/Http/Requests/UpdateRegistrationStatusRequest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

namespace App\Http\Requests;

use App_Model_MatriculaSituacao;
use Illuminate\Foundation\Http\FormRequest;

class UpdateRegistrationStatusRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$rules = $this->getTransferValidations();
return array_merge($rules, [
'ano' => [
'required',
'date_format:Y',
],
'ref_cod_instituicao' => 'required',
'situacao' => 'required',
'nova_situacao' => 'required',
]);
}

/**
* @return array
*/
public function messages()
{
return [
'ano.required' => 'O ano é obrigatório.',
'ano.date_format' => 'O campo Ano deve ser um ano válido.',
'ref_cod_instituicao.required' => 'A instituição é obrigatória.',
'situacao.required' => 'A situação é obrigatória.',
'nova_situacao.required' => 'A nova situação é obrigatória.',
'transferencia_tipo.required' => 'O motivo da transferência é obrigatório.',
'transferencia_data.required' => 'A data da transferência é obrigatória.',
];
}

private function getTransferValidations()
{
if ($this->nova_situacao == App_Model_MatriculaSituacao::TRANSFERIDO) {
return [
'transferencia_tipo' => 'required',
'transferencia_data' => 'required',
];
}

return [];
}
}
1 change: 1 addition & 0 deletions app/Models/LegacyIndividual.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ protected static function boot()
$model->data_cad = now();
$model->origem_gravacao = 'M';
$model->operacao = 'I';
$model->pais_residencia = $model->pais_residencia ?? 76;
});
}

Expand Down
1 change: 1 addition & 0 deletions app/Models/LegacyRegistration.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Models;

use App_Model_MatriculaSituacao;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
Expand Down
2 changes: 2 additions & 0 deletions app/Process.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class Process
const MENU_CONFIGURATIONS = 25;

const CONSULTAS = 9998890;
const CONFIGURATIONS_TOOLS = 999910;

const REGISTRATIONS = 578;
const ENROLLMENT_HISTORY = 1001;
Expand All @@ -23,4 +24,5 @@ class Process
const UNDO_STUDENT_UNIFICATION = 2001;
const EXEMPTION_LIST = 2002;
const ALLOW_VACANCY_RESERVATION_REPORT_WITHOUT_SCHOOL = 2003;
const UPDATE_REGISTRATION_STATUS = 2005;
}
15 changes: 13 additions & 2 deletions app/Repositories/EducacensoRepository.php
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,20 @@ public function getDataForRecord00($school, $year)
ON (UPPER(ee.bairro) = UPPER(b.nome))
WHERE ee.idpes = e.ref_idpes
LIMIT 1)))
LEFT JOIN public.municipio ON (municipio.idmun = bairro.idmun)
LEFT JOIN public.municipio ON (municipio.idmun = COALESCE(bairro.idmun, (SELECT m.idmun
FROM public.municipio m
INNER JOIN cadastro.endereco_externo ee
ON (UPPER(ee.cidade) = UPPER(m.nome))
WHERE ee.idpes = e.ref_idpes
LIMIT 1)))
LEFT JOIN public.uf ON (uf.sigla_uf = COALESCE(municipio.sigla_uf, ee.sigla_uf))
LEFT JOIN public.distrito ON (distrito.idmun = bairro.idmun)
LEFT JOIN public.distrito ON (distrito.idmun = COALESCE(bairro.idmun, (SELECT d.idmun
FROM public.distrito d
INNER JOIN public.municipio m on d.idmun = m.idmun
INNER JOIN cadastro.endereco_externo ee
ON (UPPER(ee.cidade) = UPPER(m.nome))
WHERE ee.idpes = e.ref_idpes
LIMIT 1)))
LEFT JOIN urbano.cep_logradouro_bairro clb ON (clb.idbai = ep.idbai AND clb.idlog = ep.idlog AND clb.cep = ep.cep)
LEFT JOIN urbano.cep_logradouro cl ON (cl.idlog = clb.idlog AND clb.cep = cl.cep)
Expand Down
48 changes: 48 additions & 0 deletions app/Services/EnrollmentService.php
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,18 @@ public function enroll(
return $enrollment;
}

/**
* Atualiza o campo transferido na enturmação para TRUE
*
* @param LegacyEnrollment $enrollment
* @throws Throwable
*/
public function markAsTransferred(LegacyEnrollment $enrollment)
{
$enrollment->remanejado = true;
$enrollment->saveOrFail();
}

/**
* Atualiza o campo remanejado na enturmação para TRUE
*
Expand All @@ -253,6 +265,42 @@ public function markAsRelocated(LegacyEnrollment $enrollment)
$enrollment->saveOrFail();
}

/**
* Atualiza o campo reclassificado na enturmação para TRUE
*
* @param LegacyEnrollment $enrollment
* @throws Throwable
*/
public function markAsReclassified(LegacyEnrollment $enrollment)
{
$enrollment->reclassificado = true;
$enrollment->saveOrFail();
}

/**
* Atualiza o campo abandono na enturmação para TRUE
*
* @param LegacyEnrollment $enrollment
* @throws Throwable
*/
public function markAsAbandoned(LegacyEnrollment $enrollment)
{
$enrollment->abandono = true;
$enrollment->saveOrFail();
}

/**
* Atualiza o campo falecido na enturmação para TRUE
*
* @param LegacyEnrollment $enrollment
* @throws Throwable
*/
public function markAsDeceased(LegacyEnrollment $enrollment)
{
$enrollment->falecido = true;
$enrollment->saveOrFail();
}

/**
* Verifica se a matrícula tem enturmação anterior, com data de saída posterior a data base,
* ou data base vazia
Expand Down
Loading

0 comments on commit 4572ff9

Please sign in to comment.