mirror of
https://github.com/we-promise/sure.git
synced 2026-04-11 08:14:49 +00:00
* feat: Allow to create rules to define transfer or payments * fix: lint issues * Update app/models/rule/action_executor/set_as_transfer_or_payment.rb Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Signed-off-by: Alessio Cappa <104093777+alessiocappa@users.noreply.github.com> * fix: indentation issue * fix: add explicit return * fix: add guard on target_account * fix: use local variable for transfer and revert explicit return as it doesn't work * fix: Adjust transaction naming --------- Signed-off-by: Alessio Cappa <104093777+alessiocappa@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
42 lines
1.4 KiB
Ruby
42 lines
1.4 KiB
Ruby
class Rule::Registry::TransactionResource < Rule::Registry
|
|
def resource_scope
|
|
family.transactions.visible.with_entry.where(entry: { date: rule.effective_date.. })
|
|
end
|
|
|
|
def condition_filters
|
|
[
|
|
Rule::ConditionFilter::TransactionName.new(rule),
|
|
Rule::ConditionFilter::TransactionAmount.new(rule),
|
|
Rule::ConditionFilter::TransactionType.new(rule),
|
|
Rule::ConditionFilter::TransactionMerchant.new(rule),
|
|
Rule::ConditionFilter::TransactionCategory.new(rule),
|
|
Rule::ConditionFilter::TransactionDetails.new(rule),
|
|
Rule::ConditionFilter::TransactionNotes.new(rule)
|
|
]
|
|
end
|
|
|
|
def action_executors
|
|
enabled_executors = [
|
|
Rule::ActionExecutor::SetTransactionCategory.new(rule),
|
|
Rule::ActionExecutor::SetTransactionTags.new(rule),
|
|
Rule::ActionExecutor::SetTransactionMerchant.new(rule),
|
|
Rule::ActionExecutor::SetTransactionName.new(rule),
|
|
Rule::ActionExecutor::SetInvestmentActivityLabel.new(rule),
|
|
Rule::ActionExecutor::ExcludeTransaction.new(rule),
|
|
Rule::ActionExecutor::SetAsTransferOrPayment.new(rule)
|
|
]
|
|
|
|
if ai_enabled?
|
|
enabled_executors << Rule::ActionExecutor::AutoCategorize.new(rule)
|
|
enabled_executors << Rule::ActionExecutor::AutoDetectMerchants.new(rule)
|
|
end
|
|
|
|
enabled_executors
|
|
end
|
|
|
|
private
|
|
def ai_enabled?
|
|
Provider::Registry.get_provider(:openai).present?
|
|
end
|
|
end
|