mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Move method to correct repository.
This commit is contained in:
parent
09bc50dd4d
commit
a90eacf686
@ -405,7 +405,7 @@ class BudgetController extends Controller
|
|||||||
return response()->json($cache->get()); // @codeCoverageIgnore
|
return response()->json($cache->get()); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
$periods = app('navigation')->listOfPeriods($start, $end);
|
$periods = app('navigation')->listOfPeriods($start, $end);
|
||||||
$entries = $this->repository->getBudgetPeriodReport(new Collection([$budget]), $accounts, $start, $end); // get the expenses
|
$entries = $this->opsRepository->getBudgetPeriodReport(new Collection([$budget]), $accounts, $start, $end); // get the expenses
|
||||||
$budgeted = $this->getBudgetedInPeriod($budget, $start, $end);
|
$budgeted = $this->getBudgetedInPeriod($budget, $start, $end);
|
||||||
|
|
||||||
// join them into one set of data:
|
// join them into one set of data:
|
||||||
|
@ -26,6 +26,7 @@ use Carbon\Carbon;
|
|||||||
use FireflyIII\Helpers\Report\BudgetReportHelperInterface;
|
use FireflyIII\Helpers\Report\BudgetReportHelperInterface;
|
||||||
use FireflyIII\Http\Controllers\Controller;
|
use FireflyIII\Http\Controllers\Controller;
|
||||||
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
|
||||||
|
use FireflyIII\Repositories\Budget\OperationsRepositoryInterface;
|
||||||
use FireflyIII\Support\CacheProperties;
|
use FireflyIII\Support\CacheProperties;
|
||||||
use FireflyIII\Support\Http\Controllers\BasicDataSupport;
|
use FireflyIII\Support\Http\Controllers\BasicDataSupport;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
@ -98,8 +99,13 @@ class BudgetController extends Controller
|
|||||||
// generate budget report right here.
|
// generate budget report right here.
|
||||||
/** @var BudgetRepositoryInterface $repository */
|
/** @var BudgetRepositoryInterface $repository */
|
||||||
$repository = app(BudgetRepositoryInterface::class);
|
$repository = app(BudgetRepositoryInterface::class);
|
||||||
|
|
||||||
|
/** @var OperationsRepositoryInterface $opsRepository */
|
||||||
|
$opsRepository= app(OperationsRepositoryInterface::class);
|
||||||
|
|
||||||
|
|
||||||
$budgets = $repository->getBudgets();
|
$budgets = $repository->getBudgets();
|
||||||
$data = $repository->getBudgetPeriodReport($budgets, $accounts, $start, $end);
|
$data = $opsRepository->getBudgetPeriodReport($budgets, $accounts, $start, $end);
|
||||||
$noBudget = $repository->getNoBudgetPeriodReport($accounts, $start, $end); // append report data for "no budget"
|
$noBudget = $repository->getNoBudgetPeriodReport($accounts, $start, $end); // append report data for "no budget"
|
||||||
$data = array_merge($data, $noBudget);
|
$data = array_merge($data, $noBudget);
|
||||||
$report = $this->filterPeriodReport($data);
|
$report = $this->filterPeriodReport($data);
|
||||||
|
@ -206,57 +206,6 @@ class BudgetRepository implements BudgetRepositoryInterface
|
|||||||
return $set;
|
return $set;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method is being used to generate the budget overview in the year/multi-year report. Its used
|
|
||||||
* in both the year/multi-year budget overview AND in the accompanying chart.
|
|
||||||
*
|
|
||||||
* @param Collection $budgets
|
|
||||||
* @param Collection $accounts
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
*/
|
|
||||||
public function getBudgetPeriodReport(Collection $budgets, Collection $accounts, Carbon $start, Carbon $end): array
|
|
||||||
{
|
|
||||||
$carbonFormat = Navigation::preferredCarbonFormat($start, $end);
|
|
||||||
$data = [];
|
|
||||||
|
|
||||||
|
|
||||||
// get all transactions:
|
|
||||||
/** @var GroupCollectorInterface $collector */
|
|
||||||
$collector = app(GroupCollectorInterface::class);
|
|
||||||
$collector->setAccounts($accounts)->setRange($start, $end);
|
|
||||||
$collector->setBudgets($budgets);
|
|
||||||
$journals = $collector->getExtractedJournals();
|
|
||||||
|
|
||||||
// loop transactions:
|
|
||||||
/** @var array $journal */
|
|
||||||
foreach ($journals as $journal) {
|
|
||||||
// prep data array for currency:
|
|
||||||
$budgetId = (int)$journal['budget_id'];
|
|
||||||
$budgetName = $journal['budget_name'];
|
|
||||||
$currencyId = (int)$journal['currency_id'];
|
|
||||||
$key = sprintf('%d-%d', $budgetId, $currencyId);
|
|
||||||
|
|
||||||
$data[$key] = $data[$key] ?? [
|
|
||||||
'id' => $budgetId,
|
|
||||||
'name' => sprintf('%s (%s)', $budgetName, $journal['currency_name']),
|
|
||||||
'sum' => '0',
|
|
||||||
'currency_id' => $currencyId,
|
|
||||||
'currency_code' => $journal['currency_code'],
|
|
||||||
'currency_name' => $journal['currency_name'],
|
|
||||||
'currency_symbol' => $journal['currency_symbol'],
|
|
||||||
'currency_decimal_places' => $journal['currency_decimal_places'],
|
|
||||||
'entries' => [],
|
|
||||||
];
|
|
||||||
$date = $journal['date']->format($carbonFormat);
|
|
||||||
$data[$key]['entries'][$date] = bcadd($data[$budgetId]['entries'][$date] ?? '0', $journal['amount']);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Collection
|
* @return Collection
|
||||||
*/
|
*/
|
||||||
|
@ -88,17 +88,6 @@ interface BudgetRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function getActiveBudgets(): Collection;
|
public function getActiveBudgets(): Collection;
|
||||||
|
|
||||||
/**
|
|
||||||
* @param Collection $budgets
|
|
||||||
* @param Collection $accounts
|
|
||||||
* @param Carbon $start
|
|
||||||
* @param Carbon $end
|
|
||||||
*
|
|
||||||
* @return array
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
public function getBudgetPeriodReport(Collection $budgets, Collection $accounts, Carbon $start, Carbon $end): array;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Collection
|
* @return Collection
|
||||||
*/
|
*/
|
||||||
@ -113,7 +102,6 @@ interface BudgetRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function getByIds(array $budgetIds): Collection;
|
public function getByIds(array $budgetIds): Collection;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Collection
|
* @return Collection
|
||||||
*/
|
*/
|
||||||
|
@ -132,6 +132,58 @@ class OperationsRepository implements OperationsRepositoryInterface
|
|||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method is being used to generate the budget overview in the year/multi-year report. Its used
|
||||||
|
* in both the year/multi-year budget overview AND in the accompanying chart.
|
||||||
|
*
|
||||||
|
* @param Collection $budgets
|
||||||
|
* @param Collection $accounts
|
||||||
|
* @param Carbon $start
|
||||||
|
* @param Carbon $end
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public function getBudgetPeriodReport(Collection $budgets, Collection $accounts, Carbon $start, Carbon $end): array
|
||||||
|
{
|
||||||
|
$carbonFormat = app('navigation')->preferredCarbonFormat($start, $end);
|
||||||
|
$data = [];
|
||||||
|
|
||||||
|
|
||||||
|
// get all transactions:
|
||||||
|
/** @var GroupCollectorInterface $collector */
|
||||||
|
$collector = app(GroupCollectorInterface::class);
|
||||||
|
$collector->setAccounts($accounts)->setRange($start, $end);
|
||||||
|
$collector->setBudgets($budgets);
|
||||||
|
$journals = $collector->getExtractedJournals();
|
||||||
|
|
||||||
|
// loop transactions:
|
||||||
|
/** @var array $journal */
|
||||||
|
foreach ($journals as $journal) {
|
||||||
|
// prep data array for currency:
|
||||||
|
$budgetId = (int)$journal['budget_id'];
|
||||||
|
$budgetName = $journal['budget_name'];
|
||||||
|
$currencyId = (int)$journal['currency_id'];
|
||||||
|
$key = sprintf('%d-%d', $budgetId, $currencyId);
|
||||||
|
|
||||||
|
$data[$key] = $data[$key] ?? [
|
||||||
|
'id' => $budgetId,
|
||||||
|
'name' => sprintf('%s (%s)', $budgetName, $journal['currency_name']),
|
||||||
|
'sum' => '0',
|
||||||
|
'currency_id' => $currencyId,
|
||||||
|
'currency_code' => $journal['currency_code'],
|
||||||
|
'currency_name' => $journal['currency_name'],
|
||||||
|
'currency_symbol' => $journal['currency_symbol'],
|
||||||
|
'currency_decimal_places' => $journal['currency_decimal_places'],
|
||||||
|
'entries' => [],
|
||||||
|
];
|
||||||
|
$date = $journal['date']->format($carbonFormat);
|
||||||
|
$data[$key]['entries'][$date] = bcadd($data[$budgetId]['entries'][$date] ?? '0', $journal['amount']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param User $user
|
* @param User $user
|
||||||
*/
|
*/
|
||||||
|
@ -56,6 +56,17 @@ interface OperationsRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function collectBudgetInformation(Collection $budgets, Carbon $start, Carbon $end): array;
|
public function collectBudgetInformation(Collection $budgets, Carbon $start, Carbon $end): array;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Collection $budgets
|
||||||
|
* @param Collection $accounts
|
||||||
|
* @param Carbon $start
|
||||||
|
* @param Carbon $end
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public function getBudgetPeriodReport(Collection $budgets, Collection $accounts, Carbon $start, Carbon $end): array;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param User $user
|
* @param User $user
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user