static function getBonusStatus($userid)
 {
     $smm = ShopBonus::getBonusOrderSumm($userid);
     $data = array(0 => 'green', 5000 => 'yellow', 10000 => 'red');
     $out = $data[0];
     foreach ($data as $s => $p) {
         if ($s < $smm) {
             $out = $p;
         }
     }
     return $out;
 }
 function setRefId()
 {
     if (!empty($_GET['refid'])) {
         setcookie('Ref_id', $_GET['refid'], time() + 3600 * 24 * 365, '/');
     }
     if (!empty($_GET['promo'])) {
         include_once 'modules/shop/ShopBonus.class.php';
         if ($refid = ShopBonus::getPromoRefId($_GET['promo'])) {
             setcookie('promo', $_GET['promo'], time() + 3600 * 24 * 365, '/');
         }
     }
 }
Example #3
0
if (date('Y-m-d', strtotime($last_start)) == date('Y-m-d')) {
    exit;
}
ini_set('log_errors', 'On');
ini_set('error_log', dirname(__FILE__) . '/php_errors_bonus.log');
include dirname(__FILE__) . "/../../config.php";
include dirname(__FILE__) . "/../../core/function.php";
set_time_limit(1000);
include_once dirname(__FILE__) . "/../../core/lib/SQL.class.php";
include_once dirname(__FILE__) . "/../../modules/shop/ShopBonus.class.php";
$ST = new SQL(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_BASE);
$r = $ST->select("SELECT UPPER(name) AS name,value FROM sc_config ");
while ($r->next()) {
    if ($r->get('value')) {
        $CONFIG[$r->get('name')] = $r->get('value');
    }
}
$q = "SELECT * FROM sc_shop_order WHERE userid>0 AND order_status=3 AND stop_time BETWEEN '" . date('Y-m-d', strtotime('-1 day')) . "' AND '" . date('Y-m-d') . "'";
$rs = $ST->select($q);
while ($rs->next()) {
    $percent = ShopBonus::getBonusPercent($rs->getInt('userid'));
    $bonus = round($rs->getInt('price') / 20) * 20 / 100 * $percent * 10;
    $rs1 = $ST->select("SELECT * FROM sc_users WHERE u_id={$rs->getInt('userid')}");
    if ($rs1->next()) {
        $inc = array('userid' => $rs->getInt('userid'), 'sum' => $bonus, 'balance' => $bonus + $rs1->getInt('bonus'), 'type' => 'bonus', 'description' => 'Начисление бонуса', 'time' => date('Y-m-d H:i:s'));
        $ST->insert('sc_income', $inc);
        $ST->update('sc_users', array('bonus' => $bonus + $rs1->getInt('bonus')), "u_id={$rs->getInt('userid')}");
    }
}
file_put_contents(dirname(__FILE__) . '/bonus_last_start_log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
file_put_contents(dirname(__FILE__) . '/bonus_last_start.txt', date('Y-m-d H:i:s'));
Example #4
0
<div class="block_info">
Ваша ссылка для привлечения рефералов<br>
<?php 
$kod = ShopBonus::genPromo($this->getUserId());
$promo = "http://{$_SERVER['HTTP_HOST']}/?promo=" . $kod;
?>
<strong><?php 
echo $promo;
?>
</strong>
<br>
<div style="padding:10px;border:dotted 1px #f00;margin:10px 0">Промокод: <strong><?php 
echo $kod;
?>
</strong></div>
Поделиться в соц сетях
<script type="text/javascript">(function() {
          if (window.pluso)if (typeof window.pluso.start == "function") return;
          var d = document, s = d.createElement('script'), g = 'getElementsByTagName';
          s.type = 'text/javascript'; s.charset='UTF-8'; s.async = true;
          s.src = ('https:' == window.location.protocol ? 'https' : 'http')  + '://share.pluso.ru/pluso-like.js';
          var h=d[g]('head')[0] || d[g]('body')[0];
          h.appendChild(s);
          })();</script>
        <div class="pluso" data-options="small,square,line,horizontal,nocounter,theme=04" data-services="vkontakte,odnoklassniki,facebook,twitter,google,moimir" data-background="transparent" data-url="<?php 
echo $promo;
?>
" data-title="<?php 
echo my_htmlspecialchars($this->cfg('HEADER_TITLE'));
?>
"></div>
<td colspan="3"></td>
<td>
<?php 
        /*input type="checkbox" name="not_use_bonus" value="1" id="not_use_bonus" onchange="shop.refresh()" <?if(!empty($not_use_bonus)){?>checked<?}?>><label for="not_use_bonus">Не использовать бонусы</label*/
        ?>
<input type="checkbox" name="use_bonus" value="1" id="use_bonus" onchange="shop.refresh()" <?php 
        if (!empty($use_bonus)) {
            ?>
checked<?php 
        }
        ?>
><label for="use_bonus">Использовать бонусы</label>
</td>
<td>
<?php 
        $bonus_status = ShopBonus::getBonusStatus($this->getUserId());
        $bonus_status_desc = $this->enum('bonus_status', $bonus_status);
        ?>

<span title="Статус: <?php 
        echo $bonus_status_desc;
        ?>
" class="title bonus_status <?php 
        echo $bonus_status;
        ?>
">Статус: <?php 
        echo $bonus_status_desc;
        ?>
</span>

Example #6
0
 function actSign()
 {
     include_once 'modules/shop/ShopBonus.class.php';
     global $ST, $post;
     if (!($err = $this->checkAll($post))) {
         $field = array("login" => $post->get('mail'), "name" => $post->get('name'), "address" => $post->get('address'), "phone" => $post->get('phone'), "mail" => $post->get('mail'));
         //Добавим реферала
         if ($refid = $post->getInt('refid')) {
             $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}");
             if ($rs->next()) {
                 $field['refid'] = $post->getInt('refid');
             } else {
                 //Если неправильный refid
             }
         }
         if ($refid = ShopBonus::getPromoRefId($post->get('promo'))) {
             $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}");
             if ($rs->next()) {
                 $field['refid'] = $post->getInt('refid');
             } else {
                 //Если неправильный refid
             }
         }
         if (!$post->exists('address')) {
             $field['address'] = $field['street'] . ', ' . $field['house'] . '-' . $field['flat'] . ', подъезд ' . $field['porch'] . ', этаж ' . $field['floor'];
         }
         $password = substr(md5(time()), 0, 6);
         if ($p = $post->get('password')) {
             $password = $p;
         }
         $field[] = "password=MD5('" . $password . "')";
         $id = $ST->insert('sc_users', $field, 'u_id');
         my_session_start();
         $_SESSION['_USER']['u_id'] = intval($id);
         //уведомление о регистрации
         $this->sendTemplateMail($field['mail'], 'notice_new_user', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'PASSWORD' => $password));
         //уведомление о регистрации админу
         $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_user4admin', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $field['login'], 'name' => $field['name']));
         $this->noticeICQ($this->cfg('ICQ'), 'Новый пользователь на сайте');
         //Добавим в подписку
         //          	$rs=$ST->select("SELECT * FROM sc_subscribe WHERE mail='{$this->field['mail']}'");
         //          	if(!$rs->next()){
         //          		$ST->insert('sc_subscribe',array('mail'=>$this->field['mail'],'type'=>'news send'));
         //          	}
         echo printJSON(array('status' => 'ok'));
         exit;
     } else {
         echo printJSON(array('error' => $err));
         exit;
     }
 }
Example #7
0
 function actSendOrder()
 {
     global $ST, $post;
     $basket = $this->getBasketInfo($post->get());
     if ($error = $this->checkOrder($post, $basket)) {
         echo printJSON(array('error' => $error));
         exit;
     } else {
         $address = $post->getString('address');
         /* Информация о заказчике */
         $data = array('phone' => $post->get('phone'));
         if ($city = $post->get('city')) {
             $data['city'] = $city;
         }
         if ($address) {
             $data['address'] = $address;
         }
         //Добавим реферала
         if ($refid = $post->getInt('refid')) {
             $rs = DB::select("SELECT * FROM sc_users WHERE u_id={$refid}");
             if ($rs->next()) {
                 $data['refid'] = $post->getInt('refid');
             } else {
                 //Если неправильный refid
             }
         }
         if (!$this->getUserId() && $post->getInt('reg') == 1) {
             //&& $post->exists('want_reg')
             if ($post->exists('mail')) {
                 $data['login'] = $post->get('mail');
                 $data['mail'] = $post->get('mail');
                 if ($post->exists('auto_pass')) {
                     //Всегда назначать пароль
                     $password = substr(md5(time()), 0, 6);
                     $data[] = "password=MD5('" . $password . "')";
                 } else {
                     $password = $post->get('password');
                     $data[] = "password=MD5('" . SQL::slashes($password) . "')";
                 }
                 if (!session_id()) {
                     session_set_cookie_params(3600 * 24 * 15, '/');
                     session_start();
                 }
                 $_SESSION['_USER']['u_id'] = $ST->insert('sc_users', $data, 'u_id');
                 //уведомление о регистрации
                 $this->sendTemplateMail($data['mail'], 'notice_new_user', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $data['login'], 'PASSWORD' => $password));
                 //уведомление о регистрации админу
                 $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_user4admin', array('FROM_SITE' => FROM_SITE, 'LOGIN' => $data['login'], 'name' => $data['name']));
                 $this->noticeICQ($this->cfg('ICQ'), 'Новый пользователь на сайте');
             }
         } elseif ($this->getUserId()) {
             //Обновим пользователя
             if (!empty($basket['bonus'])) {
                 $data['bonus'] = $this->getUser('bonus') - $basket['bonus'];
                 $inc = array('userid' => $this->getUserId(), 'sum' => $basket['bonus'], 'balance' => $data['bonus'], 'type' => 'bonus', 'description' => 'Списание бонуса', 'time' => date('Y-m-d H:i:s'));
                 $ST->insert('sc_income', $inc);
             }
             $ST->update('sc_users', $data, 'u_id=' . $this->getUserId());
         }
         $this->setUser($data);
         $data = array('userid' => $this->getUserId(), 'fullname' => $this->getUser('name'), 'mail' => $post->get('mail') ? $post->get('mail') : $this->getUser('mail'), 'pay_system' => $post->get('pay_system'), 'phone' => $post->get('phone'), 'additionally' => $post->get('additionally'), 'price' => $basket['sum'], 'total_price' => $basket['total_sum'], 'order_status' => 0, 'pay_system' => $post->get('pay_system'), 'delivery' => $basket['delivery'], 'pay_bonus' => $basket['bonus'], 'discount' => $basket['discount'], 'margin' => $basket['margin']);
         if (Cfg::get("SHOP_DELIVERY_ENABLED")) {
             $data['date'] = $post->get('date') ? dte($post->get('date'), 'Y-m-d') : date('Y-m-d');
             $time = $post->getString('time');
             if ($t = $this->enum('sh_delivery_time', $time)) {
                 $time = $t;
             }
             $delivery_type = 1;
             //доставка курьером
             if ($post->getInt('delivery_type')) {
                 $delivery_type = $post->getInt('delivery_type');
             }
             if ($basket['delivery'] === false) {
                 //доставка не возможна
                 $delivery_type = 2;
             }
             $data['city'] = $address;
             $data['address'] = $post->get('city');
             $data['delivery_type'] = $delivery_type;
         }
         //			$order_data=array(
         //				'from_name'=>$post->get('from_name'),
         //				'from_phone'=>$post->get('from_phone'),
         //				'from_city'=>$post->get('from_city'),
         //				'remember'=>$post->get('remember'),
         //				'report'=>$post->get('report'),
         //				'call'=>$post->get('call'),
         //				'call_no_report'=>$post->get('call_no_report'),
         //			);
         //			$data['order_data']=printJSON($order_data);
         //			if(!trim($data['address'])){
         //					$data['address']=serialize(array(
         ////						'region'=>$post->get('region'),
         //						'city'=>$post->get('city'),
         //						'district'=>$post->get('district'),
         //						'street'=>$post->get('street'),
         //						'house'=>$post->get('house'),
         //						'flat'=>$post->get('flat'),
         //						'porch'=>$post->get('porch'),
         //						'floor'=>$post->get('floor'),
         //				));
         //
         //			}
         //Добавим заказ
         $id = LibShop::addOrder($data, $basket['basket']);
         if ($refid = $post->getInt('refid')) {
             ShopBonus::addRefAwards($refid, $basket['basket']);
         } elseif ($refid = ShopBonus::getPromoRefId($post->get('promo'))) {
             ShopBonus::addRefAwards($refid, $basket['basket']);
         }
         $ps_href = '';
         if (isset($data['pay_system']) && $data['pay_system'] == 3 && $data['total_price']) {
             //Если электронные платежи и есть сумма
             $rs1 = $ST->select("SELECT * FROM sc_pay_system WHERE name='paymaster'");
             if ($rs1->next()) {
                 include_once "core/lib/PSPaymaster.class.php";
                 $ps = new PSPaymaster(unserialize($rs1->get('config')));
                 $ps->setDesc('Покупка товара');
                 $ps->setSumm($data['total_price']);
                 $ps->setEmail($this->getUser('mail'));
                 $ps->setOrderNum($id);
                 $ps_href = $ps->getUrl();
             }
         }
         //            $icq_notice = "Новый заказ на сайте {$_SERVER['HTTP_HOST']}\n";
         //
         //
         //            $icq_notice.="Итого: {$basket['sum']}\n";
         //            $icq_notice.="Заказчик: {$post->get('from_name')}\n";
         //            $icq_notice.="Контактный телефон: {$post->get('from_phone')}\n";
         //            $icq_notice.="Адрес: {$post->get('address')}\n";
         ////			$icq_notice.="Сообщение: {$post->get('comment')}\n";
         //            $icq_notice.="Время доставки: {$post->get('date')} {$post->get('time')}\n";
         //уведомление о заказе пользователю
         $notice = $data;
         //+$order_data;
         if (!empty($notice['date'])) {
             $notice['date'] = dte($notice['date']);
         }
         //			$notice['description']='';
         //			foreach (array('remember','report','call','call_no_report',) as $v){
         //				$notice['description'].=$this->enum('field_label',@"{$v}_{$notice[$v]}")."<br>";
         //			}
         $notice['ps_href'] = '';
         if ($ps_href) {
             $notice['ps_href'] = "Для того, чтобы оплатить заказа перейдите по ссылке <a href=\"{$ps_href}\">ОПЛАТИТЬ</a>";
         }
         $delivery_list = $this->enum('sh_delivery_type');
         $pay_system_list = $this->enum('sh_pay_system');
         $notice['ORDER_NUM'] = $order_num = $id;
         //			$notice['ORDER_NUM']=$order_num;
         $notice['NAME'] = $this->getUser('name');
         $notice['FROM_SITE'] = FROM_SITE;
         $notice['basket'] = $this->render(array_merge($basket, array('is_order' => true, 'is_letter' => true)), dirname(__FILE__) . '/basket_content.tpl.php');
         $notice['delivery_type'] = @$delivery_list[$notice['delivery_type']];
         $notice['pay_system'] = @$pay_system_list[$notice['pay_system']];
         include 'function.tpl.php';
         if (!empty($notice['address'])) {
             $notice['address'] = parsAddr($notice['address']);
         }
         //			$url="http://{$_SERVER['HTTP_HOST']}/prnt/SHET/?id=$id&PHPSESSID=".session_id();
         //			$url="http://{$_SERVER['HTTP_HOST']}/prnt/SBER/?id=$id&PHPSESSID=".session_id();
         //			$content=file_get_contents($url);
         $att = array();
         if (isset($data['pay_system']) && $data['pay_system'] == 1) {
             $url = "http://{$_SERVER['HTTP_HOST']}/prnt/SBERpdf/?id={$id}";
             $notice['ps_href'] = "<a href=\"{$url}\">Распечатать счёт</a>";
             //				$att[]=array('name'=>'Счёт.xls','file'=>$url."&access=allow");
         }
         /* if($post->getInt('is_jur')){ //Печатать не надо
            $url="http://{$_SERVER['HTTP_HOST']}/prnt/SchetWord/?id=$id";
            $notice['ps_href']="<a href=\"{$url}\">Распечатать счёт</a>";
            $att[]=array('name'=>'na_oplatu'.date('Y_m_d').'.doc','file'=>$url."&access=allow");
            } */
         $mail = $post->exists('mail') ? $post->get('mail') : $this->getUser('mail');
         if ($mail) {
             $this->sendTemplateMail($post->get('mail'), 'notice_new_order', $notice, $att);
         }
         //уведомление о заказе админу
         //			$mail_contacts=$this->enum('mail_contacts',$this->getRegion());
         $this->sendTemplateMail($this->cfg('MAIL'), 'notice_new_order4admin', $notice);
         // $this->noticeICQ($this->cfg('ICQ'), $icq_notice);
         $d = $this->getOrderData();
         unset($d['additionally']);
         $this->saveOrderData($d);
         $this->saveBasketData(array());
         //			setcookie('basket',null,0,'/');//Очистим корзину
         Cookie::set('order_id', $id);
         $redirect_href = "/catalog/success/?id={$id}";
         if ($ps_href) {
             $redirect_href = $ps_href;
         }
         echo printJSON(array('id' => $id, 'order_num' => $order_num, 'error' => '', 'count' => $basket['count'], 'delivery' => $data['delivery'], 'total_price' => $data['total_price'], 'ps_href' => $notice['ps_href'], 'redirect_href' => $redirect_href, 'date' => "{$post->get('date')} {$post->get('time')}"));
         exit;
     }
 }