Browse Source

Fix bank account create, edit and delete

pull/22/head
Nafies Luthfi 7 years ago
parent
commit
2f69a2d308
  1. 51
      app/Http/Controllers/References/BankAccountsController.php
  2. 10
      resources/views/bank-accounts/index.blade.php
  3. 2
      tests/Feature/References/ManageBankAccountsTest.php

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

@ -3,7 +3,6 @@
namespace App\Http\Controllers\References; namespace App\Http\Controllers\References;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Entities\Options\Option;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Entities\Invoices\BankAccount; use App\Entities\Invoices\BankAccount;
@ -47,24 +46,7 @@ class BankAccountsController extends Controller
'description' => 'nullable|max:255', 'description' => 'nullable|max:255',
]); ]);
$option = Option::firstOrNew(['key' => 'bank_accounts']);
if ($option->exists) {
$bankAccounts = $option->value;
$bankAccounts = json_decode($bankAccounts, true);
if ($bankAccounts == []) {
$bankAccounts[1] = $newBankAccount;
} else {
$bankAccounts[] = $newBankAccount;
}
} else {
$bankAccounts = [];
$bankAccounts[1] = $newBankAccount;
}
$bankAccounts = json_encode($bankAccounts);
$option->value = $bankAccounts;
$option->save();
BankAccount::create($newBankAccount);
flash(trans('bank_account.created'), 'success'); flash(trans('bank_account.created'), 'success');
@ -79,7 +61,7 @@ class BankAccountsController extends Controller
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function update(Request $request, $bankAccountId)
public function update(Request $request, BankAccount $bankAccount)
{ {
$bankAccountData = $request->validate([ $bankAccountData = $request->validate([
'name' => 'required|max:60', 'name' => 'required|max:60',
@ -88,18 +70,7 @@ class BankAccountsController extends Controller
'description' => 'nullable|max:255', 'description' => 'nullable|max:255',
]); ]);
$bankAccounts = Option::where('key', 'bank_accounts')->first();
$bankAccounts = $bankAccounts->value;
$bankAccounts = json_decode($bankAccounts, true);
$bankAccounts[$bankAccountId] = $bankAccountData;
$bankAccounts = json_encode($bankAccounts);
$option = Option::where('key', 'bank_accounts')->first();
$option->value = $bankAccounts;
$option->save();
$bankAccount->update($bankAccountData);
flash(trans('bank_account.updated'), 'success'); flash(trans('bank_account.updated'), 'success');
@ -113,25 +84,13 @@ class BankAccountsController extends Controller
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function destroy($bankAccountId)
public function destroy(BankAccount $bankAccount)
{ {
request()->validate([ request()->validate([
'bank_account_id' => 'required', 'bank_account_id' => 'required',
]); ]);
if (request('bank_account_id') == $bankAccountId) {
$bankAccounts = Option::where('key', 'bank_accounts')->first();
$bankAccounts = $bankAccounts->value;
$bankAccounts = json_decode($bankAccounts, true);
unset($bankAccounts[$bankAccountId]);
$bankAccounts = json_encode($bankAccounts);
$option = Option::where('key', 'bank_accounts')->first();
$option->value = $bankAccounts;
$option->save();
if (request('bank_account_id') == $bankAccount->id && $bankAccount->delete()) {
flash(trans('bank_account.deleted'), 'success'); flash(trans('bank_account.deleted'), 'success');

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

@ -6,7 +6,7 @@
<div class="row"> <div class="row">
<div class="col-md-8"> <div class="col-md-8">
@foreach ($bankAccounts as $key => $bankAccount)
@foreach ($bankAccounts as $bankAccount)
<div class="col-md-6"> <div class="col-md-6">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading text-center"><h3 class="panel-title">{{ $bankAccount->name }}</h3></div> <div class="panel-heading text-center"><h3 class="panel-title">{{ $bankAccount->name }}</h3></div>
@ -21,14 +21,14 @@
{!! link_to_route( {!! link_to_route(
'bank-accounts.index', 'bank-accounts.index',
trans('app.edit'), trans('app.edit'),
['action' => 'edit', 'id' => $key],
['id' => 'edit-bank_account-' . $key]
['action' => 'edit', 'id' => $bankAccount->id],
['id' => 'edit-bank_account-' . $bankAccount->id]
) !!} ) !!}
{!! link_to_route( {!! link_to_route(
'bank-accounts.index', 'bank-accounts.index',
trans('app.delete'), trans('app.delete'),
['action' => 'delete', 'id' => $key],
['id' => 'del-bank_account-' . $key, 'class' => 'pull-right']
['action' => 'delete', 'id' => $bankAccount->id],
['id' => 'del-bank_account-' . $bankAccount->id, 'class' => 'pull-right']
) !!} ) !!}
</div> </div>
</div> </div>

2
tests/Feature/References/ManageBankAccountsTest.php

@ -88,7 +88,7 @@ class ManageBankAccountsTest extends TestCase
$this->visit(route('bank-accounts.index')); $this->visit(route('bank-accounts.index'));
$this->click('del-bank_account-'.$bankAccount->id); $this->click('del-bank_account-'.$bankAccount->id);
$this->seePageIs(route('bank-accounts.index', ['action' => 'delete', 'id' => '2']));
$this->seePageIs(route('bank-accounts.index', ['action' => 'delete', 'id' => $bankAccount->id]));
$this->press(__('app.delete_confirm_button')); $this->press(__('app.delete_confirm_button'));

Loading…
Cancel
Save