File manager - Edit - /var/www/html/portal/app/Console/Commands/EmpresaTurismoCadasturAlertasCommand.php
Back
<?php namespace App\Console\Commands; use App\Http\Resources\TurisAngra\EmpresasDeTurismo\EmpresaTurismoResource; use App\Mail\EmpresaTurismoCadasturAlertaEmpresaMail; use App\Mail\EmpresaTurismoCadasturAlertaTurisAngraMail; use App\Models\TurisAngra\EmpresasDeTurismo\EmpresaTurismo; use Illuminate\Console\Command; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; class EmpresaTurismoCadasturAlertasCommand extends Command { protected $signature = 'empresas-turismo:cadastur-alertas'; protected $description = 'Envia alertas automáticos de vencimento CADASTUR por e-mail'; public function handle(): int { $enviados = 0; $destinatariosTurisangra = config('empresas_turismo.alertas_email_turisangra', []); if ($destinatariosTurisangra === []) { $this->warn(__('Nenhum destinatário TurisAngra configurado (EMPRESAS_TURISMO_ALERTAS_EMAIL).')); } EmpresaTurismo::query() ->where('status', 'ATIVADO') ->whereNotNull('cadastur_vencimento') ->with('companhia') ->orderBy('created_at') ->chunkById(50, function ($empresasTurismo) use (&$enviados) { foreach ($empresasTurismo as $empresaTurismo) { $pendentes = EmpresaTurismoResource::emailsCadasturPendentesEnvio($empresaTurismo); if ($pendentes->isEmpty()) { continue; } foreach ($pendentes as $pendente) { try { $mail = $pendente['tipo'] === EmpresaTurismoResource::TIPO_CADASTUR_VENCIMENTO_30_DIAS_EMPRESA ? new EmpresaTurismoCadasturAlertaEmpresaMail($empresaTurismo, $pendente['mensagem']) : new EmpresaTurismoCadasturAlertaTurisAngraMail($empresaTurismo, $pendente['mensagem']); Mail::to($pendente['email'])->send($mail); EmpresaTurismoResource::registrarCadasturAlertaEnviado( $empresaTurismo, $pendente['tipo'], $pendente['data_referencia'] ); $enviados++; } catch (\Throwable $exception) { Log::error('Falha ao enviar alerta de vencimento CADASTUR', [ 'empresa_turismo_id' => $empresaTurismo->id, 'tipo' => $pendente['tipo'], 'erro' => $exception->getMessage(), ]); $this->error(__('Falha na empresa :id (:tipo): :erro', [ 'id' => $empresaTurismo->id, 'tipo' => $pendente['tipo'], 'erro' => $exception->getMessage(), ])); } } } }); $this->info(__('E-mails de alerta CADASTUR enviados: :total.', ['total' => $enviados])); return self::SUCCESS; } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.06 |
proxy
|
phpinfo
|
Settings