Commit da04908354e53e3d886b860351dbab2201d6e1d4

Authored by Eder Soares
2 parents d01959b6 9acd7287
Exists in 2.9 and in 7 other branches 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8

Merge branch 'master' into community-patch-2019-11-08

Showing 46 changed files with 1690 additions and 247 deletions   Show diff stats
@@ -57,8 +57,7 @@ GOOGLE_TAG_MANAGER= @@ -57,8 +57,7 @@ GOOGLE_TAG_MANAGER=
57 57
58 FILESYSTEM_DRIVER=local 58 FILESYSTEM_DRIVER=local
59 59
60 -AWS_KEY=  
61 -AWS_SECRET= 60 +AWS_ACCESS_KEY_ID=
  61 +AWS_SECRET_ACCESS_KEY=
62 AWS_DEFAULT_REGION= 62 AWS_DEFAULT_REGION=
63 AWS_BUCKET= 63 AWS_BUCKET=
64 -AWS_URL=  
app/Extensions/Application.php 0 → 100644
@@ -0,0 +1,11 @@ @@ -0,0 +1,11 @@
  1 +<?php
  2 +
  3 +namespace App\Extensions;
  4 +
  5 +use EderSoares\Laravel\PlugAndPlay\Foundation\PlugAndPlayPackages;
  6 +use Illuminate\Foundation\Application as LaravelApplication;
  7 +
  8 +class Application extends LaravelApplication
  9 +{
  10 + use PlugAndPlayPackages;
  11 +}
app/Http/Controllers/BackupController.php 0 → 100644
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
  1 +<?php
  2 +
  3 +namespace App\Http\Controllers;
  4 +
  5 +use App\Services\BackupUrlPresigner;
  6 +use Illuminate\Http\Request;
  7 +use Redirect;
  8 +
  9 +class BackupController extends Controller
  10 +{
  11 + public function download(Request $request, BackupUrlPresigner $backupUrlPresigner)
  12 + {
  13 + $presignedUrl = $backupUrlPresigner->getPresignedUrl($request->url);
  14 +
  15 + return Redirect::away($presignedUrl);
  16 + }
  17 +}
app/Http/Kernel.php
@@ -21,6 +21,7 @@ class Kernel extends HttpKernel @@ -21,6 +21,7 @@ class Kernel extends HttpKernel
21 \App\Http\Middleware\TrustProxies::class, 21 \App\Http\Middleware\TrustProxies::class,
22 \App\Http\Middleware\ChangeAppName::class, 22 \App\Http\Middleware\ChangeAppName::class,
23 \App\Http\Middleware\ConnectTenantDatabase::class, 23 \App\Http\Middleware\ConnectTenantDatabase::class,
  24 + \App\Http\Middleware\LoadSettings::class,
24 ]; 25 ];
25 26
26 /** 27 /**
@@ -38,12 +39,12 @@ class Kernel extends HttpKernel @@ -38,12 +39,12 @@ class Kernel extends HttpKernel
38 // \App\Http\Middleware\VerifyCsrfToken::class, 39 // \App\Http\Middleware\VerifyCsrfToken::class,
39 \Illuminate\Routing\Middleware\SubstituteBindings::class, 40 \Illuminate\Routing\Middleware\SubstituteBindings::class,
40 \App\Http\Middleware\SetLayoutVariables::class, 41 \App\Http\Middleware\SetLayoutVariables::class,
41 - \App\Http\Middleware\LoadSettings::class,  
42 ], 42 ],
43 43
44 'api' => [ 44 'api' => [
45 'throttle:60,1', 45 'throttle:60,1',
46 'bindings', 46 'bindings',
  47 + \Barryvdh\Cors\HandleCors::class
47 ], 48 ],
48 ]; 49 ];
49 50
app/Models/LegacyAddress.php 0 → 100644
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyAddress extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'public.logradouro';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idlog';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idtlog',
  24 + 'nome',
  25 + 'idmun',
  26 + 'geom',
  27 + 'ident_oficial',
  28 + 'idpes_rev',
  29 + 'data_rev',
  30 + 'origem_gravacao',
  31 + 'idpes_cad',
  32 + 'data_cad',
  33 + 'operacao',
  34 + ];
  35 +
  36 + /**
  37 + * @var bool
  38 + */
  39 + public $timestamps = false;
  40 +
  41 + /**
  42 + * @inheritDoc
  43 + */
  44 + protected static function boot()
  45 + {
  46 + parent::boot();
  47 +
  48 + static::creating(function ($model) {
  49 + $model->origem_gravacao = 'M';
  50 + $model->data_cad = now();
  51 + $model->operacao = 'I';
  52 + });
  53 + }
  54 +}
app/Models/LegacyCity.php 0 → 100644
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +use Illuminate\Database\Eloquent\Relations\HasMany;
  7 +
  8 +class LegacyCity extends Model
  9 +{
  10 + /**
  11 + * @var string
  12 + */
  13 + protected $table = 'public.municipio';
  14 +
  15 + /**
  16 + * @var string
  17 + */
  18 + protected $primaryKey = 'idmun';
  19 +
  20 + /**
  21 + * @var array
  22 + */
  23 + protected $fillable = [
  24 + 'idmun',
  25 + 'nome',
  26 + 'sigla_uf',
  27 + 'area_km2',
  28 + 'idmreg',
  29 + 'idasmun',
  30 + 'cod_ibge',
  31 + 'geom',
  32 + 'tipo',
  33 + 'idmun_pai',
  34 + 'idpes_rev',
  35 + 'idpes_cad',
  36 + 'data_rev',
  37 + 'data_cad',
  38 + 'origem_gravacao',
  39 + 'operacao',
  40 + 'nome_limpo',
  41 + ];
  42 +
  43 + /**
  44 + * @var bool
  45 + */
  46 + public $timestamps = false;
  47 +
  48 + /**
  49 + * @inheritDoc
  50 + */
  51 + protected static function boot()
  52 + {
  53 + parent::boot();
  54 +
  55 + static::creating(function ($model) {
  56 + $model->origem_gravacao = 'M';
  57 + $model->data_cad = now();
  58 + $model->operacao = 'I';
  59 + });
  60 + }
  61 +
  62 + /**
  63 + * @return HasMany
  64 + */
  65 + public function districts()
  66 + {
  67 + return $this->hasMany(LegacyDistrict::class, 'idmun', 'idmun');
  68 + }
  69 +}
app/Models/LegacyDistrict.php 0 → 100644
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyDistrict extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'public.distrito';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'iddis';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idmun',
  24 + 'geom',
  25 + 'iddis',
  26 + 'nome',
  27 + 'cod_ibge',
  28 + 'idpes_rev',
  29 + 'data_rev',
  30 + 'origem_gravacao',
  31 + 'idpes_cad',
  32 + 'data_cad',
  33 + 'operacao',
  34 + ];
  35 +
  36 + /**
  37 + * @var bool
  38 + */
  39 + public $timestamps = false;
  40 +
  41 + /**
  42 + * @inheritDoc
  43 + */
  44 + protected static function boot()
  45 + {
  46 + parent::boot();
  47 +
  48 + static::creating(function ($model) {
  49 + $district = LegacyDistrict::query()->whereKey($model->idmun)->first();
  50 +
  51 + $model->origem_gravacao = 'M';
  52 + $model->data_cad = now();
  53 + $model->operacao = 'I';
  54 + $model->iddis = $district->getKey();
  55 + });
  56 + }
  57 +}
app/Models/LegacyExternalAddress.php 0 → 100644
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyExternalAddress extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'cadastro.endereco_externo';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idpes';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idpes',
  24 + 'tipo',
  25 + 'idtlog',
  26 + 'logradouro',
  27 + 'numero',
  28 + 'letra',
  29 + 'complemento',
  30 + 'bairro',
  31 + 'cep',
  32 + 'cidade',
  33 + 'sigla_uf',
  34 + 'reside_desde',
  35 + 'idpes_rev',
  36 + 'data_rev',
  37 + 'origem_gravacao',
  38 + 'idpes_cad',
  39 + 'data_cad',
  40 + 'operacao',
  41 + 'bloco',
  42 + 'andar',
  43 + 'apartamento',
  44 + 'zona_localizacao',
  45 + ];
  46 +
  47 + /**
  48 + * @var bool
  49 + */
  50 + public $timestamps = false;
  51 +
  52 + /**
  53 + * @inheritDoc
  54 + */
  55 + protected static function boot()
  56 + {
  57 + parent::boot();
  58 +
  59 + static::creating(function ($model) {
  60 + $model->data_cad = now();
  61 + $model->origem_gravacao = 'M';
  62 + $model->operacao = 'I';
  63 + });
  64 + }
  65 +}
app/Models/LegacyGrade.php 0 → 100644
@@ -0,0 +1,71 @@ @@ -0,0 +1,71 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7 +use Illuminate\Database\Eloquent\Relations\BelongsToMany;
  8 +
  9 +class LegacyGrade extends Model
  10 +{
  11 + /**
  12 + * @var string
  13 + */
  14 + protected $table = 'pmieducar.serie';
  15 +
  16 + /**
  17 + * @var string
  18 + */
  19 + protected $primaryKey = 'cod_serie';
  20 +
  21 + /**
  22 + * @var array
  23 + */
  24 + protected $fillable = [
  25 + 'nm_serie', 'ref_usuario_cad', 'ref_cod_curso', 'etapa_curso', 'carga_horaria', 'data_cadastro',
  26 + ];
  27 +
  28 + /**
  29 + * @var bool
  30 + */
  31 + public $timestamps = false;
  32 +
  33 + /**
  34 + * @return string
  35 + */
  36 + public function getNameAttribute()
  37 + {
  38 + return $this->nm_serie;
  39 + }
  40 +
  41 + /**
  42 + * @return int
  43 + */
  44 + public function getCourseIdAttribute()
  45 + {
  46 + return $this->ref_cod_curso;
  47 + }
  48 +
  49 + /**
  50 + * @return BelongsToMany
  51 + */
  52 + public function evaluationRules()
  53 + {
  54 + return $this->belongsToMany(
  55 + LegacyEvaluationRule::class,
  56 + 'modules.regra_avaliacao_serie_ano',
  57 + 'serie_id',
  58 + 'regra_avaliacao_id'
  59 + )->withPivot('ano_letivo', 'regra_avaliacao_diferenciada_id');
  60 + }
  61 +
  62 + /**
  63 + * Relacionamento com o curso.
  64 + *
  65 + * @return BelongsTo
  66 + */
  67 + public function course()
  68 + {
  69 + return $this->belongsTo(LegacyCourse::class, 'ref_cod_curso');
  70 + }
  71 +}
app/Models/LegacyIndividual.php
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
  5 +use Illuminate\Database\Eloquent\Relations\BelongsTo;
5 use Prettus\Repository\Contracts\Transformable; 6 use Prettus\Repository\Contracts\Transformable;
6 use Prettus\Repository\Traits\TransformableTrait; 7 use Prettus\Repository\Traits\TransformableTrait;
7 8
@@ -28,11 +29,97 @@ class LegacyIndividual extends EloquentBaseModel implements Transformable @@ -28,11 +29,97 @@ class LegacyIndividual extends EloquentBaseModel implements Transformable
28 * @var array 29 * @var array
29 */ 30 */
30 protected $fillable = [ 31 protected $fillable = [
31 - 'idpes', 'data_cad', 'operacao', 'origem_gravacao', 32 + 'idpes',
  33 + 'data_nasc',
  34 + 'sexo',
  35 + 'idpes_mae',
  36 + 'idpes_pai',
  37 + 'idpes_responsavel',
  38 + 'idesco',
  39 + 'ideciv',
  40 + 'idpes_con',
  41 + 'data_uniao',
  42 + 'data_obito',
  43 + 'nacionalidade',
  44 + 'idpais_estrangeiro',
  45 + 'data_chegada_brasil',
  46 + 'idmun_nascimento',
  47 + 'ultima_empresa',
  48 + 'idocup',
  49 + 'nome_mae',
  50 + 'nome_pai',
  51 + 'nome_conjuge',
  52 + 'nome_responsavel',
  53 + 'justificativa_provisorio',
  54 + 'idpes_rev',
  55 + 'data_rev',
  56 + 'origem_gravacao',
  57 + 'idpes_cad',
  58 + 'data_cad',
  59 + 'operacao',
  60 + 'ref_cod_sistema',
  61 + 'cpf',
  62 + 'ref_cod_religiao',
  63 + 'nis_pis_pasep',
  64 + 'sus',
  65 + 'ocupacao',
  66 + 'empresa',
  67 + 'pessoa_contato',
  68 + 'renda_mensal',
  69 + 'data_admissao',
  70 + 'ddd_telefone_empresa',
  71 + 'telefone_empresa',
  72 + 'falecido',
  73 + 'ativo',
  74 + 'ref_usuario_exc',
  75 + 'data_exclusao',
  76 + 'zona_localizacao_censo',
  77 + 'tipo_trabalho',
  78 + 'local_trabalho',
  79 + 'horario_inicial_trabalho',
  80 + 'horario_final_trabalho',
  81 + 'nome_social',
  82 + 'pais_residencia',
  83 + 'localizacao_diferenciada',
32 ]; 84 ];
33 85
34 /** 86 /**
35 * @var bool 87 * @var bool
36 */ 88 */
37 public $timestamps = false; 89 public $timestamps = false;
  90 +
  91 + /**
  92 + * @inheritDoc
  93 + */
  94 + protected static function boot()
  95 + {
  96 + parent::boot();
  97 +
  98 + static::creating(function ($model) {
  99 + $model->data_cad = now();
  100 + $model->origem_gravacao = 'M';
  101 + $model->operacao = 'I';
  102 + });
  103 + }
  104 +
  105 + /**
  106 + * @return BelongsTo
  107 + */
  108 + public function person()
  109 + {
  110 + return $this->belongsTo(LegacyPerson::class, 'idpes', 'idpes');
  111 + }
  112 +
  113 + /**
  114 + * @param string $cpf
  115 + *
  116 + * @return $this
  117 + */
  118 + public static function findByCpf($cpf)
  119 + {
  120 + $cpf = preg_replace('/[^0-9]/', '', $cpf);
  121 + $cpf = intval($cpf);
  122 +
  123 + return static::query()->where('cpf', $cpf)->first();
  124 + }
38 } 125 }
app/Models/LegacyLevel.php
@@ -2,66 +2,12 @@ @@ -2,66 +2,12 @@
2 2
3 namespace App\Models; 3 namespace App\Models;
4 4
5 -use Illuminate\Database\Eloquent\Model;  
6 -use Illuminate\Database\Eloquent\Relations\BelongsTo;  
7 -  
8 -class LegacyLevel extends Model 5 +/**
  6 + * @deprecated
  7 + *
  8 + * @see LegacyGrade
  9 + */
  10 +class LegacyLevel extends LegacyGrade
9 { 11 {
10 - /**  
11 - * @var string  
12 - */  
13 - protected $table = 'pmieducar.serie';  
14 -  
15 - /**  
16 - * @var string  
17 - */  
18 - protected $primaryKey = 'cod_serie';  
19 -  
20 - /**  
21 - * @var array  
22 - */  
23 - protected $fillable = [  
24 - 'nm_serie', 'ref_usuario_cad', 'ref_cod_curso', 'etapa_curso', 'carga_horaria', 'data_cadastro',  
25 - ];  
26 -  
27 - /**  
28 - * @var bool  
29 - */  
30 - public $timestamps = false;  
31 -  
32 - /**  
33 - * @return string  
34 - */  
35 - public function getNameAttribute()  
36 - {  
37 - return $this->nm_serie;  
38 - }  
39 -  
40 - public function getCourseIdAttribute()  
41 - {  
42 - return $this->ref_cod_curso;  
43 - }  
44 -  
45 - /**  
46 - * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany  
47 - */  
48 - public function evaluationRules()  
49 - {  
50 - return $this->belongsToMany(  
51 - LegacyEvaluationRule::class,  
52 - 'modules.regra_avaliacao_serie_ano',  
53 - 'serie_id',  
54 - 'regra_avaliacao_id'  
55 - )->withPivot('ano_letivo', 'regra_avaliacao_diferenciada_id');  
56 - }  
57 12
58 - /**  
59 - * Relacionamento com o curso.  
60 - *  
61 - * @return BelongsTo  
62 - */  
63 - public function course()  
64 - {  
65 - return $this->belongsTo(LegacyCourse::class, 'ref_cod_curso');  
66 - }  
67 } 13 }
app/Models/LegacyMaritalStatus.php 0 → 100644
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyMaritalStatus extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'cadastro.estado_civil';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'ideciv';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'descricao',
  24 + ];
  25 +
  26 + /**
  27 + * @var bool
  28 + */
  29 + public $timestamps = false;
  30 +}
app/Models/LegacyNeighborhood.php 0 → 100644
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyNeighborhood extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'public.bairro';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idbai';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idmun',
  24 + 'geom',
  25 + 'idbai',
  26 + 'nome',
  27 + 'idpes_rev',
  28 + 'data_rev',
  29 + 'origem_gravacao',
  30 + 'idpes_cad',
  31 + 'data_cad',
  32 + 'operacao',
  33 + 'zona_localizacao',
  34 + 'iddis',
  35 + 'idsetorbai',
  36 + ];
  37 +
  38 + /**
  39 + * @var bool
  40 + */
  41 + public $timestamps = false;
  42 +
  43 + /**
  44 + * @inheritDoc
  45 + */
  46 + protected static function boot()
  47 + {
  48 + parent::boot();
  49 +
  50 + static::creating(function ($model) {
  51 + $model->origem_gravacao = 'M';
  52 + $model->data_cad = now();
  53 + $model->operacao = 'I';
  54 + });
  55 + }
  56 +}
app/Models/LegacyPeriod.php 0 → 100644
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyPeriod extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'pmieducar.turma_turno';
  13 +
  14 + /**
  15 + * @var array
  16 + */
  17 + protected $fillable = [
  18 + 'nome', 'ativo',
  19 + ];
  20 +
  21 + /**
  22 + * @var bool
  23 + */
  24 + public $timestamps = false;
  25 +
  26 + /**
  27 + * @return string
  28 + */
  29 + public function getNameAttribute()
  30 + {
  31 + return $this->nome;
  32 + }
  33 +}
app/Models/LegacyPerson.php
@@ -35,6 +35,21 @@ class LegacyPerson extends EloquentBaseModel implements Transformable @@ -35,6 +35,21 @@ class LegacyPerson extends EloquentBaseModel implements Transformable
35 public $timestamps = false; 35 public $timestamps = false;
36 36
37 /** 37 /**
  38 + * @inheritDoc
  39 + */
  40 + protected static function boot()
  41 + {
  42 + parent::boot();
  43 +
  44 + static::creating(function ($model) {
  45 + $model->data_cad = now();
  46 + $model->situacao = 'I';
  47 + $model->origem_gravacao = 'M';
  48 + $model->operacao = 'I';
  49 + });
  50 + }
  51 +
  52 + /**
38 * @return string 53 * @return string
39 */ 54 */
40 public function getNameAttribute() 55 public function getNameAttribute()
app/Models/LegacyPersonAddress.php 0 → 100644
@@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyPersonAddress extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'cadastro.endereco_pessoa';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idpes';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idpes',
  24 + 'tipo',
  25 + 'cep',
  26 + 'idlog',
  27 + 'numero',
  28 + 'letra',
  29 + 'complemento',
  30 + 'reside_desde',
  31 + 'idbai',
  32 + 'idpes_rev',
  33 + 'data_rev',
  34 + 'origem_gravacao',
  35 + 'idpes_cad',
  36 + 'data_cad',
  37 + 'operacao',
  38 + 'bloco',
  39 + 'andar',
  40 + 'apartamento',
  41 + 'observacoes',
  42 + ];
  43 +
  44 + /**
  45 + * @var bool
  46 + */
  47 + public $timestamps = false;
  48 +
  49 + /**
  50 + * @inheritDoc
  51 + */
  52 + protected static function boot()
  53 + {
  54 + parent::boot();
  55 +
  56 + static::creating(function ($model) {
  57 + $model->origem_gravacao = 'M';
  58 + $model->data_cad = now();
  59 + $model->operacao = 'I';
  60 + });
  61 + }
  62 +}
app/Models/LegacyPhone.php 0 → 100644
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyPhone extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'cadastro.fone_pessoa';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idpes';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idpes',
  24 + 'tipo',
  25 + 'ddd',
  26 + 'fone',
  27 + 'idpes_rev',
  28 + 'data_rev',
  29 + 'origem_gravacao',
  30 + 'idpes_cad',
  31 + 'data_cad',
  32 + 'operacao',
  33 + ];
  34 +
  35 + /**
  36 + * @var bool
  37 + */
  38 + public $timestamps = false;
  39 +
  40 + /**
  41 + * @inheritDoc
  42 + */
  43 + protected static function boot()
  44 + {
  45 + parent::boot();
  46 +
  47 + static::creating(function ($model) {
  48 + $model->origem_gravacao = 'M';
  49 + $model->data_cad = now();
  50 + $model->operacao = 'I';
  51 + });
  52 + }
  53 +}
app/Models/LegacyPostalCodeAddress.php 0 → 100644
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyPostalCodeAddress extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'urbano.cep_logradouro';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idlog';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'cep',
  24 + 'idlog',
  25 + 'nroini',
  26 + 'nrofin',
  27 + 'idpes_rev',
  28 + 'data_rev',
  29 + 'origem_gravacao',
  30 + 'idpes_cad',
  31 + 'data_cad',
  32 + 'operacao',
  33 + ];
  34 +
  35 + /**
  36 + * @var bool
  37 + */
  38 + public $timestamps = false;
  39 +
  40 + /**
  41 + * @inheritDoc
  42 + */
  43 + protected static function boot()
  44 + {
  45 + parent::boot();
  46 +
  47 + static::creating(function ($model) {
  48 + $model->origem_gravacao = 'M';
  49 + $model->data_cad = now();
  50 + $model->operacao = 'I';
  51 + });
  52 + }
  53 +}
app/Models/LegacyPostalCodeAddressNeighborhood.php 0 → 100644
@@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +
  7 +class LegacyPostalCodeAddressNeighborhood extends Model
  8 +{
  9 + /**
  10 + * @var string
  11 + */
  12 + protected $table = 'urbano.cep_logradouro_bairro';
  13 +
  14 + /**
  15 + * @var string
  16 + */
  17 + protected $primaryKey = 'idlog';
  18 +
  19 + /**
  20 + * @var array
  21 + */
  22 + protected $fillable = [
  23 + 'idlog',
  24 + 'cep',
  25 + 'idbai',
  26 + 'idpes_rev',
  27 + 'data_rev',
  28 + 'origem_gravacao',
  29 + 'idpes_cad',
  30 + 'data_cad',
  31 + 'operacao',
  32 + ];
  33 +
  34 + /**
  35 + * @var bool
  36 + */
  37 + public $timestamps = false;
  38 +
  39 + /**
  40 + * @inheritDoc
  41 + */
  42 + protected static function boot()
  43 + {
  44 + parent::boot();
  45 +
  46 + static::creating(function ($model) {
  47 + $model->origem_gravacao = 'M';
  48 + $model->data_cad = now();
  49 + $model->operacao = 'I';
  50 + });
  51 + }
  52 +}
app/Models/LegacySchool.php
@@ -5,6 +5,7 @@ namespace App\Models; @@ -5,6 +5,7 @@ namespace App\Models;
5 use Illuminate\Database\Eloquent\Model; 5 use Illuminate\Database\Eloquent\Model;
6 use Illuminate\Database\Eloquent\Relations\BelongsTo; 6 use Illuminate\Database\Eloquent\Relations\BelongsTo;
7 use Illuminate\Database\Eloquent\Relations\BelongsToMany; 7 use Illuminate\Database\Eloquent\Relations\BelongsToMany;
  8 +use Illuminate\Database\Eloquent\Relations\HasMany;
8 use Illuminate\Support\Facades\DB; 9 use Illuminate\Support\Facades\DB;
9 10
10 /** 11 /**
@@ -92,4 +93,25 @@ class LegacySchool extends Model @@ -92,4 +93,25 @@ class LegacySchool extends Model
92 { 93 {
93 return DB::selectOne('SELECT relatorio.get_nome_escola(:escola) AS nome', ['escola' => $this->id])->nome; 94 return DB::selectOne('SELECT relatorio.get_nome_escola(:escola) AS nome', ['escola' => $this->id])->nome;
94 } 95 }
  96 +
  97 + /**
  98 + * @return BelongsToMany
  99 + */
  100 + public function grades()
  101 + {
  102 + return $this->belongsToMany(
  103 + LegacyLevel::class,
  104 + 'pmieducar.escola_serie',
  105 + 'ref_cod_escola',
  106 + 'ref_cod_serie'
  107 + )->withPivot('ativo', 'anos_letivos');
  108 + }
  109 +
  110 + /**
  111 + * @return HasMany
  112 + */
  113 + public function schoolClasses()
  114 + {
  115 + return $this->hasMany(LegacySchoolClass::class, 'ref_ref_cod_escola');
  116 + }
95 } 117 }
app/Models/LegacyStudent.php
@@ -21,7 +21,7 @@ class LegacyStudent extends Model @@ -21,7 +21,7 @@ class LegacyStudent extends Model
21 * @var array 21 * @var array
22 */ 22 */
23 protected $fillable = [ 23 protected $fillable = [
24 - 'ref_idpes', 'data_cadastro', 24 + 'ref_idpes', 'data_cadastro', 'tipo_responsavel',
25 ]; 25 ];
26 26
27 /** 27 /**
@@ -30,6 +30,26 @@ class LegacyStudent extends Model @@ -30,6 +30,26 @@ class LegacyStudent extends Model
30 public $timestamps = false; 30 public $timestamps = false;
31 31
32 /** 32 /**
  33 + * @inheritDoc
  34 + */
  35 + protected static function boot()
  36 + {
  37 + parent::boot();
  38 +
  39 + static::creating(function ($model) {
  40 + $model->data_cadastro = now();
  41 + });
  42 + }
  43 +
  44 + /**
  45 + * @return BelongsTo
  46 + */
  47 + public function individual()
  48 + {
  49 + return $this->belongsTo(LegacyIndividual::class, 'ref_idpes');
  50 + }
  51 +
  52 + /**
33 * @return BelongsTo 53 * @return BelongsTo
34 */ 54 */
35 public function person() 55 public function person()
app/Models/LegacyVacancyReservationCandidate.php 0 → 100644
@@ -0,0 +1,84 @@ @@ -0,0 +1,84 @@
  1 +<?php
  2 +
  3 +namespace App\Models;
  4 +
  5 +use Illuminate\Database\Eloquent\Model;
  6 +use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7 +
  8 +class LegacyVacancyReservationCandidate extends Model
  9 +{
  10 + /**
  11 + * @var string
  12 + */
  13 + protected $table = 'pmieducar.candidato_reserva_vaga';
  14 +
  15 + /**
  16 + * @var string
  17 + */
  18 + protected $primaryKey = 'cod_candidato_reserva_vaga';
  19 +
  20 + /**
  21 + * @var array
  22 + */
  23 + protected $fillable = [
  24 + 'ano_letivo',
  25 + 'data_solicitacao',
  26 + 'ref_cod_aluno',
  27 + 'ref_cod_serie',
  28 + 'ref_cod_turno',
  29 + 'ref_cod_pessoa_cad',
  30 + 'data_cad',
  31 + 'data_update',
  32 + 'ref_cod_matricula',
  33 + 'situacao',
  34 + 'data_situacao',
  35 + 'motivo',
  36 + 'ref_cod_escola',
  37 + 'quantidade_membros',
  38 + 'mae_fez_pre_natal',
  39 + 'membros_trabalham',
  40 + 'hora_solicitacao',
  41 + ];
  42 +
  43 + /**
  44 + * @var bool
  45 + */
  46 + public $timestamps = false;
  47 +
  48 + /**
  49 + * @inheritDoc
  50 + */
  51 + protected static function boot()
  52 + {
  53 + parent::boot();
  54 +
  55 + static::creating(function ($model) {
  56 + $model->data_situacao = now()->format('Y-m-d');
  57 + $model->hora_solicitacao = now()->format('H:i:s');
  58 + });
  59 + }
  60 +
  61 + /**
  62 + * @return BelongsTo
  63 + */
  64 + public function grade()
  65 + {
  66 + return $this->belongsTo(LegacyGrade::class, 'ref_cod_serie');
  67 + }
  68 +
  69 + /**
  70 + * @return BelongsTo
  71 + */
  72 + public function period()
  73 + {
  74 + return $this->belongsTo(LegacyPeriod::class, 'ref_cod_turno');
  75 + }
  76 +
  77 + /**
  78 + * @return BelongsTo
  79 + */
  80 + public function school()
  81 + {
  82 + return $this->belongsTo(LegacySchool::class, 'ref_cod_escola');
  83 + }
  84 +}
app/Process.php
@@ -15,9 +15,11 @@ class Process @@ -15,9 +15,11 @@ class Process
15 15
16 const CONSULTAS = 9998890; 16 const CONSULTAS = 9998890;
17 17
  18 + const REGISTRATIONS = 578;
18 const ENROLLMENT_HISTORY = 1001; 19 const ENROLLMENT_HISTORY = 1001;
19 const ATTENDED_CANDIDATE = 1002; 20 const ATTENDED_CANDIDATE = 1002;
20 const BACK_TO_QUEUE = 1003; 21 const BACK_TO_QUEUE = 1003;
  22 + const RECLASSIFY_REGISTRATION = 1004;
21 const UNDO_STUDENT_UNIFICATION = 2001; 23 const UNDO_STUDENT_UNIFICATION = 2001;
22 const EXEMPTION_LIST = 2002; 24 const EXEMPTION_LIST = 2002;
23 } 25 }
app/Services/BackupUrlPresigner.php 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +<?php
  2 +
  3 +namespace App\Services;
  4 +
  5 +use Exception;
  6 +
  7 +class BackupUrlPresigner
  8 +{
  9 + public function getPresignedUrl(string $url) : string
  10 + {
  11 + switch (config('filesystems.cloud')) {
  12 + case 's3':
  13 + return (new S3BackupUrlPresigner())->getPresignedUrl($url);
  14 + default:
  15 + throw new Exception('Method BackupUrlPresigner::getPresignedUrl() not implemented for cloud filesystem: '. config('filesystems.cloud'));
  16 + }
  17 + }
  18 +}
app/Services/S3BackupUrlPresigner.php 0 → 100644
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
  1 +<?php
  2 +
  3 +namespace App\Services;
  4 +
  5 +use Aws\Credentials\Credentials;
  6 +use Aws\S3\S3Client;
  7 +use Exception;
  8 +use Storage;
  9 +
  10 +class S3BackupUrlPresigner
  11 +{
  12 + public function getPresignedUrl(string $url) : string
  13 + {
  14 + $s3Client = $this->getClient($url);
  15 +
  16 + $command = $s3Client->getCommand('GetObject', [
  17 + 'Bucket' => $this->getBucketFromUrl($url),
  18 + 'Key' => $this->getKeyFromUrl($url),
  19 + ]);
  20 +
  21 + $request = $s3Client->createPresignedRequest($command, '+10 minutes');
  22 +
  23 + return (string) $request->getURI();
  24 + }
  25 +
  26 + private function getClient(string $url) : S3Client
  27 + {
  28 + $clientParameters = [
  29 + 'version' => 'latest',
  30 + 'region' => $this->getRegionFromUrl($url),
  31 + 'http' => [
  32 + 'connect_timeout' => 5
  33 + ],
  34 + ];
  35 +
  36 + if (config('filesystems.disks.s3.key') && config('filesystems.disks.s3.secret')) {
  37 + $clientParameters['credentials'] = new Credentials(config('filesystems.disks.s3.key'), config('filesystems.disks.s3.secret'));
  38 + }
  39 +
  40 + return new S3Client($clientParameters);
  41 + }
  42 +
  43 + private function getBucketFromUrl(string $url) : string
  44 + {
  45 + return explode('/', $url)[3];
  46 + }
  47 +
  48 + private function getKeyFromUrl(string $url) : string
  49 + {
  50 + return implode('/', array_slice(explode('/', $url), 4));
  51 + }
  52 +
  53 + private function getRegionFromUrl(string $url) : string
  54 + {
  55 + return substr(explode('.', explode('//', $url)[1])[0], 3);
  56 + }
  57 +}
app/Services/iDiarioService.php
@@ -55,10 +55,14 @@ class iDiarioService @@ -55,10 +55,14 @@ class iDiarioService
55 * 55 *
56 * @return bool 56 * @return bool
57 */ 57 */
58 - public function getStepActivityByUnit(int $unitId, int $step): bool 58 + public function getStepActivityByUnit(int $unitId, int $year, int $step): bool
59 { 59 {
60 try { 60 try {
61 - $response = $this->get('/api/v2/step_activity', ['unity_id' => $unitId, 'step_number' => $step]); 61 + $response = $this->get('/api/v2/step_activity', [
  62 + 'unity_id' => $unitId,
  63 + 'year' => $year,
  64 + 'step_number' => $step
  65 + ]);
62 $body = trim((string)$response->getBody()); 66 $body = trim((string)$response->getBody());
63 67
64 if ($body === 'true') { 68 if ($body === 'true') {
@@ -77,10 +81,14 @@ class iDiarioService @@ -77,10 +81,14 @@ class iDiarioService
77 * 81 *
78 * @return bool 82 * @return bool
79 */ 83 */
80 - public function getStepActivityByClassroom(int $classroomId, int $step): bool 84 + public function getStepActivityByClassroom(int $classroomId, int $year, int $step): bool
81 { 85 {
82 try { 86 try {
83 - $response = $this->get('/api/v2/step_activity', ['classroom_id' => $classroomId, 'step_number' => $step]); 87 + $response = $this->get('/api/v2/step_activity', [
  88 + 'classroom_id' => $classroomId,
  89 + 'year' => $year,
  90 + 'step_number' => $step
  91 + ]);
84 $body = trim((string)$response->getBody()); 92 $body = trim((string)$response->getBody());
85 93
86 if ($body === 'true') { 94 if ($body === 'true') {
bootstrap/app.php
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 | 11 |
12 */ 12 */
13 13
14 -$app = new Illuminate\Foundation\Application( 14 +$app = new App\Extensions\Application(
15 $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__) 15 $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__)
16 ); 16 );
17 17
@@ -14,24 +14,27 @@ @@ -14,24 +14,27 @@
14 "ext-gd": "*", 14 "ext-gd": "*",
15 "ext-json": "*", 15 "ext-json": "*",
16 "ext-pgsql": "*", 16 "ext-pgsql": "*",
  17 + "aws/aws-sdk-php-laravel": "^3.4",
  18 + "barryvdh/laravel-cors": "^0.11.4",
17 "cocur/slugify": "^3.1", 19 "cocur/slugify": "^3.1",
18 "composer/semver": "^1.4", 20 "composer/semver": "^1.4",
19 "cossou/jasperphp": "^2.7", 21 "cossou/jasperphp": "^2.7",
20 "doctrine/dbal": "^2.9", 22 "doctrine/dbal": "^2.9",
  23 + "edersoares/laravel-plug-and-play": "^1.0",
21 "fideloper/proxy": "^4.0", 24 "fideloper/proxy": "^4.0",
22 "google/recaptcha": "^1.2", 25 "google/recaptcha": "^1.2",
23 "guzzlehttp/guzzle": "^6.3", 26 "guzzlehttp/guzzle": "^6.3",
24 "honeybadger-io/honeybadger-laravel": "^1.4", 27 "honeybadger-io/honeybadger-laravel": "^1.4",
25 "laravel/framework": "5.8.*", 28 "laravel/framework": "5.8.*",
26 "laravel/tinker": "^1.0", 29 "laravel/tinker": "^1.0",
  30 + "league/flysystem-aws-s3-v3": "~1.0",
  31 + "league/flysystem-cached-adapter": "~1.0",
27 "maatwebsite/excel": "^3.1", 32 "maatwebsite/excel": "^3.1",
28 "phpoffice/phpspreadsheet": "^1.6", 33 "phpoffice/phpspreadsheet": "^1.6",
29 "predis/predis": "^1.1", 34 "predis/predis": "^1.1",
30 "prettus/l5-repository": "^2.6", 35 "prettus/l5-repository": "^2.6",
31 "swiftmailer/swiftmailer": "^6.1", 36 "swiftmailer/swiftmailer": "^6.1",
32 - "tooleks/laravel-asset-version": "^1.0",  
33 - "league/flysystem-aws-s3-v3": "~1.0",  
34 - "league/flysystem-cached-adapter": "~1.0" 37 + "tooleks/laravel-asset-version": "^1.0"
35 }, 38 },
36 "require-dev": { 39 "require-dev": {
37 "barryvdh/laravel-debugbar": "^3.2", 40 "barryvdh/laravel-debugbar": "^3.2",
@@ -81,6 +84,11 @@ @@ -81,6 +84,11 @@
81 "laravel/telescope", 84 "laravel/telescope",
82 "barryvdh/laravel-debugbar" 85 "barryvdh/laravel-debugbar"
83 ] 86 ]
  87 + },
  88 + "merge-plugin": {
  89 + "include": [
  90 + "packages/*/*/composer.json"
  91 + ]
84 } 92 }
85 }, 93 },
86 "scripts": { 94 "scripts": {
@@ -4,20 +4,72 @@ @@ -4,20 +4,72 @@
4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 4 "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
5 "This file is @generated automatically" 5 "This file is @generated automatically"
6 ], 6 ],
7 - "content-hash": "67141df1d8ac1c6225bdf16215518566", 7 + "content-hash": "723270812ec0d482a57df66262869817",
8 "packages": [ 8 "packages": [
9 { 9 {
  10 + "name": "asm89/stack-cors",
  11 + "version": "1.2.0",
  12 + "source": {
  13 + "type": "git",
  14 + "url": "https://github.com/asm89/stack-cors.git",
  15 + "reference": "c163e2b614550aedcf71165db2473d936abbced6"
  16 + },
  17 + "dist": {
  18 + "type": "zip",
  19 + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/c163e2b614550aedcf71165db2473d936abbced6",
  20 + "reference": "c163e2b614550aedcf71165db2473d936abbced6",
  21 + "shasum": ""
  22 + },
  23 + "require": {
  24 + "php": ">=5.5.9",
  25 + "symfony/http-foundation": "~2.7|~3.0|~4.0",
  26 + "symfony/http-kernel": "~2.7|~3.0|~4.0"
  27 + },
  28 + "require-dev": {
  29 + "phpunit/phpunit": "^5.0 || ^4.8.10",
  30 + "squizlabs/php_codesniffer": "^2.3"
  31 + },
  32 + "type": "library",
  33 + "extra": {
  34 + "branch-alias": {
  35 + "dev-master": "1.2-dev"
  36 + }
  37 + },
  38 + "autoload": {
  39 + "psr-4": {
  40 + "Asm89\\Stack\\": "src/Asm89/Stack/"
  41 + }
  42 + },
  43 + "notification-url": "https://packagist.org/downloads/",
  44 + "license": [
  45 + "MIT"
  46 + ],
  47 + "authors": [
  48 + {
  49 + "name": "Alexander",
  50 + "email": "iam.asm89@gmail.com"
  51 + }
  52 + ],
  53 + "description": "Cross-origin resource sharing library and stack middleware",
  54 + "homepage": "https://github.com/asm89/stack-cors",
  55 + "keywords": [
  56 + "cors",
  57 + "stack"
  58 + ],
  59 + "time": "2017-12-20T14:37:45+00:00"
  60 + },
  61 + {
10 "name": "aws/aws-sdk-php", 62 "name": "aws/aws-sdk-php",
11 - "version": "3.112.28", 63 + "version": "3.115.0",
12 "source": { 64 "source": {
13 "type": "git", 65 "type": "git",
14 "url": "https://github.com/aws/aws-sdk-php.git", 66 "url": "https://github.com/aws/aws-sdk-php.git",
15 - "reference": "dabae6df3fd53b470da8806d641d05dbb66859da" 67 + "reference": "c705a740705bdfb7c23394a3a92adb2fe13fe149"
16 }, 68 },
17 "dist": { 69 "dist": {
18 "type": "zip", 70 "type": "zip",
19 - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/dabae6df3fd53b470da8806d641d05dbb66859da",  
20 - "reference": "dabae6df3fd53b470da8806d641d05dbb66859da", 71 + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/c705a740705bdfb7c23394a3a92adb2fe13fe149",
  72 + "reference": "c705a740705bdfb7c23394a3a92adb2fe13fe149",
21 "shasum": "" 73 "shasum": ""
22 }, 74 },
23 "require": { 75 "require": {
@@ -87,7 +139,136 @@ @@ -87,7 +139,136 @@
87 "s3", 139 "s3",
88 "sdk" 140 "sdk"
89 ], 141 ],
90 - "time": "2019-10-24T18:14:24+00:00" 142 + "time": "2019-11-07T19:27:35+00:00"
  143 + },
  144 + {
  145 + "name": "aws/aws-sdk-php-laravel",
  146 + "version": "3.4.0",
  147 + "source": {
  148 + "type": "git",
  149 + "url": "https://github.com/aws/aws-sdk-php-laravel.git",
  150 + "reference": "90f72efd7ec85c1141b397079112f58e0ca0143b"
  151 + },
  152 + "dist": {
  153 + "type": "zip",
  154 + "url": "https://api.github.com/repos/aws/aws-sdk-php-laravel/zipball/90f72efd7ec85c1141b397079112f58e0ca0143b",
  155 + "reference": "90f72efd7ec85c1141b397079112f58e0ca0143b",
  156 + "shasum": ""
  157 + },
  158 + "require": {
  159 + "aws/aws-sdk-php": "~3.0",
  160 + "illuminate/support": "~5.1|~6.0",
  161 + "php": ">=5.5.9"
  162 + },
  163 + "require-dev": {
  164 + "phpunit/phpunit": "~4.0|~5.0",
  165 + "vlucas/phpdotenv": "~2.0|~3.0"
  166 + },
  167 + "suggest": {
  168 + "laravel/framework": "To test the Laravel bindings",
  169 + "laravel/lumen-framework": "To test the Lumen bindings"
  170 + },
  171 + "type": "library",
  172 + "extra": {
  173 + "laravel": {
  174 + "providers": [
  175 + "Aws\\Laravel\\AwsServiceProvider"
  176 + ],
  177 + "aliases": {
  178 + "AWS": "Aws\\Laravel\\AwsFacade"
  179 + }
  180 + }
  181 + },
  182 + "autoload": {
  183 + "psr-4": {
  184 + "Aws\\Laravel\\": "src/"
  185 + }
  186 + },
  187 + "notification-url": "https://packagist.org/downloads/",
  188 + "license": [
  189 + "Apache-2.0"
  190 + ],
  191 + "authors": [
  192 + {
  193 + "name": "Amazon Web Services",
  194 + "homepage": "http://aws.amazon.com"
  195 + }
  196 + ],
  197 + "description": "A simple Laravel 5 service provider for including the AWS SDK for PHP.",
  198 + "homepage": "http://aws.amazon.com/sdkforphp2",
  199 + "keywords": [
  200 + "amazon",
  201 + "aws",
  202 + "dynamodb",
  203 + "ec2",
  204 + "laravel",
  205 + "laravel 5",
  206 + "s3",
  207 + "sdk"
  208 + ],
  209 + "time": "2019-09-09T21:00:25+00:00"
  210 + },
  211 + {
  212 + "name": "barryvdh/laravel-cors",
  213 + "version": "v0.11.4",
  214 + "source": {
  215 + "type": "git",
  216 + "url": "https://github.com/barryvdh/laravel-cors.git",
  217 + "reference": "03492f1a3bc74a05de23f93b94ac7cc5c173eec9"
  218 + },
  219 + "dist": {
  220 + "type": "zip",
  221 + "url": "https://api.github.com/repos/barryvdh/laravel-cors/zipball/03492f1a3bc74a05de23f93b94ac7cc5c173eec9",
  222 + "reference": "03492f1a3bc74a05de23f93b94ac7cc5c173eec9",
  223 + "shasum": ""
  224 + },
  225 + "require": {
  226 + "asm89/stack-cors": "^1.2",
  227 + "illuminate/support": "^5.5|^6",
  228 + "php": ">=7",
  229 + "symfony/http-foundation": "^3.1|^4",
  230 + "symfony/http-kernel": "^3.1|^4"
  231 + },
  232 + "require-dev": {
  233 + "laravel/framework": "^5.5",
  234 + "orchestra/testbench": "3.3.x|3.4.x|3.5.x|3.6.x|3.7.x",
  235 + "phpunit/phpunit": "^4.8|^5.2|^7.0",
  236 + "squizlabs/php_codesniffer": "^2.3"
  237 + },
  238 + "type": "library",
  239 + "extra": {
  240 + "branch-alias": {
  241 + "dev-master": "0.11-dev"
  242 + },
  243 + "laravel": {
  244 + "providers": [
  245 + "Barryvdh\\Cors\\ServiceProvider"
  246 + ]
  247 + }
  248 + },
  249 + "autoload": {
  250 + "psr-4": {
  251 + "Barryvdh\\Cors\\": "src/"
  252 + }
  253 + },
  254 + "notification-url": "https://packagist.org/downloads/",
  255 + "license": [
  256 + "MIT"
  257 + ],
  258 + "authors": [
  259 + {
  260 + "name": "Barry vd. Heuvel",
  261 + "email": "barryvdh@gmail.com"
  262 + }
  263 + ],
  264 + "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
  265 + "keywords": [
  266 + "api",
  267 + "cors",
  268 + "crossdomain",
  269 + "laravel"
  270 + ],
  271 + "time": "2019-08-28T11:27:11+00:00"
91 }, 272 },
92 { 273 {
93 "name": "cocur/slugify", 274 "name": "cocur/slugify",
@@ -292,16 +473,16 @@ @@ -292,16 +473,16 @@
292 }, 473 },
293 { 474 {
294 "name": "doctrine/cache", 475 "name": "doctrine/cache",
295 - "version": "v1.8.0", 476 + "version": "v1.8.1",
296 "source": { 477 "source": {
297 "type": "git", 478 "type": "git",
298 "url": "https://github.com/doctrine/cache.git", 479 "url": "https://github.com/doctrine/cache.git",
299 - "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57" 480 + "reference": "d4374ae95b36062d02ef310100ed33d78738d76c"
300 }, 481 },
301 "dist": { 482 "dist": {
302 "type": "zip", 483 "type": "zip",
303 - "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57",  
304 - "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57", 484 + "url": "https://api.github.com/repos/doctrine/cache/zipball/d4374ae95b36062d02ef310100ed33d78738d76c",
  485 + "reference": "d4374ae95b36062d02ef310100ed33d78738d76c",
305 "shasum": "" 486 "shasum": ""
306 }, 487 },
307 "require": { 488 "require": {
@@ -337,6 +518,10 @@ @@ -337,6 +518,10 @@
337 ], 518 ],
338 "authors": [ 519 "authors": [
339 { 520 {
  521 + "name": "Guilherme Blanco",
  522 + "email": "guilhermeblanco@gmail.com"
  523 + },
  524 + {
340 "name": "Roman Borschel", 525 "name": "Roman Borschel",
341 "email": "roman@code-factory.org" 526 "email": "roman@code-factory.org"
342 }, 527 },
@@ -345,10 +530,6 @@ @@ -345,10 +530,6 @@
345 "email": "kontakt@beberlei.de" 530 "email": "kontakt@beberlei.de"
346 }, 531 },
347 { 532 {
348 - "name": "Guilherme Blanco",  
349 - "email": "guilhermeblanco@gmail.com"  
350 - },  
351 - {  
352 "name": "Jonathan Wage", 533 "name": "Jonathan Wage",
353 "email": "jonwage@gmail.com" 534 "email": "jonwage@gmail.com"
354 }, 535 },
@@ -363,35 +544,34 @@ @@ -363,35 +544,34 @@
363 "cache", 544 "cache",
364 "caching" 545 "caching"
365 ], 546 ],
366 - "time": "2018-08-21T18:01:43+00:00" 547 + "time": "2019-10-28T09:31:32+00:00"
367 }, 548 },
368 { 549 {
369 "name": "doctrine/dbal", 550 "name": "doctrine/dbal",
370 - "version": "v2.9.2", 551 + "version": "v2.10.0",
371 "source": { 552 "source": {
372 "type": "git", 553 "type": "git",
373 "url": "https://github.com/doctrine/dbal.git", 554 "url": "https://github.com/doctrine/dbal.git",
374 - "reference": "22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9" 555 + "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934"
375 }, 556 },
376 "dist": { 557 "dist": {
377 "type": "zip", 558 "type": "zip",
378 - "url": "https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9",  
379 - "reference": "22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9", 559 + "url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
  560 + "reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
380 "shasum": "" 561 "shasum": ""
381 }, 562 },
382 "require": { 563 "require": {
383 "doctrine/cache": "^1.0", 564 "doctrine/cache": "^1.0",
384 "doctrine/event-manager": "^1.0", 565 "doctrine/event-manager": "^1.0",
385 "ext-pdo": "*", 566 "ext-pdo": "*",
386 - "php": "^7.1" 567 + "php": "^7.2"
387 }, 568 },
388 "require-dev": { 569 "require-dev": {
389 - "doctrine/coding-standard": "^5.0",  
390 - "jetbrains/phpstorm-stubs": "^2018.1.2",  
391 - "phpstan/phpstan": "^0.10.1",  
392 - "phpunit/phpunit": "^7.4",  
393 - "symfony/console": "^2.0.5|^3.0|^4.0",  
394 - "symfony/phpunit-bridge": "^3.4.5|^4.0.5" 570 + "doctrine/coding-standard": "^6.0",
  571 + "jetbrains/phpstorm-stubs": "^2019.1",
  572 + "phpstan/phpstan": "^0.11.3",
  573 + "phpunit/phpunit": "^8.4.1",
  574 + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
395 }, 575 },
396 "suggest": { 576 "suggest": {
397 "symfony/console": "For helpful console commands such as SQL execution and import of files." 577 "symfony/console": "For helpful console commands such as SQL execution and import of files."
@@ -402,7 +582,7 @@ @@ -402,7 +582,7 @@
402 "type": "library", 582 "type": "library",
403 "extra": { 583 "extra": {
404 "branch-alias": { 584 "branch-alias": {
405 - "dev-master": "2.9.x-dev", 585 + "dev-master": "2.10.x-dev",
406 "dev-develop": "3.0.x-dev" 586 "dev-develop": "3.0.x-dev"
407 } 587 }
408 }, 588 },
@@ -417,6 +597,10 @@ @@ -417,6 +597,10 @@
417 ], 597 ],
418 "authors": [ 598 "authors": [
419 { 599 {
  600 + "name": "Guilherme Blanco",
  601 + "email": "guilhermeblanco@gmail.com"
  602 + },
  603 + {
420 "name": "Roman Borschel", 604 "name": "Roman Borschel",
421 "email": "roman@code-factory.org" 605 "email": "roman@code-factory.org"
422 }, 606 },
@@ -425,10 +609,6 @@ @@ -425,10 +609,6 @@
425 "email": "kontakt@beberlei.de" 609 "email": "kontakt@beberlei.de"
426 }, 610 },
427 { 611 {
428 - "name": "Guilherme Blanco",  
429 - "email": "guilhermeblanco@gmail.com"  
430 - },  
431 - {  
432 "name": "Jonathan Wage", 612 "name": "Jonathan Wage",
433 "email": "jonwage@gmail.com" 613 "email": "jonwage@gmail.com"
434 } 614 }
@@ -438,14 +618,25 @@ @@ -438,14 +618,25 @@
438 "keywords": [ 618 "keywords": [
439 "abstraction", 619 "abstraction",
440 "database", 620 "database",
  621 + "db2",
441 "dbal", 622 "dbal",
  623 + "mariadb",
  624 + "mssql",
442 "mysql", 625 "mysql",
443 - "persistence", 626 + "oci8",
  627 + "oracle",
  628 + "pdo",
444 "pgsql", 629 "pgsql",
445 - "php",  
446 - "queryobject"  
447 - ],  
448 - "time": "2018-12-31T03:27:51+00:00" 630 + "postgresql",
  631 + "queryobject",
  632 + "sasql",
  633 + "sql",
  634 + "sqlanywhere",
  635 + "sqlite",
  636 + "sqlserver",
  637 + "sqlsrv"
  638 + ],
  639 + "time": "2019-11-03T16:50:43+00:00"
449 }, 640 },
450 { 641 {
451 "name": "doctrine/event-manager", 642 "name": "doctrine/event-manager",
@@ -705,6 +896,57 @@ @@ -705,6 +896,57 @@
705 "time": "2019-03-31T00:38:28+00:00" 896 "time": "2019-03-31T00:38:28+00:00"
706 }, 897 },
707 { 898 {
  899 + "name": "edersoares/laravel-plug-and-play",
  900 + "version": "1.0.0",
  901 + "source": {
  902 + "type": "git",
  903 + "url": "https://github.com/edersoares/laravel-plug-and-play.git",
  904 + "reference": "80e07938a0cc06e4dbf79a7cd0d533109cd31c70"
  905 + },
  906 + "dist": {
  907 + "type": "zip",
  908 + "url": "https://api.github.com/repos/edersoares/laravel-plug-and-play/zipball/80e07938a0cc06e4dbf79a7cd0d533109cd31c70",
  909 + "reference": "80e07938a0cc06e4dbf79a7cd0d533109cd31c70",
  910 + "shasum": ""
  911 + },
  912 + "require": {
  913 + "composer-plugin-api": "^1.1",
  914 + "ext-json": "*",
  915 + "laravel/framework": "~5.5|~6",
  916 + "php": ">=7.0.0",
  917 + "wikimedia/composer-merge-plugin": "^1.4"
  918 + },
  919 + "type": "composer-plugin",
  920 + "extra": {
  921 + "branch-alias": [],
  922 + "class": "Wikimedia\\Composer\\MergePlugin",
  923 + "laravel": {
  924 + "providers": [
  925 + "EderSoares\\Laravel\\PlugAndPlay\\PlugAndPlayServiceProvider"
  926 + ]
  927 + }
  928 + },
  929 + "autoload": {
  930 + "psr-4": {
  931 + "EderSoares\\Laravel\\PlugAndPlay\\": "src/"
  932 + }
  933 + },
  934 + "notification-url": "https://packagist.org/downloads/",
  935 + "license": [
  936 + "MIT"
  937 + ],
  938 + "authors": [
  939 + {
  940 + "name": "Eder Soares",
  941 + "email": "edersoares@me.com",
  942 + "homepage": "https://edersoares.me",
  943 + "role": "Developer"
  944 + }
  945 + ],
  946 + "description": "Plug and play packages in Laravel",
  947 + "time": "2019-10-22T02:54:46+00:00"
  948 + },
  949 + {
708 "name": "egulias/email-validator", 950 "name": "egulias/email-validator",
709 "version": "2.1.11", 951 "version": "2.1.11",
710 "source": { 952 "source": {
@@ -2066,16 +2308,16 @@ @@ -2066,16 +2308,16 @@
2066 }, 2308 },
2067 { 2309 {
2068 "name": "nesbot/carbon", 2310 "name": "nesbot/carbon",
2069 - "version": "2.25.3", 2311 + "version": "2.26.0",
2070 "source": { 2312 "source": {
2071 "type": "git", 2313 "type": "git",
2072 "url": "https://github.com/briannesbitt/Carbon.git", 2314 "url": "https://github.com/briannesbitt/Carbon.git",
2073 - "reference": "d07636581795383e2fea2d711212d30f941f2039" 2315 + "reference": "e01ecc0b71168febb52ae1fdc1cfcc95428e604e"
2074 }, 2316 },
2075 "dist": { 2317 "dist": {
2076 "type": "zip", 2318 "type": "zip",
2077 - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d07636581795383e2fea2d711212d30f941f2039",  
2078 - "reference": "d07636581795383e2fea2d711212d30f941f2039", 2319 + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/e01ecc0b71168febb52ae1fdc1cfcc95428e604e",
  2320 + "reference": "e01ecc0b71168febb52ae1fdc1cfcc95428e604e",
2079 "shasum": "" 2321 "shasum": ""
2080 }, 2322 },
2081 "require": { 2323 "require": {
@@ -2129,20 +2371,20 @@ @@ -2129,20 +2371,20 @@
2129 "datetime", 2371 "datetime",
2130 "time" 2372 "time"
2131 ], 2373 ],
2132 - "time": "2019-10-20T11:05:44+00:00" 2374 + "time": "2019-10-21T21:32:25+00:00"
2133 }, 2375 },
2134 { 2376 {
2135 "name": "nikic/php-parser", 2377 "name": "nikic/php-parser",
2136 - "version": "v4.2.4", 2378 + "version": "v4.3.0",
2137 "source": { 2379 "source": {
2138 "type": "git", 2380 "type": "git",
2139 "url": "https://github.com/nikic/PHP-Parser.git", 2381 "url": "https://github.com/nikic/PHP-Parser.git",
2140 - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" 2382 + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc"
2141 }, 2383 },
2142 "dist": { 2384 "dist": {
2143 "type": "zip", 2385 "type": "zip",
2144 - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4",  
2145 - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", 2386 + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc",
  2387 + "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc",
2146 "shasum": "" 2388 "shasum": ""
2147 }, 2389 },
2148 "require": { 2390 "require": {
@@ -2150,6 +2392,7 @@ @@ -2150,6 +2392,7 @@
2150 "php": ">=7.0" 2392 "php": ">=7.0"
2151 }, 2393 },
2152 "require-dev": { 2394 "require-dev": {
  2395 + "ircmaxell/php-yacc": "0.0.5",
2153 "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" 2396 "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0"
2154 }, 2397 },
2155 "bin": [ 2398 "bin": [
@@ -2158,7 +2401,7 @@ @@ -2158,7 +2401,7 @@
2158 "type": "library", 2401 "type": "library",
2159 "extra": { 2402 "extra": {
2160 "branch-alias": { 2403 "branch-alias": {
2161 - "dev-master": "4.2-dev" 2404 + "dev-master": "4.3-dev"
2162 } 2405 }
2163 }, 2406 },
2164 "autoload": { 2407 "autoload": {
@@ -2180,7 +2423,7 @@ @@ -2180,7 +2423,7 @@
2180 "parser", 2423 "parser",
2181 "php" 2424 "php"
2182 ], 2425 ],
2183 - "time": "2019-09-01T07:51:21+00:00" 2426 + "time": "2019-11-08T13:50:10+00:00"
2184 }, 2427 },
2185 { 2428 {
2186 "name": "opis/closure", 2429 "name": "opis/closure",
@@ -2383,28 +2626,28 @@ @@ -2383,28 +2626,28 @@
2383 }, 2626 },
2384 { 2627 {
2385 "name": "phpoption/phpoption", 2628 "name": "phpoption/phpoption",
2386 - "version": "1.5.0", 2629 + "version": "1.5.2",
2387 "source": { 2630 "source": {
2388 "type": "git", 2631 "type": "git",
2389 "url": "https://github.com/schmittjoh/php-option.git", 2632 "url": "https://github.com/schmittjoh/php-option.git",
2390 - "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed" 2633 + "reference": "2ba2586380f8d2b44ad1b9feb61c371020b27793"
2391 }, 2634 },
2392 "dist": { 2635 "dist": {
2393 "type": "zip", 2636 "type": "zip",
2394 - "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/94e644f7d2051a5f0fcf77d81605f152eecff0ed",  
2395 - "reference": "94e644f7d2051a5f0fcf77d81605f152eecff0ed", 2637 + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/2ba2586380f8d2b44ad1b9feb61c371020b27793",
  2638 + "reference": "2ba2586380f8d2b44ad1b9feb61c371020b27793",
2396 "shasum": "" 2639 "shasum": ""
2397 }, 2640 },
2398 "require": { 2641 "require": {
2399 "php": ">=5.3.0" 2642 "php": ">=5.3.0"
2400 }, 2643 },
2401 "require-dev": { 2644 "require-dev": {
2402 - "phpunit/phpunit": "4.7.*" 2645 + "phpunit/phpunit": "^4.7|^5.0"
2403 }, 2646 },
2404 "type": "library", 2647 "type": "library",
2405 "extra": { 2648 "extra": {
2406 "branch-alias": { 2649 "branch-alias": {
2407 - "dev-master": "1.3-dev" 2650 + "dev-master": "1.5-dev"
2408 } 2651 }
2409 }, 2652 },
2410 "autoload": { 2653 "autoload": {
@@ -2414,7 +2657,7 @@ @@ -2414,7 +2657,7 @@
2414 }, 2657 },
2415 "notification-url": "https://packagist.org/downloads/", 2658 "notification-url": "https://packagist.org/downloads/",
2416 "license": [ 2659 "license": [
2417 - "Apache2" 2660 + "Apache-2.0"
2418 ], 2661 ],
2419 "authors": [ 2662 "authors": [
2420 { 2663 {
@@ -2429,7 +2672,7 @@ @@ -2429,7 +2672,7 @@
2429 "php", 2672 "php",
2430 "type" 2673 "type"
2431 ], 2674 ],
2432 - "time": "2015-07-25T16:39:46+00:00" 2675 + "time": "2019-11-06T22:27:00+00:00"
2433 }, 2676 },
2434 { 2677 {
2435 "name": "predis/predis", 2678 "name": "predis/predis",
@@ -2736,16 +2979,16 @@ @@ -2736,16 +2979,16 @@
2736 }, 2979 },
2737 { 2980 {
2738 "name": "psr/log", 2981 "name": "psr/log",
2739 - "version": "1.1.1", 2982 + "version": "1.1.2",
2740 "source": { 2983 "source": {
2741 "type": "git", 2984 "type": "git",
2742 "url": "https://github.com/php-fig/log.git", 2985 "url": "https://github.com/php-fig/log.git",
2743 - "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2" 2986 + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801"
2744 }, 2987 },
2745 "dist": { 2988 "dist": {
2746 "type": "zip", 2989 "type": "zip",
2747 - "url": "https://api.github.com/repos/php-fig/log/zipball/bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2",  
2748 - "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2", 2990 + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801",
  2991 + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801",
2749 "shasum": "" 2992 "shasum": ""
2750 }, 2993 },
2751 "require": { 2994 "require": {
@@ -2779,7 +3022,7 @@ @@ -2779,7 +3022,7 @@
2779 "psr", 3022 "psr",
2780 "psr-3" 3023 "psr-3"
2781 ], 3024 ],
2782 - "time": "2019-10-25T08:06:51+00:00" 3025 + "time": "2019-11-01T11:05:21+00:00"
2783 }, 3026 },
2784 { 3027 {
2785 "name": "psr/simple-cache", 3028 "name": "psr/simple-cache",
@@ -3139,16 +3382,16 @@ @@ -3139,16 +3382,16 @@
3139 }, 3382 },
3140 { 3383 {
3141 "name": "symfony/console", 3384 "name": "symfony/console",
3142 - "version": "v4.3.5", 3385 + "version": "v4.3.6",
3143 "source": { 3386 "source": {
3144 "type": "git", 3387 "type": "git",
3145 "url": "https://github.com/symfony/console.git", 3388 "url": "https://github.com/symfony/console.git",
3146 - "reference": "929ddf360d401b958f611d44e726094ab46a7369" 3389 + "reference": "136c4bd62ea871d00843d1bc0316de4c4a84bb78"
3147 }, 3390 },
3148 "dist": { 3391 "dist": {
3149 "type": "zip", 3392 "type": "zip",
3150 - "url": "https://api.github.com/repos/symfony/console/zipball/929ddf360d401b958f611d44e726094ab46a7369",  
3151 - "reference": "929ddf360d401b958f611d44e726094ab46a7369", 3393 + "url": "https://api.github.com/repos/symfony/console/zipball/136c4bd62ea871d00843d1bc0316de4c4a84bb78",
  3394 + "reference": "136c4bd62ea871d00843d1bc0316de4c4a84bb78",
3152 "shasum": "" 3395 "shasum": ""
3153 }, 3396 },
3154 "require": { 3397 "require": {
@@ -3210,11 +3453,11 @@ @@ -3210,11 +3453,11 @@
3210 ], 3453 ],
3211 "description": "Symfony Console Component", 3454 "description": "Symfony Console Component",
3212 "homepage": "https://symfony.com", 3455 "homepage": "https://symfony.com",
3213 - "time": "2019-10-07T12:36:49+00:00" 3456 + "time": "2019-10-30T12:58:49+00:00"
3214 }, 3457 },
3215 { 3458 {
3216 "name": "symfony/css-selector", 3459 "name": "symfony/css-selector",
3217 - "version": "v4.3.5", 3460 + "version": "v4.3.6",
3218 "source": { 3461 "source": {
3219 "type": "git", 3462 "type": "git",
3220 "url": "https://github.com/symfony/css-selector.git", 3463 "url": "https://github.com/symfony/css-selector.git",
@@ -3267,16 +3510,16 @@ @@ -3267,16 +3510,16 @@
3267 }, 3510 },
3268 { 3511 {
3269 "name": "symfony/debug", 3512 "name": "symfony/debug",
3270 - "version": "v4.3.5", 3513 + "version": "v4.3.6",
3271 "source": { 3514 "source": {
3272 "type": "git", 3515 "type": "git",
3273 "url": "https://github.com/symfony/debug.git", 3516 "url": "https://github.com/symfony/debug.git",
3274 - "reference": "cc5c1efd0edfcfd10b354750594a46b3dd2afbbe" 3517 + "reference": "5ea9c3e01989a86ceaa0283f21234b12deadf5e2"
3275 }, 3518 },
3276 "dist": { 3519 "dist": {
3277 "type": "zip", 3520 "type": "zip",
3278 - "url": "https://api.github.com/repos/symfony/debug/zipball/cc5c1efd0edfcfd10b354750594a46b3dd2afbbe",  
3279 - "reference": "cc5c1efd0edfcfd10b354750594a46b3dd2afbbe", 3521 + "url": "https://api.github.com/repos/symfony/debug/zipball/5ea9c3e01989a86ceaa0283f21234b12deadf5e2",
  3522 + "reference": "5ea9c3e01989a86ceaa0283f21234b12deadf5e2",
3280 "shasum": "" 3523 "shasum": ""
3281 }, 3524 },
3282 "require": { 3525 "require": {
@@ -3319,11 +3562,11 @@ @@ -3319,11 +3562,11 @@
3319 ], 3562 ],
3320 "description": "Symfony Debug Component", 3563 "description": "Symfony Debug Component",
3321 "homepage": "https://symfony.com", 3564 "homepage": "https://symfony.com",
3322 - "time": "2019-09-19T15:51:53+00:00" 3565 + "time": "2019-10-28T17:07:32+00:00"
3323 }, 3566 },
3324 { 3567 {
3325 "name": "symfony/event-dispatcher", 3568 "name": "symfony/event-dispatcher",
3326 - "version": "v4.3.5", 3569 + "version": "v4.3.6",
3327 "source": { 3570 "source": {
3328 "type": "git", 3571 "type": "git",
3329 "url": "https://github.com/symfony/event-dispatcher.git", 3572 "url": "https://github.com/symfony/event-dispatcher.git",
@@ -3451,16 +3694,16 @@ @@ -3451,16 +3694,16 @@
3451 }, 3694 },
3452 { 3695 {
3453 "name": "symfony/finder", 3696 "name": "symfony/finder",
3454 - "version": "v4.3.5", 3697 + "version": "v4.3.6",
3455 "source": { 3698 "source": {
3456 "type": "git", 3699 "type": "git",
3457 "url": "https://github.com/symfony/finder.git", 3700 "url": "https://github.com/symfony/finder.git",
3458 - "reference": "5e575faa95548d0586f6bedaeabec259714e44d1" 3701 + "reference": "72a068f77e317ae77c0a0495236ad292cfb5ce6f"
3459 }, 3702 },
3460 "dist": { 3703 "dist": {
3461 "type": "zip", 3704 "type": "zip",
3462 - "url": "https://api.github.com/repos/symfony/finder/zipball/5e575faa95548d0586f6bedaeabec259714e44d1",  
3463 - "reference": "5e575faa95548d0586f6bedaeabec259714e44d1", 3705 + "url": "https://api.github.com/repos/symfony/finder/zipball/72a068f77e317ae77c0a0495236ad292cfb5ce6f",
  3706 + "reference": "72a068f77e317ae77c0a0495236ad292cfb5ce6f",
3464 "shasum": "" 3707 "shasum": ""
3465 }, 3708 },
3466 "require": { 3709 "require": {
@@ -3496,20 +3739,20 @@ @@ -3496,20 +3739,20 @@
3496 ], 3739 ],
3497 "description": "Symfony Finder Component", 3740 "description": "Symfony Finder Component",
3498 "homepage": "https://symfony.com", 3741 "homepage": "https://symfony.com",
3499 - "time": "2019-09-16T11:29:48+00:00" 3742 + "time": "2019-10-30T12:53:54+00:00"
3500 }, 3743 },
3501 { 3744 {
3502 "name": "symfony/http-foundation", 3745 "name": "symfony/http-foundation",
3503 - "version": "v4.3.5", 3746 + "version": "v4.3.6",
3504 "source": { 3747 "source": {
3505 "type": "git", 3748 "type": "git",
3506 "url": "https://github.com/symfony/http-foundation.git", 3749 "url": "https://github.com/symfony/http-foundation.git",
3507 - "reference": "76590ced16d4674780863471bae10452b79210a5" 3750 + "reference": "38f63e471cda9d37ac06e76d14c5ea2ec5887051"
3508 }, 3751 },
3509 "dist": { 3752 "dist": {
3510 "type": "zip", 3753 "type": "zip",
3511 - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/76590ced16d4674780863471bae10452b79210a5",  
3512 - "reference": "76590ced16d4674780863471bae10452b79210a5", 3754 + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/38f63e471cda9d37ac06e76d14c5ea2ec5887051",
  3755 + "reference": "38f63e471cda9d37ac06e76d14c5ea2ec5887051",
3513 "shasum": "" 3756 "shasum": ""
3514 }, 3757 },
3515 "require": { 3758 "require": {
@@ -3551,20 +3794,20 @@ @@ -3551,20 +3794,20 @@
3551 ], 3794 ],
3552 "description": "Symfony HttpFoundation Component", 3795 "description": "Symfony HttpFoundation Component",
3553 "homepage": "https://symfony.com", 3796 "homepage": "https://symfony.com",
3554 - "time": "2019-10-04T19:48:13+00:00" 3797 + "time": "2019-10-30T12:58:49+00:00"
3555 }, 3798 },
3556 { 3799 {
3557 "name": "symfony/http-kernel", 3800 "name": "symfony/http-kernel",
3558 - "version": "v4.3.5", 3801 + "version": "v4.3.6",
3559 "source": { 3802 "source": {
3560 "type": "git", 3803 "type": "git",
3561 "url": "https://github.com/symfony/http-kernel.git", 3804 "url": "https://github.com/symfony/http-kernel.git",
3562 - "reference": "5f08141850932e8019c01d8988bf3ed6367d2991" 3805 + "reference": "56acfda9e734e8715b3b0e6859cdb4f5b28757bf"
3563 }, 3806 },
3564 "dist": { 3807 "dist": {
3565 "type": "zip", 3808 "type": "zip",
3566 - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5f08141850932e8019c01d8988bf3ed6367d2991",  
3567 - "reference": "5f08141850932e8019c01d8988bf3ed6367d2991", 3809 + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/56acfda9e734e8715b3b0e6859cdb4f5b28757bf",
  3810 + "reference": "56acfda9e734e8715b3b0e6859cdb4f5b28757bf",
3568 "shasum": "" 3811 "shasum": ""
3569 }, 3812 },
3570 "require": { 3813 "require": {
@@ -3643,20 +3886,20 @@ @@ -3643,20 +3886,20 @@
3643 ], 3886 ],
3644 "description": "Symfony HttpKernel Component", 3887 "description": "Symfony HttpKernel Component",
3645 "homepage": "https://symfony.com", 3888 "homepage": "https://symfony.com",
3646 - "time": "2019-10-07T15:06:41+00:00" 3889 + "time": "2019-11-01T10:00:03+00:00"
3647 }, 3890 },
3648 { 3891 {
3649 "name": "symfony/mime", 3892 "name": "symfony/mime",
3650 - "version": "v4.3.5", 3893 + "version": "v4.3.6",
3651 "source": { 3894 "source": {
3652 "type": "git", 3895 "type": "git",
3653 "url": "https://github.com/symfony/mime.git", 3896 "url": "https://github.com/symfony/mime.git",
3654 - "reference": "32f71570547b91879fdbd9cf50317d556ae86916" 3897 + "reference": "3c0e197529da6e59b217615ba8ee7604df88b551"
3655 }, 3898 },
3656 "dist": { 3899 "dist": {
3657 "type": "zip", 3900 "type": "zip",
3658 - "url": "https://api.github.com/repos/symfony/mime/zipball/32f71570547b91879fdbd9cf50317d556ae86916",  
3659 - "reference": "32f71570547b91879fdbd9cf50317d556ae86916", 3901 + "url": "https://api.github.com/repos/symfony/mime/zipball/3c0e197529da6e59b217615ba8ee7604df88b551",
  3902 + "reference": "3c0e197529da6e59b217615ba8ee7604df88b551",
3660 "shasum": "" 3903 "shasum": ""
3661 }, 3904 },
3662 "require": { 3905 "require": {
@@ -3702,7 +3945,7 @@ @@ -3702,7 +3945,7 @@
3702 "mime", 3945 "mime",
3703 "mime-type" 3946 "mime-type"
3704 ], 3947 ],
3705 - "time": "2019-09-19T17:00:15+00:00" 3948 + "time": "2019-10-30T12:58:49+00:00"
3706 }, 3949 },
3707 { 3950 {
3708 "name": "symfony/polyfill-ctype", 3951 "name": "symfony/polyfill-ctype",
@@ -4057,16 +4300,16 @@ @@ -4057,16 +4300,16 @@
4057 }, 4300 },
4058 { 4301 {
4059 "name": "symfony/process", 4302 "name": "symfony/process",
4060 - "version": "v4.3.5", 4303 + "version": "v4.3.6",
4061 "source": { 4304 "source": {
4062 "type": "git", 4305 "type": "git",
4063 "url": "https://github.com/symfony/process.git", 4306 "url": "https://github.com/symfony/process.git",
4064 - "reference": "50556892f3cc47d4200bfd1075314139c4c9ff4b" 4307 + "reference": "3b2e0cb029afbb0395034509291f21191d1a4db0"
4065 }, 4308 },
4066 "dist": { 4309 "dist": {
4067 "type": "zip", 4310 "type": "zip",
4068 - "url": "https://api.github.com/repos/symfony/process/zipball/50556892f3cc47d4200bfd1075314139c4c9ff4b",  
4069 - "reference": "50556892f3cc47d4200bfd1075314139c4c9ff4b", 4311 + "url": "https://api.github.com/repos/symfony/process/zipball/3b2e0cb029afbb0395034509291f21191d1a4db0",
  4312 + "reference": "3b2e0cb029afbb0395034509291f21191d1a4db0",
4070 "shasum": "" 4313 "shasum": ""
4071 }, 4314 },
4072 "require": { 4315 "require": {
@@ -4102,20 +4345,20 @@ @@ -4102,20 +4345,20 @@
4102 ], 4345 ],
4103 "description": "Symfony Process Component", 4346 "description": "Symfony Process Component",
4104 "homepage": "https://symfony.com", 4347 "homepage": "https://symfony.com",
4105 - "time": "2019-09-26T21:17:10+00:00" 4348 + "time": "2019-10-28T17:07:32+00:00"
4106 }, 4349 },
4107 { 4350 {
4108 "name": "symfony/routing", 4351 "name": "symfony/routing",
4109 - "version": "v4.3.5", 4352 + "version": "v4.3.6",
4110 "source": { 4353 "source": {
4111 "type": "git", 4354 "type": "git",
4112 "url": "https://github.com/symfony/routing.git", 4355 "url": "https://github.com/symfony/routing.git",
4113 - "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea" 4356 + "reference": "63a9920cc86fcc745e5ea254e362f02b615290b9"
4114 }, 4357 },
4115 "dist": { 4358 "dist": {
4116 "type": "zip", 4359 "type": "zip",
4117 - "url": "https://api.github.com/repos/symfony/routing/zipball/3b174ef04fe66696524efad1e5f7a6c663d822ea",  
4118 - "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea", 4360 + "url": "https://api.github.com/repos/symfony/routing/zipball/63a9920cc86fcc745e5ea254e362f02b615290b9",
  4361 + "reference": "63a9920cc86fcc745e5ea254e362f02b615290b9",
4119 "shasum": "" 4362 "shasum": ""
4120 }, 4363 },
4121 "require": { 4364 "require": {
@@ -4178,7 +4421,7 @@ @@ -4178,7 +4421,7 @@
4178 "uri", 4421 "uri",
4179 "url" 4422 "url"
4180 ], 4423 ],
4181 - "time": "2019-10-04T20:57:10+00:00" 4424 + "time": "2019-10-30T12:58:49+00:00"
4182 }, 4425 },
4183 { 4426 {
4184 "name": "symfony/service-contracts", 4427 "name": "symfony/service-contracts",
@@ -4240,16 +4483,16 @@ @@ -4240,16 +4483,16 @@
4240 }, 4483 },
4241 { 4484 {
4242 "name": "symfony/translation", 4485 "name": "symfony/translation",
4243 - "version": "v4.3.5", 4486 + "version": "v4.3.6",
4244 "source": { 4487 "source": {
4245 "type": "git", 4488 "type": "git",
4246 "url": "https://github.com/symfony/translation.git", 4489 "url": "https://github.com/symfony/translation.git",
4247 - "reference": "fe6193b066c457c144333c06aaa869a2d42a167f" 4490 + "reference": "a3aa590ce944afb3434d7a55f81b00927144d5ec"
4248 }, 4491 },
4249 "dist": { 4492 "dist": {
4250 "type": "zip", 4493 "type": "zip",
4251 - "url": "https://api.github.com/repos/symfony/translation/zipball/fe6193b066c457c144333c06aaa869a2d42a167f",  
4252 - "reference": "fe6193b066c457c144333c06aaa869a2d42a167f", 4494 + "url": "https://api.github.com/repos/symfony/translation/zipball/a3aa590ce944afb3434d7a55f81b00927144d5ec",
  4495 + "reference": "a3aa590ce944afb3434d7a55f81b00927144d5ec",
4253 "shasum": "" 4496 "shasum": ""
4254 }, 4497 },
4255 "require": { 4498 "require": {
@@ -4312,7 +4555,7 @@ @@ -4312,7 +4555,7 @@
4312 ], 4555 ],
4313 "description": "Symfony Translation Component", 4556 "description": "Symfony Translation Component",
4314 "homepage": "https://symfony.com", 4557 "homepage": "https://symfony.com",
4315 - "time": "2019-09-27T14:37:39+00:00" 4558 + "time": "2019-10-30T12:53:54+00:00"
4316 }, 4559 },
4317 { 4560 {
4318 "name": "symfony/translation-contracts", 4561 "name": "symfony/translation-contracts",
@@ -4373,16 +4616,16 @@ @@ -4373,16 +4616,16 @@
4373 }, 4616 },
4374 { 4617 {
4375 "name": "symfony/var-dumper", 4618 "name": "symfony/var-dumper",
4376 - "version": "v4.3.5", 4619 + "version": "v4.3.6",
4377 "source": { 4620 "source": {
4378 "type": "git", 4621 "type": "git",
4379 "url": "https://github.com/symfony/var-dumper.git", 4622 "url": "https://github.com/symfony/var-dumper.git",
4380 - "reference": "bde8957fc415fdc6964f33916a3755737744ff05" 4623 + "reference": "ea4940845535c85ff5c505e13b3205b0076d07bf"
4381 }, 4624 },
4382 "dist": { 4625 "dist": {
4383 "type": "zip", 4626 "type": "zip",
4384 - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/bde8957fc415fdc6964f33916a3755737744ff05",  
4385 - "reference": "bde8957fc415fdc6964f33916a3755737744ff05", 4627 + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ea4940845535c85ff5c505e13b3205b0076d07bf",
  4628 + "reference": "ea4940845535c85ff5c505e13b3205b0076d07bf",
4386 "shasum": "" 4629 "shasum": ""
4387 }, 4630 },
4388 "require": { 4631 "require": {
@@ -4445,7 +4688,7 @@ @@ -4445,7 +4688,7 @@
4445 "debug", 4688 "debug",
4446 "dump" 4689 "dump"
4447 ], 4690 ],
4448 - "time": "2019-10-04T19:48:13+00:00" 4691 + "time": "2019-10-13T12:02:04+00:00"
4449 }, 4692 },
4450 { 4693 {
4451 "name": "tijsverkoyen/css-to-inline-styles", 4694 "name": "tijsverkoyen/css-to-inline-styles",
@@ -4603,6 +4846,55 @@ @@ -4603,6 +4846,55 @@
4603 "environment" 4846 "environment"
4604 ], 4847 ],
4605 "time": "2019-09-10T21:37:39+00:00" 4848 "time": "2019-09-10T21:37:39+00:00"
  4849 + },
  4850 + {
  4851 + "name": "wikimedia/composer-merge-plugin",
  4852 + "version": "v1.4.1",
  4853 + "source": {
  4854 + "type": "git",
  4855 + "url": "https://github.com/wikimedia/composer-merge-plugin.git",
  4856 + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100"
  4857 + },
  4858 + "dist": {
  4859 + "type": "zip",
  4860 + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/81c6ac72a24a67383419c7eb9aa2b3437f2ab100",
  4861 + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100",
  4862 + "shasum": ""
  4863 + },
  4864 + "require": {
  4865 + "composer-plugin-api": "^1.0",
  4866 + "php": ">=5.3.2"
  4867 + },
  4868 + "require-dev": {
  4869 + "composer/composer": "~1.0.0",
  4870 + "jakub-onderka/php-parallel-lint": "~0.8",
  4871 + "phpunit/phpunit": "~4.8|~5.0",
  4872 + "squizlabs/php_codesniffer": "~2.1.0"
  4873 + },
  4874 + "type": "composer-plugin",
  4875 + "extra": {
  4876 + "branch-alias": {
  4877 + "dev-master": "1.3.x-dev"
  4878 + },
  4879 + "class": "Wikimedia\\Composer\\MergePlugin"
  4880 + },
  4881 + "autoload": {
  4882 + "psr-4": {
  4883 + "Wikimedia\\Composer\\": "src/"
  4884 + }
  4885 + },
  4886 + "notification-url": "https://packagist.org/downloads/",
  4887 + "license": [
  4888 + "MIT"
  4889 + ],
  4890 + "authors": [
  4891 + {
  4892 + "name": "Bryan Davis",
  4893 + "email": "bd808@wikimedia.org"
  4894 + }
  4895 + ],
  4896 + "description": "Composer plugin to merge multiple composer.json files",
  4897 + "time": "2017-04-25T02:31:25+00:00"
4606 } 4898 }
4607 ], 4899 ],
4608 "packages-dev": [ 4900 "packages-dev": [
@@ -4737,24 +5029,24 @@ @@ -4737,24 +5029,24 @@
4737 }, 5029 },
4738 { 5030 {
4739 "name": "composer/xdebug-handler", 5031 "name": "composer/xdebug-handler",
4740 - "version": "1.3.3", 5032 + "version": "1.4.0",
4741 "source": { 5033 "source": {
4742 "type": "git", 5034 "type": "git",
4743 "url": "https://github.com/composer/xdebug-handler.git", 5035 "url": "https://github.com/composer/xdebug-handler.git",
4744 - "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f" 5036 + "reference": "cbe23383749496fe0f373345208b79568e4bc248"
4745 }, 5037 },
4746 "dist": { 5038 "dist": {
4747 "type": "zip", 5039 "type": "zip",
4748 - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/46867cbf8ca9fb8d60c506895449eb799db1184f",  
4749 - "reference": "46867cbf8ca9fb8d60c506895449eb799db1184f", 5040 + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/cbe23383749496fe0f373345208b79568e4bc248",
  5041 + "reference": "cbe23383749496fe0f373345208b79568e4bc248",
4750 "shasum": "" 5042 "shasum": ""
4751 }, 5043 },
4752 "require": { 5044 "require": {
4753 - "php": "^5.3.2 || ^7.0", 5045 + "php": "^5.3.2 || ^7.0 || ^8.0",
4754 "psr/log": "^1.0" 5046 "psr/log": "^1.0"
4755 }, 5047 },
4756 "require-dev": { 5048 "require-dev": {
4757 - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5" 5049 + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8"
4758 }, 5050 },
4759 "type": "library", 5051 "type": "library",
4760 "autoload": { 5052 "autoload": {
@@ -4772,12 +5064,12 @@ @@ -4772,12 +5064,12 @@
4772 "email": "john-stevenson@blueyonder.co.uk" 5064 "email": "john-stevenson@blueyonder.co.uk"
4773 } 5065 }
4774 ], 5066 ],
4775 - "description": "Restarts a process without xdebug.", 5067 + "description": "Restarts a process without Xdebug.",
4776 "keywords": [ 5068 "keywords": [
4777 "Xdebug", 5069 "Xdebug",
4778 "performance" 5070 "performance"
4779 ], 5071 ],
4780 - "time": "2019-05-27T17:52:04+00:00" 5072 + "time": "2019-11-06T16:40:04+00:00"
4781 }, 5073 },
4782 { 5074 {
4783 "name": "doctrine/annotations", 5075 "name": "doctrine/annotations",
@@ -5026,16 +5318,16 @@ @@ -5026,16 +5318,16 @@
5026 }, 5318 },
5027 { 5319 {
5028 "name": "friendsofphp/php-cs-fixer", 5320 "name": "friendsofphp/php-cs-fixer",
5029 - "version": "v2.15.3", 5321 + "version": "v2.16.0",
5030 "source": { 5322 "source": {
5031 "type": "git", 5323 "type": "git",
5032 "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", 5324 "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
5033 - "reference": "705490b0f282f21017d73561e9498d2b622ee34c" 5325 + "reference": "ceaff36bee1ed3f1bbbedca36d2528c0826c336d"
5034 }, 5326 },
5035 "dist": { 5327 "dist": {
5036 "type": "zip", 5328 "type": "zip",
5037 - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/705490b0f282f21017d73561e9498d2b622ee34c",  
5038 - "reference": "705490b0f282f21017d73561e9498d2b622ee34c", 5329 + "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/ceaff36bee1ed3f1bbbedca36d2528c0826c336d",
  5330 + "reference": "ceaff36bee1ed3f1bbbedca36d2528c0826c336d",
5039 "shasum": "" 5331 "shasum": ""
5040 }, 5332 },
5041 "require": { 5333 "require": {
@@ -5111,7 +5403,7 @@ @@ -5111,7 +5403,7 @@
5111 } 5403 }
5112 ], 5404 ],
5113 "description": "A tool to automatically fix PHP code style", 5405 "description": "A tool to automatically fix PHP code style",
5114 - "time": "2019-08-31T12:51:54+00:00" 5406 + "time": "2019-11-03T13:31:09+00:00"
5115 }, 5407 },
5116 { 5408 {
5117 "name": "fzaninotto/faker", 5409 "name": "fzaninotto/faker",
@@ -5213,20 +5505,21 @@ @@ -5213,20 +5505,21 @@
5213 }, 5505 },
5214 { 5506 {
5215 "name": "laravel/dusk", 5507 "name": "laravel/dusk",
5216 - "version": "v5.5.2", 5508 + "version": "v5.6.0",
5217 "source": { 5509 "source": {
5218 "type": "git", 5510 "type": "git",
5219 "url": "https://github.com/laravel/dusk.git", 5511 "url": "https://github.com/laravel/dusk.git",
5220 - "reference": "aed755282a13a9b36d26854a0105d519aa22fec9" 5512 + "reference": "db4f8d75b7c9acf88ef1712e9ccf51c15540934d"
5221 }, 5513 },
5222 "dist": { 5514 "dist": {
5223 "type": "zip", 5515 "type": "zip",
5224 - "url": "https://api.github.com/repos/laravel/dusk/zipball/aed755282a13a9b36d26854a0105d519aa22fec9",  
5225 - "reference": "aed755282a13a9b36d26854a0105d519aa22fec9", 5516 + "url": "https://api.github.com/repos/laravel/dusk/zipball/db4f8d75b7c9acf88ef1712e9ccf51c15540934d",
  5517 + "reference": "db4f8d75b7c9acf88ef1712e9ccf51c15540934d",
5226 "shasum": "" 5518 "shasum": ""
5227 }, 5519 },
5228 "require": { 5520 "require": {
5229 "ext-json": "*", 5521 "ext-json": "*",
  5522 + "ext-pcntl": "*",
5230 "ext-zip": "*", 5523 "ext-zip": "*",
5231 "facebook/webdriver": "^1.7", 5524 "facebook/webdriver": "^1.7",
5232 "illuminate/console": "~5.7.0|~5.8.0|^6.0|^7.0", 5525 "illuminate/console": "~5.7.0|~5.8.0|^6.0|^7.0",
@@ -5274,7 +5567,7 @@ @@ -5274,7 +5567,7 @@
5274 "testing", 5567 "testing",
5275 "webdriver" 5568 "webdriver"
5276 ], 5569 ],
5277 - "time": "2019-09-24T20:30:07+00:00" 5570 + "time": "2019-10-29T15:58:57+00:00"
5278 }, 5571 },
5279 { 5572 {
5280 "name": "laravel/telescope", 5573 "name": "laravel/telescope",
@@ -6245,16 +6538,16 @@ @@ -6245,16 +6538,16 @@
6245 }, 6538 },
6246 { 6539 {
6247 "name": "phpunit/phpunit", 6540 "name": "phpunit/phpunit",
6248 - "version": "7.5.16", 6541 + "version": "7.5.17",
6249 "source": { 6542 "source": {
6250 "type": "git", 6543 "type": "git",
6251 "url": "https://github.com/sebastianbergmann/phpunit.git", 6544 "url": "https://github.com/sebastianbergmann/phpunit.git",
6252 - "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661" 6545 + "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a"
6253 }, 6546 },
6254 "dist": { 6547 "dist": {
6255 "type": "zip", 6548 "type": "zip",
6256 - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/316afa6888d2562e04aeb67ea7f2017a0eb41661",  
6257 - "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661", 6549 + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4c92a15296e58191a4cd74cff3b34fc8e374174a",
  6550 + "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a",
6258 "shasum": "" 6551 "shasum": ""
6259 }, 6552 },
6260 "require": { 6553 "require": {
@@ -6325,7 +6618,7 @@ @@ -6325,7 +6618,7 @@
6325 "testing", 6618 "testing",
6326 "xunit" 6619 "xunit"
6327 ], 6620 ],
6328 - "time": "2019-09-14T09:08:39+00:00" 6621 + "time": "2019-10-28T10:37:36+00:00"
6329 }, 6622 },
6330 { 6623 {
6331 "name": "sebastian/code-unit-reverse-lookup", 6624 "name": "sebastian/code-unit-reverse-lookup",
@@ -6895,7 +7188,7 @@ @@ -6895,7 +7188,7 @@
6895 }, 7188 },
6896 { 7189 {
6897 "name": "symfony/filesystem", 7190 "name": "symfony/filesystem",
6898 - "version": "v4.3.5", 7191 + "version": "v4.3.6",
6899 "source": { 7192 "source": {
6900 "type": "git", 7193 "type": "git",
6901 "url": "https://github.com/symfony/filesystem.git", 7194 "url": "https://github.com/symfony/filesystem.git",
@@ -6945,16 +7238,16 @@ @@ -6945,16 +7238,16 @@
6945 }, 7238 },
6946 { 7239 {
6947 "name": "symfony/options-resolver", 7240 "name": "symfony/options-resolver",
6948 - "version": "v4.3.5", 7241 + "version": "v4.3.6",
6949 "source": { 7242 "source": {
6950 "type": "git", 7243 "type": "git",
6951 "url": "https://github.com/symfony/options-resolver.git", 7244 "url": "https://github.com/symfony/options-resolver.git",
6952 - "reference": "81c2e120522a42f623233968244baebd6b36cb6a" 7245 + "reference": "f46c7fc8e207bd8a2188f54f8738f232533765a4"
6953 }, 7246 },
6954 "dist": { 7247 "dist": {
6955 "type": "zip", 7248 "type": "zip",
6956 - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/81c2e120522a42f623233968244baebd6b36cb6a",  
6957 - "reference": "81c2e120522a42f623233968244baebd6b36cb6a", 7249 + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f46c7fc8e207bd8a2188f54f8738f232533765a4",
  7250 + "reference": "f46c7fc8e207bd8a2188f54f8738f232533765a4",
6958 "shasum": "" 7251 "shasum": ""
6959 }, 7252 },
6960 "require": { 7253 "require": {
@@ -6995,7 +7288,7 @@ @@ -6995,7 +7288,7 @@
6995 "configuration", 7288 "configuration",
6996 "options" 7289 "options"
6997 ], 7290 ],
6998 - "time": "2019-08-08T09:29:19+00:00" 7291 + "time": "2019-10-28T20:59:01+00:00"
6999 }, 7292 },
7000 { 7293 {
7001 "name": "symfony/polyfill-php70", 7294 "name": "symfony/polyfill-php70",
@@ -7058,7 +7351,7 @@ @@ -7058,7 +7351,7 @@
7058 }, 7351 },
7059 { 7352 {
7060 "name": "symfony/stopwatch", 7353 "name": "symfony/stopwatch",
7061 - "version": "v4.3.5", 7354 + "version": "v4.3.6",
7062 "source": { 7355 "source": {
7063 "type": "git", 7356 "type": "git",
7064 "url": "https://github.com/symfony/stopwatch.git", 7357 "url": "https://github.com/symfony/stopwatch.git",
database/migrations/2019_10_17_095937_create_menu_reclassify_registration.php 0 → 100644
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
  1 +<?php
  2 +
  3 +use App\Menu;
  4 +use App\Process;
  5 +use Illuminate\Support\Facades\Schema;
  6 +use Illuminate\Database\Schema\Blueprint;
  7 +use Illuminate\Database\Migrations\Migration;
  8 +
  9 +class CreateMenuReclassifyRegistration extends Migration
  10 +{
  11 + /**
  12 + * Run the migrations.
  13 + *
  14 + * @return void
  15 + */
  16 + public function up()
  17 + {
  18 + Menu::query()->create([
  19 + 'parent_id' => Menu::query()->where('old', Process::MENU_SCHOOL)->firstOrFail()->getKey(),
  20 + 'title' => 'Reclassificar matrícula',
  21 + 'process' => Process::RECLASSIFY_REGISTRATION,
  22 + ]);
  23 + }
  24 +
  25 + /**
  26 + * Reverse the migrations.
  27 + *
  28 + * @return void
  29 + */
  30 + public function down()
  31 + {
  32 + Menu::query()->where('process', Process::RECLASSIFY_REGISTRATION)->delete();
  33 + }
  34 +}
database/migrations/2019_10_17_102129_add_reclassify_menu_to_user_types_with_registrations.php 0 → 100644
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
  1 +<?php
  2 +
  3 +use Illuminate\Support\Facades\Schema;
  4 +use Illuminate\Database\Schema\Blueprint;
  5 +use Illuminate\Database\Migrations\Migration;
  6 +use App\Process;
  7 +
  8 +class AddReclassifyMenuToUserTypesWithRegistrations extends Migration
  9 +{
  10 + /**
  11 + * Run the migrations.
  12 + *
  13 + * @return void
  14 + */
  15 + public function up()
  16 + {
  17 + DB::insert('
  18 + INSERT INTO pmieducar.menu_tipo_usuario (ref_cod_tipo_usuario, menu_id, cadastra, visualiza, exclui)
  19 + SELECT
  20 + ref_cod_tipo_usuario,
  21 + (
  22 + SELECT id
  23 + FROM menus
  24 + WHERE process = ?
  25 + ) as menu_id,
  26 + cadastra,
  27 + visualiza,
  28 + exclui
  29 + FROM pmieducar.menu_tipo_usuario
  30 + where menu_id = (
  31 + SELECT id
  32 + FROM menus
  33 + WHERE process = ?
  34 + )
  35 +
  36 + ', [
  37 + Process::RECLASSIFY_REGISTRATION,
  38 + Process::REGISTRATIONS,
  39 + ]);
  40 + }
  41 +
  42 + /**
  43 + * Reverse the migrations.
  44 + *
  45 + * @return void
  46 + */
  47 + public function down()
  48 + {
  49 + DB::table('pmieducar.menu_tipo_usuario')
  50 + ->whereRaw('menu_id = (
  51 + SELECT id
  52 + FROM menus
  53 + WHERE process = ?
  54 + )', [Process::RECLASSIFY_REGISTRATION])
  55 + ->delete();
  56 + }
  57 +}
ieducar/intranet/educar_ano_letivo_modulo_cad.php
@@ -546,7 +546,8 @@ class indice extends clsCadastro @@ -546,7 +546,8 @@ class indice extends clsCadastro
546 'cod_curso_profissional', 546 'cod_curso_profissional',
547 'tipo_mediacao_didatico_pedagogico', 547 'tipo_mediacao_didatico_pedagogico',
548 'nao_informar_educacenso', 548 'nao_informar_educacenso',
549 - 'turma_mais_educacao' 549 + 'turma_mais_educacao',
  550 + 'local_funcionamento_diferenciado'
550 ]; 551 ];
551 552
552 $turmaDestino = new clsPmieducarTurma(); 553 $turmaDestino = new clsPmieducarTurma();
@@ -697,7 +698,7 @@ class indice extends clsCadastro @@ -697,7 +698,7 @@ class indice extends clsCadastro
697 $iDiarioService = app(iDiarioService::class); 698 $iDiarioService = app(iDiarioService::class);
698 699
699 foreach ($etapas as $etapa) { 700 foreach ($etapas as $etapa) {
700 - if ($iDiarioService->getStepActivityByUnit($escolaId, $etapa)) { 701 + if ($iDiarioService->getStepActivityByUnit($escolaId, $ano, $etapa)) {
701 throw new RuntimeException('Não foi possível remover uma das etapas pois existem notas ou faltas lançadas no diário online.'); 702 throw new RuntimeException('Não foi possível remover uma das etapas pois existem notas ou faltas lançadas no diário online.');
702 } 703 }
703 } 704 }
ieducar/intranet/educar_backup_lst.php
@@ -6,6 +6,8 @@ require_once (&quot;include/clsBanco.inc.php&quot;); @@ -6,6 +6,8 @@ require_once (&quot;include/clsBanco.inc.php&quot;);
6 require_once ("include/pmieducar/geral.inc.php"); 6 require_once ("include/pmieducar/geral.inc.php");
7 require_once 'Portabilis/Date/Utils.php'; 7 require_once 'Portabilis/Date/Utils.php';
8 8
  9 +use App\Services\BackupUrlPresigner;
  10 +
9 class clsIndexBase extends clsBase 11 class clsIndexBase extends clsBase
10 { 12 {
11 function Formular() 13 function Formular()
@@ -84,15 +86,18 @@ class indice extends clsListagem @@ -84,15 +86,18 @@ class indice extends clsListagem
84 $total = $objBackup->_total; 86 $total = $objBackup->_total;
85 87
86 // monta a lista 88 // monta a lista
  89 + $baseDownloadUrl = route('backup.download');
87 if(is_array($lista) && count($lista)) 90 if(is_array($lista) && count($lista))
88 { 91 {
89 foreach ($lista AS $registro) 92 foreach ($lista AS $registro)
90 { 93 {
91 $dataBackup = Portabilis_Date_Utils::pgSQLToBr($registro['data_backup']); 94 $dataBackup = Portabilis_Date_Utils::pgSQLToBr($registro['data_backup']);
92 95
  96 + $url = $baseDownloadUrl . '?url=' . urlencode($registro['caminho']);
  97 +
93 $this->addLinhas( array( 98 $this->addLinhas( array(
94 - "<a href=\"{$registro["caminho"]}\">{$registro["caminho"]}</a>",  
95 - "<a href=\"{$registro["caminho"]}\">{$dataBackup}</a>" 99 + "<a href=\"$url\">{$registro["caminho"]}</a>",
  100 + "<a href=\"$url\">{$dataBackup}</a>"
96 ) ); 101 ) );
97 } 102 }
98 } 103 }
ieducar/intranet/educar_calendario_ano_letivo_lst.php
@@ -17,7 +17,6 @@ class clsIndexBase extends clsBase @@ -17,7 +17,6 @@ class clsIndexBase extends clsBase
17 function Formular() 17 function Formular()
18 { 18 {
19 $this->SetTitulo($this->_instituicao . ' i-Educar - Calendários'); 19 $this->SetTitulo($this->_instituicao . ' i-Educar - Calendários');
20 - $this->addScript('calendario');  
21 $this->processoAp = 620; 20 $this->processoAp = 620;
22 } 21 }
23 } 22 }
@@ -471,6 +470,12 @@ class indice extends clsListagem @@ -471,6 +470,12 @@ class indice extends clsListagem
471 470
472 $retorno .= '</tbody> </table>'; 471 $retorno .= '</tbody> </table>';
473 472
  473 + $scripts = [
  474 + '/intranet/scripts/calendario.js'
  475 + ];
  476 +
  477 + Portabilis_View_Helper_Application::loadJavascript($this, $scripts);
  478 +
474 return $retorno; 479 return $retorno;
475 } 480 }
476 } 481 }
ieducar/intranet/educar_matricula_det.php
@@ -317,7 +317,7 @@ class indice extends clsDetalhe @@ -317,7 +317,7 @@ class indice extends clsDetalhe
317 $this->array_botao[] = 'Falecido'; 317 $this->array_botao[] = 'Falecido';
318 $this->array_botao_url_script[] = "go(\"educar_falecido_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\");"; 318 $this->array_botao_url_script[] = "go(\"educar_falecido_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\");";
319 319
320 - if ($registro['ref_ref_cod_serie']) { 320 + if ($registro['ref_ref_cod_serie'] && $this->permissaoReclassificar()) {
321 $this->array_botao[] = 'Reclassificar'; 321 $this->array_botao[] = 'Reclassificar';
322 $this->array_botao_url_script[] = "go(\"educar_matricula_reclassificar_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\")"; 322 $this->array_botao_url_script[] = "go(\"educar_matricula_reclassificar_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\")";
323 } 323 }
@@ -430,6 +430,13 @@ class indice extends clsDetalhe @@ -430,6 +430,13 @@ class indice extends clsDetalhe
430 return $acesso->permissao_excluir(627, $this->pessoa_logada, 7, null, true); 430 return $acesso->permissao_excluir(627, $this->pessoa_logada, 7, null, true);
431 } 431 }
432 432
  433 + public function permissaoReclassificar()
  434 + {
  435 + $acesso = new clsPermissoes();
  436 +
  437 + return $acesso->permissao_cadastra(Process::RECLASSIFY_REGISTRATION, $this->pessoa_logada, 7, null, true);
  438 + }
  439 +
433 public function canCancelTransferencia($matriculaId) 440 public function canCancelTransferencia($matriculaId)
434 { 441 {
435 $sql = "SELECT transferencia_solicitacao.cod_transferencia_solicitacao 442 $sql = "SELECT transferencia_solicitacao.cod_transferencia_solicitacao
ieducar/intranet/educar_matricula_reclassificar_cad.php
@@ -11,12 +11,14 @@ require_once &#39;modules/Avaliacao/Model/NotaAlunoDataMapper.php&#39;; @@ -11,12 +11,14 @@ require_once &#39;modules/Avaliacao/Model/NotaAlunoDataMapper.php&#39;;
11 require_once 'modules/Avaliacao/Model/NotaComponenteMediaDataMapper.php'; 11 require_once 'modules/Avaliacao/Model/NotaComponenteMediaDataMapper.php';
12 require_once 'lib/App/Model/MatriculaSituacao.php'; 12 require_once 'lib/App/Model/MatriculaSituacao.php';
13 13
  14 +use App\Process;
  15 +
14 class clsIndexBase extends clsBase 16 class clsIndexBase extends clsBase
15 { 17 {
16 function Formular() 18 function Formular()
17 { 19 {
18 $this->SetTitulo( "{$this->_instituicao} i-Educar - Reclassificar Matr&iacute;cula" ); 20 $this->SetTitulo( "{$this->_instituicao} i-Educar - Reclassificar Matr&iacute;cula" );
19 - $this->processoAp = "578"; 21 + $this->processoAp = Process::RECLASSIFY_REGISTRATION;
20 } 22 }
21 } 23 }
22 24
@@ -60,7 +62,7 @@ class indice extends clsCadastro @@ -60,7 +62,7 @@ class indice extends clsCadastro
60 $this->ref_cod_aluno=$_GET["ref_cod_aluno"]; 62 $this->ref_cod_aluno=$_GET["ref_cod_aluno"];
61 63
62 $obj_permissoes = new clsPermissoes(); 64 $obj_permissoes = new clsPermissoes();
63 - $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); 65 + $obj_permissoes->permissao_cadastra( Process::RECLASSIFY_REGISTRATION, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" );
64 66
65 $obj_matricula = new clsPmieducarMatricula($this->cod_matricula); 67 $obj_matricula = new clsPmieducarMatricula($this->cod_matricula);
66 $det_matricula = $obj_matricula->detalhe(); 68 $det_matricula = $obj_matricula->detalhe();
@@ -138,7 +140,7 @@ class indice extends clsCadastro @@ -138,7 +140,7 @@ class indice extends clsCadastro
138 { 140 {
139 141
140 $obj_permissoes = new clsPermissoes(); 142 $obj_permissoes = new clsPermissoes();
141 - $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); 143 + $obj_permissoes->permissao_cadastra(Process::RECLASSIFY_REGISTRATION, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" );
142 144
143 $this->data_cancel = Portabilis_Date_Utils::brToPgSQL($this->data_cancel); 145 $this->data_cancel = Portabilis_Date_Utils::brToPgSQL($this->data_cancel);
144 146
ieducar/intranet/educar_turma_cad.php
@@ -228,6 +228,7 @@ class indice extends clsCadastro @@ -228,6 +228,7 @@ class indice extends clsCadastro
228 228
229 $this->campoOculto('obrigar_campos_censo', (int)$obrigarCamposCenso); 229 $this->campoOculto('obrigar_campos_censo', (int)$obrigarCamposCenso);
230 $this->campoOculto('cod_turma', $this->cod_turma); 230 $this->campoOculto('cod_turma', $this->cod_turma);
  231 + $this->campoOculto('ano_letivo_', $this->ano);
231 $this->campoOculto('dependencia_administrativa', $this->dependencia_administrativa); 232 $this->campoOculto('dependencia_administrativa', $this->dependencia_administrativa);
232 $this->campoOculto('modalidade_curso', $this->modalidade_curso); 233 $this->campoOculto('modalidade_curso', $this->modalidade_curso);
233 $this->campoOculto('retorno', $this->retorno); 234 $this->campoOculto('retorno', $this->retorno);
@@ -1304,6 +1305,7 @@ class indice extends clsCadastro @@ -1304,6 +1305,7 @@ class indice extends clsCadastro
1304 protected function validaModulos() 1305 protected function validaModulos()
1305 { 1306 {
1306 $turmaId = $this->cod_turma; 1307 $turmaId = $this->cod_turma;
  1308 + $anoTurma = $this->ano_letivo_;
1307 $etapasCount = count($this->data_inicio); 1309 $etapasCount = count($this->data_inicio);
1308 $etapasCountAntigo = (int) Portabilis_Utils_Database::selectField( 1310 $etapasCountAntigo = (int) Portabilis_Utils_Database::selectField(
1309 'SELECT COUNT(*) AS count FROM pmieducar.turma_modulo WHERE ref_cod_turma = $1', 1311 'SELECT COUNT(*) AS count FROM pmieducar.turma_modulo WHERE ref_cod_turma = $1',
@@ -1360,7 +1362,7 @@ class indice extends clsCadastro @@ -1360,7 +1362,7 @@ class indice extends clsCadastro
1360 $iDiarioService = app(iDiarioService::class); 1362 $iDiarioService = app(iDiarioService::class);
1361 1363
1362 foreach ($etapas as $etapa) { 1364 foreach ($etapas as $etapa) {
1363 - if ($iDiarioService->getStepActivityByClassroom($turmaId, $etapa)) { 1365 + if ($iDiarioService->getStepActivityByClassroom($turmaId, $anoTurma, $etapa)) {
1364 throw new RuntimeException('Não foi possível remover uma das etapas pois existem notas ou faltas lançadas no diário online.'); 1366 throw new RuntimeException('Não foi possível remover uma das etapas pois existem notas ou faltas lançadas no diário online.');
1365 } 1367 }
1366 } 1368 }
ieducar/intranet/scripts/calendario.js
@@ -65,18 +65,6 @@ function updateMessagePosition() @@ -65,18 +65,6 @@ function updateMessagePosition()
65 last.style.top = (findPosY(last_td) + 2) + 'px'; 65 last.style.top = (findPosY(last_td) + 2) + 'px';
66 } 66 }
67 67
68 -if (document.createStyleSheet) {  
69 - document.createStyleSheet('styles/calendario.css');  
70 -}  
71 -else {  
72 - var objHead = document.getElementsByTagName('head');  
73 - var objCSS = objHead[0].appendChild(document.createElement('link'));  
74 -  
75 - objCSS.rel = 'stylesheet';  
76 - objCSS.href = 'styles/calendario.css';  
77 - objCSS.type = 'text/css';  
78 -}  
79 -  
80 var cX = 0; 68 var cX = 0;
81 var cY = 0; 69 var cY = 0;
82 70
ieducar/intranet/styles/custom.css
@@ -492,6 +492,11 @@ table.calendar .dayLastMonth, .day{ @@ -492,6 +492,11 @@ table.calendar .dayLastMonth, .day{
492 492
493 table.calendar .day{ 493 table.calendar .day{
494 background-color: #e9f0f8 !; 494 background-color: #e9f0f8 !;
  495 + cursor: pointer;
  496 +}
  497 +
  498 +table.calendar .day:hover{
  499 + opacity: .7;
495 } 500 }
496 501
497 table.calendar .anotacao{ 502 table.calendar .anotacao{
ieducar/lib/App/Model/IedFinder.php
@@ -688,7 +688,12 @@ class App_Model_IedFinder extends CoreExt_Entity @@ -688,7 +688,12 @@ class App_Model_IedFinder extends CoreExt_Entity
688 $ano 688 $ano
689 ); 689 );
690 690
691 - unset($componentesTurma[$disciplinaDispensada]); 691 + foreach($componentesTurma as $key => $componente) {
  692 + if ($componente->id == $disciplinaDispensada) {
  693 + unset($componentesTurma[$key]);
  694 + }
  695 + }
  696 +
692 return $componentesTurma; 697 return $componentesTurma;
693 } 698 }
694 699
ieducar/lib/Portabilis/Report/ReportsRenderServerFactory.php
1 <?php 1 <?php
2 2
3 -use Carbon\Carbon;  
4 use GuzzleHttp\Client; 3 use GuzzleHttp\Client;
5 use GuzzleHttp\Exception\GuzzleException; 4 use GuzzleHttp\Exception\GuzzleException;
  5 +use Illuminate\Support\Facades\Log;
6 6
7 require_once 'lib/Portabilis/Report/ReportFactory.php'; 7 require_once 'lib/Portabilis/Report/ReportFactory.php';
8 8
@@ -45,6 +45,25 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep @@ -45,6 +45,25 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep
45 private $timezone; 45 private $timezone;
46 46
47 /** 47 /**
  48 + * Loga erros da requisição ao servidor de relatórios.
  49 + *
  50 + * @param array $payload
  51 + * @param string $response
  52 + *
  53 + * @return void
  54 + */
  55 + protected function log($payload, $response)
  56 + {
  57 + $log = json_encode([
  58 + 'url' => $this->url,
  59 + 'payload' => $payload,
  60 + 'response' => $response,
  61 + ]);
  62 +
  63 + Log::error($log);
  64 + }
  65 +
  66 + /**
48 * @inheritdoc 67 * @inheritdoc
49 */ 68 */
50 public function setSettings($config) 69 public function setSettings($config)
@@ -69,10 +88,10 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep @@ -69,10 +88,10 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep
69 * @param Portabilis_Report_ReportCore $report 88 * @param Portabilis_Report_ReportCore $report
70 * @param array $options 89 * @param array $options
71 * 90 *
72 - * @return string  
73 - *  
74 * @throws GuzzleException 91 * @throws GuzzleException
75 * @throws Exception 92 * @throws Exception
  93 + *
  94 + * @return string
76 */ 95 */
77 public function dumps($report, $options = []) 96 public function dumps($report, $options = [])
78 { 97 {
@@ -111,7 +130,7 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep @@ -111,7 +130,7 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep
111 $data = $report->getJsonData(); 130 $data = $report->getJsonData();
112 $data = $report->modify($data); 131 $data = $report->modify($data);
113 132
114 - $response = $client->request('POST', $this->url, [ 133 + $payload = [
115 'json' => [ 134 'json' => [
116 'report' => $templateName, 135 'report' => $templateName,
117 'url' => $url, 136 'url' => $url,
@@ -122,15 +141,21 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep @@ -122,15 +141,21 @@ class Portabilis_Report_ReportsRenderServerFactory extends Portabilis_Report_Rep
122 'Accept' => 'application/json', 141 'Accept' => 'application/json',
123 'Authorization' => 'Token ' . $this->token, 142 'Authorization' => 'Token ' . $this->token,
124 ] 143 ]
125 - ]); 144 + ];
  145 +
  146 + $response = $client->request('POST', $this->url, $payload);
126 147
127 $json = json_decode($response->getBody()->getContents(), true); 148 $json = json_decode($response->getBody()->getContents(), true);
128 149
129 if (is_null($json)) { 150 if (is_null($json)) {
  151 + $this->log($payload, $response->getBody()->getContents());
  152 +
130 throw new Exception('Não foi possível analisar a resposta do serviço.'); 153 throw new Exception('Não foi possível analisar a resposta do serviço.');
131 } 154 }
132 155
133 if ($json['success'] == false) { 156 if ($json['success'] == false) {
  157 + $this->log($payload, $response->getBody()->getContents());
  158 +
134 throw new Exception($json['error'] ?? $json['message']); 159 throw new Exception($json['error'] ?? $json['message']);
135 } 160 }
136 161
ieducar/lib/Portabilis/View/Helper/Input/Resource/MultipleSearchDocumentosAtestadoVaga.php
@@ -23,6 +23,7 @@ class Portabilis_View_Helper_Input_Resource_MultipleSearchDocumentosAtestadoVaga @@ -23,6 +23,7 @@ class Portabilis_View_Helper_Input_Resource_MultipleSearchDocumentosAtestadoVaga
23 'doc_nis' => 'N&uacute;mero de Identifica&ccedil;&atilde;o Social - NIS', 23 'doc_nis' => 'N&uacute;mero de Identifica&ccedil;&atilde;o Social - NIS',
24 'responsabilidade_nao_genitor' => 'Documento de responsável não genitor', 24 'responsabilidade_nao_genitor' => 'Documento de responsável não genitor',
25 'intolerancia_alergia' => 'Laudo médico para intolerância ou alergia', 25 'intolerancia_alergia' => 'Laudo médico para intolerância ou alergia',
  26 + 'tipo_sanguineo' => 'Tipo Sanguíneo',
26 ]; 27 ];
27 } 28 }
28 29
ieducar/modules/Api/Views/DiarioController.php
@@ -231,7 +231,12 @@ class DiarioController extends ApiCoreController @@ -231,7 +231,12 @@ class DiarioController extends ApiCoreController
231 231
232 $valorNota = $serviceBoletim->calculateStageScore($etapa, $notaOriginal, $notaRecuperacao); 232 $valorNota = $serviceBoletim->calculateStageScore($etapa, $notaOriginal, $notaRecuperacao);
233 233
234 - if ($etapa == 'Rc' && $notaOriginal > $regra->notaMaximaExameFinal) { 234 + $notaValidacao = $notaOriginal;
  235 + if (is_numeric($valorNota)) {
  236 + $notaValidacao = $valorNota;
  237 + }
  238 +
  239 + if ($etapa == 'Rc' && $notaValidacao > $regra->notaMaximaExameFinal) {
235 $this->messenger->append("A nota {$valorNota} está acima da configurada para nota máxima para exame que é {$regra->notaMaximaExameFinal}.", 'error'); 240 $this->messenger->append("A nota {$valorNota} está acima da configurada para nota máxima para exame que é {$regra->notaMaximaExameFinal}.", 'error');
236 $this->appendResponse('error', [ 241 $this->appendResponse('error', [
237 'code' => Error::EXAM_SCORE_GREATER_THAN_MAX_ALLOWED, 242 'code' => Error::EXAM_SCORE_GREATER_THAN_MAX_ALLOWED,
@@ -241,7 +246,7 @@ class DiarioController extends ApiCoreController @@ -241,7 +246,7 @@ class DiarioController extends ApiCoreController
241 return false; 246 return false;
242 } 247 }
243 248
244 - if ($etapa != 'Rc' && $notaOriginal > $regra->notaMaximaGeral) { 249 + if ($etapa != 'Rc' && $notaValidacao > $regra->notaMaximaGeral) {
245 $this->messenger->append("A nota {$valorNota} está acima da configurada para nota máxima geral que é {$regra->notaMaximaGeral}.", 'error'); 250 $this->messenger->append("A nota {$valorNota} está acima da configurada para nota máxima geral que é {$regra->notaMaximaGeral}.", 'error');
246 $this->appendResponse('error', [ 251 $this->appendResponse('error', [
247 'code' => Error::SCORE_GREATER_THAN_MAX_ALLOWED, 252 'code' => Error::SCORE_GREATER_THAN_MAX_ALLOWED,
@@ -251,7 +256,7 @@ class DiarioController extends ApiCoreController @@ -251,7 +256,7 @@ class DiarioController extends ApiCoreController
251 return false; 256 return false;
252 } 257 }
253 258
254 - if ($notaOriginal < $regra->notaMinimaGeral) { 259 + if ($notaValidacao < $regra->notaMinimaGeral) {
255 $this->messenger->append("A nota {$valorNota} está abaixo da configurada para nota mínima geral que é {$regra->notaMinimaGeral}.", 'error'); 260 $this->messenger->append("A nota {$valorNota} está abaixo da configurada para nota mínima geral que é {$regra->notaMinimaGeral}.", 'error');
256 $this->appendResponse('error', [ 261 $this->appendResponse('error', [
257 'code' => Error::SCORE_LESSER_THAN_MIN_ALLOWED, 262 'code' => Error::SCORE_LESSER_THAN_MIN_ALLOWED,
packages/.gitignore 0 → 100644
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
  1 +*
  2 +!.gitignore
0 \ No newline at end of file 3 \ No newline at end of file
resources/views/errors/503.blade.php 0 → 100644
@@ -0,0 +1,55 @@ @@ -0,0 +1,55 @@
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 +<head>
  4 + <meta charset="utf-8">
  5 + <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6 + <meta name="viewport" content="width=device-width, initial-scale=1">
  7 +
  8 + <title>Serviço indisponível</title>
  9 +
  10 + <!-- Fonts -->
  11 + <link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet" type="text/css">
  12 +
  13 + <!-- Styles -->
  14 + <style>
  15 + html, body {
  16 + background-color: #fff;
  17 + color: #636b6f;
  18 + font-family: 'Nunito', sans-serif;
  19 + font-weight: 100;
  20 + height: 100vh;
  21 + margin: 0;
  22 + }
  23 +
  24 + .full-height {
  25 + height: 100vh;
  26 + }
  27 +
  28 + .flex-center {
  29 + align-items: center;
  30 + display: flex;
  31 + justify-content: center;
  32 + }
  33 +
  34 + .position-ref {
  35 + position: relative;
  36 + }
  37 +
  38 + .content {
  39 + text-align: center;
  40 + }
  41 +
  42 + .title {
  43 + font-size: 36px;
  44 + padding: 20px;
  45 + }
  46 + </style>
  47 +</head>
  48 +<body>
  49 +<div class="flex-center position-ref full-height">
  50 + <div class="content">
  51 + <div class="title">Desculpe, mas o serviço está indisponível.</div>
  52 + </div>
  53 +</div>
  54 +</body>
  55 +</html>
routes/web.php
@@ -88,6 +88,7 @@ Route::group([&#39;middleware&#39; =&gt; [&#39;ieducar.navigation&#39;, &#39;ieducar.footer&#39;, &#39;ieducar. @@ -88,6 +88,7 @@ Route::group([&#39;middleware&#39; =&gt; [&#39;ieducar.navigation&#39;, &#39;ieducar.footer&#39;, &#39;ieducar.
88 }); 88 });
89 89
90 Route::get('/consulta-dispensas', 'ExemptionListController@index')->name('exemption-list.index'); 90 Route::get('/consulta-dispensas', 'ExemptionListController@index')->name('exemption-list.index');
  91 + Route::get('/backup-download', 'BackupController@download')->name('backup.download');
91 }); 92 });
92 93
93 Route::group(['namespace' => 'Exports', 'prefix' => 'exports'], function () { 94 Route::group(['namespace' => 'Exports', 'prefix' => 'exports'], function () {