mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-30 02:26:58 +00:00
Added something fancy called "virtual balance".
This commit is contained in:
@@ -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')),
|
||||||
|
@@ -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',
|
||||||
|
@@ -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',
|
||||||
|
@@ -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:
|
||||||
|
@@ -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'];
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@@ -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>
|
||||||
|
@@ -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') !!}
|
||||||
|
Reference in New Issue
Block a user