mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-23 14:26:58 +00:00
More validation for #3080
This commit is contained in:
@@ -47,6 +47,14 @@ trait TransactionValidation
|
|||||||
$transactionType = $data['type'] ?? 'invalid';
|
$transactionType = $data['type'] ?? 'invalid';
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/** @var AccountValidator $accountValidator */
|
/** @var AccountValidator $accountValidator */
|
||||||
$accountValidator = app(AccountValidator::class);
|
$accountValidator = app(AccountValidator::class);
|
||||||
|
|
||||||
@@ -91,6 +99,14 @@ trait TransactionValidation
|
|||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/** @var AccountValidator $accountValidator */
|
/** @var AccountValidator $accountValidator */
|
||||||
$accountValidator = app(AccountValidator::class);
|
$accountValidator = app(AccountValidator::class);
|
||||||
|
|
||||||
@@ -144,6 +160,13 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
$validDescriptions = 0;
|
$validDescriptions = 0;
|
||||||
foreach ($transactions as $index => $transaction) {
|
foreach ($transactions as $index => $transaction) {
|
||||||
if ('' !== (string)($transaction['description'] ?? null)) {
|
if ('' !== (string)($transaction['description'] ?? null)) {
|
||||||
@@ -168,6 +191,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($transactions as $index => $transaction) {
|
foreach ($transactions as $index => $transaction) {
|
||||||
// if foreign amount is present, then the currency must be as well.
|
// if foreign amount is present, then the currency must be as well.
|
||||||
if (isset($transaction['foreign_amount']) && !(isset($transaction['foreign_currency_id']) || isset($transaction['foreign_currency_code']))
|
if (isset($transaction['foreign_amount']) && !(isset($transaction['foreign_currency_id']) || isset($transaction['foreign_currency_code']))
|
||||||
@@ -195,6 +227,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$groupTitle = $data['group_title'] ?? '';
|
$groupTitle = $data['group_title'] ?? '';
|
||||||
if ('' === $groupTitle && count($transactions) > 1) {
|
if ('' === $groupTitle && count($transactions) > 1) {
|
||||||
$validator->errors()->add('group_title', (string)trans('validation.group_title_mandatory'));
|
$validator->errors()->add('group_title', (string)trans('validation.group_title_mandatory'));
|
||||||
@@ -210,6 +251,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// need at least one transaction
|
// need at least one transaction
|
||||||
if (0 === count($transactions)) {
|
if (0 === count($transactions)) {
|
||||||
$validator->errors()->add('transactions', (string)trans('validation.at_least_one_transaction'));
|
$validator->errors()->add('transactions', (string)trans('validation.at_least_one_transaction'));
|
||||||
@@ -225,6 +275,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? null;
|
$transactions = $data['transactions'] ?? null;
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (null === $transactions) {
|
if (null === $transactions) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -263,6 +322,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$types = [];
|
$types = [];
|
||||||
foreach ($transactions as $index => $transaction) {
|
foreach ($transactions as $index => $transaction) {
|
||||||
$types[] = $transaction['type'] ?? 'invalid';
|
$types[] = $transaction['type'] ?? 'invalid';
|
||||||
@@ -289,6 +357,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$types = [];
|
$types = [];
|
||||||
foreach ($transactions as $index => $transaction) {
|
foreach ($transactions as $index => $transaction) {
|
||||||
$originalType = $this->getOriginalType((int)($transaction['transaction_journal_id'] ?? 0));
|
$originalType = $this->getOriginalType((int)($transaction['transaction_journal_id'] ?? 0));
|
||||||
@@ -373,6 +450,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// needs to be split
|
// needs to be split
|
||||||
if (count($transactions) < 2) {
|
if (count($transactions) < 2) {
|
||||||
return;
|
return;
|
||||||
@@ -414,6 +500,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// needs to be split
|
// needs to be split
|
||||||
if (count($transactions) < 2) {
|
if (count($transactions) < 2) {
|
||||||
return;
|
return;
|
||||||
@@ -497,6 +592,15 @@ trait TransactionValidation
|
|||||||
{
|
{
|
||||||
$data = $validator->getData();
|
$data = $validator->getData();
|
||||||
$transactions = $data['transactions'] ?? [];
|
$transactions = $data['transactions'] ?? [];
|
||||||
|
|
||||||
|
if (!is_countable($data['transactions'])) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
'transactions.0.description', (string)trans('validation.filled', ['attribute' => (string)trans('validation.attributes.description')])
|
||||||
|
);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (count($transactions) < 2) {
|
if (count($transactions) < 2) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user