diff --git a/app/Http/Controllers/ClientPortal/SubscriptionController.php b/app/Http/Controllers/ClientPortal/SubscriptionController.php index 21fa9116c23e..dd7634cfc264 100644 --- a/app/Http/Controllers/ClientPortal/SubscriptionController.php +++ b/app/Http/Controllers/ClientPortal/SubscriptionController.php @@ -13,6 +13,7 @@ namespace App\Http\Controllers\ClientPortal; use App\Http\Controllers\Controller; +use App\Http\Requests\ClientPortal\RecurringInvoices\ShowRecurringInvoiceRequest; use App\Models\RecurringInvoice; use App\Utils\Ninja; use Illuminate\Http\Request; @@ -38,4 +39,20 @@ class SubscriptionController extends Controller return render('subscriptions.index'); } + + /** + * Display the recurring invoice. + * + * @param ShowRecurringInvoiceRequest $request + * @param RecurringInvoice $recurring_invoice + * @return Factory|View + */ + public function show(ShowRecurringInvoiceRequest $request, RecurringInvoice $recurring_invoice) + { + return $this->render('subscriptions.show', [ + 'invoice' => $recurring_invoice->load('invoices','subscription'), + 'subscription' => $recurring_invoice->subscription + ]); + } + } diff --git a/app/Http/Controllers/PaymentWebhookController.php b/app/Http/Controllers/PaymentWebhookController.php index 9f03b3697e09..7cd9152e949c 100644 --- a/app/Http/Controllers/PaymentWebhookController.php +++ b/app/Http/Controllers/PaymentWebhookController.php @@ -18,6 +18,10 @@ class PaymentWebhookController extends Controller { public function __invoke(PaymentWebhookRequest $request) { + //return early if we cannot resolve the company gateway + if(!$request->getCompanyGateway()) + return response()->json([], 200); + return $request ->getCompanyGateway() ->driver() diff --git a/app/Http/Livewire/SubscriptionsTable.php b/app/Http/Livewire/SubscriptionsTable.php new file mode 100644 index 000000000000..3f5071ed1028 --- /dev/null +++ b/app/Http/Livewire/SubscriptionsTable.php @@ -0,0 +1,51 @@ +company->db); + } + + public function render() + { + $query = RecurringInvoice::query() + ->where('client_id', auth()->guard('contact')->user()->client->id) + ->where('company_id', $this->company->id) + ->whereNotNull('subscription_id') + ->where('is_deleted', false) + ->where('status_id', RecurringInvoice::STATUS_ACTIVE) + ->orderBy($this->sort_field, $this->sort_asc ? 'asc' : 'desc') + ->withTrashed() + ->paginate($this->per_page); + + return render('components.livewire.subscriptions-table', [ + 'recurring_invoices' => $query, + ]); + } +} diff --git a/app/Http/Requests/Payments/PaymentWebhookRequest.php b/app/Http/Requests/Payments/PaymentWebhookRequest.php index b3c528c776d9..b55c587ab54a 100644 --- a/app/Http/Requests/Payments/PaymentWebhookRequest.php +++ b/app/Http/Requests/Payments/PaymentWebhookRequest.php @@ -47,7 +47,8 @@ class PaymentWebhookRequest extends Request { MultiDB::findAndSetDbByCompanyKey($this->company_key); - return CompanyGateway::withTrashed()->findOrFail($this->decodePrimaryKey($this->company_gateway_id)); + return CompanyGateway::withTrashed()->find($this->decodePrimaryKey($this->company_gateway_id)); + } /** diff --git a/resources/views/portal/ninja2020/components/livewire/subscriptions-table.blade.php b/resources/views/portal/ninja2020/components/livewire/subscriptions-table.blade.php index cf8af07fcd43..2c14db058ddb 100644 --- a/resources/views/portal/ninja2020/components/livewire/subscriptions-table.blade.php +++ b/resources/views/portal/ninja2020/components/livewire/subscriptions-table.blade.php @@ -1,10 +1,5 @@
- One-time payments -
- -- Subscriptions -
- -
-
- {{ ctrans('texts.invoice') }}
-
+ + {{ ctrans('texts.frequency') }} + + |
+
+ + {{ ctrans('texts.invoice') }} + |
-
- {{ ctrans('texts.total') }}
-
+ + {{ ctrans('texts.amount') }} + + |
+
+ + {{ ctrans('texts.date') }} + |
- - {{ ctrans('texts.date') }} - | |
---|---|---|---|---|---|
- subscription->name }} + | ++ {{ \App\Models\RecurringInvoice::frequencyForKey($recurring_invoice->frequency_id) }} + | ++ - {{ $invoice->number }} + {{ $recurring_invoice->number }} | - {{ App\Utils\Number::formatMoney($invoice->amount, $invoice->client) }} + {{ App\Utils\Number::formatMoney($recurring_invoice->amount, $recurring_invoice->client) }} | - {{ $invoice->translateDate($invoice->date, $invoice->client->date_format(), $invoice->client->locale()) }} + {{ $recurring_invoice->translateDate($recurring_invoice->date, $recurring_invoice->client->date_format(), $recurring_invoice->client->locale()) }} + | ++ + {{ ctrans('texts.view') }} + |
+ {{ ctrans('texts.details_of_recurring_invoice') }}. +
+{{ ctrans('texts.auto_bill_option')}}
++ {{ ctrans('texts.about_cancellation') }} +
+Upgrade or downgrade your current plan.
+ +