piggybak 0.4.15 → 0.4.16

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.15
1
+ 0.4.16
@@ -89,6 +89,7 @@ module Piggybak
89
89
  if can?(:email, order)
90
90
  Piggybak::Notifier.order_notification(order).deliver
91
91
  flash[:notice] = "Email notification sent."
92
+ OrderNote.create(:order_id => order.id, :note => "Email confirmation manually sent.", :user_id => current_user.id)
92
93
  end
93
94
 
94
95
  redirect_to rails_admin.edit_path('Piggybak::Order', order.id)
@@ -96,9 +97,11 @@ module Piggybak
96
97
 
97
98
  def restore
98
99
  order = Order.find(params[:id])
100
+ order.recorded_changer = current_user.id
99
101
 
100
102
  if can?(:restore, order)
101
- order.update_attribute(:status, "new")
103
+ order.status = "new"
104
+ order.save
102
105
  end
103
106
 
104
107
  redirect_to rails_admin.edit_path('Piggybak::Order', order.id)
@@ -106,11 +109,10 @@ module Piggybak
106
109
 
107
110
  def cancel
108
111
  order = Order.find(params[:id])
112
+ order.recorded_changer = current_user.id
109
113
 
110
114
  if can?(:cancel, order)
111
- cancelled_items = []
112
115
  order.line_items.each do |line_item|
113
- cancelled_items << "#{line_item.quantity}:#{line_item.variant.sku}"
114
116
  line_item.destroy
115
117
  end
116
118
  order.payments.each do |payment|
@@ -2,6 +2,7 @@ module Piggybak
2
2
  class PaymentsController < ApplicationController
3
3
  def refund
4
4
  payment = Payment.find(params[:id])
5
+ payment.order.recorded_changer = current_user.id
5
6
 
6
7
  if can?(:refund, payment)
7
8
  flash[:notice] = payment.refund
@@ -0,0 +1,29 @@
1
+ module Piggybak
2
+ class Adjustment < ActiveRecord::Base
3
+ belongs_to :order
4
+ belongs_to :source, :polymorphic => true
5
+ attr_accessor :user_id
6
+ acts_as_changer
7
+
8
+ validates_presence_of :order_id, :total
9
+ validates_numericality_of :total
10
+ validates_presence_of :source
11
+
12
+ before_validation :set_source
13
+
14
+ def set_source
15
+ if self.source.nil? && self.user_id.present?
16
+ self.source = User.find(self.user_id)
17
+ end
18
+ end
19
+
20
+ def admin_label
21
+ if !self.new_record?
22
+ return "Adjustment ##{self.id} (#{self.created_at.strftime("%m-%d-%Y")}): " +
23
+ "$#{"%.2f" % self.total}"
24
+ else
25
+ return ""
26
+ end
27
+ end
28
+ end
29
+ end
@@ -3,7 +3,7 @@ module Piggybak
3
3
  has_many :line_items, :inverse_of => :order
4
4
  has_many :payments, :inverse_of => :order
5
5
  has_many :shipments, :inverse_of => :order
6
- has_many :credits, :inverse_of => :order
6
+ has_many :adjustments, :inverse_of => :order
7
7
  has_many :order_notes, :inverse_of => :order
8
8
 
9
9
  belongs_to :billing_address, :class_name => "Piggybak::Address"
@@ -15,6 +15,7 @@ module Piggybak
15
15
  accepts_nested_attributes_for :shipments, :allow_destroy => true
16
16
  accepts_nested_attributes_for :line_items, :allow_destroy => true
17
17
  accepts_nested_attributes_for :payments
18
+ accepts_nested_attributes_for :adjustments, :allow_destroy => true
18
19
  accepts_nested_attributes_for :order_notes
19
20
 
20
21
  attr_accessor :recorded_changes
@@ -132,9 +133,10 @@ module Piggybak
132
133
  self.total += shipment.total
133
134
  end
134
135
 
135
- # Hook in credits, TBD
136
- credits.each do |credit|
137
- self.total -= credit.total
136
+ adjustments.each do |adjustment|
137
+ if !adjustment._destroy
138
+ self.total += adjustment.total
139
+ end
138
140
  end
139
141
 
140
142
  self.total_due = self.total
@@ -5,6 +5,7 @@ module Piggybak
5
5
 
6
6
  belongs_to :order
7
7
  belongs_to :user
8
+ validates_presence_of :user_id
8
9
 
9
10
  def details
10
11
  "<b>#{created_at.strftime("%m-%d-%Y %H:%M")}</b> by #{user.email}:<br />#{note}"
@@ -84,7 +84,7 @@ module Piggybak
84
84
 
85
85
  def admin_label
86
86
  if !self.new_record?
87
- return "Payment ##{self.id} (#{self.created_at.strftime("%m-%d-%Y")})<br />" +
87
+ return "Payment ##{self.id} (#{self.created_at.strftime("%m-%d-%Y")}): " +
88
88
  "$#{"%.2f" % self.total}"
89
89
  else
90
90
  return ""
@@ -14,6 +14,10 @@ N/A
14
14
  <td>Tax</td>
15
15
  <td>$<%= "%.2f" % form.object.tax_charge %></td>
16
16
  </tr>
17
+ <tr>
18
+ <td>Adjustments</td>
19
+ <td>$<%= "%.2f" % form.object.adjustments.inject(0) { |total, adj| total + adj.total } %></td>
20
+ </tr>
17
21
  <tr>
18
22
  <td>Order Total</td>
19
23
  <td>$<%= "%.2f" % form.object.total %></td>
@@ -0,0 +1,6 @@
1
+ class ModifyCredits < ActiveRecord::Migration
2
+ def change
3
+ rename_table :credits, :adjustments
4
+ add_column :adjustments, :note, :text
5
+ end
6
+ end
@@ -21,11 +21,11 @@ module Piggybak
21
21
  def formatted_changes
22
22
  text = "#{self.class.to_s.gsub(/Piggybak::/, '')} ##{self.id} changes:<br />"
23
23
  self.changes.each do |k, v|
24
- if k != "updated_at"
24
+ if !["updated_at", "id", "billing_address_id", "shipping_address_id", "created_at"].include?(k)
25
25
  if v[0].is_a?(BigDecimal)
26
- text += "#{k} from $#{format("%.2f", v[0])} to $#{format("%.2f", v[1])}<br />"
26
+ text += "#{k}: $#{format("%.2f", v[0])} to $#{format("%.2f", v[1])}<br />"
27
27
  else
28
- text += "#{k} from #{v[0]} to #{v[1]}<br />"
28
+ text += "#{k}: #{v[0]} to #{v[1]}<br />"
29
29
  end
30
30
  end
31
31
  end
@@ -143,6 +143,7 @@ module Piggybak
143
143
  field :payments do
144
144
  active true
145
145
  end
146
+ field :adjustments
146
147
  field :order_notes do
147
148
  active true
148
149
  end
@@ -237,7 +238,42 @@ module Piggybak
237
238
  end
238
239
  end
239
240
  end
240
-
241
+
242
+ config.model Piggybak::Adjustment do
243
+ object_label_method :admin_label
244
+ visible false
245
+ edit do
246
+ field :user_id, :hidden do
247
+ default_value do
248
+ bindings[:view]._current_user.id
249
+ end
250
+ end
251
+ field :source do
252
+ help "Source of adjustment."
253
+ visible do
254
+ !bindings[:object].new_record?
255
+ end
256
+ read_only do
257
+ !bindings[:object].new_record?
258
+ end
259
+ end
260
+ field :total do
261
+ help "A negative value will add credit to an order. A positive value will add charges to the order."
262
+ read_only do
263
+ !bindings[:object].new_record?
264
+ end
265
+ formatted_value do
266
+ "$%.2f" % value
267
+ end
268
+ end
269
+ field :note do
270
+ read_only do
271
+ !bindings[:object].new_record?
272
+ end
273
+ end
274
+ end
275
+ end
276
+
241
277
  config.model Piggybak::Payment do
242
278
  object_label_method :admin_label
243
279
  visible false
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "piggybak"
8
- s.version = "0.4.15"
8
+ s.version = "0.4.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Steph Skardal", "Brian Buchalter"]
@@ -32,9 +32,9 @@ Gem::Specification.new do |s|
32
32
  "app/helpers/piggybak_helper.rb",
33
33
  "app/mailers/piggybak/notifier.rb",
34
34
  "app/models/piggybak/address.rb",
35
+ "app/models/piggybak/adjustment.rb",
35
36
  "app/models/piggybak/cart.rb",
36
37
  "app/models/piggybak/country.rb",
37
- "app/models/piggybak/credit.rb",
38
38
  "app/models/piggybak/line_item.rb",
39
39
  "app/models/piggybak/order.rb",
40
40
  "app/models/piggybak/order_note.rb",
@@ -95,6 +95,7 @@ Gem::Specification.new do |s|
95
95
  "db/migrate/20120716191225_add_masked_credit_card_numbers.rb",
96
96
  "db/migrate/20120716195806_order_debugging.rb",
97
97
  "db/migrate/20120717022155_create_order_notes.rb",
98
+ "db/migrate/20120718142841_modify_credits.rb",
98
99
  "lib/acts_as_changer.rb",
99
100
  "lib/acts_as_orderer.rb",
100
101
  "lib/acts_as_variant.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: piggybak
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.15
4
+ version: 0.4.16
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-07-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: countries
17
- requirement: &14312400 !ruby/object:Gem::Requirement
17
+ requirement: &16546740 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *14312400
25
+ version_requirements: *16546740
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &14311520 !ruby/object:Gem::Requirement
28
+ requirement: &16545900 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: 1.0.0
34
34
  type: :development
35
35
  prerelease: false
36
- version_requirements: *14311520
36
+ version_requirements: *16545900
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &14327080 !ruby/object:Gem::Requirement
39
+ requirement: &16544940 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ~>
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: 1.6.4
45
45
  type: :development
46
46
  prerelease: false
47
- version_requirements: *14327080
47
+ version_requirements: *16544940
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rspec
50
- requirement: &14326440 !ruby/object:Gem::Requirement
50
+ requirement: &16560360 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ! '>='
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: '0'
56
56
  type: :development
57
57
  prerelease: false
58
- version_requirements: *14326440
58
+ version_requirements: *16560360
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: rspec-rails
61
- requirement: &14325640 !ruby/object:Gem::Requirement
61
+ requirement: &16559280 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 2.7.0
67
67
  type: :development
68
68
  prerelease: false
69
- version_requirements: *14325640
69
+ version_requirements: *16559280
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: factory_girl
72
- requirement: &14324620 !ruby/object:Gem::Requirement
72
+ requirement: &16557500 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ! '>='
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
- version_requirements: *14324620
80
+ version_requirements: *16557500
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: diff-lcs
83
- requirement: &14323400 !ruby/object:Gem::Requirement
83
+ requirement: &16555960 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ! '>='
@@ -88,10 +88,10 @@ dependencies:
88
88
  version: '0'
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *14323400
91
+ version_requirements: *16555960
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: shoulda
94
- requirement: &14322860 !ruby/object:Gem::Requirement
94
+ requirement: &16554200 !ruby/object:Gem::Requirement
95
95
  none: false
96
96
  requirements:
97
97
  - - ! '>='
@@ -99,10 +99,10 @@ dependencies:
99
99
  version: '0'
100
100
  type: :development
101
101
  prerelease: false
102
- version_requirements: *14322860
102
+ version_requirements: *16554200
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov
105
- requirement: &14321860 !ruby/object:Gem::Requirement
105
+ requirement: &16568640 !ruby/object:Gem::Requirement
106
106
  none: false
107
107
  requirements:
108
108
  - - ! '>='
@@ -110,10 +110,10 @@ dependencies:
110
110
  version: '0'
111
111
  type: :development
112
112
  prerelease: false
113
- version_requirements: *14321860
113
+ version_requirements: *16568640
114
114
  - !ruby/object:Gem::Dependency
115
115
  name: tzinfo
116
- requirement: &14320340 !ruby/object:Gem::Requirement
116
+ requirement: &16567680 !ruby/object:Gem::Requirement
117
117
  none: false
118
118
  requirements:
119
119
  - - ! '>='
@@ -121,10 +121,10 @@ dependencies:
121
121
  version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
- version_requirements: *14320340
124
+ version_requirements: *16567680
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: devise
127
- requirement: &14335080 !ruby/object:Gem::Requirement
127
+ requirement: &16566440 !ruby/object:Gem::Requirement
128
128
  none: false
129
129
  requirements:
130
130
  - - ! '>='
@@ -132,10 +132,10 @@ dependencies:
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
- version_requirements: *14335080
135
+ version_requirements: *16566440
136
136
  - !ruby/object:Gem::Dependency
137
137
  name: rails_admin
138
- requirement: &14334480 !ruby/object:Gem::Requirement
138
+ requirement: &16565060 !ruby/object:Gem::Requirement
139
139
  none: false
140
140
  requirements:
141
141
  - - ! '>='
@@ -143,10 +143,10 @@ dependencies:
143
143
  version: '0'
144
144
  type: :runtime
145
145
  prerelease: false
146
- version_requirements: *14334480
146
+ version_requirements: *16565060
147
147
  - !ruby/object:Gem::Dependency
148
148
  name: devise
149
- requirement: &14333580 !ruby/object:Gem::Requirement
149
+ requirement: &16563860 !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements:
152
152
  - - ! '>='
@@ -154,10 +154,10 @@ dependencies:
154
154
  version: '0'
155
155
  type: :runtime
156
156
  prerelease: false
157
- version_requirements: *14333580
157
+ version_requirements: *16563860
158
158
  - !ruby/object:Gem::Dependency
159
159
  name: activemerchant
160
- requirement: &14332240 !ruby/object:Gem::Requirement
160
+ requirement: &16562720 !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
163
163
  - - ! '>='
@@ -165,10 +165,10 @@ dependencies:
165
165
  version: '0'
166
166
  type: :runtime
167
167
  prerelease: false
168
- version_requirements: *14332240
168
+ version_requirements: *16562720
169
169
  - !ruby/object:Gem::Dependency
170
170
  name: countries
171
- requirement: &14331360 !ruby/object:Gem::Requirement
171
+ requirement: &16561060 !ruby/object:Gem::Requirement
172
172
  none: false
173
173
  requirements:
174
174
  - - ! '>='
@@ -176,10 +176,10 @@ dependencies:
176
176
  version: '0'
177
177
  type: :runtime
178
178
  prerelease: false
179
- version_requirements: *14331360
179
+ version_requirements: *16561060
180
180
  - !ruby/object:Gem::Dependency
181
181
  name: rspec
182
- requirement: &14330460 !ruby/object:Gem::Requirement
182
+ requirement: &16576040 !ruby/object:Gem::Requirement
183
183
  none: false
184
184
  requirements:
185
185
  - - ! '>='
@@ -187,10 +187,10 @@ dependencies:
187
187
  version: '0'
188
188
  type: :development
189
189
  prerelease: false
190
- version_requirements: *14330460
190
+ version_requirements: *16576040
191
191
  - !ruby/object:Gem::Dependency
192
192
  name: rspec-rails
193
- requirement: &14329600 !ruby/object:Gem::Requirement
193
+ requirement: &16574740 !ruby/object:Gem::Requirement
194
194
  none: false
195
195
  requirements:
196
196
  - - ! '>='
@@ -198,10 +198,10 @@ dependencies:
198
198
  version: '0'
199
199
  type: :development
200
200
  prerelease: false
201
- version_requirements: *14329600
201
+ version_requirements: *16574740
202
202
  - !ruby/object:Gem::Dependency
203
203
  name: diff-lcs
204
- requirement: &14328820 !ruby/object:Gem::Requirement
204
+ requirement: &16572740 !ruby/object:Gem::Requirement
205
205
  none: false
206
206
  requirements:
207
207
  - - ! '>='
@@ -209,10 +209,10 @@ dependencies:
209
209
  version: '0'
210
210
  type: :development
211
211
  prerelease: false
212
- version_requirements: *14328820
212
+ version_requirements: *16572740
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: factory_girl
215
- requirement: &14327900 !ruby/object:Gem::Requirement
215
+ requirement: &16570240 !ruby/object:Gem::Requirement
216
216
  none: false
217
217
  requirements:
218
218
  - - ! '>='
@@ -220,10 +220,10 @@ dependencies:
220
220
  version: '0'
221
221
  type: :development
222
222
  prerelease: false
223
- version_requirements: *14327900
223
+ version_requirements: *16570240
224
224
  - !ruby/object:Gem::Dependency
225
225
  name: shoulda
226
- requirement: &14343600 !ruby/object:Gem::Requirement
226
+ requirement: &16583140 !ruby/object:Gem::Requirement
227
227
  none: false
228
228
  requirements:
229
229
  - - ! '>='
@@ -231,7 +231,7 @@ dependencies:
231
231
  version: '0'
232
232
  type: :development
233
233
  prerelease: false
234
- version_requirements: *14343600
234
+ version_requirements: *16583140
235
235
  description: Mountable ecommerce
236
236
  email: steph@endpoint.com
237
237
  executables: []
@@ -255,9 +255,9 @@ files:
255
255
  - app/helpers/piggybak_helper.rb
256
256
  - app/mailers/piggybak/notifier.rb
257
257
  - app/models/piggybak/address.rb
258
+ - app/models/piggybak/adjustment.rb
258
259
  - app/models/piggybak/cart.rb
259
260
  - app/models/piggybak/country.rb
260
- - app/models/piggybak/credit.rb
261
261
  - app/models/piggybak/line_item.rb
262
262
  - app/models/piggybak/order.rb
263
263
  - app/models/piggybak/order_note.rb
@@ -318,6 +318,7 @@ files:
318
318
  - db/migrate/20120716191225_add_masked_credit_card_numbers.rb
319
319
  - db/migrate/20120716195806_order_debugging.rb
320
320
  - db/migrate/20120717022155_create_order_notes.rb
321
+ - db/migrate/20120718142841_modify_credits.rb
321
322
  - lib/acts_as_changer.rb
322
323
  - lib/acts_as_orderer.rb
323
324
  - lib/acts_as_variant.rb
@@ -398,7 +399,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
398
399
  version: '0'
399
400
  segments:
400
401
  - 0
401
- hash: -1793729587236370867
402
+ hash: -1651129113805460590
402
403
  required_rubygems_version: !ruby/object:Gem::Requirement
403
404
  none: false
404
405
  requirements:
@@ -1,8 +0,0 @@
1
- module Piggybak
2
- class Credit < ActiveRecord::Base
3
- belongs_to :order
4
- belongs_to :source, :polymorphic => true
5
-
6
- validates_presence_of :total
7
- end
8
- end