Sha256: c67df61c4cac36ac7df0ae1e94415d1410feefa88f003c6bd51b3ba28c186781

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

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

      attr_reader :segment_type

      def initialize(
        tag: nil,
        inventory_movement_direction_code:,
        inventory_type_code: nil,
        inventory_movement_reason_code: nil,
        inventory_balance_method_code: nil
      )

        @tag = tag
        @inventory_movement_direction_code = inventory_movement_direction_code
        @inventory_type_code = inventory_type_code
        @inventory_movement_reason_code = inventory_movement_reason_code
        @inventory_balance_method_code = inventory_balance_method_code
        super(tag: tag || TAG)
      end

      def to_json_hash
        hash = {}
        hash.merge!(inventory_movement_direction_code: find_identifier(:inventory_movement_direction_code)) if @inventory_movement_direction_code
        hash.merge!(inventory_type_code: @inventory_type_code) if @inventory_type_code
        hash.merge!(inventory_movement_reason_code: @inventory_movement_reason_code) if @inventory_movement_reason_code
        hash.merge!(inventory_balance_method_code: @inventory_balance_method_code) if @inventory_balance_method_code
        hash
      end
      
      def group_name
        'inventory'
      end

      def segment_type
        TYPE
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

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