Tâches planifiées
Les tâches planifiées permettent de définir les actions récurrentes comme la livraison de service, expiration ou la notification des clients.
Tâches existantes
Voici une description des tâches planifiées par défaut dans CLIENTXCMS .
Services delivery
La commande php artisan services:delivery permet de livrer les services, renouveller les services en attente de renouvellement.
Récurrence : Toutes les minutes
Services expire
La commande php artisan services:expire permet de vérifier les services qui sont expirés ou doivent être suspendus et les désactiver.
Récurrence : Toutes les minutes
Services renewals
La commande php artisan services:renewals permet de générer les factures de renouvellement des services.
Récurrence : Tout les 3 heures
Services notifications
La commande php artisan services:notify-expiration permet de notifier par e-mail les clients des services qui vont expirer prochainement.
Récurrence : Tout les jours à 9h
Helpdesk close
La commande php artisan clientxcms:helpdesk-close permet de fermer les tickets qui sont en attente de réponse depuis X jours.
Récurrence : Tout les jours à 12h
Invoice delete
La commande php artisan clientxcms:invoice-delete permet de supprimer ou annuler les factures qui sont en attente de paiement depuis X jours.
Récurrence : Tout les jours à minuit
Purge metadata
La commande php artisan clientxcms:purge-metadata permet de supprimer les métadonnées qui sont plus utilisés.
Récurrence : Tout les lundi à minuit
Créer une tâche planifiée
Pour créer une tâche planifiée, vous devez créer une commande artisan et ajouter la commande dans le fichier ServiceProvider. Pour créer la commande artisan veuillez créer une classe qui etends Command dans votre dossier extension.
Par exemple :
<?php
// addons/fund/src/Console/Commands/MyCommand.php
use Illuminate\Console\Command;
class MyCommand extends Command
{
protected $signature = 'my:command';
protected $description = 'My command description';
public function handle()
{
// Your code here
}
}
Puis ajoutez la commande dans le fichier ServiceProvider de votre extension.
<?php
// addons/fund/src/Providers/FundServiceProvider.php
use \App\Extensions\BaseAddonServiceProvider;
use Illuminate\Support\ServiceProvider;
class FundServiceProvider extends BaseAddonServiceProvider
{
public function boot()
{
if ($this->app->runningInConsole()) {
$this->commands([
\Addons\Fund\Console\Commands\MyCommand::class,
]);
}
$this->registerSchedule();
}
public function schedule(Schedule $schedule)
{
if ($this->app->runningInConsole()) {
$schedule->command('my:command')->everyMinute()
->name('my_command')
->sendOutputTo(storage_path('logs/my_command.log'));
}
}
}