feat: Implement payment proof upload for orders, add payment method selection API, and seed bank transfer payment options.
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\OrderItem;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class UpdateExpiryDate extends Command
|
||||
{
|
||||
protected $signature = 'app:update-expiry-date {--dry-run : Show what would be updated without making changes}';
|
||||
|
||||
protected $description = 'Update expiry_date for existing order items based on created_at + months';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
$dryRun = $this->option('dry-run');
|
||||
|
||||
$query = OrderItem::whereNull('expiry_date')
|
||||
->whereNotNull('months')
|
||||
->where('months', '>', 0);
|
||||
|
||||
$count = $query->count();
|
||||
|
||||
if ($count === 0) {
|
||||
$this->info('No order items need to be updated.');
|
||||
return 0;
|
||||
}
|
||||
|
||||
$this->info("Found {$count} order items to update.");
|
||||
|
||||
if ($dryRun) {
|
||||
$this->warn('DRY RUN - No changes will be made.');
|
||||
$query->chunk(100, function ($items) {
|
||||
foreach ($items as $item) {
|
||||
$expiryDate = Carbon::parse($item->created_at)->addMonths($item->months);
|
||||
$this->line("Order #{$item->order_id}, Item #{$item->id}: would set expiry_date to {$expiryDate}");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$updated = 0;
|
||||
$query->chunk(100, function ($items) use (&$updated) {
|
||||
foreach ($items as $item) {
|
||||
$expiryDate = Carbon::parse($item->created_at)->addMonths($item->months);
|
||||
$item->update(['expiry_date' => $expiryDate]);
|
||||
$updated++;
|
||||
}
|
||||
});
|
||||
$this->info("Updated {$updated} order items.");
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user