Sha256: 9947b4731d1ff548a2f9cf4a6a07902b9a69993dff3c32a7e8b407c53ead5c8d

Contents?: true

Size: 1.21 KB

Versions: 9

Compression:

Stored size: 1.21 KB

Contents

module KktShoppe
  class DeliveryService < ActiveRecord::Base
  
    self.table_name = 'kkt_shoppe_delivery_services'

    # Validations
    validates :name, :presence => true
    validates :courier, :presence => true
  
    # Orders which are assigned to this delivery service
    has_many :orders, :dependent => :restrict_with_exception, :class_name => 'KktShoppe::Order'
    
    # Prices for the different levels of service within this delivery service
    has_many :delivery_service_prices, :dependent => :destroy, :class_name => 'KktShoppe::DeliveryServicePrice'
  
    # All active delivery services
    scope :active, -> { where(:active => true)}
    
    # Returns a tracking URL for the passed order
    #
    # @param order [KktShoppe::Order]
    # @return [String] the full URL for the order.
    def tracking_url_for(order)
      return nil if self.tracking_url.blank?
      tracking_url = self.tracking_url.dup
      tracking_url.gsub!("{{consignment_number}}", CGI.escape(order.consignment_number.to_s))
      tracking_url.gsub!("{{delivery_postcode}}", CGI.escape(order.delivery_postcode.to_s))
      tracking_url.gsub!("{{billing_postcode}}", CGI.escape(order.billing_postcode.to_s))
      tracking_url
    end

  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
kkt_shoppe-2.0.2 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-2.0.1 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-2.0.0 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-1.3.0 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-1.2.1 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-1.2.0 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-1.1.2 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-1.1.1 app/models/kkt_shoppe/delivery_service.rb
kkt_shoppe-1.1.0 app/models/kkt_shoppe/delivery_service.rb