tag = 'MEA' Eancom.register_segment(tag: tag, klass: Eancom::Edifact::MEA) 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 #============================================================================== # Measurement purpose code qualifier #============================================================================== measurement_purpose_code_qualifier = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'PD' => { description: 'Physical dimension', identifier: 'physical_dimension', }, 'SO' => { description: 'Storage limitation', identifier: 'storage_limitation', }, 'TL' => { description: 'Transportation equipment limitation', identifier: 'transportation_equipment_limitation', }, 'AAI' => { description: 'Item weight', identifier: 'item_weight', }, 'SV' => { description: 'Specification value', identifier: 'specification_value', }, }, description: "Measurement purpose code qualifier", required: true ) measurement_purpose_code_qualifier.add(:measurement_purpose_code_qualifier, data) structure << measurement_purpose_code_qualifier #============================================================================== # Measurement Details #============================================================================== measurement_details = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { 'ADX' => { description: 'Transport container actual filling weight', identifier: 'transport_container_acttual_filling_weight', }, 'AAB' => { description: 'Unit gross weight', identifier: 'unit_gross_weight', }, 'ADZ' => { description: 'Declared net weight', identifier: 'declared_net_weight', }, 'AEA' => { description: 'Loading height', identifier: 'loading_height', }, 'AEB' => { description: 'Stacking height', identifier: 'stacking_height', }, 'HT' => { description: 'Height dimension', identifier: 'height_dimension', }, 'LAY' => { description: 'Number of Layers', identifier: 'loading_height', }, 'LN' => { description: 'Length dimension', identifier: 'length_dimension', }, 'ULY' => { description: 'Number of units per layer', identifier: 'number_of_units_per_layer', }, 'WD' => { description: 'Width dimension', identifier: 'width_dimension', }, }, description: "Measured attribute code", required: true ) measurement_details.add(:measured_attribute_code, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '3' => { description: 'Approcimately', identifier: 'approcimately', }, '4' => { description: 'Equal to', identifier: 'equal_to', }, }, description: "Measurement significance code", required: false ) measurement_details.add(:measurement_significance_code, data) structure << measurement_details #============================================================================== # Value/Range #============================================================================== value_range = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'KGM' => { description: 'Kilogram', identifier: 'kg', }, 'MMT' => { description: 'Milimeter', identifier: 'mm', }, 'GRM' => { description: 'Gramm', identifier: 'g', }, 'P1' => { description: 'Percentage', identifier: 'percentage', }, }, description: "Measurement unit code", required: true ) value_range.add(:measurment_unit_code, data) data = Eancom::Edifact::Data.new( type: String, length: 1..18, dictionary: nil, description: "Measurement value", required: true ) value_range.add(:measurement_value, data) data = Eancom::Edifact::Data.new( type: String, length: 1..18, dictionary: nil, description: "Range minimum value", required: false ) value_range.add(:range_minimum_value, data) data = Eancom::Edifact::Data.new( type: String, length: 1..18, dictionary: nil, description: "Range maximum value", required: false ) value_range.add(:range_maximum_value, data) structure << value_range #============================================================================== Eancom.register_structure(tag: 'MEA', structure: structure)