mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-02 20:15:22 +02:00
Add assign merchant rule for transactions (#2174)
This commit is contained in:
parent
0946a1497a
commit
cf72f1a387
3 changed files with 53 additions and 1 deletions
30
app/models/rule/action_executor/set_transaction_merchant.rb
Normal file
30
app/models/rule/action_executor/set_transaction_merchant.rb
Normal file
|
@ -0,0 +1,30 @@
|
|||
class Rule::ActionExecutor::SetTransactionMerchant < Rule::ActionExecutor
|
||||
def type
|
||||
"select"
|
||||
end
|
||||
|
||||
def options
|
||||
family.merchants.pluck(:name, :id)
|
||||
end
|
||||
|
||||
def execute(transaction_scope, value: nil, ignore_attribute_locks: false)
|
||||
merchant = family.merchants.find_by_id(value)
|
||||
return unless merchant
|
||||
|
||||
scope = transaction_scope
|
||||
unless ignore_attribute_locks
|
||||
scope = scope.enrichable(:merchant_id)
|
||||
end
|
||||
|
||||
scope.each do |txn|
|
||||
Rule.transaction do
|
||||
txn.log_enrichment!(
|
||||
attribute_name: "merchant_id",
|
||||
attribute_value: merchant.id,
|
||||
source: "rule"
|
||||
)
|
||||
txn.update!(merchant: merchant)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue