More exact search for available budgets. #7853

This commit is contained in:
James Cole
2023-08-15 18:37:47 +02:00
parent e3c4dde4ff
commit f67ff98d78
3 changed files with 26 additions and 1 deletions

View File

@@ -82,7 +82,7 @@ class BoxController extends Controller
$currency = app('amount')->getDefaultCurrency(); $currency = app('amount')->getDefaultCurrency();
app('log')->debug(sprintf('Default currency is %s', $currency->code)); app('log')->debug(sprintf('Default currency is %s', $currency->code));
$availableBudgets = $abRepository->getAvailableBudgetsByDate($start, $end); $availableBudgets = $abRepository->getAvailableBudgetsByExactDate($start, $end);
app('log')->debug(sprintf('Found %d available budget(s)', $availableBudgets->count())); app('log')->debug(sprintf('Found %d available budget(s)', $availableBudgets->count()));
$availableBudgets = $availableBudgets->filter( $availableBudgets = $availableBudgets->filter(
static function (AvailableBudget $availableBudget) use ($currency) { static function (AvailableBudget $availableBudget) use ($currency) {

View File

@@ -200,6 +200,23 @@ class AvailableBudgetRepository implements AvailableBudgetRepositoryInterface
return $query->get(); return $query->get();
} }
/**
* Returns all available budget objects.
*
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*
*/
public function getAvailableBudgetsByExactDate(Carbon $start, Carbon $end): Collection
{
return $this->user->availableBudgets()
->where('start_date', '=', $start->format('Y-m-d'))
->where('end_date', '=', $end->format('Y-m-d'))
->get();
}
/** /**
* @inheritDoc * @inheritDoc
*/ */

View File

@@ -116,6 +116,14 @@ interface AvailableBudgetRepositoryInterface
*/ */
public function getAvailableBudgetsByDate(?Carbon $start, ?Carbon $end): Collection; public function getAvailableBudgetsByDate(?Carbon $start, ?Carbon $end): Collection;
/**
* @param Carbon $start
* @param Carbon $end
*
* @return Collection
*/
public function getAvailableBudgetsByExactDate(Carbon $start, Carbon $end): Collection;
/** /**
* Get by transaction currency and date. Should always result in one entry or NULL. * Get by transaction currency and date. Should always result in one entry or NULL.
* *