sales_and_orders_decorator 0.1.3 → 0.1.4
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05e350dd6294e496a203c49be9ca501263219294
|
4
|
+
data.tar.gz: 2d2a90b80ad02d6f91dd21cce03bd0ad68f67b3b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ca8161027b04abe0824c641237964ca0d6fc86adb358003f01dc5f9edbedfd3449f1430f8c8943d01fc6a0b493b4ad0396175e05399da5380f667ba80b723c8
|
7
|
+
data.tar.gz: b8a816093ffd9ca29ce74bf75b2f9647b9b5936bf436f2a478e0c4e24856c394cca532dbdb773031f432dad757ec52d6e57647cf5ba005332b3427a1da72c6b9
|
@@ -1,40 +1,48 @@
|
|
1
1
|
require "sales_and_orders_decorator/version"
|
2
2
|
|
3
|
-
#
|
3
|
+
#This component class initialises an empty sales array to store the sales details for each docrators
|
4
4
|
class BasicSales
|
5
|
+
#initialises an empty array for the decorator
|
5
6
|
def initialize
|
6
7
|
@sales_array = []
|
7
8
|
end
|
8
9
|
|
9
|
-
#
|
10
|
+
# returns sales array
|
10
11
|
def sales_array
|
11
12
|
return @sales_array
|
12
13
|
end
|
13
14
|
|
15
|
+
#returns total sale value
|
14
16
|
def totalSale_counter_method
|
15
17
|
return @totalSale_order
|
16
18
|
end
|
17
19
|
|
20
|
+
#returns total quantity sold value
|
18
21
|
def totalSale_quantity_method
|
19
22
|
return @totalSale_quantity
|
20
23
|
end
|
21
24
|
|
25
|
+
#returns total veg pizza quantity sold value
|
22
26
|
def vegCounter_method
|
23
27
|
return @vegCounter
|
24
28
|
end
|
25
29
|
|
30
|
+
#returns total non veg pizza quantity sold value
|
26
31
|
def nonVegCounter_method
|
27
32
|
return @nonVegCounter
|
28
33
|
end
|
29
34
|
|
35
|
+
#returns total offered pizza quantity sold value
|
30
36
|
def offeredSale_counter_method
|
31
37
|
return @offeredSale_counter
|
32
38
|
end
|
33
39
|
|
40
|
+
#returns total non offered pizza quantity sold value
|
34
41
|
def nonOfferedSale_counter_method
|
35
42
|
return @nonOfferedSale_counter
|
36
43
|
end
|
37
44
|
|
45
|
+
#a common method to define a logic of selecting the datas for the last 24 hours where the products sold in the specific time line.
|
38
46
|
def common_method
|
39
47
|
product_sale.each do |product|
|
40
48
|
sale_boolean = product.created_at.between?(Time.now.midnight-1.day,Time.now.midnight)
|
@@ -46,9 +54,10 @@ class BasicSales
|
|
46
54
|
|
47
55
|
end
|
48
56
|
|
49
|
-
# decorator class -- this serves as the superclass for all the concrete decorators
|
50
|
-
#
|
57
|
+
# decorator class -- this serves as the superclass for all the concrete decorators.
|
58
|
+
#This class provides the structure to all decorator class to define the logic
|
51
59
|
class BuisnessDecorator
|
60
|
+
#initialise all the values required to calculate the sales expenditure for the previous day.
|
52
61
|
def initialize(root_sales)
|
53
62
|
@root_sales = root_sales
|
54
63
|
@totalSale_counter = 0
|
@@ -60,38 +69,47 @@ class BuisnessDecorator
|
|
60
69
|
@profit_counter = 0
|
61
70
|
end
|
62
71
|
|
72
|
+
#returns the sales array from the component class
|
63
73
|
def sales_array
|
64
74
|
return @root_sales.sales_array
|
65
75
|
end
|
66
76
|
|
77
|
+
#returns the total sales with the root class total sales which is calculated already
|
67
78
|
def totalSale_counter_method
|
68
79
|
@totalSale_counter += sd.totalSale
|
69
80
|
end
|
70
81
|
|
82
|
+
#returns the total quantity sales with the root class total quantity sales sold which is calculated already
|
71
83
|
def totalSale_quantity_method
|
72
84
|
return @totalSale_quantity
|
73
85
|
end
|
74
86
|
|
87
|
+
#returns the total profit sales with the root class total profit of the sales sold which is calculated already
|
75
88
|
def profit_counter_method
|
76
89
|
@profit_counter += sd.profit
|
77
90
|
end
|
78
91
|
|
92
|
+
#returns the total veg type quantity sales with the root class total veg pizza quantity sales sold that is calculated already
|
79
93
|
def vegCounter_method
|
80
94
|
@vegCounter += sd.vegSale
|
81
95
|
end
|
82
96
|
|
97
|
+
#returns the total non veg type quantity sales with the root class total veg pizza quantity sales sold that is calculated already
|
83
98
|
def nonVegCounter_method
|
84
99
|
@nonVegCounter += sd.nonVegSale
|
85
100
|
end
|
86
101
|
|
102
|
+
#returns the total offered type quantity sales with the root class total offered pizza quantity sales sold that is calculated already
|
87
103
|
def offeredSale_counter_method
|
88
104
|
@offeredSale_counter += sd.offeredSale
|
89
105
|
end
|
90
106
|
|
107
|
+
#returns the total non offered type quantity sales with the root class total non offered pizza quantity sales sold that is calculated already
|
91
108
|
def nonOfferedSale_counter_method
|
92
109
|
@nonOfferedSale_counter += sd.nonOfferedSale
|
93
110
|
end
|
94
111
|
|
112
|
+
#returns the total profit sales with the root class total profit sales sold that is calculated already with the quantity of products sold
|
95
113
|
def check_profit
|
96
114
|
@root_sales.sales_array.each do |sd|
|
97
115
|
@totalSale_counter += sd.total_price
|
@@ -101,6 +119,7 @@ class BuisnessDecorator
|
|
101
119
|
@profit_counter = @totalSale_counter - @totalProductSold
|
102
120
|
end
|
103
121
|
|
122
|
+
#to check thte offer availability and calculate the total sales of offered and non offered
|
104
123
|
def check_offer
|
105
124
|
@root_sales.sales_array.each do |sd|
|
106
125
|
prod = Product.find(sd.product_id)
|
@@ -112,6 +131,7 @@ class BuisnessDecorator
|
|
112
131
|
end
|
113
132
|
end
|
114
133
|
|
134
|
+
#to check thte food type sales and calculate the total sales of veg and non veg ordered
|
115
135
|
def check_foodType
|
116
136
|
@root_sales.sales_array.each do |sd|
|
117
137
|
prod = Product.find(sd.product_id)
|
@@ -127,6 +147,7 @@ class BuisnessDecorator
|
|
127
147
|
|
128
148
|
end
|
129
149
|
|
150
|
+
#Common logic to sort the products for the previous 24 hrs time line.
|
130
151
|
def common_method
|
131
152
|
@product_sale.each do |product|
|
132
153
|
sale_boolean = product.created_at.between?(Time.now.midnight-1.day,Time.now.midnight)
|
@@ -136,6 +157,7 @@ class BuisnessDecorator
|
|
136
157
|
end
|
137
158
|
end
|
138
159
|
|
160
|
+
#main method provides the sequence of all other method followed to generate a sales calculation
|
139
161
|
def main_method
|
140
162
|
common_method
|
141
163
|
check_profit
|
@@ -152,13 +174,15 @@ class BuisnessDecorator
|
|
152
174
|
end
|
153
175
|
|
154
176
|
|
155
|
-
# a concrete decorator
|
177
|
+
# a concrete decorator for day sales stores the sales details calculated in the database with the below functionality
|
156
178
|
class DaySalesDecorator < BuisnessDecorator
|
179
|
+
#method used to initialise the day sales object with component class object and the sales array
|
157
180
|
def initialize(root_sales)
|
158
181
|
super(root_sales)
|
159
182
|
@product_sale = OrderItem.all
|
160
183
|
end
|
161
184
|
|
185
|
+
#this method provides the logical methods of sequencing the methods to calculate the sales details of the product for a single day.
|
162
186
|
def main_method
|
163
187
|
common_method
|
164
188
|
check_profit
|
@@ -176,13 +200,15 @@ class DaySalesDecorator < BuisnessDecorator
|
|
176
200
|
end
|
177
201
|
end
|
178
202
|
|
179
|
-
#
|
203
|
+
# a concrete decorator for week sales stores the sales details calculated in the database with the below functionality
|
180
204
|
class WeekSalesDecorator < BuisnessDecorator
|
205
|
+
#method used to initialise the week sales object with component class object and the sales array
|
181
206
|
def initialize(root_sales)
|
182
207
|
super(root_sales)
|
183
208
|
@product_sale = Dsale.all
|
184
209
|
end
|
185
210
|
|
211
|
+
#Common logic to sort the products for a week time line.
|
186
212
|
def common_method
|
187
213
|
@product_sale.each do |product|
|
188
214
|
sale_boolean = product.created_at.between?(Time.now.midnight-7.day,Time.now.midnight)
|
@@ -192,6 +218,7 @@ class WeekSalesDecorator < BuisnessDecorator
|
|
192
218
|
end
|
193
219
|
end
|
194
220
|
|
221
|
+
#this method provides the logical methods of sequencing the methods to calculate the sales details of the product for the last one week.
|
195
222
|
def main_method
|
196
223
|
common_method
|
197
224
|
@root_sales.sales_array.each do |sd|
|
@@ -222,13 +249,15 @@ class WeekSalesDecorator < BuisnessDecorator
|
|
222
249
|
|
223
250
|
end
|
224
251
|
|
225
|
-
#
|
252
|
+
# a concrete decorator for a month sale stores the sales details calculated in the database with the below functionality
|
226
253
|
class MonthSalesDecorator < BuisnessDecorator
|
254
|
+
#method used to initialise the month sales object with component class object and the sales array
|
227
255
|
def initialize(root_sales)
|
228
256
|
super(root_sales)
|
229
257
|
@product_sale = Wsale.all
|
230
258
|
end
|
231
259
|
|
260
|
+
#Common logic to sort the products for a period of last one month time line.
|
232
261
|
def common_method
|
233
262
|
@product_sale.each do |product|
|
234
263
|
sale_boolean = product.created_at.between?(Time.now.midnight-1.month,Time.now.midnight)
|
@@ -238,6 +267,7 @@ class MonthSalesDecorator < BuisnessDecorator
|
|
238
267
|
end
|
239
268
|
end
|
240
269
|
|
270
|
+
#this method provides the logical methods of sequencing the methods to calculate the sales details of the product for one month.
|
241
271
|
def main_method
|
242
272
|
common_method
|
243
273
|
@root_sales.sales_array.each do |sd|
|
@@ -6,7 +6,7 @@ require 'sales_and_orders_decorator/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "sales_and_orders_decorator"
|
8
8
|
spec.version = SalesAndOrdersDecorator::VERSION
|
9
|
-
spec.authors = ["
|
9
|
+
spec.authors = ["Kishore Kumar"]
|
10
10
|
spec.email = ["x16103602@student.ncirl.ie"]
|
11
11
|
|
12
12
|
spec.summary = %q{This is sales decorator which provides and stores the resultant data into day, week, month sales into database}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sales_and_orders_decorator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Kishore Kumar
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-04-
|
11
|
+
date: 2017-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|