effective_orders 5.6.0 → 5.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff78fd58ee1ed93581d8595a4696c6949cd034453b25a3aacc0202141cf5a1c0
4
- data.tar.gz: ebb6df4bd158ed459c6be065b7974961f7090a4bc7505ff7d53ae62ed64b107e
3
+ metadata.gz: 10e6548b3a84173f5f3f45a9affc25399639d63ede24fe528ff209713567dee5
4
+ data.tar.gz: 54a7feb0ef6f669ab1d2fe01e5ec2b0097bde754653575c40b7806ce9ca26ddb
5
5
  SHA512:
6
- metadata.gz: 29f6c8410a99510761e7c9ee258314d731c8d78b64adec91f42ecb89e99c4a26e949a29f987cf9e421d88071f0425da8ed1e4802d06d29c4167d1e5aa7076e49
7
- data.tar.gz: c9bce8b4363d39ea49eb1d8f99a80c92893185dbd28ab860d17ca4035677d5b52b42ae84adf84249885c8c4bb7184eac9aaf21510739885f80a6d43b762ee0a9
6
+ metadata.gz: ea11b4ac3dfe6d4091a89761fbc434367c432b91ee0ae2e2f18b8d2fc79672e26a1488123f4214589ed1b7be8f2229b41d6df362c73a60d379dacd83f268f91d
7
+ data.tar.gz: 18632a2434b9081cad43dac618ce37785ac0fe1aa6a2770e09df9ce6a0e016f66c70b31f8b8d8db99a6920f04a3f7634524bcee1e13a1473acce6b4b7bb17c3b
@@ -82,7 +82,7 @@ module Effective
82
82
  self.state = EffectiveOrders::CONFIRMED if pending? && confirmed_checkout
83
83
  end
84
84
 
85
- with_options(unless: -> { purchased? }) do
85
+ with_options(unless: -> { done? }) do
86
86
  before_validation { assign_email }
87
87
  before_validation { assign_user_address }
88
88
  before_validation { assign_billing_name }
@@ -105,7 +105,7 @@ module Effective
105
105
 
106
106
  validate(unless: -> { (free? && EffectiveOrders.free?) || (refund? && EffectiveOrders.refund?) }) do
107
107
  if total.present? && total < EffectiveOrders.minimum_charge
108
- self.errors.add(:total, "must be $#{'%0.2f' % (EffectiveOrders.minimum_charge.to_i / 100.0)} or more. Please add additional items.")
108
+ errors.add(:total, "must be $#{'%0.2f' % (EffectiveOrders.minimum_charge.to_i / 100.0)} or more. Please add additional items.")
109
109
  end
110
110
  end
111
111
  end
@@ -139,7 +139,7 @@ module Effective
139
139
  validates :payment_provider, presence: true
140
140
 
141
141
  validate do
142
- self.errors.add(:payment_provider, "unknown deferred payment provider") unless EffectiveOrders.deferred_providers.include?(payment_provider)
142
+ errors.add(:payment_provider, "unknown deferred payment provider") unless EffectiveOrders.deferred_providers.include?(payment_provider)
143
143
  end
144
144
  end
145
145
 
@@ -147,6 +147,10 @@ module Effective
147
147
  raise EffectiveOrders::AlreadyPurchasedException.new('cannot unpurchase an order') unless purchased?
148
148
  end
149
149
 
150
+ before_save(if: -> { done? }) do
151
+ raise('cannot change total of a purchased order') if changes[:total].present?
152
+ end
153
+
150
154
  # Effective::Order.new()
151
155
  # Effective::Order.new(Product.first)
152
156
  # Effective::Order.new(current_cart)
@@ -390,7 +394,7 @@ module Effective
390
394
  end
391
395
 
392
396
  def done?
393
- purchased? || declined?
397
+ persisted? && (purchased? || declined?)
394
398
  end
395
399
 
396
400
  # A custom order is one that was created by an admin
@@ -641,7 +645,6 @@ module Effective
641
645
  EffectiveOrders.send_email(:refund_notification_to_admin, self) if purchased? && refund?
642
646
  end
643
647
 
644
-
645
648
  protected
646
649
 
647
650
  def get_tax_rate
@@ -666,11 +669,11 @@ module Effective
666
669
  end
667
670
 
668
671
  def assign_billing_name
669
- self.billing_name ||= billing_address.try(:full_name).presence || user.to_s.presence
672
+ self.billing_name = billing_address.try(:full_name).presence || user.to_s.presence
670
673
  end
671
674
 
672
675
  def assign_email
673
- self.email ||= user.try(:email)
676
+ self.email = user.email if user.try(:email).present?
674
677
  end
675
678
 
676
679
  def assign_user_address
@@ -690,9 +693,9 @@ module Effective
690
693
  # This overwrites the prices, taxes, etc on every save.
691
694
  def assign_order_totals
692
695
  # Copies prices from purchasable into order items
693
- present_order_items.each { |oi| oi.assign_purchasable_attributes() }
696
+ present_order_items.each { |oi| oi.assign_purchasable_attributes }
694
697
 
695
- # The subtotal
698
+ # Sum of order item subtotals
696
699
  subtotal = present_order_items.map { |oi| oi.subtotal }.sum
697
700
 
698
701
  self.subtotal = subtotal
@@ -34,7 +34,7 @@ module Effective
34
34
 
35
35
  # This method is called in a before_validation in order.assign_order_totals()
36
36
  def assign_purchasable_attributes
37
- assign_attributes(name: purchasable.name, price: purchasable.price, tax_exempt: purchasable.tax_exempt?) if purchasable
37
+ assign_attributes(name: purchasable.purchasable_name, price: purchasable.price, tax_exempt: purchasable.tax_exempt) if purchasable
38
38
  end
39
39
 
40
40
  def build_purchasable(atts = {})
@@ -1,8 +1,8 @@
1
1
  %h1.effective-admin-heading= @page_title
2
2
 
3
- = render 'effective/orders/order_actions', order: @order
3
+ - if @order.custom_order? && @order.in_progress?
4
+ = render 'effective/orders/order_actions', order: @order
4
5
 
5
- - if @order.custom_order?
6
6
  .mb-4
7
7
  = collapse('show order') do
8
8
  = render 'effective/orders/order', order: @order, no_order_actions: true
@@ -10,4 +10,6 @@
10
10
  = render 'admin/orders/form', order: @order
11
11
 
12
12
  - else
13
+ - # Same as the show action
13
14
  = render 'effective/orders/order', order: @order
15
+ = render 'admin/orders/form_note_internal', order: @order
@@ -7,17 +7,18 @@
7
7
  class: 'btn btn-secondary',
8
8
  data: { method: :post, confirm: "Send receipt to #{order.emails_send_to}?" }
9
9
 
10
- - if order.persisted? && order.in_progress? && EffectiveResources.authorized?(controller, :admin, :effective_orders)
11
- - if params[:action] == 'show'
12
- = link_to('Edit', effective_orders.edit_admin_order_path(order), class: 'btn btn-primary')
10
+ - if controller_path.include?('admin/') && (EffectiveResources.authorized?(controller, :admin, :effective_orders) rescue false)
11
+ - if order.persisted? && order.in_progress?
12
+ - if params[:action] == 'show'
13
+ = link_to('Edit', effective_orders.edit_admin_order_path(order), class: 'btn btn-primary')
13
14
 
14
- - if params[:action] == 'edit'
15
- = link_to('Show', effective_orders.admin_order_path(order), class: 'btn btn-primary')
15
+ - if params[:action] == 'edit'
16
+ = link_to('Show', effective_orders.admin_order_path(order), class: 'btn btn-primary')
16
17
 
17
- = link_to 'Email request for payment to buyer', effective_orders.send_payment_request_admin_order_path(order),
18
- class: 'btn btn-secondary',
19
- data: { method: :post, confirm: "Send request for payment to #{order.emails_send_to}?" }
18
+ = link_to 'Email request for payment to buyer', effective_orders.send_payment_request_admin_order_path(order),
19
+ class: 'btn btn-secondary',
20
+ data: { method: :post, confirm: "Send request for payment to #{order.emails_send_to}?" }
20
21
 
21
- = link_to 'Delete', effective_orders.admin_order_path(order),
22
- class: 'btn btn-danger',
23
- data: { method: :delete, confirm: "Really delete #{order}?" }
22
+ = link_to 'Delete', effective_orders.admin_order_path(order),
23
+ class: 'btn btn-danger',
24
+ data: { method: :delete, confirm: "Really delete #{order}?" }
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '5.6.0'.freeze
2
+ VERSION = '5.7.0'.freeze
3
3
  end
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.6.0
4
+ version: 5.7.0
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: 2022-05-25 00:00:00.000000000 Z
11
+ date: 2022-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails