mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-12-19 04:49:30 +00:00
Merge branch 'release/3.3.1'
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
Firefly III (v3.3)
|
Firefly III (v3.3.1)
|
||||||
===========
|
===========
|
||||||
|
|
||||||
[](https://travis-ci.org/JC5/firefly-iii)
|
[](https://travis-ci.org/JC5/firefly-iii)
|
||||||
|
|||||||
105
app/Models/Account.php
Normal file
105
app/Models/Account.php
Normal file
@@ -0,0 +1,105 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
use Watson\Validating\ValidatingTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Account
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Account extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes, ValidatingTrait;
|
||||||
|
|
||||||
|
protected $rules
|
||||||
|
= [
|
||||||
|
'user_id' => 'required|exists:users,id',
|
||||||
|
'account_type_id' => 'required|exists:account_types,id',
|
||||||
|
'name' => 'required|between:1,100|uniqueForUser:accounts,name',
|
||||||
|
'active' => 'required|boolean'
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $fillable = ['user_id', 'account_type_id', 'name', 'active'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $fieldName
|
||||||
|
*
|
||||||
|
* @return string|null
|
||||||
|
*/
|
||||||
|
public function getMeta($fieldName)
|
||||||
|
{
|
||||||
|
foreach ($this->accountMeta as $meta) {
|
||||||
|
if ($meta->name == $fieldName) {
|
||||||
|
return $meta->data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function accountMeta()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\AccountMeta');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function accountType()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\AccountType');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param EloquentBuilder $query
|
||||||
|
* @param array $types
|
||||||
|
*/
|
||||||
|
public function scopeAccountTypeIn(EloquentBuilder $query, array $types)
|
||||||
|
{
|
||||||
|
if (is_null($this->joinedAccountTypes)) {
|
||||||
|
$query->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id');
|
||||||
|
$this->joinedAccountTypes = true;
|
||||||
|
}
|
||||||
|
$query->whereIn('account_types.type', $types);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function transactions()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\Transaction');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\User');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function piggyBanks()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\PiggyBank');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
29
app/Models/AccountType.php
Normal file
29
app/Models/AccountType.php
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class AccountType
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class AccountType extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function accounts()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\Account');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at'];
|
||||||
|
}
|
||||||
|
}
|
||||||
40
app/Models/Bill.php
Normal file
40
app/Models/Bill.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Bill
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Bill extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $fillable = ['name', 'match', 'amount_min','user_id', 'amount_max', 'date', 'repeat_freq', 'skip', 'automatch', 'active',];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'date'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function transactionjournals()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\TransactionJournal');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\User');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
59
app/Models/Budget.php
Normal file
59
app/Models/Budget.php
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Budget
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Budget extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
protected $fillable = ['user_id', 'name'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function budgetlimits()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\BudgetLimit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasManyThrough
|
||||||
|
*/
|
||||||
|
public function limitrepetitions()
|
||||||
|
{
|
||||||
|
return $this->hasManyThrough('FireflyIII\Models\LimitRepetition', 'FireflyIII\Models\BudgetLimit', 'budget_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||||
|
*/
|
||||||
|
public function transactionjournals()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('FireflyIII\Models\TransactionJournal', 'budget_transaction_journal', 'budget_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\User');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
37
app/Models/BudgetLimit.php
Normal file
37
app/Models/BudgetLimit.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class BudgetLimit
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class BudgetLimit extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function budget()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\Budget');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'startdate'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function limitrepetitions()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\LimitRepetition');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
41
app/Models/Category.php
Normal file
41
app/Models/Category.php
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Category
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Category extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
protected $fillable = ['user_id', 'name'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||||
|
*/
|
||||||
|
public function transactionjournals()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('FireflyIII\Models\TransactionJournal', 'category_transaction_journal', 'category_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\User');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
22
app/Models/Component.php
Normal file
22
app/Models/Component.php
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Component
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Component extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
}
|
||||||
45
app/Models/LimitRepetition.php
Normal file
45
app/Models/LimitRepetition.php
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class LimitRepetition
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class LimitRepetition extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function budgetLimit()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\BudgetLimit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'startdate', 'enddate'];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function spentInRepetition()
|
||||||
|
{
|
||||||
|
$sum = \DB::table('transactions')
|
||||||
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
|
->leftJoin('budget_transaction_journal', 'budget_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id')
|
||||||
|
->leftJoin('budget_limits', 'budget_limits.budget_id', '=', 'budget_transaction_journal.budget_id')
|
||||||
|
->leftJoin('limit_repetitions', 'limit_repetitions.budget_limit_id', '=', 'budget_limits.id')
|
||||||
|
->where('transaction_journals.date', '>=', $this->startdate->format('Y-m-d'))
|
||||||
|
->where('transaction_journals.date', '<=', $this->enddate->format('Y-m-d'))
|
||||||
|
->where('transactions.amount', '>', 0)
|
||||||
|
->where('limit_repetitions.id', '=', $this->id)
|
||||||
|
->sum('transactions.amount');
|
||||||
|
|
||||||
|
return floatval($sum);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
37
app/Models/PiggyBankEvent.php
Normal file
37
app/Models/PiggyBankEvent.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class PiggyBankEvent
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class PiggyBankEvent extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'date'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function piggyBank()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\PiggyBank');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function transactionJournal()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\TransactionJournal');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
29
app/Models/PiggyBankRepetition.php
Normal file
29
app/Models/PiggyBankRepetition.php
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class PiggyBankRepetition
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class PiggyBankRepetition extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'startdate', 'targetdate'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function piggyBank()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\PiggyBank');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
37
app/Models/Reminder.php
Normal file
37
app/Models/Reminder.php
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Reminder
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Reminder extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'startdate', 'enddate'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\MorphTo
|
||||||
|
*/
|
||||||
|
public function remindersable()
|
||||||
|
{
|
||||||
|
return $this->morphTo();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\User');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
48
app/Models/Transaction.php
Normal file
48
app/Models/Transaction.php
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
use Watson\Validating\ValidatingTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class Transaction
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class Transaction extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
protected $fillable = ['account_id', 'transaction_journal_id', 'description', 'amount'];
|
||||||
|
protected $rules
|
||||||
|
= [
|
||||||
|
'account_id' => 'required|exists:accounts,id',
|
||||||
|
'transaction_journal_id' => 'required|exists:transaction_journals,id',
|
||||||
|
'description' => 'between:1,255',
|
||||||
|
'amount' => 'required|numeric'
|
||||||
|
];
|
||||||
|
use SoftDeletes, ValidatingTrait;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function account()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\Account');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function transactionJournal()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\Models\TransactionJournal');
|
||||||
|
}
|
||||||
|
}
|
||||||
33
app/Models/TransactionCurrency.php
Normal file
33
app/Models/TransactionCurrency.php
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class TransactionCurrency
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class TransactionCurrency extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
|
||||||
|
protected $fillable = ['name', 'code', 'symbol'];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function transactionJournals()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\TransactionJournal');
|
||||||
|
}
|
||||||
|
}
|
||||||
39
app/Models/TransactionGroup.php
Normal file
39
app/Models/TransactionGroup.php
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class TransactionGroup
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class TransactionGroup extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||||
|
*/
|
||||||
|
public function transactionjournals()
|
||||||
|
{
|
||||||
|
return $this->belongsToMany('FireflyIII\Models\TransactionJournal');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
|
||||||
|
*/
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo('FireflyIII\User');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
21
app/Models/TransactionRelation.php
Normal file
21
app/Models/TransactionRelation.php
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class TransactionRelation
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class TransactionRelation extends Model
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
30
app/Models/TransactionType.php
Normal file
30
app/Models/TransactionType.php
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
<?php namespace FireflyIII\Models;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class TransactionType
|
||||||
|
*
|
||||||
|
* @package FireflyIII\Models
|
||||||
|
*/
|
||||||
|
class TransactionType extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getDates()
|
||||||
|
{
|
||||||
|
return ['created_at', 'updated_at', 'deleted_at'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
|
*/
|
||||||
|
public function transactionJournals()
|
||||||
|
{
|
||||||
|
return $this->hasMany('FireflyIII\Models\TransactionJournal');
|
||||||
|
}
|
||||||
|
}
|
||||||
6233
public/css/app.css
6233
public/css/app.css
File diff suppressed because it is too large
Load Diff
2
public/css/metisMenu.min.css
vendored
2
public/css/metisMenu.min.css
vendored
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* metismenu - v1.1.1
|
* metismenu - v1.1.3
|
||||||
* Easy menu jQuery plugin for Twitter Bootstrap 3
|
* Easy menu jQuery plugin for Twitter Bootstrap 3
|
||||||
* https://github.com/onokumus/metisMenu
|
* https://github.com/onokumus/metisMenu
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -8,13 +8,6 @@ body {
|
|||||||
background-color: #f8f8f8;
|
background-color: #f8f8f8;
|
||||||
}
|
}
|
||||||
|
|
||||||
.google-chart-error {
|
|
||||||
height:30px;
|
|
||||||
background:url('../images/error.png') no-repeat center center
|
|
||||||
}
|
|
||||||
|
|
||||||
.google-visualization-table-tr-head td:first-child {width:100px;}
|
|
||||||
|
|
||||||
#wrapper {
|
#wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
@@ -34,6 +27,10 @@ body {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.navbar-top-links {
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.navbar-top-links li {
|
.navbar-top-links li {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
@@ -227,6 +224,11 @@ body {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dataTables_wrapper {
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
table.dataTable thead .sorting,
|
table.dataTable thead .sorting,
|
||||||
table.dataTable thead .sorting_asc,
|
table.dataTable thead .sorting_asc,
|
||||||
table.dataTable thead .sorting_desc,
|
table.dataTable thead .sorting_desc,
|
||||||
9
public/js/jquery.metisMenu.min.js
vendored
9
public/js/jquery.metisMenu.min.js
vendored
@@ -1,9 +0,0 @@
|
|||||||
/*
|
|
||||||
* metismenu - v1.0.3
|
|
||||||
* Easy menu jQuery plugin for Twitter Bootstrap 3
|
|
||||||
* https://github.com/onokumus/metisMenu
|
|
||||||
*
|
|
||||||
* Made by Osman Nuri Okumuş
|
|
||||||
* Under MIT License
|
|
||||||
*/
|
|
||||||
!function(a,b,c){function d(b,c){this.element=b,this.settings=a.extend({},f,c),this._defaults=f,this._name=e,this.init()}var e="metisMenu",f={toggle:!0};d.prototype={init:function(){var b=a(this.element),c=this.settings.toggle;this.isIE()<=9?(b.find("li.active").has("ul").children("ul").collapse("show"),b.find("li").not(".active").has("ul").children("ul").collapse("hide")):(b.find("li.active").has("ul").children("ul").addClass("collapse in"),b.find("li").not(".active").has("ul").children("ul").addClass("collapse")),b.find("li").has("ul").children("a").on("click",function(b){b.preventDefault(),a(this).parent("li").toggleClass("active").children("ul").collapse("toggle"),c&&a(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide")})},isIE:function(){for(var a,b=3,d=c.createElement("div"),e=d.getElementsByTagName("i");d.innerHTML="<!--[if gt IE "+ ++b+"]><i></i><![endif]-->",e[0];)return b>4?b:a}},a.fn[e]=function(b){return this.each(function(){a.data(this,"plugin_"+e)||a.data(this,"plugin_"+e,new d(this,b))})}}(jQuery,window,document);
|
|
||||||
9
public/js/metisMenu.min.js
vendored
Executable file
9
public/js/metisMenu.min.js
vendored
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
/*
|
||||||
|
* metismenu - v1.1.3
|
||||||
|
* Easy menu jQuery plugin for Twitter Bootstrap 3
|
||||||
|
* https://github.com/onokumus/metisMenu
|
||||||
|
*
|
||||||
|
* Made by Osman Nuri Okumus
|
||||||
|
* Under MIT License
|
||||||
|
*/
|
||||||
|
!function(a,b,c){function d(b,c){this.element=a(b),this.settings=a.extend({},f,c),this._defaults=f,this._name=e,this.init()}var e="metisMenu",f={toggle:!0,doubleTapToGo:!1};d.prototype={init:function(){var b=this.element,d=this.settings.toggle,f=this;this.isIE()<=9?(b.find("li.active").has("ul").children("ul").collapse("show"),b.find("li").not(".active").has("ul").children("ul").collapse("hide")):(b.find("li.active").has("ul").children("ul").addClass("collapse in"),b.find("li").not(".active").has("ul").children("ul").addClass("collapse")),f.settings.doubleTapToGo&&b.find("li.active").has("ul").children("a").addClass("doubleTapToGo"),b.find("li").has("ul").children("a").on("click."+e,function(b){return b.preventDefault(),f.settings.doubleTapToGo&&f.doubleTapToGo(a(this))&&"#"!==a(this).attr("href")&&""!==a(this).attr("href")?(b.stopPropagation(),void(c.location=a(this).attr("href"))):(a(this).parent("li").toggleClass("active").children("ul").collapse("toggle"),void(d&&a(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide")))})},isIE:function(){for(var a,b=3,d=c.createElement("div"),e=d.getElementsByTagName("i");d.innerHTML="<!--[if gt IE "+ ++b+"]><i></i><![endif]-->",e[0];)return b>4?b:a},doubleTapToGo:function(a){var b=this.element;return a.hasClass("doubleTapToGo")?(a.removeClass("doubleTapToGo"),!0):a.parent().children("ul").length?(b.find(".doubleTapToGo").removeClass("doubleTapToGo"),a.addClass("doubleTapToGo"),!1):void 0},remove:function(){this.element.off("."+e),this.element.removeData(e)}},a.fn[e]=function(b){return this.each(function(){var c=a(this);c.data(e)&&c.data(e).remove(),c.data(e,new d(this,b))}),this}}(jQuery,window,document);
|
||||||
@@ -12,17 +12,25 @@ $(function() {
|
|||||||
topOffset = 50;
|
topOffset = 50;
|
||||||
width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width;
|
width = (this.window.innerWidth > 0) ? this.window.innerWidth : this.screen.width;
|
||||||
if (width < 768) {
|
if (width < 768) {
|
||||||
$('div.navbar-collapse').addClass('collapse')
|
$('div.navbar-collapse').addClass('collapse');
|
||||||
topOffset = 100; // 2-row-menu
|
topOffset = 100; // 2-row-menu
|
||||||
} else {
|
} else {
|
||||||
$('div.navbar-collapse').removeClass('collapse')
|
$('div.navbar-collapse').removeClass('collapse');
|
||||||
}
|
}
|
||||||
|
|
||||||
height = (this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height;
|
height = ((this.window.innerHeight > 0) ? this.window.innerHeight : this.screen.height) - 1;
|
||||||
height = height - topOffset;
|
height = height - topOffset;
|
||||||
if (height < 1) height = 1;
|
if (height < 1) height = 1;
|
||||||
if (height > topOffset) {
|
if (height > topOffset) {
|
||||||
$("#page-wrapper").css("min-height", (height) + "px");
|
$("#page-wrapper").css("min-height", (height) + "px");
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
})
|
|
||||||
|
var url = window.location;
|
||||||
|
var element = $('ul.nav a').filter(function() {
|
||||||
|
return this.href == url || url.href.indexOf(this.href) == 0;
|
||||||
|
}).addClass('active').parent().parent().addClass('in').parent();
|
||||||
|
if (element.is('li')) {
|
||||||
|
element.addClass('active');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|||||||
@@ -16,8 +16,13 @@
|
|||||||
</title>
|
</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" media="all" />
|
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css" media="all" />
|
||||||
|
<!-- <link rel="stylesheet" href="css/metisMenu.min.css" type="text/css" media="all" /> -->
|
||||||
|
<!-- new css for SB admin -->
|
||||||
<link rel="stylesheet" href="css/metisMenu.min.css" type="text/css" media="all" />
|
<link rel="stylesheet" href="css/metisMenu.min.css" type="text/css" media="all" />
|
||||||
<link rel="stylesheet" href="css/sb.css" type="text/css" media="all" />
|
<link rel="stylesheet" href="css/sb-admin-2.css" type="text/css" media="all" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css" media="all" />
|
<link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css" media="all" />
|
||||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto2" type="text/css" media="all" />
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto2" type="text/css" media="all" />
|
||||||
@yield('styles')
|
@yield('styles')
|
||||||
@@ -107,8 +112,18 @@
|
|||||||
|
|
||||||
<script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
|
<script type="text/javascript" src="js/jquery-2.1.3.min.js"></script>
|
||||||
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
|
<script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
|
||||||
<script type="text/javascript" src="js/jquery.metisMenu.min.js"></script>
|
<!-- <script type="text/javascript" src="js/jquery.metisMenu.min.js"></script> -->
|
||||||
|
<!-- <script type="text/javascript" src="js/sb-admin-2.js"></script>-->
|
||||||
|
|
||||||
|
<!-- new js for sb admin -->
|
||||||
|
|
||||||
|
<script type="text/javascript" src="js/metisMenu.min.js"></script>
|
||||||
<script type="text/javascript" src="js/sb-admin-2.js"></script>
|
<script type="text/javascript" src="js/sb-admin-2.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript" src="js/help.js"></script>
|
<script type="text/javascript" src="js/help.js"></script>
|
||||||
<script type="text/javascript" src="js/firefly.js"></script>
|
<script type="text/javascript" src="js/firefly.js"></script>
|
||||||
@yield('scripts')
|
@yield('scripts')
|
||||||
|
|||||||
@@ -11,40 +11,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- /.navbar-header -->
|
<!-- /.navbar-header -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<ul class="nav navbar-top-links navbar-right">
|
<ul class="nav navbar-top-links navbar-right">
|
||||||
|
|
||||||
<!-- reminders -->
|
|
||||||
@if(isset($reminders) && count($reminders) > 0)
|
|
||||||
<li class="dropdown">
|
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
|
||||||
<i class="fa fa-bell fa-fw"></i> <i class="fa fa-caret-down"></i>
|
|
||||||
</a>
|
|
||||||
<ul class="dropdown-menu dropdown-alerts">
|
|
||||||
@foreach($reminders as $index => $reminder)
|
|
||||||
<li>
|
|
||||||
<a href="{{route('reminders.show',$reminder->id)}}">
|
|
||||||
<div>
|
|
||||||
<i class="fa fa-clock-o fa-fw"></i>
|
|
||||||
<!-- may be a title, may be a name or a description -->
|
|
||||||
@if($reminder->remindersable->title)
|
|
||||||
{{{$reminder->remindersable->title}}}
|
|
||||||
@endif
|
|
||||||
@if($reminder->remindersable->name)
|
|
||||||
{{{$reminder->remindersable->name}}}
|
|
||||||
@endif
|
|
||||||
<span class="pull-right text-muted small"></span>
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@if($index+1 != count($reminders))
|
|
||||||
<li class="divider"></li>
|
|
||||||
@endif
|
|
||||||
@endforeach
|
|
||||||
</ul>
|
|
||||||
<!-- /.dropdown-alerts -->
|
|
||||||
</li>
|
|
||||||
@endif
|
|
||||||
<!-- /.dropdown -->
|
|
||||||
|
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||||
@@ -63,7 +33,12 @@
|
|||||||
|
|
||||||
|
|
||||||
<!-- /.dropdown -->
|
<!-- /.dropdown -->
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- /.navbar-top-links -->
|
<!-- /.navbar-top-links -->
|
||||||
<div class="navbar-default sidebar" role="navigation">
|
<div class="navbar-default sidebar" role="navigation">
|
||||||
<div class="sidebar-nav navbar-collapse">
|
<div class="sidebar-nav navbar-collapse">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
@extends('layouts.default')
|
@extends('layouts.default')
|
||||||
@section('content')
|
@section('content')
|
||||||
{{ Breadcrumbs::renderIfExists(Route::getCurrentRoute()->getName(), $date) }}
|
{!! Breadcrumbs::renderIfExists(Route::getCurrentRoute()->getName(), $date) !!}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-5 col-md-5 col-sm-12">
|
<div class="col-lg-5 col-md-5 col-sm-12">
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
@@ -10,11 +10,11 @@
|
|||||||
@foreach($income as $entry)
|
@foreach($income as $entry)
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
@if($entry->encrypted == 1)
|
@if($entry->encrypted === true)
|
||||||
<a href="{{route('transactions.show',$entry->id)}}" title="{{{Crypt::decrypt($entry->description)}}}">{{{Crypt::decrypt($entry->description)}}}</a>
|
<a href="{{route('transactions.show',$entry->id)}}" title="{{{Crypt::decrypt($entry->description)}}}">{{{Crypt::decrypt($entry->description)}}}</a>
|
||||||
@else
|
@else
|
||||||
<a href="{{route('transactions.show',$entry->id)}}" title="{{{$entry->description}}}">{{{$entry->description}}}</a>
|
<a href="{{route('transactions.show',$entry->id)}}" title="{{{$entry->description}}}">{{{$entry->description}}}</a>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
<?php $tableSum += floatval($entry->amount);?>
|
<?php $tableSum += floatval($entry->amount);?>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
@if(isset($displaySum) && $displaySum === true)
|
@if(isset($displaySum) && $displaySum === true)
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>Sum</em></td>
|
<td><em>Sum</em></td>
|
||||||
<td colspan="3">{{Amount::format($tableSum)}}</td>
|
<td colspan="3">{!! Amount::format($tableSum) !!}</td>
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
@endif
|
@endif
|
||||||
@@ -59,12 +59,12 @@
|
|||||||
@else
|
@else
|
||||||
<td><em>{{{$expense['name']}}}</em></td>
|
<td><em>{{{$expense['name']}}}</em></td>
|
||||||
@endif
|
@endif
|
||||||
<td>{{Amount::format($expense['amount'])}}</td>
|
<td>{!! Amount::format($expense['amount']) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>Sum</em></td>
|
<td><em>Sum</em></td>
|
||||||
<td>{{Amount::format($sum)}}</td>
|
<td>{!! Amount::format($sum) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -81,15 +81,15 @@
|
|||||||
<table class="table table-bordered">
|
<table class="table table-bordered">
|
||||||
<tr>
|
<tr>
|
||||||
<td>In</td>
|
<td>In</td>
|
||||||
<td>{{Amount::format($in)}}</td>
|
<td>{!! Amount::format($in) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Out</td>
|
<td>Out</td>
|
||||||
<td>{{Amount::format($sum)}}</td>
|
<td>{!! Amount::format($sum) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Difference</td>
|
<td>Difference</td>
|
||||||
<td>{{Amount::format($in - $sum)}}</td>
|
<td>{!! Amount::format($in - $sum) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -125,16 +125,16 @@
|
|||||||
<em>{{{$budget['name']}}}</em>
|
<em>{{{$budget['name']}}}</em>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td>{{Amount::format($budget['amount'])}}</td>
|
<td>{!! Amount::format($budget['amount']) !!}</td>
|
||||||
<td>{{Amount::format($budget['spent'],false)}}</td>
|
<td>{!! Amount::format($budget['spent'],false) !!}</td>
|
||||||
<td>{{Amount::format($budget['amount'] + $budget['spent'])}}</td>
|
<td>{!! Amount::format($budget['amount'] + $budget['spent']) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>Sum</em></td>
|
<td><em>Sum</em></td>
|
||||||
<td>{{Amount::format($sumEnvelope)}}</td>
|
<td>{!! Amount::format($sumEnvelope) !!}</td>
|
||||||
<td>{{Amount::format($sumSpent)}}</td>
|
<td>{!! Amount::format($sumSpent) !!}</td>
|
||||||
<td>{{Amount::format($sumLeft)}}</td>
|
<td>{!! Amount::format($sumLeft) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -158,12 +158,12 @@
|
|||||||
<em>{{{$category['name']}}}</em>
|
<em>{{{$category['name']}}}</em>
|
||||||
@endif
|
@endif
|
||||||
</td>
|
</td>
|
||||||
<td>{{Amount::format($category['amount'],false)}}</td>
|
<td>{!! Amount::format($category['amount'],false) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>Sum</em></td>
|
<td><em>Sum</em></td>
|
||||||
<td>{{Amount::format($sum)}}</td>
|
<td>{!! Amount::format($sum) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
@@ -187,16 +187,16 @@
|
|||||||
?>
|
?>
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="{{route('accounts.show',$id)}}">{{{$account['name']}}}</a></td>
|
<td><a href="{{route('accounts.show',$id)}}">{{{$account['name']}}}</a></td>
|
||||||
<td>{{Amount::format($account['startBalance'])}}</td>
|
<td>{!! Amount::format($account['startBalance']) !!}</td>
|
||||||
<td>{{Amount::format($account['endBalance'])}}</td>
|
<td>{!! Amount::format($account['endBalance']) !!}</td>
|
||||||
<td>{{Amount::format($account['difference'])}}</td>
|
<td>{!! Amount::format($account['difference']) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
@endforeach
|
@endforeach
|
||||||
<tr>
|
<tr>
|
||||||
<td><em>Sum</em></td>
|
<td><em>Sum</em></td>
|
||||||
<td>{{Amount::format($sumStart)}}</td>
|
<td>{!! Amount::format($sumStart) !!}</td>
|
||||||
<td>{{Amount::format($sumEnd)}}</td>
|
<td>{!! Amount::format($sumEnd) !!}</td>
|
||||||
<td>{{Amount::format($sumDiff)}}</td>
|
<td>{!! Amount::format($sumDiff) !!}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user