Commit 3c09f993738024ed6a1aff67f57952006db1cf65
Merge remote-tracking branch 'origin/vip' into master+discount
# Conflicts: # src/app/frontend/controllers/PageController.php # src/app/frontend/views/page/changeWithSize.php # src/app/frontend/views/partial/item_group.php # src/lib/common.php
Showing
13 changed files
with
186 additions
and
51 deletions
Show diff stats
src/app/backend/controllers/GroupsController.php
... | ... | @@ -59,7 +59,8 @@ class GroupsController extends \Phalcon\Mvc\Controller |
59 | 59 | if( $this->request->isPost() ) |
60 | 60 | { |
61 | 61 | |
62 | - $data['name'] = $this->request->getPost('name', 'string', NULL ); | |
62 | + $data['name'] = $this->request->getPost('name', 'string', NULL ); | |
63 | + $data['discount'] = $this->request->getPost('discount', 'int', NULL ); | |
63 | 64 | |
64 | 65 | |
65 | 66 | |
... | ... | @@ -97,6 +98,7 @@ class GroupsController extends \Phalcon\Mvc\Controller |
97 | 98 | { |
98 | 99 | |
99 | 100 | $data['name'] = $this->request->getPost('name', 'string', NULL ); |
101 | + $data['discount'] = $this->request->getPost('discount', 'int', NULL ); | |
100 | 102 | |
101 | 103 | |
102 | 104 | if( !empty( $data ) && !isset($this->models->getUsersGroup()->getOneDataByName($data['name'])['0']) ) | ... | ... |
src/app/backend/views/groups/addEdit.php
... | ... | @@ -21,6 +21,11 @@ |
21 | 21 | <div class="input"><input type="text" name="name" id="name" value='<?= (isset( $page['0']['name'] ) && !empty( $page['0']['name'] ) ? $page['0']['name'] : '') ?>'></div> |
22 | 22 | </div> |
23 | 23 | |
24 | + <div class="clearfix input_wrapper"> | |
25 | + <div class="label"><label for="discount">Скидка</label></div> | |
26 | + <div class="input"><input type="text" name="discount" id="discount" value='<?= (isset( $page['0']['discount'] ) && !empty( $page['0']['discount'] ) ? $page['0']['discount'] : '') ?>'></div> | |
27 | + </div> | |
28 | + | |
24 | 29 | |
25 | 30 | </div> |
26 | 31 | ... | ... |
src/app/backend/views/groups/index.php
... | ... | @@ -25,8 +25,7 @@ |
25 | 25 | { |
26 | 26 | $data_pages .= |
27 | 27 | '<div class="one_page_edit header_gradient clearfix">'. |
28 | - '<div class="one_page_edit_check float"></div>'. | |
29 | - '<div class="one_page_edit_name float">'.$p['name'].'</div>'. | |
28 | + '<div class="one_page_edit_name float"><a href="/users_group_update/'.$p['id'].'" title="">'.$p['name'].'</a></div>'. | |
30 | 29 | '<div class="one_page_delete_ico float_right"><a href="/users_group_delete/'.$p['id'].'" title="Удалить" onclick="return confirm(\'Вы действительно хотите удалить информацию?\')"></a></div>'. |
31 | 30 | '</div>'; |
32 | 31 | } | ... | ... |
src/app/frontend/controllers/MenuController.php
... | ... | @@ -58,6 +58,22 @@ class MenuController extends \controllers\ControllerBase |
58 | 58 | $this->common->countOrderSum($cart); |
59 | 59 | $cart['total_price'] = $cart['total_sum']; |
60 | 60 | } |
61 | + /************************/ | |
62 | + | |
63 | + //vip | |
64 | + $users_group_id = $this->session->get('users_group_id'); | |
65 | + $users_group_discount = $this->getDi()->get('models')->getUsersGroup()->getOneData($users_group_id); | |
66 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
67 | + $users_group_discount = $users_group_discount[0]['discount']; | |
68 | + } | |
69 | + else { | |
70 | + $users_group_discount = 0; | |
71 | + } | |
72 | + if ($this->common->applyDiscount($users_group_discount, $cart['items'])) { | |
73 | + $this->common->countOrderSum($cart); | |
74 | + $cart['total_price'] = $cart['total_sum']; | |
75 | + } | |
76 | + /************************/ | |
61 | 77 | |
62 | 78 | $total_price = $cart['total_price']; |
63 | 79 | $items = $cart['items']; |
... | ... | @@ -196,6 +212,18 @@ class MenuController extends \controllers\ControllerBase |
196 | 212 | if ($this->common->applyPromoCode($discount, $order['items'])) { |
197 | 213 | $this->common->countOrderSum($order); |
198 | 214 | } |
215 | + //vip | |
216 | + $users_group_id = $this->session->get('users_group_id'); | |
217 | + $users_group_discount = $this->getDi()->get('models')->getUsersGroup()->getOneData($users_group_id); | |
218 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
219 | + $users_group_discount = $users_group_discount[0]['discount']; | |
220 | + } | |
221 | + else { | |
222 | + $users_group_discount = 0; | |
223 | + } | |
224 | + if ($this->common->applyDiscount($users_group_discount, $order['items'])) { | |
225 | + $this->common->countOrderSum($order); | |
226 | + } | |
199 | 227 | |
200 | 228 | // save order |
201 | 229 | $proposal_number = $this->models->getOrders()->addOrder($order); |
... | ... | @@ -418,15 +446,6 @@ class MenuController extends \controllers\ControllerBase |
418 | 446 | $special_user = $this->models->getSpecialUsers()->getOneData($special_users_id)[0]; |
419 | 447 | } |
420 | 448 | |
421 | - //vip | |
422 | - $users_group_id = $this->session->get('users_group_id'); | |
423 | - if (isset($users_group_id) && $users_group_id == 37) { | |
424 | - if ($this->common->applyDiscount(5, $cart_items['items'])) { | |
425 | - $this->common->countOrderSum($cart_items); | |
426 | - $cart_items['total_price'] = $cart_items['total_sum']; | |
427 | - } | |
428 | - } | |
429 | - | |
430 | 449 | //discount |
431 | 450 | $discount = $this->models->getDiscount()->getActiveData(); |
432 | 451 | if (!empty($discount)) { |
... | ... | @@ -436,7 +455,21 @@ class MenuController extends \controllers\ControllerBase |
436 | 455 | $this->common->countOrderSum($cart_items); |
437 | 456 | $cart_items['total_price'] = $cart_items['total_sum']; |
438 | 457 | } |
458 | + /************************/ | |
439 | 459 | |
460 | + //vip | |
461 | + $users_group_id = $this->session->get('users_group_id'); | |
462 | + $users_group_discount = $this->getDi()->get('models')->getUsersGroup()->getOneData($users_group_id); | |
463 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
464 | + $users_group_discount = $users_group_discount[0]['discount']; | |
465 | + } | |
466 | + else { | |
467 | + $users_group_discount = 0; | |
468 | + } | |
469 | + if ($this->common->applyDiscount($users_group_discount, $cart_items['items'])) { | |
470 | + $this->common->countOrderSum($cart_items); | |
471 | + $cart_items['total_price'] = $cart_items['total_sum']; | |
472 | + } | |
440 | 473 | /************************/ |
441 | 474 | |
442 | 475 | foreach($cart_items['items'] as $k => $item) { | ... | ... |
src/app/frontend/controllers/PageController.php
... | ... | @@ -931,7 +931,14 @@ |
931 | 931 | $discount = empty($discount[0])? 0 : $discount[0]; |
932 | 932 | //vip |
933 | 933 | $users_group_id = $this->session->get('users_group_id'); |
934 | - | |
934 | + $users_group_discount = $this->models->getUsersGroup()->getOneData($users_group_id); | |
935 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
936 | + $users_group_discount = $users_group_discount[0]['discount']; | |
937 | + } | |
938 | + else { | |
939 | + $users_group_discount = 0; | |
940 | + } | |
941 | + | |
935 | 942 | $this->view->setVars([ |
936 | 943 | 'change_lang_url' => $lang_url, |
937 | 944 | 'catalog' => $catalog, |
... | ... | @@ -954,7 +961,8 @@ |
954 | 961 | 'type_alias' => $type_alias, |
955 | 962 | 'subtype_alias' => $subtype_alias, |
956 | 963 | 'discount' => $discount, |
957 | - 'users_group_id' => $users_group_id | |
964 | + 'users_group_id' => $users_group_id, | |
965 | + 'users_group_discount' => $users_group_discount | |
958 | 966 | ]); |
959 | 967 | } |
960 | 968 | else |
... | ... | @@ -1127,12 +1135,20 @@ |
1127 | 1135 | } |
1128 | 1136 | //vip |
1129 | 1137 | $users_group_id = $this->session->get('users_group_id'); |
1130 | - | |
1138 | + $users_group_discount = $this->models->getUsersGroup()->getOneData($users_group_id); | |
1139 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
1140 | + $users_group_discount = $users_group_discount[0]['discount']; | |
1141 | + } | |
1142 | + else { | |
1143 | + $users_group_discount = 0; | |
1144 | + } | |
1145 | + | |
1131 | 1146 | $this->view->pick('page/changeWithSize'); |
1132 | 1147 | $this->view->setVars([ |
1133 | 1148 | 'item' => $item['0'], |
1134 | 1149 | 'discount' => $discount, |
1135 | - 'users_group_id' => $users_group_id | |
1150 | + 'users_group_id' => $users_group_id, | |
1151 | + 'users_group_discount' => $users_group_discount | |
1136 | 1152 | ]); |
1137 | 1153 | $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); |
1138 | 1154 | } |
... | ... | @@ -1349,8 +1365,8 @@ |
1349 | 1365 | $p['subtype_alias'] = $p['explode']['2']; |
1350 | 1366 | unset( $p['explode'] ); |
1351 | 1367 | } |
1352 | - | |
1353 | - | |
1368 | + | |
1369 | + | |
1354 | 1370 | $groups_ = $this->common->getGroups1( $this->lang_id, $groups ); |
1355 | 1371 | |
1356 | 1372 | //discount |
... | ... | @@ -1382,7 +1398,28 @@ |
1382 | 1398 | $total_items = $this->models->getItems()->getTotalItemsByTerm( $search ,$this->lang_id); |
1383 | 1399 | |
1384 | 1400 | $items = []; |
1385 | - | |
1401 | + | |
1402 | + //discount | |
1403 | + $discount = $this->models->getDiscount()->getActiveData(); | |
1404 | + if (!empty($discount)) { | |
1405 | + $discount = $discount[0]; | |
1406 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | |
1407 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | |
1408 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | |
1409 | + } else { | |
1410 | + $discount = 0; | |
1411 | + } | |
1412 | + //vip | |
1413 | + $users_group_id = $this->session->get('users_group_id'); | |
1414 | + $users_group_discount = $this->models->getUsersGroup()->getOneData($users_group_id); | |
1415 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
1416 | + $users_group_discount = $users_group_discount[0]['discount']; | |
1417 | + } | |
1418 | + else { | |
1419 | + $users_group_discount = 0; | |
1420 | + } | |
1421 | + | |
1422 | + | |
1386 | 1423 | if( !empty( $items_ ) ) |
1387 | 1424 | { |
1388 | 1425 | $items_ids = $this->common->array_column( $items_, 'item_id' ); |
... | ... | @@ -1392,8 +1429,9 @@ |
1392 | 1429 | $i['cover'] = !empty( $i['group_cover'] ) ? $this->storage->getPhotoUrl( $i['group_cover'], 'avatar', '200x' ) : '/images/packet.jpg'; |
1393 | 1430 | $i['alias'] = $this->url->get([ 'for' => 'item', 'type' => $i['type_alias'], 'subtype' => $i['subtype_alias'], 'group_alias' => $i['group_alias'], 'item_id' => $i['id'] ]); |
1394 | 1431 | $i['price'] = $i['price2']; |
1432 | + $i['price'] = round($i['price']*(1-$users_group_discount/100), 1); | |
1395 | 1433 | $i['type_id'] = $i['type']; |
1396 | - //$i['id'] = $i['group_id']; | |
1434 | + $i['id'] = $i['group_id']; | |
1397 | 1435 | |
1398 | 1436 | $i['options_'] = $this->etc->hstore2arr($i['options']); |
1399 | 1437 | |
... | ... | @@ -1404,7 +1442,7 @@ |
1404 | 1442 | unset($i['options']); |
1405 | 1443 | } |
1406 | 1444 | } |
1407 | - | |
1445 | + | |
1408 | 1446 | if( $total_items['0']['total'] > \config::get( 'limits/items') ) |
1409 | 1447 | { |
1410 | 1448 | $paginate = $this->common->paginate( |
... | ... | @@ -1434,7 +1472,7 @@ |
1434 | 1472 | $discount = $this->models->getDiscount()->getActiveData(); |
1435 | 1473 | $discount = $this->models->getDiscount()->explodeGroupIds($discount); |
1436 | 1474 | $discount = empty($discount[0])? 0 : $discount[0]; |
1437 | - | |
1475 | + | |
1438 | 1476 | $this->view->setVars([ |
1439 | 1477 | 'groups' => $items, |
1440 | 1478 | 'page' => $page, |
... | ... | @@ -1532,9 +1570,37 @@ |
1532 | 1570 | } |
1533 | 1571 | } |
1534 | 1572 | } |
1573 | + | |
1574 | + //discount | |
1575 | + $discount = $this->models->getDiscount()->getActiveData(); | |
1576 | + if (!empty($discount)) { | |
1577 | + $discount = $discount[0]; | |
1578 | + $discount['group_ids'] = str_replace('{', '', $discount['group_ids']); | |
1579 | + $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); | |
1580 | + $discount['group_ids'] = explode(',', $discount['group_ids']); | |
1581 | + if ($discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($item_id, $discount['group_ids'])) { | |
1582 | + $discount = $discount['discount']; | |
1583 | + } | |
1584 | + else { | |
1585 | + $discount = 0; | |
1586 | + } | |
1587 | + } else { | |
1588 | + $discount = 0; | |
1589 | + } | |
1590 | + //vip | |
1591 | + $users_group_id = $this->session->get('users_group_id'); | |
1592 | + $users_group_discount = $this->models->getUsersGroup()->getOneData($users_group_id); | |
1593 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
1594 | + $users_group_discount = $users_group_discount[0]['discount']; | |
1595 | + } | |
1596 | + else { | |
1597 | + $users_group_discount = 0; | |
1598 | + } | |
1599 | + | |
1535 | 1600 | $num = count($items); |
1536 | 1601 | for($i=0; $i<$num; $i++){ |
1537 | 1602 | $items[$i]['full_alias'] = $this->models->getCatalog()->getFullAlias($this->lang_id, $items[$i]['catalog'])[0]['full_alias']; |
1603 | + $items[$i]['price2'] = round($items[$i]['price2']*(1-$users_group_discount/100), 1); | |
1538 | 1604 | } |
1539 | 1605 | |
1540 | 1606 | foreach( $properties as $p ) |
... | ... | @@ -1577,7 +1643,8 @@ |
1577 | 1643 | 'items' => $items, |
1578 | 1644 | 'count' => max($count), |
1579 | 1645 | 'no_robots' => 1, |
1580 | - 'prod_text' => $prod_text | |
1646 | + 'prod_text' => $prod_text, | |
1647 | + 'discount' => $discount | |
1581 | 1648 | ]); |
1582 | 1649 | } |
1583 | 1650 | ... | ... |
src/app/frontend/views/customer/cabinet.php
... | ... | @@ -19,7 +19,7 @@ |
19 | 19 | <div id="sidebar" class="float"> |
20 | 20 | <div class="subcategory_sidebar_title"> |
21 | 21 | <h3><?= $t->_("personal_account") ?></h3> |
22 | - <?php if($customer['users_group_id'] == 37) echo '<img class="vip_icon" src="/images/icon_vip_01.png" alt="vip" />'; ?> | |
22 | + <?php if($customer['users_group_id'] == 38) echo '<img class="vip_icon" src="/images/icon_vip_01.png" alt="vip" />'; ?> | |
23 | 23 | <a href="<?= $this->seoUrl->setUrl($this->url->get([ 'for' => 'cabinet' ])) ?>" title="<?= $t->_("profile") ?>" class="active"><?= $t->_("profile") ?></a> |
24 | 24 | <a href="<?= $this->seoUrl->setUrl($this->url->get([ 'for' => 'cabinet_email_settings' ])) ?>" title="<?= $t->_("email_settings") ?>"><?= $t->_("email_settings") ?></a> |
25 | 25 | <?php | ... | ... |
src/app/frontend/views/page/changeWithSize.php
1 | 1 | <?php |
2 | 2 | |
3 | 3 | if(isset($special_user)) { |
4 | - $data['price'] = number_format(isset($item['prices'][$special_user['status']]) | |
4 | + $data['price'] = round(isset($item['prices'][$special_user['status']]) | |
5 | 5 | ? $item['prices'][$special_user['status']] |
6 | - : $item['price2'], 2, '.', ''); | |
6 | + : $item['price2'], 1); | |
7 | 7 | } else { |
8 | 8 | $data['price'] = $item['price2']; |
9 | 9 | } |
10 | 10 | |
11 | 11 | //vip |
12 | -if (isset($users_group_id) && $users_group_id == 37) { | |
13 | - $data['price'] = round($data['price']*0.95, 1); | |
12 | +if (isset($users_group_id) && isset($users_group_discount)) { | |
13 | + $data['price'] = round($data['price']*(1-$users_group_discount/100), 1); | |
14 | 14 | } |
15 | 15 | |
16 | 16 | //discount |
17 | 17 | $old_price = $data['price']; |
18 | 18 | $data['price'] = $data['price']*(1-$discount/100); |
19 | -$data['price'] = number_format($data['price'], 1, '.', ' '); | |
19 | +$data['price'] = round($data['price'], 1); | |
20 | 20 | if ($discount == 0) { |
21 | 21 | $data['html'] = |
22 | 22 | '<div class="clearfix buy_compare"> | ... | ... |
src/app/frontend/views/page/compareItems.php
... | ... | @@ -39,7 +39,7 @@ |
39 | 39 | '<div class="compare_item_image"><a href="'.$this->seoUrl->setUrl($i['alias']).'" title="'.$i['title'].'"><img src="'.$i['cover'].'" alt="'.$i['title'].'" height="100" /></a></div>'. |
40 | 40 | '<div class="compare_item_title"><a href="'.$this->seoUrl->setUrl($i['alias']).'" title="'.$i['title'].'">'.$i['title'].'</a></div>'. |
41 | 41 | '<div class="align_bottom">'. |
42 | - '<div class="compare_item_price">'.$t->_("price_from").' <span>'.$i['price2'].'</span> грн</div>'. | |
42 | + '<div class="compare_item_price">'.$t->_("price_from").' <span>'.round($i['price2'], 1).'</span> грн</div>'. | |
43 | 43 | '<div class="one_item_buttons"> |
44 | 44 | <a href="'.$this->seoUrl->setUrl($i['alias']) .'" title="" class="btn grey">'.$t->_("details").'</a> |
45 | 45 | <a data-group_id="'.$i['group_id'].'" href="#" title="" class="btn green buy">'.$t->_("buy").'</a> | ... | ... |
src/app/frontend/views/page/item.php
... | ... | @@ -204,20 +204,20 @@ |
204 | 204 | <li> |
205 | 205 | <?php |
206 | 206 | //vip |
207 | - if (isset($users_group_id) && $users_group_id == 37) { | |
208 | - $item['price2'] = round($item['price2']*0.95, 1); | |
207 | + if (isset($users_group_id) && isset($users_group_discount)) { | |
208 | + $item['price2'] = round($item['price2']*(1-$users_group_discount/100), 1); | |
209 | 209 | } |
210 | 210 | // скидка |
211 | 211 | if (!empty($discount)) { |
212 | 212 | if (isset($discount) && $discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($item['id'], $discount['group_ids'])) { |
213 | - echo '<span itemprop="price">'.number_format($item['price2']*(1-$discount['discount']/100), 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | |
213 | + echo '<span itemprop="price">'.round($item['price2']*(1-$discount['discount']/100), 1).'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | |
214 | 214 | } |
215 | 215 | else { |
216 | - echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | |
216 | + echo '<span itemprop="price">'.round($item['price2'], 1).'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | |
217 | 217 | } |
218 | 218 | } |
219 | 219 | else { |
220 | - echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | |
220 | + echo '<span itemprop="price">'.round($item['price2'], 1).'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; | |
221 | 221 | } |
222 | 222 | ?> |
223 | 223 | <div style="display: none" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> | ... | ... |
src/app/frontend/views/partial/dealer.php
... | ... | @@ -171,7 +171,7 @@ |
171 | 171 | <a href="#"><i class="fa fa-circle text-success"></i> Online</a> |
172 | 172 | </div> |
173 | 173 | <?php //vip icon |
174 | - if (isset($customer['users_group_id']) && $customer['users_group_id'] == 37) | |
174 | + if (isset($customer['users_group_id']) && $customer['users_group_id'] == 38) | |
175 | 175 | echo '<div class="dealer_vip_icon"><img src="/images/icon_vip_01.png" alt="vip"/></div>'; |
176 | 176 | ?> |
177 | 177 | </div> | ... | ... |
src/app/frontend/views/partial/item_group.php
src/lib/common.php
... | ... | @@ -762,8 +762,16 @@ namespace |
762 | 762 | */ |
763 | 763 | public function getGroups1( $lang_id, $groups) |
764 | 764 | { |
765 | - $groups_ = []; | |
766 | - $compare = $this->getDi()->get('session')->get('compare', []); | |
765 | + $groups_ = []; | |
766 | + $compare = $this->getDi()->get('session')->get('compare', []); | |
767 | + $users_group_id = $this->getDi()->get('session')->get('users_group_id'); | |
768 | + $users_group_discount = $this->getDi()->get('models')->getUsersGroup()->getOneData($users_group_id); | |
769 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
770 | + $users_group_discount = $users_group_discount[0]['discount']; | |
771 | + } | |
772 | + else { | |
773 | + $users_group_discount = 0; | |
774 | + } | |
767 | 775 | |
768 | 776 | if( !empty( $groups ) ) |
769 | 777 | { |
... | ... | @@ -778,7 +786,6 @@ namespace |
778 | 786 | $items_[$i['id']] = $i; |
779 | 787 | } |
780 | 788 | |
781 | - | |
782 | 789 | foreach( $groups as &$g ) |
783 | 790 | { |
784 | 791 | $g['items'] = $this->getDi()->get('models')->getItems()->getSizesByGroupId($lang_id, $g['group_id']); |
... | ... | @@ -786,15 +793,19 @@ namespace |
786 | 793 | for($i = 0; $i < count($g['items']); $i++) { |
787 | 794 | $g['items'][$i]['prices'] = $this->getPricesArray($g['items'][$i]); |
788 | 795 | } |
796 | + | |
789 | 797 | $g['price'] = !empty( $items_[$g['id']]['price2'] ) ? $items_[$g['id']]['price2'] : 0; |
790 | 798 | $g['title'] = !empty( $items_[$g['id']]['title'] ) ? $items_[$g['id']]['title'] : ''; |
791 | 799 | $g['description'] = !empty( $items_[$g['id']]['description'] ) ? $this->shortenString($items_[$g['id']]['description'], 200) : ''; |
792 | 800 | $g['content_description'] = !empty( $items_[$g['id']]['content_description'] ) ? $items_[$g['id']]['content_description'] : ''; |
793 | 801 | $g['cover'] = !empty( $g['cover'] ) ? $this->getDi()->get('storage')->getPhotoUrl( $g['cover'], 'avatar', '200x' ) : '/images/packet.jpg'; |
794 | 802 | $g['alias'] = $this->getDi()->get('url')->get([ 'for' => 'item', 'type' => $g['type_alias'], 'subtype' => $g['subtype_alias'], 'group_alias' => $g['alias'], 'item_id' => $g['id'] ]); |
803 | + | |
795 | 804 | if(isset($g['type_id']) && isset($g['catalog'])) |
796 | - $g['checked'] = !empty($compare[$g['type_id']][$g['catalog']]) && in_array($g['id'], $compare[$g['type_id']][$g['catalog']]) ? 1 : 0; | |
805 | + $g['checked'] = !empty($compare[$g['type_id']][$g['catalog']]) && in_array($g['id'], $compare[$g['type_id']][$g['catalog']]) ? 1 : 0; | |
797 | 806 | |
807 | + if (isset($users_group_id)) | |
808 | + $g['price'] = round($g['price']*(1-$users_group_discount/100), 1); | |
798 | 809 | |
799 | 810 | if( !empty( $g['options'] ) ) |
800 | 811 | { |
... | ... | @@ -1217,12 +1228,24 @@ namespace |
1217 | 1228 | } |
1218 | 1229 | |
1219 | 1230 | public function getPricesArray($item) { |
1220 | - $prices = []; | |
1221 | - $price_first = 2; | |
1222 | - $price_last = 6; | |
1223 | - | |
1231 | + $prices = []; | |
1232 | + $price_first = 2; | |
1233 | + $price_last = 6; | |
1234 | + $users_group_id = $this->getDi()->get('session')->get('users_group_id'); | |
1235 | + $users_group_discount = $this->getDi()->get('models')->getUsersGroup()->getOneData($users_group_id); | |
1236 | + if (!empty($users_group_discount[0]['discount']) && $users_group_discount[0]['discount'] < 100 && $users_group_discount[0]['discount'] > 0) { | |
1237 | + $users_group_discount = $users_group_discount[0]['discount']; | |
1238 | + } | |
1239 | + else { | |
1240 | + $users_group_discount = 0; | |
1241 | + } | |
1224 | 1242 | for ($i = $price_first; $i < $price_last + 1; $i++) { |
1225 | - $prices[] = $item['price' . $i]; | |
1243 | + | |
1244 | + if (isset($users_group_id)) { | |
1245 | + $prices[] = round($item['price' . $i]*(1-$users_group_discount/100), 1); | |
1246 | + } else { | |
1247 | + $prices[] = $item['price' . $i]; | |
1248 | + } | |
1226 | 1249 | } |
1227 | 1250 | return $prices; |
1228 | 1251 | } | ... | ... |
src/lib/models/users_groups.php
... | ... | @@ -102,17 +102,20 @@ class users_groups extends \db |
102 | 102 | INSERT INTO |
103 | 103 | public.users_groups |
104 | 104 | ( |
105 | - name | |
105 | + name, | |
106 | + discount | |
106 | 107 | |
107 | 108 | ) |
108 | 109 | VALUES |
109 | 110 | ( |
110 | - :name | |
111 | + :name, | |
112 | + :discount | |
111 | 113 | ) |
112 | 114 | RETURNING id |
113 | 115 | ', |
114 | 116 | [ |
115 | - 'name' => $data['name'] | |
117 | + 'name' => $data['name'], | |
118 | + 'discount' => $data['discount'] | |
116 | 119 | ], |
117 | 120 | -1 |
118 | 121 | ); |
... | ... | @@ -129,13 +132,15 @@ class users_groups extends \db |
129 | 132 | UPDATE |
130 | 133 | public.users_groups |
131 | 134 | SET |
132 | - name = :name | |
135 | + name = :name, | |
136 | + discount = :discount | |
133 | 137 | WHERE |
134 | 138 | id = :id |
135 | 139 | ', |
136 | 140 | [ |
137 | - 'name' => $data['name'], | |
138 | - "id" => $id | |
141 | + 'name' => $data['name'], | |
142 | + 'discount' => $data['discount'], | |
143 | + "id" => $id | |
139 | 144 | ] |
140 | 145 | ); |
141 | 146 | } | ... | ... |