Commit c73b18694f22591428f041c5437bb37facada6d1

Authored by Administrator
1 parent 6b4f9034

add new promocode logic

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
@@ -211,6 +211,25 @@ class MenuController extends \controllers\ControllerBase @@ -211,6 +211,25 @@ class MenuController extends \controllers\ControllerBase
211 211
212 if( !empty( $order['proposal_number'] ) ) 212 if( !empty( $order['proposal_number'] ) )
213 { 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 +
214 $this->sendmail->addCustomer( 2, $order ); 233 $this->sendmail->addCustomer( 2, $order );
215 234
216 $this->session->set( 'in_cart', []); 235 $this->session->set( 'in_cart', []);
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, возле магазина "Велика кишеня";',
@@ -388,4 +388,8 @@ return array( @@ -388,4 +388,8 @@ return array(
388 "faq_j_text1" => "В каждой карточке товара указаны все варианты фасовки этой позиции, которые существуют. Профессионалам стоит обратить внимание на большие фасовки. Для того, чтобы узнать наличие и цены на профессиональные упаковки <span>в блоке «Фасовка»</span> необходимо выбрать ту фасовку, которая я Вас интересует (рис. 16). Если она доступна к заказу, то <span>в графе «Наличие»</span> зеленым цветом будет отображаться «Есть в наличии». Но, если товар отсутствует в данный момент, то в графе «Наличие» будет отображаться фраза «Отсутствует» (рис.16,17). При интересе к конкретному товару, которого сейчас нет в наличии, Вы можете связаться с нашими менеджерами по номерам телефона, указанным на сайте, для уточнения сроков ближайших поступлений и заблаговременно зарезервировать данный товар. Когда товар появится в наличии, наши менеджеры свяжутся с Вами для оформления заказа.", 388 "faq_j_text1" => "В каждой карточке товара указаны все варианты фасовки этой позиции, которые существуют. Профессионалам стоит обратить внимание на большие фасовки. Для того, чтобы узнать наличие и цены на профессиональные упаковки <span>в блоке «Фасовка»</span> необходимо выбрать ту фасовку, которая я Вас интересует (рис. 16). Если она доступна к заказу, то <span>в графе «Наличие»</span> зеленым цветом будет отображаться «Есть в наличии». Но, если товар отсутствует в данный момент, то в графе «Наличие» будет отображаться фраза «Отсутствует» (рис.16,17). При интересе к конкретному товару, которого сейчас нет в наличии, Вы можете связаться с нашими менеджерами по номерам телефона, указанным на сайте, для уточнения сроков ближайших поступлений и заблаговременно зарезервировать данный товар. Когда товар появится в наличии, наши менеджеры свяжутся с Вами для оформления заказа.",
389 "lang_name" => "rus", 389 "lang_name" => "rus",
390 "saldo_period" => "за период", 390 "saldo_period" => "за период",
  391 + "error_promo_code_is_empty" => "Промокод не указан",
  392 + "error_promo_code_empty_user" => "Промокод требует регистрации",
  393 + "error_promo_code_empty_email" => "Промокод требует указанный Email в карточке пользователя",
  394 + "error_promo_code_already_used" => "Данный промокод уже использовался этим пользователем"
391 ); 395 );
392 \ No newline at end of file 396 \ 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, біля магазину "Велика кишеня";',
@@ -417,4 +417,8 @@ return array( @@ -417,4 +417,8 @@ return array(
417 "faq_j_text1" => "У кожній картці товару вказані всі варіанти фасування цієї позиції, які існують. Професіоналам варто звернути увагу на великі фасовки. Для того, щоб дізнатися про наявність та ціни на професійні упаковки <span>в блоці «Фасовка»</span> необхідно вибрати ту фасовку, яка Вас цікавить (мал. 16). Якщо вона доступна до замовлення, то <span>в графі «Наявність»</span> зеленим кольором буде відображатися «Є в наявності». Але, якщо товар відсутній в даний момент, то в графі «Наявність» буде відображатися фраза «Відсутній» (мал.16,17). При зацікавленності в конкретному товарі, якого зараз немає в наявності, Ви можете зв'язатися з нашими менеджерами за номерами телефону, вказаним на сайті, для уточнення термінів найближчих надходжень і завчасно зарезервувати даний товар. Коли товар з'явиться в наявності, наші менеджери зв'яжуться з Вами для оформлення замовлення.", 417 "faq_j_text1" => "У кожній картці товару вказані всі варіанти фасування цієї позиції, які існують. Професіоналам варто звернути увагу на великі фасовки. Для того, щоб дізнатися про наявність та ціни на професійні упаковки <span>в блоці «Фасовка»</span> необхідно вибрати ту фасовку, яка Вас цікавить (мал. 16). Якщо вона доступна до замовлення, то <span>в графі «Наявність»</span> зеленим кольором буде відображатися «Є в наявності». Але, якщо товар відсутній в даний момент, то в графі «Наявність» буде відображатися фраза «Відсутній» (мал.16,17). При зацікавленності в конкретному товарі, якого зараз немає в наявності, Ви можете зв'язатися з нашими менеджерами за номерами телефону, вказаним на сайті, для уточнення термінів найближчих надходжень і завчасно зарезервувати даний товар. Коли товар з'явиться в наявності, наші менеджери зв'яжуться з Вами для оформлення замовлення.",
418 "lang_name" => "ukr", 418 "lang_name" => "ukr",
419 "saldo_period" => "за період", 419 "saldo_period" => "за період",
  420 + "error_promo_code_is_empty" => "Промокод не вказаний",
  421 + "error_promo_code_empty_user" => "Промокод потребує реєстрації",
  422 + "error_promo_code_empty_email" => "Промокод потребує вказаний Email в картці користувача",
  423 + "error_promo_code_already_used" => "Даний промокод вже використовувався цим користувачем"
420 ); 424 );
421 \ No newline at end of file 425 \ No newline at end of file
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/config/global.php
@@ -48,7 +48,7 @@ return @@ -48,7 +48,7 @@ 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' => "Вартість доставки замовленнь складає 60 грн. У разі замовлення на суму більшу за 500 грн - доставка безкоштовна. Кур'єр попередньо узгодить з Вами час доставки телефоном.", 54 '77' => "Вартість доставки замовленнь складає 60 грн. У разі замовлення на суму більшу за 500 грн - доставка безкоштовна. Кур'єр попередньо узгодить з Вами час доставки телефоном.",
@@ -76,7 +76,7 @@ return @@ -76,7 +76,7 @@ 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" =>"Стоимость доставки заказа составляет 60 грн. В случае заказа на сумму большую 500 грн - доставка бесплатная. Курьер предварительно согласует с Вами время доставки по телефону.", 82 "77" =>"Стоимость доставки заказа составляет 60 грн. В случае заказа на сумму большую 500 грн - доставка бесплатная. Курьер предварительно согласует с Вами время доставки по телефону.",
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/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
@@ -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 {
@@ -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>'+
@@ -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>'+