# frozen_string_literal: true

# Validates that all invoices in the current accounting period are chained with footprints which ensure their integrity
class PeriodIntegrityValidator < ActiveModel::Validator
  def validate(record)
    invoices = record.invoices.includes(:invoice_items)

    invoices.each do |i|
      record.errors["invoice_#{i.reference}".to_sym] << I18n.t('errors.messages.invalid_footprint') unless i.check_footprint
    end
  end
end
