|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
}
|