From c8ecb3e0eec623cdc86d128db73800c0bb2fa61c Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 10 Mar 2018 09:44:04 +0100 Subject: [PATCH] Fix #1199 for web interface --- app/Http/Requests/SplitJournalFormRequest.php | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/app/Http/Requests/SplitJournalFormRequest.php b/app/Http/Requests/SplitJournalFormRequest.php index 51de56ceed..9e96de1f30 100644 --- a/app/Http/Requests/SplitJournalFormRequest.php +++ b/app/Http/Requests/SplitJournalFormRequest.php @@ -22,6 +22,8 @@ declare(strict_types=1); namespace FireflyIII\Http\Requests; +use Illuminate\Validation\Validator; + /** * Class SplitJournalFormRequest. */ @@ -127,4 +129,39 @@ class SplitJournalFormRequest extends Request ]; } + /** + * Configure the validator instance. + * + * @param Validator $validator + * + * @return void + */ + public function withValidator(Validator $validator): void + { + $validator->after( + function (Validator $validator) { + $this->sameAccounts($validator); + } + ); + } + + /** + * + */ + protected function sameAccounts(Validator $validator): void + { + $data = $this->getAll(); + $transactions = $data['transactions'] ?? []; + /** @var array $array */ + foreach ($transactions as $array) { + if ($array['destination_id'] !== null && $array['source_id'] !== null) { + if ($array['destination_id'] === $array['source_id']) { + $validator->errors()->add('journal_source_account_id', trans('validation.source_equals_destination')); + $validator->errors()->add('journal_destination_account_id', trans('validation.source_equals_destination')); + } + } + } + + } + }