# frozen_string_literal: true

# Validates the current invoice is not generated within a closed accounting period
class ClosedPeriodValidator < ActiveModel::Validator
  def validate(record)
    date = if record.is_a?(Avoir)
             record.avoir_date
           else
             DateTime.current
           end


    AccountingPeriod.all.each do |period|
      record.errors[:date] << I18n.t('errors.messages.in_closed_period') if date >= period.start_at && date <= period.end_at
    end
  end
end
