From 2d0effda63c516d2753f6521dea868f0473d4e42 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 5 Dec 2016 20:35:01 +0200 Subject: [PATCH] Support exporting expenses --- app/Http/Controllers/ExportController.php | 8 +++++ app/Ninja/Presenters/ExpensePresenter.php | 10 +++++++ .../views/accounts/import_export.blade.php | 9 ++++-- resources/views/export.blade.php | 5 ++++ resources/views/export/expenses.blade.php | 29 +++++++++++++++++++ 5 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 resources/views/export/expenses.blade.php diff --git a/app/Http/Controllers/ExportController.php b/app/Http/Controllers/ExportController.php index 3f840bb5bb62..5df871824be4 100644 --- a/app/Http/Controllers/ExportController.php +++ b/app/Http/Controllers/ExportController.php @@ -13,6 +13,7 @@ use App\Models\Credit; use App\Models\Task; use App\Models\Invoice; use App\Models\Payment; +use App\Models\Expense; use App\Models\Vendor; use App\Models\VendorContact; @@ -212,6 +213,13 @@ class ExportController extends BaseController ->get(); } + if ($request->input('include') === 'all' || $request->input('expenses')) { + $data['expenses'] = Expense::scope() + ->with('user', 'vendor.vendor_contacts', 'client.contacts', 'expense_category') + ->withArchived() + ->get(); + } + if ($request->input('include') === 'all' || $request->input('vendors')) { $data['vendors'] = Vendor::scope() ->with('user', 'vendor_contacts', 'country') diff --git a/app/Ninja/Presenters/ExpensePresenter.php b/app/Ninja/Presenters/ExpensePresenter.php index 4760515720bb..018ca273e76e 100644 --- a/app/Ninja/Presenters/ExpensePresenter.php +++ b/app/Ninja/Presenters/ExpensePresenter.php @@ -24,4 +24,14 @@ class ExpensePresenter extends EntityPresenter return Utils::fromSqlDate($this->entity->expense_date); } + public function amount() + { + return Utils::formatMoney($this->entity->amount, $this->entity->expense_currency_id); + } + + public function category() + { + return $this->entity->expense_category ? $this->entity->expense_category->name : ''; + } + } diff --git a/resources/views/accounts/import_export.blade.php b/resources/views/accounts/import_export.blade.php index 36c8da0e4733..193214d7d333 100644 --- a/resources/views/accounts/import_export.blade.php +++ b/resources/views/accounts/import_export.blade.php @@ -68,17 +68,20 @@
-
+
@include('partials/checkbox', ['field' => 'clients']) @include('partials/checkbox', ['field' => 'contacts']) @include('partials/checkbox', ['field' => 'credits']) @include('partials/checkbox', ['field' => 'tasks']) - @include('partials/checkbox', ['field' => 'invoices'])
-
+
+ @include('partials/checkbox', ['field' => 'invoices']) @include('partials/checkbox', ['field' => 'quotes']) @include('partials/checkbox', ['field' => 'recurring']) @include('partials/checkbox', ['field' => 'payments']) +
+
+ @include('partials/checkbox', ['field' => 'expenses']) @include('partials/checkbox', ['field' => 'vendors']) @include('partials/checkbox', ['field' => 'vendor_contacts'])
diff --git a/resources/views/export.blade.php b/resources/views/export.blade.php index 4d8d224ea633..a0f8c933f016 100644 --- a/resources/views/export.blade.php +++ b/resources/views/export.blade.php @@ -45,6 +45,11 @@ @include('export.payments') @endif + @if (isset($expenses) && $expenses && count($expenses)) + {{ strtoupper(trans('texts.expenses')) }} + @include('export.expenses') + @endif + @if (isset($vendors) && $vendors && count($vendors)) {{ strtoupper(trans('texts.vendors')) }} @include('export.vendors') diff --git a/resources/views/export/expenses.blade.php b/resources/views/export/expenses.blade.php new file mode 100644 index 000000000000..947f2b508f96 --- /dev/null +++ b/resources/views/export/expenses.blade.php @@ -0,0 +1,29 @@ + + {{ trans('texts.vendor') }} + {{ trans('texts.client') }} + @if ($multiUser) + {{ trans('texts.user') }} + @endif + {{ trans('texts.expense_date') }} + {{ trans('texts.amount') }} + {{ trans('texts.category') }} + {{ trans('texts.public_notes') }} + {{ trans('texts.private_notes') }} + + +@foreach ($expenses as $expense) + + {{ $expense->vendor ? $expense->vendor->getDisplayName() : '' }} + {{ $expense->client ? $expense->client->getDisplayName() : '' }} + @if ($multiUser) + {{ $expense->user->getDisplayName() }} + @endif + {{ $expense->present()->expense_date }} + {{ $expense->present()->amount }} + {{ $expense->present()->category }} + {{ $expense->public_notes }} + {{ $expense->private_notes }} + +@endforeach + +