module Eancom module Edifact class PIA < Segment TAG = 'PIA'.freeze TYPE = :body.freeze def initialize( tag: nil, product_identifier_code_qualifier:, item_identifier_1:, item_type_identification_code_1:, code_list_identification_code_1: nil, code_list_responsible_agency_code_1: nil, item_identifier_2: nil, item_type_identification_code_2: nil, code_list_identification_code_2: nil, code_list_responsible_agency_code_2: nil, item_identifier_3: nil, item_type_identification_code_3: nil, code_list_identification_code_3: nil, code_list_responsible_agency_code_3: nil, item_identifier_4: nil, item_type_identification_code_4: nil, code_list_identification_code_4: nil, code_list_responsible_agency_code_4: nil, item_identifier_5: nil, item_type_identification_code_5: nil, code_list_identification_code_5: nil, code_list_responsible_agency_code_5: nil ) @tag = tag @product_identifier_code_qualifier = product_identifier_code_qualifier @item_identifier_1 = item_identifier_1 @item_type_identification_code_1 = item_type_identification_code_1 @code_list_identification_code_1 = code_list_identification_code_1 @code_list_responsible_agency_code_1 = code_list_responsible_agency_code_1 @item_identifier_2 = item_identifier_2 @item_type_identification_code_2 = item_type_identification_code_2 @code_list_identification_code_2 = code_list_identification_code_2 @code_list_responsible_agency_code_2 = code_list_responsible_agency_code_2 @item_identifier_3 = item_identifier_3 @item_type_identification_code_3 = item_type_identification_code_3 @code_list_identification_code_3 = code_list_identification_code_3 @code_list_responsible_agency_code_3 = code_list_responsible_agency_code_3 @item_identifier_4 = item_identifier_4 @item_type_identification_code_4 = item_type_identification_code_4 @code_list_identification_code_4 = code_list_identification_code_4 @code_list_responsible_agency_code_4 = code_list_responsible_agency_code_4 @item_identifier_5 = item_identifier_5 @item_type_identification_code_5 = item_type_identification_code_5 @code_list_identification_code_5 = code_list_identification_code_5 @code_list_responsible_agency_code_5 = code_list_responsible_agency_code_5 super(tag: tag || TAG) end def to_json_hash hash = {} hash.merge!(product_identifier_code_qualifier: find_identifier(:product_identifier_code_qualifier)) if @product_identifier_code_qualifier hash.merge!(item_identifier_1: @item_identifier_1) if @item_identifier_1 hash.merge!(item_type_identification_code_1: find_identifier(:item_type_identification_code_1)) if @item_type_identification_code_1 hash.merge!(code_list_identification_code_1: @code_list_identification_code_1) if @code_list_identification_code_1 hash.merge!(code_list_responsible_agency_code_1: find_identifier(:code_list_responsible_agency_code_1)) if @code_list_responsible_agency_code_1 hash.merge!(item_identifier_2: @item_identifier_2) if @item_identifier_2 hash.merge!(item_type_identification_code_2: find_identifier(:item_type_identification_code_2)) if @item_type_identification_code_2 hash.merge!(code_list_identification_code_2: @code_list_identification_code_2) if @code_list_identification_code_2 hash.merge!(code_list_responsible_agency_code_2: find_identifier(:code_list_responsible_agency_code_2)) if @code_list_responsible_agency_code_2 hash.merge!(item_identifier_3: @item_identifier_3) if @item_identifier_3 hash.merge!(item_type_identification_code_3: find_identifier(:item_type_identification_code_3)) if @item_type_identification_code_3 hash.merge!(code_list_identification_code_3: @code_list_identification_code_3) if @code_list_identification_code_3 hash.merge!(code_list_responsible_agency_code_3: find_identifier(:code_list_responsible_agency_code_3)) if @code_list_responsible_agency_code_3 hash.merge!(item_identifier_4: @item_identifier_4) if @item_identifier_4 hash.merge!(item_type_identification_code_4: find_identifier(:item_type_identification_code_4)) if @item_type_identification_code_4 hash.merge!(code_list_identification_code_4: @code_list_identification_code_4) if @code_list_identification_code_4 hash.merge!(code_list_responsible_agency_code_4: find_identifier(:code_list_responsible_agency_code_4)) if @code_list_responsible_agency_code_4 hash.merge!(item_identifier_5: @item_identifier_5) if @item_identifier_5 hash.merge!(item_type_identification_code_5: find_identifier(:item_type_identification_code_5)) if @item_type_identification_code_5 hash.merge!(code_list_identification_code_5: @code_list_identification_code_5) if @code_list_identification_code_5 hash.merge!(code_list_responsible_agency_code_5: find_identifier(:code_list_responsible_agency_code_5)) if @code_list_responsible_agency_code_5 outer_hash = {} outer_hash[find_identifier(:product_identifier_code_qualifier)] = hash outer_hash end def group_name 'additional_product_id' end def segment_type TYPE end private def identifier @identifier ||= structure.find(:product_identifier_code_qualifier).dictionary[@product_identifier_code_qualifier][:identifier] end end end end