forked from a1gard/xshop
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
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.');
|
|
}
|
|
|
|
}
|