Browse Source

User can import existing bank accounts

If user already use bank account feature, it is saved
on site_options table.
This commit will add a button to import existing
bank account entries to bank_accounts table.
pull/22/head
Nafies Luthfi 7 years ago
parent
commit
4db6457cd5
  1. 20
      app/Http/Controllers/References/BankAccountsController.php
  2. 2
      resources/views/bank-accounts/index.blade.php
  3. 1
      routes/web/references.php
  4. 31
      tests/Feature/References/ManageBankAccountsTest.php

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

@ -3,6 +3,7 @@
namespace App\Http\Controllers\References;
use Illuminate\Http\Request;
use App\Entities\Options\Option;
use App\Http\Controllers\Controller;
use App\Entities\Invoices\BankAccount;
@ -96,4 +97,23 @@ class BankAccountsController extends Controller
return back();
}
/**
* Import bank account from site_options table.
*
* @return \Illuminate\Http\RedirectResponse
*/
public function import()
{
$bankAccounts = Option::where('key', 'bank_accounts')->first();
if ($bankAccounts && $bankAccounts->value) {
foreach (json_decode($bankAccounts->value, true) as $bankAccountData) {
$bankAccount = new BankAccount($bankAccountData);
$bankAccount->save();
}
$bankAccounts->delete();
}
return back();
}
}

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

@ -3,7 +3,7 @@
@section('title', trans('bank_account.list'))
@section('content-dashboard')
{!! FormField::formButton(['route' => 'bank-accounts.import'], __('bank_account.import'), ['id' => 'import-bank-accounts']) !!}
<div class="row">
<div class="col-md-8">
@foreach ($bankAccounts as $bankAccount)

1
routes/web/references.php

@ -19,4 +19,5 @@ Route::group(['namespace' => 'References', 'middleware' => ['web', 'role:admin']
* Bank Accounts Routes
*/
Route::apiResource('bank-accounts', 'BankAccountsController');
Route::post('bank-accounts/import', 'BankAccountsController@import')->name('bank-accounts.import');
});

31
tests/Feature/References/ManageBankAccountsTest.php

@ -3,6 +3,7 @@
namespace Tests\Feature\References;
use Tests\TestCase;
use Facades\App\Services\Option;
use App\Entities\Invoices\BankAccount;
use Illuminate\Foundation\Testing\DatabaseMigrations;
@ -108,6 +109,34 @@ class ManageBankAccountsTest extends TestCase
/** @test */
public function user_can_import_existing_bank_account_list()
{
$this->visit('/');
$this->adminUserSigningIn();
$bankAccounts = [];
$bankAccounts[1] = [
'name' => 'BankAccount 1 name',
'number' => '1234567890',
'account_name' => 'John Doe',
'description' => 'BankAccount 1 description',
];
Option::set('bank_accounts', json_encode($bankAccounts));
$this->visit(route('bank-accounts.index'));
$this->seeElement('button', ['id' => 'import-bank-accounts']);
$this->press('import-bank-accounts');
$this->seePageIs(route('bank-accounts.index'));
$this->dontSeeInDatabase('site_options', [
'value' => json_encode($bankAccounts),
]);
$this->seeInDatabase('bank_accounts', [
'name' => 'BankAccount 1 name',
'number' => '1234567890',
'account_name' => 'John Doe',
'description' => 'BankAccount 1 description',
'is_active' => 1,
]);
}
}
Loading…
Cancel
Save