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

View File

@ -32,16 +32,17 @@ class AccountFormRequest extends Request
$types = join(',', array_keys(Config::get('firefly.subTitlesByIdentifier')));
$nameRule = 'required|between:1,100|uniqueAccountForUser';
$idRule = '';
$idRule = '';
if (Account::find(Input::get('id'))) {
$idRule = 'belongsToUser:accounts';
$idRule = 'belongsToUser:accounts';
$nameRule = 'required|between:1,100|uniqueAccountForUser:' . Input::get('id');
}
return [
'id' => $idRule,
'id' => $idRule,
'name' => $nameRule,
'openingBalance' => 'numeric',
'virtualBalance' => 'numeric',
'openingBalanceDate' => 'date',
'accountRole' => 'in:' . $accountRoles,
'active' => 'boolean',

View File

@ -15,7 +15,7 @@ class Account extends Model
{
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
= [
'user_id' => 'required|exists:users,id',

View File

@ -208,10 +208,11 @@ class AccountRepository implements AccountRepositoryInterface
if ($data['openingBalance'] != 0) {
$type = $data['openingBalance'] < 0 ? 'expense' : 'revenue';
$opposingData = [
'user' => $data['user'],
'accountType' => $type,
'name' => $data['name'] . ' initial balance',
'active' => false,
'user' => $data['user'],
'accountType' => $type,
'virtual_balance' => $data['virtualBalance'],
'name' => $data['name'] . ' initial balance',
'active' => false,
];
$opposing = $this->storeAccount($opposingData);
$this->storeInitialBalance($newAccount, $opposing, $data);
@ -229,8 +230,9 @@ class AccountRepository implements AccountRepositoryInterface
public function update(Account $account, array $data)
{
// update the account:
$account->name = $data['name'];
$account->active = $data['active'] == '1' ? true : false;
$account->name = $data['name'];
$account->active = $data['active'] == '1' ? true : false;
$account->virtual_balance = $data['virtualBalance'];
$account->save();
// update meta data:

View File

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

View File

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

View File

@ -32,6 +32,7 @@ class ChangesForV336 extends Migration
Schema::table(
'accounts', function (Blueprint $table) {
$table->string('name', 255)->change();
$table->dropColumn('virtual_balance');
// recreate foreign key
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
@ -94,6 +95,7 @@ class ChangesForV336 extends Migration
Schema::table(
'accounts', function (Blueprint $table) {
$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');
}
);

View File

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

View File

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