caboose-cms 0.5.101 → 0.5.102
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 +8 -8
- data/app/models/caboose/order.rb +139 -164
- data/app/models/caboose/schema.rb +7 -7
- data/lib/caboose/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjMwOWVjNTVlNmZlYWIwMzBjZDdhZTk3MzE3YTA2MGRlZjVmMTAzNg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NjIzYmNiNDhjNjc0ZDc1MjdmMDg0MzcyMzlkZmM3MWI2MDFhYWU2YQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
OWFjYWVlODY5Y2YxNTdmNzU5ZmVmMTQ3YTk3MGUyMDg2YzU0NDYwOWJiYWRm
|
10
|
+
NDY5YzI0ODA0NzNkOTA0NzFhY2VhZjU4YTJjZWQ0YTFlYzQ0MmRkYTkyZjgy
|
11
|
+
NGNjMzE0NzBmMWI3ZTFlNDQxYWFmOTAwZTIyMTI4N2RjZjQ0ZWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjgxNzc3ODllY2E4NzY2NzE3ZGNmOTQ1NjAxYmVjOGM0MzU3NmJhYmM5MjZl
|
14
|
+
OGNhNWZjYjRiNDM2ZWY3MmIxYzIzYzQzZDQzZjllNjA1NzQyYzYyZWI0NTM0
|
15
|
+
YTAyYmMyZDE0NTA5MTg4OWMzYzk3M2EzZmE5ZjM0NDM3ZjVmODY=
|
data/app/models/caboose/order.rb
CHANGED
@@ -7,14 +7,14 @@ module Caboose
|
|
7
7
|
self.table_name = 'store_orders'
|
8
8
|
self.primary_key = 'id'
|
9
9
|
|
10
|
-
belongs_to :site
|
11
|
-
belongs_to :customer, :class_name => 'Caboose::User'
|
12
|
-
belongs_to :shipping_address, :class_name => 'Caboose::Address'
|
13
|
-
belongs_to :billing_address, :class_name => 'Caboose::Address'
|
14
|
-
has_many :discounts
|
15
|
-
has_many :line_items, :order => :id
|
16
|
-
has_many :order_packages, :class_name => 'Caboose::OrderPackage'
|
17
|
-
has_many :order_transactions
|
10
|
+
#belongs_to :site
|
11
|
+
#belongs_to :customer, :class_name => 'Caboose::User'
|
12
|
+
#belongs_to :shipping_address, :class_name => 'Caboose::Address'
|
13
|
+
#belongs_to :billing_address, :class_name => 'Caboose::Address'
|
14
|
+
#has_many :discounts
|
15
|
+
#has_many :line_items, :order => :id
|
16
|
+
#has_many :order_packages, :class_name => 'Caboose::OrderPackage'
|
17
|
+
#has_many :order_transactions
|
18
18
|
|
19
19
|
attr_accessible :id,
|
20
20
|
:site_id,
|
@@ -66,176 +66,151 @@ module Caboose
|
|
66
66
|
# Scopes
|
67
67
|
#
|
68
68
|
|
69
|
-
scope :test , where('status = ?', 'testing')
|
70
|
-
scope :cancelled , where('status = ?', 'cancelled')
|
71
|
-
scope :pending , where('status = ?', 'pending')
|
72
|
-
|
73
|
-
|
74
|
-
scope :authorized , where('financial_status = ?', 'authorized')
|
75
|
-
scope :captured , where('financial_status = ?', 'captured')
|
76
|
-
scope :refunded , where('financial_status = ?', 'refunded')
|
77
|
-
scope :voided , where('financial_status = ?', 'voided')
|
69
|
+
#scope :test , where('status = ?', 'testing')
|
70
|
+
#scope :cancelled , where('status = ?', 'cancelled')
|
71
|
+
#scope :pending , where('status = ?', 'pending')
|
72
|
+
##TODO scope :fulfilled
|
73
|
+
##TODO scope :unfulfilled
|
74
|
+
#scope :authorized , where('financial_status = ?', 'authorized')
|
75
|
+
#scope :captured , where('financial_status = ?', 'captured')
|
76
|
+
#scope :refunded , where('financial_status = ?', 'refunded')
|
77
|
+
#scope :voided , where('financial_status = ?', 'voided')
|
78
78
|
|
79
79
|
#
|
80
80
|
# Validations
|
81
81
|
#
|
82
82
|
|
83
|
-
validates :status, :inclusion => {
|
84
|
-
|
85
|
-
|
86
|
-
}
|
87
|
-
|
88
|
-
validates :financial_status, :inclusion => {
|
89
|
-
:in => ['pending', 'authorized', 'captured', 'refunded', 'voided'],
|
90
|
-
:message => "%{value} is not a valid financial status. Must be 'authorized', 'captured', 'refunded' or 'voided'"
|
91
|
-
}
|
92
|
-
|
83
|
+
#validates :status, :inclusion => {
|
84
|
+
# :in => ['cart', 'pending', 'cancelled', 'shipped', 'testing'],
|
85
|
+
# :message => "%{value} is not a valid status. Must be either 'pending' or 'shipped'"
|
86
|
+
#}
|
93
87
|
#
|
94
|
-
#
|
88
|
+
#validates :financial_status, :inclusion => {
|
89
|
+
# :in => ['pending', 'authorized', 'captured', 'refunded', 'voided'],
|
90
|
+
# :message => "%{value} is not a valid financial status. Must be 'authorized', 'captured', 'refunded' or 'voided'"
|
91
|
+
#}
|
92
|
+
|
93
|
+
#def packages
|
94
|
+
# self.order_packages
|
95
|
+
#end
|
96
|
+
#
|
97
|
+
#def decrement_quantities
|
98
|
+
# return false if self.decremented
|
99
|
+
#
|
100
|
+
# self.line_items.each do |line_item|
|
101
|
+
# line_item.variant.update_attribute(:quantity, line_item.variant.quantity_in_stock - line_item.quantity)
|
102
|
+
# end
|
103
|
+
#
|
104
|
+
# self.update_attribute(:decremented, true)
|
105
|
+
#end
|
95
106
|
#
|
96
|
-
|
97
|
-
#
|
98
|
-
|
107
|
+
#def increment_quantities
|
108
|
+
# return false if !self.decremented
|
109
|
+
#
|
110
|
+
# self.line_items.each do |line_item|
|
111
|
+
# line_item.variant.update_attribute(:quantity, line_item.variant.quantity_in_stock - line_item.quantity)
|
112
|
+
# end
|
113
|
+
#
|
114
|
+
# self.update_attribute(:decremented, false)
|
115
|
+
#end
|
99
116
|
#
|
100
|
-
#
|
117
|
+
#def resend_confirmation
|
118
|
+
# OrdersMailer.configure_for_site(self.site_id).customer_new_order(self).deliver
|
119
|
+
#end
|
101
120
|
#
|
102
|
-
|
103
|
-
|
104
|
-
self.order_packages
|
105
|
-
end
|
106
|
-
|
107
|
-
#def as_json(options={})
|
108
|
-
# self.attributes.merge({
|
109
|
-
# :line_items => self.line_items,
|
110
|
-
# :shipping_address => self.shipping_address,
|
111
|
-
# :billing_address => self.billing_address
|
112
|
-
# })
|
121
|
+
#def test?
|
122
|
+
# self.status == 'testing'
|
113
123
|
#end
|
114
|
-
|
115
|
-
def
|
116
|
-
|
117
|
-
|
118
|
-
self.line_items.each do |line_item|
|
119
|
-
line_item.variant.update_attribute(:quantity, line_item.variant.quantity_in_stock - line_item.quantity)
|
120
|
-
end
|
121
|
-
|
122
|
-
self.update_attribute(:decremented, true)
|
123
|
-
end
|
124
|
-
|
125
|
-
def increment_quantities
|
126
|
-
return false if !self.decremented
|
127
|
-
|
128
|
-
self.line_items.each do |line_item|
|
129
|
-
line_item.variant.update_attribute(:quantity, line_item.variant.quantity_in_stock - line_item.quantity)
|
130
|
-
end
|
131
|
-
|
132
|
-
self.update_attribute(:decremented, false)
|
133
|
-
end
|
134
|
-
|
135
|
-
def resend_confirmation
|
136
|
-
OrdersMailer.configure_for_site(self.site_id).customer_new_order(self).deliver
|
137
|
-
end
|
138
|
-
|
139
|
-
def test?
|
140
|
-
self.status == 'testing'
|
141
|
-
end
|
142
|
-
|
143
|
-
def authorized?
|
144
|
-
self.financial_status == 'authorized'
|
145
|
-
end
|
146
|
-
|
147
|
-
def capture
|
148
|
-
PaymentProcessor.capture(self)
|
149
|
-
end
|
150
|
-
|
151
|
-
def refuned
|
152
|
-
PaymentProcessor.refund(self)
|
153
|
-
end
|
154
|
-
|
155
|
-
def void
|
156
|
-
PaymentProcessor.void(self)
|
157
|
-
end
|
158
|
-
|
159
|
-
#def line_item_added(line_item)
|
160
|
-
# self.calculate
|
124
|
+
#
|
125
|
+
#def authorized?
|
126
|
+
# self.financial_status == 'authorized'
|
161
127
|
#end
|
162
128
|
#
|
163
|
-
#def
|
164
|
-
# self
|
129
|
+
#def capture
|
130
|
+
# PaymentProcessor.capture(self)
|
131
|
+
#end
|
132
|
+
#
|
133
|
+
#def refuned
|
134
|
+
# PaymentProcessor.refund(self)
|
135
|
+
#end
|
136
|
+
#
|
137
|
+
#def void
|
138
|
+
# PaymentProcessor.void(self)
|
139
|
+
#end
|
140
|
+
#
|
141
|
+
#def calculate
|
142
|
+
# self.update_column(:subtotal , self.calculate_subtotal )
|
143
|
+
# self.update_column(:tax , self.calculate_tax )
|
144
|
+
# self.update_column(:shipping , self.calculate_shipping )
|
145
|
+
# self.update_column(:handling , self.calculate_handling )
|
146
|
+
# self.update_column(:discount , self.calculate_discount )
|
147
|
+
# self.update_column(:total , self.calculate_total )
|
148
|
+
#end
|
149
|
+
#
|
150
|
+
#def calculate_subtotal
|
151
|
+
# return 0.0 if self.line_items.empty?
|
152
|
+
# x = 0.0
|
153
|
+
# self.line_items.each{ |li| x = x + li.variant.price }
|
154
|
+
# return x
|
155
|
+
#end
|
156
|
+
#
|
157
|
+
#def calculate_tax
|
158
|
+
# return 0.0 if !self.shipping_address
|
159
|
+
# self.subtotal * TaxCalculator.tax_rate(self.shipping_address)
|
160
|
+
#end
|
161
|
+
#
|
162
|
+
#def calculate_shipping
|
163
|
+
# return 0.0 if self.order_packages.nil? || self.order_packages.count == 0
|
164
|
+
# x = 0.0
|
165
|
+
# self.order_packages.each{ |op| x = x + op.total }
|
166
|
+
# return x
|
167
|
+
#end
|
168
|
+
#
|
169
|
+
#def calculate_handling
|
170
|
+
# return 0.0 if self.site.nil? || self.site.store_config.nil?
|
171
|
+
# self.subtotal * self.site.store_config.handling_percentage.to_f
|
172
|
+
#end
|
173
|
+
#
|
174
|
+
#def calculate_discount
|
175
|
+
# return 0.0 if self.discounts.nil? || self.discounts.count == 0
|
176
|
+
# x = 0.0
|
177
|
+
# self.discounts.each{ |d| x = x + d.amount }
|
178
|
+
# x = x + self.custom_discount if self.custom_discount
|
179
|
+
# return x
|
180
|
+
#end
|
181
|
+
#
|
182
|
+
#def calculate_total
|
183
|
+
# return (self.subtotal + self.tax + self.shipping + self.handling) - self.discount
|
184
|
+
#end
|
185
|
+
#
|
186
|
+
#def shipping_and_handling
|
187
|
+
# (self.shipping ? self.shipping : 0.0) + (self.handling ? self.handling : 0.0)
|
188
|
+
#end
|
189
|
+
#
|
190
|
+
#def item_count
|
191
|
+
# count = 0
|
192
|
+
# self.line_items.each{ |li| count = count + li.quantity } if self.line_items
|
193
|
+
# return count
|
194
|
+
#end
|
195
|
+
#
|
196
|
+
#def take_gift_card_funds
|
197
|
+
# return if self.discounts.nil? || self.discounts.count == 0
|
198
|
+
# self.discounts.each do |d|
|
199
|
+
# gc = d.gift_card
|
200
|
+
# gc.balance = gc.balance - d.amount
|
201
|
+
# gc.save
|
202
|
+
# end
|
203
|
+
#end
|
204
|
+
#
|
205
|
+
#def has_empty_shipping_methods?
|
206
|
+
# return true if self.order_packages.nil?
|
207
|
+
# return true if self.order_packages.count == 0
|
208
|
+
# self.order_packages.each do |op|
|
209
|
+
# return true if op.shipping_method_id.nil?
|
210
|
+
# end
|
211
|
+
# return false
|
165
212
|
#end
|
166
213
|
|
167
|
-
def calculate
|
168
|
-
self.update_column(:subtotal , self.calculate_subtotal )
|
169
|
-
self.update_column(:tax , self.calculate_tax )
|
170
|
-
self.update_column(:shipping , self.calculate_shipping )
|
171
|
-
self.update_column(:handling , self.calculate_handling )
|
172
|
-
self.update_column(:discount , self.calculate_discount )
|
173
|
-
self.update_column(:total , self.calculate_total )
|
174
|
-
end
|
175
|
-
|
176
|
-
def calculate_subtotal
|
177
|
-
return 0.0 if self.line_items.empty?
|
178
|
-
x = 0.0
|
179
|
-
self.line_items.each{ |li| x = x + li.variant.price }
|
180
|
-
return x
|
181
|
-
end
|
182
|
-
|
183
|
-
def calculate_tax
|
184
|
-
return 0.0 if !self.shipping_address
|
185
|
-
self.subtotal * TaxCalculator.tax_rate(self.shipping_address)
|
186
|
-
end
|
187
|
-
|
188
|
-
def calculate_shipping
|
189
|
-
return 0.0 if self.order_packages.nil? || self.order_packages.count == 0
|
190
|
-
x = 0.0
|
191
|
-
self.order_packages.each{ |op| x = x + op.total }
|
192
|
-
return x
|
193
|
-
end
|
194
|
-
|
195
|
-
def calculate_handling
|
196
|
-
return 0.0 if self.site.nil? || self.site.store_config.nil?
|
197
|
-
self.subtotal * self.site.store_config.handling_percentage.to_f
|
198
|
-
end
|
199
|
-
|
200
|
-
def calculate_discount
|
201
|
-
return 0.0 if self.discounts.nil? || self.discounts.count == 0
|
202
|
-
x = 0.0
|
203
|
-
self.discounts.each{ |d| x = x + d.amount }
|
204
|
-
x = x + self.custom_discount if self.custom_discount
|
205
|
-
return x
|
206
|
-
end
|
207
|
-
|
208
|
-
def calculate_total
|
209
|
-
return (self.subtotal + self.tax + self.shipping + self.handling) - self.discount
|
210
|
-
end
|
211
|
-
|
212
|
-
def shipping_and_handling
|
213
|
-
(self.shipping ? self.shipping : 0.0) + (self.handling ? self.handling : 0.0)
|
214
|
-
end
|
215
|
-
|
216
|
-
def item_count
|
217
|
-
count = 0
|
218
|
-
self.line_items.each{ |li| count = count + li.quantity } if self.line_items
|
219
|
-
return count
|
220
|
-
end
|
221
|
-
|
222
|
-
def take_gift_card_funds
|
223
|
-
return if self.discounts.nil? || self.discounts.count == 0
|
224
|
-
self.discounts.each do |d|
|
225
|
-
gc = d.gift_card
|
226
|
-
gc.balance = gc.balance - d.amount
|
227
|
-
gc.save
|
228
|
-
end
|
229
|
-
end
|
230
|
-
|
231
|
-
def has_empty_shipping_methods?
|
232
|
-
return true if self.order_packages.nil?
|
233
|
-
return true if self.order_packages.count == 0
|
234
|
-
self.order_packages.each do |op|
|
235
|
-
return true if op.shipping_method_id.nil?
|
236
|
-
end
|
237
|
-
return false
|
238
|
-
end
|
239
214
|
end
|
240
215
|
end
|
241
216
|
|
@@ -313,13 +313,13 @@ class Caboose::Schema < Caboose::Utilities::Schema
|
|
313
313
|
Caboose::Order => [
|
314
314
|
[ :site_id , :integer ],
|
315
315
|
[ :alternate_id , :integer ],
|
316
|
-
[ :subtotal , :numeric , :default => 0 ],
|
317
|
-
[ :tax , :numeric , :default => 0 ],
|
318
|
-
[ :shipping , :numeric , :default => 0 ],
|
319
|
-
[ :handling , :numeric , :default => 0 ],
|
320
|
-
[ :custom_discount , :numeric , :default => 0 ],
|
321
|
-
[ :discount , :numeric , :default => 0 ],
|
322
|
-
[ :total , :numeric , :default => 0 ],
|
316
|
+
[ :subtotal , :numeric , :default => 0.00 ],
|
317
|
+
[ :tax , :numeric , :default => 0.00 ],
|
318
|
+
[ :shipping , :numeric , :default => 0.00 ],
|
319
|
+
[ :handling , :numeric , :default => 0.00 ],
|
320
|
+
[ :custom_discount , :numeric , :default => 0.00 ],
|
321
|
+
[ :discount , :numeric , :default => 0.00 ],
|
322
|
+
[ :total , :numeric , :default => 0.00 ],
|
323
323
|
[ :customer_id , :integer ],
|
324
324
|
[ :financial_status , :string ],
|
325
325
|
[ :shipping_address_id , :integer ],
|
data/lib/caboose/version.rb
CHANGED