Added something fancy called "virtual balance".

This commit is contained in:
James Cole
2015-04-01 19:42:14 +02:00
parent a80b7aac6c
commit 7f5188f5a4
9 changed files with 24 additions and 11 deletions

View File

@@ -101,7 +101,8 @@ class AccountController extends Controller
$preFilled = [ $preFilled = [
'accountRole' => $account->getMeta('accountRole'), 'accountRole' => $account->getMeta('accountRole'),
'openingBalanceDate' => $openingBalance ? $openingBalance->date->format('Y-m-d') : null, 'openingBalanceDate' => $openingBalance ? $openingBalance->date->format('Y-m-d') : null,
'openingBalance' => $openingBalanceAmount 'openingBalance' => $openingBalanceAmount,
'virtualBalance' => floatval($account->virtual_balance)
]; ];
Session::flash('preFilled', $preFilled); Session::flash('preFilled', $preFilled);
@@ -185,6 +186,7 @@ class AccountController extends Controller
$accountData = [ $accountData = [
'name' => $request->input('name'), 'name' => $request->input('name'),
'accountType' => $request->input('what'), 'accountType' => $request->input('what'),
'virtualBalance' => floatval($request->input('virtualBalance')),
'active' => true, 'active' => true,
'user' => Auth::user()->id, 'user' => Auth::user()->id,
'accountRole' => $request->input('accountRole'), 'accountRole' => $request->input('accountRole'),
@@ -220,6 +222,7 @@ class AccountController extends Controller
'active' => $request->input('active'), 'active' => $request->input('active'),
'user' => Auth::user()->id, 'user' => Auth::user()->id,
'accountRole' => $request->input('accountRole'), 'accountRole' => $request->input('accountRole'),
'virtualBalance' => floatval($request->input('virtualBalance')),
'openingBalance' => floatval($request->input('openingBalance')), 'openingBalance' => floatval($request->input('openingBalance')),
'openingBalanceDate' => new Carbon($request->input('openingBalanceDate')), 'openingBalanceDate' => new Carbon($request->input('openingBalanceDate')),
'openingBalanceCurrency' => intval($request->input('balance_currency_id')), 'openingBalanceCurrency' => intval($request->input('balance_currency_id')),

View File

@@ -42,6 +42,7 @@ class AccountFormRequest extends Request
'id' => $idRule, 'id' => $idRule,
'name' => $nameRule, 'name' => $nameRule,
'openingBalance' => 'numeric', 'openingBalance' => 'numeric',
'virtualBalance' => 'numeric',
'openingBalanceDate' => 'date', 'openingBalanceDate' => 'date',
'accountRole' => 'in:' . $accountRoles, 'accountRole' => 'in:' . $accountRoles,
'active' => 'boolean', 'active' => 'boolean',

View File

@@ -15,7 +15,7 @@ class Account extends Model
{ {
use SoftDeletes, ValidatingTrait; use SoftDeletes, ValidatingTrait;
protected $fillable = ['user_id', 'account_type_id', 'name', 'active']; protected $fillable = ['user_id', 'account_type_id', 'name', 'active','virtual_balance'];
protected $rules protected $rules
= [ = [
'user_id' => 'required|exists:users,id', 'user_id' => 'required|exists:users,id',

View File

@@ -210,6 +210,7 @@ class AccountRepository implements AccountRepositoryInterface
$opposingData = [ $opposingData = [
'user' => $data['user'], 'user' => $data['user'],
'accountType' => $type, 'accountType' => $type,
'virtual_balance' => $data['virtualBalance'],
'name' => $data['name'] . ' initial balance', 'name' => $data['name'] . ' initial balance',
'active' => false, 'active' => false,
]; ];
@@ -231,6 +232,7 @@ class AccountRepository implements AccountRepositoryInterface
// update the account: // update the account:
$account->name = $data['name']; $account->name = $data['name'];
$account->active = $data['active'] == '1' ? true : false; $account->active = $data['active'] == '1' ? true : false;
$account->virtual_balance = $data['virtualBalance'];
$account->save(); $account->save();
// update meta data: // update meta data:

View File

@@ -62,6 +62,8 @@ class ExpandedForm
'account_id' => 'Asset account', 'account_id' => 'Asset account',
'budget_id' => 'Budget', 'budget_id' => 'Budget',
'openingBalance' => 'Opening balance', 'openingBalance' => 'Opening balance',
'virtualBalance' => 'Virtual balance',
'targetamount' => 'Target amount',
'accountRole' => 'Account role', 'accountRole' => 'Account role',
'openingBalanceDate' => 'Opening balance date', 'openingBalanceDate' => 'Opening balance date',
'piggy_bank_id' => 'Piggy bank']; 'piggy_bank_id' => 'Piggy bank'];

View File

@@ -47,6 +47,7 @@ class Steam
'transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id' 'transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id'
)->where('transaction_journals.date', '<=', $date->format('Y-m-d'))->sum('transactions.amount') )->where('transaction_journals.date', '<=', $date->format('Y-m-d'))->sum('transactions.amount')
); );
$balance += floatval($account->virtual_balance);
return $balance; return $balance;
} }

View File

@@ -32,6 +32,7 @@ class ChangesForV336 extends Migration
Schema::table( Schema::table(
'accounts', function (Blueprint $table) { 'accounts', function (Blueprint $table) {
$table->string('name', 255)->change(); $table->string('name', 255)->change();
$table->dropColumn('virtual_balance');
// recreate foreign key // recreate foreign key
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
@@ -94,6 +95,7 @@ class ChangesForV336 extends Migration
Schema::table( Schema::table(
'accounts', function (Blueprint $table) { 'accounts', function (Blueprint $table) {
$table->text('name')->change(); $table->text('name')->change();
$table->decimal('virtual_balance',10,2)->default(0);
$table->foreign('user_id', 'account_user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('user_id', 'account_user_id')->references('id')->on('users')->onDelete('cascade');
} }
); );

View File

@@ -37,6 +37,7 @@
{!! ExpandedForm::balance('openingBalance') !!} {!! ExpandedForm::balance('openingBalance') !!}
{!! ExpandedForm::date('openingBalanceDate', date('Y-m-d')) !!} {!! ExpandedForm::date('openingBalanceDate', date('Y-m-d')) !!}
{!! ExpandedForm::select('accountRole',Config::get('firefly.accountRoles')) !!} {!! ExpandedForm::select('accountRole',Config::get('firefly.accountRoles')) !!}
{!! ExpandedForm::balance('virtualBalance') !!}
</div> </div>
</div> </div>

View File

@@ -31,6 +31,7 @@
{!! ExpandedForm::balance('openingBalance',null, ['currency' => $openingBalance ? $openingBalance->transactionCurrency : null]) !!} {!! ExpandedForm::balance('openingBalance',null, ['currency' => $openingBalance ? $openingBalance->transactionCurrency : null]) !!}
{!! ExpandedForm::date('openingBalanceDate') !!} {!! ExpandedForm::date('openingBalanceDate') !!}
{!! ExpandedForm::select('accountRole',Config::get('firefly.accountRoles')) !!} {!! ExpandedForm::select('accountRole',Config::get('firefly.accountRoles')) !!}
{!! ExpandedForm::balance('virtualBalance',null) !!}
{!! Form::hidden('id',$account->id) !!} {!! Form::hidden('id',$account->id) !!}
@endif @endif
{!! ExpandedForm::checkbox('active','1') !!} {!! ExpandedForm::checkbox('active','1') !!}