|  | @@ -1317,4 +1317,159 @@ class Dhorder
 | 
	
		
			
				|  |  |          $file = Dever::input('excel_name');
 | 
	
		
			
				|  |  |          return Dever::excelExport($body, $header, $file);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | +    public function head($type=false){
 | 
	
		
			
				|  |  | +        $data = Dever::db('agent/member_goods')->getProduct(array('type'=>'1,2','state'=>1));
 | 
	
		
			
				|  |  | +        $res = array();
 | 
	
		
			
				|  |  | +        foreach($data as $k => $v){
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +            if($v['name'] && $v['total_num']-$v['sell_num']>0 && $v['type_id']!=8){
 | 
	
		
			
				|  |  | +                $key = $v['type'] . '_' . $v['type_id'];
 | 
	
		
			
				|  |  | +                if ($v['type'] == 1) {
 | 
	
		
			
				|  |  | +                    $res[0][$key] = array($v['name'], '价值');
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    $res[0][$key] = array($v['name'], '');
 | 
	
		
			
				|  |  | +                    $res[2][$key] = $v['name'];
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                $res[1][$key] = $v['name'];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  | +        return $res;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    public function out_equity_api($data){
 | 
	
		
			
				|  |  | +        $start = Dever::input('search_option_start_rdate');
 | 
	
		
			
				|  |  | +        $end = Dever::input('search_option_end_rdate');
 | 
	
		
			
				|  |  | +        if($start && $end){
 | 
	
		
			
				|  |  | +            $where['start'] = $start;
 | 
	
		
			
				|  |  | +            $where['end'] = $end;
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            $where['start']=Dever::maketime(date('Y-m-01') . ' 00:00:00');
 | 
	
		
			
				|  |  | +            $where['end'] = strtotime(date('Y-m-d 23:59:59',
 | 
	
		
			
				|  |  | +                strtotime(date('Y-m-01')."+1 month - 1 day")));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $where['type'] = '1,2';
 | 
	
		
			
				|  |  | +        $res = $this->head(1);
 | 
	
		
			
				|  |  | +        $header = array('序号', '代理商姓名', '角色', '电话', '区域','应收合计', '月份', '代理费', '产品费(商品)', '产品费(电器卡)','产品费(菜卡)');
 | 
	
		
			
				|  |  | +        foreach ($res[0] as $k => $v) {
 | 
	
		
			
				|  |  | +            $header[] = $v[0];
 | 
	
		
			
				|  |  | +            if ($v[1]) {
 | 
	
		
			
				|  |  | +                $header[] = $v[1];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        foreach ($res[1] as $k => $v) {
 | 
	
		
			
				|  |  | +            $header[] = $v;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        foreach ($res[2] as $k => $v) {
 | 
	
		
			
				|  |  | +            $header[] = $v;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $body = array();
 | 
	
		
			
				|  |  | +        $body_member = array();
 | 
	
		
			
				|  |  | +        // $data = Dever::db('agent/member_goods')->getSearchAll($where);
 | 
	
		
			
				|  |  | +        foreach ($data as $k => $v) {
 | 
	
		
			
				|  |  | +            $member_goods[] = Dever::db('agent/member_goods')->getOne(array('mid'=>$v['id'],'type'=>'1,2'));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        foreach($member_goods as $k => $v){
 | 
	
		
			
				|  |  | +            if($v){
 | 
	
		
			
				|  |  | +                $body_member[] = $v;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        foreach ($body_member as $k => $v) {
 | 
	
		
			
				|  |  | +            $month = date('Y-m',$v['cdate']);
 | 
	
		
			
				|  |  | +            $member = Dever::db('agent/member')->find($v['mid']);
 | 
	
		
			
				|  |  | +            $role = Dever::db('setting/role')->find(array('id'=>$member['role']));
 | 
	
		
			
				|  |  | +            $area = '';
 | 
	
		
			
				|  |  | +            if($member['area']){
 | 
	
		
			
				|  |  | +                $area = Dever::load("area/api.string", $member['area']);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            $order = Dever::db('agent/order')->find(array('mid'=>$v['mid']));
 | 
	
		
			
				|  |  | +            $heji = 0;
 | 
	
		
			
				|  |  | +            $product_cash = 0;
 | 
	
		
			
				|  |  | +            $dianqi_cash = 0;
 | 
	
		
			
				|  |  | +            $caipin_cash = 0;
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +            $d = array
 | 
	
		
			
				|  |  | +            (
 | 
	
		
			
				|  |  | +                $k,
 | 
	
		
			
				|  |  | +                $member['name'],
 | 
	
		
			
				|  |  | +                $role['name'],
 | 
	
		
			
				|  |  | +                $member['mobile'],
 | 
	
		
			
				|  |  | +                $area,
 | 
	
		
			
				|  |  | +                0,
 | 
	
		
			
				|  |  | +                $month,
 | 
	
		
			
				|  |  | +                $order['agent_cash'],
 | 
	
		
			
				|  |  | +                0,
 | 
	
		
			
				|  |  | +                0,
 | 
	
		
			
				|  |  | +                0,
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            );
 | 
	
		
			
				|  |  | +            $i = count($d);
 | 
	
		
			
				|  |  | +            $goods = array();
 | 
	
		
			
				|  |  | +            foreach ($res[0] as $k1 => $v1) {
 | 
	
		
			
				|  |  | +                list($type, $type_id) = explode('_', $k1);
 | 
	
		
			
				|  |  | +                $goods[$k1] = Dever::db('agent/member_goods')->getTotal(array('start'=>$where['start'],'end'=>$where['end'],'mid'=>$v['mid'],'type'=>$type, 'type_id' => $type_id));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                $d[$i] = 0;
 | 
	
		
			
				|  |  | +                if ($goods[$k1]) {
 | 
	
		
			
				|  |  | +                    $d[$i] = $goods[$k1]['total_num'] ? $goods[$k1]['total_num'] : 0;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +                if ($v1[1]) {
 | 
	
		
			
				|  |  | +                    $i++;
 | 
	
		
			
				|  |  | +                    $d[$i] = 0;
 | 
	
		
			
				|  |  | +                    if ($goods[$k1]) {
 | 
	
		
			
				|  |  | +                        $d[$i] = $goods[$k1]['cash'] ? $goods[$k1]['cash'] : 0;
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if ($type == 1) {
 | 
	
		
			
				|  |  | +                    $product_cash += $goods[$k1]['cash'] ? $goods[$k1]['cash'] : 0;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if ($type == 2 ) {
 | 
	
		
			
				|  |  | +                   if(strstr($v1[0], '器具')){
 | 
	
		
			
				|  |  | +                        $dianqi_cash += $goods[$k1]['cash'] ? $goods[$k1]['cash'] : 0;
 | 
	
		
			
				|  |  | +                   } else {
 | 
	
		
			
				|  |  | +                        $caipin_cash += $goods[$k1]['cash'] ? $goods[$k1]['cash'] : 0;
 | 
	
		
			
				|  |  | +                   }
 | 
	
		
			
				|  |  | +                    // if ($v)
 | 
	
		
			
				|  |  | +                    
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +                $i++;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            $d[5] = $order['agent_cash'] + $product_cash + $dianqi_cash + $caipin_cash;
 | 
	
		
			
				|  |  | +            $d[8] = $product_cash;
 | 
	
		
			
				|  |  | +            $d[9] = $dianqi_cash;
 | 
	
		
			
				|  |  | +            $d[10] = $caipin_cash;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            foreach ($res[1] as $k1 => $v1) {
 | 
	
		
			
				|  |  | +                $d[$i] = 0;
 | 
	
		
			
				|  |  | +                if ($goods[$k1]) {
 | 
	
		
			
				|  |  | +                    $d[$i] = $goods[$k1]['sell_num'] ? $goods[$k1]['sell_num'] : 0;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                $i++;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +           
 | 
	
		
			
				|  |  | +            foreach ($res[2] as $k1 => $v1) {
 | 
	
		
			
				|  |  | +                list($type, $type_id) = explode('_', $k1);
 | 
	
		
			
				|  |  | +                $sku = Dever::db('agent/member_goods')->getCardAll(array('start'=>$where['start'],'end'=>$where['end'],'type_id'=>$type_id,'type'=>$type,'mid'=>$v['mid']));
 | 
	
		
			
				|  |  | +                $array = array_column($sku, 'sku_id');
 | 
	
		
			
				|  |  | +                $sku_id = implode(",",$array);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                if($sku_id){
 | 
	
		
			
				|  |  | +                    $sell_order[$k1] = Dever::db('shop/sell_order')->getCardAll(array('start'=>$where['start'],'end'=>$where['end'],'card_code_id'=>$sku_id));
 | 
	
		
			
				|  |  | +                }else{
 | 
	
		
			
				|  |  | +                    $sell_order[$k1]['total'] = 0;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                if($sell_order[$k1]){
 | 
	
		
			
				|  |  | +                    $d[$i] = $sell_order[$k1]['total'] ? $sell_order[$k1]['total'] : 0 ;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                $i++;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +            $body[] = $d;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        $file = Dever::input('excel_name');
 | 
	
		
			
				|  |  | +        return Dever::excelExport($body, $header, $file);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +   
 | 
	
		
			
				|  |  |  }
 |