class Deliveries::Couriers::MondialRelay::Shipments::Create::FormatParams

Attributes

collection_point[RW]
language[RW]
parcels[RW]
receiver[RW]
reference_code[RW]
remarks[RW]
sender[RW]

Public Class Methods

new(sender:, receiver:, parcels:, reference_code:, collection_point:, remarks:, language:) click to toggle source
# File lib/deliveries/couriers/mondial_relay/shipments/create/format_params.rb, line 9
def initialize(sender:, receiver:, parcels:, reference_code:, collection_point:, remarks:, language:)
  self.sender = sender
  self.receiver = receiver
  self.parcels = parcels
  self.reference_code = reference_code
  self.collection_point = collection_point
  self.remarks = remarks
  self.language = language
end

Public Instance Methods

execute() click to toggle source
# File lib/deliveries/couriers/mondial_relay/shipments/create/format_params.rb, line 19
def execute
  params = {
    'Enseigne' => Deliveries::Couriers::MondialRelay.config(:mondial_relay_merchant),
    'NDossier' => reference_code,
    'Expe_Langage' => language.to_s.upcase,
    'Expe_Ad1' => sender.name,
    'Expe_Ad3' => sender.street,
    'Expe_Ville' => sender.city,
    'Expe_CP' => sender.postcode,
    'Expe_Pays' => sender.country,
    'Expe_Tel1' => sender.phone,
    'Expe_Mail' => sender.email,
    'Dest_Langage' => language.to_s.upcase,
    'Dest_Ad1' => receiver.name,
    'Dest_Ad3' => receiver.street,
    'Dest_Ville' => receiver.city,
    'Dest_CP' => receiver.postcode,
    'Dest_Pays' => receiver.country.to_s.upcase,
    'Dest_Tel1' => receiver.phone,
    'Dest_Mail' => receiver.email,
    'NbColis' => parcels,
    'Instructions' => I18n.transliterate(remarks.to_s).gsub(%r{[^0-9A-Z_\-'., /]}i, '').upcase.truncate(30,
                                                                                                        omission: '')
  }

  # Receiving in a collection point
  receive_mode_params = if collection_point.present?
                          {
                            'ModeLiv' => '24R',
                            'LIV_Rel_Pays' => receiver.country,
                            'LIV_Rel' => collection_point.point_id,
                            'COL_Rel_Pays' => receiver.country,
                            'COL_Rel' => collection_point.point_id
                          }
                        else
                          {
                            'ModeLiv' => 'HOM'
                          }
                        end

  defaults = Defaults::PARAMS

  defaults.merge(params).merge(receive_mode_params)
end