effective_orders 5.1.2 → 5.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: '063584ca12ed4cb46363a9c7c99f729889bf536eb0a1afb6021e04f07349532b'
         | 
| 4 | 
            +
              data.tar.gz: 313908b8ff6797d96c7139a3598b6790a3fda9fb358e69a240e0ccb5afcd8569
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 71a032b3e32b4387801d3630e58df4ee9b91f890a0d87e42c1c4eacb5cb49875e7494316089c01d9d9bdf8a10e246d09caa8d4d2bb400897221661957fc63034
         | 
| 7 | 
            +
              data.tar.gz: 7149e03e2c5f5f830a53f235eafd6c712213d5dd6eb4958554d752e7f8e51d124188cebe432284a8ddde462e2fd5ff7ec21999a00465220fbc9d4cb5f5a84a08
         | 
| @@ -11,7 +11,7 @@ module Effective | |
| 11 11 | 
             
                    Effective::Cart.where(user: @order.user).destroy_all
         | 
| 12 12 |  | 
| 13 13 | 
             
                    if flash[:success].blank?
         | 
| 14 | 
            -
                      if email &&  | 
| 14 | 
            +
                      if email && @order.send_order_receipt_to_buyer?
         | 
| 15 15 | 
             
                        flash[:success] = "Payment successful! A receipt has been sent to #{@order.emails_send_to}"
         | 
| 16 16 | 
             
                      else
         | 
| 17 17 | 
             
                        flash[:success] = "Payment successful! An email receipt has not been sent."
         | 
| @@ -69,6 +69,7 @@ module Effective | |
| 69 69 | 
             
                before_validation { assign_billing_name }
         | 
| 70 70 | 
             
                before_validation { assign_email }
         | 
| 71 71 | 
             
                before_validation { assign_last_address }
         | 
| 72 | 
            +
                before_validation { assign_user_address }
         | 
| 72 73 |  | 
| 73 74 | 
             
                before_validation(if: -> { confirmed_checkout }) do
         | 
| 74 75 | 
             
                  self.state = EffectiveOrders::CONFIRMED if pending?
         | 
| @@ -156,30 +157,34 @@ module Effective | |
| 156 157 | 
             
                def initialize(atts = nil, &block)
         | 
| 157 158 | 
             
                  super(state: EffectiveOrders::PENDING) # Initialize with state: PENDING
         | 
| 158 159 |  | 
| 159 | 
            -
                  return unless atts.present?
         | 
| 160 | 
            +
                  return self unless atts.present?
         | 
| 160 161 |  | 
| 161 162 | 
             
                  if atts.kind_of?(Hash)
         | 
| 162 | 
            -
                    items = Array(atts | 
| 163 | 
            +
                    items = Array(atts[:item]) + Array(atts[:items])
         | 
| 163 164 |  | 
| 164 | 
            -
                    self.user = atts | 
| 165 | 
            +
                    self.user = atts[:user] || (items.first.user if items.first.respond_to?(:user))
         | 
| 165 166 |  | 
| 166 | 
            -
                    if (address = atts | 
| 167 | 
            +
                    if (address = atts[:billing_address]).present?
         | 
| 167 168 | 
             
                      self.billing_address = address
         | 
| 168 169 | 
             
                      self.billing_address.full_name ||= user.to_s.presence
         | 
| 169 170 | 
             
                    end
         | 
| 170 171 |  | 
| 171 | 
            -
                    if (address = atts | 
| 172 | 
            +
                    if (address = atts[:shipping_address]).present?
         | 
| 172 173 | 
             
                      self.shipping_address = address
         | 
| 173 174 | 
             
                      self.shipping_address.full_name ||= user.to_s.presence
         | 
| 174 175 | 
             
                    end
         | 
| 175 176 |  | 
| 176 | 
            -
                    atts. | 
| 177 | 
            +
                    atts.except(:item, :items, :user, :billing_address, :shipping_address).each do |key, value|
         | 
| 178 | 
            +
                      self.send("#{key}=", value)
         | 
| 179 | 
            +
                    end
         | 
| 177 180 |  | 
| 178 181 | 
             
                    add(items) if items.present?
         | 
| 179 182 | 
             
                  else # Attributes are not a Hash
         | 
| 180 183 | 
             
                    self.user = atts.user if atts.respond_to?(:user)
         | 
| 181 184 | 
             
                    add(atts)
         | 
| 182 185 | 
             
                  end
         | 
| 186 | 
            +
             | 
| 187 | 
            +
                  self
         | 
| 183 188 | 
             
                end
         | 
| 184 189 |  | 
| 185 190 | 
             
                # Items can be an Effective::Cart, an Effective::order, a single acts_as_purchasable, or multiple acts_as_purchasables
         | 
| @@ -225,7 +230,6 @@ module Effective | |
| 225 230 | 
             
                  retval.size == 1 ? retval.first : retval
         | 
| 226 231 | 
             
                end
         | 
| 227 232 |  | 
| 228 | 
            -
             | 
| 229 233 | 
             
                def update_prices!
         | 
| 230 234 | 
             
                  raise('already purchased') if purchased?
         | 
| 231 235 | 
             
                  raise('must be pending or confirmed') unless pending? || confirmed?
         | 
| @@ -346,6 +350,14 @@ module Effective | |
| 346 350 | 
             
                  order_items.map { |oi| oi.quantity }.sum
         | 
| 347 351 | 
             
                end
         | 
| 348 352 |  | 
| 353 | 
            +
                def send_order_receipt_to_admin?
         | 
| 354 | 
            +
                  EffectiveOrders.mailer[:send_order_receipt_to_admin] && !free?
         | 
| 355 | 
            +
                end
         | 
| 356 | 
            +
             | 
| 357 | 
            +
                def send_order_receipt_to_buyer?
         | 
| 358 | 
            +
                  EffectiveOrders.mailer[:send_order_receipt_to_buyer] && !free?
         | 
| 359 | 
            +
                end
         | 
| 360 | 
            +
             | 
| 349 361 | 
             
                def send_payment_request_to_buyer?
         | 
| 350 362 | 
             
                  EffectiveResources.truthy?(send_payment_request_to_buyer) && !free? && !refund?
         | 
| 351 363 | 
             
                end
         | 
| @@ -426,11 +438,7 @@ module Effective | |
| 426 438 | 
             
                def defer!(provider: 'none', email: true)
         | 
| 427 439 | 
             
                  return false if purchased?
         | 
| 428 440 |  | 
| 429 | 
            -
                  assign_attributes(
         | 
| 430 | 
            -
                    state: EffectiveOrders::DEFERRED,
         | 
| 431 | 
            -
                    payment_provider: provider
         | 
| 432 | 
            -
                  )
         | 
| 433 | 
            -
             | 
| 441 | 
            +
                  assign_attributes(state: EffectiveOrders::DEFERRED, payment_provider: provider)
         | 
| 434 442 | 
             
                  save!
         | 
| 435 443 |  | 
| 436 444 | 
             
                  send_payment_request_to_buyer! if email
         | 
| @@ -478,8 +486,8 @@ module Effective | |
| 478 486 | 
             
                end
         | 
| 479 487 |  | 
| 480 488 | 
             
                def send_order_receipts!
         | 
| 481 | 
            -
                  send_order_receipt_to_admin! if  | 
| 482 | 
            -
                  send_order_receipt_to_buyer! if  | 
| 489 | 
            +
                  send_order_receipt_to_admin! if send_order_receipt_to_admin?
         | 
| 490 | 
            +
                  send_order_receipt_to_buyer! if send_order_receipt_to_buyer?
         | 
| 483 491 | 
             
                  send_refund_notification! if refund?
         | 
| 484 492 | 
             
                end
         | 
| 485 493 |  | 
| @@ -563,6 +571,23 @@ module Effective | |
| 563 571 | 
             
                  end
         | 
| 564 572 | 
             
                end
         | 
| 565 573 |  | 
| 574 | 
            +
                def assign_user_address
         | 
| 575 | 
            +
                  return unless user.present?
         | 
| 576 | 
            +
                  return unless (EffectiveOrders.billing_address || EffectiveOrders.shipping_address)
         | 
| 577 | 
            +
                  return if EffectiveOrders.billing_address && billing_address.present?
         | 
| 578 | 
            +
                  return if EffectiveOrders.shipping_address && shipping_address.present?
         | 
| 579 | 
            +
             | 
| 580 | 
            +
                  if billing_address.blank? && user.respond_to?(:billing_address) && user.billing_address.present?
         | 
| 581 | 
            +
                    self.billing_address = user.billing_address
         | 
| 582 | 
            +
                    self.billing_address.full_name ||= user.to_s.presence
         | 
| 583 | 
            +
                  end
         | 
| 584 | 
            +
             | 
| 585 | 
            +
                  if shipping_address.blank? && user.respond_to?(:shipping_address) && user.shipping_address.present?
         | 
| 586 | 
            +
                    self.shipping_address = user.shipping_address
         | 
| 587 | 
            +
                    self.shipping_address.full_name ||= user.to_s.presence
         | 
| 588 | 
            +
                  end
         | 
| 589 | 
            +
                end
         | 
| 590 | 
            +
             | 
| 566 591 | 
             
                def update_purchasables_purchased_order!
         | 
| 567 592 | 
             
                  order_items.each { |oi| oi.purchasable&.update_column(:purchased_order_id, self.id) }
         | 
| 568 593 | 
             
                end
         | 
| @@ -24,14 +24,21 @@ module Effective | |
| 24 24 | 
             
                  @order = order
         | 
| 25 25 | 
             
                  @country_code = country_code
         | 
| 26 26 | 
             
                  @state_code = state_code
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                  raise 'expected an order, or a country and state code' unless (order || country_code)
         | 
| 29 | 
            -
                  raise 'expected an order OR a country and state code. Not both.' if (order && country_code)
         | 
| 30 27 | 
             
                end
         | 
| 31 28 |  | 
| 32 29 | 
             
                def tax_rate
         | 
| 33 | 
            -
                  country = country_code | 
| 34 | 
            -
                  state = state_code | 
| 30 | 
            +
                  country = country_code
         | 
| 31 | 
            +
                  state = state_code
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  if order.present? && order.billing_address.present?
         | 
| 34 | 
            +
                    country ||= order.billing_address.country_code
         | 
| 35 | 
            +
                    state ||= order.billing_address.state_code
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  if order.present? && order.user.respond_to?(:billing_address) && order.user.billing_address.present?
         | 
| 39 | 
            +
                    country ||= order.user.billing_address.country_code
         | 
| 40 | 
            +
                    state ||= order.user.billing_address.state_code
         | 
| 41 | 
            +
                  end
         | 
| 35 42 |  | 
| 36 43 | 
             
                  rate = RATES[country]
         | 
| 37 44 | 
             
                  return rate if rate.kind_of?(Numeric)
         | 
    
        data/lib/effective_orders.rb
    CHANGED
    
    | @@ -107,7 +107,7 @@ module EffectiveOrders | |
| 107 107 |  | 
| 108 108 | 
             
              # The Effective::Order.payment_provider value must be in this collection
         | 
| 109 109 | 
             
              def self.payment_providers
         | 
| 110 | 
            -
                [
         | 
| 110 | 
            +
                @payment_providers ||= [
         | 
| 111 111 | 
             
                  ('cheque' if cheque?),
         | 
| 112 112 | 
             
                  ('credit card' if mark_as_paid?),
         | 
| 113 113 | 
             
                  ('free' if free?),
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: effective_orders
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 5.1. | 
| 4 | 
            +
              version: 5.1.6
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Code and Effect
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021- | 
| 11 | 
            +
            date: 2021-09-07 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         |