Your Name 2 jaren geleden
bovenliggende
commit
0d48c9d3c1

+ 14 - 0
app/shop/database/sell_order.php

@@ -958,5 +958,19 @@ return array
             'type' => 'one',
             'col' => 'sum(card_code_cash) as total',
         ),
+        'getCardAll' => array
+        (
+            # 匹配的正则或函数 选填项
+            'where' => array
+            (
+                'start' => array('yes-cdate', '>='),
+                'end' => array('yes-cdate', '<='),
+                'card_code_id' => 'yes',
+                // 'status' => array('yes', 'in'),
+                'state' => 1,
+            ),
+            'type' => 'one',
+            'col' => 'sum(card_code_cash) as total',
+        ),
     ),
 );

+ 1 - 0
app/shop/lib/Sell.php

@@ -1000,6 +1000,7 @@ class Sell
         $order_data['refund_cash'] = 0;
 
         if ($card) {
+            // $order_data['card_id'] = $card['info']['id'];
         	$order_data['card_code_id'] = $card['id'];
             $order_data['card_code_card'] = $card['card'];
             $order_data['card_code_cash'] = $card['cash'];

+ 3 - 0
service/agent/database/member.php

@@ -111,6 +111,9 @@ if($search_auth == 2){
     }
     
 }
+if(Dever::load('manage/auth')->checkFunc('agent.member', 'editCardMout', '权益数据导出')){
+    $excel[] = array('权益数据导出','权益数据导出', 'agent/lib/dhorder.out_equity');
+}
 
 $title = function() use($search_auth)
 {

+ 81 - 1
service/agent/database/member_goods.php

@@ -263,7 +263,7 @@ return array
             'desc'      => '',
             # 只有insert时才生效
             'insert'    => true,
-            //'search'    => 'date',
+            'search'    => 'date',
             //'list'      => 'date("Y-m-d H:i:s", {cdate})',
         ),
     ),
@@ -479,5 +479,85 @@ return array
             'order' => array('cdate'=>'desc'),
             'col' => '*',
         ),
+
+        'getTotal' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'start' => array('yes-cdate','>='),
+                'end' => array('yes-cdate','<='),
+                'mid' => 'yes',
+                'type' => array('yes','in'),
+                'type_id' => 'yes',
+                'state' => 1,
+            ),
+            'type' => 'one',
+            // 'order' => array('cdate'=>'desc'),
+            'col' => 'sum(cash) as cash,sum(total_num) as total_num,sum(sell_num) as sell_num',
+        ),
+        'getProduct' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'start' => array('yes-cdate','>='),
+                'end' => array('yes-cdate','<='),
+                'mid' => 'yes',
+                'type' => array('yes','in'),
+                'type_id' => array('yes','in'),
+                'state' => 1,
+            ),
+            'type' => 'all',
+            'group' => 'type,type_id',
+            'order' => array('type'=>'asc', 'type_id' => 'desc'),
+            'col' => '*,sum(total_num)-sum(sell_num) as num',
+        ),
+
+        'getSearchAll' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'start' => array('yes-cdate','>='),
+                'end' => array('yes-cdate','<='),
+                'type' => array('yes','in'),
+                'state' => 1,
+            ),
+            'type' => 'all',
+            
+            'col' => '*',
+        ),
+
+        'getCardAll' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'start' => array('yes-cdate','>='),
+                'end' => array('yes-cdate','<='),
+                'mid' => 'yes',
+                'type'=>'yes',
+                'type_id' => array('yes','in'),
+                'state' => 1,
+            ),
+            'type' => 'all',
+            
+            'col' => 'sku_id',
+        ),
+        'getOne' => array
+        (
+            # 匹配的正则或函数 选填项
+            'option' => array
+            (
+                'mid' => 'yes',
+                'type'=>array('yes','in'),
+                'type_id' => array('yes','in'),
+                'state' => 1,
+            ),
+            'type' => 'one',
+            
+            'col' => '*',
+        ),
     ),
 );

+ 155 - 0
service/agent/lib/Dhorder.php

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