File manager - Edit - /var/www/html/portalHomolog/app/Console/Commands/LimparStructurePrefeitoUsuariosCommand.php
Back
<?php namespace App\Console\Commands; use App\Models\Structure; use App\Models\User; use Illuminate\Console\Command; class LimparStructurePrefeitoUsuariosCommand extends Command { protected $signature = 'conta-angra:limpar-structure-prefeito {--dry-run : Apenas exibe quantos registros seriam alterados, sem persistir} {--todos : Inclui todos os usuários vinculados ao gabinete do prefeito, não apenas cidadãos da Conta Angra}'; protected $description = 'Remove a estrutura "Prefeito de Angra dos Reis" dos usuários cidadãos (structure_id = null). Nenhuma outra alteração é feita.'; public function handle(): int { $structure = Structure::query() ->where('name', 'Prefeito de Angra dos Reis') ->first(); if (!$structure) { $this->error(__('Estrutura "Prefeito de Angra dos Reis" não encontrada no banco.')); return self::FAILURE; } $query = User::query()->where('structure_id', $structure->id); if (!$this->option('todos')) { $query->where(function ($q) { $q->whereNull('matriculation')->orWhere('matriculation', ''); })->whereHas('permissoes', function ($q) { $q->where('permissao', 'GERENCIADOR_DE_CONTA_ANGRA'); }); } $total = $query->count(); if ($total === 0) { $this->info(__('Nenhum usuário vinculado à estrutura ":name".', ['name' => $structure->name])); return self::SUCCESS; } $this->line(__('Estrutura: :name (:id)', [ 'name' => $structure->name, 'id' => $structure->id, ])); $this->line(__('Usuários encontrados: :total', ['total' => $total])); if ($this->option('dry-run')) { $this->warn(__('Modo dry-run: nenhum registro foi alterado.')); return self::SUCCESS; } if (!$this->confirm(__('Deseja definir structure_id = null para :total usuário(s)?', ['total' => $total]), false)) { $this->warn(__('Operação cancelada.')); return self::SUCCESS; } $alterados = (clone $query)->update(['structure_id' => null]); $this->info(__(':count usuário(s) atualizado(s). Apenas structure_id foi alterado.', ['count' => $alterados])); return self::SUCCESS; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings