Commit d83337900d5f303ebb1dbf5932d9f650e16abd0c

Authored by Alex Savenko
2 parents 73a742aa dd724469

Merge branch 'vip' into 'master'

Vip => master

vip => master

See merge request !6
src/app/frontend/controllers/MenuController.php
@@ -411,6 +411,15 @@ class MenuController extends \controllers\ControllerBase @@ -411,6 +411,15 @@ class MenuController extends \controllers\ControllerBase
411 $special_user = $this->models->getSpecialUsers()->getOneData($special_users_id)[0]; 411 $special_user = $this->models->getSpecialUsers()->getOneData($special_users_id)[0];
412 } 412 }
413 413
  414 + //vip
  415 + $users_group_id = $this->session->get('users_group_id');
  416 + if (isset($users_group_id) && $users_group_id == 37) {
  417 + if ($this->common->applyDiscount(5, $cart_items['items'])) {
  418 + $this->common->countOrderSum($cart_items);
  419 + $cart_items['total_price'] = $cart_items['total_sum'];
  420 + }
  421 + }
  422 +
414 //discount 423 //discount
415 424
416 $discount = $this->models->getDiscount()->getActiveData(); 425 $discount = $this->models->getDiscount()->getActiveData();
src/app/frontend/controllers/PageController.php
@@ -438,6 +438,7 @@ @@ -438,6 +438,7 @@
438 '2' => (isset( $seo['description'] ) && !empty( $seo['description'] ) ? $seo['description'] : 'Заказать '.$catalog['catalog']['title'].' в Киеве по лучшей цене. Качество товара подтверждена профессионалами.').(isset( $page ) && !empty( $page ) && $page != '1' ? ' страница '.$page : '') 438 '2' => (isset( $seo['description'] ) && !empty( $seo['description'] ) ? $seo['description'] : 'Заказать '.$catalog['catalog']['title'].' в Киеве по лучшей цене. Качество товара подтверждена профессионалами.').(isset( $page ) && !empty( $page ) && $page != '1' ? ' страница '.$page : '')
439 ]; 439 ];
440 440
  441 + //discount
441 $discount = $this->models->getDiscount()->getActiveData(); 442 $discount = $this->models->getDiscount()->getActiveData();
442 if (!empty($discount)) { 443 if (!empty($discount)) {
443 $discount = $discount[0]; 444 $discount = $discount[0];
@@ -445,6 +446,8 @@ @@ -445,6 +446,8 @@
445 $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); 446 $discount['group_ids'] = str_replace('}', '', $discount['group_ids']);
446 $discount['group_ids'] = explode(',', $discount['group_ids']); 447 $discount['group_ids'] = explode(',', $discount['group_ids']);
447 } 448 }
  449 + //vip
  450 + $users_group_id = $this->session->get('users_group_id');
448 451
449 if($subtype==='semena_gazonnykh_trav_1c_21') 452 if($subtype==='semena_gazonnykh_trav_1c_21')
450 $this->view->setMainView('landing'); 453 $this->view->setMainView('landing');
@@ -479,7 +482,8 @@ @@ -479,7 +482,8 @@
479 'catalog_sales' => $catalog_sales, 482 'catalog_sales' => $catalog_sales,
480 'css' => $cssSale, 483 'css' => $cssSale,
481 'js' => $jsSale, 484 'js' => $jsSale,
482 - 'discount' => $discount 485 + 'discount' => $discount,
  486 + 'users_group_id' => $users_group_id
483 ]); 487 ]);
484 } 488 }
485 else 489 else
@@ -708,6 +712,7 @@ @@ -708,6 +712,7 @@
708 } 712 }
709 } 713 }
710 714
  715 + //discount
711 $discount = $this->models->getDiscount()->getActiveData(); 716 $discount = $this->models->getDiscount()->getActiveData();
712 if (!empty($discount)) { 717 if (!empty($discount)) {
713 $discount = $discount[0]; 718 $discount = $discount[0];
@@ -715,6 +720,8 @@ @@ -715,6 +720,8 @@
715 $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); 720 $discount['group_ids'] = str_replace('}', '', $discount['group_ids']);
716 $discount['group_ids'] = explode(',', $discount['group_ids']); 721 $discount['group_ids'] = explode(',', $discount['group_ids']);
717 } 722 }
  723 + //vip
  724 + $users_group_id = $this->session->get('users_group_id');
718 725
719 $cssSale = [ 726 $cssSale = [
720 'https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic', 727 'https://fonts.googleapis.com/css?family=Ubuntu:400,700,400italic',
@@ -758,7 +765,8 @@ @@ -758,7 +765,8 @@
758 'catalog_sales' => $catalog_sales, 765 'catalog_sales' => $catalog_sales,
759 'css' => $cssSale, 766 'css' => $cssSale,
760 'js' => $jsSale, 767 'js' => $jsSale,
761 - 'discount' => $discount 768 + 'discount' => $discount,
  769 + 'users_group_id' => $users_group_id
762 ]); 770 ]);
763 } 771 }
764 772
@@ -924,6 +932,7 @@ @@ -924,6 +932,7 @@
924 '2' => isset($seo['description']) && !empty($seo['description']) ? $seo['description'] : 'Профессионалы рекомендуют ' . $catalog_name . ' ' . $item['0']['title'] . ' в интернет магазине семян Semena.in.ua.' 932 '2' => isset($seo['description']) && !empty($seo['description']) ? $seo['description'] : 'Профессионалы рекомендуют ' . $catalog_name . ' ' . $item['0']['title'] . ' в интернет магазине семян Semena.in.ua.'
925 ]; 933 ];
926 934
  935 + //discount
927 $discount = $this->models->getDiscount()->getActiveData(); 936 $discount = $this->models->getDiscount()->getActiveData();
928 if (!empty($discount)) { 937 if (!empty($discount)) {
929 $discount = $discount[0]; 938 $discount = $discount[0];
@@ -931,6 +940,8 @@ @@ -931,6 +940,8 @@
931 $discount['group_ids'] = str_replace('}', '', $discount['group_ids']); 940 $discount['group_ids'] = str_replace('}', '', $discount['group_ids']);
932 $discount['group_ids'] = explode(',', $discount['group_ids']); 941 $discount['group_ids'] = explode(',', $discount['group_ids']);
933 } 942 }
  943 + //vip
  944 + $users_group_id = $this->session->get('users_group_id');
934 945
935 $this->view->setVars([ 946 $this->view->setVars([
936 'change_lang_url' => $lang_url, 947 'change_lang_url' => $lang_url,
@@ -953,7 +964,8 @@ @@ -953,7 +964,8 @@
953 'catalog_id' => $catalog_id, 964 'catalog_id' => $catalog_id,
954 'type_alias' => $type_alias, 965 'type_alias' => $type_alias,
955 'subtype_alias' => $subtype_alias, 966 'subtype_alias' => $subtype_alias,
956 - 'discount' => $discount 967 + 'discount' => $discount,
  968 + 'users_group_id' => $users_group_id
957 ]); 969 ]);
958 } 970 }
959 else 971 else
@@ -1110,6 +1122,7 @@ @@ -1110,6 +1122,7 @@
1110 ]); 1122 ]);
1111 } 1123 }
1112 1124
  1125 + //discount
1113 $discount = $this->models->getDiscount()->getActiveData(); 1126 $discount = $this->models->getDiscount()->getActiveData();
1114 if (!empty($discount)) { 1127 if (!empty($discount)) {
1115 $discount = $discount[0]; 1128 $discount = $discount[0];
@@ -1125,11 +1138,14 @@ @@ -1125,11 +1138,14 @@
1125 } else { 1138 } else {
1126 $discount = 0; 1139 $discount = 0;
1127 } 1140 }
  1141 + //vip
  1142 + $users_group_id = $this->session->get('users_group_id');
1128 1143
1129 $this->view->pick('page/changeWithSize'); 1144 $this->view->pick('page/changeWithSize');
1130 $this->view->setVars([ 1145 $this->view->setVars([
1131 - 'item' => $item['0'],  
1132 - 'discount' => $discount 1146 + 'item' => $item['0'],
  1147 + 'discount' => $discount,
  1148 + 'users_group_id' => $users_group_id
1133 ]); 1149 ]);
1134 $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW); 1150 $this->view->setRenderLevel(View::LEVEL_ACTION_VIEW);
1135 } 1151 }
src/app/frontend/views/page/changeWithSize.php
1 <?php 1 <?php
  2 +
2 if(isset($special_user)) { 3 if(isset($special_user)) {
3 $data['price'] = number_format(isset($item['prices'][$special_user['status']]) 4 $data['price'] = number_format(isset($item['prices'][$special_user['status']])
4 ? $item['prices'][$special_user['status']] 5 ? $item['prices'][$special_user['status']]
@@ -6,6 +7,13 @@ if(isset($special_user)) { @@ -6,6 +7,13 @@ if(isset($special_user)) {
6 } else { 7 } else {
7 $data['price'] = $item['price2']; 8 $data['price'] = $item['price2'];
8 } 9 }
  10 +
  11 +//vip
  12 +if (isset($users_group_id) && $users_group_id == 37) {
  13 + $data['price'] = round($data['price']*0.95, 1);
  14 +}
  15 +
  16 +//discount
9 $old_price = $data['price']; 17 $old_price = $data['price'];
10 $data['price'] = $data['price']*(1-$discount/100); 18 $data['price'] = $data['price']*(1-$discount/100);
11 $data['price'] = number_format($data['price'], 2, '.', ' '); 19 $data['price'] = number_format($data['price'], 2, '.', ' ');
src/app/frontend/views/page/item.php
@@ -203,20 +203,23 @@ @@ -203,20 +203,23 @@
203 <ul> 203 <ul>
204 <li> 204 <li>
205 <?php 205 <?php
  206 + //vip
  207 + if (isset($users_group_id) && $users_group_id == 37) {
  208 + $item['price2'] = round($item['price2']*0.95, 1);
  209 + }
206 // скидка 210 // скидка
207 if (!empty($discount)) { 211 if (!empty($discount)) {
208 if (isset($discount) && $discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($item['id'], $discount['group_ids'])) { 212 if (isset($discount) && $discount['discount'] > 0 && $discount['discount'] <= 100 && in_array($item['id'], $discount['group_ids'])) {
209 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">'.number_format($item['price2']*(1-$discount['discount']/100), 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>';
210 } 214 }
211 else { 215 else {
212 - //echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; 216 + echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>';
213 } 217 }
214 } 218 }
215 else { 219 else {
216 echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>'; 220 echo '<span itemprop="price">'.number_format($item['price2'], 2, '.', ' ').'</span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>';
217 } 221 }
218 ?> 222 ?>
219 - <!--<span itemprop="price"><?//= number_format($item['price2'], 2, '.', ' '); ?></span> грн<span style="display:none;" itemprop="priceCurrency">UAH</span>-->  
220 <div style="display: none" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating"> 223 <div style="display: none" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
221 <span itemprop="ratingValue">5</span> 224 <span itemprop="ratingValue">5</span>
222 <span itemprop="reviewCount">31</span> 225 <span itemprop="reviewCount">31</span>
src/app/frontend/views/partial/item_group.php
@@ -35,7 +35,7 @@ @@ -35,7 +35,7 @@
35 <?= $t->_("price_from") ?> 35 <?= $t->_("price_from") ?>
36 <?php 36 <?php
37 //vip 37 //vip
38 - if($users_group_id == '37') { 38 + if(isset($users_group_id) && $users_group_id == '37') {
39 $i['price'] = round($i['price']*0.95, 1); 39 $i['price'] = round($i['price']*0.95, 1);
40 } 40 }
41 // скидка 41 // скидка
src/lib/common.php
@@ -1335,6 +1335,18 @@ namespace @@ -1335,6 +1335,18 @@ namespace
1335 public function parseArray($str) { 1335 public function parseArray($str) {
1336 return explode(',', preg_replace('[{|}]', '' , $str)); 1336 return explode(',', preg_replace('[{|}]', '' , $str));
1337 } 1337 }
  1338 +
  1339 + public function applyDiscount($discount_value, &$items) {
  1340 + if (empty($discount_value) || $discount_value < 0 || $discount_value > 100) {
  1341 + return false;
  1342 + }
  1343 + foreach($items as $k => $item) {
  1344 + $items[$k]['price2'] = number_format($item['price2'] - ($item['price2'] * $discount_value / 100), 1, '.', '');
  1345 + $items[$k]['total_price'] = number_format($items[$k]['price2'] * $item['count'], 1, '.', '');
  1346 + }
  1347 + return true;
  1348 + }
  1349 +
1338 } 1350 }
1339 } 1351 }
1340 1352