tag = 'PIA' Eancom.register_segment(tag: tag, klass: Eancom::Edifact::PIA) structure = Eancom::Edifact::Structure.new(tag: tag) #============================================================================== # Tag # #============================================================================== tag = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 3, description: "Message Header", required: true ) tag.add(:tag, data) structure << tag #============================================================================== # Product Identifier Code Qualifier # #============================================================================== product_identifier_code_qualifier = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { '1' => { description: 'Additional information', identifier: 'additional_information' }, '3' => { description: 'Substituted by', identifier: 'substituted_by' }, '4' => { description: 'Substituted for', identifier: 'substituted_for' }, '5' => { description: 'Product identification', identifier: 'product_identification' } }, description: 'product identifier code qualifier', required: true ) product_identifier_code_qualifier.add(:product_identifier_code_qualifier, data) structure << product_identifier_code_qualifier #============================================================================== # Item Number Identification 1 # #============================================================================== item_number_identification_1 = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Despatch Advice number assigned by the document sender.\nFor global unique identification of documents Global Document Identifier (GDTI) is available.", required: true ) item_number_identification_1.add(:item_identifier_1, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'AC' => { description: 'HIBC (Health Industry Bar Code)', identifier: 'hibc' }, 'CG' => { description: 'Commodity grouping', identifier: 'commoditiy grouping' }, 'IB' => { description: 'ISBN (International Standard Book Number)', identifier: 'isbn' }, 'IN' => { description: "Buyer's item number", identifier: 'buyers_item_number' }, 'HS' => { description: "Harmonised system", identifier: 'harmonised_system' }, 'GD' => { description: "Industry sector article group number/product classification code (GS1 Code)", identifier: 'industry_sector_article_group_number_product_classification_code' }, 'GU' => { description: "Supplier's internal article group number/product classification code (GS1 Code)", identifier: 'suppliers_internal_article_group_number_product_classification_code' }, 'PV' => { description: 'Promotional variant number', identifier: 'promotional_variant_number' }, 'SA' => { description: "Supplier's article number", identifier: 'suppliers_article_number' }, 'SRV' => { description: 'GS1 Global Trade Item Number', identifier: 'gs1_global_trade_item_number' }, 'SRX' => { description: 'Slaughter number', identifier: 'slaughter_number' }, 'X2' => { description: 'Ear-tag number (GS1 Temporary Code)', identifier: 'ear_tag_number' } }, description: 'Item type identification code', required: true ) item_number_identification_1.add(:item_type_identification_code_1, data) data = Eancom::Edifact::Data.new( type: String, length: 0..17, description: "Code list identification code", required: false ) item_number_identification_1.add(:code_list_identification_code_1, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '9' => { description: 'GS1', identifier: 'gs1' }, '91' => { description: "Assigned by supplier or supplier's agent", identifier: 'assigned_by_supplier_or_suppliers_agent' }, '92' => { description: "Assigned by buyer or buyer's agent", identifier: 'assigned_by_buyer_or_buyers_agent' } }, description: "Code list responsible agency code", required: false ) item_number_identification_1.add(:code_list_responsible_agency_code_1, data) structure << item_number_identification_1 #============================================================================== # Item Number Identification 2 # #============================================================================== item_number_identification_2 = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Despatch Advice number assigned by the document sender.\nFor global unique identification of documents Global Document Identifier (GDTI) is available.", required: true ) item_number_identification_2.add(:item_identifier_2, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'AC' => { description: 'HIBC (Health Industry Bar Code)', identifier: 'hibc' }, 'IB' => { description: 'ISBN (International Standard Book Number)', identifier: 'isbn' }, 'IN' => { description: "Buyer's item number", identifier: 'buyers_item_number' }, 'PV' => { description: 'Promotional variant number', identifier: 'promotional_variant_number' }, 'SA' => { description: "Supplier's article number", identifier: 'suppliers_article_number' }, 'SRV' => { description: 'GS1 Global Trade Item Number', identifier: 'gs1_global_trade_item_number' }, 'SRX' => { description: 'Slaughter number', identifier: 'slaughter_number' }, 'GU' => { description: "Supplier's internal article group number/product classification code (GS1 Code)", identifier: 'suppliers_internal_article_group_number_product_classification_code' }, 'X2' => { description: 'Ear-tag number (GS1 Temporary Code)', identifier: 'ear_tag_number' } }, description: 'Item type identification code', required: true ) item_number_identification_2.add(:item_type_identification_code_2, data) data = Eancom::Edifact::Data.new( type: String, length: 0..17, description: "Code list identification code", required: false ) item_number_identification_2.add(:code_list_identification_code_2, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '9' => { description: 'GS1', identification: 'gs1' }, '91' => { description: "Assigned by supplier or supplier's agent", identification: 'assigned_by_supplier_or_suppliers_agent' }, '92' => { description: "Assigned by buyer or buyer's agent", identification: 'assigned_by_buyer_or_buyers_agent' } }, description: "Code list responsible agency code", required: false ) item_number_identification_2.add(:code_list_responsible_agency_code_2, data) structure << item_number_identification_2 #============================================================================== # Item Number Identification 3 # #============================================================================== item_number_identification_3 = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Despatch Advice number assigned by the document sender.\nFor global unique identification of documents Global Document Identifier (GDTI) is available.", required: true ) item_number_identification_3.add(:item_identifier_3, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'AC' => { description: 'HIBC (Health Industry Bar Code)', identifier: 'hibc' }, 'IB' => { description: 'ISBN (International Standard Book Number)', identifier: 'isbn' }, 'IN' => { description: "Buyer's item number", identifier: 'buyers_item_number' }, 'PV' => { description: 'Promotional variant number', identifier: 'promotional_variant_number' }, 'SA' => { description: "Supplier's article number", identifier: 'suppliers_article_number' }, 'SRV' => { description: 'GS1 Global Trade Item Number', identifier: 'gs1_global_trade_item_number' }, 'SRX' => { description: 'Slaughter number', identifier: 'slaughter_number' }, 'X2' => { description: 'Ear-tag number (GS1 Temporary Code)', identifier: 'ear_tag_number' } }, description: 'Item type identification code', required: true ) item_number_identification_3.add(:item_type_identification_code_3, data) data = Eancom::Edifact::Data.new( type: String, length: 0..17, description: "Code list identification code", required: false ) item_number_identification_3.add(:code_list_identification_code_3, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '9' => { description: 'GS1', identification: 'gs1' }, '91' => { description: "Assigned by supplier or supplier's agent", identification: 'assigned_by_supplier_or_suppliers_agent' }, '92' => { description: "Assigned by buyer or buyer's agent", identification: 'assigned_by_buyer_or_buyers_agent' } }, description: "Code list responsible agency code", required: false ) item_number_identification_3.add(:code_list_responsible_agency_code_3, data) structure << item_number_identification_3 #============================================================================== # Item Number Identification 4 # #============================================================================== item_number_identification_4 = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Despatch Advice number assigned by the document sender.\nFor global unique identification of documents Global Document Identifier (GDTI) is available.", required: true ) item_number_identification_4.add(:item_identifier_4, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'AC' => { description: 'HIBC (Health Industry Bar Code)', identifier: 'hibc' }, 'IB' => { description: 'ISBN (International Standard Book Number)', identifier: 'isbn' }, 'IN' => { description: "Buyer's item number", identifier: 'buyers_item_number' }, 'PV' => { description: 'Promotional variant number', identifier: 'promotional_variant_number' }, 'SA' => { description: "Supplier's article number", identifier: 'suppliers_article_number' }, 'SRV' => { description: 'GS1 Global Trade Item Number', identifier: 'gs1_global_trade_item_number' }, 'SRX' => { description: 'Slaughter number', identifier: 'slaughter_number' }, 'X2' => { description: 'Ear-tag number (GS1 Temporary Code)', identifier: 'ear_tag_number' } }, description: 'Item type identification code', required: true ) item_number_identification_4.add(:item_type_identification_code_4, data) data = Eancom::Edifact::Data.new( type: String, length: 0..17, description: "Code list identification code", required: false ) item_number_identification_4.add(:code_list_identification_code_4, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '9' => { description: 'GS1', identifier: 'gs1' }, '91' => { description: "Assigned by supplier or supplier's agent", identifier: 'assigned_by_supplier_or_suppliers_agent' }, '92' => { description: "Assigned by buyer or buyer's agent", identifier: 'assigned_by_buyer_or_buyers_agent' } }, description: "Code list responsible agency code", required: false ) item_number_identification_4.add(:code_list_responsible_agency_code_4, data) structure << item_number_identification_4 #============================================================================== # Item Number Identification 5 # #============================================================================== item_number_identification_5 = Eancom::Edifact::Composite.new() data = Eancom::Edifact::Data.new( type: String, length: 1..35, description: "Despatch Advice number assigned by the document sender.\nFor global unique identification of documents Global Document Identifier (GDTI) is available.", required: true ) item_number_identification_5.add(:item_identifier_5, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'AC' => { description: 'HIBC (Health Industry Bar Code)', identifier: 'hibc' }, 'IB' => { description: 'ISBN (International Standard Book Number)', identifier: 'isbn' }, 'IN' => { description: "Buyer's item number", identifier: 'buyers_item_number' }, 'PV' => { description: 'Promotional variant number', identifier: 'promotional_variant_number' }, 'SA' => { description: "Supplier's article number", identifier: 'suppliers_article_number' }, 'SRV' => { description: 'GS1 Global Trade Item Number', identifier: 'gs1_global_trade_item_number' }, 'SRX' => { description: 'Slaughter number', identifier: 'slaughter_number' }, 'X2' => { description: 'Ear-tag number (GS1 Temporary Code)', identifier: 'ear_tag_number' } }, description: 'Item type identification code', required: true ) item_number_identification_5.add(:item_type_identification_code_5, data) data = Eancom::Edifact::Data.new( type: String, length: 0..17, description: "Code list identification code", required: false ) item_number_identification_5.add(:code_list_identification_code_5, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '9' => { description: 'GS1', identification: 'gs1' }, '91' => { description: "Assigned by supplier or supplier's agent", identification: 'assigned_by_supplier_or_suppliers_agent' }, '92' => { description: "Assigned by buyer or buyer's agent", identification: 'assigned_by_buyer_or_buyers_agent' } }, description: "Code list responsible agency code", required: false ) item_number_identification_5.add(:code_list_responsible_agency_code_5, data) structure << item_number_identification_5 #============================================================================== Eancom.register_structure(tag: 'PIA', structure: structure)