9586c455
Alex Savenko
base
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<?php
/**
* Created by PhpStorm.
* User: Alex Savenko
* Date: 20.12.2016
* Time: 13:39
*/
namespace models;
class discount extends \db
{
/**
* Get all discounts
* @return array
*/
public function getAllData()
{
return $this->get(
'
SELECT * FROM
|
83008cdb
Alex Savenko
disocount => disc...
|
25
|
public.discount
|
9586c455
Alex Savenko
base
|
26
27
28
29
30
31
32
33
34
35
|
'
,
[
],
-1
);
}
/**
|
31e089d6
Alex Savenko
status
|
36
|
* Get discount
|
9586c455
Alex Savenko
base
|
37
38
39
40
41
42
43
44
|
* @param $id
* @return array
*/
public function getOneData($id)
{
return $this->get(
'
SELECT *
|
83008cdb
Alex Savenko
disocount => disc...
|
45
|
FROM public.discount
|
9586c455
Alex Savenko
base
|
46
47
48
49
50
51
52
53
54
55
|
WHERE
id = :id
',
[
'id' => $id
],
-1
);
}
|
31e089d6
Alex Savenko
status
|
56
57
58
59
60
61
62
|
/**
* Get discount indication status
* @param $id
* @return array
*/
public function getStatus($id) {
|
e992e0be
Alex Savenko
status
|
63
|
$status = $this->get(
|
31e089d6
Alex Savenko
status
|
64
65
66
67
68
69
70
71
72
73
74
75
|
'
SELECT status
FROM public.discount
WHERE
id = :id
',
[
'id' => $id
],
-1
);
|
e992e0be
Alex Savenko
status
|
76
77
|
return $status[0]['status'];
|
31e089d6
Alex Savenko
status
|
78
79
|
}
|
9586c455
Alex Savenko
base
|
80
81
|
/**
|
e0dcb7a3
Alex Savenko
prices
|
82
|
* Get actual discount
|
e0dcb7a3
Alex Savenko
prices
|
83
84
|
* @return array
*/
|
138315b3
Alex Savenko
prices
|
85
|
public function getActiveData()
|
e0dcb7a3
Alex Savenko
prices
|
86
87
88
89
90
91
|
{
return $this->get(
'
SELECT *
FROM public.discount
WHERE
|
1ebf6408
Alex Savenko
status
|
92
93
|
status = 1
AND
|
e0dcb7a3
Alex Savenko
prices
|
94
95
96
|
current_timestamp > start_date
AND
current_timestamp < end_date
|
69bb2148
Alex Savenko
prices
|
97
|
LIMIT 1
|
e0dcb7a3
Alex Savenko
prices
|
98
99
100
|
',
[
|
e0dcb7a3
Alex Savenko
prices
|
101
102
103
104
105
106
107
|
],
-1
);
}
/**
|
31e089d6
Alex Savenko
status
|
108
|
* Delete discount
|
9586c455
Alex Savenko
base
|
109
110
111
112
113
114
115
116
|
* @param $id
* @return bool
*/
public function deleteData($id)
{
return $this->exec(
' DELETE
FROM
|
83008cdb
Alex Savenko
disocount => disc...
|
117
|
public.discount
|
9586c455
Alex Savenko
base
|
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
WHERE
id = :id
',
[
'id' => $id
]
);
}
/**
* Add new discount
* @param $data
* @return array
*/
public function addData($data)
{
return $this->get(
'
INSERT INTO
|
83008cdb
Alex Savenko
disocount => disc...
|
138
|
public.discount
|
9586c455
Alex Savenko
base
|
139
140
141
142
143
|
(
name,
discount,
description,
start_date,
|
31e089d6
Alex Savenko
status
|
144
|
end_date,
|
9ac2df32
Alex Savenko
products pick
|
145
146
|
status,
group_ids
|
9586c455
Alex Savenko
base
|
147
148
149
150
151
152
153
|
)
VALUES
(
:name,
:discount,
:description,
:start_date,
|
31e089d6
Alex Savenko
status
|
154
|
:end_date,
|
768877ce
Alex Savenko
products pick
|
155
156
|
:status,
:group_ids
|
9586c455
Alex Savenko
base
|
157
158
159
160
161
162
163
164
|
)
RETURNING id
',
[
'name' => $data['name'],
'discount' => $data['discount'],
'description' => $data['description'],
'start_date' => $data['start_date'],
|
31e089d6
Alex Savenko
status
|
165
|
'end_date' => $data['end_date'],
|
8b86b4cf
Alex Savenko
products pick
|
166
|
'group_ids' => !empty($data['group_ids']) ? '{'. implode(', ', $data['group_ids']) . '}' : null,
|
6a4ff8f9
Alex Savenko
products pick
|
167
|
'status' => $data['status']
|
9586c455
Alex Savenko
base
|
168
169
170
171
172
173
174
175
|
],
-1
);
}
/**
|
31e089d6
Alex Savenko
status
|
176
|
* Update discount
|
9586c455
Alex Savenko
base
|
177
178
179
180
181
182
183
184
185
186
|
* @param $data
* @param $id
* @return bool
*/
public function updateData($data, $id)
{
return $this->exec(
'
UPDATE
|
83008cdb
Alex Savenko
disocount => disc...
|
187
|
public.discount
|
9586c455
Alex Savenko
base
|
188
189
190
191
192
|
SET
name = :name,
discount = :discount,
description = :description,
start_date = :start_date,
|
31e089d6
Alex Savenko
status
|
193
|
end_date = :end_date,
|
f992445a
Alex Savenko
products pick
|
194
195
|
status = :status,
group_ids = :group_ids
|
9586c455
Alex Savenko
base
|
196
197
198
199
200
201
202
203
204
|
WHERE
id = :id
',
[
'name' => $data['name'],
'discount' => $data['discount'],
'description' => $data['description'],
'start_date' => $data['start_date'],
'end_date' => $data['end_date'],
|
31e089d6
Alex Savenko
status
|
205
|
'status' => $data['status'],
|
4b1cc171
Alex Savenko
products pick
|
206
|
'group_ids' => !empty($data['group_ids']) ? '{'. implode(', ', $data['group_ids']) . '}' : null,
|
9586c455
Alex Savenko
base
|
207
208
209
|
'id' => $id
]
);
|
be1609ed
Alex Savenko
status
|
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
}
/**
* Switch status indicator
* @param bool $status
* @param $id
* @return bool
*/
public function updateStatus($status, $id) {
return $this->exec(
'
UPDATE
public.discount
SET
status = :status
WHERE
id = :id
',
[
'status' => $status,
'id' => $id
]
);
|
9586c455
Alex Savenko
base
|
236
237
238
239
240
241
242
243
244
245
246
247
248
|
}
/**
* Count all discounts
* @return array
*/
public function countData()
{
return $this->get(
'
SELECT
COUNT(id) AS total
FROM
|
83008cdb
Alex Savenko
disocount => disc...
|
249
|
public.discount
|
9586c455
Alex Savenko
base
|
250
251
252
253
254
255
256
257
258
|
',
[
],
-1
);
}
}
|