Auto commit for release 'branch-v6.2' on 2024-12-22

This commit is contained in:
github-actions
2024-12-22 20:37:54 +01:00
parent d90ac519f7
commit c0499df4ec
91 changed files with 1153 additions and 1163 deletions

View File

@@ -35,16 +35,16 @@ use Illuminate\Support\Collection;
class AccountSearch implements GenericSearchInterface
{
/** @var string */
public const string SEARCH_ALL = 'all';
public const string SEARCH_ALL = 'all';
/** @var string */
public const string SEARCH_IBAN = 'iban';
public const string SEARCH_IBAN = 'iban';
/** @var string */
public const string SEARCH_ID = 'id';
public const string SEARCH_ID = 'id';
/** @var string */
public const string SEARCH_NAME = 'name';
public const string SEARCH_NAME = 'name';
/** @var string */
public const string SEARCH_NUMBER = 'number';
@@ -61,9 +61,10 @@ class AccountSearch implements GenericSearchInterface
public function search(): Collection
{
$searchQuery = $this->user->accounts()
->leftJoin('account_types', 'accounts.account_type_id', '=', 'account_types.id')
->leftJoin('account_meta', 'accounts.id', '=', 'account_meta.account_id')
->whereIn('account_types.type', $this->types);
->leftJoin('account_types', 'accounts.account_type_id', '=', 'account_types.id')
->leftJoin('account_meta', 'accounts.id', '=', 'account_meta.account_id')
->whereIn('account_types.type', $this->types)
;
$like = sprintf('%%%s%%', $this->query);
$originalQuery = $this->query;
@@ -134,7 +135,7 @@ class AccountSearch implements GenericSearchInterface
$this->types = $types;
}
public function setUser(null | Authenticatable | User $user): void
public function setUser(null|Authenticatable|User $user): void
{
if ($user instanceof User) {
$this->user = $user;

View File

@@ -57,8 +57,6 @@ use Gdbots\QueryParser\Node\Word;
use Gdbots\QueryParser\QueryParser;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
use LogicException;
use TypeError;
/**
* Class OperatorQuerySearch
@@ -151,7 +149,7 @@ class OperatorQuerySearch implements SearchInterface
try {
$query1 = $parser->parse($query);
} catch (LogicException | TypeError $e) {
} catch (\LogicException|\TypeError $e) {
app('log')->error($e->getMessage());
app('log')->error(sprintf('Could not parse search: "%s".', $query));
@@ -203,7 +201,7 @@ class OperatorQuerySearch implements SearchInterface
case Emoticon::class:
case Emoji::class:
case Mention::class:
$allWords = (string) $searchNode->getValue();
$allWords = (string) $searchNode->getValue();
app('log')->debug(sprintf('Add words "%s" to search string, because Node class is "%s"', $allWords, $class));
$this->words[] = $allWords;
@@ -214,10 +212,10 @@ class OperatorQuerySearch implements SearchInterface
/** @var Field $searchNode */
// used to search for x:y
$operator = strtolower($searchNode->getValue());
$value = $searchNode->getNode()->getValue();
$prohibited = BoolOperator::PROHIBITED === $searchNode->getBoolOperator();
$context = config(sprintf('search.operators.%s.needs_context', $operator));
$operator = strtolower($searchNode->getValue());
$value = $searchNode->getNode()->getValue();
$prohibited = BoolOperator::PROHIBITED === $searchNode->getBoolOperator();
$context = config(sprintf('search.operators.%s.needs_context', $operator));
// is an operator that needs no context, and value is false, then prohibited = true.
if ('false' === $value && in_array($operator, $this->validOperators, true) && false === $context && !$prohibited) {
@@ -277,15 +275,15 @@ class OperatorQuerySearch implements SearchInterface
throw new FireflyException(sprintf('Unsupported search operator: "%s"', $operator));
// some search operators are ignored, basically:
// some search operators are ignored, basically:
case 'user_action':
app('log')->info(sprintf('Ignore search operator "%s"', $operator));
return false;
//
// all account related searches:
//
//
// all account related searches:
//
case 'account_is':
$this->searchAccount($value, SearchDirection::BOTH, StringPosition::IS);
@@ -447,7 +445,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'source_account_id':
$account = $this->accountRepository->find((int) $value);
$account = $this->accountRepository->find((int) $value);
if (null !== $account) {
$this->collector->setSourceAccounts(new Collection([$account]));
}
@@ -459,7 +457,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-source_account_id':
$account = $this->accountRepository->find((int) $value);
$account = $this->accountRepository->find((int) $value);
if (null !== $account) {
$this->collector->excludeSourceAccounts(new Collection([$account]));
}
@@ -471,25 +469,25 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'journal_id':
$parts = explode(',', $value);
$parts = explode(',', $value);
$this->collector->setJournalIds($parts);
break;
case '-journal_id':
$parts = explode(',', $value);
$parts = explode(',', $value);
$this->collector->excludeJournalIds($parts);
break;
case 'id':
$parts = explode(',', $value);
$parts = explode(',', $value);
$this->collector->setIds($parts);
break;
case '-id':
$parts = explode(',', $value);
$parts = explode(',', $value);
$this->collector->excludeIds($parts);
break;
@@ -575,7 +573,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'destination_account_id':
$account = $this->accountRepository->find((int) $value);
$account = $this->accountRepository->find((int) $value);
if (null !== $account) {
$this->collector->setDestinationAccounts(new Collection([$account]));
}
@@ -586,7 +584,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-destination_account_id':
$account = $this->accountRepository->find((int) $value);
$account = $this->accountRepository->find((int) $value);
if (null !== $account) {
$this->collector->excludeDestinationAccounts(new Collection([$account]));
}
@@ -597,8 +595,8 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'account_id':
$parts = explode(',', $value);
$collection = new Collection();
$parts = explode(',', $value);
$collection = new Collection();
foreach ($parts as $accountId) {
$account = $this->accountRepository->find((int) $accountId);
if (null !== $account) {
@@ -615,8 +613,8 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-account_id':
$parts = explode(',', $value);
$collection = new Collection();
$parts = explode(',', $value);
$collection = new Collection();
foreach ($parts as $accountId) {
$account = $this->accountRepository->find((int) $accountId);
if (null !== $account) {
@@ -632,48 +630,48 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// cash account
//
//
// cash account
//
case 'source_is_cash':
$account = $this->getCashAccount();
$account = $this->getCashAccount();
$this->collector->setSourceAccounts(new Collection([$account]));
break;
case '-source_is_cash':
$account = $this->getCashAccount();
$account = $this->getCashAccount();
$this->collector->excludeSourceAccounts(new Collection([$account]));
break;
case 'destination_is_cash':
$account = $this->getCashAccount();
$account = $this->getCashAccount();
$this->collector->setDestinationAccounts(new Collection([$account]));
break;
case '-destination_is_cash':
$account = $this->getCashAccount();
$account = $this->getCashAccount();
$this->collector->excludeDestinationAccounts(new Collection([$account]));
break;
case 'account_is_cash':
$account = $this->getCashAccount();
$account = $this->getCashAccount();
$this->collector->setAccounts(new Collection([$account]));
break;
case '-account_is_cash':
$account = $this->getCashAccount();
$account = $this->getCashAccount();
$this->collector->excludeAccounts(new Collection([$account]));
break;
//
// description
//
//
// description
//
case 'description_starts':
$this->collector->descriptionStarts([$value]);
@@ -695,7 +693,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'description_contains':
$this->words[] = $value;
$this->words[] = $value;
return false;
@@ -714,11 +712,11 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// currency
//
//
// currency
//
case 'currency_is':
$currency = $this->findCurrency($value);
$currency = $this->findCurrency($value);
if (null !== $currency) {
$this->collector->setCurrency($currency);
}
@@ -729,7 +727,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-currency_is':
$currency = $this->findCurrency($value);
$currency = $this->findCurrency($value);
if (null !== $currency) {
$this->collector->excludeCurrency($currency);
}
@@ -740,7 +738,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'foreign_currency_is':
$currency = $this->findCurrency($value);
$currency = $this->findCurrency($value);
if (null !== $currency) {
$this->collector->setForeignCurrency($currency);
}
@@ -751,7 +749,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-foreign_currency_is':
$currency = $this->findCurrency($value);
$currency = $this->findCurrency($value);
if (null !== $currency) {
$this->collector->excludeForeignCurrency($currency);
}
@@ -761,9 +759,9 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// attachments
//
//
// attachments
//
case 'has_attachments':
case '-has_no_attachments':
app('log')->debug('Set collector to filter on attachments.');
@@ -778,8 +776,8 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// categories
//
// categories
case '-has_any_category':
case 'has_no_category':
$this->collector->withoutCategory();
@@ -793,7 +791,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'category_is':
$category = $this->categoryRepository->findByName($value);
$category = $this->categoryRepository->findByName($value);
if (null !== $category) {
$this->collector->setCategory($category);
@@ -804,7 +802,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-category_is':
$category = $this->categoryRepository->findByName($value);
$category = $this->categoryRepository->findByName($value);
if (null !== $category) {
$this->collector->excludeCategory($category);
@@ -814,7 +812,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'category_ends':
$result = $this->categoryRepository->categoryEndsWith($value, 1337);
$result = $this->categoryRepository->categoryEndsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->setCategories($result);
}
@@ -825,7 +823,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-category_ends':
$result = $this->categoryRepository->categoryEndsWith($value, 1337);
$result = $this->categoryRepository->categoryEndsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeCategories($result);
}
@@ -836,7 +834,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'category_starts':
$result = $this->categoryRepository->categoryStartsWith($value, 1337);
$result = $this->categoryRepository->categoryStartsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->setCategories($result);
}
@@ -847,7 +845,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-category_starts':
$result = $this->categoryRepository->categoryStartsWith($value, 1337);
$result = $this->categoryRepository->categoryStartsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeCategories($result);
}
@@ -858,7 +856,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'category_contains':
$result = $this->categoryRepository->searchCategory($value, 1337);
$result = $this->categoryRepository->searchCategory($value, 1337);
if ($result->count() > 0) {
$this->collector->setCategories($result);
}
@@ -869,7 +867,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-category_contains':
$result = $this->categoryRepository->searchCategory($value, 1337);
$result = $this->categoryRepository->searchCategory($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeCategories($result);
}
@@ -879,9 +877,9 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// budgets
//
//
// budgets
//
case '-has_any_budget':
case 'has_no_budget':
$this->collector->withoutBudget();
@@ -895,7 +893,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'budget_contains':
$result = $this->budgetRepository->searchBudget($value, 1337);
$result = $this->budgetRepository->searchBudget($value, 1337);
if ($result->count() > 0) {
$this->collector->setBudgets($result);
}
@@ -906,7 +904,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-budget_contains':
$result = $this->budgetRepository->searchBudget($value, 1337);
$result = $this->budgetRepository->searchBudget($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeBudgets($result);
}
@@ -917,7 +915,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'budget_is':
$budget = $this->budgetRepository->findByName($value);
$budget = $this->budgetRepository->findByName($value);
if (null !== $budget) {
$this->collector->setBudget($budget);
@@ -928,7 +926,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-budget_is':
$budget = $this->budgetRepository->findByName($value);
$budget = $this->budgetRepository->findByName($value);
if (null !== $budget) {
$this->collector->excludeBudget($budget);
@@ -939,7 +937,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'budget_ends':
$result = $this->budgetRepository->budgetEndsWith($value, 1337);
$result = $this->budgetRepository->budgetEndsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->setBudgets($result);
}
@@ -950,7 +948,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-budget_ends':
$result = $this->budgetRepository->budgetEndsWith($value, 1337);
$result = $this->budgetRepository->budgetEndsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeBudgets($result);
}
@@ -961,7 +959,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'budget_starts':
$result = $this->budgetRepository->budgetStartsWith($value, 1337);
$result = $this->budgetRepository->budgetStartsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->setBudgets($result);
}
@@ -972,7 +970,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-budget_starts':
$result = $this->budgetRepository->budgetStartsWith($value, 1337);
$result = $this->budgetRepository->budgetStartsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeBudgets($result);
}
@@ -982,9 +980,9 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// bill
//
//
// bill
//
case '-has_any_bill':
case 'has_no_bill':
$this->collector->withoutBill();
@@ -998,7 +996,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'bill_contains':
$result = $this->billRepository->searchBill($value, 1337);
$result = $this->billRepository->searchBill($value, 1337);
if ($result->count() > 0) {
$this->collector->setBills($result);
@@ -1009,7 +1007,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-bill_contains':
$result = $this->billRepository->searchBill($value, 1337);
$result = $this->billRepository->searchBill($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeBills($result);
@@ -1020,7 +1018,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'bill_is':
$bill = $this->billRepository->findByName($value);
$bill = $this->billRepository->findByName($value);
if (null !== $bill) {
$this->collector->setBill($bill);
@@ -1031,7 +1029,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-bill_is':
$bill = $this->billRepository->findByName($value);
$bill = $this->billRepository->findByName($value);
if (null !== $bill) {
$this->collector->excludeBills(new Collection([$bill]));
@@ -1042,7 +1040,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'bill_ends':
$result = $this->billRepository->billEndsWith($value, 1337);
$result = $this->billRepository->billEndsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->setBills($result);
}
@@ -1053,7 +1051,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-bill_ends':
$result = $this->billRepository->billEndsWith($value, 1337);
$result = $this->billRepository->billEndsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeBills($result);
}
@@ -1064,7 +1062,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'bill_starts':
$result = $this->billRepository->billStartsWith($value, 1337);
$result = $this->billRepository->billStartsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->setBills($result);
}
@@ -1075,7 +1073,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-bill_starts':
$result = $this->billRepository->billStartsWith($value, 1337);
$result = $this->billRepository->billStartsWith($value, 1337);
if ($result->count() > 0) {
$this->collector->excludeBills($result);
}
@@ -1085,9 +1083,9 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// tags
//
//
// tags
//
case '-has_any_tag':
case 'has_no_tag':
$this->collector->withoutTags();
@@ -1102,7 +1100,7 @@ class OperatorQuerySearch implements SearchInterface
case '-tag_is_not':
case 'tag_is':
$result = $this->tagRepository->findByTag($value);
$result = $this->tagRepository->findByTag($value);
if (null !== $result) {
$this->includeTags[] = $result->id;
$this->includeTags = array_unique($this->includeTags);
@@ -1116,7 +1114,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'tag_contains':
$tags = $this->tagRepository->searchTag($value);
$tags = $this->tagRepository->searchTag($value);
if (0 === $tags->count()) {
app('log')->info(sprintf('No valid tags in "%s"-operator, so search will not return ANY results.', $operator));
$this->collector->findNothing();
@@ -1130,7 +1128,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'tag_starts':
$tags = $this->tagRepository->tagStartsWith($value);
$tags = $this->tagRepository->tagStartsWith($value);
if (0 === $tags->count()) {
app('log')->info(sprintf('No valid tags in "%s"-operator, so search will not return ANY results.', $operator));
$this->collector->findNothing();
@@ -1144,7 +1142,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-tag_starts':
$tags = $this->tagRepository->tagStartsWith($value);
$tags = $this->tagRepository->tagStartsWith($value);
if (0 === $tags->count()) {
app('log')->info(sprintf('No valid tags in "%s"-operator, so search will not return ANY results.', $operator));
$this->collector->findNothing();
@@ -1157,7 +1155,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case 'tag_ends':
$tags = $this->tagRepository->tagEndsWith($value);
$tags = $this->tagRepository->tagEndsWith($value);
if (0 === $tags->count()) {
app('log')->info(sprintf('No valid tags in "%s"-operator, so search will not return ANY results.', $operator));
$this->collector->findNothing();
@@ -1170,7 +1168,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-tag_ends':
$tags = $this->tagRepository->tagEndsWith($value);
$tags = $this->tagRepository->tagEndsWith($value);
if (0 === $tags->count()) {
app('log')->info(sprintf('No valid tags in "%s"-operator, so search will not return ANY results.', $operator));
$this->collector->findNothing();
@@ -1183,7 +1181,7 @@ class OperatorQuerySearch implements SearchInterface
break;
case '-tag_contains':
$tags = $this->tagRepository->searchTag($value)->keyBy('id');
$tags = $this->tagRepository->searchTag($value)->keyBy('id');
if (0 === $tags->count()) {
app('log')->info(sprintf('No valid tags in "%s"-operator, so search will not return ANY results.', $operator));
@@ -1198,7 +1196,7 @@ class OperatorQuerySearch implements SearchInterface
case '-tag_is':
case 'tag_is_not':
$result = $this->tagRepository->findByTag($value);
$result = $this->tagRepository->findByTag($value);
if (null !== $result) {
$this->excludeTags[] = $result->id;
$this->excludeTags = array_unique($this->excludeTags);
@@ -1206,9 +1204,9 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// notes
//
//
// notes
//
case 'notes_contains':
$this->collector->notesContain($value);
@@ -1271,14 +1269,14 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// amount
//
//
// amount
//
case 'amount_is':
// strip comma's, make dots.
app('log')->debug(sprintf('Original value "%s"', $value));
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->amountIs($amount);
@@ -1287,8 +1285,8 @@ class OperatorQuerySearch implements SearchInterface
case '-amount_is':
// strip comma's, make dots.
app('log')->debug(sprintf('Original value "%s"', $value));
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->amountIsNot($amount);
@@ -1296,9 +1294,9 @@ class OperatorQuerySearch implements SearchInterface
case 'foreign_amount_is':
// strip comma's, make dots.
$value = str_replace(',', '.', $value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->foreignAmountIs($amount);
@@ -1306,9 +1304,9 @@ class OperatorQuerySearch implements SearchInterface
case '-foreign_amount_is':
// strip comma's, make dots.
$value = str_replace(',', '.', $value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->foreignAmountIsNot($amount);
@@ -1317,9 +1315,9 @@ class OperatorQuerySearch implements SearchInterface
case '-amount_more':
case 'amount_less':
// strip comma's, make dots.
$value = str_replace(',', '.', $value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->amountLess($amount);
@@ -1328,9 +1326,9 @@ class OperatorQuerySearch implements SearchInterface
case '-foreign_amount_more':
case 'foreign_amount_less':
// strip comma's, make dots.
$value = str_replace(',', '.', $value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->foreignAmountLess($amount);
@@ -1340,8 +1338,8 @@ class OperatorQuerySearch implements SearchInterface
case 'amount_more':
app('log')->debug(sprintf('Now handling operator "%s"', $operator));
// strip comma's, make dots.
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->amountMore($amount);
@@ -1351,16 +1349,16 @@ class OperatorQuerySearch implements SearchInterface
case 'foreign_amount_more':
app('log')->debug(sprintf('Now handling operator "%s"', $operator));
// strip comma's, make dots.
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
$value = str_replace(',', '.', $value);
$amount = app('steam')->positive($value);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
$this->collector->foreignAmountMore($amount);
break;
//
// transaction type
//
//
// transaction type
//
case 'transaction_type':
$this->collector->setTypes([ucfirst($value)]);
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
@@ -1373,152 +1371,152 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// dates
//
//
// dates
//
case '-date_on':
case 'date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactDateParams($range, $prohibited);
return false;
case 'date_before':
case '-date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setDateBeforeParams($range);
return false;
case 'date_after':
case '-date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setDateAfterParams($range);
return false;
case 'interest_date_on':
case '-interest_date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactMetaDateParams('interest_date', $range, $prohibited);
return false;
case 'interest_date_before':
case '-interest_date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateBeforeParams('interest_date', $range);
return false;
case 'interest_date_after':
case '-interest_date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateAfterParams('interest_date', $range);
return false;
case 'book_date_on':
case '-book_date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactMetaDateParams('book_date', $range, $prohibited);
return false;
case 'book_date_before':
case '-book_date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateBeforeParams('book_date', $range);
return false;
case 'book_date_after':
case '-book_date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateAfterParams('book_date', $range);
return false;
case 'process_date_on':
case '-process_date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactMetaDateParams('process_date', $range, $prohibited);
return false;
case 'process_date_before':
case '-process_date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateBeforeParams('process_date', $range);
return false;
case 'process_date_after':
case '-process_date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateAfterParams('process_date', $range);
return false;
case 'due_date_on':
case '-due_date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactMetaDateParams('due_date', $range, $prohibited);
return false;
case 'due_date_before':
case '-due_date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateBeforeParams('due_date', $range);
return false;
case 'due_date_after':
case '-due_date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateAfterParams('due_date', $range);
return false;
case 'payment_date_on':
case '-payment_date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactMetaDateParams('payment_date', $range, $prohibited);
return false;
case 'payment_date_before':
case '-payment_date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateBeforeParams('payment_date', $range);
return false;
case 'payment_date_after':
case '-payment_date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateAfterParams('payment_date', $range);
return false;
case 'invoice_date_on':
case '-invoice_date_on':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactMetaDateParams('invoice_date', $range, $prohibited);
return false;
case 'invoice_date_before':
case '-invoice_date_after':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateBeforeParams('invoice_date', $range);
return false;
case 'invoice_date_after':
case '-invoice_date_before':
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setMetaDateAfterParams('invoice_date', $range);
return false;
@@ -1526,7 +1524,7 @@ class OperatorQuerySearch implements SearchInterface
case 'created_at_on':
case '-created_at_on':
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactObjectDateParams('created_at', $range, $prohibited);
return false;
@@ -1534,7 +1532,7 @@ class OperatorQuerySearch implements SearchInterface
case 'created_at_before':
case '-created_at_after':
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setObjectDateBeforeParams('created_at', $range);
return false;
@@ -1542,7 +1540,7 @@ class OperatorQuerySearch implements SearchInterface
case 'created_at_after':
case '-created_at_before':
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setObjectDateAfterParams('created_at', $range);
return false;
@@ -1550,7 +1548,7 @@ class OperatorQuerySearch implements SearchInterface
case 'updated_at_on':
case '-updated_at_on':
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setExactObjectDateParams('updated_at', $range, $prohibited);
return false;
@@ -1558,7 +1556,7 @@ class OperatorQuerySearch implements SearchInterface
case 'updated_at_before':
case '-updated_at_after':
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setObjectDateBeforeParams('updated_at', $range);
return false;
@@ -1566,14 +1564,14 @@ class OperatorQuerySearch implements SearchInterface
case 'updated_at_after':
case '-updated_at_before':
app('log')->debug(sprintf('Set "%s" using collector with value "%s"', $operator, $value));
$range = $this->parseDateRange($operator, $value);
$range = $this->parseDateRange($operator, $value);
$this->setObjectDateAfterParams('updated_at', $range);
return false;
//
// external URL
//
//
// external URL
//
case '-any_external_url':
case 'no_external_url':
$this->collector->withoutExternalUrl();
@@ -1638,9 +1636,9 @@ class OperatorQuerySearch implements SearchInterface
break;
//
// other fields
//
//
// other fields
//
case 'external_id_is':
$this->collector->setExternalId($value);
@@ -1842,7 +1840,7 @@ class OperatorQuerySearch implements SearchInterface
$operator = substr($operator, 1);
}
$config = config(sprintf('search.operators.%s', $operator));
$config = config(sprintf('search.operators.%s', $operator));
if (null === $config) {
throw new FireflyException(sprintf('No configuration for search operator "%s"', $operator));
}
@@ -1896,7 +1894,7 @@ class OperatorQuerySearch implements SearchInterface
}
}
// string position (default): starts with:
$stringMethod = 'str_starts_with';
$stringMethod = 'str_starts_with';
// string position: ends with:
if (StringPosition::ENDS === $stringPosition) {
@@ -1910,7 +1908,7 @@ class OperatorQuerySearch implements SearchInterface
}
// get accounts:
$accounts = $this->accountRepository->searchAccount($value, $searchTypes, 1337);
$accounts = $this->accountRepository->searchAccount($value, $searchTypes, 1337);
if (0 === $accounts->count() && false === $prohibited) {
app('log')->debug('Found zero accounts, search for non existing account, NO results will be returned.');
$this->collector->findNothing();
@@ -1923,7 +1921,7 @@ class OperatorQuerySearch implements SearchInterface
return;
}
app('log')->debug(sprintf('Found %d accounts, will filter.', $accounts->count()));
$filtered = $accounts->filter(
$filtered = $accounts->filter(
static function (Account $account) use ($value, $stringMethod) {
return $stringMethod(strtolower($account->name), strtolower($value));
}
@@ -1978,7 +1976,7 @@ class OperatorQuerySearch implements SearchInterface
}
// string position (default): starts with:
$stringMethod = 'str_starts_with';
$stringMethod = 'str_starts_with';
// string position: ends with:
if (StringPosition::ENDS === $stringPosition) {
@@ -1992,7 +1990,7 @@ class OperatorQuerySearch implements SearchInterface
}
// search for accounts:
$accounts = $this->accountRepository->searchAccountNr($value, $searchTypes, 1337);
$accounts = $this->accountRepository->searchAccountNr($value, $searchTypes, 1337);
if (0 === $accounts->count()) {
app('log')->debug('Found zero accounts, search for invalid account.');
$this->collector->findNothing();
@@ -2002,7 +2000,7 @@ class OperatorQuerySearch implements SearchInterface
// if found, do filter
app('log')->debug(sprintf('Found %d accounts, will filter.', $accounts->count()));
$filtered = $accounts->filter(
$filtered = $accounts->filter(
static function (Account $account) use ($value, $stringMethod) {
// either IBAN or account number
$ibanMatch = $stringMethod(strtolower((string) $account->iban), strtolower($value));