mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-18 18:44:16 +00:00
Merge branch 'v6.2' of github.com:firefly-iii/firefly-iii into v6.2
This commit is contained in:
@@ -232,7 +232,8 @@ trait AccountCollection
|
||||
return $this;
|
||||
}
|
||||
|
||||
#[\Override] public function accountBalanceIs(string $direction, string $operator, string $value): GroupCollectorInterface
|
||||
#[\Override]
|
||||
public function accountBalanceIs(string $direction, string $operator, string $value): GroupCollectorInterface
|
||||
{
|
||||
Log::warning(sprintf('GroupCollector will be SLOW: accountBalanceIs: "%s" "%s" "%s"', $direction, $operator, $value));
|
||||
|
||||
@@ -254,27 +255,41 @@ trait AccountCollection
|
||||
$balance = Steam::finalAccountBalance(Account::find($accountId), $transaction['date']);
|
||||
$result = bccomp($balance['balance'], $value);
|
||||
Log::debug(sprintf('"%s" vs "%s" is %d', $balance['balance'], $value, $result));
|
||||
|
||||
switch ($operator) {
|
||||
default:
|
||||
Log::error(sprintf('GroupCollector: accountBalanceIs: unknown operator "%s"', $operator));
|
||||
|
||||
return false;
|
||||
|
||||
case '==':
|
||||
Log::debug('Expect result to be 0 (equal)');
|
||||
|
||||
return 0 === $result;
|
||||
|
||||
case '!=':
|
||||
Log::debug('Expect result to be -1 or 1 (not equal)');
|
||||
|
||||
return 0 !== $result;
|
||||
|
||||
case '>':
|
||||
Log::debug('Expect result to be 1 (greater then)');
|
||||
|
||||
return 1 === $result;
|
||||
|
||||
case '>=':
|
||||
Log::debug('Expect result to be 0 or 1 (greater then or equal)');
|
||||
|
||||
return -1 !== $result;
|
||||
|
||||
case '<':
|
||||
Log::debug('Expect result to be -1 (less than)');
|
||||
|
||||
return -1 === $result;
|
||||
|
||||
case '<=':
|
||||
Log::debug('Expect result to be -1 or 0 (less than or equal)');
|
||||
|
||||
return 1 !== $result;
|
||||
}
|
||||
// if($balance['balance'] $operator $value) {
|
||||
|
@@ -1823,49 +1823,73 @@ class OperatorQuerySearch implements SearchInterface
|
||||
$this->collector->setSepaCT($value);
|
||||
|
||||
break;
|
||||
|
||||
case 'source_balance_gte':
|
||||
case '-source_balance_lt':
|
||||
$this->collector->accountBalanceIs('source', '>=', $value);
|
||||
|
||||
break;
|
||||
|
||||
case '-source_balance_gte':
|
||||
case 'source_balance_lt':
|
||||
$this->collector->accountBalanceIs('source', '<', $value);
|
||||
|
||||
break;
|
||||
|
||||
case 'source_balance_gt':
|
||||
case '-source_balance_lte':
|
||||
$this->collector->accountBalanceIs('source', '>', $value);
|
||||
|
||||
break;
|
||||
|
||||
case '-source_balance_gt':
|
||||
case 'source_balance_lte':
|
||||
$this->collector->accountBalanceIs('source', '<=', $value);
|
||||
|
||||
break;
|
||||
|
||||
case 'source_balance_is':
|
||||
$this->collector->accountBalanceIs('source', '==', $value);
|
||||
|
||||
break;
|
||||
|
||||
case '-source_balance_is':
|
||||
$this->collector->accountBalanceIs('source', '!=', $value);
|
||||
|
||||
break;
|
||||
|
||||
case 'destination_balance_gte':
|
||||
case '-destination_balance_lt':
|
||||
$this->collector->accountBalanceIs('destination', '>=', $value);
|
||||
|
||||
break;
|
||||
|
||||
case '-destination_balance_gte':
|
||||
case 'destination_balance_lt':
|
||||
$this->collector->accountBalanceIs('destination', '<', $value);
|
||||
|
||||
break;
|
||||
|
||||
case 'destination_balance_gt':
|
||||
case '-destination_balance_lte':
|
||||
$this->collector->accountBalanceIs('destination', '>', $value);
|
||||
|
||||
break;
|
||||
|
||||
case '-destination_balance_gt':
|
||||
case 'destination_balance_lte':
|
||||
$this->collector->accountBalanceIs('destination', '<=', $value);
|
||||
|
||||
break;
|
||||
|
||||
case 'destination_balance_is':
|
||||
$this->collector->accountBalanceIs('destination', '==', $value);
|
||||
|
||||
break;
|
||||
|
||||
case '-destination_balance_is':
|
||||
$this->collector->accountBalanceIs('destination', '!=', $value);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user