mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-27 05:51:56 +00:00
Fix #7920
This commit is contained in:
@@ -63,18 +63,6 @@ class BudgetLimitHandler
|
|||||||
private function updateAvailableBudget(BudgetLimit $budgetLimit): void
|
private function updateAvailableBudget(BudgetLimit $budgetLimit): void
|
||||||
{
|
{
|
||||||
Log::debug(sprintf('Now in updateAvailableBudget(#%d)', $budgetLimit->id));
|
Log::debug(sprintf('Now in updateAvailableBudget(#%d)', $budgetLimit->id));
|
||||||
|
|
||||||
// based on the view range of the user (month week quarter etc) the budget limit could
|
|
||||||
// either overlap multiple available budget periods or be contained in a single one.
|
|
||||||
// all have to be created or updated.
|
|
||||||
try {
|
|
||||||
$viewRange = app('preferences')->get('viewRange', '1M')->data;
|
|
||||||
} catch (ContainerExceptionInterface | NotFoundExceptionInterface $e) {
|
|
||||||
$viewRange = '1M';
|
|
||||||
}
|
|
||||||
$start = app('navigation')->startOfPeriod($budgetLimit->start_date, $viewRange);
|
|
||||||
$end = app('navigation')->startOfPeriod($budgetLimit->end_date, $viewRange);
|
|
||||||
$end = app('navigation')->endOfPeriod($end, $viewRange);
|
|
||||||
$budget = Budget::find($budgetLimit->budget_id);
|
$budget = Budget::find($budgetLimit->budget_id);
|
||||||
if (null === $budget) {
|
if (null === $budget) {
|
||||||
Log::warning('Budget is null, probably deleted, find deleted version.');
|
Log::warning('Budget is null, probably deleted, find deleted version.');
|
||||||
@@ -94,8 +82,23 @@ class BudgetLimitHandler
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// based on the view range of the user (month week quarter etc) the budget limit could
|
||||||
|
// either overlap multiple available budget periods or be contained in a single one.
|
||||||
|
// all have to be created or updated.
|
||||||
|
try {
|
||||||
|
$viewRange = app('preferences')->getForUser($user, 'viewRange', '1M')->data;
|
||||||
|
} catch (ContainerExceptionInterface | NotFoundExceptionInterface $e) {
|
||||||
|
app('log')->error($e->getMessage());
|
||||||
|
$viewRange = '1M';
|
||||||
|
}
|
||||||
|
|
||||||
|
$start = app('navigation')->startOfPeriod($budgetLimit->start_date, $viewRange);
|
||||||
|
$end = app('navigation')->startOfPeriod($budgetLimit->end_date, $viewRange);
|
||||||
|
$end = app('navigation')->endOfPeriod($end, $viewRange);
|
||||||
|
|
||||||
// limit period in total is:
|
// limit period in total is:
|
||||||
$limitPeriod = Period::make($start, $end, precision: Precision::DAY(), boundaries: Boundaries::EXCLUDE_NONE());
|
$limitPeriod = Period::make($start, $end, precision: Precision::DAY(), boundaries: Boundaries::EXCLUDE_NONE());
|
||||||
|
app('log')->debug(sprintf('Limit period is from %s to %s', $start->format('Y-m-d'), $end->format('Y-m-d')));
|
||||||
|
|
||||||
// from the start until the end of the budget limit, need to loop!
|
// from the start until the end of the budget limit, need to loop!
|
||||||
$current = clone $start;
|
$current = clone $start;
|
||||||
@@ -181,8 +184,8 @@ class BudgetLimitHandler
|
|||||||
);
|
);
|
||||||
// overlap in days:
|
// overlap in days:
|
||||||
$limitPeriod = Period::make(
|
$limitPeriod = Period::make(
|
||||||
$budgetLimit->start_date,
|
$budgetLimit->start_date,
|
||||||
$budgetLimit->end_date,
|
$budgetLimit->end_date,
|
||||||
precision : Precision::DAY(),
|
precision : Precision::DAY(),
|
||||||
boundaries: Boundaries::EXCLUDE_NONE()
|
boundaries: Boundaries::EXCLUDE_NONE()
|
||||||
);
|
);
|
||||||
@@ -227,8 +230,8 @@ class BudgetLimitHandler
|
|||||||
return '0';
|
return '0';
|
||||||
}
|
}
|
||||||
$limitPeriod = Period::make(
|
$limitPeriod = Period::make(
|
||||||
$budgetLimit->start_date,
|
$budgetLimit->start_date,
|
||||||
$budgetLimit->end_date,
|
$budgetLimit->end_date,
|
||||||
precision : Precision::DAY(),
|
precision : Precision::DAY(),
|
||||||
boundaries: Boundaries::EXCLUDE_NONE()
|
boundaries: Boundaries::EXCLUDE_NONE()
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ class AutoBudgetCronjob extends AbstractCronjob
|
|||||||
{
|
{
|
||||||
Log::info(sprintf('Will now fire auto budget cron job task for date "%s".', $this->date->format('Y-m-d')));
|
Log::info(sprintf('Will now fire auto budget cron job task for date "%s".', $this->date->format('Y-m-d')));
|
||||||
/** @var CreateAutoBudgetLimits $job */
|
/** @var CreateAutoBudgetLimits $job */
|
||||||
$job = app(CreateAutoBudgetLimits::class);
|
$job = app(CreateAutoBudgetLimits::class, [$this->date]);
|
||||||
$job->setDate($this->date);
|
$job->setDate($this->date);
|
||||||
$job->handle();
|
$job->handle();
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ trait RuleManagement
|
|||||||
'rules.partials.action',
|
'rules.partials.action',
|
||||||
[
|
[
|
||||||
'oldAction' => $oldAction['type'],
|
'oldAction' => $oldAction['type'],
|
||||||
'oldValue' => $oldAction['value'],
|
'oldValue' => $oldAction['value'] ?? '',
|
||||||
'oldChecked' => 1 === (int)($oldAction['stop_processing'] ?? '0'),
|
'oldChecked' => 1 === (int)($oldAction['stop_processing'] ?? '0'),
|
||||||
'count' => $index + 1,
|
'count' => $index + 1,
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user