internetee-registry/app/models/concerns/invoice/cancellable.rb
2021-03-05 19:09:24 +05:00

24 lines
405 B
Ruby

module Invoice::Cancellable
extend ActiveSupport::Concern
included do
scope :non_cancelled, -> { where(cancelled_at: nil) }
end
def cancellable?
unpaid? && not_cancelled?
end
def cancel
raise 'Invoice cannot be cancelled' unless cancellable?
update!(cancelled_at: Time.zone.now)
end
def cancelled?
cancelled_at
end
def not_cancelled?
!cancelled?
end
end