Blame view

src/lib/models/discount.php 4.98 KB
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
e0dcb7a3   Alex Savenko   prices
92
93
94
                      current_timestamp > start_date
                      AND
                      current_timestamp < end_date
69bb2148   Alex Savenko   prices
95
                  LIMIT 1
e0dcb7a3   Alex Savenko   prices
96
97
98
                      
              ',
              [
e0dcb7a3   Alex Savenko   prices
99
100
101
102
103
104
105
              ],
              -1
          );
      }
  
  
      /**
31e089d6   Alex Savenko   status
106
       * Delete discount
9586c455   Alex Savenko   base
107
108
109
110
111
112
113
114
       * @param $id
       * @return bool
       */
      public function deleteData($id)
      {
          return $this->exec(
              '   DELETE
                  FROM
83008cdb   Alex Savenko   disocount => disc...
115
                      public.discount
9586c455   Alex Savenko   base
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
                  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...
136
                      public.discount
9586c455   Alex Savenko   base
137
138
139
140
141
                          (
                            name,
                            discount,
                            description,
                            start_date,
31e089d6   Alex Savenko   status
142
143
                            end_date,
                            status
9586c455   Alex Savenko   base
144
145
146
147
148
149
150
                          )
                          VALUES
                          (
                            :name,
                            :discount,
                            :description,
                            :start_date,
31e089d6   Alex Savenko   status
151
152
                            :end_date,
                            :status
9586c455   Alex Savenko   base
153
154
155
156
157
158
159
160
                          )
                          RETURNING id
              ',
              [
                  'name' => $data['name'],
                  'discount' => $data['discount'],
                  'description' => $data['description'],
                  'start_date' => $data['start_date'],
31e089d6   Alex Savenko   status
161
162
                  'end_date' => $data['end_date'],
                  'status' => $data['status']
9586c455   Alex Savenko   base
163
164
165
166
167
168
169
170
              ],
              -1
          );
  
  
      }
  
      /**
31e089d6   Alex Savenko   status
171
       * Update discount
9586c455   Alex Savenko   base
172
173
174
175
176
177
178
179
180
181
       * @param $data
       * @param $id
       * @return bool
       */
      public function updateData($data, $id)
      {
  
          return $this->exec(
              '
                  UPDATE
83008cdb   Alex Savenko   disocount => disc...
182
                      public.discount
9586c455   Alex Savenko   base
183
184
185
186
187
                  SET
                      name = :name,
                      discount = :discount,
                      description = :description,
                      start_date = :start_date,
31e089d6   Alex Savenko   status
188
189
                      end_date = :end_date,
                      status = :status
9586c455   Alex Savenko   base
190
191
192
193
194
195
196
197
198
                  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
199
                  'status' => $data['status'],
9586c455   Alex Savenko   base
200
201
202
                  'id' => $id
              ]
          );
be1609ed   Alex Savenko   status
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
  
      }
  
      /**
       * 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
229
230
231
232
233
234
235
236
237
238
239
240
241
      }
  
      /**
       * Count all discounts
       * @return array
       */
      public function countData()
      {
          return $this->get(
              '
                  SELECT
                      COUNT(id) AS total
                  FROM
83008cdb   Alex Savenko   disocount => disc...
242
                      public.discount
9586c455   Alex Savenko   base
243
244
245
246
247
248
249
250
251
              ',
              [
  
              ],
              -1
          );
      }
  
  }