tag = 'PCD' Eancom.register_segment(tag: tag, klass: Eancom::Edifact::PCD) structure = Eancom::Edifact::Structure.new(tag: tag) #============================================================================== # Tag # #============================================================================== tag = Eancom::Edifact::Composite.new data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: nil, description: 'Message Header', required: true ) tag.add(:tag, data) structure << tag #============================================================================== # PERCENTAGE DETAILS # #============================================================================== percentage_details = Eancom::Edifact::Composite.new data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { '1' => { description: 'Allowance', identifier: 'allowance' }, '2' => { description: 'Charge', identifier: 'charge' }, '3' => { description: 'Allowance or charge', identifier: 'allowance_or_charge' }, '7' => { description: 'Percentage of invoice', identifier: 'percentage_of_invoice' }, '12' => { description: 'Discount', identifier: 'discount' }, '15' => { description: 'Penalty percentage', identifier: 'penalty_percentage' }, '16' => { description: 'Interest percentage', identifier: 'interest_percentage' } }, description: 'Percentage type code qualifier', required: true ) percentage_details.add(:percentage_type_code_qualifier, data) data = Eancom::Edifact::Data.new( type: String, length: 1..10, dictionary: nil, description: 'Percentage', required: false ) percentage_details.add(:percentage, data) structure << percentage_details #===============================================================================# Eancom.register_structure(tag: 'PCD', structure: structure)