Browse Source

Add bank account list on invoice print page

Add bank account list link on dashboard
Restructure bank account index page
pull/6/head
Nafies Luthfi 8 years ago
parent
commit
ad18d9dea2
  1. 5
      app/Http/Controllers/Invoices/InvoicesController.php
  2. 13
      app/Http/Controllers/References/BankAccountsController.php
  3. 70
      resources/views/bank-accounts/index.blade.php
  4. 17
      resources/views/invoices/pdf.blade.php
  5. 3
      resources/views/pages/partials/dashboard-nav-tabs.blade.php
  6. 2
      tests/Feature/AgencyProfileTest.php
  7. 5
      tests/Feature/References/ManageBankAccountsTest.php

5
app/Http/Controllers/Invoices/InvoicesController.php

@ -5,6 +5,7 @@ namespace App\Http\Controllers\Invoices;
use App\Entities\Invoices\Invoice;
use App\Entities\Projects\Project;
use App\Http\Controllers\Controller;
use Option;
/**
* Invoices Controller.
@ -67,6 +68,8 @@ class InvoicesController extends Controller
public function pdf(Invoice $invoice)
{
return view('invoices.pdf', compact('invoice'));
$bankAccounts = json_decode(Option::get('bank_accounts')) ?: [];
return view('invoices.pdf', compact('invoice', 'bankAccounts'));
}
}

13
app/Http/Controllers/References/BankAccountsController.php

@ -6,6 +6,11 @@ use App\Entities\Options\Option;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
/**
* Bank Account Controller.
*
* @author Nafies Luthfi <nafiesL@gmail.com>
*/
class BankAccountsController extends Controller
{
/**
@ -21,12 +26,16 @@ class BankAccountsController extends Controller
if (!is_null($bankAccounts)) {
$bankAccounts = $bankAccounts->value;
$bankAccounts = json_decode($bankAccounts, true);
$bankAccounts = collect($bankAccounts)
->map(function ($bankAccount) {
return (object) $bankAccount;
});
if (in_array(request('action'), ['edit', 'delete']) && request('id') != null) {
$editableBankAccount = (object) $bankAccounts[request('id')];
$editableBankAccount = $bankAccounts[request('id')];
}
} else {
$bankAccounts = [];
$bankAccounts = collect([]);
}
return view('bank-accounts.index', compact('bankAccounts', 'editableBankAccount'));

70
resources/views/bank-accounts/index.blade.php

@ -1,65 +1,47 @@
@extends('layouts.app')
@extends('layouts.dashboard')
@section('title', trans('bank_account.list'))
@section('content')
<h1 class="page-header">
<div class="pull-right">
{{ link_to_route('bank-accounts.index', trans('bank_account.create'), ['action' => 'create'], ['class' => 'btn btn-success']) }}
</div>
{{ trans('bank_account.list') }}
<small>{{ trans('app.total') }} : {{ count($bankAccounts) }} {{ trans('bank_account.bank_account') }}</small>
</h1>
@section('content-dashboard')
<div class="row">
<div class="col-md-8">
<div class="panel panel-default table-responsive">
<table class="table table-condensed">
<thead>
<tr>
<th class="text-center">{{ trans('app.table_no') }}</th>
<th>{{ trans('bank_account.name') }}</th>
<th>{{ trans('bank_account.number') }}</th>
<th>{{ trans('bank_account.account_name') }}</th>
<th>{{ trans('bank_account.description') }}</th>
<th class="text-center">{{ trans('app.action') }}</th>
</tr>
</thead>
<tbody>
@forelse($bankAccounts as $key => $bankAccount)
@php
$bankAccount = (object) $bankAccount;
@endphp
<tr>
<td class="text-center">{{ $key }}</td>
<td>{{ $bankAccount->name }}</td>
<td>{{ $bankAccount->number }}</td>
<td>{{ $bankAccount->account_name }}</td>
<td>{{ $bankAccount->description }}</td>
<td class="text-center">
@foreach ($bankAccounts as $key => $bankAccount)
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading text-center"><h3 class="panel-title">{{ $bankAccount->name }}</h3></div>
<div class="panel-body">
<p>{{ trans('bank_account.number') }}:<br><strong class="lead">{{ $bankAccount->number }}</strong></p>
<p>{{ trans('bank_account.account_name') }}:<br><strong class="lead">{{ $bankAccount->account_name }}</strong></p>
@if ($bankAccount->description)
<p>{{ trans('app.description') }}:<br>{{ $bankAccount->description }}</p>
@endif
</div>
<div class="panel-footer">
{!! link_to_route(
'bank-accounts.index',
trans('app.edit'),
['action' => 'edit', 'id' => $key],
['id' => 'edit-bank_account-' . $key]
) !!} |
) !!}
{!! link_to_route(
'bank-accounts.index',
trans('app.delete'),
['action' => 'delete', 'id' => $key],
['id' => 'del-bank_account-' . $key]
['id' => 'del-bank_account-' . $key, 'class' => 'pull-right']
) !!}
</td>
</tr>
@empty
<tr>
<td colspan="6">{{ trans('bank_account.empty') }}</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
@endforeach
</div>
<div class="col-md-4">
@if (Request::has('action') == false)
{!! html_link_to_route('bank-accounts.index', trans('bank_account.create'), ['action' => 'create'], [
'class'=>'btn btn-success',
'icon' => 'plus'
]) !!}
@endif
@includeWhen(Request::has('action'), 'bank-accounts.forms')
</div>
</div>

17
resources/views/invoices/pdf.blade.php

@ -136,14 +136,19 @@
{{-- TODO : Add dynamic bank account based on agency bank account. --}}
<tr style="vertical-align: top;">
<td colspan="3">
@empty ($bankAccounts)
@else
<p>Pembayaran dapat dilakukan melalui transfer ke rekening berikut:</p>
<table>
<tr><td>Bank</td><td>: <strong>BCA</strong></td></tr>
<tr><td>No. Rek</td><td>: <strong>782-0088-543</strong></td></tr>
<tr><td>Atas nama</td><td>: <strong>NAFIES LUTHFI</strong></td></tr>
@foreach ($bankAccounts as $key => $bankAccount)
@php $bankAccount = (object) $bankAccount; @endphp
<table style="border: 1px solid #ccc;width: 330px">
<tr><td style="width: 100px">{{ trans('bank_account.name') }}</td><td>: <strong>{{ $bankAccount->name }}</strong></td></tr>
<tr><td>{{ trans('bank_account.number') }}</td><td>: <strong>{{ $bankAccount->number }}</strong></td></tr>
<tr><td>{{ trans('bank_account.account_name') }}</td><td>: <strong>{{ $bankAccount->account_name }}</strong></td></tr>
</table>
@if ($key == count($bankAccounts)) <br> @endif
@endforeach
@endempty
<p>Terima kasih atas kerjasamanya.</p>
</td>

3
resources/views/pages/partials/dashboard-nav-tabs.blade.php

@ -13,6 +13,9 @@
<li class="{{ Request::segment(1) == 'users' ? 'active' : '' }}">
{!! link_to_route('users.index', trans('user.list')) !!}
</li>
<li class="{{ Request::segment(1) == 'bank-accounts' ? 'active' : '' }}">
{!! link_to_route('bank-accounts.index', trans('bank_account.list')) !!}
</li>
@endcan
</ul>
<br>

2
tests/Feature/AgencyProfileTest.php

@ -5,7 +5,7 @@ namespace Tests\Feature\Users;
use Tests\TestCase;
/**
* Agency Profile Controller.
* Agency Profile Feature Test.
*
* @author Nafies Luthfi <nafiesL@gmail.com>
*/

5
tests/Feature/References/ManageBankAccountsTest.php

@ -6,6 +6,11 @@ use Illuminate\Foundation\Testing\DatabaseMigrations;
use Option;
use Tests\TestCase as TestCase;
/**
* Manage Bank Account Feature Test.
*
* @author Nafies Luthfi <nafiesL@gmail.com>
*/
class ManageBankAccountsTest extends TestCase
{
use DatabaseMigrations;

Loading…
Cancel
Save