# frozen_string_literal: true tag = 'QVR' Eancom.register_segment(tag: tag, klass: Eancom::Edifact::QVR) 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 #============================================================================== # Quantity difference information #============================================================================== quantity_difference_information = Eancom::Edifact::Composite.new data = Eancom::Edifact::Data.new( type: Integer, length: 1..15, dictionary: nil, description: "Specify the actual variance amount here.", required: true ) quantity_difference_information.add(:quantity_variance_value, data) data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { '21' => { description: 'Ordered quantity', identifier: 'ordered_quantity' }, '66' => { description: 'Committed quantity', identifier: 'committed_quantity' } }, description: "Quantity type code qualifier", required: true ) quantity_difference_information.add(:quantity_type_code_qualifier, data) structure << quantity_difference_information #============================================================================== # Discrepancy nature identification code #============================================================================== discrepancy_nature_identification_code = Eancom::Edifact::Composite.new data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { 'BP' => { description: 'Shipment partial - back order to follow', identifier: 'shipment_partial_back_order_to_follow', }, 'CP' => { description: 'Shipment partial - considered complete, no backorder', identifier: 'shipment_partial_considered_complete_no_backorder', }, }, description: "", required: true ) discrepancy_nature_identification_code.add(:discrepancy_nature_identification_code, data) structure << discrepancy_nature_identification_code #============================================================================== # Reason for change #============================================================================== reason_for_change = Eancom::Edifact::Composite.new data = Eancom::Edifact::Data.new( type: String, length: 1..3, dictionary: { 'WR' => { description: 'Temporarily unavailable', identifier: 'temporarily_unavailable', }, }, description: "Change reason description code", required: false ) reason_for_change.add(:change_reason_description_code, data) data = Eancom::Edifact::Data.new( type: String, length: 0..17, dictionary: nil, description: 'Code list identification code', required: false ) reason_for_change.add(:code_list_idenfitifaction_code, data) data = Eancom::Edifact::Data.new( type: String, length: 0..3, dictionary: { '9' => { description: 'GS1', identifier: 'gsi', }, '91' => { description: 'Assigned by supplier or suppliers agent', identifier: 'assigned_by_supplier_or_suppliers_agent' }, '92' => { description: 'Assigned by buyer or buyers agent', identifier: 'assigned_by_buyer_or_buyers_agent' } }, description: 'Code list responsible agancy code', required: false ) reason_for_change.add(:code_list_responsibility_agency_code, data) data = Eancom::Edifact::Data.new( type: String, length: 1..35, dictionary: nil, description: "Change reason description", required: false ) reason_for_change.add(:change_reason_description, data) structure << reason_for_change #============================================================================== Eancom.register_structure(tag: 'QVR', structure: structure)