mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
This will make triggers check existing fields first.
This commit is contained in:
parent
59cdfa6fe6
commit
d054e085d6
@ -73,12 +73,12 @@ class TransactionJournal extends TransactionJournalSupport
|
||||
'transaction_types.type AS transaction_type_type', // the other field is called "transaction_type_id" so this is pretty consistent.
|
||||
'transaction_currencies.code AS transaction_currency_code',
|
||||
// all for destination:
|
||||
'destination.amount AS destination_amount',
|
||||
'destination.amount AS destination_amount', // is always positive
|
||||
'destination_account.id AS destination_account_id',
|
||||
'destination_account.name AS destination_account_name',
|
||||
'destination_acct_type.type AS destination_account_type',
|
||||
// all for source:
|
||||
'source.amount AS source_amount',
|
||||
'source.amount AS source_amount', // is always negative
|
||||
'source_account.id AS source_account_id',
|
||||
'source_account.name AS source_account_name',
|
||||
'source_acct_type.type AS source_account_type',
|
||||
|
@ -54,7 +54,7 @@ final class AmountExactly extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$amount = TransactionJournal::amountPositive($journal);
|
||||
$amount = $journal->destination_amount ?? TransactionJournal::amountPositive($journal);
|
||||
$compare = $this->triggerValue;
|
||||
$result = bccomp($amount, $compare, 4);
|
||||
if ($result === 0) {
|
||||
|
@ -54,7 +54,7 @@ final class AmountLess extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$amount = TransactionJournal::amountPositive($journal);
|
||||
$amount = $journal->destination_amount ?? TransactionJournal::amountPositive($journal);
|
||||
$compare = $this->triggerValue;
|
||||
$result = bccomp($amount, $compare, 4);
|
||||
if ($result === -1) {
|
||||
|
@ -54,7 +54,7 @@ final class AmountMore extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$amount = TransactionJournal::amountPositive($journal);
|
||||
$amount = $journal->destination_amount ?? TransactionJournal::amountPositive($journal);
|
||||
$compare = $this->triggerValue;
|
||||
$result = bccomp($amount, $compare, 4);
|
||||
if ($result === 1) {
|
||||
|
@ -53,7 +53,7 @@ final class FromAccountContains extends AbstractTrigger implements TriggerInterf
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$fromAccountName = strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$fromAccountName = $journal->source_account_name ?? strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
$strpos = strpos($fromAccountName, $search);
|
||||
|
||||
|
@ -53,7 +53,7 @@ final class FromAccountEnds extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$name = strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$name = $journal->source_account_name ?? strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$nameLength = strlen($name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
$searchLength = strlen($search);
|
||||
|
@ -53,16 +53,15 @@ final class FromAccountIs extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$sourceAccount = $journal->transactions()->where('amount', '<', 0)->first()->account;
|
||||
$fromAccountName = strtolower($sourceAccount->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
$name = $journal->source_account_name ?? strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
|
||||
if ($fromAccountName == $search) {
|
||||
Log::debug('"' . $fromAccountName . '" equals "' . $search . '" exactly. Return true.');
|
||||
if ($name == $search) {
|
||||
Log::debug('"' . $name . '" equals "' . $search . '" exactly. Return true.');
|
||||
|
||||
return true;
|
||||
}
|
||||
Log::debug('"' . $fromAccountName . '" does not equal "' . $search . '". Return false.');
|
||||
Log::debug('"' . $name . '" does not equal "' . $search . '". Return false.');
|
||||
|
||||
return false;
|
||||
|
||||
|
@ -53,17 +53,17 @@ final class FromAccountStarts extends AbstractTrigger implements TriggerInterfac
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$fromAccountName = strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$name = $journal->source_account_name ?? strtolower(TransactionJournal::sourceAccount($journal)->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
|
||||
$part = substr($fromAccountName, 0, strlen($search));
|
||||
$part = substr($name, 0, strlen($search));
|
||||
|
||||
if ($part == $search) {
|
||||
Log::debug('"' . $fromAccountName . '" starts with "' . $search . '". Return true.');
|
||||
Log::debug('"' . $name . '" starts with "' . $search . '". Return true.');
|
||||
|
||||
return true;
|
||||
}
|
||||
Log::debug('"' . $fromAccountName . '" does not start with "' . $search . '". Return false.');
|
||||
Log::debug('"' . $name . '" does not start with "' . $search . '". Return false.');
|
||||
|
||||
return false;
|
||||
|
||||
|
@ -53,7 +53,7 @@ final class ToAccountContains extends AbstractTrigger implements TriggerInterfac
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$toAccountName = strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$toAccountName = $journal->destination_account_name ?? strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
$strpos = strpos($toAccountName, $search);
|
||||
|
||||
|
@ -53,7 +53,7 @@ final class ToAccountEnds extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$toAccountName = strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$toAccountName = $journal->destination_account_name ?? strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$toAccountNameLength = strlen($toAccountName);
|
||||
$search = strtolower($this->triggerValue);
|
||||
$searchLength = strlen($search);
|
||||
|
@ -53,7 +53,7 @@ final class ToAccountIs extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$toAccountName = strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$toAccountName = $journal->destination_account_name ?? strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
|
||||
if ($toAccountName == $search) {
|
||||
|
@ -53,7 +53,7 @@ final class ToAccountStarts extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$toAccountName = strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$toAccountName = $journal->destination_account_name ?? strtolower(TransactionJournal::destinationAccount($journal)->name);
|
||||
$search = strtolower($this->triggerValue);
|
||||
|
||||
$part = substr($toAccountName, 0, strlen($search));
|
||||
|
@ -53,7 +53,7 @@ final class TransactionType extends AbstractTrigger implements TriggerInterface
|
||||
*/
|
||||
public function triggered(TransactionJournal $journal)
|
||||
{
|
||||
$type = strtolower($journal->transactionType->type);
|
||||
$type = !is_null($journal->transaction_type_type) ? $journal->transaction_type_type : strtolower($journal->transactionType->type);
|
||||
$search = strtolower($this->triggerValue);
|
||||
|
||||
if ($type == $search) {
|
||||
|
Loading…
Reference in New Issue
Block a user