mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-13 16:00:13 +00:00
Fix issue in budget limits
This commit is contained in:
@@ -151,10 +151,14 @@ class BudgetLimitController extends Controller
|
|||||||
|
|
||||||
// sanity check on amount:
|
// sanity check on amount:
|
||||||
if ((float) $amount === 0.0) {
|
if ((float) $amount === 0.0) {
|
||||||
$amount = '1';
|
if (null !== $limit) {
|
||||||
|
$this->blRepository->destroyBudgetLimit($limit);
|
||||||
|
}
|
||||||
|
// return empty=ish array:
|
||||||
|
return response()->json([]);
|
||||||
}
|
}
|
||||||
if ((int) $amount > 65536) {
|
if ((int) $amount > 16777216) {
|
||||||
$amount = '65536';
|
$amount = '16777216';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null !== $limit) {
|
if (null !== $limit) {
|
||||||
@@ -175,7 +179,7 @@ class BudgetLimitController extends Controller
|
|||||||
|
|
||||||
if ($request->expectsJson()) {
|
if ($request->expectsJson()) {
|
||||||
$array = $limit->toArray();
|
$array = $limit->toArray();
|
||||||
// add some extra meta data:
|
// add some extra metadata:
|
||||||
$spentArr = $this->opsRepository->sumExpenses($limit->start_date, $limit->end_date, null, new Collection([$budget]), $currency);
|
$spentArr = $this->opsRepository->sumExpenses($limit->start_date, $limit->end_date, null, new Collection([$budget]), $currency);
|
||||||
$array['spent'] = $spentArr[$currency->id]['sum'] ?? '0';
|
$array['spent'] = $spentArr[$currency->id]['sum'] ?? '0';
|
||||||
$array['left_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, bcadd($array['spent'], $array['amount']));
|
$array['left_formatted'] = app('amount')->formatAnything($limit->transactionCurrency, bcadd($array['spent'], $array['amount']));
|
||||||
@@ -208,10 +212,19 @@ class BudgetLimitController extends Controller
|
|||||||
|
|
||||||
// sanity check on amount:
|
// sanity check on amount:
|
||||||
if ((float) $amount === 0.0) {
|
if ((float) $amount === 0.0) {
|
||||||
$amount = '1';
|
$budgetId = $budgetLimit->budget_id;
|
||||||
|
$currency = $budgetLimit->transactionCurrency;
|
||||||
|
$this->blRepository->destroyBudgetLimit($budgetLimit);
|
||||||
|
$array = [
|
||||||
|
'budget_id' => $budgetId,
|
||||||
|
'left_formatted' => app('amount')->formatAnything($currency, '0'),
|
||||||
|
'left_per_day_formatted' => app('amount')->formatAnything($currency, '0'),
|
||||||
|
'transaction_currency_id' => $currency->id,
|
||||||
|
];
|
||||||
|
return response()->json($array);
|
||||||
}
|
}
|
||||||
if ((int) $amount > 65536) {
|
if ((int) $amount > 16777216) { // 16 million
|
||||||
$amount = '65536';
|
$amount = '16777216';
|
||||||
}
|
}
|
||||||
|
|
||||||
$limit = $this->blRepository->update($budgetLimit, ['amount' => $amount]);
|
$limit = $this->blRepository->update($budgetLimit, ['amount' => $amount]);
|
||||||
|
6
public/v1/js/ff/budgets/index.js
vendored
6
public/v1/js/ff/budgets/index.js
vendored
@@ -79,6 +79,7 @@ $(function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function updateBudgetedAmount(e) {
|
function updateBudgetedAmount(e) {
|
||||||
|
console.log('updateBudgetedAmount');
|
||||||
var input = $(e.currentTarget);
|
var input = $(e.currentTarget);
|
||||||
var budgetId = parseInt(input.data('id'));
|
var budgetId = parseInt(input.data('id'));
|
||||||
var budgetLimitId = parseInt(input.data('limit'));
|
var budgetLimitId = parseInt(input.data('limit'));
|
||||||
@@ -95,7 +96,7 @@ function updateBudgetedAmount(e) {
|
|||||||
}).done(function (data) {
|
}).done(function (data) {
|
||||||
|
|
||||||
input.prop('disabled', false);
|
input.prop('disabled', false);
|
||||||
|
input.data('limit', data.id);
|
||||||
// update amount left.
|
// update amount left.
|
||||||
$('.left_span[data-limit="0"][data-id="' + budgetId + '"]').html(data.left_formatted);
|
$('.left_span[data-limit="0"][data-id="' + budgetId + '"]').html(data.left_formatted);
|
||||||
if (data.left_per_day > 0) {
|
if (data.left_per_day > 0) {
|
||||||
@@ -113,6 +114,7 @@ function updateBudgetedAmount(e) {
|
|||||||
amount: input.val(),
|
amount: input.val(),
|
||||||
}).done(function (data) {
|
}).done(function (data) {
|
||||||
input.prop('disabled', false);
|
input.prop('disabled', false);
|
||||||
|
input.data('limit', data.id);
|
||||||
$('.left_span[data-limit="' + budgetLimitId + '"]').html(data.left_formatted);
|
$('.left_span[data-limit="' + budgetLimitId + '"]').html(data.left_formatted);
|
||||||
if (data.left_per_day > 0) {
|
if (data.left_per_day > 0) {
|
||||||
$('.left_span[data-limit="' + budgetLimitId + '"]').html(data.left_formatted + '(' + data.left_per_day_formatted + ')');
|
$('.left_span[data-limit="' + budgetLimitId + '"]').html(data.left_formatted + '(' + data.left_per_day_formatted + ')');
|
||||||
@@ -214,7 +216,7 @@ function deleteBudgetLimit(e) {
|
|||||||
var url = deleteBudgetLimitUrl.replace('REPLACEME', budgetLimitId.toString());
|
var url = deleteBudgetLimitUrl.replace('REPLACEME', budgetLimitId.toString());
|
||||||
$.post(url, {_token: token}).then(function () {
|
$.post(url, {_token: token}).then(function () {
|
||||||
$('.bl_entry[data-budget-limit-id="' + budgetLimitId + '"]').remove();
|
$('.bl_entry[data-budget-limit-id="' + budgetLimitId + '"]').remove();
|
||||||
|
|
||||||
});
|
});
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user