diff --git a/app/Http/Controllers/ClientPortalController.php b/app/Http/Controllers/ClientPortalController.php
index cec3026024e7..773b898e6f83 100644
--- a/app/Http/Controllers/ClientPortalController.php
+++ b/app/Http/Controllers/ClientPortalController.php
@@ -1009,4 +1009,42 @@ class ClientPortalController extends BaseController
return redirect($account->enable_client_portal_dashboard ? '/client/dashboard' : '/client/payment_methods')
->withMessage(trans('texts.updated_client_details'));
}
+
+ public function statement() {
+ if (! $contact = $this->getContact()) {
+ return $this->returnError();
+ }
+
+ $client = $contact->client;
+ $account = $contact->account;
+
+ if (! $account->enable_client_portal || ! $account->enable_client_portal_dashboard) {
+ return $this->returnError();
+ }
+
+ $statusId = request()->status_id;
+ $startDate = request()->start_date;
+ $endDate = request()->end_date;
+ $account = auth()->user()->account;
+
+ if (! $startDate) {
+ $startDate = Utils::today(false)->modify('-6 month')->format('Y-m-d');
+ $endDate = Utils::today(false)->format('Y-m-d');
+ }
+
+ if (request()->json) {
+ return dispatch(new GenerateStatementData($client, request()->all()));
+ }
+
+ $data = [
+ 'extends' => 'public.header',
+ 'client' => $client,
+ 'account' => $account,
+ 'startDate' => $startDate,
+ 'endDate' => $endDate,
+ ];
+
+ return view('clients.statement', $data);
+
+ }
}
diff --git a/resources/views/clients/statement.blade.php b/resources/views/clients/statement.blade.php
index 3f7c64d8d920..48c6664b7abd 100644
--- a/resources/views/clients/statement.blade.php
+++ b/resources/views/clients/statement.blade.php
@@ -1,4 +1,4 @@
-@extends('header')
+@extends(! empty($extends) ? $extends : 'header')
@section('head')
@parent
@@ -130,21 +130,23 @@
@section('content')
-
- {!! Button::normal(trans('texts.download'))
- ->withAttributes(['onclick' => 'onDownloadClick()'])
- ->appendIcon(Icon::create('download-alt')) !!}
- {!! Button::primary(trans('texts.view_client'))
- ->asLinkTo($client->present()->url) !!}
-
+ @if (empty($extends))
+
+ {!! Button::normal(trans('texts.download'))
+ ->withAttributes(['onclick' => 'onDownloadClick()'])
+ ->appendIcon(Icon::create('download-alt')) !!}
+ {!! Button::primary(trans('texts.view_client'))
+ ->asLinkTo($client->present()->url) !!}
+
-
{!! Former::inline_open()->onchange('refreshData()') !!}
@@ -189,6 +191,6 @@
{!! Former::close() !!}
- @include('invoices.pdf', ['account' => Auth::user()->account, 'pdfHeight' => 800])
+ @include('invoices.pdf', ['account' => Auth::user()->account])
@stop
diff --git a/resources/views/public/header.blade.php b/resources/views/public/header.blade.php
index deb567355850..175c94789c5c 100644
--- a/resources/views/public/header.blade.php
+++ b/resources/views/public/header.blade.php
@@ -154,7 +154,7 @@
-
+
@yield('content')
diff --git a/routes/web.php b/routes/web.php
index dff5ad24bf05..9e5372a4a0ee 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -28,6 +28,7 @@ Route::group(['middleware' => ['lookup:contact', 'auth:client']], function () {
Route::match(['GET', 'POST'], 'complete/{invitation_key?}/{gateway_type?}', 'OnlinePaymentController@offsitePayment');
Route::get('bank/{routing_number}', 'OnlinePaymentController@getBankInfo');
Route::get('client/payment_methods', 'ClientPortalController@paymentMethods');
+ Route::get('client/statement', 'ClientPortalController@statement');
Route::post('client/payment_methods/verify', 'ClientPortalController@verifyPaymentMethod');
Route::post('client/payment_methods/default', 'ClientPortalController@setDefaultPaymentMethod');
Route::post('client/payment_methods/{source_id}/remove', 'ClientPortalController@removePaymentMethod');