From 83f5f776a60eb654fcdd4afaec7f6db5fe32da4d Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 4 Jan 2017 17:25:28 +0100 Subject: [PATCH] Code for #522 --- app/Http/Requests/BillFormRequest.php | 4 ++-- app/Http/Requests/JournalFormRequest.php | 2 +- app/Http/Requests/PiggyBankFormRequest.php | 2 +- app/Support/ExpandedForm.php | 3 --- app/Validation/FireflyValidator.php | 14 ++++++++++++++ resources/lang/en_US/validation.php | 1 + 6 files changed, 19 insertions(+), 7 deletions(-) diff --git a/app/Http/Requests/BillFormRequest.php b/app/Http/Requests/BillFormRequest.php index c27a24377d..0b0b85e29d 100644 --- a/app/Http/Requests/BillFormRequest.php +++ b/app/Http/Requests/BillFormRequest.php @@ -67,8 +67,8 @@ class BillFormRequest extends Request $rules = [ 'name' => $nameRule, 'match' => $matchRule, - 'amount_min' => 'required|numeric|min:0.01', - 'amount_max' => 'required|numeric|min:0.01', + 'amount_min' => 'required|numeric|more:0', + 'amount_max' => 'required|numeric|more:0', 'amount_currency_id_amount_min' => 'required|exists:transaction_currencies,id', 'amount_currency_id_amount_max' => 'required|exists:transaction_currencies,id', 'date' => 'required|date', diff --git a/app/Http/Requests/JournalFormRequest.php b/app/Http/Requests/JournalFormRequest.php index 69734b26bf..2ecc96af87 100644 --- a/app/Http/Requests/JournalFormRequest.php +++ b/app/Http/Requests/JournalFormRequest.php @@ -94,7 +94,7 @@ class JournalFormRequest extends Request 'notes' => 'min:1,max:50000', // and then transaction rules: 'description' => 'required|between:1,255', - 'amount' => 'numeric|required|min:0.01', + 'amount' => 'numeric|required|more:0', 'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id', 'category' => 'between:1,255', 'source_account_id' => 'numeric|belongsToUser:accounts,id', diff --git a/app/Http/Requests/PiggyBankFormRequest.php b/app/Http/Requests/PiggyBankFormRequest.php index 3411975166..d0e6889d62 100644 --- a/app/Http/Requests/PiggyBankFormRequest.php +++ b/app/Http/Requests/PiggyBankFormRequest.php @@ -63,7 +63,7 @@ class PiggyBankFormRequest extends Request $rules = [ 'name' => $nameRule, 'account_id' => 'required|belongsToUser:accounts', - 'targetamount' => 'required|min:0.01', + 'targetamount' => 'required|numeric|more:0', 'amount_currency_id_targetamount' => 'required|exists:transaction_currencies,id', 'startdate' => 'date', 'targetdate' => $targetDateRule, diff --git a/app/Support/ExpandedForm.php b/app/Support/ExpandedForm.php index 258da0331b..28b6972ed7 100644 --- a/app/Support/ExpandedForm.php +++ b/app/Support/ExpandedForm.php @@ -496,9 +496,6 @@ class ExpandedForm $classes = $this->getHolderClasses($name); $value = $this->fillFieldValue($name, $value); $options['step'] = 'any'; - if ($view !== 'balance') { - $options['min'] = '0.01'; - } $defaultCurrency = isset($options['currency']) ? $options['currency'] : Amt::getDefaultCurrency(); $currencies = Amt::getAllCurrencies(); unset($options['currency']); diff --git a/app/Validation/FireflyValidator.php b/app/Validation/FireflyValidator.php index 778996bb88..61590816b4 100644 --- a/app/Validation/FireflyValidator.php +++ b/app/Validation/FireflyValidator.php @@ -147,6 +147,20 @@ class FireflyValidator extends Validator return (intval($checksum) === 1); } + /** + * @param $attribute + * @param $value + * @param $parameters + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * + * @return bool + */ + public function validateMore($attribute, $value, $parameters): bool + { + $compare = $parameters[0] ?? '0'; + return bccomp($value, $compare) > 0; + } + /** * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @param $attribute diff --git a/resources/lang/en_US/validation.php b/resources/lang/en_US/validation.php index 7905a9f4c8..ea21edefe4 100644 --- a/resources/lang/en_US/validation.php +++ b/resources/lang/en_US/validation.php @@ -23,6 +23,7 @@ return [ 'belongs_to_user' => 'The value of :attribute is unknown', 'accepted' => 'The :attribute must be accepted.', 'bic' => 'This is not a valid BIC.', + 'more' => ':attribute must be larger than zero.', 'active_url' => 'The :attribute is not a valid URL.', 'after' => 'The :attribute must be a date after :date.', 'alpha' => 'The :attribute may only contain letters.',