1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-11-29 10:24:20 +01:00
fab-manager/app/models/avoir.rb
2021-06-09 16:42:06 +02:00

31 lines
892 B
Ruby

# frozen_string_literal: true
# Avoir is a special type of Invoice, which it inherits. It is used to
# refund an user, based on a previous invoice, or to credit an user's wallet.
class Avoir < Invoice
belongs_to :invoice
after_create :notify_admins_refund_created
# TODO, remove stripe from this list in a future release. For now, we leave it here to allow data migration to v5.0
validates :payment_method, inclusion: { in: %w[stripe card cheque transfer none cash wallet] }
attr_accessor :invoice_items_ids
def generate_reference
super(created_at)
end
def expire_subscription
user.subscription.expire(DateTime.current)
end
private
def notify_admins_refund_created
NotificationCenter.call type: 'notify_admin_refund_created',
receiver: User.admins_and_managers,
attached_object: self
end
end