mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-05 20:22:07 +00:00
Add IBAN to account validator.
This commit is contained in:
@@ -599,7 +599,7 @@ class TransactionJournalFactory
|
|||||||
// validate source account.
|
// validate source account.
|
||||||
$sourceId = isset($data['source_id']) ? (int) $data['source_id'] : null;
|
$sourceId = isset($data['source_id']) ? (int) $data['source_id'] : null;
|
||||||
$sourceName = $data['source_name'] ?? null;
|
$sourceName = $data['source_name'] ?? null;
|
||||||
$validSource = $this->accountValidator->validateSource($sourceId, $sourceName);
|
$validSource = $this->accountValidator->validateSource($sourceId, $sourceName, null);
|
||||||
|
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validSource) {
|
if (false === $validSource) {
|
||||||
@@ -608,8 +608,8 @@ class TransactionJournalFactory
|
|||||||
Log::debug('Source seems valid.');
|
Log::debug('Source seems valid.');
|
||||||
// validate destination account
|
// validate destination account
|
||||||
$destinationId = isset($data['destination_id']) ? (int) $data['destination_id'] : null;
|
$destinationId = isset($data['destination_id']) ? (int) $data['destination_id'] : null;
|
||||||
$destinationName = $data['destination_name'] ?? null;
|
$destinationName = (string)($data['destination_name'] ?? null);
|
||||||
$validDestination = $this->accountValidator->validateDestination($destinationId, $destinationName);
|
$validDestination = $this->accountValidator->validateDestination($destinationId, $destinationName, null);
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validDestination) {
|
if (false === $validDestination) {
|
||||||
throw new FireflyException(sprintf('Destination: %s', $this->accountValidator->destError)); // @codeCoverageIgnore
|
throw new FireflyException(sprintf('Destination: %s', $this->accountValidator->destError)); // @codeCoverageIgnore
|
||||||
|
@@ -208,9 +208,9 @@ class ConvertController extends Controller
|
|||||||
$sourceId = '' === $sourceId || null === $sourceId ? null : (int) $sourceId;
|
$sourceId = '' === $sourceId || null === $sourceId ? null : (int) $sourceId;
|
||||||
$sourceName = '' === $sourceName ? null : $sourceName;
|
$sourceName = '' === $sourceName ? null : $sourceName;
|
||||||
$destinationId = '' === $destinationId || null === $destinationId ? null : (int) $destinationId;
|
$destinationId = '' === $destinationId || null === $destinationId ? null : (int) $destinationId;
|
||||||
$destinationName = '' === $destinationName ? null : $destinationName;
|
$destinationName = (string)('' === $destinationName ? null : $destinationName);
|
||||||
$validSource = $validator->validateSource($sourceId, $sourceName);
|
$validSource = $validator->validateSource($sourceId, $sourceName, null);
|
||||||
$validDestination = $validator->validateDestination($destinationId, $destinationName);
|
$validDestination = $validator->validateDestination($destinationId, $destinationName, null);
|
||||||
|
|
||||||
if (false === $validSource) {
|
if (false === $validSource) {
|
||||||
throw new FireflyException(sprintf(trans('firefly.convert_invalid_source'), $journal->id));
|
throw new FireflyException(sprintf(trans('firefly.convert_invalid_source'), $journal->id));
|
||||||
|
@@ -265,7 +265,7 @@ class RecurrenceFormRequest extends Request
|
|||||||
|
|
||||||
|
|
||||||
// validate source account.
|
// validate source account.
|
||||||
$validSource = $accountValidator->validateSource($sourceId, null);
|
$validSource = $accountValidator->validateSource($sourceId, null, null);
|
||||||
|
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validSource) {
|
if (false === $validSource) {
|
||||||
@@ -277,7 +277,7 @@ class RecurrenceFormRequest extends Request
|
|||||||
}
|
}
|
||||||
|
|
||||||
// validate destination account
|
// validate destination account
|
||||||
$validDestination = $accountValidator->validateDestination($destinationId, null);
|
$validDestination = $accountValidator->validateDestination($destinationId, null, null);
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validDestination) {
|
if (false === $validDestination) {
|
||||||
$message = (string) trans('validation.generic_invalid_destination');
|
$message = (string) trans('validation.generic_invalid_destination');
|
||||||
|
@@ -58,14 +58,14 @@ class IsTransferAccount implements Rule
|
|||||||
$validator->setTransactionType(TransactionType::TRANSFER);
|
$validator->setTransactionType(TransactionType::TRANSFER);
|
||||||
$validator->setUser(auth()->user());
|
$validator->setUser(auth()->user());
|
||||||
|
|
||||||
$validAccount = $validator->validateSource(null, (string)$value);
|
$validAccount = $validator->validateSource(null, (string)$value, null);
|
||||||
if (true === $validAccount) {
|
if (true === $validAccount) {
|
||||||
Log::debug('Found account based on name. Return true.');
|
Log::debug('Found account based on name. Return true.');
|
||||||
|
|
||||||
// found by name, use repos to return.
|
// found by name, use repos to return.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
$validAccount = $validator->validateSource((int)$value, null);
|
$validAccount = $validator->validateSource((int)$value, null, null);
|
||||||
Log::debug(sprintf('Search by id (%d), result is %s.', (int)$value, var_export($validAccount, true)));
|
Log::debug(sprintf('Search by id (%d), result is %s.', (int)$value, var_export($validAccount, true)));
|
||||||
|
|
||||||
return !(false === $validAccount);
|
return !(false === $validAccount);
|
||||||
|
@@ -98,11 +98,11 @@ trait RecurringTransactionTrait
|
|||||||
$validator = app(AccountValidator::class);
|
$validator = app(AccountValidator::class);
|
||||||
$validator->setUser($recurrence->user);
|
$validator->setUser($recurrence->user);
|
||||||
$validator->setTransactionType($recurrence->transactionType->type);
|
$validator->setTransactionType($recurrence->transactionType->type);
|
||||||
if (!$validator->validateSource($source->id, null)) {
|
if (!$validator->validateSource($source->id, null, null)) {
|
||||||
throw new FireflyException(sprintf('Source invalid: %s', $validator->sourceError)); // @codeCoverageIgnore
|
throw new FireflyException(sprintf('Source invalid: %s', $validator->sourceError)); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$validator->validateDestination($destination->id, null)) {
|
if (!$validator->validateDestination($destination->id, null, null)) {
|
||||||
throw new FireflyException(sprintf('Destination invalid: %s', $validator->destError)); // @codeCoverageIgnore
|
throw new FireflyException(sprintf('Destination invalid: %s', $validator->destError)); // @codeCoverageIgnore
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -359,7 +359,7 @@ class JournalUpdateService
|
|||||||
$validator->source = $this->getValidSourceAccount();
|
$validator->source = $this->getValidSourceAccount();
|
||||||
|
|
||||||
|
|
||||||
$result = $validator->validateDestination($destId, $destName);
|
$result = $validator->validateDestination($destId, $destName, null);
|
||||||
Log::debug(sprintf('hasValidDestinationAccount(%d, "%s") will return %s', $destId, $destName, var_export($result, true)));
|
Log::debug(sprintf('hasValidDestinationAccount(%d, "%s") will return %s', $destId, $destName, var_export($result, true)));
|
||||||
|
|
||||||
// validate submitted info:
|
// validate submitted info:
|
||||||
@@ -391,7 +391,7 @@ class JournalUpdateService
|
|||||||
$validator->setTransactionType($expectedType);
|
$validator->setTransactionType($expectedType);
|
||||||
$validator->setUser($this->transactionJournal->user);
|
$validator->setUser($this->transactionJournal->user);
|
||||||
|
|
||||||
$result = $validator->validateSource($sourceId, $sourceName);
|
$result = $validator->validateSource($sourceId, $sourceName, null);
|
||||||
Log::debug(sprintf('hasValidSourceAccount(%d, "%s") will return %s', $sourceId, $sourceName, var_export($result, true)));
|
Log::debug(sprintf('hasValidSourceAccount(%d, "%s") will return %s', $sourceId, $sourceName, var_export($result, true)));
|
||||||
|
|
||||||
// validate submitted info:
|
// validate submitted info:
|
||||||
|
@@ -80,14 +80,15 @@ class AccountValidator
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int|null $destinationId
|
* @param int|null $accountId
|
||||||
* @param $destinationName
|
* @param string|null $accountName
|
||||||
|
* @param string|null $accountIban
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateDestination(?int $destinationId, $destinationName): bool
|
public function validateDestination(?int $accountId, ?string $accountName, ?string $accountIban): bool
|
||||||
{
|
{
|
||||||
Log::debug(sprintf('Now in AccountValidator::validateDestination(%d, "%s")', $destinationId, $destinationName));
|
Log::debug(sprintf('Now in AccountValidator::validateDestination(%d, "%s", "%s")', $accountId, $accountName, $accountIban));
|
||||||
if (null === $this->source) {
|
if (null === $this->source) {
|
||||||
Log::error('Source is NULL, always FALSE.');
|
Log::error('Source is NULL, always FALSE.');
|
||||||
$this->destError = 'No source account validation has taken place yet. Please do this first or overrule the object.';
|
$this->destError = 'No source account validation has taken place yet. Please do this first or overrule the object.';
|
||||||
@@ -103,19 +104,19 @@ class AccountValidator
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TransactionType::WITHDRAWAL:
|
case TransactionType::WITHDRAWAL:
|
||||||
$result = $this->validateWithdrawalDestination($destinationId, $destinationName);
|
$result = $this->validateWithdrawalDestination($accountId, $accountName);
|
||||||
break;
|
break;
|
||||||
case TransactionType::DEPOSIT:
|
case TransactionType::DEPOSIT:
|
||||||
$result = $this->validateDepositDestination($destinationId, $destinationName);
|
$result = $this->validateDepositDestination($accountId, $accountName);
|
||||||
break;
|
break;
|
||||||
case TransactionType::TRANSFER:
|
case TransactionType::TRANSFER:
|
||||||
$result = $this->validateTransferDestination($destinationId, $destinationName);
|
$result = $this->validateTransferDestination($accountId, $accountName);
|
||||||
break;
|
break;
|
||||||
case TransactionType::OPENING_BALANCE:
|
case TransactionType::OPENING_BALANCE:
|
||||||
$result = $this->validateOBDestination($destinationId, $destinationName);
|
$result = $this->validateOBDestination($accountId, $accountName);
|
||||||
break;
|
break;
|
||||||
case TransactionType::RECONCILIATION:
|
case TransactionType::RECONCILIATION:
|
||||||
$result = $this->validateReconciliationDestination($destinationId);
|
$result = $this->validateReconciliationDestination($accountId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -125,12 +126,13 @@ class AccountValidator
|
|||||||
/**
|
/**
|
||||||
* @param int|null $accountId
|
* @param int|null $accountId
|
||||||
* @param string|null $accountName
|
* @param string|null $accountName
|
||||||
|
* @param string|null $accountIban
|
||||||
*
|
*
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function validateSource(?int $accountId, ?string $accountName): bool
|
public function validateSource(?int $accountId, ?string $accountName, ?string $accountIban): bool
|
||||||
{
|
{
|
||||||
Log::debug(sprintf('Now in AccountValidator::validateSource(%d, "%s")', $accountId, $accountName));
|
Log::debug(sprintf('Now in AccountValidator::validateSource(%d, "%s", "%s")', $accountId, $accountName, $accountIban));
|
||||||
switch ($this->transactionType) {
|
switch ($this->transactionType) {
|
||||||
default:
|
default:
|
||||||
$result = false;
|
$result = false;
|
||||||
|
@@ -65,7 +65,7 @@ trait RecurrenceValidation
|
|||||||
// validate source account.
|
// validate source account.
|
||||||
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : null;
|
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : null;
|
||||||
$sourceName = $transaction['source_name'] ?? null;
|
$sourceName = $transaction['source_name'] ?? null;
|
||||||
$validSource = $accountValidator->validateSource($sourceId, $sourceName);
|
$validSource = $accountValidator->validateSource($sourceId, $sourceName, null);
|
||||||
|
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validSource) {
|
if (false === $validSource) {
|
||||||
@@ -77,7 +77,7 @@ trait RecurrenceValidation
|
|||||||
// validate destination account
|
// validate destination account
|
||||||
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null;
|
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null;
|
||||||
$destinationName = $transaction['destination_name'] ?? null;
|
$destinationName = $transaction['destination_name'] ?? null;
|
||||||
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName);
|
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName, null);
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validDestination) {
|
if (false === $validDestination) {
|
||||||
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
|
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
|
||||||
|
@@ -72,9 +72,10 @@ trait TransactionValidation
|
|||||||
$accountValidator->setTransactionType($transactionType);
|
$accountValidator->setTransactionType($transactionType);
|
||||||
|
|
||||||
// validate source account.
|
// validate source account.
|
||||||
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : null;
|
$sourceId = isset($transaction['source_id']) ? (int) $transaction['source_id'] : null;
|
||||||
$sourceName = $transaction['source_name'] ?? null;
|
$sourceName = $transaction['source_name'] ?? null;
|
||||||
$validSource = $accountValidator->validateSource($sourceId, $sourceName);
|
$sourceIban = $transaction['source_iban'] ?? null;
|
||||||
|
$validSource = $accountValidator->validateSource($sourceId, $sourceName, $sourceIban);
|
||||||
|
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validSource) {
|
if (false === $validSource) {
|
||||||
@@ -84,9 +85,10 @@ trait TransactionValidation
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// validate destination account
|
// validate destination account
|
||||||
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : null;
|
$destinationId = isset($transaction['destination_id']) ? (int) $transaction['destination_id'] : null;
|
||||||
$destinationName = $transaction['destination_name'] ?? null;
|
$destinationName = $transaction['destination_name'] ?? null;
|
||||||
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName);
|
$destinationIban = $transaction['destination_iban'] ?? null;
|
||||||
|
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName, $destinationIban);
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validDestination) {
|
if (false === $validDestination) {
|
||||||
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
|
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
|
||||||
@@ -140,7 +142,7 @@ trait TransactionValidation
|
|||||||
// validate source account.
|
// validate source account.
|
||||||
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : $originalData['source_id'];
|
$sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : $originalData['source_id'];
|
||||||
$sourceName = $transaction['source_name'] ?? $originalData['source_name'];
|
$sourceName = $transaction['source_name'] ?? $originalData['source_name'];
|
||||||
$validSource = $accountValidator->validateSource($sourceId, $sourceName);
|
$validSource = $accountValidator->validateSource($sourceId, $sourceName, null);
|
||||||
|
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validSource) {
|
if (false === $validSource) {
|
||||||
@@ -152,7 +154,7 @@ trait TransactionValidation
|
|||||||
// validate destination account
|
// validate destination account
|
||||||
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : $originalData['destination_id'];
|
$destinationId = isset($transaction['destination_id']) ? (int)$transaction['destination_id'] : $originalData['destination_id'];
|
||||||
$destinationName = $transaction['destination_name'] ?? $originalData['destination_name'];
|
$destinationName = $transaction['destination_name'] ?? $originalData['destination_name'];
|
||||||
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName);
|
$validDestination = $accountValidator->validateDestination($destinationId, $destinationName, null);
|
||||||
// do something with result:
|
// do something with result:
|
||||||
if (false === $validDestination) {
|
if (false === $validDestination) {
|
||||||
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
|
$validator->errors()->add(sprintf('transactions.%d.destination_id', $index), $accountValidator->destError);
|
||||||
|
Reference in New Issue
Block a user