前台表格:
<div class="table-container" style="width: 80%;text-align: center;margin-left: 8%;">
<h2 style="margin: 15px 0;">首电分配计费统计表</h2>
<table class="table table-bordered table-condensed table-hover nowrap">
<thead>
<tr>
<th class="table-row-title" id="obliqueLine" rowspan="2" style="width: 20%;">
<span style="float:left;margin-top:30px;position: relative;left: 30px;">团队 / 个人</span>
<span style="float:right;position: relative;right: 10px;">渠道备注类型</span>
</th>
{volist name="qd_arr" id="vo"}
<th style="width: 50px; text-align: center;" colspan="2">{$vo.channelRemark}</th>
{/volist}
<th class="table-row-title" colspan="2">合计</th>
</tr>
<tr>
<?php
for($i=0;$i<=$qd_count;$i++){
echo "<th style='width: 50px; text-align: center;'>首电条数</th><th style='width: 50px; text-align: center;'>首电金额(元)</th>";
}
?>
</tr>
</thead>
<tbody>
{volist name='deps' id='vo'}
<tr>
<td>{$vo.DVAL}</td>
{volist name="qd_arr" id="vb"}
<td><?php echo $tparr[$vo['KEYID'].'_'.$vb['id']]['qdnum'];?></td>
<td><?php echo $tparr[$vo['KEYID'].'_'.$vb['id']]['qdjine'];?></td>
{/volist}
<td class="big"><?php echo $hjarr[$vo['KEYID']]['qdnum'];?></td>
<td class="big"><?php echo $hjarr[$vo['KEYID']]['qdjine'];?></td>
</tr>
{/volist}
<tr class="big">
<td style="font-size: 14px;">合计</td>
{volist name="qd_arr" id="vo"}
<td><?php echo $xhjarr[$vo['id']]['qdnum'];?></td>
<td><?php echo $xhjarr[$vo['id']]['qdjine'];?></td>
{/volist}
<td>{$hjnum}</td>
<td>{$hjjine}</td>
</tr>
</tbody>
</table>
</div>
后台方法:
//分配首电计费统计
public function 方法名(){
$STAFF = session('USER_STAFF');
$centreId = input('C'); // 服务中心
$depId = input('D'); // 服务部门
$serviceId = input('S'); // 服务经理
$assignTime = input('AT'); // 分配时间
$depstr = '';
$depstr = 'KEYID='.$STAFF['UGID'];
$serviceCentres= Db::name('base_dep')->field('KEYID,DVAL')->where("PID=3 AND STATE=1")->where($depstr)->select();
$this->assign('serviceCentres',$serviceCentres);
$this->assign('centreId',$centreId);
$this->assign('depId',$depId);
$this->assign('serviceId',$serviceId);
$this->assign('assignTime',$assignTime);
$qd_arr = Db::name('chot_price_conf')->field('id,channelRemark')->where('ifUse',1)->order('id desc')->select();
$this->assign('qd_arr',$qd_arr);
$qd_count = Db::name('chot_price_conf')->field('id,channelRemark')->where('ifUse',1)->count();
$this->assign('qd_count',$qd_count);
$where = array();
$where['compid'] = $STAFF['compid'];
if($assignTime){
$times = explode(' ~ ',$assignTime);
$sTime = $times[0];
$eTime = $times[1];
}else{
$sTime = date("Y-m-d H:i:s",strtotime("-30 day"));
$eTime = date('Y-m-d H:i:s');
}
$where["assignTime"] = array('between',array($sTime,$eTime));
if(!($centreId || $depId || $serviceId)){
$field = "centerId as teamId,centerName as team,remarkTypeName,count(*) as count,sum(unitPrice) as cost";
$group = "centerName,remarkTypeName";
}
if($centreId){
$where["centerId"] = $centreId;
$field = "depId as teamId,depName as team,remarkTypeName,count(*) as count,sum(unitPrice) as cost";
$group = "depName,remarkTypeName";
}
if($depId){
$where["depId"] = $depId;
$field = "staffId as teamId,staffName as team,remarkTypeName,count(*) as count,sum(unitPrice) as cost";
$group = "staffName,remarkTypeName";
}
if($serviceId){
$where["staffId"] = $serviceId;
$field = "staffId as teamId,staffName as team,remarkTypeName,count(*) as count,sum(unitPrice) as cost";
$group = "remarkTypeName";
}
$sign = Db::name('chot_billing_record')
-> where($where)
-> field($field)
-> group($group)
-> select();
$this->assign('sign',$sign);
//提取左侧团队或个人
$darr = array();
$deps = array();
foreach ($sign as $key => $val) {
if(!in_array($val['teamId'],$darr)){
$darr[] = $val['teamId'];
$deps[] = array('KEYID'=>$val['teamId'],'DVAL'=>$val['team']);
}
}
$this->assign('deps',$deps);
$hjarr = array();//右侧由左到右的合计
$xhjarr = array();//底部由上到下的合计
$tparr = array();//每类的数据
foreach ($qd_arr as $key => $val){
$xhjarr[$val['id']] = array('qdnum' => 0,'qdjine' => 0);
}
foreach ($deps as $key => $value) {
$hjarr[$value['KEYID']] = array('qdnum' => 0,'qdjine'=> 0);
foreach ($qd_arr as $key => $val){
$tparr[$value['KEYID'].'_'.$val['id']] = array('qdnum'=> 0,'qdjine'=>0);
}
}
$hjnum = 0;
$hjjine = 0;
foreach ($deps as $key => $value) {
foreach ($qd_arr as $key => $val){
foreach ($sign as $key => $v){
if($v['teamId'] == $value['KEYID'] && $v['remarkTypeName']==$val['channelRemark']){
$tparr[$value['KEYID'].'_'.$val['id']] = array('qdnum'=>$v['count'],'qdjine'=>$v['cost']);
$hjarr[$value['KEYID']]['qdnum'] = $hjarr[$value['KEYID']]['qdnum']+$v['count'];
$hjnum = $hjnum + $v['count'];
$hjjine = $hjjine+$v['cost'];
$hjarr[$value['KEYID']]['qdjine'] = $hjarr[$value['KEYID']]['qdjine']+$v['cost'];
$xhjarr[$val['id']]['qdnum'] = $xhjarr[$val['id']]['qdnum']+$v['count'];
$xhjarr[$val['id']]['qdjine'] = $xhjarr[$val['id']]['qdjine']+$v['cost'];
}
}
}
}
$this->assign('hjnum',$hjnum);
$this->assign('hjjine',$hjjine);
$this->assign('tparr',$tparr);
$this->assign('hjarr',$hjarr);
$this->assign('xhjarr',$xhjarr);
return $this->fetch('firstcall_cost');
}