tag = 'CUX' Eancom.register_segment(tag: tag, klass: Eancom::Edifact::CUX) structure = Eancom::Edifact::Structure.new(tag: tag) #============================================================================== # Tag # #============================================================================== tag = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 3, dictionary: nil, description: "Message Header", required: true ) tag.add(:tag, data) structure << tag #============================================================================== # Currency Details 1 #============================================================================== currency_type_dictionary = { '2' => { description: 'Reference Currency', identifier: 'reference_currency' }, '3' => { description: 'Target Currency', identifier: 'target_currency' }, '4' => { description: 'Invoicing Currency', identifier: 'invoicing_currency' }, '8' => { description: 'Price list currency', identifier: 'price_list_currency' }, '9' => { description: 'Order currency', identifier: 'order_currency' }, '10' => { description: 'Pricing_currency', identifier: 'pricing_currency' }, '11' => { description: 'Payment currency', identifier: 'payment_currency' }, '12' => { description: 'Quotation currency', identifier: 'quotation_currency' } } currency_details = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: currency_type_dictionary, description: 'Currency usage code qualifier', required: true ) currency_details.add(:currency_usage_code_qualifier_1, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: nil, description: 'Currency identification code', required: true ) currency_details.add(:currency_identification_code_1, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: currency_type_dictionary, description: 'Currency type code qualifier', required: true ) currency_details.add(:currency_type_code_qualifier_1, data) data = Eancom::Edifact::Data.new( type: String, length: 0..4, dictionary: nil, description: 'Currency rate value', required: false ) currency_details.add(:currency_rate_value_1, data) structure << currency_details #============================================================================== # Currency Details 2 #============================================================================== currency_details_2 = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: currency_type_dictionary, description: 'Currency usage code qualifier', required: true ) currency_details_2.add(:currency_usage_code_qualifier_2, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: nil, description: 'Currency identification code', required: false ) currency_details_2.add(:currency_identification_code_2, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: currency_type_dictionary, description: 'Currency type code qualifier', required: false ) currency_details_2.add(:currency_type_code_qualifier_2, data) data = Eancom::Edifact::Data.new( type: String, length: 0..4, dictionary: nil, description: 'Currency rate value', required: false ) currency_details_2.add(:currency_rate_value_2, data) structure << currency_details_2 #============================================================================== # Currency Exchange Rate #============================================================================== currency_exchange_rate = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 0..12, dictionary: nil, description: 'Currency exchange rate', required: false ) currency_exchange_rate.add(:currency_exchange_rate, data) structure << currency_exchange_rate #============================================================================== # Exchange rate currency market identifier #============================================================================== exchange_rate_currency_market_identifier = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: nil, description: 'Exchange rate currency market identifier', required: false ) exchange_rate_currency_market_identifier.add(:exchange_rate_currency_market_identifier, data) structure << exchange_rate_currency_market_identifier #============================================================================== Eancom.register_structure(tag: 'CUX', structure: structure)