31 lines
1.0 KiB
PHP
31 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Administration;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\BillingOrder;
|
|
use App\Services\BillingService;
|
|
use Illuminate\Http\RedirectResponse;
|
|
use Illuminate\Http\Request;
|
|
use Inertia\Inertia;
|
|
use Inertia\Response;
|
|
|
|
class BillingOrderController extends Controller
|
|
{
|
|
public function index(Request $request): Response
|
|
{
|
|
abort_unless($request->user()->is_platform_admin, 403);
|
|
|
|
return Inertia::render('administration/billing/index', ['orders' => BillingOrder::withoutGlobalScope('tenant')->with('tenant:id,name')->latest()->paginate(30)]);
|
|
}
|
|
|
|
public function approve(Request $request, BillingOrder $order, BillingService $billing): RedirectResponse
|
|
{
|
|
abort_unless($request->user()->is_platform_admin, 403);
|
|
abort_unless($order->status === 'pending', 422, 'Order sudah diproses.');
|
|
$billing->activate($order, $request->user()->id);
|
|
|
|
return back()->with('success', 'Pembayaran dikonfirmasi dan lisensi diperpanjang satu bulan.');
|
|
}
|
|
}
|