ministryofjustice/Claim-for-Crown-Court-Defence

View on GitHub
app/validators/fee/agfs/fee_type_rules.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

module Fee
  module AGFS
    class FeeTypeRules
      include Fee::Concerns::FeeTypeRulesCreator

      def initialize
        with_set_for_fee_type('MIUMU') do |set|
          set << add_rule(:quantity, :equal, 1, message: :miumu_numericality)
          set << add_rule(*graduated_fee_type_only_rule)
        end

        with_set_for_fee_type('MIUMO') do |set|
          set << add_rule(*graduated_fee_type_only_rule)
        end

        with_set_for_fee_type('MIPHC') do |set|
          set << add_rule('claim.offence.offence_band.offence_category.number',
                          :exclusion,
                          [1, 6, 9],
                          message: :offence_category_exclusion,
                          attribute_for_error: :fee_type)
        end

        with_set_for_fee_type('MISTE') do |set|
          set << add_rule(:quantity, :equal, 1, message: :miste_numericality)
          set << add_rule(*graduated_fee_type_only_rule)
        end

        with_set_for_fee_type('MIAPF') do |set|
          set << add_rule(:quantity, :equal, 1, message: :miapf_numericality)
          set << add_rule(*graduated_fee_type_only_rule)
        end
      end
    end
  end
end