Browse Source

Merge branch 'bonus_manager' into bonus_rate

stanley-king 8 years ago
parent
commit
4acfa945a8

+ 203 - 0
admin/control/person_bonus.php

@@ -0,0 +1,203 @@
+<?php
+/**
+ * 会员红包管理
+ *
+ ***/
+
+defined('InShopNC') or exit('Access Invalid!');
+
+require_once(BASE_ROOT_PATH . '/helper/account_helper.php');
+
+
+class person_bonusControl extends SystemControl
+{
+    const EXPORT_SIZE = 5000;
+    public function __construct()
+    {
+        parent::__construct();
+        Language::read('points');
+        //判断系统是否开启积分功能
+//        if (C('points_isuse') != 1){
+//            showMessage(Language::get('admin_person_bonus_unavailable'),'index.php?act=dashboard&op=welcome','','error');
+//        }
+    }
+
+    /**
+     * 积分添加
+     */
+    public function addOp()
+    {
+        if (chksubmit())
+        {
+            $obj_validate = new Validate();
+            $obj_validate->validateparam = array(
+                array("input"=>$_POST["member_id"], "require"=>"true", "message"=>Language::get('admin_points_member_error_again')),
+                array("input"=>$_POST["bonus_rate"],   "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=> 1,"message" => '红包抵扣率必须大于0'),
+                array("input"=>$_POST["bonus_amount"], "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=> 0.01,"message" => '金额最少一分钱')
+            );
+            $error = $obj_validate->validate();
+            if ($error != ''){
+                showMessage($error,'','','error');
+            }
+            //查询会员信息
+            $obj_member = Model('member');
+            $member_id = intval($_POST['member_id']);
+            $member_info = $obj_member->getMemberInfo(array('member_id'=>$member_id));
+
+            if (!is_array($member_info) || count($member_info)<=0){
+                showMessage(Language::get('admin_points_userrecord_error'),'index.php?act=points&op=addpoints','','error');
+            }
+
+            $rate = intval($_POST['bonus_rate']);
+            $amount = doubleval($_POST['bonus_amount']);
+            $optype = intval($_POST['operatetype']);
+            $bonusdesc = $_POST['bonusdesc'];
+
+            if ($optype == 1) {
+                $ret = account_helper::add_bonus($rate,$amount,$member_id,$bonusdesc);
+            } else {
+                $ret = account_helper::withhold_bonus($rate,$amount,$member_id);
+            }
+
+            if($ret == true) {
+                showMessage(Language::get('nc_common_save_succ'),'index.php?act=person_bonus&op=add');
+            } else {
+                showMessage(Language::get('nc_common_save_fail'),'index.php?act=person_bonus&op=add','','error');
+            }
+        }
+        else {
+            Tpl::showpage('person_bonus.add');
+        }
+    }
+    public function checkmemberOp(){
+        $name = trim($_GET['name']);
+        if (!$name){
+            echo ''; die;
+        }
+        /**
+         * 转码
+         */
+        if(strtoupper(CHARSET) == 'GBK'){
+            $name = Language::getGBK($name);
+        }
+        $obj_member = Model('member');
+        $member_info = $obj_member->getMemberInfo(array('member_name'=>$name));
+        if (is_array($member_info) && count($member_info)>0){
+            if(strtoupper(CHARSET) == 'GBK'){
+                $member_info['member_name'] = Language::getUTF8($member_info['member_name']);
+            }
+            echo json_encode(array('id'=>$member_info['member_id'],
+                'name'=>$member_info['member_name'],
+                'points'=>$member_info['member_points']));
+        } else {
+            echo ''; die;
+        }
+    }
+    /**
+     * 积分日志列表
+     */
+    public function pointslogOp()
+    {
+        $condition_arr = array();
+        $condition_arr['pl_membername_like'] = trim($_GET['mname']);
+        $condition_arr['pl_adminname_like'] = trim($_GET['aname']);
+        if ($_GET['stage']){
+            $condition_arr['pl_stage'] = trim($_GET['stage']);
+        }
+        $condition_arr['saddtime'] = strtotime($_GET['stime']);
+        $condition_arr['eaddtime'] = strtotime($_GET['etime']);
+        if($condition_arr['eaddtime'] > 0) {
+            $condition_arr['eaddtime'] += 86400;
+        }
+        $condition_arr['pl_desc_like'] = trim($_GET['description']);
+        //分页
+        $page	= new Page();
+        $page->setEachNum(10);
+        $page->setStyle('admin');
+        //查询积分日志列表
+        $points_model = Model('points');
+        $list_log = $points_model->getPointsLogList($condition_arr,$page,'*','');
+        //信息输出
+        Tpl::output('show_page',$page->show());
+        Tpl::output('list_log',$list_log);
+        Tpl::showpage('pointslog');
+    }
+
+    /**
+     * 积分日志列表导出
+     */
+    public function export_step1Op(){
+        $condition_arr = array();
+        $condition_arr['pl_membername_like'] = trim($_GET['mname']);
+        $condition_arr['pl_adminname_like'] = trim($_GET['aname']);
+        if ($_GET['stage']){
+            $condition_arr['pl_stage'] = trim($_GET['stage']);
+        }
+        $condition_arr['saddtime'] = strtotime($_GET['stime']);
+        $condition_arr['eaddtime'] = strtotime($_GET['etime']);
+        if($condition_arr['eaddtime'] > 0) {
+            $condition_arr['eaddtime'] += 86400;
+        }
+        $condition_arr['pl_desc_like'] = trim($_GET['description']);
+        $page	= new Page();
+        $page->setEachNum(self::EXPORT_SIZE);
+        $points_model = Model('points');
+        $list_log = $points_model->getPointsLogList($condition_arr,$page,'*','');
+        if (!is_numeric($_GET['curpage'])){
+            $count = $page->getTotalNum();
+            $array = array();
+            if ($count > self::EXPORT_SIZE ){	//显示下载链接
+                $page = ceil($count/self::EXPORT_SIZE);
+                for ($i=1;$i<=$page;$i++){
+                    $limit1 = ($i-1)*self::EXPORT_SIZE + 1;
+                    $limit2 = $i*self::EXPORT_SIZE > $count ? $count : $i*self::EXPORT_SIZE;
+                    $array[$i] = $limit1.' ~ '.$limit2 ;
+                }
+                Tpl::output('list',$array);
+                Tpl::output('murl','index.php?act=pointslog&op=pointslog');
+                Tpl::showpage('export.excel');
+            }else{	//如果数量小,直接下载
+                $this->createExcel($list_log);
+            }
+        }else{	//下载
+            $this->createExcel($list_log);
+        }
+    }
+
+    /**
+     * 生成excel
+     *
+     * @param array $data
+     */
+    private function createExcel($data = array()){
+        Language::read('export');
+        import('libraries.excel');
+        $excel_obj = new Excel();
+        $excel_data = array();
+        //设置样式
+        $excel_obj->setStyle(array('id'=>'s_title','Font'=>array('FontName'=>'宋体','Size'=>'12','Bold'=>'1')));
+        //header
+        $excel_data[0][] = array('styleid'=>'s_title','data'=>L('exp_pi_member'));
+        $excel_data[0][] = array('styleid'=>'s_title','data'=>L('exp_pi_system'));
+        $excel_data[0][] = array('styleid'=>'s_title','data'=>L('exp_pi_point'));
+        $excel_data[0][] = array('styleid'=>'s_title','data'=>L('exp_pi_time'));
+        $excel_data[0][] = array('styleid'=>'s_title','data'=>L('exp_pi_jd'));
+        $excel_data[0][] = array('styleid'=>'s_title','data'=>L('exp_pi_ms'));
+        $state_cn = array(Language::get('admin_points_stage_regist'),Language::get('admin_points_stage_login'),Language::get('admin_points_stage_comments'),Language::get('admin_points_stage_order'),Language::get('admin_points_stage_system'),Language::get('admin_points_stage_pointorder'),Language::get('admin_points_stage_app'));
+        foreach ((array)$data as $k=>$v){
+            $tmp = array();
+            $tmp[] = array('data'=>$v['pl_membername']);
+            $tmp[] = array('data'=>$v['pl_adminname']);
+            $tmp[] = array('format'=>'Number','data'=>ncPriceFormat($v['pl_points']));
+            $tmp[] = array('data'=>date('Y-m-d H:i:s',$v['pl_addtime']));
+            $tmp[] = array('data'=>str_replace(array('regist','login','comments','order','system','pointorder','app'),$state_cn,$v['pl_stage']));
+            $tmp[] = array('data'=>$v['pl_desc']);
+
+            $excel_data[] = $tmp;
+        }
+        $excel_data = $excel_obj->charset($excel_data,CHARSET);
+        $excel_obj->addArray($excel_data);
+        $excel_obj->addWorksheet($excel_obj->charset(L('exp_pi_jfmx'),CHARSET));
+        $excel_obj->generateXML($excel_obj->charset(L('exp_pi_jfmx'),CHARSET).$_GET['curpage'].'-'.date('Y-m-d-H',time()));
+    }
+}

+ 2 - 1
admin/control/points.php

@@ -5,7 +5,8 @@
  ***/
 
 defined('InShopNC') or exit('Access Invalid!');
-class pointsControl extends SystemControl{
+class pointsControl extends SystemControl
+{
 	const EXPORT_SIZE = 5000;
 	public function __construct(){
 		parent::__construct();

+ 1 - 0
admin/include/limit.php

@@ -45,6 +45,7 @@ $_limit =  array(
 	    array('name'=>$lang['nc_exppoints_manage'], 'op'=>null, 'act'=>'exppoints'),
 		array('name'=>$lang['nc_member_notice'], 'op'=>null, 'act'=>'notice'),
 		array('name'=>$lang['nc_member_pointsmanage'], 'op'=>null, 'act'=>'points'),
+		array('name'=>$lang['nc_member_bonusmanage'], 'op'=>null, 'act'=>'bonus'),
 		array('name'=>$lang['nc_binding_manage'], 'op'=>null, 'act'=>'sns_sharesetting'),
 		array('name'=>$lang['nc_member_album_manage'], 'op'=>null, 'act'=>'sns_malbum'),
 	    array('name'=>$lang['nc_snstrace'], 'op'=>null, 'act'=>'snstrace'),

+ 1 - 0
admin/include/menu.php

@@ -109,6 +109,7 @@ $arr = array(
 					array('args'=>'index,exppoints,member',					'text'=>$lang['nc_exppoints_manage']),
 					array('args'=>'notice,notice,member',					'text'=>$lang['nc_member_notice']),
 					array('args'=>'addpoints,points,member',				'text'=>$lang['nc_member_pointsmanage']),
+					array('args'=>'add,person_bonus,member',					'text'=>$lang['nc_member_bonusmanage']),
 					array('args'=>'predeposit,predeposit,member',			'text'=>$lang['nc_member_predepositmanage']),
 					array('args'=>'sharesetting,sns_sharesetting,member',	'text'=>$lang['nc_binding_manage']),
 					array('args'=>'class_list,sns_malbum,member',			'text'=>$lang['nc_member_album_manage']),

+ 1 - 0
admin/language/zh/layout.php

@@ -76,6 +76,7 @@ $lang['nc_admin_log']			= '操作日誌';
 $lang['nc_admin_res_position']	= '推薦位';
 $lang['nc_member_notice']		= '會員通知';
 $lang['nc_member_pointsmanage']		= '積分管理';
+$lang['nc_member_bonusmanage']		= '红包管理';
 $lang['nc_member_pointslog']		= '積分明細';
 $lang['nc_member_predepositmanage']		= '預存款';
 $lang['nc_member_predepositlog']		= '預存款明細';

+ 6 - 0
admin/language/zh/points.php

@@ -4,6 +4,7 @@ defined('InShopNC') or exit('Access Invalid!');
  * 積分功能公用
  */
 $lang['admin_points_unavailable']	 		= '系統未開啟積分功能';
+$lang['admin_person_bonus_unavailable']	 	= '系统未开启个人红包功能';
 $lang['admin_points_mod_tip']				= '修改積分';
 $lang['admin_points_system_desc']			= '管理員手動操作積分';
 $lang['admin_points_userrecord_error']		= '會員信息錯誤';
@@ -12,6 +13,10 @@ $lang['admin_points_operatetype']			= '增減類型';
 $lang['admin_points_operatetype_add']		= '增加';
 $lang['admin_points_operatetype_reduce']	= '減少';
 $lang['admin_points_pointsnum']				= '積分值';
+
+$lang['admin_person_bonus_rate']				= '红包折扣率';
+$lang['admin_person_bonus_amount']				= '红包金额';
+
 $lang['admin_points_pointsdesc']			= '描述';
 $lang['admin_points_pointsdesc_notice']		= '描述信息將顯示在積分明細相關頁,會員和管理員都可見';
 
@@ -29,6 +34,7 @@ $lang['admin_points_member_tip_2']			= ', 當前積分數為';
  * 積分日誌
  */
 $lang['admin_points_log_title']			= '積分明細';
+$lang['admin_person_bonus_log_title']	= '红包明細';
 $lang['admin_points_adminname']				= '管理員名稱';
 $lang['admin_points_stage']					= '操作階段';
 $lang['admin_points_stage_regist']				= '註冊';

+ 1 - 0
admin/language/zh_cn/layout.php

@@ -82,6 +82,7 @@ $lang['nc_admin_log']			= '操作日志';
 $lang['nc_admin_res_position']	= '推荐位';
 $lang['nc_member_notice']		= '会员通知';
 $lang['nc_member_pointsmanage']		= '积分管理';
+$lang['nc_member_bonusmanage']		= '红包管理';
 $lang['nc_member_pointslog']		= '积分明细';
 $lang['nc_member_predepositmanage']		= '预存款';
 $lang['nc_member_predepositlog']		= '预存款明细';

+ 6 - 0
admin/language/zh_cn/points.php

@@ -4,6 +4,7 @@ defined('InShopNC') or exit('Access Invalid!');
  * 积分功能公用
  */
 $lang['admin_points_unavailable']	 		= '系统未开启积分功能';
+$lang['admin_person_bonus_unavailable']	 	= '系统未开启个人红包功能';
 $lang['admin_points_mod_tip']				= '修改积分';
 $lang['admin_points_system_desc']			= '管理员手动操作积分';
 $lang['admin_points_userrecord_error']		= '会员信息错误';
@@ -12,6 +13,9 @@ $lang['admin_points_operatetype']			= '增减类型';
 $lang['admin_points_operatetype_add']		= '增加';
 $lang['admin_points_operatetype_reduce']	= '减少';
 $lang['admin_points_pointsnum']				= '积分值';
+$lang['admin_person_bonus_rate']				= '红包折扣率';
+$lang['admin_person_bonus_amount']				= '红包金额';
+
 $lang['admin_points_pointsdesc']			= '描述';
 $lang['admin_points_pointsdesc_notice']		= '描述信息将显示在积分明细相关页,会员和管理员都可见';
 
@@ -29,6 +33,7 @@ $lang['admin_points_member_tip_2']			= ', 当前积分数为';
  * 积分日志
  */
 $lang['admin_points_log_title']			= '积分明细';
+$lang['admin_person_bonus_log_title']	= '红包明细';
 $lang['admin_points_adminname']				= '管理员名称';
 $lang['admin_points_stage']					= '操作阶段';
 $lang['admin_points_stage_regist']				= '注册';
@@ -36,6 +41,7 @@ $lang['admin_points_stage_login']				= '登录';
 $lang['admin_points_stage_comments']				= '商品评论';
 $lang['admin_points_stage_order']				= '订单消费';
 $lang['admin_points_stage_system']				= '积分管理';
+
 $lang['admin_points_stage_pointorder']		= '礼品兑换';
 $lang['admin_points_stage_app']		= '积分兑换';
 $lang['admin_points_addtime']				= '添加时间';

+ 132 - 0
admin/templates/default/person_bonus.add.php

@@ -0,0 +1,132 @@
+<?php defined('InShopNC') or exit('Access Invalid!');?>
+
+<div class="page">
+    <div class="fixed-bar">
+        <div class="item-title">
+            <h3><?php echo $lang['nc_member_bonusmanage']?></h3>
+            <ul class="tab-base">
+                <li><a href="JavaScript:void(0);" class="current"><span><?php echo $lang['nc_manage']?></span></a></li>
+                <li><a href="index.php?act=person_bonus&op=log"><span><?php echo $lang['admin_person_bonus_log_title']?></span></a></li>
+            </ul>
+        </div>
+    </div>
+    <div class="fixed-empty"></div>
+    <form id="points_form" method="post" name="form1">
+        <input type="hidden" name="form_submit" value="ok" />
+        <table class="table tb-type2 nobdb">
+            <tbody>
+            <tr class="noborder">
+                <td colspan="2" class="required"><label class="validation"><?php echo $lang['admin_points_membername']; ?>:</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" name="member_name" id="member_name" class="txt" onchange="javascript:checkmember();">
+                    <input type="hidden" name="member_id" id="member_id" value='0'/></td>
+                <td class="vatop tips"><?php echo $lang['member_index_name']?></td>
+            </tr>
+            <tr id="tr_memberinfo">
+                <td colspan="2" style="font-weight:bold;" id="td_memberinfo"></td>
+            </tr>
+            <tr>
+                <td colspan="2" class="required"><label><?php echo $lang['admin_points_operatetype']; ?>:</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><select id="operatetype" name="operatetype">
+                        <option value="1"><?php echo $lang['admin_points_operatetype_add']; ?></option>
+                        <option value="2"><?php echo $lang['admin_points_operatetype_reduce'];?></option>
+                    </select></td>
+                <td class="vatop tips"></td>
+            </tr>
+
+            <tr>
+                <td colspan="2" class="required"><label class="validation"><?php echo $lang['admin_person_bonus_rate']; ?>:</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="bonus_rate" name="bonus_rate" class="txt"></td>
+                <td class="vatop tips"><?php echo $lang['member_index_email']?></td>
+            </tr>
+
+            <tr>
+                <td colspan="2" class="required"><label class="validation"><?php echo $lang['admin_person_bonus_amount']; ?>:</label></td>
+            </tr>
+
+            <tr class="noborder">
+                <td class="vatop rowform"><input type="text" id="bonus_amount" name="bonus_amount" class="txt"></td>
+                <td class="vatop tips"><?php echo $lang['member_index_email']?></td>
+            </tr>
+            <tr>
+                <td colspan="2" class="required"><label><?php echo $lang['admin_points_pointsdesc']; ?>:</label></td>
+            </tr>
+            <tr class="noborder">
+                <td class="vatop rowform"><textarea name="bonusdesc" rows="6" class="tarea"></textarea></td>
+                <td class="vatop tips"><?php echo $lang['admin_points_pointsdesc_notice'];?></td>
+            </tr>
+            </tbody>
+            <tfoot>
+            <tr class="tfoot">
+                <td colspan="2" ><a href="JavaScript:void(0);" class="btn" onclick="document.form1.submit()"><span><?php echo $lang['nc_submit'];?></span></a></td>
+            </tr>
+            </tfoot>
+        </table>
+    </form>
+</div>
+<script type="text/javascript">
+    function checkmember()
+    {
+        var membername = $.trim($("#member_name").val());
+        if(membername == ''){
+            $("#member_id").val('0');
+            alert(<?php echo $lang['admin_points_addmembername_error']; ?>);
+            return false;
+        }
+        $.getJSON("index.php?act=points&op=checkmember", {'name':membername}, function(data){
+            if (data)
+            {
+                $("#tr_memberinfo").show();
+                var msg= "<?php echo $lang['admin_points_member_tip']; ?> "+ data.name + "<?php echo $lang['admin_points_member_tip_2']; ?>" + data.points;
+                $("#member_name").val(data.name);
+                $("#member_id").val(data.id);
+                $("#td_memberinfo").text(msg);
+            }
+            else
+            {
+                $("#member_name").val('');
+                $("#member_id").val('0');
+                alert("<?php echo $lang['admin_points_userrecord_error']; ?>");
+            }
+        });
+    }
+    $(function(){
+        $("#tr_memberinfo").hide();
+
+        $('#points_form').validate({
+//        errorPlacement: function(error, element){
+//            $(element).next('.field_notice').hide();
+//            $(element).after(error);
+//        },
+            rules : {
+                member_name: {
+                    required : true
+                },
+                member_id: {
+                    required : true
+                },
+                bonus_rate   : {
+                    required : true,
+                    min : 1
+                }
+            },
+            messages : {
+                member_name: {
+                    required : '<?php echo $lang['admin_points_addmembername_error'];?>'
+                },
+                member_id : {
+                    required : '<?php echo $lang['admin_points_member_error_again'];?>'
+                },
+                bonus_rate  : {
+                    required : '<?php echo $lang['admin_points_points_null_error']; ?>',
+                    min : '<?php echo $lang['admin_points_points_min_error']; ?>'
+                }
+            }
+        });
+    });
+</script>

+ 7 - 0
admin/templates/default/person_bonuslog.php

@@ -0,0 +1,7 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: stanley-king
+ * Date: 2017/2/16
+ * Time: 下午12:09
+ */

+ 26 - 0
helper/account_helper.php

@@ -274,6 +274,32 @@ class account_helper
         return $total_amount;
     }
 
+    public static function add_bonus($rate,$amount,$member_id,$type_name)
+    {
+        $member_id = intval($member_id);
+        $param = \bonus\parameters::admin_fixed(intval($rate),doubleval($amount),$type_name);
+
+        $fix_bonus = self::send_bonus($param,$param['rate_money'],array($member_id));
+        if($fix_bonus != false && array_key_exists($member_id,$fix_bonus)) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+
+    public static function withhold_bonus($rate,$amount,$member_id)
+    {
+        $rates = array(intval($rate) => doubleval($amount));
+        $ret = bonus_helper::withold($member_id,$rates);
+        if($ret) {
+            $pred = new predeposit_helper($member_id);
+            $pred->reduce_pred($amount);
+        } else {
+            Log::record('扣除预存款失败',Log::ERR);
+        }
+        return $ret;
+    }
+
     static public function paysuccess_bonus($buyer_id, $total_amount)
     {
         $params = \bonus\parameters::paied($total_amount);

+ 13 - 0
helper/bonus/parameters.php

@@ -64,6 +64,19 @@ class parameters
         return $param;
     }
 
+    public static function admin_fixed($rate,$amount,$type_name)
+    {
+        $param['make_type'] = type::MakeSendType;
+        $param['type_name'] = empty($type_name) ? "系统红包" : $type_name;
+        $param['send_type'] = type::SendType_Fixed;
+        $param['grab_type'] = type::GrabType_All;
+        $param['sender_id']   = self::admin_member_id;
+        $param['sender_name'] = self::admin_name;
+        $param['rate_money'][] = array('amount' => $amount,'num' => 1, 'rate' => $rate);
+
+        return $param;
+    }
+
     public static function reigster_fixed()
     {
         $param['make_type'] = type::MakeRegisterType;

+ 13 - 5
helper/bonus_helper.php

@@ -242,16 +242,24 @@ class bonus_helper
 
     static public function withold($member_id,$rates)
     {
+        $fsuccess =  true;
+        $total = 0.00;
         $holder = new \bonus\witholder($member_id);
         foreach ($rates as $rate => $money)
         {
-            Log::record("withold user rate={$rate} money={$money}.",Log::DEBUG);
-
-            if($holder->withold($rate,$money) == false) {
-                Log::record("withold user member_id={$member_id} money={$money}.",Log::ERR);
+            if($holder->withold($rate,$money) == true) {
+                $total += $money;
+            } else {
+                $fsuccess = false;
             }
         }
-        return true;
+
+        if($fsuccess) {
+            return true;
+        }
+        else {
+            return $total;
+        }
     }
 
     static public function withold_money($member_id,$rate,$money)

+ 21 - 0
helper/predeposit_helper.php

@@ -592,6 +592,19 @@ class predeposit_helper
         $this->model_pd->changePd("bonus_add_money", $data);
     }
 
+    public function reduce_pred($amount)
+    {
+        $minfo = new member_info($this->member_id);
+        $data = array();
+        $data['member_id'] = $this->member_id;
+        $data['member_name'] = $minfo->nickname();
+        $data['amount'] = $amount;
+        $data['pdr_sn'] = '';
+        $data['lg_desc'] = "";
+        $this->model_pd->changePd("sys_del_money", $data);
+        $this->inc_rate_version();
+    }
+
     public function handout_bonus($amount, $type_sn, $sender_name, $info,$make_type = 0)
     {
         $this->inc_rate_version();
@@ -801,6 +814,14 @@ class predeposit_helper
             $this->inc_rate_version();
             $this->del_rates();
         }
+        else
+        {
+            $cent = intval($ret * 100 + 0.5);
+            if($cent > 0) {
+                $this->inc_rate_version();
+                $this->del_rates();
+            }
+        }
 
         return $ret;
     }

+ 6 - 2
shop/control/member_points.php

@@ -64,8 +64,12 @@ class member_pointsControl extends BaseMemberControl {
 		$lang	= Language::getLangContent();
 		$menu_array		= array();
 		$menu_array = array(
-			1=>array('menu_key'=>'points',	'menu_name'=>$lang['nc_member_path_points'],	'menu_url'=>'index.php?act=member_points'),
-			2=>array('menu_key'=>'orderlist','menu_name'=>Language::get('member_pointorder_list_title'),	'menu_url'=>'index.php?act=member_pointorder&op=orderlist')
+			1=>array('menu_key'=>'points',
+                'menu_name'=>$lang['nc_member_path_points'],
+                'menu_url'=>'index.php?act=member_points'),
+			2=>array('menu_key'=>'orderlist',
+                'menu_name'=>Language::get('member_pointorder_list_title'),
+                'menu_url'=>'index.php?act=member_pointorder&op=orderlist')
 		);
 		if(!empty($array)) {
 			$menu_array[] = $array;