Sha256: 3f934d40d184c753c5cf7e95fef4b8d6f904e766e8ab43441cd005744074f164

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

module Eancom
  module Edifact
    class QTY < Segment
      TAG = 'QTY'.freeze
      TYPE = :body.freeze

      def initialize(
        tag: nil,
        quantity_type_code_qualifier:,
        quantity:,
        measurement_unit_code: nil
      )
        @tag = tag
        @quantity_type_code_qualifier = quantity_type_code_qualifier
        @quantity = quantity
        @measurement_unit_code = measurement_unit_code

        super(tag: tag || TAG)
      end

      def to_json_hash
        hash = { identifier => {} }
        hash[identifier].merge!({ quantity: @quantity }) if @quantity
        hash.merge!(measurement_unit_code: find_identifier(:measurement_unit_code)) if @measurement_unit_code
        hash.merge!(identifier: @identifier) if @identifier
        hash
      end

      def group_name
        'quantities'
      end

      def segment_type
        TYPE
      end

      private

      def identifier
        @identifier ||= structure.find(:quantity_type_code_qualifier).dictionary[@quantity_type_code_qualifier][:identifier]
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eancom-2.0.0 lib/eancom/edifact/segments/qty.rb