effective_orders 6.5.2 → 6.5.4

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: 8cd209b4bfdd333ea96dfa7c850a3d136738b8bb355547707d389521dfad03c2
4
- data.tar.gz: 2df312bdfb0ecb45095f2dd7067f95f091e3fe0247cfdb44957de1b517eb52ef
3
+ metadata.gz: 9556f1f1d36f6ec955075b18a44d4ab62a89d5e9197ed96b7a74e0a9359dc3df
4
+ data.tar.gz: a21e9a22e9d90d6e1fe75aa76c521d21f7f42d8cee51248d0aacf9ba3aa7a6bc
5
5
  SHA512:
6
- metadata.gz: f4d65e073900587f76a08122998cb06d84da8df4006226fb5fd6c272015c277e9440d8719a989b563d5795743fe4a23f0a06cc004d57ed5dd19f4547d544cb8b
7
- data.tar.gz: 630ce183e1a5691800eec6ad28fedb074fa6a17dcbb05ff85e8c1f671df5148cd075c09d02193b0ea93bbd77e026fa07af325694e69668e9c9441c87e8ec3ff4
6
+ metadata.gz: a9878d9e12edd59fefc4b4654d54591f1e0bea8b22a833f933086e058b1de81ce3c1907d76522318457ca4181086bd4fc8563dd078cf0e5baf858f99bf7cf259
7
+ data.tar.gz: 6a86937f2081ed04e7b8b10ede3e9511bd5c84dee08e8a19c35098c68ec39d9b0d152a877ab7156254feb1c3e351c6831f55700d93d41b6c14428be298fa209d
@@ -38,6 +38,7 @@
38
38
  }
39
39
 
40
40
  .effective-order-change-items {
41
+ text-align: right;
41
42
  margin-bottom: 1rem;
42
43
  }
43
44
 
@@ -52,7 +53,7 @@ form.new_effective_order {
52
53
  }
53
54
 
54
55
  .effective-moneris-checkout {
55
- height: 720px;
56
+ height: 560px;
56
57
  }
57
58
 
58
59
  @media print {
@@ -62,14 +62,16 @@ module Effective
62
62
  # Might render step1 or step2
63
63
  def show
64
64
  @order = Effective::Order.find(params[:id])
65
- EffectiveResources.authorize!(self, :show, @order)
65
+ @page_title ||= view_context.order_page_title(@order)
66
66
 
67
- @page_title ||= ((@order.user == current_user && !@order.purchased?) ? 'Checkout' : @order.to_s)
67
+ EffectiveResources.authorize!(self, :show, @order)
68
68
  end
69
69
 
70
70
  # Always step1
71
71
  def edit
72
72
  @order ||= Effective::Order.was_not_purchased.find(params[:id])
73
+ @page_title ||= view_context.order_page_title(@order)
74
+
73
75
  EffectiveResources.authorize!(self, :edit, @order)
74
76
  end
75
77
 
@@ -10,13 +10,22 @@ module Effective
10
10
 
11
11
  EffectiveResources.authorize!(self, :update, @order)
12
12
 
13
- order_purchased(
14
- payment: 'for pretend',
15
- provider: 'pretend',
16
- card: 'none',
17
- purchased_url: pretend_params[:purchased_url],
18
- current_user: current_user
19
- )
13
+ if params[:commit].to_s.include?('Decline')
14
+ order_declined(
15
+ payment: 'for pretend',
16
+ provider: 'pretend',
17
+ card: 'none',
18
+ declined_url: pretend_params[:declined_url]
19
+ )
20
+ else
21
+ order_purchased(
22
+ payment: 'for pretend',
23
+ provider: 'pretend',
24
+ card: 'none',
25
+ purchased_url: pretend_params[:purchased_url],
26
+ current_user: current_user
27
+ )
28
+ end
20
29
  end
21
30
 
22
31
  def pretend_params
@@ -82,6 +82,24 @@ module EffectiveOrdersHelper
82
82
  render(partial: 'effective/orders/order', locals: { order: order })
83
83
  end
84
84
 
85
+ def order_page_title(order)
86
+ raise 'expected an order' unless order.kind_of?(Effective::Order)
87
+
88
+ authorized = EffectiveResources.authorized?(self, :update, order)
89
+
90
+ if order.purchased? || order.declined?
91
+ order.to_s
92
+ elsif authorized && (controller.action_name == 'edit')
93
+ 'Order Review'
94
+ elsif authorized && (order.confirmed? || order.deferred?) && order.errors.blank?
95
+ 'Checkout'
96
+ elsif authorized && order.pending?
97
+ 'Order Review'
98
+ else
99
+ order.to_s
100
+ end
101
+ end
102
+
85
103
  def render_checkout(order, namespace: nil, purchased_url: nil, declined_url: nil, deferred_url: nil)
86
104
  raise 'expected an order' unless order.kind_of?(Effective::Order)
87
105
  raise 'unable to checkout an order without a user or organization' if order && (order.user.blank? && order.organization.blank?)
@@ -583,6 +583,12 @@ module Effective
583
583
  false
584
584
  end
585
585
 
586
+ # Called by effective_memberships to update prices from purchasable fees
587
+ # Not called internally
588
+ def update_purchasable_attributes
589
+ present_order_items.each { |oi| oi.update_purchasable_attributes }
590
+ end
591
+
586
592
  # Call this as a way to skip over non consequential orders
587
593
  # And mark some purchasables purchased
588
594
  # This is different than the Mark as Paid payment processor
@@ -37,7 +37,17 @@ module Effective
37
37
 
38
38
  # This method is called in a before_validation in order.assign_order_values()
39
39
  def assign_purchasable_attributes
40
- assign_attributes(name: purchasable.purchasable_name, price: purchasable.price, tax_exempt: purchasable.tax_exempt) if purchasable
40
+ return unless purchasable.present?
41
+
42
+ self.name ||= purchasable.purchasable_name
43
+ self.price ||= purchasable.price
44
+ self.tax_exempt = purchasable.tax_exempt if self.tax_exempt.nil?
45
+ end
46
+
47
+ def update_purchasable_attributes
48
+ if purchasable.present? && !marked_for_destruction?
49
+ assign_attributes(name: purchasable.purchasable_name, price: purchasable.price, tax_exempt: purchasable.tax_exempt)
50
+ end
41
51
  end
42
52
 
43
53
  def build_purchasable(atts = {})
@@ -1,4 +1,9 @@
1
- .effective-order
2
- = effective_form_with(model: order, url: checkout_step1_form_url(order, namespace)) do |f|
3
- = render('effective/orders/fields', order: order, form: f)
4
- = f.submit 'Proceed to Checkout'
1
+ - if current_cart.present?
2
+ .effective-order-change-items
3
+ = link_to 'Change Items', effective_orders.cart_path, rel: :nofollow
4
+
5
+ = render(order, no_order_actions: true)
6
+
7
+ = effective_form_with(model: order, url: checkout_step1_form_url(order, namespace)) do |f|
8
+ = render('effective/orders/fields', order: order, form: f)
9
+ = f.submit 'Proceed to Checkout'
@@ -1,9 +1,9 @@
1
- = render partial: 'effective/orders/order', locals: { order: order }
2
-
3
1
  - # Show this if I'm on the effective orders checkout screen. But not on a rendered order.
4
2
  - if order.persisted? && order.user == current_user && request.path.to_s.start_with?(effective_orders.order_path(order))
5
3
  .effective-order-change-items
6
- = link_to 'Change Addresses', effective_orders.edit_order_path(order), rel: :nofollow, class: 'btn btn-secondary'
4
+ = link_to 'Change Addresses', effective_orders.edit_order_path(order), rel: :nofollow
5
+
6
+ = render(order, no_order_actions: true)
7
7
 
8
8
  .effective-order-purchase-actions
9
9
  - provider_locals = { order: order, purchased_url: purchased_url, declined_url: declined_url, deferred_url: deferred_url }
@@ -1,14 +1,10 @@
1
1
  - form ||= local_assigns[:form] || local_assigns[:f]
2
2
 
3
- = render 'effective/orders/order_notes', order: form.object
4
- = render 'effective/orders/order_items', order: form.object
3
+ -# = render 'effective/orders/order_notes', order: form.object
4
+ -# = render 'effective/orders/order_items', order: form.object
5
5
 
6
6
  = form.hidden_field :confirmed_checkout, value: true
7
7
 
8
- - if current_cart.present?
9
- .effective-order-change-items
10
- = link_to 'Change Items', effective_orders.cart_path, rel: :nofollow, class: 'btn btn-secondary'
11
-
12
8
  - num_addresses = [EffectiveOrders.billing_address, EffectiveOrders.shipping_address].count(true)
13
9
 
14
10
  - if num_addresses > 0
@@ -4,9 +4,6 @@
4
4
 
5
5
  .card
6
6
  .card-body.bg-light
7
- .mb-3.text-center
8
- %h2 Checkout
9
-
10
7
  = effective_form_with(scope: :moneris_checkout, url: effective_orders.moneris_checkout_order_path(order), data: { 'moneris-checkout-form': moneris_checkout.to_json }) do |f|
11
8
  = f.hidden_field :purchased_url, value: purchased_url
12
9
  = f.hidden_field :declined_url, value: declined_url
@@ -9,4 +9,6 @@
9
9
  - if EffectiveOrders.pretend_message.present?
10
10
  %p= EffectiveOrders.pretend_message
11
11
 
12
- = f.submit order_checkout_label(:pretend), border: false, center: true
12
+ = f.submit(border: false, center: true) do
13
+ = f.save order_checkout_label(:pretend)
14
+ = f.save order_checkout_label(:pretend).gsub('Purchase', 'Decline')
@@ -48,7 +48,7 @@ class CreateEffectiveOrders < ActiveRecord::Migration[4.2]
48
48
 
49
49
  t.string :name
50
50
  t.integer :quantity
51
- t.integer :price, :default => 0
51
+ t.integer :price
52
52
  t.boolean :tax_exempt
53
53
 
54
54
  t.timestamps
@@ -1,3 +1,3 @@
1
1
  module EffectiveOrders
2
- VERSION = '6.5.2'.freeze
2
+ VERSION = '6.5.4'.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: 6.5.2
4
+ version: 6.5.4
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: 2023-06-19 00:00:00.000000000 Z
11
+ date: 2023-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails