Commit fed20fe675397c2cbbbd4d01fc4eab8e50bee0a3

Authored by Alex Savenko
1 parent 8a8db709

updating records

src/app/frontend/controllers/MenuController.php
... ... @@ -496,8 +496,7 @@ class MenuController extends \controllers\ControllerBase
496 496 'letter' => '0',
497 497 'items' => $in_cart
498 498 ];
499   - die (print_r($this->models->getBasket()->checkExist($user_id)));
500   - if ($this->models->getBasket()->checkExist($user_id)) {
  499 + if ($this->models->getBasket()->checkUserExist($user_id)) {
501 500 $this->models->getBasket()->updateData($data);
502 501 }
503 502 else {
... ...
src/lib/models/basket.php
... ... @@ -14,8 +14,8 @@ use Phalcon\Forms\Element\Select;
14 14 class basket extends \db
15 15 {
16 16 /**
17   - * @param $data
18   - * @return string
  17 + * @param array $data
  18 + * @return string
19 19 */
20 20 public function addData($data)
21 21 {
... ... @@ -74,7 +74,11 @@ class basket extends \db
74 74  
75 75 }
76 76  
77   - public function checkExist($user_id) {
  77 + /**
  78 + * @param $user_id
  79 + * @return bool
  80 + */
  81 + public function checkUserExist($user_id) {
78 82 $query = $this->get(
79 83 '
80 84 SELECT *
... ... @@ -96,51 +100,105 @@ class basket extends \db
96 100 }
97 101 }
98 102  
99   -// public function updateData($data) {
100   -// $query_basket = $this->exec(
101   -// '
102   -// UPDATE
103   -// public.basket
104   -// SET
105   -// letter = :letter,
106   -// last_mod = CURRENT_TIMESTAMP
107   -// WHERE
108   -// user_id = :user_id
109   -// RETURNING user_id
110   -// ',
111   -// [
112   -// 'user_id' => $data['user_id'],
113   -// 'letter' => $data['letter']
114   -// ],
115   -// -1
116   -// );
117   -//
118   -// foreach ($data['items'] as $item) {
119   -// $query_basket_items = $this->get(
120   -// '
121   -// INSERT INTO
122   -// public.basket_items
123   -// (
124   -// user_id,
125   -// item_id,
126   -// count
127   -// )
128   -// VALUES
129   -// (
130   -// :user_id,
131   -// :item_id,
132   -// :count
133   -// )
134   -// RETURNING id
135   -// ',
136   -// [
137   -// 'user_id' => $data['user_id'],
138   -// 'item_id' => $item['item_id'],
139   -// 'count' => $item['count_items']
140   -// ],
141   -// -1
142   -// );
143   -// }
144   -// return 'User #'.$query_basket[0]['user_id'].' updated';
145   -// }
  103 + /**
  104 + * @param $user_id
  105 + * @param $item_id
  106 + * @return bool
  107 + */
  108 + public function checkItemExist($user_id, $item_id) {
  109 + $query = $this->get(
  110 + '
  111 + SELECT *
  112 + FROM public.basket_items
  113 + WHERE
  114 + user_id = :user_id
  115 + AND
  116 + item_id = :item_id
  117 + LIMIT 1
  118 + ',
  119 + [
  120 + 'user_id' => $user_id,
  121 + 'item_id' => $item_id
  122 + ],
  123 + -1
  124 + );
  125 + if (!empty($query[0]['id'])) {
  126 + return true;
  127 + }
  128 + else {
  129 + return false;
  130 + }
  131 + }
  132 +
  133 + public function updateData($data) {
  134 + $query_basket = $this->exec(
  135 + '
  136 + UPDATE
  137 + public.basket
  138 + SET
  139 + letter = :letter,
  140 + last_mod = CURRENT_TIMESTAMP
  141 + WHERE
  142 + user_id = :user_id
  143 + RETURNING user_id
  144 + ',
  145 + [
  146 + 'user_id' => $data['user_id'],
  147 + 'letter' => $data['letter']
  148 + ],
  149 + -1
  150 + );
  151 +
  152 + foreach ($data['items'] as $item) {
  153 + if ($this->checkItemExist($data['user_id'], $item['item_id'])) {
  154 + $query_basket_items = $this->get(
  155 + '
  156 + UPDATE
  157 + public.basket_items
  158 + SET
  159 + item_id = :item_id,
  160 + count = :count
  161 + WHERE
  162 + user_id = :user_id
  163 + AND
  164 + item_id = :item_id
  165 + RETURNING id
  166 + ',
  167 + [
  168 + 'user_id' => $data['user_id'],
  169 + 'item_id' => $item['item_id'],
  170 + 'count' => $item['count_items']
  171 + ],
  172 + -1
  173 + );
  174 + }
  175 + else {
  176 + $query_basket_items = $this->get(
  177 + '
  178 + INSERT INTO
  179 + public.basket_items
  180 + (
  181 + user_id,
  182 + item_id,
  183 + count
  184 + )
  185 + VALUES
  186 + (
  187 + :user_id,
  188 + :item_id,
  189 + :count
  190 + )
  191 + RETURNING id
  192 + ',
  193 + [
  194 + 'user_id' => $data['user_id'],
  195 + 'item_id' => $item['item_id'],
  196 + 'count' => $item['count_items']
  197 + ],
  198 + -1
  199 + );
  200 + }
  201 + }
  202 + return 'User #'.$query_basket[0]['user_id'].' updated';
  203 + }
146 204 }
147 205 \ No newline at end of file
... ...