@ -246,7 +246,12 @@ class MarketPerformanceSetController extends Controller {
$userid = array_merge(array_keys($value),$userid);
}
$userid = array_unique($userid);
$this->marketUserInfo = M("member")->where(["uid"=>['in',$userid]])->getField("uid,real_name",true);
$this->marketUserInfo = M("auth_group_access")
->alias("acc")
->where(["acc.uid"=>['in',$userid]])
->join("sys_member as mem on acc.uid = mem.uid")
->join("sys_auth_group as gro on acc.group_id = gro.id")
->getField("acc.uid,mem.real_name,gro.department_id",true);
}
/**
@ -468,7 +473,8 @@ class MarketPerformanceSetController extends Controller {
$baseArr = $this->companyInfo[$company_id];
$baseArr['pay_time'] = $this->date;
$baseArr['is_settlement'] = 1;
$baseArr['real_name'] = $this->marketUserInfo[$markertUserId];
$baseArr['real_name'] = $this->marketUserInfo[$markertUserId]['real_name'];
$baseArr['department_id'] = $this->marketUserInfo[$markertUserId]['department_id'];
$baseArr['admin_id'] = $markertUserId;
foreach ($games as $k => $v) {
$game = $this->gameInfo[$k];
@ -520,54 +526,51 @@ class MarketPerformanceSetController extends Controller {
public function marketManagerSet($count_date)
{
if(!$this->isInit) $this->configInit($count_date);
$marketManagerGroupId = "25";
$this->marketAltogetherModel->where(['pay_time'=>$this->date,'level'=>$marketManagerGroupId])->delete();
//获取毛利统计
$dbres = $this->settleupMarketorderModel->where(['pay_time'=>$this->date])->field("sum(pay_amount) pay_amount,sum(refund_amount) refund_amount,develop_type")->group('develop_type')->select();
$count = [
'pay_amount'=>0,
'performance_revenue'=>0,
'appraisal_bonuses'=>0
];
foreach ($dbres as $k => $v) {
$tmpPayAmount = $v['pay_amount']-$v['refund_amount'];
$count['pay_amount'] += $tmpPayAmount;
if($v['develop_type'] == 3){
$count['appraisal_bonuses'] += $tmpPayAmount;
}else{
$count['performance_revenue'] += $tmpPayAmount;
//获取所有的经理
$MarketEvent = A("Market","Event");
$level = $MarketEvent->getConfig('ManagerLevel');
$this->marketAltogetherModel->where(['pay_time'=>$this->date,'level'=>$level])->delete();
$markertManager = $MarketEvent->getManagerPerformanInfo();
if(!$markertManager) return;
foreach ($markertManager as $k => $manager) {
//获取毛利统计
$dbres = $this->settleupMarketorderModel->where(['pay_time'=>$this->date,'department_id'=>$manager['department_id']])->field("sum(pay_amount) pay_amount,sum(refund_amount) refund_amount,develop_type")->group('develop_type')->select();
$count = [
'pay_amount'=>0,
'performance_revenue'=>0,
'appraisal_bonuses'=>0
];
foreach ($dbres as $k => $v) {
$tmpPayAmount = $v['pay_amount']-$v['refund_amount'];
$count['pay_amount'] += $tmpPayAmount;
if($v['develop_type'] == 3){
$count['appraisal_bonuses'] += $tmpPayAmount;
}else{
$count['performance_revenue'] += $tmpPayAmount;
}
}
}
//获取经理配置及经理
$config = M("auth_group")->where("id = {$marketManagerGroupId}")->getField("market_percentage");
$config = json_decode($config,true);
$user = M("auth_group_access")->alias("access")->join("left join sys_member member on access.uid=member.uid")->where(['group_id'=>$marketManagerGroupId])->field("access.uid,real_name,nickname")->select();
if(!$user) return;
//获取经理抽成公式
$achievement_bonus = round(($count['appraisal_bonuses']*$config['maintain_appraisal_bonuses_ratio'] + $count['performance_revenue']*$config['appraisal_bonuses_ratio'])/100,2);
$baseData = [
'pay_time'=>$this->date,
'level'=>$marketManagerGroupId,
'pay_amount' => $count['pay_amount'],
'extend_commission'=> round($achievement_bonus*$config['month_bonus_ratio']/100,2),
'wait_commission' => round($achievement_bonus*(100-$config['month_bonus_ratio'])/100,2),
'create_time'=>time(),
'performance_revenue'=>$count['performance_revenue'],
'appraisal_bonuses'=>$count['appraisal_bonuses'],
'achievement_bonus'=>$achievement_bonus,
'wait_achievement_commission'=>round($achievement_bonus*(100-$config['month_bonus_ratio'])/100,2)
];
foreach ($user as $k=> $v) {
$baseData['real_name'] = $v['real_name'];
$baseData['nickname'] = $v['nickname'];
$baseData['admin_id'] = $v['uid'];
$res = $this->marketAltogetherModel->add($baseData);
$config = json_decode($manager['market_percentage'],true);
$achievement_bonus = round(($count['appraisal_bonuses']*$config['maintain_appraisal_bonuses_ratio'] + $count['performance_revenue']*$config['appraisal_bonuses_ratio'])/100,2);
echo "marketManagerSet {$v['real_name']}/{$res}".PHP_EOL;
$baseData = [
'pay_time'=>$this->date,
'level'=>$level,
'pay_amount' => $count['pay_amount'],
'extend_commission'=> round($achievement_bonus*$config['month_bonus_ratio']/100,2),
'wait_commission' => round($achievement_bonus*(100-$config['month_bonus_ratio'])/100,2),
'create_time'=>time(),
'performance_revenue'=>$count['performance_revenue'],
'appraisal_bonuses'=>$count['appraisal_bonuses'],
'achievement_bonus'=>$achievement_bonus,
'wait_achievement_commission'=>round($achievement_bonus*(100-$config['month_bonus_ratio'])/100,2),
'real_name'=>$manager['real_name'],
'admin_id'=>$manager['uid'],
'nickname'=>$manager['nickname'],
'department_id'=>$manager['department_id']
];
$res = $this->marketAltogetherModel->add($baseData);
echo "marketManagerSet {$manager['real_name']}/{$res}".PHP_EOL;
}
}
/**
* 设置每月第一个周一自动重算