diff --git a/app/Extensions/Application.php b/app/Extensions/Application.php new file mode 100644 index 0000000000..d0cd78998b --- /dev/null +++ b/app/Extensions/Application.php @@ -0,0 +1,11 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacyCity.php b/app/Models/LegacyCity.php new file mode 100644 index 0000000000..9ee2749775 --- /dev/null +++ b/app/Models/LegacyCity.php @@ -0,0 +1,69 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } + + /** + * @return HasMany + */ + public function districts() + { + return $this->hasMany(LegacyDistrict::class, 'idmun', 'idmun'); + } +} diff --git a/app/Models/LegacyDistrict.php b/app/Models/LegacyDistrict.php new file mode 100644 index 0000000000..75d83ea5dc --- /dev/null +++ b/app/Models/LegacyDistrict.php @@ -0,0 +1,57 @@ +whereKey($model->idmun)->first(); + + $model->origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + $model->iddis = $district->getKey(); + }); + } +} diff --git a/app/Models/LegacyExternalAddress.php b/app/Models/LegacyExternalAddress.php new file mode 100644 index 0000000000..935408419c --- /dev/null +++ b/app/Models/LegacyExternalAddress.php @@ -0,0 +1,65 @@ +data_cad = now(); + $model->origem_gravacao = 'M'; + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacyIndividual.php b/app/Models/LegacyIndividual.php index 5959faafa1..8f411510b1 100644 --- a/app/Models/LegacyIndividual.php +++ b/app/Models/LegacyIndividual.php @@ -2,6 +2,7 @@ namespace App\Models; +use Illuminate\Database\Eloquent\Relations\BelongsTo; use Prettus\Repository\Contracts\Transformable; use Prettus\Repository\Traits\TransformableTrait; @@ -28,11 +29,97 @@ class LegacyIndividual extends EloquentBaseModel implements Transformable * @var array */ protected $fillable = [ - 'idpes', 'data_cad', 'operacao', 'origem_gravacao', + 'idpes', + 'data_nasc', + 'sexo', + 'idpes_mae', + 'idpes_pai', + 'idpes_responsavel', + 'idesco', + 'ideciv', + 'idpes_con', + 'data_uniao', + 'data_obito', + 'nacionalidade', + 'idpais_estrangeiro', + 'data_chegada_brasil', + 'idmun_nascimento', + 'ultima_empresa', + 'idocup', + 'nome_mae', + 'nome_pai', + 'nome_conjuge', + 'nome_responsavel', + 'justificativa_provisorio', + 'idpes_rev', + 'data_rev', + 'origem_gravacao', + 'idpes_cad', + 'data_cad', + 'operacao', + 'ref_cod_sistema', + 'cpf', + 'ref_cod_religiao', + 'nis_pis_pasep', + 'sus', + 'ocupacao', + 'empresa', + 'pessoa_contato', + 'renda_mensal', + 'data_admissao', + 'ddd_telefone_empresa', + 'telefone_empresa', + 'falecido', + 'ativo', + 'ref_usuario_exc', + 'data_exclusao', + 'zona_localizacao_censo', + 'tipo_trabalho', + 'local_trabalho', + 'horario_inicial_trabalho', + 'horario_final_trabalho', + 'nome_social', + 'pais_residencia', + 'localizacao_diferenciada', ]; /** * @var bool */ public $timestamps = false; + + /** + * @inheritDoc + */ + protected static function boot() + { + parent::boot(); + + static::creating(function ($model) { + $model->data_cad = now(); + $model->origem_gravacao = 'M'; + $model->operacao = 'I'; + }); + } + + /** + * @return BelongsTo + */ + public function person() + { + return $this->belongsTo(LegacyPerson::class, 'idpes', 'idpes'); + } + + /** + * @param string $cpf + * + * @return $this + */ + public static function findByCpf($cpf) + { + $cpf = preg_replace('/[^0-9]/', '', $cpf); + $cpf = intval($cpf); + + return static::query()->where('cpf', $cpf)->first(); + } } diff --git a/app/Models/LegacyMaritalStatus.php b/app/Models/LegacyMaritalStatus.php new file mode 100644 index 0000000000..047bcaa628 --- /dev/null +++ b/app/Models/LegacyMaritalStatus.php @@ -0,0 +1,30 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacyPerson.php b/app/Models/LegacyPerson.php index 3acf780335..27c4e55758 100644 --- a/app/Models/LegacyPerson.php +++ b/app/Models/LegacyPerson.php @@ -34,6 +34,21 @@ class LegacyPerson extends EloquentBaseModel implements Transformable */ public $timestamps = false; + /** + * @inheritDoc + */ + protected static function boot() + { + parent::boot(); + + static::creating(function ($model) { + $model->data_cad = now(); + $model->situacao = 'I'; + $model->origem_gravacao = 'M'; + $model->operacao = 'I'; + }); + } + /** * @return string */ diff --git a/app/Models/LegacyPersonAddress.php b/app/Models/LegacyPersonAddress.php new file mode 100644 index 0000000000..168e01f71c --- /dev/null +++ b/app/Models/LegacyPersonAddress.php @@ -0,0 +1,62 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacyPhone.php b/app/Models/LegacyPhone.php new file mode 100644 index 0000000000..e11f8bca4e --- /dev/null +++ b/app/Models/LegacyPhone.php @@ -0,0 +1,53 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacyPostalCodeAddress.php b/app/Models/LegacyPostalCodeAddress.php new file mode 100644 index 0000000000..6d3218bd41 --- /dev/null +++ b/app/Models/LegacyPostalCodeAddress.php @@ -0,0 +1,53 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacyPostalCodeAddressNeighborhood.php b/app/Models/LegacyPostalCodeAddressNeighborhood.php new file mode 100644 index 0000000000..1fd6551b7e --- /dev/null +++ b/app/Models/LegacyPostalCodeAddressNeighborhood.php @@ -0,0 +1,52 @@ +origem_gravacao = 'M'; + $model->data_cad = now(); + $model->operacao = 'I'; + }); + } +} diff --git a/app/Models/LegacySchool.php b/app/Models/LegacySchool.php index ba1b29a6e7..2dbdb27f08 100644 --- a/app/Models/LegacySchool.php +++ b/app/Models/LegacySchool.php @@ -92,4 +92,17 @@ public function getNameAttribute() { return DB::selectOne('SELECT relatorio.get_nome_escola(:escola) AS nome', ['escola' => $this->id])->nome; } + + /** + * @return BelongsToMany + */ + public function grades() + { + return $this->belongsToMany( + LegacyLevel::class, + 'pmieducar.escola_serie', + 'ref_cod_escola', + 'ref_cod_serie' + )->withPivot('ativo', 'anos_letivos'); + } } diff --git a/app/Models/LegacyStudent.php b/app/Models/LegacyStudent.php index 76bfc741c9..59b7f0bdb7 100644 --- a/app/Models/LegacyStudent.php +++ b/app/Models/LegacyStudent.php @@ -21,7 +21,7 @@ class LegacyStudent extends Model * @var array */ protected $fillable = [ - 'ref_idpes', 'data_cadastro', + 'ref_idpes', 'data_cadastro', 'tipo_responsavel', ]; /** @@ -29,6 +29,26 @@ class LegacyStudent extends Model */ public $timestamps = false; + /** + * @inheritDoc + */ + protected static function boot() + { + parent::boot(); + + static::creating(function ($model) { + $model->data_cadastro = now(); + }); + } + + /** + * @return BelongsTo + */ + public function individual() + { + return $this->belongsTo(LegacyIndividual::class, 'ref_idpes'); + } + /** * @return BelongsTo */ diff --git a/app/Models/LegacyVacancyReservationCandidate.php b/app/Models/LegacyVacancyReservationCandidate.php new file mode 100644 index 0000000000..021f8d573c --- /dev/null +++ b/app/Models/LegacyVacancyReservationCandidate.php @@ -0,0 +1,59 @@ +data_situacao = now()->format('Y-m-d'); + $model->hora_solicitacao = now()->format('H:i:s'); + }); + } +} diff --git a/app/Process.php b/app/Process.php index a41a8fb11f..4cc065681a 100644 --- a/app/Process.php +++ b/app/Process.php @@ -15,9 +15,11 @@ class Process const CONSULTAS = 9998890; + const REGISTRATIONS = 578; const ENROLLMENT_HISTORY = 1001; const ATTENDED_CANDIDATE = 1002; const BACK_TO_QUEUE = 1003; + const RECLASSIFY_REGISTRATION = 1004; const UNDO_STUDENT_UNIFICATION = 2001; const EXEMPTION_LIST = 2002; } diff --git a/app/Services/iDiarioService.php b/app/Services/iDiarioService.php index 6c09c17408..a0a6fe0e98 100644 --- a/app/Services/iDiarioService.php +++ b/app/Services/iDiarioService.php @@ -55,10 +55,14 @@ public function __construct(LegacyInstitution $institution, Client $http) * * @return bool */ - public function getStepActivityByUnit(int $unitId, int $step): bool + public function getStepActivityByUnit(int $unitId, int $year, int $step): bool { try { - $response = $this->get('/api/v2/step_activity', ['unity_id' => $unitId, 'step_number' => $step]); + $response = $this->get('/api/v2/step_activity', [ + 'unity_id' => $unitId, + 'year' => $year, + 'step_number' => $step + ]); $body = trim((string)$response->getBody()); if ($body === 'true') { @@ -77,10 +81,14 @@ public function getStepActivityByUnit(int $unitId, int $step): bool * * @return bool */ - public function getStepActivityByClassroom(int $classroomId, int $step): bool + public function getStepActivityByClassroom(int $classroomId, int $year, int $step): bool { try { - $response = $this->get('/api/v2/step_activity', ['classroom_id' => $classroomId, 'step_number' => $step]); + $response = $this->get('/api/v2/step_activity', [ + 'classroom_id' => $classroomId, + 'year' => $year, + 'step_number' => $step + ]); $body = trim((string)$response->getBody()); if ($body === 'true') { diff --git a/bootstrap/app.php b/bootstrap/app.php index 037e17df03..6040569762 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -11,7 +11,7 @@ | */ -$app = new Illuminate\Foundation\Application( +$app = new App\Extensions\Application( $_ENV['APP_BASE_PATH'] ?? dirname(__DIR__) ); diff --git a/composer.json b/composer.json index bfd1d7aa39..b38a6e8d87 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "Software livre de gestão escolar", "type": "project", "license": "GPL-2.0-or-later", - "version": "2.2.11", + "version": "2.2.12", "keywords": [ "Portabilis", "i-Educar" @@ -18,20 +18,21 @@ "composer/semver": "^1.4", "cossou/jasperphp": "^2.7", "doctrine/dbal": "^2.9", + "edersoares/laravel-plug-and-play": "^1.0", "fideloper/proxy": "^4.0", "google/recaptcha": "^1.2", "guzzlehttp/guzzle": "^6.3", "honeybadger-io/honeybadger-laravel": "^1.4", "laravel/framework": "5.8.*", "laravel/tinker": "^1.0", + "league/flysystem-aws-s3-v3": "~1.0", + "league/flysystem-cached-adapter": "~1.0", "maatwebsite/excel": "^3.1", "phpoffice/phpspreadsheet": "^1.6", "predis/predis": "^1.1", "prettus/l5-repository": "^2.6", "swiftmailer/swiftmailer": "^6.1", - "tooleks/laravel-asset-version": "^1.0", - "league/flysystem-aws-s3-v3": "~1.0", - "league/flysystem-cached-adapter": "~1.0" + "tooleks/laravel-asset-version": "^1.0" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.2", @@ -81,6 +82,11 @@ "laravel/telescope", "barryvdh/laravel-debugbar" ] + }, + "merge-plugin": { + "include": [ + "packages/*/*/composer.json" + ] } }, "scripts": { diff --git a/composer.lock b/composer.lock index 3a722f99a1..03e90e5b5d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "67141df1d8ac1c6225bdf16215518566", + "content-hash": "d6cb1d689a9141f98c1f92269dbfc7b9", "packages": [ { "name": "aws/aws-sdk-php", - "version": "3.112.28", + "version": "3.112.34", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "dabae6df3fd53b470da8806d641d05dbb66859da" + "reference": "5918919b64550f7436a01738ea49e56703c83799" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/dabae6df3fd53b470da8806d641d05dbb66859da", - "reference": "dabae6df3fd53b470da8806d641d05dbb66859da", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/5918919b64550f7436a01738ea49e56703c83799", + "reference": "5918919b64550f7436a01738ea49e56703c83799", "shasum": "" }, "require": { @@ -87,7 +87,7 @@ "s3", "sdk" ], - "time": "2019-10-24T18:14:24+00:00" + "time": "2019-11-01T18:08:35+00:00" }, { "name": "cocur/slugify", @@ -292,16 +292,16 @@ }, { "name": "doctrine/cache", - "version": "v1.8.0", + "version": "v1.8.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57" + "reference": "d4374ae95b36062d02ef310100ed33d78738d76c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57", - "reference": "d768d58baee9a4862ca783840eca1b9add7a7f57", + "url": "https://api.github.com/repos/doctrine/cache/zipball/d4374ae95b36062d02ef310100ed33d78738d76c", + "reference": "d4374ae95b36062d02ef310100ed33d78738d76c", "shasum": "" }, "require": { @@ -336,6 +336,10 @@ "MIT" ], "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, { "name": "Roman Borschel", "email": "roman@code-factory.org" @@ -344,10 +348,6 @@ "name": "Benjamin Eberlei", "email": "kontakt@beberlei.de" }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, { "name": "Jonathan Wage", "email": "jonwage@gmail.com" @@ -363,7 +363,7 @@ "cache", "caching" ], - "time": "2018-08-21T18:01:43+00:00" + "time": "2019-10-28T09:31:32+00:00" }, { "name": "doctrine/dbal", @@ -704,6 +704,57 @@ ], "time": "2019-03-31T00:38:28+00:00" }, + { + "name": "edersoares/laravel-plug-and-play", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/edersoares/laravel-plug-and-play.git", + "reference": "80e07938a0cc06e4dbf79a7cd0d533109cd31c70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/edersoares/laravel-plug-and-play/zipball/80e07938a0cc06e4dbf79a7cd0d533109cd31c70", + "reference": "80e07938a0cc06e4dbf79a7cd0d533109cd31c70", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1", + "ext-json": "*", + "laravel/framework": "~5.5|~6", + "php": ">=7.0.0", + "wikimedia/composer-merge-plugin": "^1.4" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": [], + "class": "Wikimedia\\Composer\\MergePlugin", + "laravel": { + "providers": [ + "EderSoares\\Laravel\\PlugAndPlay\\PlugAndPlayServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "EderSoares\\Laravel\\PlugAndPlay\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eder Soares", + "email": "edersoares@me.com", + "homepage": "https://edersoares.me", + "role": "Developer" + } + ], + "description": "Plug and play packages in Laravel", + "time": "2019-10-22T02:54:46+00:00" + }, { "name": "egulias/email-validator", "version": "2.1.11", @@ -2133,16 +2184,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.2.4", + "version": "v4.2.5", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4" + "reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/97e59c7a16464196a8b9c77c47df68e4a39a45c4", - "reference": "97e59c7a16464196a8b9c77c47df68e4a39a45c4", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/b76bbc3c51f22c570648de48e8c2d941ed5e2cf2", + "reference": "b76bbc3c51f22c570648de48e8c2d941ed5e2cf2", "shasum": "" }, "require": { @@ -2150,6 +2201,7 @@ "php": ">=7.0" }, "require-dev": { + "ircmaxell/php-yacc": "0.0.4", "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" }, "bin": [ @@ -2180,7 +2232,7 @@ "parser", "php" ], - "time": "2019-09-01T07:51:21+00:00" + "time": "2019-10-25T18:33:07+00:00" }, { "name": "opis/closure", @@ -2736,16 +2788,16 @@ }, { "name": "psr/log", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2" + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2", - "reference": "bf73deb2b3b896a9d9c75f3f0d88185d2faa27e2", + "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", + "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", "shasum": "" }, "require": { @@ -2779,7 +2831,7 @@ "psr", "psr-3" ], - "time": "2019-10-25T08:06:51+00:00" + "time": "2019-11-01T11:05:21+00:00" }, { "name": "psr/simple-cache", @@ -3139,16 +3191,16 @@ }, { "name": "symfony/console", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "929ddf360d401b958f611d44e726094ab46a7369" + "reference": "136c4bd62ea871d00843d1bc0316de4c4a84bb78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/929ddf360d401b958f611d44e726094ab46a7369", - "reference": "929ddf360d401b958f611d44e726094ab46a7369", + "url": "https://api.github.com/repos/symfony/console/zipball/136c4bd62ea871d00843d1bc0316de4c4a84bb78", + "reference": "136c4bd62ea871d00843d1bc0316de4c4a84bb78", "shasum": "" }, "require": { @@ -3210,11 +3262,11 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-10-07T12:36:49+00:00" + "time": "2019-10-30T12:58:49+00:00" }, { "name": "symfony/css-selector", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -3267,16 +3319,16 @@ }, { "name": "symfony/debug", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "cc5c1efd0edfcfd10b354750594a46b3dd2afbbe" + "reference": "5ea9c3e01989a86ceaa0283f21234b12deadf5e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/cc5c1efd0edfcfd10b354750594a46b3dd2afbbe", - "reference": "cc5c1efd0edfcfd10b354750594a46b3dd2afbbe", + "url": "https://api.github.com/repos/symfony/debug/zipball/5ea9c3e01989a86ceaa0283f21234b12deadf5e2", + "reference": "5ea9c3e01989a86ceaa0283f21234b12deadf5e2", "shasum": "" }, "require": { @@ -3319,11 +3371,11 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2019-09-19T15:51:53+00:00" + "time": "2019-10-28T17:07:32+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -3451,16 +3503,16 @@ }, { "name": "symfony/finder", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "5e575faa95548d0586f6bedaeabec259714e44d1" + "reference": "72a068f77e317ae77c0a0495236ad292cfb5ce6f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/5e575faa95548d0586f6bedaeabec259714e44d1", - "reference": "5e575faa95548d0586f6bedaeabec259714e44d1", + "url": "https://api.github.com/repos/symfony/finder/zipball/72a068f77e317ae77c0a0495236ad292cfb5ce6f", + "reference": "72a068f77e317ae77c0a0495236ad292cfb5ce6f", "shasum": "" }, "require": { @@ -3496,20 +3548,20 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-09-16T11:29:48+00:00" + "time": "2019-10-30T12:53:54+00:00" }, { "name": "symfony/http-foundation", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "76590ced16d4674780863471bae10452b79210a5" + "reference": "38f63e471cda9d37ac06e76d14c5ea2ec5887051" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/76590ced16d4674780863471bae10452b79210a5", - "reference": "76590ced16d4674780863471bae10452b79210a5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/38f63e471cda9d37ac06e76d14c5ea2ec5887051", + "reference": "38f63e471cda9d37ac06e76d14c5ea2ec5887051", "shasum": "" }, "require": { @@ -3551,20 +3603,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2019-10-04T19:48:13+00:00" + "time": "2019-10-30T12:58:49+00:00" }, { "name": "symfony/http-kernel", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "5f08141850932e8019c01d8988bf3ed6367d2991" + "reference": "56acfda9e734e8715b3b0e6859cdb4f5b28757bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/5f08141850932e8019c01d8988bf3ed6367d2991", - "reference": "5f08141850932e8019c01d8988bf3ed6367d2991", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/56acfda9e734e8715b3b0e6859cdb4f5b28757bf", + "reference": "56acfda9e734e8715b3b0e6859cdb4f5b28757bf", "shasum": "" }, "require": { @@ -3643,20 +3695,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2019-10-07T15:06:41+00:00" + "time": "2019-11-01T10:00:03+00:00" }, { "name": "symfony/mime", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "32f71570547b91879fdbd9cf50317d556ae86916" + "reference": "3c0e197529da6e59b217615ba8ee7604df88b551" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/32f71570547b91879fdbd9cf50317d556ae86916", - "reference": "32f71570547b91879fdbd9cf50317d556ae86916", + "url": "https://api.github.com/repos/symfony/mime/zipball/3c0e197529da6e59b217615ba8ee7604df88b551", + "reference": "3c0e197529da6e59b217615ba8ee7604df88b551", "shasum": "" }, "require": { @@ -3702,7 +3754,7 @@ "mime", "mime-type" ], - "time": "2019-09-19T17:00:15+00:00" + "time": "2019-10-30T12:58:49+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4057,16 +4109,16 @@ }, { "name": "symfony/process", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "50556892f3cc47d4200bfd1075314139c4c9ff4b" + "reference": "3b2e0cb029afbb0395034509291f21191d1a4db0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/50556892f3cc47d4200bfd1075314139c4c9ff4b", - "reference": "50556892f3cc47d4200bfd1075314139c4c9ff4b", + "url": "https://api.github.com/repos/symfony/process/zipball/3b2e0cb029afbb0395034509291f21191d1a4db0", + "reference": "3b2e0cb029afbb0395034509291f21191d1a4db0", "shasum": "" }, "require": { @@ -4102,20 +4154,20 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-09-26T21:17:10+00:00" + "time": "2019-10-28T17:07:32+00:00" }, { "name": "symfony/routing", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea" + "reference": "63a9920cc86fcc745e5ea254e362f02b615290b9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/3b174ef04fe66696524efad1e5f7a6c663d822ea", - "reference": "3b174ef04fe66696524efad1e5f7a6c663d822ea", + "url": "https://api.github.com/repos/symfony/routing/zipball/63a9920cc86fcc745e5ea254e362f02b615290b9", + "reference": "63a9920cc86fcc745e5ea254e362f02b615290b9", "shasum": "" }, "require": { @@ -4178,7 +4230,7 @@ "uri", "url" ], - "time": "2019-10-04T20:57:10+00:00" + "time": "2019-10-30T12:58:49+00:00" }, { "name": "symfony/service-contracts", @@ -4240,16 +4292,16 @@ }, { "name": "symfony/translation", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "fe6193b066c457c144333c06aaa869a2d42a167f" + "reference": "a3aa590ce944afb3434d7a55f81b00927144d5ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/fe6193b066c457c144333c06aaa869a2d42a167f", - "reference": "fe6193b066c457c144333c06aaa869a2d42a167f", + "url": "https://api.github.com/repos/symfony/translation/zipball/a3aa590ce944afb3434d7a55f81b00927144d5ec", + "reference": "a3aa590ce944afb3434d7a55f81b00927144d5ec", "shasum": "" }, "require": { @@ -4312,7 +4364,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2019-09-27T14:37:39+00:00" + "time": "2019-10-30T12:53:54+00:00" }, { "name": "symfony/translation-contracts", @@ -4373,16 +4425,16 @@ }, { "name": "symfony/var-dumper", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "bde8957fc415fdc6964f33916a3755737744ff05" + "reference": "ea4940845535c85ff5c505e13b3205b0076d07bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/bde8957fc415fdc6964f33916a3755737744ff05", - "reference": "bde8957fc415fdc6964f33916a3755737744ff05", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ea4940845535c85ff5c505e13b3205b0076d07bf", + "reference": "ea4940845535c85ff5c505e13b3205b0076d07bf", "shasum": "" }, "require": { @@ -4445,7 +4497,7 @@ "debug", "dump" ], - "time": "2019-10-04T19:48:13+00:00" + "time": "2019-10-13T12:02:04+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -4603,6 +4655,55 @@ "environment" ], "time": "2019-09-10T21:37:39+00:00" + }, + { + "name": "wikimedia/composer-merge-plugin", + "version": "v1.4.1", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/composer-merge-plugin.git", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": ">=5.3.2" + }, + "require-dev": { + "composer/composer": "~1.0.0", + "jakub-onderka/php-parallel-lint": "~0.8", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "~2.1.0" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + }, + "class": "Wikimedia\\Composer\\MergePlugin" + }, + "autoload": { + "psr-4": { + "Wikimedia\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bryan Davis", + "email": "bd808@wikimedia.org" + } + ], + "description": "Composer plugin to merge multiple composer.json files", + "time": "2017-04-25T02:31:25+00:00" } ], "packages-dev": [ @@ -5213,20 +5314,21 @@ }, { "name": "laravel/dusk", - "version": "v5.5.2", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/laravel/dusk.git", - "reference": "aed755282a13a9b36d26854a0105d519aa22fec9" + "reference": "db4f8d75b7c9acf88ef1712e9ccf51c15540934d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/dusk/zipball/aed755282a13a9b36d26854a0105d519aa22fec9", - "reference": "aed755282a13a9b36d26854a0105d519aa22fec9", + "url": "https://api.github.com/repos/laravel/dusk/zipball/db4f8d75b7c9acf88ef1712e9ccf51c15540934d", + "reference": "db4f8d75b7c9acf88ef1712e9ccf51c15540934d", "shasum": "" }, "require": { "ext-json": "*", + "ext-pcntl": "*", "ext-zip": "*", "facebook/webdriver": "^1.7", "illuminate/console": "~5.7.0|~5.8.0|^6.0|^7.0", @@ -5274,7 +5376,7 @@ "testing", "webdriver" ], - "time": "2019-09-24T20:30:07+00:00" + "time": "2019-10-29T15:58:57+00:00" }, { "name": "laravel/telescope", @@ -6245,16 +6347,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.5.16", + "version": "7.5.17", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661" + "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/316afa6888d2562e04aeb67ea7f2017a0eb41661", - "reference": "316afa6888d2562e04aeb67ea7f2017a0eb41661", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/4c92a15296e58191a4cd74cff3b34fc8e374174a", + "reference": "4c92a15296e58191a4cd74cff3b34fc8e374174a", "shasum": "" }, "require": { @@ -6325,7 +6427,7 @@ "testing", "xunit" ], - "time": "2019-09-14T09:08:39+00:00" + "time": "2019-10-28T10:37:36+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -6895,7 +6997,7 @@ }, { "name": "symfony/filesystem", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -6945,16 +7047,16 @@ }, { "name": "symfony/options-resolver", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "81c2e120522a42f623233968244baebd6b36cb6a" + "reference": "f46c7fc8e207bd8a2188f54f8738f232533765a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/81c2e120522a42f623233968244baebd6b36cb6a", - "reference": "81c2e120522a42f623233968244baebd6b36cb6a", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/f46c7fc8e207bd8a2188f54f8738f232533765a4", + "reference": "f46c7fc8e207bd8a2188f54f8738f232533765a4", "shasum": "" }, "require": { @@ -6995,7 +7097,7 @@ "configuration", "options" ], - "time": "2019-08-08T09:29:19+00:00" + "time": "2019-10-28T20:59:01+00:00" }, { "name": "symfony/polyfill-php70", @@ -7058,7 +7160,7 @@ }, { "name": "symfony/stopwatch", - "version": "v4.3.5", + "version": "v4.3.6", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", diff --git a/database/migrations/2019_10_17_095937_create_menu_reclassify_registration.php b/database/migrations/2019_10_17_095937_create_menu_reclassify_registration.php new file mode 100644 index 0000000000..c0fed8b8c0 --- /dev/null +++ b/database/migrations/2019_10_17_095937_create_menu_reclassify_registration.php @@ -0,0 +1,34 @@ +create([ + 'parent_id' => Menu::query()->where('old', Process::MENU_SCHOOL)->firstOrFail()->getKey(), + 'title' => 'Reclassificar matrícula', + 'process' => Process::RECLASSIFY_REGISTRATION, + ]); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Menu::query()->where('process', Process::RECLASSIFY_REGISTRATION)->delete(); + } +} diff --git a/database/migrations/2019_10_17_102129_add_reclassify_menu_to_user_types_with_registrations.php b/database/migrations/2019_10_17_102129_add_reclassify_menu_to_user_types_with_registrations.php new file mode 100644 index 0000000000..1b5f9a5641 --- /dev/null +++ b/database/migrations/2019_10_17_102129_add_reclassify_menu_to_user_types_with_registrations.php @@ -0,0 +1,57 @@ +whereRaw('menu_id = ( + SELECT id + FROM menus + WHERE process = ? + )', [Process::RECLASSIFY_REGISTRATION]) + ->delete(); + } +} diff --git a/ieducar/intranet/educar_ano_letivo_modulo_cad.php b/ieducar/intranet/educar_ano_letivo_modulo_cad.php index 7d1f82b1ed..4690504388 100644 --- a/ieducar/intranet/educar_ano_letivo_modulo_cad.php +++ b/ieducar/intranet/educar_ano_letivo_modulo_cad.php @@ -697,7 +697,7 @@ protected function validaModulos() $iDiarioService = app(iDiarioService::class); foreach ($etapas as $etapa) { - if ($iDiarioService->getStepActivityByUnit($escolaId, $etapa)) { + if ($iDiarioService->getStepActivityByUnit($escolaId, $ano, $etapa)) { throw new RuntimeException('Não foi possível remover uma das etapas pois existem notas ou faltas lançadas no diário online.'); } } diff --git a/ieducar/intranet/educar_calendario_ano_letivo_lst.php b/ieducar/intranet/educar_calendario_ano_letivo_lst.php index 21cc35fe35..3402150b7d 100644 --- a/ieducar/intranet/educar_calendario_ano_letivo_lst.php +++ b/ieducar/intranet/educar_calendario_ano_letivo_lst.php @@ -17,7 +17,6 @@ class clsIndexBase extends clsBase function Formular() { $this->SetTitulo($this->_instituicao . ' i-Educar - Calendários'); - $this->addScript('calendario'); $this->processoAp = 620; } } @@ -471,6 +470,12 @@ function renderHTML() $retorno .= ' '; + $scripts = [ + '/intranet/scripts/calendario.js' + ]; + + Portabilis_View_Helper_Application::loadJavascript($this, $scripts); + return $retorno; } } diff --git a/ieducar/intranet/educar_matricula_det.php b/ieducar/intranet/educar_matricula_det.php index 3ba7ee8d6f..90d63eb3d1 100644 --- a/ieducar/intranet/educar_matricula_det.php +++ b/ieducar/intranet/educar_matricula_det.php @@ -317,7 +317,7 @@ public function Gerar() $this->array_botao[] = 'Falecido'; $this->array_botao_url_script[] = "go(\"educar_falecido_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\");"; - if ($registro['ref_ref_cod_serie']) { + if ($registro['ref_ref_cod_serie'] && $this->permissaoReclassificar()) { $this->array_botao[] = 'Reclassificar'; $this->array_botao_url_script[] = "go(\"educar_matricula_reclassificar_cad.php?ref_cod_matricula={$registro['cod_matricula']}&ref_cod_aluno={$registro['ref_cod_aluno']}\")"; } @@ -430,6 +430,13 @@ public function permissao_cancelar() return $acesso->permissao_excluir(627, $this->pessoa_logada, 7, null, true); } + public function permissaoReclassificar() + { + $acesso = new clsPermissoes(); + + return $acesso->permissao_cadastra(Process::RECLASSIFY_REGISTRATION, $this->pessoa_logada, 7, null, true); + } + public function canCancelTransferencia($matriculaId) { $sql = "SELECT transferencia_solicitacao.cod_transferencia_solicitacao diff --git a/ieducar/intranet/educar_matricula_reclassificar_cad.php b/ieducar/intranet/educar_matricula_reclassificar_cad.php index 989c1a896b..4883fb968f 100644 --- a/ieducar/intranet/educar_matricula_reclassificar_cad.php +++ b/ieducar/intranet/educar_matricula_reclassificar_cad.php @@ -11,12 +11,14 @@ require_once 'modules/Avaliacao/Model/NotaComponenteMediaDataMapper.php'; require_once 'lib/App/Model/MatriculaSituacao.php'; +use App\Process; + class clsIndexBase extends clsBase { function Formular() { $this->SetTitulo( "{$this->_instituicao} i-Educar - Reclassificar Matrícula" ); - $this->processoAp = "578"; + $this->processoAp = Process::RECLASSIFY_REGISTRATION; } } @@ -60,7 +62,7 @@ function Inicializar() $this->ref_cod_aluno=$_GET["ref_cod_aluno"]; $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); + $obj_permissoes->permissao_cadastra( Process::RECLASSIFY_REGISTRATION, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); $obj_matricula = new clsPmieducarMatricula($this->cod_matricula); $det_matricula = $obj_matricula->detalhe(); @@ -138,7 +140,7 @@ function Novo() { $obj_permissoes = new clsPermissoes(); - $obj_permissoes->permissao_cadastra( 578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); + $obj_permissoes->permissao_cadastra(Process::RECLASSIFY_REGISTRATION, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}" ); $this->data_cancel = Portabilis_Date_Utils::brToPgSQL($this->data_cancel); diff --git a/ieducar/intranet/educar_turma_cad.php b/ieducar/intranet/educar_turma_cad.php index 4bfd13e728..e80ae8018b 100644 --- a/ieducar/intranet/educar_turma_cad.php +++ b/ieducar/intranet/educar_turma_cad.php @@ -228,6 +228,7 @@ public function Gerar() $this->campoOculto('obrigar_campos_censo', (int)$obrigarCamposCenso); $this->campoOculto('cod_turma', $this->cod_turma); + $this->campoOculto('ano_letivo_', $this->ano); $this->campoOculto('dependencia_administrativa', $this->dependencia_administrativa); $this->campoOculto('modalidade_curso', $this->modalidade_curso); $this->campoOculto('retorno', $this->retorno); @@ -1304,6 +1305,7 @@ public function montaObjetoTurma($codTurma = null, $usuarioCad = null, $usuarioE protected function validaModulos() { $turmaId = $this->cod_turma; + $anoTurma = $this->ano_letivo_; $etapasCount = count($this->data_inicio); $etapasCountAntigo = (int) Portabilis_Utils_Database::selectField( 'SELECT COUNT(*) AS count FROM pmieducar.turma_modulo WHERE ref_cod_turma = $1', @@ -1360,7 +1362,7 @@ protected function validaModulos() $iDiarioService = app(iDiarioService::class); foreach ($etapas as $etapa) { - if ($iDiarioService->getStepActivityByClassroom($turmaId, $etapa)) { + if ($iDiarioService->getStepActivityByClassroom($turmaId, $anoTurma, $etapa)) { throw new RuntimeException('Não foi possível remover uma das etapas pois existem notas ou faltas lançadas no diário online.'); } } diff --git a/ieducar/intranet/scripts/calendario.js b/ieducar/intranet/scripts/calendario.js index 225343fbab..7a3133962f 100644 --- a/ieducar/intranet/scripts/calendario.js +++ b/ieducar/intranet/scripts/calendario.js @@ -65,18 +65,6 @@ function updateMessagePosition() last.style.top = (findPosY(last_td) + 2) + 'px'; } -if (document.createStyleSheet) { - document.createStyleSheet('styles/calendario.css'); -} -else { - var objHead = document.getElementsByTagName('head'); - var objCSS = objHead[0].appendChild(document.createElement('link')); - - objCSS.rel = 'stylesheet'; - objCSS.href = 'styles/calendario.css'; - objCSS.type = 'text/css'; -} - var cX = 0; var cY = 0; diff --git a/ieducar/intranet/styles/custom.css b/ieducar/intranet/styles/custom.css index 8e64b08a35..d681a35fe0 100644 --- a/ieducar/intranet/styles/custom.css +++ b/ieducar/intranet/styles/custom.css @@ -492,6 +492,11 @@ table.calendar .dayLastMonth, .day{ table.calendar .day{ background-color: #e9f0f8 !; + cursor: pointer; +} + +table.calendar .day:hover{ + opacity: .7; } table.calendar .anotacao{ diff --git a/ieducar/lib/Portabilis/Report/ReportsRenderServerFactory.php b/ieducar/lib/Portabilis/Report/ReportsRenderServerFactory.php index d2d43b6887..5b665b409a 100644 --- a/ieducar/lib/Portabilis/Report/ReportsRenderServerFactory.php +++ b/ieducar/lib/Portabilis/Report/ReportsRenderServerFactory.php @@ -1,8 +1,8 @@ $this->url, + 'payload' => $payload, + 'response' => $response, + ]); + + Log::error($log); + } + /** * @inheritdoc */ @@ -69,10 +88,10 @@ public function setSettings($config) * @param Portabilis_Report_ReportCore $report * @param array $options * - * @return string - * * @throws GuzzleException * @throws Exception + * + * @return string */ public function dumps($report, $options = []) { @@ -111,7 +130,7 @@ public function dumps($report, $options = []) $data = $report->getJsonData(); $data = $report->modify($data); - $response = $client->request('POST', $this->url, [ + $payload = [ 'json' => [ 'report' => $templateName, 'url' => $url, @@ -122,15 +141,21 @@ public function dumps($report, $options = []) 'Accept' => 'application/json', 'Authorization' => 'Token ' . $this->token, ] - ]); + ]; + + $response = $client->request('POST', $this->url, $payload); $json = json_decode($response->getBody()->getContents(), true); if (is_null($json)) { + $this->log($payload, $response->getBody()->getContents()); + throw new Exception('Não foi possível analisar a resposta do serviço.'); } if ($json['success'] == false) { + $this->log($payload, $response->getBody()->getContents()); + throw new Exception($json['error'] ?? $json['message']); } diff --git a/ieducar/modules/Api/Views/DiarioController.php b/ieducar/modules/Api/Views/DiarioController.php index d0f1e16fbb..fea34e677d 100644 --- a/ieducar/modules/Api/Views/DiarioController.php +++ b/ieducar/modules/Api/Views/DiarioController.php @@ -231,7 +231,12 @@ protected function postNotas() $valorNota = $serviceBoletim->calculateStageScore($etapa, $notaOriginal, $notaRecuperacao); - if ($etapa == 'Rc' && $notaOriginal > $regra->notaMaximaExameFinal) { + $notaValidacao = $notaOriginal; + if (is_numeric($valorNota)) { + $notaValidacao = $valorNota; + } + + if ($etapa == 'Rc' && $notaValidacao > $regra->notaMaximaExameFinal) { $this->messenger->append("A nota {$valorNota} está acima da configurada para nota máxima para exame que é {$regra->notaMaximaExameFinal}.", 'error'); $this->appendResponse('error', [ 'code' => Error::EXAM_SCORE_GREATER_THAN_MAX_ALLOWED, @@ -241,7 +246,7 @@ protected function postNotas() return false; } - if ($etapa != 'Rc' && $notaOriginal > $regra->notaMaximaGeral) { + if ($etapa != 'Rc' && $notaValidacao > $regra->notaMaximaGeral) { $this->messenger->append("A nota {$valorNota} está acima da configurada para nota máxima geral que é {$regra->notaMaximaGeral}.", 'error'); $this->appendResponse('error', [ 'code' => Error::SCORE_GREATER_THAN_MAX_ALLOWED, @@ -251,7 +256,7 @@ protected function postNotas() return false; } - if ($notaOriginal < $regra->notaMinimaGeral) { + if ($notaValidacao < $regra->notaMinimaGeral) { $this->messenger->append("A nota {$valorNota} está abaixo da configurada para nota mínima geral que é {$regra->notaMinimaGeral}.", 'error'); $this->appendResponse('error', [ 'code' => Error::SCORE_LESSER_THAN_MIN_ALLOWED, diff --git a/packages/.gitignore b/packages/.gitignore new file mode 100644 index 0000000000..c96a04f008 --- /dev/null +++ b/packages/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore \ No newline at end of file