Example #1
0
 /**
  * 判断是否需要奖励彩金
  * Enter description here ...
  * @param unknown_type $userid
  */
 public function is_no_user($userid)
 {
     $agentobj = Myagent::instance();
     $agent = $agentobj->get_by_user_id($userid);
     if ($agent == false) {
         $is_agent = false;
     } else {
         if ($agent['flag'] == 2) {
             $is_agent = true;
         } else {
             $is_agent = false;
         }
     }
     if ($is_agent == false) {
         $relationobj = Myrelation::instance();
         $relation = $relationobj->is_client_user($userid);
         if ($relation == false) {
             $is_agent = false;
         } else {
             $is_agent = true;
         }
     }
     if (!in_array($userid, self::$no_userid) && $is_agent == false) {
         return true;
     } else {
         return false;
     }
 }
Example #2
0
 public function __construct()
 {
     parent::__construct();
     role::check('distribution_system_manage');
     $this->userDao = Myuser::instance();
     $this->contractDao = MyRealtime_contract::instance();
     $this->relationDao = Myrelation::instance();
 }
Example #3
0
 public function open($contractId)
 {
     //权限验证
     role::check('superplaner_system_manage');
     if (!$contractId) {
         remind::set(Kohana::lang('o_global.bad_request'), request::referrer(), 'error');
     }
     $contractDao = Superplaner_Realtime_contract::instance();
     $aContract = $contractDao->get_by_id($contractId);
     if ($aContract == null) {
         remind::set(Kohana::lang('o_contract.contract_not_exists'), request::referrer(), 'error');
     }
     //检查实时合约 (类型与当前合约一致)
     $searchStruct = array();
     $searchStruct['where'] = array('user_id' => $aContract['user_id'], 'type' => $aContract['type'], 'flag' => 2);
     $contractList = $contractDao->lists($searchStruct);
     if (count($contractList) > 0) {
         remind::set(Kohana::lang('o_contract.contract_has_exists'), request::referrer(), 'error');
     }
     //检查是否有下级用户需要返点
     $relationSearchCondition = array();
     $relationSearchCondition['where'] = array('agentid' => $aContract['user_id'], 'client_type' => 1, 'flag' => 2);
     $relationDao = Myrelation::instance();
     $relationList = $relationDao->lists($relationSearchCondition);
     // 如果是普通实时合约,则比对下级用户的client_rate
     if ($aContract['type'] == 0) {
         foreach ($relationList as $aRelation) {
             if ($aContract['rate'] <= $aRelation['client_rate']) {
                 remind::set('下级用户返点率(普通)高于该合约的返点率', request::referrer(), 'error');
             }
         }
     } else {
         if ($aContract['type'] == 7) {
             foreach ($relationList as $aRelation) {
                 if ($aContract['rate'] <= $aRelation['client_rate']) {
                     remind::set('下级用户返点率(北单)高于该合约的返点率', request::referrer(), 'error');
                 }
             }
         }
     }
     $aContract['flag'] = 2;
     if ($contractDao->edit($aContract)) {
         remind::set(Kohana::lang('o_global.update_success'), request::referrer(), 'success');
     } else {
         remind::set(Kohana::lang('o_global.update_fail'), request::referrer(), 'error');
     }
 }
Example #4
0
 public function set_client_rate()
 {
     //初始化返回数组
     $return_struct = array('status' => 0, 'code' => 501, 'msg' => 'Not Implemented', 'content' => array());
     $request_data = $this->input->get();
     $relationId = isset($request_data['relationId']) ? $request_data['relationId'] : '';
     $client_rate = isset($request_data['client_rate']) ? $request_data['client_rate'] : '';
     if (empty($relationId) || empty($client_rate)) {
         $return_struct['msg'] = Kohana::lang('o_global.bad_request');
         exit(json_encode($return_struct));
     }
     if (!is_numeric($client_rate) || $client_rate < 0 || $client_rate > 0.1) {
         $return_struct['msg'] = Kohana::lang('o_global.rate_rule');
         exit(json_encode($return_struct));
     }
     if (Myrelation::instance()->set_client_rate($relationId, $client_rate)) {
         $return_struct = array('status' => 1, 'code' => 200, 'msg' => Kohana::lang('o_global.update_success'), 'content' => array('client_rate' => $client_rate));
     } else {
         $return_struct['msg'] = Kohana::lang('o_global.update_error');
     }
     exit(json_encode($return_struct));
 }
 public function add($relationId)
 {
     //权限检查 得到所有可管理站点ID列表
     role::check('distribution_system_manage');
     if ($relationId == null || $relationId == '') {
         remind::set(Kohana::lang('o_global.bad_request'), request::referrer(), 'error');
     }
     $relationDao = Myrelation::instance();
     $theRelation = $relationDao->get_by_id($relationId);
     if ($theRelation == null) {
         remind::set(Kohana::lang('o_relation.relation_not_exists'), request::referrer(), 'error');
     }
     $client = Myuser::instance()->get_by_id($theRelation['user_id']);
     $agent = Myuser::instance()->get_by_id($theRelation['agentid']);
     //确定 agent还可以给下级用户分配多少返点率
     $rate_ability_array = $this->getAgentRateAbility($agent['id']);
     if ($rate_ability_array == null) {
         remind::set('请为上级代理添加月结合约', request::referrer(), 'error');
     }
     //		print_r($rate_ability_array);
     //初始化返点细则数组
     $contractDetailData = array();
     for ($index = 1; $index <= 10; $index++) {
         $contractDetailData[$index] = array('grade' => $index, 'minimum' => 0, 'maximum' => 0, 'rate' => 0);
     }
     //		print_r($contractDetailData);
     if ($_POST) {
         $data = $_POST;
         $data['relation_id'] = $_POST['relationId'];
         $data['agent_id'] = $_POST['agentId'];
         $data['user_id'] = $_POST['clientId'];
         $data['contract_type'] = $_POST['contractType'];
         $data['type'] = $_POST['type'];
         $data['rate_ability'] = $_POST['rateAbility'];
         $data['taxrate'] = 0.0;
         $data['flag'] = 0;
         $data['createtime'] = date("Y-m-d H:i:s", time());
         $data['starttime'] = date("Y-m-d H:i:s", time());
         $data['lastsettletime'] = date("Y-m-d H:i:s", time());
         for ($index = 1; $index <= 10; $index++) {
             $contractDetailData[$index]['grade'] = $_POST['grade-' . $index];
             $contractDetailData[$index]['minimum'] = $_POST['minimum-' . $index];
             $contractDetailData[$index]['maximum'] = $_POST['maximum-' . $index];
             $contractDetailData[$index]['rate'] = $_POST['rate-' . $index];
         }
         $detailList = array();
         for ($index = 1; $index <= 10; $index++) {
             if ($contractDetailData[$index]['minimum'] == null && $contractDetailData[$index]['maximum'] == null && $contractDetailData[$index]['rate'] == null) {
                 continue;
             }
             if ($contractDetailData[$index]['minimum'] == null || $contractDetailData[$index]['maximum'] == null || $contractDetailData[$index]['rate'] == null) {
                 remind::set(Kohana::lang('o_contract.detail_not_completed'), request::referrer(), 'error');
                 return;
             }
             if (is_numeric($contractDetailData[$index]['minimum']) == false || is_numeric($contractDetailData[$index]['maximum']) == false || is_numeric($contractDetailData[$index]['rate']) == false) {
                 remind::set('请在合约细则中输入数字', 'error', request::referrer());
                 return;
             }
             if ($contractDetailData[$index]['minimum'] >= $contractDetailData[$index]['maximum']) {
                 remind::set(Kohana::lang('o_contract.detail_invalid'), request::referrer(), 'error');
                 return;
             }
             if (doubleval($contractDetailData[$index]['rate']) < 0) {
                 remind::set('返点率不能小于0', request::referrer(), 'error');
                 return;
             }
             if (doubleval($contractDetailData[$index]['rate']) > $data['rate_ability']) {
                 remind::set('超出代理的返点能力', request::referrer(), 'error');
                 return;
             }
             if (isset($contractDetailData[$index - 1]['maximum'])) {
                 if ($contractDetailData[$index]['minimum'] != $contractDetailData[$index - 1]['maximum']) {
                     remind::set('销售额范围不连续', request::referrer(), 'error');
                     return;
                 }
             }
             $detailList[] = $contractDetailData[$index];
         }
         //            print_r($contractDetailData);
         //标签过滤
         tool::filter_strip_tags($data);
         $month_contractDao = MyMonth_contract::instance();
         if ($contractId = $month_contractDao->add($data)) {
             $month_contract_detailDao = MyMonth_contract_detail::instance();
             foreach ($detailList as $aContractDetail) {
                 $aContractDetail['contract_id'] = $contractId;
                 $aContractDetail['createtime'] = date("Y-m-d H:i:s", time());
                 $month_contract_detailDao->add($aContractDetail);
             }
             remind::set(Kohana::lang('o_global.add_success'), 'distribution/client_month_contract?relationId=' . $relationId, 'success');
         } else {
             remind::set(Kohana::lang('o_global.add_error'), request::referrer(), 'error');
         }
     }
     $this->template->content = new View("distribution/client_month_contract_add");
     $this->template->content->relation = $theRelation;
     $this->template->content->agent = $agent;
     $this->template->content->client = $client;
     $this->template->content->rate_ability_array = $rate_ability_array;
     $this->template->content->contractDetailData = $contractDetailData;
 }