You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.2 KiB
PHP

<?php
namespace App\Console;
use App\Models\Invoice;
use App\Models\Payment;
use Illuminate\Console\Command;
class PaymentCleaner extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'payment:clean';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Clean Old and Failed Payments';
public function handle()
{
$date =now()->subDays(7)->endOfDay()->toDateTimeString();
Payment::whereType('ONLINE')->whereStatus('PENDING')->where('created_at','<',$date)->delete();
Payment::whereType('ONLINE')->whereStatus(Payment::FAIL)->where('created_at','<',$date)->delete();
Payment::whereType('ONLINE')->whereStatus(Payment::CANCEL)->where('created_at','<',$date)->delete();
Invoice::whereStatus(Invoice::FAILED)->where('created_at','<',$date)->delete();
Invoice::whereStatus(Invoice::CANCELED)->where('created_at','<',$date)->delete();
Invoice::whereStatus(Invoice::PENDING)->where('created_at','<',now()->subDays(14)->endOfDay()->toDateTimeString())->delete();
$this->info('Old Invoice|Payment with Fail Status Cleaned.');
}
}