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
|
class HandleExpiredMembersDolibarr extends Command
|
||||||
{
|
{
|
||||||
protected $signature = 'members:cleanup-expired {--dry-run}';
|
protected $signature = 'members:cleanup-expired
|
||||||
protected $description = 'Résilie les adhérents expirés et désactive leurs services';
|
{email? : Adresse email d\'un adhérent à traiter uniquement}
|
||||||
|
{--dry-run}';
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
protected DolibarrService $dolibarr,
|
protected DolibarrService $dolibarr,
|
||||||
@@ -29,6 +30,7 @@ class HandleExpiredMembersDolibarr extends Command
|
|||||||
public function handle(): int
|
public function handle(): int
|
||||||
{
|
{
|
||||||
$dryRun = $this->option('dry-run');
|
$dryRun = $this->option('dry-run');
|
||||||
|
$emailFilter = $this->argument('email');
|
||||||
|
|
||||||
$this->info(
|
$this->info(
|
||||||
$dryRun
|
$dryRun
|
||||||
@@ -36,6 +38,10 @@ class HandleExpiredMembersDolibarr extends Command
|
|||||||
: 'Mode réel activé'
|
: 'Mode réel activé'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ($emailFilter) {
|
||||||
|
$this->info("Mode utilisateur unique : {$emailFilter}");
|
||||||
|
}
|
||||||
|
|
||||||
$this->info('Récupération des adhérents Dolibarr');
|
$this->info('Récupération des adhérents Dolibarr');
|
||||||
|
|
||||||
$members = collect($this->dolibarr->getAllMembers());
|
$members = collect($this->dolibarr->getAllMembers());
|
||||||
@@ -53,6 +59,19 @@ class HandleExpiredMembersDolibarr extends Command
|
|||||||
return \Carbon\Carbon::parse($member['datefin'])->lt($today);
|
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)");
|
$this->info("{$expiredMembers->count()} adhérent(s) expiré(s)");
|
||||||
|
|
||||||
foreach ($expiredMembers as $member) {
|
foreach ($expiredMembers as $member) {
|
||||||
|
|||||||
Reference in New Issue
Block a user