mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2024-11-30 20:54:04 -06:00
Some refactoring.
This commit is contained in:
parent
301528e2d2
commit
36d7a02994
@ -6,6 +6,7 @@ use Carbon\Carbon;
|
|||||||
use FireflyIII\Http\Requests\BudgetFormRequest;
|
use FireflyIII\Http\Requests\BudgetFormRequest;
|
||||||
use FireflyIII\Models\Budget;
|
use FireflyIII\Models\Budget;
|
||||||
use FireflyIII\Models\LimitRepetition;
|
use FireflyIII\Models\LimitRepetition;
|
||||||
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||||
use Input;
|
use Input;
|
||||||
use Navigation;
|
use Navigation;
|
||||||
@ -135,7 +136,7 @@ class BudgetController extends Controller
|
|||||||
*
|
*
|
||||||
* @return \Illuminate\View\View
|
* @return \Illuminate\View\View
|
||||||
*/
|
*/
|
||||||
public function index(BudgetRepositoryInterface $repository)
|
public function index(BudgetRepositoryInterface $repository, AccountRepositoryInterface $accountRepository)
|
||||||
{
|
{
|
||||||
$budgets = $repository->getActiveBudgets();
|
$budgets = $repository->getActiveBudgets();
|
||||||
$inactive = $repository->getInactiveBudgets();
|
$inactive = $repository->getInactiveBudgets();
|
||||||
@ -147,6 +148,8 @@ class BudgetController extends Controller
|
|||||||
$key = 'budgetIncomeTotal' . $start->format('Ymd') . $end->format('Ymd');
|
$key = 'budgetIncomeTotal' . $start->format('Ymd') . $end->format('Ymd');
|
||||||
$budgetIncomeTotal = Preferences::get($key, 1000)->data;
|
$budgetIncomeTotal = Preferences::get($key, 1000)->data;
|
||||||
$period = Navigation::periodShow($start, $range);
|
$period = Navigation::periodShow($start, $range);
|
||||||
|
$accounts = $accountRepository->getAccounts(['Default account', 'Asset account', 'Cash account']);
|
||||||
|
|
||||||
bcscale(2);
|
bcscale(2);
|
||||||
/**
|
/**
|
||||||
* Do some cleanup:
|
* Do some cleanup:
|
||||||
@ -156,7 +159,7 @@ class BudgetController extends Controller
|
|||||||
// loop the budgets:
|
// loop the budgets:
|
||||||
/** @var Budget $budget */
|
/** @var Budget $budget */
|
||||||
foreach ($budgets as $budget) {
|
foreach ($budgets as $budget) {
|
||||||
$budget->spent = $repository->balanceInPeriod($budget, $start, $end);
|
$budget->spent = $repository->balanceInPeriodForList($budget, $start, $end, $accounts);
|
||||||
$budget->currentRep = $repository->getCurrentRepetition($budget, $start, $end);
|
$budget->currentRep = $repository->getCurrentRepetition($budget, $start, $end);
|
||||||
if ($budget->currentRep) {
|
if ($budget->currentRep) {
|
||||||
$budgeted = bcadd($budgeted, $budget->currentRep->amount);
|
$budgeted = bcadd($budgeted, $budget->currentRep->amount);
|
||||||
@ -170,7 +173,7 @@ class BudgetController extends Controller
|
|||||||
$defaultCurrency = Amount::getDefaultCurrency();
|
$defaultCurrency = Amount::getDefaultCurrency();
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'budgets.index', compact('budgetMaximum','period', 'range', 'budgetIncomeTotal', 'defaultCurrency', 'inactive', 'budgets', 'spent', 'budgeted')
|
'budgets.index', compact('budgetMaximum', 'period', 'range', 'budgetIncomeTotal', 'defaultCurrency', 'inactive', 'budgets', 'spent', 'budgeted')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -279,7 +282,7 @@ class BudgetController extends Controller
|
|||||||
{
|
{
|
||||||
$budgetData = [
|
$budgetData = [
|
||||||
'name' => $request->input('name'),
|
'name' => $request->input('name'),
|
||||||
'active' => intval($request->input('active')) == 1
|
'active' => intval($request->input('active')) == 1,
|
||||||
];
|
];
|
||||||
|
|
||||||
$repository->update($budget, $budgetData);
|
$repository->update($budget, $budgetData);
|
||||||
|
@ -6,6 +6,7 @@ use Carbon\Carbon;
|
|||||||
use FireflyIII\Http\Controllers\Controller;
|
use FireflyIII\Http\Controllers\Controller;
|
||||||
use FireflyIII\Models\Budget;
|
use FireflyIII\Models\Budget;
|
||||||
use FireflyIII\Models\LimitRepetition;
|
use FireflyIII\Models\LimitRepetition;
|
||||||
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||||
use FireflyIII\Support\CacheProperties;
|
use FireflyIII\Support\CacheProperties;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
@ -47,7 +48,7 @@ class BudgetController extends Controller
|
|||||||
{
|
{
|
||||||
$currentStart = clone $start;
|
$currentStart = clone $start;
|
||||||
|
|
||||||
while($currentStart < $end) {
|
while ($currentStart < $end) {
|
||||||
$currentEnd = clone $currentStart;
|
$currentEnd = clone $currentStart;
|
||||||
$currentEnd->endOfYear();
|
$currentEnd->endOfYear();
|
||||||
|
|
||||||
@ -70,7 +71,7 @@ class BudgetController extends Controller
|
|||||||
*
|
*
|
||||||
* @return \Symfony\Component\HttpFoundation\Response
|
* @return \Symfony\Component\HttpFoundation\Response
|
||||||
*/
|
*/
|
||||||
public function budget(BudgetRepositoryInterface $repository, Budget $budget)
|
public function budget(BudgetRepositoryInterface $repository, AccountRepositoryInterface $accountRepository, Budget $budget)
|
||||||
{
|
{
|
||||||
|
|
||||||
// dates and times
|
// dates and times
|
||||||
@ -80,6 +81,8 @@ class BudgetController extends Controller
|
|||||||
$final = clone $last;
|
$final = clone $last;
|
||||||
$final->addYears(2);
|
$final->addYears(2);
|
||||||
$last = Navigation::endOfX($last, $range, $final);
|
$last = Navigation::endOfX($last, $range, $final);
|
||||||
|
$accounts = $accountRepository->getAccounts(['Default account', 'Asset account', 'Cash account']);
|
||||||
|
|
||||||
|
|
||||||
// chart properties for cache:
|
// chart properties for cache:
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
@ -97,7 +100,7 @@ class BudgetController extends Controller
|
|||||||
$end->subDay();
|
$end->subDay();
|
||||||
$chartDate = clone $end;
|
$chartDate = clone $end;
|
||||||
$chartDate->startOfMonth();
|
$chartDate->startOfMonth();
|
||||||
$spent = $repository->balanceInPeriod($budget, $first, $end) * -1;
|
$spent = $repository->balanceInPeriodForList($budget, $first, $end, $accounts) * -1;
|
||||||
$entries->push([$chartDate, $spent]);
|
$entries->push([$chartDate, $spent]);
|
||||||
$first = Navigation::addPeriod($first, $range, 0);
|
$first = Navigation::addPeriod($first, $range, 0);
|
||||||
}
|
}
|
||||||
@ -162,12 +165,13 @@ class BudgetController extends Controller
|
|||||||
*
|
*
|
||||||
* @return \Symfony\Component\HttpFoundation\Response
|
* @return \Symfony\Component\HttpFoundation\Response
|
||||||
*/
|
*/
|
||||||
public function frontpage(BudgetRepositoryInterface $repository)
|
public function frontpage(BudgetRepositoryInterface $repository, AccountRepositoryInterface $accountRepository)
|
||||||
{
|
{
|
||||||
$budgets = $repository->getBudgets();
|
$budgets = $repository->getBudgets();
|
||||||
$start = Session::get('start', Carbon::now()->startOfMonth());
|
$start = Session::get('start', Carbon::now()->startOfMonth());
|
||||||
$end = Session::get('end', Carbon::now()->endOfMonth());
|
$end = Session::get('end', Carbon::now()->endOfMonth());
|
||||||
$allEntries = new Collection;
|
$allEntries = new Collection;
|
||||||
|
$accounts = $accountRepository->getAccounts(['Default account', 'Asset account', 'Cash account']);
|
||||||
|
|
||||||
// chart properties for cache:
|
// chart properties for cache:
|
||||||
$cache = new CacheProperties();
|
$cache = new CacheProperties();
|
||||||
@ -185,13 +189,13 @@ class BudgetController extends Controller
|
|||||||
foreach ($budgets as $budget) {
|
foreach ($budgets as $budget) {
|
||||||
$repetitions = $repository->getBudgetLimitRepetitions($budget, $start, $end);
|
$repetitions = $repository->getBudgetLimitRepetitions($budget, $start, $end);
|
||||||
if ($repetitions->count() == 0) {
|
if ($repetitions->count() == 0) {
|
||||||
$expenses = $repository->balanceInPeriod($budget, $start, $end, true) * -1;
|
$expenses = $repository->balanceInPeriodForList($budget, $start, $end, $accounts) * -1;
|
||||||
$allEntries->push([$budget->name, 0, 0, $expenses, 0, 0]);
|
$allEntries->push([$budget->name, 0, 0, $expenses, 0, 0]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/** @var LimitRepetition $repetition */
|
/** @var LimitRepetition $repetition */
|
||||||
foreach ($repetitions as $repetition) {
|
foreach ($repetitions as $repetition) {
|
||||||
$expenses = $repository->balanceInPeriod($budget, $repetition->startdate, $repetition->enddate, true) * -1;
|
$expenses = $repository->balanceInPeriodForList($budget, $repetition->startdate, $repetition->enddate, $accounts) * -1;
|
||||||
// $left can be less than zero.
|
// $left can be less than zero.
|
||||||
// $overspent can be more than zero ( = overspending)
|
// $overspent can be more than zero ( = overspending)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user