Commit a19c816639e8edb3819d350960d79399cd559145
Exists in
2.9
and in
2 other branches
Merge branch 'main' into community-patch-2022-07-10
Showing
23 changed files
with
503 additions
and
160 deletions
Show diff stats
app/Http/Kernel.php
... | ... | @@ -0,0 +1,31 @@ |
1 | +<?php | |
2 | + | |
3 | +namespace App\Models; | |
4 | + | |
5 | +use App\Menu; | |
6 | +use Illuminate\Database\Eloquent\Factories\HasFactory; | |
7 | +use Illuminate\Database\Eloquent\Model; | |
8 | + | |
9 | +class LegacyMenuUserType extends Model | |
10 | +{ | |
11 | + use HasFactory; | |
12 | + | |
13 | + protected $table = 'pmieducar.menu_tipo_usuario'; | |
14 | + | |
15 | + public $timestamps = false; | |
16 | + public $primaryKey = null; | |
17 | + public $incrementing = false; | |
18 | + | |
19 | + protected $fillable = [ | |
20 | + 'ref_cod_tipo_usuario', | |
21 | + 'menu_id', | |
22 | + 'cadastra', | |
23 | + 'visualiza', | |
24 | + 'exclui', | |
25 | + ]; | |
26 | + | |
27 | + public function menus() | |
28 | + { | |
29 | + return $this->belongsTo(Menu::class); | |
30 | + } | |
31 | +} | ... | ... |
app/Models/LegacyUser.php
... | ... | @@ -2,10 +2,10 @@ |
2 | 2 | |
3 | 3 | namespace App\Models; |
4 | 4 | |
5 | -use Illuminate\Database\Eloquent\Model; | |
5 | +use App\User as DefaultUser; | |
6 | 6 | use Illuminate\Database\Eloquent\Relations\BelongsTo; |
7 | 7 | |
8 | -class LegacyUser extends Model | |
8 | +class LegacyUser extends DefaultUser | |
9 | 9 | { |
10 | 10 | /** |
11 | 11 | * @var string | ... | ... |
app/Repositories/EducacensoRepository.php
... | ... | @@ -556,7 +556,7 @@ SQL; |
556 | 556 | SELECT ARRAY_REMOVE(ARRAY_AGG(educacenso_curso_superior.curso_id), NULL) course_id, |
557 | 557 | ARRAY_REMOVE(ARRAY_AGG(completion_year), NULL) completion_year, |
558 | 558 | ARRAY_REMOVE(ARRAY_AGG(educacenso_ies.ies_id), NULL) college_id, |
559 | - ARRAY_REMOVE(ARRAY_AGG(discipline_id), NULL) discipline_id | |
559 | + ARRAY_REMOVE(ARRAY_AGG(coalesce(discipline_id, 0)), NULL) discipline_id | |
560 | 560 | FROM employee_graduations |
561 | 561 | JOIN modules.educacenso_curso_superior ON educacenso_curso_superior.id = employee_graduations.course_id |
562 | 562 | JOIN modules.educacenso_ies ON educacenso_ies.id = employee_graduations.college_id | ... | ... |
app/User.php
... | ... | @@ -12,6 +12,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsToMany; |
12 | 12 | use Illuminate\Foundation\Auth\User as Authenticatable; |
13 | 13 | use Illuminate\Notifications\Notifiable; |
14 | 14 | use Illuminate\Support\Carbon; |
15 | +use Laravel\Sanctum\HasApiTokens; | |
15 | 16 | |
16 | 17 | /** |
17 | 18 | * @property int $id |
... | ... | @@ -26,6 +27,7 @@ use Illuminate\Support\Carbon; |
26 | 27 | */ |
27 | 28 | class User extends Authenticatable |
28 | 29 | { |
30 | + use HasApiTokens; | |
29 | 31 | use Notifiable; |
30 | 32 | |
31 | 33 | /** | ... | ... |
composer.lock
... | ... | @@ -114,16 +114,16 @@ |
114 | 114 | }, |
115 | 115 | { |
116 | 116 | "name": "aws/aws-sdk-php", |
117 | - "version": "3.229.2", | |
117 | + "version": "3.231.2", | |
118 | 118 | "source": { |
119 | 119 | "type": "git", |
120 | 120 | "url": "https://github.com/aws/aws-sdk-php.git", |
121 | - "reference": "142a872fd7172bf5d067f4e30e4f89593296fc8f" | |
121 | + "reference": "9a7c2a8c4b7f95074749e1a7b575e6b4486bdcab" | |
122 | 122 | }, |
123 | 123 | "dist": { |
124 | 124 | "type": "zip", |
125 | - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/142a872fd7172bf5d067f4e30e4f89593296fc8f", | |
126 | - "reference": "142a872fd7172bf5d067f4e30e4f89593296fc8f", | |
125 | + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/9a7c2a8c4b7f95074749e1a7b575e6b4486bdcab", | |
126 | + "reference": "9a7c2a8c4b7f95074749e1a7b575e6b4486bdcab", | |
127 | 127 | "shasum": "" |
128 | 128 | }, |
129 | 129 | "require": { |
... | ... | @@ -141,6 +141,7 @@ |
141 | 141 | "andrewsville/php-token-reflection": "^1.4", |
142 | 142 | "aws/aws-php-sns-message-validator": "~1.0", |
143 | 143 | "behat/behat": "~3.0", |
144 | + "composer/composer": "^1.10.22", | |
144 | 145 | "doctrine/cache": "~1.4", |
145 | 146 | "ext-dom": "*", |
146 | 147 | "ext-openssl": "*", |
... | ... | @@ -199,9 +200,9 @@ |
199 | 200 | "support": { |
200 | 201 | "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", |
201 | 202 | "issues": "https://github.com/aws/aws-sdk-php/issues", |
202 | - "source": "https://github.com/aws/aws-sdk-php/tree/3.229.2" | |
203 | + "source": "https://github.com/aws/aws-sdk-php/tree/3.231.2" | |
203 | 204 | }, |
204 | - "time": "2022-07-01T18:16:42+00:00" | |
205 | + "time": "2022-07-08T18:16:11+00:00" | |
205 | 206 | }, |
206 | 207 | { |
207 | 208 | "name": "aws/aws-sdk-php-laravel", |
... | ... | @@ -4206,16 +4207,16 @@ |
4206 | 4207 | }, |
4207 | 4208 | { |
4208 | 4209 | "name": "nuwave/lighthouse", |
4209 | - "version": "v5.55.1", | |
4210 | + "version": "v5.57.0", | |
4210 | 4211 | "source": { |
4211 | 4212 | "type": "git", |
4212 | 4213 | "url": "https://github.com/nuwave/lighthouse.git", |
4213 | - "reference": "4676619e2ddc1b516715885bb32142bd0658b6bd" | |
4214 | + "reference": "77fb645de4d58622a515b5ff7575c3df96e768f1" | |
4214 | 4215 | }, |
4215 | 4216 | "dist": { |
4216 | 4217 | "type": "zip", |
4217 | - "url": "https://api.github.com/repos/nuwave/lighthouse/zipball/4676619e2ddc1b516715885bb32142bd0658b6bd", | |
4218 | - "reference": "4676619e2ddc1b516715885bb32142bd0658b6bd", | |
4218 | + "url": "https://api.github.com/repos/nuwave/lighthouse/zipball/77fb645de4d58622a515b5ff7575c3df96e768f1", | |
4219 | + "reference": "77fb645de4d58622a515b5ff7575c3df96e768f1", | |
4219 | 4220 | "shasum": "" |
4220 | 4221 | }, |
4221 | 4222 | "require": { |
... | ... | @@ -4333,7 +4334,7 @@ |
4333 | 4334 | "type": "tidelift" |
4334 | 4335 | } |
4335 | 4336 | ], |
4336 | - "time": "2022-06-22T13:21:15+00:00" | |
4337 | + "time": "2022-07-08T08:50:28+00:00" | |
4337 | 4338 | }, |
4338 | 4339 | { |
4339 | 4340 | "name": "paragonie/constant_time_encoding", |
... | ... | @@ -4454,16 +4455,16 @@ |
4454 | 4455 | }, |
4455 | 4456 | { |
4456 | 4457 | "name": "phpoffice/phpspreadsheet", |
4457 | - "version": "1.23.0", | |
4458 | + "version": "1.24.0", | |
4458 | 4459 | "source": { |
4459 | 4460 | "type": "git", |
4460 | 4461 | "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", |
4461 | - "reference": "21e4cf62699eebf007db28775f7d1554e612ed9e" | |
4462 | + "reference": "ebe8745c92a7cac4514d040758393b5399633b83" | |
4462 | 4463 | }, |
4463 | 4464 | "dist": { |
4464 | 4465 | "type": "zip", |
4465 | - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/21e4cf62699eebf007db28775f7d1554e612ed9e", | |
4466 | - "reference": "21e4cf62699eebf007db28775f7d1554e612ed9e", | |
4466 | + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/ebe8745c92a7cac4514d040758393b5399633b83", | |
4467 | + "reference": "ebe8745c92a7cac4514d040758393b5399633b83", | |
4467 | 4468 | "shasum": "" |
4468 | 4469 | }, |
4469 | 4470 | "require": { |
... | ... | @@ -4491,15 +4492,15 @@ |
4491 | 4492 | }, |
4492 | 4493 | "require-dev": { |
4493 | 4494 | "dealerdirect/phpcodesniffer-composer-installer": "dev-master", |
4494 | - "dompdf/dompdf": "^1.0", | |
4495 | + "dompdf/dompdf": "^1.0 || ^2.0", | |
4495 | 4496 | "friendsofphp/php-cs-fixer": "^3.2", |
4496 | 4497 | "jpgraph/jpgraph": "^4.0", |
4497 | - "mpdf/mpdf": "8.0.17", | |
4498 | + "mpdf/mpdf": "8.1.1", | |
4498 | 4499 | "phpcompatibility/php-compatibility": "^9.3", |
4499 | 4500 | "phpstan/phpstan": "^1.1", |
4500 | 4501 | "phpstan/phpstan-phpunit": "^1.0", |
4501 | 4502 | "phpunit/phpunit": "^8.5 || ^9.0", |
4502 | - "squizlabs/php_codesniffer": "^3.6", | |
4503 | + "squizlabs/php_codesniffer": "^3.7", | |
4503 | 4504 | "tecnickcom/tcpdf": "^6.4" |
4504 | 4505 | }, |
4505 | 4506 | "suggest": { |
... | ... | @@ -4552,9 +4553,9 @@ |
4552 | 4553 | ], |
4553 | 4554 | "support": { |
4554 | 4555 | "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", |
4555 | - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.23.0" | |
4556 | + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.24.0" | |
4556 | 4557 | }, |
4557 | - "time": "2022-04-24T13:53:10+00:00" | |
4558 | + "time": "2022-07-09T13:49:09+00:00" | |
4558 | 4559 | }, |
4559 | 4560 | { |
4560 | 4561 | "name": "phpoption/phpoption", |
... | ... | @@ -5168,16 +5169,16 @@ |
5168 | 5169 | }, |
5169 | 5170 | { |
5170 | 5171 | "name": "psy/psysh", |
5171 | - "version": "v0.11.6", | |
5172 | + "version": "v0.11.7", | |
5172 | 5173 | "source": { |
5173 | 5174 | "type": "git", |
5174 | 5175 | "url": "https://github.com/bobthecow/psysh.git", |
5175 | - "reference": "3f5b5f8aaa979fbd0d1783173f4c82ad529fe621" | |
5176 | + "reference": "77fc7270031fbc28f9a7bea31385da5c4855cb7a" | |
5176 | 5177 | }, |
5177 | 5178 | "dist": { |
5178 | 5179 | "type": "zip", |
5179 | - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3f5b5f8aaa979fbd0d1783173f4c82ad529fe621", | |
5180 | - "reference": "3f5b5f8aaa979fbd0d1783173f4c82ad529fe621", | |
5180 | + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/77fc7270031fbc28f9a7bea31385da5c4855cb7a", | |
5181 | + "reference": "77fc7270031fbc28f9a7bea31385da5c4855cb7a", | |
5181 | 5182 | "shasum": "" |
5182 | 5183 | }, |
5183 | 5184 | "require": { |
... | ... | @@ -5238,9 +5239,9 @@ |
5238 | 5239 | ], |
5239 | 5240 | "support": { |
5240 | 5241 | "issues": "https://github.com/bobthecow/psysh/issues", |
5241 | - "source": "https://github.com/bobthecow/psysh/tree/v0.11.6" | |
5242 | + "source": "https://github.com/bobthecow/psysh/tree/v0.11.7" | |
5242 | 5243 | }, |
5243 | - "time": "2022-07-03T16:40:23+00:00" | |
5244 | + "time": "2022-07-07T13:49:11+00:00" | |
5244 | 5245 | }, |
5245 | 5246 | { |
5246 | 5247 | "name": "ralouphie/getallheaders", | ... | ... |
config/sanctum.php
... | ... | @@ -60,8 +60,8 @@ return [ |
60 | 60 | */ |
61 | 61 | |
62 | 62 | 'middleware' => [ |
63 | - 'verify_csrf_token' => App\Http\Middleware\VerifyCsrfToken::class, | |
64 | - 'encrypt_cookies' => App\Http\Middleware\EncryptCookies::class, | |
63 | + 'verify_csrf_token' => App\Http\Middleware\SkipMiddleware::class, | |
64 | + 'encrypt_cookies' => App\Http\Middleware\SkipMiddleware::class, | |
65 | 65 | ], |
66 | 66 | |
67 | 67 | ]; | ... | ... |
... | ... | @@ -0,0 +1,81 @@ |
1 | +<?php | |
2 | + | |
3 | +namespace Database\Factories; | |
4 | + | |
5 | +use App\Models\LegacyMenuUserType; | |
6 | +use App_Model_NivelTipoUsuario; | |
7 | +use Illuminate\Database\Eloquent\Factories\Factory; | |
8 | + | |
9 | +class LegacyMenuUserTypeFactory extends Factory | |
10 | +{ | |
11 | + protected $model = LegacyMenuUserType::class; | |
12 | + | |
13 | + /** | |
14 | + * Define the model's default state. | |
15 | + * | |
16 | + * @return array<string, mixed> | |
17 | + */ | |
18 | + public function definition() | |
19 | + { | |
20 | + return [ | |
21 | + 'ref_cod_tipo_usuario' => LegacyUserTypeFactory::new()->create( | |
22 | + [ | |
23 | + 'nivel' => $this->faker->randomElement([ | |
24 | + App_Model_NivelTipoUsuario::POLI_INSTITUCIONAL, | |
25 | + App_Model_NivelTipoUsuario::INSTITUCIONAL, | |
26 | + App_Model_NivelTipoUsuario::ESCOLA, | |
27 | + App_Model_NivelTipoUsuario::BIBLIOTECA | |
28 | + ]), | |
29 | + ] | |
30 | + ), | |
31 | + 'menu_id' => MenuFactory::new()->create()->getKey(), | |
32 | + 'cadastra' => 1, | |
33 | + 'visualiza' => 1, | |
34 | + 'exclui' => 1, | |
35 | + ]; | |
36 | + } | |
37 | + | |
38 | + public function admin() | |
39 | + { | |
40 | + return $this->state( | |
41 | + [ | |
42 | + 'ref_cod_tipo_usuario' => LegacyUserTypeFactory::new()->create( | |
43 | + ['nivel' => App_Model_NivelTipoUsuario::POLI_INSTITUCIONAL] | |
44 | + ) | |
45 | + ] | |
46 | + ); | |
47 | + } | |
48 | + | |
49 | + public function institutional() | |
50 | + { | |
51 | + return $this->state( | |
52 | + [ | |
53 | + 'ref_cod_tipo_usuario' => LegacyUserTypeFactory::new()->create( | |
54 | + ['nivel' => App_Model_NivelTipoUsuario::INSTITUCIONAL] | |
55 | + ) | |
56 | + ] | |
57 | + ); | |
58 | + } | |
59 | + | |
60 | + public function school() | |
61 | + { | |
62 | + return $this->state( | |
63 | + [ | |
64 | + 'ref_cod_tipo_usuario' => LegacyUserTypeFactory::new()->create( | |
65 | + ['nivel' => App_Model_NivelTipoUsuario::ESCOLA] | |
66 | + ) | |
67 | + ] | |
68 | + ); | |
69 | + } | |
70 | + | |
71 | + public function library() | |
72 | + { | |
73 | + return $this->state( | |
74 | + [ | |
75 | + 'ref_cod_tipo_usuario' => LegacyUserTypeFactory::new()->create( | |
76 | + ['nivel' => App_Model_NivelTipoUsuario::ESCOLA] | |
77 | + ) | |
78 | + ] | |
79 | + ); | |
80 | + } | |
81 | +} | ... | ... |
database/factories/LegacyUserFactory.php
... | ... | @@ -37,6 +37,17 @@ class LegacyUserFactory extends Factory |
37 | 37 | ]; |
38 | 38 | } |
39 | 39 | |
40 | + public function admin(): static | |
41 | + { | |
42 | + return $this->state([ | |
43 | + 'ref_cod_tipo_usuario' => function () { | |
44 | + return LegacyUserTypeFactory::new()->create([ | |
45 | + 'nivel' => 1, | |
46 | + ]); | |
47 | + }, | |
48 | + ]); | |
49 | + } | |
50 | + | |
40 | 51 | public function unique() |
41 | 52 | { |
42 | 53 | return $this->state(function () { |
... | ... | @@ -53,4 +64,20 @@ class LegacyUserFactory extends Factory |
53 | 64 | ]; |
54 | 65 | }); |
55 | 66 | } |
67 | + | |
68 | + public function withAccess($process, $view = true, $modify = true, $remove = true): static | |
69 | + { | |
70 | + return $this->afterCreating(function (LegacyUser $user) use ($process, $view, $modify, $remove) { | |
71 | + $menu = MenuFactory::new()->create( | |
72 | + ['process' => $process] | |
73 | + ); | |
74 | + LegacyMenuUserTypeFactory::new()->create([ | |
75 | + 'menu_id' => $menu, | |
76 | + 'ref_cod_tipo_usuario' => $user->type, | |
77 | + 'cadastra' => $modify, | |
78 | + 'visualiza' => $view, | |
79 | + 'exclui' => $remove, | |
80 | + ]); | |
81 | + }); | |
82 | + } | |
56 | 83 | } | ... | ... |
... | ... | @@ -0,0 +1,33 @@ |
1 | +<?php | |
2 | + | |
3 | +namespace Database\Factories; | |
4 | + | |
5 | +use App\Menu; | |
6 | +use Illuminate\Database\Eloquent\Factories\Factory; | |
7 | + | |
8 | +class MenuFactory extends Factory | |
9 | +{ | |
10 | + protected $model = Menu::class; | |
11 | + | |
12 | + /** | |
13 | + * Define the model's default state. | |
14 | + * | |
15 | + * @return array<string, mixed> | |
16 | + */ | |
17 | + public function definition() | |
18 | + { | |
19 | + return [ | |
20 | + 'parent_id' => null, | |
21 | + 'title' => $this->faker->colorName(), | |
22 | + 'description' => $this->faker->name(), | |
23 | + 'link' => $this->faker->filePath(), | |
24 | + 'icon' => $this->faker->imageUrl(), | |
25 | + 'order'=> $this->faker->randomDigitNotZero(), | |
26 | + 'type' => $this->faker->randomDigitNotZero(), | |
27 | + 'parent_old' => null, | |
28 | + 'old' => null, | |
29 | + 'process' => $this->faker->randomDigitNotZero(), | |
30 | + 'active' => true, | |
31 | + ]; | |
32 | + } | |
33 | +} | ... | ... |
database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php
0 → 100644
... | ... | @@ -0,0 +1,36 @@ |
1 | +<?php | |
2 | + | |
3 | +use Illuminate\Database\Migrations\Migration; | |
4 | +use Illuminate\Database\Schema\Blueprint; | |
5 | +use Illuminate\Support\Facades\Schema; | |
6 | + | |
7 | +class CreatePersonalAccessTokensTable extends Migration | |
8 | +{ | |
9 | + /** | |
10 | + * Run the migrations. | |
11 | + * | |
12 | + * @return void | |
13 | + */ | |
14 | + public function up() | |
15 | + { | |
16 | + Schema::create('personal_access_tokens', function (Blueprint $table) { | |
17 | + $table->bigIncrements('id'); | |
18 | + $table->morphs('tokenable'); | |
19 | + $table->string('name'); | |
20 | + $table->string('token', 64)->unique(); | |
21 | + $table->text('abilities')->nullable(); | |
22 | + $table->timestamp('last_used_at')->nullable(); | |
23 | + $table->timestamps(); | |
24 | + }); | |
25 | + } | |
26 | + | |
27 | + /** | |
28 | + * Reverse the migrations. | |
29 | + * | |
30 | + * @return void | |
31 | + */ | |
32 | + public function down() | |
33 | + { | |
34 | + Schema::dropIfExists('personal_access_tokens'); | |
35 | + } | |
36 | +} | ... | ... |
... | ... | @@ -0,0 +1,74 @@ |
1 | +<?php | |
2 | + | |
3 | +use App\Models\City; | |
4 | +use App\Models\State; | |
5 | +use Illuminate\Database\Migrations\Migration; | |
6 | + | |
7 | +return new class () extends Migration { | |
8 | + public function up() | |
9 | + { | |
10 | + //Comparação realizada com o seeder original | |
11 | + | |
12 | + //Atualização. Não possuem ibge_code e os nomes estão diferentes. | |
13 | + $this->createOrUpdate('MA', 'Pindaré-Mirim', '2108504', 'Pindare Mirim'); | |
14 | + $this->createOrUpdate('PI', 'Aroeiras do Itaim', '2200954', 'Aroeira do Itaim'); | |
15 | + $this->createOrUpdate('PE', 'Belém do São Francisco', '2601607', 'Belem de Sao Francisco'); | |
16 | + $this->createOrUpdate('PE', 'Lagoa de Itaenga', '2608503', 'Lagoa do Itaenga'); | |
17 | + $this->createOrUpdate('MG', 'Brazópolis', '3108909', 'Brasopolis'); | |
18 | + $this->createOrUpdate('MG', 'Pingo-d\'Água', '3150539', 'Pingo D Agua'); | |
19 | + $this->createOrUpdate('MG', 'Sem-Peixe', '3165560', 'Sem Peixe'); | |
20 | + $this->createOrUpdate('MG', 'Tocos do Moji', '3169059', 'Tocos do Mogi'); | |
21 | + $this->createOrUpdate('RJ', 'Paraty', '3303807', 'Parati'); | |
22 | + $this->createOrUpdate('RJ', 'Trajano de Moraes', '3305901', 'Trajano de Morais'); | |
23 | + $this->createOrUpdate('PR', 'Bela Vista da Caroba', '4102752', 'Bela Vista do Caroba'); | |
24 | + $this->createOrUpdate('MS', 'Batayporã', '5002001', 'Bataipora'); | |
25 | + | |
26 | + //Novos | |
27 | + $this->createOrUpdate('AM', 'Itacoatiara', '1301902'); | |
28 | + $this->createOrUpdate('BA', 'Barro Preto', '2903300'); | |
29 | + $this->createOrUpdate('CE', 'Itapajé', '2306306'); | |
30 | + $this->createOrUpdate('MS', 'Paraíso das Águas', '5006275'); | |
31 | + $this->createOrUpdate('MT', 'Curvelândia', '5103437'); | |
32 | + $this->createOrUpdate('PA', 'Mojuí dos Campos', '1504752'); | |
33 | + $this->createOrUpdate('PA', 'Santa Izabel do Pará', '1506500'); | |
34 | + $this->createOrUpdate('PB', 'Joca Claudino', '2513653'); | |
35 | + $this->createOrUpdate('PB', 'São Domingos', '2513968'); | |
36 | + $this->createOrUpdate('PB', 'Tacima', '2516409'); | |
37 | + $this->createOrUpdate('PE', 'Ilha de Itamaracá', '2607604'); | |
38 | + $this->createOrUpdate('PR', 'Goioerê', '4108601'); | |
39 | + $this->createOrUpdate('RN', 'Serra Caiada', '2410306'); | |
40 | + $this->createOrUpdate('RS', 'Pinto Bandeira', '4314548'); | |
41 | + $this->createOrUpdate('SC', 'Garopaba', '4205704'); | |
42 | + $this->createOrUpdate('SC', 'Pescaria Brava', '4212650'); | |
43 | + $this->createOrUpdate('SC', 'Balneário Rincão', '4220000'); | |
44 | + $this->createOrUpdate('SP', 'Embu das Artes', '3515004'); | |
45 | + $this->createOrUpdate('TO', 'Couto Magalhães', '1706001'); | |
46 | + $this->createOrUpdate('TO', 'São Valério', '1720499'); | |
47 | + } | |
48 | + | |
49 | + public function createOrUpdate($state_abbreviation, $name, $ibge_code, $old_name = null) | |
50 | + { | |
51 | + //verifica se o codigo ibge já existe | |
52 | + if (City::where('ibge_code', $ibge_code)->exists()) { | |
53 | + return; | |
54 | + } | |
55 | + | |
56 | + //atualiza ibge_code e nome, se a cidade estiver cadastrada sem o ibge_code | |
57 | + $city = City::whereRaw('unaccent(name) ILIKE unaccent(?)', $old_name ?? $name)->whereHas('state', fn ($q) => $q->where('abbreviation', $state_abbreviation))->whereNull('ibge_code')->first(); | |
58 | + | |
59 | + if ($city) { | |
60 | + $city->update(['ibge_code' => $ibge_code, 'name' => $name]); | |
61 | + | |
62 | + return; | |
63 | + } | |
64 | + | |
65 | + //cria a cidade | |
66 | + if ($state_id = State::where('abbreviation', $state_abbreviation)->value('id')) { | |
67 | + City::create(compact('state_id', 'name', 'ibge_code')); | |
68 | + } | |
69 | + } | |
70 | + | |
71 | + public function down() | |
72 | + { | |
73 | + } | |
74 | +}; | ... | ... |
database/migrations/2022_07_06_102852_change_orgao_regional_column_type.php
0 → 100755
... | ... | @@ -0,0 +1,31 @@ |
1 | +<?php | |
2 | + | |
3 | +use Illuminate\Database\Migrations\Migration; | |
4 | +use Illuminate\Database\Schema\Blueprint; | |
5 | +use Illuminate\Support\Facades\Schema; | |
6 | + | |
7 | +return new class () extends Migration { | |
8 | + /** | |
9 | + * Run the migrations. | |
10 | + * | |
11 | + * @return void | |
12 | + */ | |
13 | + public function up() | |
14 | + { | |
15 | + Schema::table('pmieducar.instituicao', function (Blueprint $table) { | |
16 | + $table->string('orgao_regional', 5)->change(); | |
17 | + }); | |
18 | + } | |
19 | + | |
20 | + /** | |
21 | + * Reverse the migrations. | |
22 | + * | |
23 | + * @return void | |
24 | + */ | |
25 | + public function down() | |
26 | + { | |
27 | + Schema::table('pmieducar.instituicao', function (Blueprint $table) { | |
28 | + $table->integer('orgao_regional')->change(); | |
29 | + }); | |
30 | + } | |
31 | +}; | ... | ... |
ieducar/intranet/educar_escola_cad.php
... | ... | @@ -8,24 +8,25 @@ use App\Rules\SchoolManagerAtLeastOneChief; |
8 | 8 | use App\Rules\SchoolManagerUniqueIndividuals; |
9 | 9 | use App\Services\SchoolManagerService; |
10 | 10 | use iEducar\Modules\Addressing\LegacyAddressingFields; |
11 | +use iEducar\Modules\Educacenso\Model\AbastecimentoAgua; | |
11 | 12 | use iEducar\Modules\Educacenso\Model\AreasExternas; |
12 | 13 | use iEducar\Modules\Educacenso\Model\Banheiros; |
13 | 14 | use iEducar\Modules\Educacenso\Model\DependenciaAdministrativaEscola; |
14 | 15 | use iEducar\Modules\Educacenso\Model\Dormitorios; |
15 | 16 | use iEducar\Modules\Educacenso\Model\Equipamentos; |
16 | 17 | use iEducar\Modules\Educacenso\Model\EquipamentosAcessoInternet; |
17 | -use iEducar\Modules\Educacenso\Model\EsferaAdministrativa; | |
18 | +use iEducar\Modules\Educacenso\Model\EsgotamentoSanitario; | |
19 | +use iEducar\Modules\Educacenso\Model\FonteEnergia; | |
18 | 20 | use iEducar\Modules\Educacenso\Model\InstrumentosPedagogicos; |
19 | 21 | use iEducar\Modules\Educacenso\Model\Laboratorios; |
20 | 22 | use iEducar\Modules\Educacenso\Model\LocalFuncionamento; |
21 | 23 | use iEducar\Modules\Educacenso\Model\LocalizacaoDiferenciadaEscola; |
22 | 24 | use iEducar\Modules\Educacenso\Model\MantenedoraDaEscolaPrivada; |
23 | -use iEducar\Modules\Educacenso\Model\OrganizacaoEnsino; | |
24 | 25 | use iEducar\Modules\Educacenso\Model\OrgaosColegiados; |
25 | 26 | use iEducar\Modules\Educacenso\Model\OrgaoVinculadoEscola; |
27 | +use iEducar\Modules\Educacenso\Model\PoderPublicoConveniado; | |
26 | 28 | use iEducar\Modules\Educacenso\Model\RecursosAcessibilidade; |
27 | 29 | use iEducar\Modules\Educacenso\Model\RedeLocal; |
28 | -use iEducar\Modules\Educacenso\Model\Regulamentacao; | |
29 | 30 | use iEducar\Modules\Educacenso\Model\ReservaVagasCotas; |
30 | 31 | use iEducar\Modules\Educacenso\Model\SalasAtividades; |
31 | 32 | use iEducar\Modules\Educacenso\Model\SalasFuncionais; |
... | ... | @@ -1542,8 +1543,6 @@ return new class extends clsCadastro { |
1542 | 1543 | $obj_permissoes->permissao_cadastra(561, $this->pessoa_logada, 3, 'educar_escola_lst.php'); |
1543 | 1544 | $this->pesquisaPessoaJuridica = false; |
1544 | 1545 | |
1545 | - $this->preparaDados(); | |
1546 | - | |
1547 | 1546 | if (!$this->validaCnpjMantenedora()) { |
1548 | 1547 | return false; |
1549 | 1548 | } |
... | ... | @@ -1579,14 +1578,6 @@ return new class extends clsCadastro { |
1579 | 1578 | return false; |
1580 | 1579 | } |
1581 | 1580 | |
1582 | - if (!$this->validaCampoEquipamentos()) { | |
1583 | - return false; | |
1584 | - } | |
1585 | - | |
1586 | - if (!$this->validaInstrumentosPedagogicos()) { | |
1587 | - return false; | |
1588 | - } | |
1589 | - | |
1590 | 1581 | if (! isset($this->pessoaj_id_oculto) || |
1591 | 1582 | ! is_int((int)$this->pessoaj_id_oculto) |
1592 | 1583 | ) { |
... | ... | @@ -1594,6 +1585,8 @@ return new class extends clsCadastro { |
1594 | 1585 | return false; |
1595 | 1586 | } |
1596 | 1587 | |
1588 | + $this->preparaDados(); | |
1589 | + | |
1597 | 1590 | $pessoaJuridica = (new clsJuridica((int)$this->pessoaj_id_oculto))->detalhe(); |
1598 | 1591 | |
1599 | 1592 | if ($pessoaJuridica === false) { |
... | ... | @@ -1857,8 +1850,6 @@ return new class extends clsCadastro { |
1857 | 1850 | $obj_permissoes->permissao_cadastra(561, $this->pessoa_logada, 7, 'educar_escola_lst.php'); |
1858 | 1851 | $this->pesquisaPessoaJuridica = false; |
1859 | 1852 | |
1860 | - $this->preparaDados(); | |
1861 | - | |
1862 | 1853 | if (!$this->validaCnpjMantenedora()) { |
1863 | 1854 | return false; |
1864 | 1855 | } |
... | ... | @@ -1894,13 +1885,7 @@ return new class extends clsCadastro { |
1894 | 1885 | return false; |
1895 | 1886 | } |
1896 | 1887 | |
1897 | - if (!$this->validaCampoEquipamentos()) { | |
1898 | - return false; | |
1899 | - } | |
1900 | - | |
1901 | - if (!$this->validaInstrumentosPedagogicos()) { | |
1902 | - return false; | |
1903 | - } | |
1888 | + $this->preparaDados(); | |
1904 | 1889 | |
1905 | 1890 | $this->bloquear_lancamento_diario_anos_letivos_encerrados = is_null($this->bloquear_lancamento_diario_anos_letivos_encerrados) ? 0 : 1; |
1906 | 1891 | $this->utiliza_regra_diferenciada = !is_null($this->utiliza_regra_diferenciada); |
... | ... | @@ -1962,17 +1947,6 @@ return new class extends clsCadastro { |
1962 | 1947 | ); |
1963 | 1948 | } |
1964 | 1949 | |
1965 | - protected function validaCampoEquipamentos() | |
1966 | - { | |
1967 | - $dadosEquipamentos = transformStringFromDBInArray($this->equipamentos); | |
1968 | - | |
1969 | - if (is_array($dadosEquipamentos) && count($dadosEquipamentos) > 1 && in_array(Equipamentos::NENHUM_EQUIPAMENTO_LISTADO, $dadosEquipamentos)) { | |
1970 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Equipamentos da escola</b>, quando a opção: <b>Nenhum dos equipamentos listados</b> estiver selecionada.'; | |
1971 | - return false; | |
1972 | - } | |
1973 | - return true; | |
1974 | - } | |
1975 | - | |
1976 | 1950 | protected function inputTelefone($type, $typeLabel = '') |
1977 | 1951 | { |
1978 | 1952 | if (!$typeLabel) { |
... | ... | @@ -2024,16 +1998,14 @@ return new class extends clsCadastro { |
2024 | 1998 | $this->validaQuantidadeComputadoresAlunos() && |
2025 | 1999 | $this->validaQuantidadeEquipamentosEnsino() && |
2026 | 2000 | $this->validaLinguasIndigenas() && |
2027 | - $this->validaPoderPublicoParceriaConvenio() && | |
2028 | 2001 | $this->validaFormasDeContratacaoEntreAdministracaoPublicaEOutrasInstituicoes() && |
2029 | - $this->validaMatriculasAtendidasPorConvenio() && | |
2030 | - $this->validaLinguasIndigenas() | |
2002 | + $this->validaMatriculasAtendidasPorConvenio() | |
2031 | 2003 | ; |
2032 | 2004 | } |
2033 | 2005 | |
2034 | 2006 | protected function validaFormasDeContratacaoEntreAdministracaoPublicaEOutrasInstituicoes(): bool |
2035 | 2007 | { |
2036 | - $formasDeContratacao = transformStringFromDBInArray($this->formas_contratacao_adm_publica_e_outras_instituicoes); | |
2008 | + $formasDeContratacao = $this->formas_contratacao_adm_publica_e_outras_instituicoes; | |
2037 | 2009 | |
2038 | 2010 | $acceptDependenciaAdministrativa = [DependenciaAdministrativaEscola::FEDERAL, DependenciaAdministrativaEscola::ESTADUAL, DependenciaAdministrativaEscola::MUNICIPAL]; |
2039 | 2011 | $notAcceptFormasDeContratoInDependenciaAdministrativa = [1, 2, 3, 4]; |
... | ... | @@ -2079,20 +2051,6 @@ return new class extends clsCadastro { |
2079 | 2051 | return true; |
2080 | 2052 | } |
2081 | 2053 | |
2082 | - protected function validaInstrumentosPedagogicos() | |
2083 | - { | |
2084 | - $dadosInstrumentosPedagogicos = transformStringFromDBInArray($this->instrumentos_pedagogicos); | |
2085 | - | |
2086 | - if (is_array($dadosInstrumentosPedagogicos) && | |
2087 | - count($dadosInstrumentosPedagogicos) > 1 && | |
2088 | - in_array(InstrumentosPedagogicos::NENHUM_DOS_INSTRUMENTOS_LISTADOS, $dadosInstrumentosPedagogicos)) { | |
2089 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Instrumentos, materiais socioculturais e/ou pedagógicos em uso na escola para o desenvolvimento de atividades de ensino aprendizagem</b>, quando a opção: <b>Nenhum dos instrumentos listados</b> estiver selecionada.'; | |
2090 | - return false; | |
2091 | - } | |
2092 | - | |
2093 | - return true; | |
2094 | - } | |
2095 | - | |
2096 | 2054 | protected function validaOcupacaoPredio() |
2097 | 2055 | { |
2098 | 2056 | if (is_array($this->local_funcionamento) && in_array(LocalFuncionamento::PREDIO_ESCOLAR, $this->local_funcionamento) && empty($this->condicao)) { |
... | ... | @@ -2587,19 +2545,25 @@ return new class extends clsCadastro { |
2587 | 2545 | |
2588 | 2546 | protected function validaOpcoesUnicasMultipleSearch() |
2589 | 2547 | { |
2590 | - if (is_array($this->abastecimento_agua) && in_array(5, $this->abastecimento_agua) && count($this->abastecimento_agua) > 1) { | |
2548 | + if (is_array($this->poder_publico_parceria_convenio) && in_array(PoderPublicoConveniado::NAO_POSSUI, $this->poder_publico_parceria_convenio) && count($this->poder_publico_parceria_convenio) > 1) { | |
2549 | + $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições</b>, quando a opção: <b>Não possui parceria ou convênio</b> estiver selecionada.'; | |
2550 | + | |
2551 | + return false; | |
2552 | + } | |
2553 | + | |
2554 | + if (is_array($this->abastecimento_agua) && in_array(AbastecimentoAgua::INEXISTENTE, $this->abastecimento_agua) && count($this->abastecimento_agua) > 1) { | |
2591 | 2555 | $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Abastecimento de água</b>, quando a opção: <b>Não há abastecimento de água</b> estiver selecionada.'; |
2592 | 2556 | |
2593 | 2557 | return false; |
2594 | 2558 | } |
2595 | 2559 | |
2596 | - if (is_array($this->abastecimento_energia) && in_array(4, $this->abastecimento_energia) && count($this->abastecimento_energia) > 1) { | |
2560 | + if (is_array($this->abastecimento_energia) && in_array(FonteEnergia::INEXISTENTE, $this->abastecimento_energia) && count($this->abastecimento_energia) > 1) { | |
2597 | 2561 | $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Fonte de energia elétrica</b>, quando a opção: <b>Não há energia elétrica</b> estiver selecionada.'; |
2598 | 2562 | |
2599 | 2563 | return false; |
2600 | 2564 | } |
2601 | 2565 | |
2602 | - if (is_array($this->esgoto_sanitario) && in_array(3, $this->esgoto_sanitario) && count($this->esgoto_sanitario) > 1) { | |
2566 | + if (is_array($this->esgoto_sanitario) && in_array(EsgotamentoSanitario::INEXISTENTE, $this->esgoto_sanitario) && count($this->esgoto_sanitario) > 1) { | |
2603 | 2567 | $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Esgotamento sanitário</b>, quando a opção: <b>Não há esgotamento sanitário</b> estiver selecionada.'; |
2604 | 2568 | |
2605 | 2569 | return false; |
... | ... | @@ -2617,37 +2581,14 @@ return new class extends clsCadastro { |
2617 | 2581 | return false; |
2618 | 2582 | } |
2619 | 2583 | |
2620 | - if (is_array($this->uso_internet) && in_array(UsoInternet::NAO_POSSUI, $this->uso_internet) && count($this->uso_internet) > 1) { | |
2621 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Acesso à internet</b>, quando a opção: <b>Não possui acesso à internet</b> estiver selecionada.'; | |
2622 | - | |
2623 | - return false; | |
2624 | - } | |
2625 | - if (is_array($this->abastecimento_agua) && in_array(5, $this->abastecimento_agua) && count($this->abastecimento_agua) > 1) { | |
2626 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Abastecimento de água</b>, quando a opção: <b>Não há abastecimento de água</b> estiver selecionada.'; | |
2627 | - | |
2628 | - return false; | |
2629 | - } | |
2630 | - | |
2631 | - if (is_array($this->abastecimento_energia) && in_array(4, $this->abastecimento_energia) && count($this->abastecimento_energia) > 1) { | |
2632 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Fonte de energia elétrica</b>, quando a opção: <b>Não há energia elétrica</b> estiver selecionada.'; | |
2633 | - | |
2634 | - return false; | |
2635 | - } | |
2636 | - | |
2637 | - if (is_array($this->esgoto_sanitario) && in_array(3, $this->esgoto_sanitario) && count($this->esgoto_sanitario) > 1) { | |
2638 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Esgotamento sanitário</b>, quando a opção: <b>Não há esgotamento sanitário</b> estiver selecionada.'; | |
2639 | - | |
2640 | - return false; | |
2641 | - } | |
2642 | - | |
2643 | - if (is_array($this->tratamento_lixo) && in_array(TratamentoLixo::NAO_FAZ, $this->tratamento_lixo) && count($this->tratamento_lixo) > 1) { | |
2644 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Tratamento do lixo/resíduos que a escola realiza</b>, quando a opção: <b>Não faz tratamento</b> estiver selecionada'; | |
2584 | + if (is_array($this->equipamentos) && in_array(Equipamentos::NENHUM_EQUIPAMENTO_LISTADO, $this->equipamentos) && count($this->equipamentos) > 1) { | |
2585 | + $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Equipamentos da escola</b>, quando a opção: <b>Nenhum dos equipamentos listados</b> estiver selecionada.'; | |
2645 | 2586 | |
2646 | 2587 | return false; |
2647 | 2588 | } |
2648 | 2589 | |
2649 | - if (is_array($this->recursos_acessibilidade) && in_array(RecursosAcessibilidade::NENHUM, $this->recursos_acessibilidade) && count($this->recursos_acessibilidade) > 1) { | |
2650 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Recursos de acessibilidade</b>, quando a opção: <b>Nenhum dos recursos de acessibilidade</b> estiver selecionada.'; | |
2590 | + if (is_array($this->rede_local) && in_array(RedeLocal::NENHUMA, $this->rede_local) && count($this->rede_local) > 1) { | |
2591 | + $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Rede local de interligação de computadores</b>, quando a opção: <b>Não há rede local interligando computadores</b> estiver selecionada.'; | |
2651 | 2592 | |
2652 | 2593 | return false; |
2653 | 2594 | } |
... | ... | @@ -2671,13 +2612,21 @@ return new class extends clsCadastro { |
2671 | 2612 | return false; |
2672 | 2613 | } |
2673 | 2614 | |
2615 | + if (is_array($this->instrumentos_pedagogicos) && in_array(InstrumentosPedagogicos::NENHUM_DOS_INSTRUMENTOS_LISTADOS, $this->instrumentos_pedagogicos) && count($this->instrumentos_pedagogicos) > 1) { | |
2616 | + $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Instrumentos, materiais socioculturais e/ou pedagógicos em uso na escola para o desenvolvimento de atividades de ensino aprendizagem</b>, quando a opção: <b>Nenhum dos instrumentos listados</b> estiver selecionada.'; | |
2617 | + | |
2618 | + return false; | |
2619 | + } | |
2620 | + | |
2674 | 2621 | return true; |
2675 | 2622 | } |
2676 | 2623 | |
2677 | 2624 | protected function validaEquipamentosAcessoInternet() |
2678 | 2625 | { |
2679 | - if (!is_array($this->equipamentos_acesso_internet) && !is_array($this->rede_local)) { | |
2680 | - return true; | |
2626 | + if (is_array($this->equipamentos_acesso_internet) && in_array(2, $this->equipamentos_acesso_internet) && | |
2627 | + is_array($this->rede_local) && !in_array(3, $this->rede_local)) { | |
2628 | + $this->mensagem = "O campo: <b>Equipamentos que os aluno(a)s usam para acessar a internet da escola</b> não deve ser preenchido com a opção: <b>Dispositivos pessoais (computadores portáteis, celulares, tablets, etc.)</b> quando o campo: <b>Rede local de interligação de computadores</b> não possuir a opção: <b>Wireless</b> selecionada."; | |
2629 | + return false; | |
2681 | 2630 | } |
2682 | 2631 | |
2683 | 2632 | return true; |
... | ... | @@ -2709,13 +2658,11 @@ return new class extends clsCadastro { |
2709 | 2658 | |
2710 | 2659 | protected function validaMatriculasAtendidasPorConvenio() |
2711 | 2660 | { |
2712 | - $poderPulicoParceriaConvenio = transformStringFromDBInArray($this->poder_publico_parceria_convenio); | |
2713 | - | |
2714 | - if ($poderPulicoParceriaConvenio === null) { | |
2661 | + if ($this->poder_publico_parceria_convenio === null) { | |
2715 | 2662 | return true; |
2716 | 2663 | } |
2717 | 2664 | |
2718 | - if (!in_array(1, $poderPulicoParceriaConvenio) && !in_array(2, $poderPulicoParceriaConvenio)){ | |
2665 | + if (!in_array(1, $this->poder_publico_parceria_convenio) && !in_array(2, $this->poder_publico_parceria_convenio)){ | |
2719 | 2666 | return true; |
2720 | 2667 | } |
2721 | 2668 | |
... | ... | @@ -2839,23 +2786,6 @@ return new class extends clsCadastro { |
2839 | 2786 | return true; |
2840 | 2787 | } |
2841 | 2788 | |
2842 | - private function validaPoderPublicoParceriaConvenio() | |
2843 | - { | |
2844 | - $values = transformStringFromDBInArray($this->poder_publico_parceria_convenio); | |
2845 | - | |
2846 | - if ($values === null) { | |
2847 | - return true; | |
2848 | - } | |
2849 | - | |
2850 | - if (count($values) > 1 && in_array(3, $values)) { | |
2851 | - $this->mensagem = 'Não é possível informar mais de uma opção no campo: <b>Poder público responsável pela parceria ou convênio entre a Administração Pública e outras instituições</b>, quando a opção: <b>Não possui parceria ou convênio</b> estiver selecionada.'; | |
2852 | - | |
2853 | - return false; | |
2854 | - } | |
2855 | - | |
2856 | - return true; | |
2857 | - } | |
2858 | - | |
2859 | 2789 | public function Formular() |
2860 | 2790 | { |
2861 | 2791 | $this->title = 'Escola'; | ... | ... |
ieducar/intranet/educar_instituicao_cad.php
... | ... | @@ -153,7 +153,7 @@ return new class extends clsCadastro { |
153 | 153 | false |
154 | 154 | ); |
155 | 155 | foreach ($orgaosRegionais as $orgaoRegional) { |
156 | - $opcoes[$orgaoRegional->codigo] = $orgaoRegional->codigo; | |
156 | + $opcoes[strtoupper($orgaoRegional->codigo)] = strtoupper($orgaoRegional->codigo); | |
157 | 157 | } |
158 | 158 | } else { |
159 | 159 | $opcoes = [null => 'Informe uma UF']; | ... | ... |
ieducar/intranet/educar_matricula_det.php
... | ... | @@ -196,15 +196,28 @@ return new class extends clsDetalhe { |
196 | 196 | $existeAtendimentoEspecializado = true; |
197 | 197 | } |
198 | 198 | |
199 | - $nomesTurnos[] = match ((int)$enturmacao['turno_id']) { | |
199 | + if ($enturmacao['turno_id']) { | |
200 | + $nomesTurnos[] = match ((int)$enturmacao['turno_id']) { | |
201 | + clsPmieducarTurma::TURNO_MATUTINO => 'Matutino', | |
202 | + clsPmieducarTurma::TURNO_VESPERTINO => 'Vespertino', | |
203 | + default => null | |
204 | + }; | |
205 | + } | |
206 | + } | |
207 | + $nomesTurmas = implode('<br />', $nomesTurmas); | |
208 | + $datasEnturmacoes = implode('<br />', $datasEnturmacoes); | |
209 | + | |
210 | + if (empty($nomesTurnos)) { | |
211 | + $nomesTurnos = match ((int)$turma['turma_turno_id']) { | |
200 | 212 | clsPmieducarTurma::TURNO_MATUTINO => 'Matutino', |
201 | 213 | clsPmieducarTurma::TURNO_VESPERTINO => 'Vespertino', |
202 | - default => 'Integral', | |
214 | + clsPmieducarTurma::TURNO_NOTURNO => 'Noturno', | |
215 | + clsPmieducarTurma::TURNO_INTEGRAL => 'Integral', | |
216 | + default => null | |
203 | 217 | }; |
218 | + } else { | |
219 | + $nomesTurnos = implode('<br />', $nomesTurnos); | |
204 | 220 | } |
205 | - $nomesTurmas = implode('<br />', $nomesTurmas); | |
206 | - $datasEnturmacoes = implode('<br />', $datasEnturmacoes); | |
207 | - $nomesTurnos = implode('<br />', $nomesTurnos); | |
208 | 221 | |
209 | 222 | if ($nomesTurmas) { |
210 | 223 | $this->addDetalhe(['Turma', $nomesTurmas]); | ... | ... |
ieducar/intranet/educar_matricula_turma_tipo_aee_cad.php
... | ... | @@ -76,7 +76,7 @@ return new class extends clsCadastro { |
76 | 76 | |
77 | 77 | foreach ($arrayTipoAtendimento as $data) { |
78 | 78 | $obj = new clsPmieducarMatriculaTurma($this->cod_matricula, $data['turma'], $this->pessoa_logada); |
79 | - $tipoAtendimento = implode(',', $data['value']); | |
79 | + $tipoAtendimento = $data['value'] ? implode(',', $data['value']) : null; | |
80 | 80 | $obj->sequencial = $data['sequencial']; |
81 | 81 | $obj->tipo_atendimento = $tipoAtendimento; |
82 | 82 | $obj->edita(); | ... | ... |
ieducar/intranet/include/pessoa/clsPessoaTelefone.inc.php
... | ... | @@ -31,8 +31,10 @@ class clsPessoaTelefone |
31 | 31 | // Verifica se ja existe um telefone desse tipo cadastrado para essa pessoa |
32 | 32 | if (!$db->numLinhas()) { |
33 | 33 | // nao tem, cadastra 1 novo |
34 | - if ($this->ddd && $this->fone) { | |
35 | - $db->Consulta("INSERT INTO {$this->schema_cadastro}.{$this->tabela_telefone} (idpes, tipo, ddd, fone,origem_gravacao, data_cad, operacao, idpes_cad) VALUES ('$this->idpes', '$this->tipo', '$this->ddd', '$this->fone','M', NOW(), 'I', '$this->idpes_cad')"); | |
34 | + if (!empty($this->ddd) && !empty($this->fone)) { | |
35 | + $ddd = preg_replace('/\D/', '', $this->ddd); | |
36 | + $fone = preg_replace('/\D/', '', $this->fone); | |
37 | + $db->Consulta("INSERT INTO {$this->schema_cadastro}.{$this->tabela_telefone} (idpes, tipo, ddd, fone,origem_gravacao, data_cad, operacao, idpes_cad) VALUES ('$this->idpes', '$this->tipo', '$ddd', '$fone','M', NOW(), 'I', '$this->idpes_cad')"); | |
36 | 38 | |
37 | 39 | return true; |
38 | 40 | } | ... | ... |
ieducar/modules/Api/Views/DiarioController.php
... | ... | @@ -19,7 +19,7 @@ class DiarioController extends ApiCoreController |
19 | 19 | return App_Model_IedFinder::getComponentesPorMatricula($matriculaId); |
20 | 20 | } |
21 | 21 | |
22 | - protected function getComponentesPorTurma($turmaId) | |
22 | + protected function getComponentesPorTurma($turmaId,$matriculaId = null) | |
23 | 23 | { |
24 | 24 | $objTurma = new clsPmieducarTurma($turmaId); |
25 | 25 | $detTurma = $objTurma->detalhe(); |
... | ... | @@ -27,9 +27,18 @@ class DiarioController extends ApiCoreController |
27 | 27 | $serieId = $detTurma['ref_ref_cod_serie']; |
28 | 28 | $ano = $detTurma['ano']; |
29 | 29 | |
30 | + //obtem a série da matrícula | |
31 | + if ($matriculaId && $detTurma['multiseriada'] == 1) { | |
32 | + $serieId = $this->getSeriePorMatricula($matriculaId) ?: $serieId; | |
33 | + } | |
34 | + | |
30 | 35 | return App_Model_IedFinder::getComponentesTurma($serieId, $escolaId, $turmaId, null, null, null, null, null, $ano); |
31 | 36 | } |
32 | 37 | |
38 | + private function getSeriePorMatricula($matriculaId) { | |
39 | + return \App\Models\LegacyRegistration::where('cod_matricula',$matriculaId)->value('ref_ref_cod_serie'); | |
40 | + } | |
41 | + | |
33 | 42 | protected function validateComponenteCurricular($matriculaId, $componenteCurricularId) |
34 | 43 | { |
35 | 44 | $componentes = $this->getComponentesPorMatricula($matriculaId); |
... | ... | @@ -43,10 +52,9 @@ class DiarioController extends ApiCoreController |
43 | 52 | return $valid; |
44 | 53 | } |
45 | 54 | |
46 | - protected function validateComponenteTurma($turmaId, $componenteCurricularId) | |
55 | + protected function validateComponenteTurma($turmaId, $componenteCurricularId,$matriculaId = null) | |
47 | 56 | { |
48 | - $componentesTurma = $this->getComponentesPorTurma($turmaId); | |
49 | - | |
57 | + $componentesTurma = $this->getComponentesPorTurma($turmaId,$matriculaId); | |
50 | 58 | if ($componentesTurma instanceof CoreExt_Entity) { |
51 | 59 | $componentesTurma = CoreExt_Entity::entityFilterAttr($componentesTurma, 'id', 'id'); |
52 | 60 | } else { |
... | ... | @@ -207,7 +215,7 @@ class DiarioController extends ApiCoreController |
207 | 215 | } |
208 | 216 | |
209 | 217 | foreach ($notaTurmaAluno as $componenteCurricularId => $notaTurmaAlunoDisciplina) { |
210 | - if (!$this->validateComponenteTurma($turmaId, $componenteCurricularId)) { | |
218 | + if (!$this->validateComponenteTurma($turmaId, $componenteCurricularId,$matriculaId)) { | |
211 | 219 | continue; |
212 | 220 | } |
213 | 221 | |
... | ... | @@ -287,6 +295,7 @@ class DiarioController extends ApiCoreController |
287 | 295 | |
288 | 296 | $this->messenger->append('Notas postadas com sucesso!', 'success'); |
289 | 297 | } |
298 | + | |
290 | 299 | } |
291 | 300 | |
292 | 301 | protected function postRecuperacoes() |
... | ... | @@ -304,7 +313,7 @@ class DiarioController extends ApiCoreController |
304 | 313 | } |
305 | 314 | |
306 | 315 | foreach ($notaTurmaAluno as $componenteCurricularId => $notaTurmaAlunoDisciplina) { |
307 | - if ($this->validateComponenteTurma($turmaId, $componenteCurricularId)) { | |
316 | + if ($this->validateComponenteTurma($turmaId, $componenteCurricularId,$matriculaId)) { | |
308 | 317 | $notaOriginal = $notaTurmaAlunoDisciplina['nota']; |
309 | 318 | |
310 | 319 | if (is_null($notaOriginal)) { |
... | ... | @@ -403,7 +412,7 @@ class DiarioController extends ApiCoreController |
403 | 412 | foreach ($faltaTurmaAluno as $componenteCurricularId => $faltaTurmaAlunoDisciplina) { |
404 | 413 | if ($matriculaId) { |
405 | 414 | if ($this->validateMatricula($matriculaId)) { |
406 | - if ($this->validateComponenteTurma($turmaId, $componenteCurricularId)) { | |
415 | + if ($this->validateComponenteTurma($turmaId, $componenteCurricularId,$matriculaId)) { | |
407 | 416 | $valor = $faltaTurmaAlunoDisciplina['valor']; |
408 | 417 | |
409 | 418 | $falta = new Avaliacao_Model_FaltaComponente([ |
... | ... | @@ -478,7 +487,7 @@ class DiarioController extends ApiCoreController |
478 | 487 | } |
479 | 488 | |
480 | 489 | foreach ($parecerTurmaAluno as $componenteCurricularId => $parecerTurmaAlunoComponente) { |
481 | - if ($this->validateComponenteTurma($turmaId, $componenteCurricularId)) { | |
490 | + if ($this->validateComponenteTurma($turmaId, $componenteCurricularId,$matriculaId)) { | |
482 | 491 | |
483 | 492 | $parecerDescritivo = new Avaliacao_Model_ParecerDescritivoComponente([ |
484 | 493 | 'componenteCurricular' => $componenteCurricularId, | ... | ... |
ieducar/modules/HistoricoEscolar/Views/ProcessamentoApiController.php
... | ... | @@ -785,6 +785,7 @@ class ProcessamentoApiController extends Core_Controller_Page_EditController |
785 | 785 | } |
786 | 786 | |
787 | 787 | $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota_conceitual_numerica'] ??= 0 ; |
788 | + $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['falta'] ??= 0; | |
788 | 789 | |
789 | 790 | $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota'] += $nota; |
790 | 791 | $arrayAreaConhecimento[$componenteCurricular->area_conhecimento->id]['nota_conceitual_numerica'] += is_numeric($notaConceitualNumerica) ? $notaConceitualNumerica : 0; |
... | ... | @@ -906,7 +907,7 @@ class ProcessamentoApiController extends Core_Controller_Page_EditController |
906 | 907 | $falta = $this->getRequest()->faltas; |
907 | 908 | } |
908 | 909 | |
909 | - return $falta; | |
910 | + return empty($falta) ? 0 : $falta; | |
910 | 911 | } |
911 | 912 | |
912 | 913 | protected function getDadosMatricula($matriculaId) | ... | ... |
resources/views/enrollments/batch/cancel.blade.php
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | </table> |
52 | 52 | </form> |
53 | 53 | |
54 | - <form action="{{ Asset::get('/cancelar-enturmacao-em-lote/' . $schoolClass->id) }}" method="post" class="open-sans"> | |
54 | + <form id="enrollments-unenroll" action="{{ Asset::get('/cancelar-enturmacao-em-lote/' . $schoolClass->id) }}" method="post" class="open-sans"> | |
55 | 55 | |
56 | 56 | <h3>Alunos matriculados e enturmados</h3> |
57 | 57 | |
... | ... | @@ -102,9 +102,9 @@ |
102 | 102 | {{ $success->first($enrollment->id) ? 'disabled' : '' }} /> |
103 | 103 | </label> |
104 | 104 | </td> |
105 | - <td>{{ $enrollment->registration->cod_matricula }}</td> | |
106 | - <td>{{ $enrollment->student_name }}</td> | |
107 | - <td>{{ $enrollment->data_enturmacao->format('d/m/Y') }}</td> | |
105 | + <td>{{ $enrollment?->registration?->cod_matricula }}</td> | |
106 | + <td>{{ $enrollment?->student_name }}</td> | |
107 | + <td>{{ $enrollment?->data_enturmacao->format('d/m/Y') }}</td> | |
108 | 108 | <td> |
109 | 109 | {{ $success->first($enrollment->id) }} |
110 | 110 | {{ $fails->first($enrollment->id) }} |
... | ... | @@ -137,6 +137,7 @@ |
137 | 137 | </form> |
138 | 138 | |
139 | 139 | <script> |
140 | + | |
140 | 141 | $j(document).ready(function () { |
141 | 142 | $j('.enrollment-check-master').change(function () { |
142 | 143 | if ($j(this).prop('checked')) { |
... | ... | @@ -155,6 +156,49 @@ |
155 | 156 | $j('.enrollment-check').prop('checked', true); |
156 | 157 | }); |
157 | 158 | }); |
159 | + | |
160 | + $j('#enrollments-unenroll').submit(function (e) { | |
161 | + e.preventDefault(); | |
162 | + makeDialog({ | |
163 | + title: 'Atenção!', | |
164 | + content: 'O processo de desenturmação e enturmação manual ' + | |
165 | + 'não será considerado como remanejamento ou troca de turma, ' + | |
166 | + 'para isso você deve selecionar a turma nova e remanejar. Deseja continuar?', | |
167 | + maxWidth: 860, | |
168 | + width: 860, | |
169 | + modal: true, | |
170 | + buttons: [{ | |
171 | + text: 'OK', | |
172 | + click: function () { | |
173 | + e.currentTarget.submit(); | |
174 | + $j(this).dialog('destroy'); | |
175 | + } | |
176 | + },{ | |
177 | + text: 'Cancelar', | |
178 | + click: function () { | |
179 | + $j(this).dialog('destroy'); | |
180 | + } | |
181 | + }] | |
182 | + }); | |
183 | + }); | |
184 | + | |
185 | + function makeDialog (params) { | |
186 | + let container = $j('#dialog-container'); | |
187 | + if (container.length < 1) { | |
188 | + $j('body').append('<div id="dialog-container" style="width: 400px;"></div>'); | |
189 | + container = $j('#dialog-container'); | |
190 | + } | |
191 | + | |
192 | + if (container.hasClass('ui-dialog-content')) { | |
193 | + container.dialog('destroy'); | |
194 | + } | |
195 | + | |
196 | + container.empty(); | |
197 | + container.html(params.content); | |
198 | + delete params['content']; | |
199 | + | |
200 | + container.dialog(params); | |
201 | + } | |
158 | 202 | </script> |
159 | 203 | |
160 | 204 | @endsection | ... | ... |
src/Modules/Educacenso/Data/Registro30.php
... | ... | @@ -61,19 +61,32 @@ class Registro30 extends AbstractRegistro |
61 | 61 | $this->modelArray[$data->codigoPessoa] = $this->model; |
62 | 62 | } |
63 | 63 | |
64 | - $unconsideredKnowledgeArea = [32, 99]; | |
65 | - | |
66 | 64 | foreach ($this->modelArray as &$record) { |
67 | 65 | $record->formacaoAnoConclusao = Portabilis_Utils_Database::pgArrayToArray($record->formacaoAnoConclusao); |
68 | 66 | $record->formacaoCurso = Portabilis_Utils_Database::pgArrayToArray($record->formacaoCurso); |
69 | 67 | $record->formacaoInstituicao = Portabilis_Utils_Database::pgArrayToArray($record->formacaoInstituicao); |
70 | 68 | $record->formacaoComponenteCurricular = Portabilis_Utils_Database::pgArrayToArray($record->formacaoComponenteCurricular); |
71 | - $record->formacaoComponenteCurricular = array_diff($record->formacaoComponenteCurricular, $unconsideredKnowledgeArea); | |
69 | + $record->formacaoComponenteCurricular = $this->validaFormacaoComponenteCurricular($record->formacaoComponenteCurricular); | |
72 | 70 | } |
73 | 71 | |
74 | 72 | return $this->modelArray; |
75 | 73 | } |
76 | 74 | |
75 | + private function validaFormacaoComponenteCurricular($componentes) | |
76 | + { | |
77 | + $anulaProximoComponente = false; | |
78 | + $componentesDesconsiderados = [32, 99]; | |
79 | + | |
80 | + foreach ($componentes as $key => $componente) { | |
81 | + if ($anulaProximoComponente === true || (int) $componente === 0 || in_array($componente, $componentesDesconsiderados)) { | |
82 | + $anulaProximoComponente = true; | |
83 | + $componentes[$key] = null; | |
84 | + } | |
85 | + } | |
86 | + | |
87 | + return $componentes; | |
88 | + } | |
89 | + | |
77 | 90 | /** |
78 | 91 | * @param ItemOfRegistro30[] $array |
79 | 92 | * @param string $type | ... | ... |