feat(Handle Expired Unique Member)
This commit is contained in:
@@ -12,8 +12,9 @@ use Symfony\Component\Console\Command\Command as CommandAlias;
|
||||
|
||||
class HandleExpiredMembersDolibarr extends Command
|
||||
{
|
||||
protected $signature = 'members:cleanup-expired {--dry-run}';
|
||||
protected $description = 'Résilie les adhérents expirés et désactive leurs services';
|
||||
protected $signature = 'members:cleanup-expired
|
||||
{email? : Adresse email d\'un adhérent à traiter uniquement}
|
||||
{--dry-run}';
|
||||
|
||||
public function __construct(
|
||||
protected DolibarrService $dolibarr,
|
||||
@@ -29,6 +30,7 @@ class HandleExpiredMembersDolibarr extends Command
|
||||
public function handle(): int
|
||||
{
|
||||
$dryRun = $this->option('dry-run');
|
||||
$emailFilter = $this->argument('email');
|
||||
|
||||
$this->info(
|
||||
$dryRun
|
||||
@@ -36,6 +38,10 @@ class HandleExpiredMembersDolibarr extends Command
|
||||
: 'Mode réel activé'
|
||||
);
|
||||
|
||||
if ($emailFilter) {
|
||||
$this->info("Mode utilisateur unique : {$emailFilter}");
|
||||
}
|
||||
|
||||
$this->info('Récupération des adhérents Dolibarr');
|
||||
|
||||
$members = collect($this->dolibarr->getAllMembers());
|
||||
@@ -53,6 +59,19 @@ class HandleExpiredMembersDolibarr extends Command
|
||||
return \Carbon\Carbon::parse($member['datefin'])->lt($today);
|
||||
});
|
||||
|
||||
if ($emailFilter) {
|
||||
$expiredMembers = $expiredMembers->filter(function ($member) use ($emailFilter) {
|
||||
$email = $this->extractRetzienEmail($member['email'] ?? null);
|
||||
return $email === $emailFilter;
|
||||
});
|
||||
|
||||
if ($expiredMembers->isEmpty()) {
|
||||
$this->warn("Aucun adhérent expiré trouvé pour {$emailFilter}");
|
||||
return CommandAlias::SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$this->info("{$expiredMembers->count()} adhérent(s) expiré(s)");
|
||||
|
||||
foreach ($expiredMembers as $member) {
|
||||
|
||||
Reference in New Issue
Block a user