Sha256: 8cf08c4a0b2cca3ab81d766e0523592cff56bb85e1b254b5dad351c3fe226013

Contents?: true

Size: 553 Bytes

Versions: 1

Compression:

Stored size: 553 Bytes

Contents

require 'valvat/checksum'

class Valvat
  module Checksum
    class IT < Base
      def validate
        # IT02762750210
        y = figures_str[7..9].to_i
        y >= 1 && (y <= 100 || [120, 121].include?(y)) &&
        figures_str[0..6] != "0000000" &&
        super
      end

      def check_digit
        chk = 10 - figures.reverse.each_with_index.map do |fig, i|
          (fig*(i.modulo(2) == 0 ? 2 : 1)).to_s.split("").inject(0) { |sum, n| sum + n.to_i }
        end.inject(:+).modulo(10)
        chk == 10 ? 0 : chk
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
valvat-0.5.0 lib/valvat/checksum/it.rb