Files
mtdb_movie/common/Billing/Invoices/InvoiceController.php
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

65 lines
1.7 KiB
PHP
Executable File

<?php
namespace Common\Billing\Invoices;
use Common\Billing\Subscription;
use Common\Core\AppUrl;
use Common\Core\BaseController;
use Common\Settings\Settings;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class InvoiceController extends BaseController
{
public function __construct(
protected Request $request,
protected Invoice $invoice,
) {
}
public function index(): Response|JsonResponse
{
$userId = $this->request->get('userId');
$this->authorize('index', [Invoice::class, $userId]);
if ($userId) {
$subscription = Subscription::where(
'user_id',
$userId,
)->firstOrFail();
$invoices = $subscription->invoices()->with(
'subscription.product',
'subscription.price',
)->get();
} else {
$invoices = $this->invoice
->with('subscription.product', 'subscription.price')
->limit(50)
->get();
}
return $this->success(['invoices' => $invoices]);
}
public function show(string $uuid)
{
$invoice = $this->invoice
->where('uuid', $uuid)
->with(
'subscription.product',
'subscription.user',
'subscription.price',
)
->firstOrFail();
$this->authorize('show', $invoice);
return view('common::billing/invoice')
->with('invoice', $invoice)
->with('htmlBaseUri', app(AppUrl::class)->htmlBaseUri)
->with('user', $invoice->subscription->user)
->with('settings', app(Settings::class));
}
}