Commit 3ffb4159073df0c651dd70a49eacd76ab0a94283

Authored by Eugeny Galkovskiy
2 parents ab6e9ee8 c73b1869

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/app/frontend/messages/ru.php
#	src/app/frontend/messages/ua.php
src/app/backend/controllers/PromoCodesController.php
@@ -54,6 +54,7 @@ class PromoCodesController extends Controller @@ -54,6 +54,7 @@ class PromoCodesController extends Controller
54 $data['code'] = $this->request->getPost('code', 'string', NULL ); 54 $data['code'] = $this->request->getPost('code', 'string', NULL );
55 $data['start_date'] = $this->request->getPost('start_date'); 55 $data['start_date'] = $this->request->getPost('start_date');
56 $data['end_date'] = $this->request->getPost('end_date'); 56 $data['end_date'] = $this->request->getPost('end_date');
  57 + $data['single_use'] = $this->request->getPost('single_use');
57 $data['discount'] = $this->request->getPost('discount', 'string', NULL ); 58 $data['discount'] = $this->request->getPost('discount', 'string', NULL );
58 $data['description'] = $this->request->getPost('description'); 59 $data['description'] = $this->request->getPost('description');
59 $data['catalog_ids'] = $this->request->getPost('catalog', 'string', NULL ); 60 $data['catalog_ids'] = $this->request->getPost('catalog', 'string', NULL );
@@ -120,6 +121,7 @@ class PromoCodesController extends Controller @@ -120,6 +121,7 @@ class PromoCodesController extends Controller
120 $data[0]['description'] = $this->request->getPost('description'); 121 $data[0]['description'] = $this->request->getPost('description');
121 $data[0]['group_ids'] = $this->request->getPost('items', 'string', NULL ); 122 $data[0]['group_ids'] = $this->request->getPost('items', 'string', NULL );
122 $data[0]['all_items'] = $this->request->getPost('all_items', 'int', NULL); 123 $data[0]['all_items'] = $this->request->getPost('all_items', 'int', NULL);
  124 + $data[0]['single_use'] = $this->request->getPost('single_use', 'int', NULL);
123 125
124 $cover = $this->uploadImage(); 126 $cover = $this->uploadImage();
125 127
src/app/backend/views/promo_codes/addEdit.php
@@ -47,6 +47,14 @@ @@ -47,6 +47,14 @@
47 </div> 47 </div>
48 </div> 48 </div>
49 49
  50 +
  51 +
  52 +
  53 + <div class="clearfix input_wrapper">
  54 + <?= '<input type="checkbox" id="single_use" name="single_use" class="single_use" value="1" '.( isset( $page['0']['single_use'] ) && !empty( $page['0']['single_use'] ) && $page['0']['single_use'] == 1 ? 'checked="checked"' : '').' />' ?>
  55 + <label for="single_use"><span></span>Одноразовое использование</label>
  56 + </div>
  57 +
50 <div class="clearfix input_wrapper"> 58 <div class="clearfix input_wrapper">
51 <div class="label"><label for="description">Описание</label></div> 59 <div class="label"><label for="description">Описание</label></div>
52 <div class="input"> 60 <div class="input">
src/app/frontend/controllers/AjaxController.php
@@ -173,23 +173,62 @@ class AjaxController extends \controllers\ControllerBase @@ -173,23 +173,62 @@ class AjaxController extends \controllers\ControllerBase
173 } 173 }
174 174
175 public function applyPromoCodeAction() { 175 public function applyPromoCodeAction() {
176 - $this->view->disable();  
177 - $in_cart = $this->session->get('in_cart', []);  
178 - $cart = $this->common->getCartItems($in_cart, $this->lang_id); 176 + try {
  177 +
  178 + $this->view->disable();
  179 + $in_cart = $this->session->get('in_cart', []);
  180 + $cart = $this->common->getCartItems($in_cart, $this->lang_id);
  181 +
  182 + $promo_code = $this->request->getPost( 'promo_code', 'string', '' );
  183 +
  184 + $promo_code = $this->models->getPromoCodes()->getOneDataByCode($promo_code);
  185 + $user = isset($this->models->getCustomers()->getOneData($this->session->get('id'))['0']) ? $this->models->getCustomers()->getOneData($this->session->get('id'))['0'] : '';
  186 +
  187 + if(!empty($promo_code) && $promo_code[0]['single_use']){
  188 + if( !empty($user)){
  189 + if(!empty($user['email'])){
  190 + $data['code'] = $promo_code[0]['code'];
  191 + $data['email'] = $user['email'];
  192 + $promo_code_check = $this->models->getPromoToUser()->getOneDataByCode($data);
  193 + if(!empty($promo_code_check)){
  194 + throw new \Exception($this->t->_('error_promo_code_already_used'));
  195 + }
  196 + } else {
  197 + throw new \Exception($this->t->_('error_promo_code_empty_email'));
  198 + }
  199 + } else {
  200 + throw new \Exception($this->t->_('error_promo_code_empty_user'));
  201 + }
179 202
180 - $promo_code = $this->request->getPost( 'promo_code', 'string', '' );  
181 203
182 - $promo_code = $this->models->getPromoCodes()->getOneDataByCode($promo_code);  
183 204
184 - if(!empty($promo_code)) {  
185 - if($this->common->applyPromoCode($promo_code[0], $cart['items'])) {  
186 - $this->session->set('promo_code', $promo_code[0]);  
187 - $this->common->countOrderSum($cart);  
188 - echo json_encode($cart);  
189 - return;  
190 } 205 }
  206 +
  207 + if(!empty($promo_code)) {
  208 + if($this->common->applyPromoCode($promo_code[0], $cart['items'])) {
  209 + $this->session->set('promo_code', $promo_code[0]);
  210 + $this->common->countOrderSum($cart);
  211 + echo json_encode(['cart' => $cart,
  212 + 'successMessage' => $this->t->_('success_promo_code'),
  213 + 'status'=>'success'
  214 + ]);
  215 + return;
  216 + } else {
  217 + throw new \Exception($this->t->_('error_promo_code'));
  218 + }
  219 + } else {
  220 + throw new \Exception($this->t->_('error_promo_code_is_empty'));
  221 + }
  222 +
  223 + } catch (\Exception $e) {
  224 +
  225 + echo json_encode(['status'=>'error',
  226 + 'errorMessage' => $e->getMessage()
  227 + ]);
  228 + return null;
191 } 229 }
192 - return null; 230 +
  231 +
193 } 232 }
194 } 233 }
195 234
196 \ No newline at end of file 235 \ No newline at end of file
src/app/frontend/controllers/DealerController.php
@@ -1520,6 +1520,9 @@ class DealerController extends \controllers\ControllerBase @@ -1520,6 +1520,9 @@ class DealerController extends \controllers\ControllerBase
1520 1520
1521 if( !empty( $order['proposal_number'] ) ) 1521 if( !empty( $order['proposal_number'] ) )
1522 { 1522 {
  1523 +
  1524 +
  1525 +
1523 $this->sendmail->addCustomer( 2, $order ); 1526 $this->sendmail->addCustomer( 2, $order );
1524 1527
1525 $this->session->set( 'in_cart', []); 1528 $this->session->set( 'in_cart', []);
src/app/frontend/controllers/MenuController.php
@@ -32,10 +32,11 @@ class MenuController extends \controllers\ControllerBase @@ -32,10 +32,11 @@ class MenuController extends \controllers\ControllerBase
32 $err = 0; 32 $err = 0;
33 33
34 $cities_ = $this->novaposhta->city(); 34 $cities_ = $this->novaposhta->city();
35 -  
36 - foreach( $cities_->city as $c ) 35 +
  36 + foreach( $cities_->item as $c )
37 { 37 {
38 - $cities[strval($c->id)] = strval($c->nameUkr); 38 +
  39 + $cities[strval($c->CityID)] = strval($c->Description);
39 } 40 }
40 41
41 if ( !empty( $in_cart ) ) 42 if ( !empty( $in_cart ) )
@@ -210,6 +211,25 @@ class MenuController extends \controllers\ControllerBase @@ -210,6 +211,25 @@ class MenuController extends \controllers\ControllerBase
210 211
211 if( !empty( $order['proposal_number'] ) ) 212 if( !empty( $order['proposal_number'] ) )
212 { 213 {
  214 +
  215 +
  216 + /**
  217 + * single use promo code logic
  218 + */
  219 + if(!empty($session_promo_code)){
  220 + $user = $this->models->getCustomers()->getOneData($this->session->get('id'))['0'];
  221 +
  222 + if($session_promo_code['single_use'] && !empty($user)){
  223 + if(!empty($user['email'])){
  224 + $data['code'] = $session_promo_code['code'];
  225 + $data['email'] = $user['email'];
  226 + $this->models->getPromoToUser()->addData($data);
  227 + }
  228 +
  229 + }
  230 + }
  231 +
  232 +
213 $this->sendmail->addCustomer( 2, $order ); 233 $this->sendmail->addCustomer( 2, $order );
214 234
215 $this->session->set( 'in_cart', []); 235 $this->session->set( 'in_cart', []);
@@ -318,18 +338,18 @@ class MenuController extends \controllers\ControllerBase @@ -318,18 +338,18 @@ class MenuController extends \controllers\ControllerBase
318 $length = strlen($term); 338 $length = strlen($term);
319 $cities_ = $this->novaposhta->city(); 339 $cities_ = $this->novaposhta->city();
320 340
321 - foreach( $cities_->city as $c ) 341 + foreach( $cities_->item as $c )
322 { 342 {
323 - $cities[strval($c->id)] = strval($c->nameUkr); 343 + $cities[strval($c->CityID)] = strval($c->Description);
324 344
325 - if( mb_strtolower( substr( strval($c->nameUkr), 0, $length ), 'utf-8' ) == mb_strtolower( $term, 'utf-8' ) ) 345 + if( mb_strtolower( substr( strval($c->Description), 0, $length ), 'utf-8' ) == mb_strtolower( $term, 'utf-8' ) )
326 { 346 {
327 $selected_cities[] = 347 $selected_cities[] =
328 [ 348 [
329 - 'label' => strval($c->nameUkr),  
330 - 'value' => strval($c->nameUkr),  
331 - 'id' => strval($c->id),  
332 - 'ref' => strval($c->ref) 349 + 'label' => strval($c->Description),
  350 + 'value' => strval($c->Ref),
  351 + 'id' => strval($c->CityID),
  352 + 'ref' => strval($c->Ref)
333 ]; 353 ];
334 } 354 }
335 } 355 }
@@ -345,13 +365,13 @@ class MenuController extends \controllers\ControllerBase @@ -345,13 +365,13 @@ class MenuController extends \controllers\ControllerBase
345 $city = $this->request->getPost('city', 'string', '' ); 365 $city = $this->request->getPost('city', 'string', '' );
346 $offices_ = $this->novaposhta->warenhouse( $city ); 366 $offices_ = $this->novaposhta->warenhouse( $city );
347 367
348 - foreach( $offices_->warenhouse as $c ) 368 + foreach( $offices_->item as $c )
349 { 369 {
350 $offices[] = 370 $offices[] =
351 [ 371 [
352 - 'number' => strval($c->number),  
353 - 'address' => strval($c->address),  
354 - 'store_ref' => strval($c->ref) 372 + 'number' => strval($c->Number),
  373 + 'address' => strval($c->Description),
  374 + 'store_ref' => strval($c->Ref)
355 ]; 375 ];
356 } 376 }
357 377
src/app/frontend/controllers/PageController.php
@@ -850,14 +850,27 @@ class PageController extends \controllers\ControllerBase @@ -850,14 +850,27 @@ class PageController extends \controllers\ControllerBase
850 } 850 }
851 851
852 // get popular items_groups 852 // get popular items_groups
  853 +//
  854 +// $popular_groups = $this->models->getItems()->getPopularItems($this->lang_id);
  855 +// $popular_groups = $this->common->explodeAlias($popular_groups);
  856 +//
  857 +//
  858 +// $recommended_items = $this->models->getItems()->getRecommendedGroups($this->lang_id, \config::get( 'limits/top_items' ));
  859 +// $recommended_items = $this->common->explodeAlias($recommended_items);
  860 +// $popular_groups_ = $this->common->getGroups1($this->lang_id, $recommended_items);
  861 +
  862 + $groups = $this->models->getItems()->getBuyWithItems( $this->lang_id, $item['0']['group_id'] );
  863 + foreach( $groups as &$p )
  864 + {
  865 + $p['explode'] = explode( '/', $p['catalog_alias'] );
  866 + $p['type_alias'] = $p['explode']['1'];
  867 + $p['subtype_alias'] = $p['explode']['2'];
  868 + unset( $p['explode'] );
  869 + }
853 870
854 - $popular_groups = $this->models->getItems()->getPopularItems($this->lang_id);  
855 - $popular_groups = $this->common->explodeAlias($popular_groups);  
856 871
  872 + $popular_groups_ = $this->common->getGroups1( $this->lang_id, $groups );
857 873
858 - $recommended_items = $this->models->getItems()->getRecommendedGroups($this->lang_id, \config::get( 'limits/top_items' ));  
859 - $recommended_items = $this->common->explodeAlias($recommended_items);  
860 - $popular_groups_ = $this->common->getGroups1($this->lang_id, $recommended_items);  
861 874
862 875
863 $seo = $this->seoUrl->getSeoData($this->models->getSeoInfo()->getAllSeo()); 876 $seo = $this->seoUrl->getSeoData($this->models->getSeoInfo()->getAllSeo());
src/app/frontend/messages/ru.php
@@ -143,7 +143,7 @@ return array( @@ -143,7 +143,7 @@ return array(
143 "street_two" =>"пр-т Броварской, ст.м. Лесная, в сторону центра Киева;", 143 "street_two" =>"пр-т Броварской, ст.м. Лесная, в сторону центра Киева;",
144 "address_two" => "ул. Большая Кольцевая, 110-А, оптово-розничный рынок \"Столичный\", павильон \"Рыба и мясо\";", 144 "address_two" => "ул. Большая Кольцевая, 110-А, оптово-розничный рынок \"Столичный\", павильон \"Рыба и мясо\";",
145 "address_three" => "пр-т Академика Глушкова №6, ст.м. Ипподром, напротив Южного автовокзала;", 145 "address_three" => "пр-т Академика Глушкова №6, ст.м. Ипподром, напротив Южного автовокзала;",
146 - "address_four" => "ул. Харьковское шоссе, 166-В, возле магазина \"Сільпо\";", 146 + "address_four" => "ул. Харьковское шоссе, 16, возле магазина \"Сільпо\";",
147 "address_five" => "пр-т Оболонский 43, ст.м. Героев Днепра;", 147 "address_five" => "пр-т Оболонский 43, ст.м. Героев Днепра;",
148 "address_six"=>"Киево-Святошинский р-н, с.Крюковщина, ул.Балукова, 14;", 148 "address_six"=>"Киево-Святошинский р-н, с.Крюковщина, ул.Балукова, 14;",
149 "address_seven"=>"ул. Архитектора Вербицкого, 22/1, возле магазина \"Велика кишеня\";", 149 "address_seven"=>"ул. Архитектора Вербицкого, 22/1, возле магазина \"Велика кишеня\";",
@@ -151,7 +151,7 @@ return array( @@ -151,7 +151,7 @@ return array(
151 "new_address_first" => 'ст.м. Лесная, пр-т Броварской, в сторону г. Бровары;', 151 "new_address_first" => 'ст.м. Лесная, пр-т Броварской, в сторону г. Бровары;',
152 "new_address_second" => 'ул. Большая Кольцевая, 110-А, оптово-розничный рынок "Столичный", павильон "Рыба и мясо";', 152 "new_address_second" => 'ул. Большая Кольцевая, 110-А, оптово-розничный рынок "Столичный", павильон "Рыба и мясо";',
153 "new_address_third" => 'ст.м. Ипподром, пр-т Академика Глушкова №6, напротив Южного автовокзала;', 153 "new_address_third" => 'ст.м. Ипподром, пр-т Академика Глушкова №6, напротив Южного автовокзала;',
154 - "new_address_fourth" => 'ул. Харьковское шоссе, 166-В, возле магазина "Сільпо";', 154 + "new_address_fourth" => 'ул. Харьковское шоссе, 16, возле магазина "Сільпо";',
155 "new_address_fifth" => 'пр-т Оболонский 43, ст.м. Героев Днепра;', 155 "new_address_fifth" => 'пр-т Оболонский 43, ст.м. Героев Днепра;',
156 "new_address_sixth" => 'Киево-Святошинский р-н, с.Крюковщина, ул.Балукова, 14;', 156 "new_address_sixth" => 'Киево-Святошинский р-н, с.Крюковщина, ул.Балукова, 14;',
157 "new_address_seventh" => 'ул. Архитектора Вербицкого, 22/1, возле магазина "Велика кишеня";', 157 "new_address_seventh" => 'ул. Архитектора Вербицкого, 22/1, возле магазина "Велика кишеня";',
@@ -387,6 +387,10 @@ return array( @@ -387,6 +387,10 @@ return array(
387 "faq_j_text1" => "В каждой карточке товара указаны все варианты фасовки этой позиции, которые существуют. Профессионалам стоит обратить внимание на большие фасовки. Для того, чтобы узнать наличие и цены на профессиональные упаковки <span>в блоке «Фасовка»</span> необходимо выбрать ту фасовку, которая я Вас интересует (рис. 16). Если она доступна к заказу, то <span>в графе «Наличие»</span> зеленым цветом будет отображаться «Есть в наличии». Но, если товар отсутствует в данный момент, то в графе «Наличие» будет отображаться фраза «Отсутствует» (рис.16,17). При интересе к конкретному товару, которого сейчас нет в наличии, Вы можете связаться с нашими менеджерами по номерам телефона, указанным на сайте, для уточнения сроков ближайших поступлений и заблаговременно зарезервировать данный товар. Когда товар появится в наличии, наши менеджеры свяжутся с Вами для оформления заказа.", 387 "faq_j_text1" => "В каждой карточке товара указаны все варианты фасовки этой позиции, которые существуют. Профессионалам стоит обратить внимание на большие фасовки. Для того, чтобы узнать наличие и цены на профессиональные упаковки <span>в блоке «Фасовка»</span> необходимо выбрать ту фасовку, которая я Вас интересует (рис. 16). Если она доступна к заказу, то <span>в графе «Наличие»</span> зеленым цветом будет отображаться «Есть в наличии». Но, если товар отсутствует в данный момент, то в графе «Наличие» будет отображаться фраза «Отсутствует» (рис.16,17). При интересе к конкретному товару, которого сейчас нет в наличии, Вы можете связаться с нашими менеджерами по номерам телефона, указанным на сайте, для уточнения сроков ближайших поступлений и заблаговременно зарезервировать данный товар. Когда товар появится в наличии, наши менеджеры свяжутся с Вами для оформления заказа.",
388 "lang_name" => "rus", 388 "lang_name" => "rus",
389 "saldo_period" => "за период", 389 "saldo_period" => "за период",
  390 + "error_promo_code_is_empty" => "Промокод не указан",
  391 + "error_promo_code_empty_user" => "Промокод требует регистрации",
  392 + "error_promo_code_empty_email" => "Промокод требует указанный Email в карточке пользователя",
  393 + "error_promo_code_already_used" => "Данный промокод уже использовался этим пользователем"
390 "open_video_list" => "Раскрыть список", 394 "open_video_list" => "Раскрыть список",
391 "close_video_list" => "Закрыть список", 395 "close_video_list" => "Закрыть список",
392 ); 396 );
393 \ No newline at end of file 397 \ No newline at end of file
src/app/frontend/messages/ua.php
@@ -163,7 +163,7 @@ return array( @@ -163,7 +163,7 @@ return array(
163 "street_two" =>"ст.м. Лісова, пр-т Броварський, Торговий павільон \"Професійне насіння\" №25;", 163 "street_two" =>"ст.м. Лісова, пр-т Броварський, Торговий павільон \"Професійне насіння\" №25;",
164 "address_two" => "вул. Велика Кільцева 110-А, оптово-роздрібний ринок \"Столичний\", павільйон \"Риба та м'ясо\";", 164 "address_two" => "вул. Велика Кільцева 110-А, оптово-роздрібний ринок \"Столичний\", павільйон \"Риба та м'ясо\";",
165 "address_three" => "ст.м. Іподром, пр-т Академіка Глушкова №6, магазин \"Професійне насіння\" навпроти Південного автовокзалу;", 165 "address_three" => "ст.м. Іподром, пр-т Академіка Глушкова №6, магазин \"Професійне насіння\" навпроти Південного автовокзалу;",
166 - "address_four" => "вул. Харьківське шосе 166-В, біля магазину \"Сільпо\"", 166 + "address_four" => "вул. Харьківське шосе 16, біля магазину \"Сільпо\"",
167 "address_five" => "пр-т Оболонський, 43, ст.м. Героїв Дніпра;", 167 "address_five" => "пр-т Оболонський, 43, ст.м. Героїв Дніпра;",
168 "address_six"=>"Києво-Святошинський р-н, с.Крюківщина, вул.Балукова, 14;", 168 "address_six"=>"Києво-Святошинський р-н, с.Крюківщина, вул.Балукова, 14;",
169 "address_seven"=>"вул. Архітектора Вербицького 22/1", 169 "address_seven"=>"вул. Архітектора Вербицького 22/1",
@@ -172,7 +172,7 @@ return array( @@ -172,7 +172,7 @@ return array(
172 "new_address_first" => 'ст.м. Лісова, пр-т Броварський, в сторону м. Бровари;', 172 "new_address_first" => 'ст.м. Лісова, пр-т Броварський, в сторону м. Бровари;',
173 "new_address_second" => 'вул. Велика Кільцева, 110-А, оптово-роздрібний ринок "Столичний", павільйон "Риба та м\'ясо";', 173 "new_address_second" => 'вул. Велика Кільцева, 110-А, оптово-роздрібний ринок "Столичний", павільйон "Риба та м\'ясо";',
174 "new_address_third" => 'ст.м. Іподром, пр-т Академіка Глушкова №6, навпроти Південного автовокзалу;', 174 "new_address_third" => 'ст.м. Іподром, пр-т Академіка Глушкова №6, навпроти Південного автовокзалу;',
175 - "new_address_fourth" => 'вул. Харківське шоссе, 166-В, біля магазину "Сільпо";', 175 + "new_address_fourth" => 'вул. Харківське шоссе, 16, біля магазину "Сільпо";',
176 "new_address_fifth" => 'пр-т Оболонський 43, ст.м. Героїв Дніпра;', 176 "new_address_fifth" => 'пр-т Оболонський 43, ст.м. Героїв Дніпра;',
177 "new_address_sixth" => 'Києво-Святошинський р-н, с.Крюківщина, вул.Балукова, 14;', 177 "new_address_sixth" => 'Києво-Святошинський р-н, с.Крюківщина, вул.Балукова, 14;',
178 "new_address_seventh" => 'вул. Архітектора Вербицького, 22/1, біля магазину "Велика кишеня";', 178 "new_address_seventh" => 'вул. Архітектора Вербицького, 22/1, біля магазину "Велика кишеня";',
@@ -419,4 +419,8 @@ return array( @@ -419,4 +419,8 @@ return array(
419 "saldo_period" => "за період", 419 "saldo_period" => "за період",
420 "open_video_list" => "Розкрити список", 420 "open_video_list" => "Розкрити список",
421 "close_video_list" => "Закрити список", 421 "close_video_list" => "Закрити список",
  422 + "error_promo_code_is_empty" => "Промокод не вказаний",
  423 + "error_promo_code_empty_user" => "Промокод потребує реєстрації",
  424 + "error_promo_code_empty_email" => "Промокод потребує вказаний Email в картці користувача",
  425 + "error_promo_code_already_used" => "Даний промокод вже використовувався цим користувачем"
422 ); 426 );
423 \ No newline at end of file 427 \ No newline at end of file
src/app/frontend/views/menu/contacts.php
@@ -251,14 +251,14 @@ @@ -251,14 +251,14 @@
251 </tr--> 251 </tr-->
252 <tr> 252 <tr>
253 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 253 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
254 - <td><?= $t->_("new_address_second") ?></td> 254 + <td><a href="https://www.google.com/maps?cid=10560965128246975743&hl=ru" title="<?= $t->_("new_address_second") ?>"><?= $t->_("new_address_second") ?></a></td>
255 <td>8.30-17.30 (<?= $t->_("vt_nd") ?>)</td> 255 <td>8.30-17.30 (<?= $t->_("vt_nd") ?>)</td>
256 <td class="contacts_list_phone">050-313-22-00</td> 256 <td class="contacts_list_phone">050-313-22-00</td>
257 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%B2%D1%83%D0%BB.+%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%B0+%D0%9E%D0%BA%D1%80%D1%83%D0%B6%D0%BD%D0%B0,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.4092713,30.3904529,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4cbdcd3b45185:0x481b85b82221ba1a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>--> 257 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%B2%D1%83%D0%BB.+%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%B0+%D0%9E%D0%BA%D1%80%D1%83%D0%B6%D0%BD%D0%B0,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.4092713,30.3904529,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4cbdcd3b45185:0x481b85b82221ba1a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>-->
258 </tr> 258 </tr>
259 <tr> 259 <tr>
260 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 260 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
261 - <td><?= $t->_("new_address_third") ?></td> 261 + <td><a href="https://www.google.com/maps?cid=5949473995652042489&hl=ru" title="<?= $t->_("new_address_third") ?>"><?= $t->_("new_address_third") ?></a></td>
262 <td>9.00-19.00 (<?= $t->_("pn_sb") ?>)</td> 262 <td>9.00-19.00 (<?= $t->_("pn_sb") ?>)</td>
263 <td class="contacts_list_phone">050-413-61-68</td> 263 <td class="contacts_list_phone">050-413-61-68</td>
264 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%BF%D1%80%D0%BE%D1%81%D0%BF.+%D0%90%D0%BA%D0%B0%D0%B4%D0%B5%D0%BC%D1%96%D0%BA%D0%B0+%D0%93%D0%BB%D1%83%D1%88%D0%BA%D0%BE%D0%B2%D0%B0,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.371692,30.4609831,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c850f75e048f:0xee142a65f4bd318a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>--> 264 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%BF%D1%80%D0%BE%D1%81%D0%BF.+%D0%90%D0%BA%D0%B0%D0%B4%D0%B5%D0%BC%D1%96%D0%BA%D0%B0+%D0%93%D0%BB%D1%83%D1%88%D0%BA%D0%BE%D0%B2%D0%B0,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.371692,30.4609831,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c850f75e048f:0xee142a65f4bd318a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>-->
@@ -270,34 +270,34 @@ @@ -270,34 +270,34 @@
270 </tr--> 270 </tr-->
271 <tr> 271 <tr>
272 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 272 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
273 - <td><?= $t->_("new_address_sixth") ?></td> 273 + <td><a href="https://www.google.com/maps?cid=7171470467069443373&hl=ru" title="<?= $t->_("new_address_sixth") ?>"><?= $t->_("new_address_sixth") ?></a></td>
274 <td>8.30-17.00 (<?= $t->_("pn_sb") ?>)</td> 274 <td>8.30-17.00 (<?= $t->_("pn_sb") ?>)</td>
275 <td class="contacts_list_phone">050-476-16-55</td> 275 <td class="contacts_list_phone">050-476-16-55</td>
276 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>--> 276 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>-->
277 </tr> 277 </tr>
278 <tr> 278 <tr>
279 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 279 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
280 - <td><?= $t->_("new_address_first") ?></td> 280 + <td><a href="https://www.google.com/maps?cid=18229979471982705936&hl=ru" title="<?= $t->_("new_address_first") ?>"><?= $t->_("new_address_first") ?></a></td>
281 <td noWrap>9.00-19.00 (<?= $t->_("pn_sb") ?>)</td> 281 <td noWrap>9.00-19.00 (<?= $t->_("pn_sb") ?>)</td>
282 <td class="contacts_list_phone">050-442-63-53</td> 282 <td class="contacts_list_phone">050-442-63-53</td>
283 </tr> 283 </tr>
284 <tr> 284 <tr>
285 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 285 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
286 - <td><?= $t->_("new_address_fourth") ?></td> 286 + <td><a href="https://www.google.com/maps?cid=18042029842893234019&hl=ru" title="<?= $t->_("new_address_fourth") ?>"><?= $t->_("new_address_fourth") ?></a></td>
287 <td>9.00-19.00 (<?= $t->_("pn_pt") ?>), 9.00-18.00 (<?= $t->_("sb_vs") ?>)</td> 287 <td>9.00-19.00 (<?= $t->_("pn_pt") ?>), 9.00-18.00 (<?= $t->_("sb_vs") ?>)</td>
288 <td class="contacts_list_phone">050-410-38-92</td> 288 <td class="contacts_list_phone">050-410-38-92</td>
289 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>--> 289 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>-->
290 </tr> 290 </tr>
291 <tr> 291 <tr>
292 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 292 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
293 - <td><?= $t->_("new_address_eighth") ?></td> 293 + <td><a href="https://www.google.com/maps?cid=9290546046647461249&hl=ru" title="<?= $t->_("new_address_eighth") ?>"><?= $t->_("new_address_eighth") ?></a></td>
294 <td>9.00-19.00 (<?= $t->_("pn_sb") ?>)</td> 294 <td>9.00-19.00 (<?= $t->_("pn_sb") ?>)</td>
295 <td class="contacts_list_phone">050-442-62-31</td> 295 <td class="contacts_list_phone">050-442-62-31</td>
296 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>--> 296 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>-->
297 </tr> 297 </tr>
298 <tr> 298 <tr>
299 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td> 299 <td class="contacts_list_phone"><?= $t->_("kiev") ?></td>
300 - <td><?= $t->_("new_address_ten") ?></td> 300 + <td><a href="https://www.google.com/maps?cid=17095950403227136610&hl=ru" title="<?= $t->_("new_address_ten") ?>"><?= $t->_("new_address_ten") ?></a></td>
301 <td>8.00-19.00 (<?= $t->_("without_day_off") ?>)</td> 301 <td>8.00-19.00 (<?= $t->_("without_day_off") ?>)</td>
302 <td class="contacts_list_phone">050-312-68-43</td> 302 <td class="contacts_list_phone">050-312-68-43</td>
303 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>--> 303 <!--<td class="contacts_list_phone"><a href="https://www.google.com.ua/maps/place/%D0%A5%D0%B0%D1%80%D0%BA%D1%96%D0%B2%D1%81%D1%8C%D0%BA%D0%B5+%D1%88.,+166,+%D0%9A%D0%B8%D1%97%D0%B2,+%D0%BC%D1%96%D1%81%D1%82%D0%BE+%D0%9A%D0%B8%D1%97%D0%B2/@50.414657,30.660084,17z/data=!3m1!4b1!4m2!3m1!1s0x40d4c4e339783c01:0x9de857a6571ac29a?hl=ru" title="<?= $t->_("rout_map") ?>" target="_blank" rel="no-follow"><?= $t->_("rout_map") ?></a></td>-->
src/app/frontend/views/menu/order.php
@@ -589,10 +589,16 @@ @@ -589,10 +589,16 @@
589 promo_code: $('#promo_code').val() 589 promo_code: $('#promo_code').val()
590 }, 590 },
591 success: function (cart) { 591 success: function (cart) {
592 - renderCart(cart);  
593 - $('#total_price_basket').text(cart['total_sum']);  
594 - $alert.addClass('alert-success').removeClass('alert-danger');  
595 - $alert.find('strong').text(successMessage); 592 + if(cart.status == 'success'){
  593 + renderCart(cart.cart);
  594 + $('#total_price_basket').text(cart.cart['total_sum']);
  595 + $alert.addClass('alert-success').removeClass('alert-danger');
  596 + $alert.find('strong').text(cart.successMessage);
  597 + } else {
  598 + $alert.addClass('alert-danger').removeClass('alert-success');
  599 + $alert.find('strong').text(cart.errorMessage);
  600 + }
  601 +
596 }, 602 },
597 error: function (error) { 603 error: function (error) {
598 $alert.addClass('alert-danger').removeClass('alert-success'); 604 $alert.addClass('alert-danger').removeClass('alert-success');
src/app/frontend/views/page/item.php
@@ -318,15 +318,15 @@ @@ -318,15 +318,15 @@
318 <div class="inner"> 318 <div class="inner">
319 <div class="tabs clearfix"> 319 <div class="tabs clearfix">
320 <ul class="change_similar_items"> 320 <ul class="change_similar_items">
321 - <li class="float active_tab first_tab">  
322 - <?= '<a href="#" title="'.$t->_("popular_items").'" data-change_similar_items="popular" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("popular_items").'</a>' ?>  
323 - </li> 321 + <li class="float active_tab first_tab">
  322 + <?= '<a href="#" title="'.$t->_("related_items").'" data-change_similar_items="buy_with" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("related_items").'</a>' ?>
  323 + </li>
324 <li class="float not_active"> 324 <li class="float not_active">
325 <?= '<a href="#" title="'.$t->_("similar_items").'" data-change_similar_items="same" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("similar_items").'</a>' ?> 325 <?= '<a href="#" title="'.$t->_("similar_items").'" data-change_similar_items="same" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("similar_items").'</a>' ?>
326 </li> 326 </li>
327 <li class="float not_active"> 327 <li class="float not_active">
328 - <?= '<a href="#" title="'.$t->_("related_items").'" data-change_similar_items="buy_with" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("related_items").'</a>' ?>  
329 - </li> 328 + <?= '<a href="#" title="'.$t->_("popular_items").'" data-change_similar_items="popular" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("popular_items").'</a>' ?>
  329 + </li>
330 <li class="float last_tab not_active"> 330 <li class="float last_tab not_active">
331 <?= '<a href="#" title="'.$t->_("watched").'" data-change_similar_items="viewed" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("watched").'</a>' ?> 331 <?= '<a href="#" title="'.$t->_("watched").'" data-change_similar_items="viewed" data-catalog_id="'.$catalog_id.'" data-group_id="'.$item['group_id'].'">'.$t->_("watched").'</a>' ?>
332 </li> 332 </li>
src/config/global.php
@@ -39,7 +39,7 @@ return @@ -39,7 +39,7 @@ return
39 '1' => 39 '1' =>
40 [ 40 [
41 '1old' => 'Я заберу товар в пункті видачі / самовивіз (м.Київ, вул.Віскозна 17/а)', 41 '1old' => 'Я заберу товар в пункті видачі / самовивіз (м.Київ, вул.Віскозна 17/а)',
42 - '2' => 'Доставка по м.Києву кур\'єром (вартість доставки 40 грн)', 42 + '2' => 'Доставка по м.Києву кур\'єром (вартість доставки 60 грн)',
43 '3old' => 'Достака по Україні службою "Нова Пошта" - самовивіз зі складу / вартість доставки від 20 грн (за тарифами поштової служби)', 43 '3old' => 'Достака по Україні службою "Нова Пошта" - самовивіз зі складу / вартість доставки від 20 грн (за тарифами поштової служби)',
44 '4' => 'Достака по Україні службою "Нова Пошта" - адресна доставка курє\'ром / вартість доставки від 20 грн (за тарифами поштової служби)', 44 '4' => 'Достака по Україні службою "Нова Пошта" - адресна доставка курє\'ром / вартість доставки від 20 грн (за тарифами поштової служби)',
45 '5' => 'Достака по Україні службою перевозки (Автолюкс, Укрпошта) / вартість доставки від 12 грн (за тарифами поштової служби)', 45 '5' => 'Достака по Україні службою перевозки (Автолюкс, Укрпошта) / вартість доставки від 12 грн (за тарифами поштової служби)',
@@ -48,10 +48,10 @@ return @@ -48,10 +48,10 @@ return
48 '10001'=>'ст.м. Лісова, пр-т Броварський, Торговий павільон "Професійне насіння" №25;', 48 '10001'=>'ст.м. Лісова, пр-т Броварський, Торговий павільон "Професійне насіння" №25;',
49 '10002'=>'вул. Велика Кільцева 110-А, оптово-роздрібний ринок "Столичний", павільйон "Риба та м\'ясо";', 49 '10002'=>'вул. Велика Кільцева 110-А, оптово-роздрібний ринок "Столичний", павільйон "Риба та м\'ясо";',
50 '10003'=>'ст.м. Іподром, пр-т Академіка Глушкова, магазин "Професійне насіння" навпроти Південного автовокзалу;', 50 '10003'=>'ст.м. Іподром, пр-т Академіка Глушкова, магазин "Професійне насіння" навпроти Південного автовокзалу;',
51 - '10004'=>'вул. Харьківське шосе 166-В, біля магазину "Сільпо";', 51 + '10004'=>'вул. Харьківське шосе 16, біля магазину "Сільпо";',
52 '10005'=>'ст.м. Героїв Дніпра, пр-т Оболонський 43;', 52 '10005'=>'ст.м. Героїв Дніпра, пр-т Оболонський 43;',
53 '7' => "<b>Адресна доставка кур’єром по м.Києву</b><br />", 53 '7' => "<b>Адресна доставка кур’єром по м.Києву</b><br />",
54 - '77' => "Вартість доставки замовленнь складає 40 грн. У разі замовлення на суму більшу за 500 грн - доставка безкоштовна. Кур'єр попередньо узгодить з Вами час доставки телефоном.", 54 + '77' => "Вартість доставки замовленнь складає 60 грн. У разі замовлення на суму більшу за 500 грн - доставка безкоштовна. Кур'єр попередньо узгодить з Вами час доставки телефоном.",
55 '3' => "<b>Доставка службою &laquo;Нова Пошта&raquo;, самовивіз зі складу</b><br />", 55 '3' => "<b>Доставка службою &laquo;Нова Пошта&raquo;, самовивіз зі складу</b><br />",
56 '33' => "Вартість доставки від 21 грн (за тарифами поштової служби). У разі замовлення на суму більшу за 500 грн - доставка до складу безкоштовна. Термін доставки – 1-2 дні.", 56 '33' => "Вартість доставки від 21 грн (за тарифами поштової служби). У разі замовлення на суму більшу за 500 грн - доставка до складу безкоштовна. Термін доставки – 1-2 дні.",
57 '9' => "<b>Доставка службою &laquo;Нова Пошта&raquo;, адресна доставка кур&rsquo;єром</b><br />", 57 '9' => "<b>Доставка службою &laquo;Нова Пошта&raquo;, адресна доставка кур&rsquo;єром</b><br />",
@@ -67,7 +67,7 @@ return @@ -67,7 +67,7 @@ return
67 '2' => 67 '2' =>
68 [ 68 [
69 '1old' => 'Я заберу товар в пункте выдачи / самовывоз (г.Киев, ул.Вискозная 17 / а)', 69 '1old' => 'Я заберу товар в пункте выдачи / самовывоз (г.Киев, ул.Вискозная 17 / а)',
70 - '2' => 'Доставка по Киеву кур \' премьером (стоимость доставки 40 грн) ', 70 + '2' => 'Доставка по Киеву кур \' премьером (стоимость доставки 60 грн) ',
71 '3old' => 'Достака по Украине службой "Новая Почта" - самовывоз со склада / стоимость доставки от 20 грн (по тарифам почтовой службы)', 71 '3old' => 'Достака по Украине службой "Новая Почта" - самовывоз со склада / стоимость доставки от 20 грн (по тарифам почтовой службы)',
72 '4' => 'Достака по Украине службой "Новая Почта" - адресная доставка Куреи \' ром / стоимость доставки от 20 грн (по тарифам почтовой службы)', 72 '4' => 'Достака по Украине службой "Новая Почта" - адресная доставка Куреи \' ром / стоимость доставки от 20 грн (по тарифам почтовой службы)',
73 '5' => 'Достака по Украине службой перевозки (Автолюкс, Укрпочта) / стоимость доставки от 12 грн (по тарифам почтовой службы)', 73 '5' => 'Достака по Украине службой перевозки (Автолюкс, Укрпочта) / стоимость доставки от 12 грн (по тарифам почтовой службы)',
@@ -76,10 +76,10 @@ return @@ -76,10 +76,10 @@ return
76 '10001'=>'ст.м. Лесная, пр-т Броварской, Торговий павильйон "Професійне насіння" №25;', 76 '10001'=>'ст.м. Лесная, пр-т Броварской, Торговий павильйон "Професійне насіння" №25;',
77 '10002'=>'ул. Большая Окружная 110-А, оптово-розничный рынок "Столичный", павильон "Рыба и мясо";', 77 '10002'=>'ул. Большая Окружная 110-А, оптово-розничный рынок "Столичный", павильон "Рыба и мясо";',
78 '10003'=>'ст.м. Іподром, пр-т Академика Глушкова №6, магазин "Професійне насіння" напротив Южного автовокзала;', 78 '10003'=>'ст.м. Іподром, пр-т Академика Глушкова №6, магазин "Професійне насіння" напротив Южного автовокзала;',
79 - '10004'=>'ул. Харьковское шоссе 166-В, магазин "Професійне насіння" возле магазина "Сільпо";', 79 + '10004'=>'ул. Харьковское шоссе 16, магазин "Професійне насіння" возле магазина "Сільпо";',
80 '10005'=>'ст.м. Героев Днепра, пр-т Оболонський 43, магазин "Професійне насіння";', 80 '10005'=>'ст.м. Героев Днепра, пр-т Оболонський 43, магазин "Професійне насіння";',
81 '7' => '<b>Адресная доставка курьером по г.Киеву</b> <br />', 81 '7' => '<b>Адресная доставка курьером по г.Киеву</b> <br />',
82 - "77" =>"Стоимость доставки заказа составляет 40 грн. В случае заказа на сумму большую 500 грн - доставка бесплатная. Курьер предварительно согласует с Вами время доставки по телефону.", 82 + "77" =>"Стоимость доставки заказа составляет 60 грн. В случае заказа на сумму большую 500 грн - доставка бесплатная. Курьер предварительно согласует с Вами время доставки по телефону.",
83 '3' => "<b>Доставка службой&nbsp;&laquo;Новая Почта&raquo;, самовывоз&nbsp;со&nbsp;склада</b> <br />", 83 '3' => "<b>Доставка службой&nbsp;&laquo;Новая Почта&raquo;, самовывоз&nbsp;со&nbsp;склада</b> <br />",
84 "33" => "Стоимость доставки от 21 грн (по тарифам почтовой службы). В случае заказа на сумму большую 500 грн - доставка до склада безплатная. Срок доставки – 1-2 дня.", 84 "33" => "Стоимость доставки от 21 грн (по тарифам почтовой службы). В случае заказа на сумму большую 500 грн - доставка до склада безплатная. Срок доставки – 1-2 дня.",
85 "9" => "<b>Доставка службой&nbsp;&laquo;Новая Почта&raquo;, адресная доставка курьером</b> <br />", 85 "9" => "<b>Доставка службой&nbsp;&laquo;Новая Почта&raquo;, адресная доставка курьером</b> <br />",
src/lib/models.php
@@ -50,6 +50,7 @@ namespace @@ -50,6 +50,7 @@ namespace
50 protected $_reviews = false; 50 protected $_reviews = false;
51 protected $_modal = false; 51 protected $_modal = false;
52 protected $_manager_mail = false; 52 protected $_manager_mail = false;
  53 + protected $_promo_to_user = false;
53 54
54 55
55 56
@@ -583,6 +584,17 @@ namespace @@ -583,6 +584,17 @@ namespace
583 584
584 return $this->_manager_mail; 585 return $this->_manager_mail;
585 } 586 }
  587 +
  588 + public function getPromoToUser()
  589 + {
  590 + if( empty($this->_promo_to_user) )
  591 + {
  592 + $this->_promo_to_user = new \models\promo_to_user();
  593 + $this->_promo_to_user->setDi( $this->getDi() );
  594 + }
  595 +
  596 + return $this->_promo_to_user;
  597 + }
586 } 598 }
587 } 599 }
588 600
src/lib/models/items.php
@@ -3300,6 +3300,36 @@ class items extends \db @@ -3300,6 +3300,36 @@ class items extends \db
3300 ) AS alias, 3300 ) AS alias,
3301 ( 3301 (
3302 SELECT 3302 SELECT
  3303 + count(*)
  3304 + FROM
  3305 + public.items
  3306 + WHERE
  3307 + group_id = public.items_group.group_id
  3308 + AND
  3309 + status = 1
  3310 + ) AS count_available,
  3311 + (
  3312 + SELECT
  3313 + type
  3314 + FROM
  3315 + public.items
  3316 + WHERE
  3317 + price2 IN
  3318 + (
  3319 + SELECT
  3320 + MIN(price2)
  3321 + FROM
  3322 + public.items
  3323 + WHERE
  3324 + group_id = public.items_group.group_id
  3325 + )
  3326 + AND
  3327 + group_id = public.items_group.group_id
  3328 + LIMIT
  3329 + 1
  3330 + ) as type_id,
  3331 + (
  3332 + SELECT
3303 full_alias 3333 full_alias
3304 FROM 3334 FROM
3305 catalog_i18n 3335 catalog_i18n
@@ -3349,6 +3379,7 @@ class items extends \db @@ -3349,6 +3379,7 @@ class items extends \db
3349 ) 3379 )
3350 AND 3380 AND
3351 group_id = public.items_group.group_id 3381 group_id = public.items_group.group_id
  3382 + LIMIT 1
3352 ) as id, 3383 ) as id,
3353 ( 3384 (
3354 SELECT 3385 SELECT
src/lib/models/promo_codes.php
@@ -103,7 +103,9 @@ class promo_codes extends \db @@ -103,7 +103,9 @@ class promo_codes extends \db
103 all_items, 103 all_items,
104 image, 104 image,
105 start_date, 105 start_date,
106 - end_date 106 + end_date,
  107 + single_use
  108 +
107 ) 109 )
108 VALUES 110 VALUES
109 ( 111 (
@@ -116,7 +118,8 @@ class promo_codes extends \db @@ -116,7 +118,8 @@ class promo_codes extends \db
116 :all_items, 118 :all_items,
117 :image, 119 :image,
118 :start_date, 120 :start_date,
119 - :end_date 121 + :end_date,
  122 + :single_use
120 ) 123 )
121 RETURNING id 124 RETURNING id
122 ', 125 ',
@@ -130,7 +133,8 @@ class promo_codes extends \db @@ -130,7 +133,8 @@ class promo_codes extends \db
130 'all_items' => $data['all_items'], 133 'all_items' => $data['all_items'],
131 'image' => $data['image'], 134 'image' => $data['image'],
132 'start_date' => $data['start_date'], 135 'start_date' => $data['start_date'],
133 - 'end_date' => $data['end_date'] 136 + 'end_date' => $data['end_date'],
  137 + 'single_use' => $data['single_use']
134 ], 138 ],
135 -1 139 -1
136 ); 140 );
@@ -154,7 +158,8 @@ class promo_codes extends \db @@ -154,7 +158,8 @@ class promo_codes extends \db
154 all_items = :all_items, 158 all_items = :all_items,
155 image = :image, 159 image = :image,
156 start_date = :start_date, 160 start_date = :start_date,
157 - end_date = :end_date 161 + end_date = :end_date,
  162 + single_use = :single_use
158 WHERE 163 WHERE
159 id = :id 164 id = :id
160 ', 165 ',
@@ -168,6 +173,7 @@ class promo_codes extends \db @@ -168,6 +173,7 @@ class promo_codes extends \db
168 'image' => $data['image'], 173 'image' => $data['image'],
169 'start_date' => $data['start_date'], 174 'start_date' => $data['start_date'],
170 'end_date' => $data['end_date'], 175 'end_date' => $data['end_date'],
  176 + 'single_use' => $data['single_use'],
171 'id' => $id 177 'id' => $id
172 ] 178 ]
173 ); 179 );
src/lib/models/promo_to_user.php 0 → 100644
  1 +<?php
  2 +
  3 +namespace models;
  4 +
  5 +
  6 +class promo_to_user extends \db
  7 +{
  8 + ///////////////////////////////////for_backend///////////////////////////////////////////
  9 + public function getAllData()
  10 + {
  11 +
  12 + return $this->get(
  13 + '
  14 + SELECT * FROM
  15 + public.promo_to_user
  16 + '
  17 + ,
  18 + [
  19 + ],
  20 + -1
  21 + );
  22 + }
  23 +
  24 +
  25 + public function getOneData($id)
  26 + {
  27 + return $this->get(
  28 + '
  29 + SELECT *
  30 + FROM public.promo_to_user
  31 + WHERE
  32 + id = :id
  33 + ',
  34 + [
  35 + 'id' => $id
  36 + ],
  37 + -1
  38 + );
  39 + }
  40 +
  41 + public function getOneDataByCode($data)
  42 + {
  43 + return $this->get(
  44 + "
  45 + SELECT *
  46 + FROM public.promo_to_user
  47 + WHERE
  48 + code = :code
  49 + AND
  50 + email = :email
  51 + ",
  52 + [
  53 + 'code' => $data['code'],
  54 + 'email' => $data['email'],
  55 + ],
  56 + -1
  57 + );
  58 + }
  59 +
  60 + public function getPromoByCode($code) {
  61 + return $this->get(
  62 + '
  63 + SELECT *
  64 + FROM public.promo_to_user
  65 + WHERE
  66 + code = :code',
  67 + [
  68 + 'code' => $code
  69 + ],
  70 + -1
  71 + );
  72 + }
  73 +
  74 + public function deleteData($id)
  75 + {
  76 + return $this->exec(
  77 + ' DELETE
  78 + FROM
  79 + public.promo_to_user
  80 + WHERE
  81 + id = :id
  82 + ',
  83 + [
  84 + 'id' => $id
  85 + ]
  86 + );
  87 + }
  88 +
  89 + public function addData($data)
  90 + {
  91 +
  92 + return $this->get(
  93 + '
  94 + INSERT INTO
  95 + public.promo_to_user
  96 + (
  97 + code,
  98 + email
  99 +
  100 + )
  101 + VALUES
  102 + (
  103 + :code,
  104 + :email
  105 +
  106 + )
  107 + RETURNING id
  108 + ',
  109 + [
  110 + 'code' => $data['code'],
  111 + 'email' => $data['email'],
  112 +
  113 + ],
  114 + -1
  115 + );
  116 +
  117 +
  118 + }
  119 +
  120 + public function updateData($data, $id)
  121 + {
  122 +
  123 + return $this->exec(
  124 + '
  125 + UPDATE
  126 + public.promo_to_user
  127 + SET
  128 + code = :code,
  129 + email = :email
  130 +
  131 + WHERE
  132 + id = :id
  133 + ',
  134 + [
  135 + 'code' => $data['code'],
  136 + 'email' => $data['email'],
  137 + 'id' => $id
  138 + ]
  139 + );
  140 + }
  141 +
  142 + public function countData()
  143 + {
  144 + return $this->get(
  145 + '
  146 + SELECT
  147 + COUNT(id) AS total
  148 + FROM
  149 + public.promo_to_user
  150 + ',
  151 + [
  152 +
  153 + ],
  154 + -1
  155 + );
  156 + }
  157 +}
0 \ No newline at end of file 158 \ No newline at end of file
src/lib/models/slider.php
@@ -15,7 +15,7 @@ class slider extends \db @@ -15,7 +15,7 @@ class slider extends \db
15 public.slider 15 public.slider
16 WHERE lang_id = :lang_id 16 WHERE lang_id = :lang_id
17 ORDER BY 17 ORDER BY
18 - weight ASC 18 + id ASC
19 LIMIT 19 LIMIT
20 '.\config::get( 'limits/admin_orders' ).' 20 '.\config::get( 'limits/admin_orders' ).'
21 OFFSET 21 OFFSET
src/lib/novaposhta.php
@@ -21,7 +21,7 @@ namespace @@ -21,7 +21,7 @@ namespace
21 protected $_sender_warehouse_ref = '1'; 21 protected $_sender_warehouse_ref = '1';
22 protected $_out_name = 'Петров Иван Иваныч'; 22 protected $_out_name = 'Петров Иван Иваныч';
23 protected $_out_phone = '0671234567'; 23 protected $_out_phone = '0671234567';
24 - protected $_api_key = 'f77cc4bcaa985eb481ed289b89e6fb9e'; 24 + protected $_api_key = '46eb7be54b344abfe21feab2ee17071c';
25 protected $_description = 'Насіння'; 25 protected $_description = 'Насіння';
26 protected $_pack = 'Пакет'; 26 protected $_pack = 'Пакет';
27 protected $_rcpt_name = 'Приватна особа'; 27 protected $_rcpt_name = 'Приватна особа';
@@ -35,7 +35,7 @@ namespace @@ -35,7 +35,7 @@ namespace
35 public function send($xml) 35 public function send($xml)
36 { 36 {
37 $ch = curl_init(); 37 $ch = curl_init();
38 - curl_setopt($ch, CURLOPT_URL, 'http://orders.novaposhta.ua/xml.php'); 38 + curl_setopt($ch, CURLOPT_URL, 'https://api.novaposhta.ua/v2.0/xml/');
39 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 39 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
40 curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml")); 40 curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type: text/xml"));
41 curl_setopt($ch, CURLOPT_HEADER, 0); 41 curl_setopt($ch, CURLOPT_HEADER, 0);
@@ -230,22 +230,22 @@ namespace @@ -230,22 +230,22 @@ namespace
230 * Запрос на получение списка складов Новой почты для определённого города (или полный список, если город не указан) 230 * Запрос на получение списка складов Новой почты для определённого города (или полный список, если город не указан)
231 $filter — город, по которому нужно отфильтровать список складов Новой почты 231 $filter — город, по которому нужно отфильтровать список складов Новой почты
232 */ 232 */
233 - public function warenhouse($filter=false) 233 + public function warenhouse($filter = false)
234 { 234 {
235 - $xml =  
236 - '<?xml version="1.0" encoding="utf-8"?>  
237 - <file>  
238 - <auth>'.$this->_api_key.'</auth>  
239 - <warenhouse/>';  
240 - if($filter)  
241 - {  
242 - $xml.='<filter>'.$filter.'</filter>';  
243 - }  
244 - $xml.='</file>';  
245 235
246 - $xml = simplexml_load_string($this->send($xml));  
247 236
248 - return($xml->result->whs); 237 + $xml = '<?xml version="1.0" encoding="UTF-8"?>
  238 + <file>
  239 + <apiKey>'.$this->_api_key.'</apiKey>
  240 + <calledMethod>getWarehouses</calledMethod>
  241 + <methodProperties>'.
  242 + ($filter ? "<CityRef>$filter</CityRef>" : "")
  243 + .'</methodProperties>
  244 + <modelName>Address</modelName>
  245 + </file>';
  246 +
  247 + $xml = simplexml_load_string($this->send($xml));
  248 + return($xml->data);
249 } 249 }
250 250
251 ///////////////////////////////////////////////////////////////////////////// 251 /////////////////////////////////////////////////////////////////////////////
@@ -262,9 +262,16 @@ namespace @@ -262,9 +262,16 @@ namespace
262 <city/> 262 <city/>
263 </file>'; 263 </file>';
264 264
265 - $xml = simplexml_load_string( $this->send($xml) ); 265 + $xml = '<?xml version="1.0" encoding="UTF-8"?>
  266 +<file>
  267 + <apiKey>'.$this->_api_key.'</apiKey>
  268 + <calledMethod>getCities</calledMethod>
  269 + <methodProperties/>
  270 + <modelName>Address</modelName>
  271 +</file>';
266 272
267 - return($xml->result->cities); 273 + $xml = simplexml_load_string( $this->send($xml) );
  274 + return($xml->data);
268 } 275 }
269 276
270 ///////////////////////////////////////////////////////////////////////////// 277 /////////////////////////////////////////////////////////////////////////////
@@ -302,6 +309,7 @@ namespace @@ -302,6 +309,7 @@ namespace
302 return($xml); 309 return($xml);
303 } 310 }
304 311
  312 +
305 ///////////////////////////////////////////////////////////////////////////// 313 /////////////////////////////////////////////////////////////////////////////
306 } 314 }
307 315
@@ -3122,9 +3122,9 @@ ul.prof_rubrics li a.active{color:#ffffff;background:#4fa22c;border-radius:5px;t @@ -3122,9 +3122,9 @@ ul.prof_rubrics li a.active{color:#ffffff;background:#4fa22c;border-radius:5px;t
3122 float: left; 3122 float: left;
3123 } 3123 }
3124 3124
3125 -.zasobi_zakhistu_logo {  
3126 - background: url('/images/background_logo_all_01.png') repeat-y 50% -20px;  
3127 -} 3125 +/*.zasobi_zakhistu_logo {*/
  3126 + /*background: url('/images/background_logo_all_01.png') repeat-y 50% -20px;*/
  3127 +/*}*/
3128 3128
3129 /****************email-settings**********************/ 3129 /****************email-settings**********************/
3130 .email-settings_title { 3130 .email-settings_title {
@@ -133,7 +133,7 @@ function getNovaPoshtaCity() @@ -133,7 +133,7 @@ function getNovaPoshtaCity()
133 minLength: 2, 133 minLength: 2,
134 select: function( event, ui ) 134 select: function( event, ui )
135 { 135 {
136 - $( "#order_city_novaposhta" ).val( ui.item.value ); 136 + $( "#order_city_novaposhta" ).val( ui.item.label );
137 $( "#order_city_ref" ).val( ui.item.ref ); 137 $( "#order_city_ref" ).val( ui.item.ref );
138 $('#loading_city').addClass('display_none'); 138 $('#loading_city').addClass('display_none');
139 139
@@ -637,7 +637,7 @@ $(document).ready(function() @@ -637,7 +637,7 @@ $(document).ready(function()
637 637
638 var contentString4 = 638 var contentString4 =
639 '<div id="content_map">'+ 639 '<div id="content_map">'+
640 - '<p>м. Київ, вул. Харьківське шосе 166-В, біля магазину "Сільпо"</p>'+ 640 + '<p>м. Київ, вул. Харьківське шосе 16, біля магазину "Сільпо"</p>'+
641 '<p>9:00 - 19:00</p>'+ 641 '<p>9:00 - 19:00</p>'+
642 '<p>Пн-Пт</p>'+ 642 '<p>Пн-Пт</p>'+
643 '<p>9:00 - 18:00</p>'+ 643 '<p>9:00 - 18:00</p>'+
@@ -126,7 +126,7 @@ function getNovaPoshtaCity() @@ -126,7 +126,7 @@ function getNovaPoshtaCity()
126 minLength: 2, 126 minLength: 2,
127 select: function( event, ui ) 127 select: function( event, ui )
128 { 128 {
129 - $( "#order_city_novaposhta" ).val( ui.item.value ); 129 + $( "#order_city_novaposhta" ).val( ui.item.label );
130 $( "#order_city_ref" ).val( ui.item.ref ); 130 $( "#order_city_ref" ).val( ui.item.ref );
131 $('#loading_city').addClass('display_none'); 131 $('#loading_city').addClass('display_none');
132 132
@@ -681,7 +681,7 @@ $(document).ready(function() @@ -681,7 +681,7 @@ $(document).ready(function()
681 681
682 var contentString4 = 682 var contentString4 =
683 '<div id="content_map">'+ 683 '<div id="content_map">'+
684 - '<p>м. Київ, вул. Харьківське шосе 166-В, біля магазину "Сільпо"</p>'+ 684 + '<p>м. Київ, вул. Харьківське шосе 16, біля магазину "Сільпо"</p>'+
685 '<p>9:00 - 19:00</p>'+ 685 '<p>9:00 - 19:00</p>'+
686 '<p>Пн-Пт</p>'+ 686 '<p>Пн-Пт</p>'+
687 '<p>9:00 - 18:00</p>'+ 687 '<p>9:00 - 18:00</p>'+