north il y a 8 ans
Parent
commit
e1182ab9a3

+ 28 - 7
www/protected/controllers/ROrderController.php

@@ -154,7 +154,7 @@ class ROrderController extends AdminController{
         $deal_time = intval(Yii::app()->request->getParam('deal_time', time()));
 
         $remark = Yii::app()->request->getParam('remark', '');
-
+        $tech_money = Yii::app()->request->getParam('tech_money','');//保洁师车费
         //$station = Yii::app()->request->getParam('station_id', '');
         $technician_ids = array();
         $technician_names = array();
@@ -380,7 +380,7 @@ class ROrderController extends AdminController{
         $order->deal_time = $deal_time;
         $order->remark = $remark;
         $order->counts = $counts;
-
+        $order->tech_money = $tech_money;//保洁师车费录入
         //$order->station = new MongoId($station);
         // 是否通知保洁师
 
@@ -421,7 +421,7 @@ class ROrderController extends AdminController{
                 CommonFn::requestAjax(false,'修改失败res='.$res.',flag='.$flag);
             }
         }
-        $arr_order = array('cancel_time','refund_time','finish_time','status','booking_time','deal_time','remark', 'station', 'technicians');
+        $arr_order = array('tech_money','cancel_time','refund_time','finish_time','status','booking_time','deal_time','remark', 'station', 'technicians');
         $success = $order->save(true,$arr_order);
         $char = false;
         // 通知保洁师
@@ -1064,14 +1064,35 @@ class ROrderController extends AdminController{
     }
 
     public function actionOutputExcel(){
-        $data = ROrder::model()->findAll();   //
+        $export =Yii::app()->request->getParam('export','execute_order');
+        $export_type = Yii::app()->request->getParam('export_type','');
+        if($export == 'execute_order'){
+            $endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
+            if($export_type == 'day'){
+                $beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
+            } else if($export_type == 'week') {
+                $beginYesterday=mktime(0,0,0,date('m'),date('d')-6,date('Y'));
+            } else if($export_type == 'month') {
+                $beginYesterday=mktime(0,0,0,date('m')-1,1,date('Y'));
+                $endYesterday=mktime(0,0,0,date('m'),1,date('Y'))-1;
+            }
+        } else {
+            $beginYesterday=mktime(0,0,0,date('m')-1,1,date('Y'));
+            $endYesterday=mktime(0,0,0,date('m'),1,date('Y'))-1;
+        }
+
+        $criteria = new EMongoCriteria();
+        $criteria->booking_time('>=',$beginYesterday);//开始时间
+        $criteria->booking_time('<=',$endYesterday);//结束时间
+        $criteria->status('=',6);
+        $data = ROrder::model()->findAll($criteria);
         $rows = CommonFn::getRowsFromCursor($data);
         $data = ROrder::model()->parse($rows);
-        $name='OrderList';    //生成的Excel文件文件名
-        $res=Service::factory('ExcelToArrayService')->push($data,$name);
+        $name=date('Y-m-d').'导出';    //生成的Excel文件文件名
+        $res=Service::factory('ExcelToArrayService')->push($data,$name,$export);
         echo "导出成功";
     }
-
+    //导入文件
     public function actionLoad()
     {
 

+ 2 - 0
www/protected/modules/o2o/models/ROrder.php

@@ -53,6 +53,7 @@ class ROrder extends MongoAr
     public $technicians = array(); // 接单保洁师
     //public $technician = ''; // 接单保洁师,user的id
     //public $technician_name = ''; // 接单保洁师姓名
+    public $tech_money = '';//保洁师车费 单个保洁师
 
     public $address = array(); //地址信息   包含   province  city  area position detail   name  mobile position
 
@@ -166,6 +167,7 @@ class ROrder extends MongoAr
         $newRow['memo'] = CommonFn::get_val_if_isset($row,'memo','');
         $newRow['remark'] = CommonFn::get_val_if_isset($row,'remark','');
         $newRow['technicians'] = CommonFn::get_val_if_isset($row,'technicians','');
+        $newRow['tech_money'] = CommonFn::get_val_if_isset($row,'tech_money',0);
         $user = array();
         $t_user = new ZUser();
         if(isset($row['user']) && $row['user']){

+ 140 - 62
www/protected/services/ExcelToArrayService.php

@@ -9,10 +9,15 @@ class ExcelToArrayService extends Service
 {
 
 
-    /* 导出excel函数*/
-    public function push($data, $name = 'Excel') {
+    /**
+     * @param $data 数据
+     * @param string $name 导出的excel名称
+     * @param $export 导出的类型  execute_export 执行订单汇总 order订单明细 tech保洁师明细
+     */
+    public function push($data, $name = 'Excel',$export) {
         error_reporting(E_ALL);
         date_default_timezone_set('Asia/Shanghai');
+        $channel_option = ROrder::$channel_option;
         $objPHPExcel = new PHPExcel();
         /*以下是一些设置 ,什么作者  标题啊之类的*/
         $objPHPExcel->getProperties()->setCreator("north")
@@ -24,78 +29,151 @@ class ExcelToArrayService extends Service
             ->setCategory("result file");
         /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
         $num = 1;
-        $objPHPExcel->setActiveSheetIndex(0)
-            //Excel的第A列,uid是你查出数组的键值,下面以此类推
-            ->setCellValue('A' . $num, 'ID')
-            ->setCellValue('B' . $num, '订购的服务')
-            //->setCellValue('C' . $num, '数量')
-            //->setCellValue('D' . $num, '使用的代金券')
-            ->setCellValue('C' . $num, '地址/联系方式')
-            ->setCellValue('D' . $num, '支付方式')
-            //->setCellValue('G' . $num, 'charge_id')
-            ->setCellValue('E' . $num, '预约时间')
-            //->setCellValue('F' . $num, '订单处理时间')
-            ->setCellValue('F' . $num, '保洁师')
-            ->setCellValue('G' . $num, '备注')
-            ->setCellValue('H' . $num, '后台备注')
-            ->setCellValue('I' . $num, '状态')
-            ->setCellValue('J'.$num,'总额')
-            ->setCellValue('K'.$num,'折后')
-            ;
-        $num += 1;
-        foreach($data as $key => $value){
-            $technicians = '';
-            foreach($value['technicians'] as $k => $v){
-                $technicians .= $v['technician_name'].'  ';
-            }
-            if (!empty($value['products'][0]['extra']['type']) && !empty($value['products'][0]['extra']['type'])){
-                $product_str = $value['products_str'].$value['products'][0]['extra']['type'].$value['products'][0]['extra']['price'];
-            } else {
-                $product_str = $value['products_str'];
-            }
-            //var_dump();exit;.
+        if($export == 'execute_order'){
             $objPHPExcel->setActiveSheetIndex(0)
                 //Excel的第A列,uid是你查出数组的键值,下面以此类推
-                ->setCellValue('A' . $num, $value['id'])
-                ->setCellValue('B' . $num, $product_str)
-                //->setCellValue('C' . $num, $value['counts'])
-               // ->setCellValue('D' . $num, $coupons)
-                ->setCellValue('C' . $num, $value['address']['city'].$value['address']['area'].$value['address']['poi']['name']
-                    .$value['address']['detail'].$value['address']['name'].',手机号'.$value['address']['mobile'])
-                ->setCellValue('D' . $num, $value['channel'])
-               // ->setCellValue('G' . $num, $value['charge_id'])
-                ->setCellValue('E' . $num, $value['booking_time_str'])
-                //->setCellValue('F' . $num, $value['deal_time_str'])
-                ->setCellValue('F' . $num, $technicians)
-                ->setCellValue('G' . $num, $value['memo'])
-                ->setCellValue('H' . $num, $value['remark'])
-                ->setCellValue('I' . $num, $value['status_str'])
-                ->setCellValue('J'.$num,$value['af_sum_price'])
-                ->setCellValue('K'.$num,$value['sum_price'])
+                ->setCellValue('A' . $num, '服务日期')
+                ->setCellValue('B' . $num, '时间')
+                //->setCellValue('C' . $num, '数量')
+                //->setCellValue('D' . $num, '使用的代金券')
+                ->setCellValue('C' . $num, '联系人')
+                ->setCellValue('D' . $num, '联系方式')
+                //->setCellValue('G' . $num, 'charge_id')
+                ->setCellValue('E' . $num, '所在区')
+                ->setCellValue('F' . $num, '地址')
+                //->setCellValue('F' . $num, '订单处理时间')
+                ->setCellValue('G' . $num, '服务项目')
+                ->setCellValue('H' . $num, '居室')
+                ->setCellValue('I' . $num, '保洁师')
+                ->setCellValue('J' . $num, '备注')
+                ->setCellValue('K'.$num,'支付方式')
+                ->setCellValue('L'.$num,'本单实收')
+                ->setCellValue('M'.$num,'本单营收')
             ;
             $num += 1;
-        }
-       /* foreach ($data as $key => $value) {
-            $ch1 = 65;
-            $ch2 = 65;
-            foreach ($value as $k => $v){
+            foreach($data as $key => $value){
+                if(!empty($value['pay_channel'])){
+                    $pay_option = $channel_option[$value['pay_channel']]['name'];
+                } else {
+                    $pay_option = '';
+                }
 
-                if(is_array($v)){
 
+                $technicians = '';
+                $server_date = date('Y-m-d',$value['booking_time']);
+                $server_time = date('H:i:s',$value['booking_time']);
+
+                foreach($value['technicians'] as $k => $v){
+                    $technicians .= $v['technician_name'].'  ';
+                }
+                if (!empty($value['products'][0]['extra']['type']) && !empty($value['products'][0]['extra']['type'])){
+                    $product_str = $value['products_str'].$value['products'][0]['extra']['type'].$value['products'][0]['extra']['price'];
                 } else {
+                    $product_str = $value['products_str'];
+                }
+                //var_dump();exit;.
+                $objPHPExcel->setActiveSheetIndex(0)
+                    //Excel的第A列,uid是你查出数组的键值,下面以此类推
+                    ->setCellValue('A' . $num, $server_date)
+                    ->setCellValue('B' . $num, $server_time)
+                    ->setCellValue('C' . $num, $value['address']['name'])
+                    // ->setCellValue('D' . $num, $coupons)
+                    //->setCellValue('C' . $num, $value['address']['city'].$value['address']['area'].$value['address']['poi']['name']
+                    //.$value['address']['detail'].$value['address']['name'].',手机号'.$value['address']['mobile'])
+                    ->setCellValue('D' . $num, $value['address']['mobile'])
+                    // ->setCellValue('G' . $num, $value['charge_id'])
+                    ->setCellValue('E' . $num, $value['address']['area'])
+                    ->setCellValue('F' . $num, $value['address']['poi']['name'].$value['address']['detail'])
+                    ->setCellValue('G' . $num, $value['products_str'])
+                    ->setCellValue('H' . $num, $value['products'][0]['extra']['type'])
+                    ->setCellValue('I' . $num, $technicians)
+                    ->setCellValue('J' . $num, $value['memo'].$value['remark'])
+                    ->setCellValue('K'.$num,$pay_option)
+                    ->setCellValue('L'.$num,$value['sum_price'])
+                    ->setCellValue('M'.$num,$value['sum_price'])
+                ;
+                $num += 1;
+            }
+        } else if($export == 'order'){
+            $objPHPExcel->setActiveSheetIndex(0)
                 //Excel的第A列,uid是你查出数组的键值,下面以此类推
-                    if ($ch1 > 90) {
-                        $ch1 = 65;
-                        $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($ch1) . chr($ch2++).$num, $v);
-                    } else{
-                         $objPHPExcel->setActiveSheetIndex(0)->setCellValue(chr($ch1++) . $num, $v);
-                    }
-
+                ->setCellValue('A' . $num, '服务日期')
+                ->setCellValue('B' . $num, '时间')
+                ->setCellValue('C' . $num, '地址')
+                ->setCellValue('D' . $num, '服务项目')
+                ->setCellValue('E' . $num, '保洁师')
+                ->setCellValue('F' . $num, '备注')
+                ->setCellValue('G'.$num,'每人实收')
+                ->setCellValue('H'.$num,'每人营收')
+                ->setCellValue('I'.$num,'车费')
+            ;
+            $num += 1;
+            foreach($data as $key => $value){
+                $technicians = '';
+                $server_date = date('Y-m-d',$value['booking_time']);
+                $server_time = date('H:i:s',$value['booking_time']);
+                $tech_count = count($value['technicians']);
+                foreach($value['technicians'] as $k => $v){
+                    $technicians .= $v['technician_name'].'  ';
 
                 }
+                $objPHPExcel->setActiveSheetIndex(0)
+                    //Excel的第A列,uid是你查出数组的键值,下面以此类推
+                    ->setCellValue('A' . $num, $server_date)
+                    ->setCellValue('B' . $num, $server_time)
+                    ->setCellValue('C' . $num, $value['address']['detail'])
+                    ->setCellValue('D' . $num, $value['products_str'])
+                    ->setCellValue('E' . $num, $technicians)
+                    ->setCellValue('F' . $num, $value['memo'].$value['remark'])
+                    ->setCellValue('G' . $num, $value['sum_price']/$tech_count)
+                    ->setCellValue('H' . $num, $value['sum_price']/$tech_count)
+                    ->setCellValue('I' . $num, $value['tech_money'])
+                ;
+                $num += 1;
             }
+        }else if($export == 'tech'){
+            $objPHPExcel->setActiveSheetIndex(0)
+                //Excel的第A列,uid是你查出数组的键值,下面以此类推
+                ->setCellValue('A' . $num, 'id')
+                ->setCellValue('B' . $num, '订单号')
+                ->setCellValue('C' . $num, '服务日期')
+                ->setCellValue('D' . $num, '下单日期')
+                ->setCellValue('E' . $num, '联系人')
+                ->setCellValue('F' . $num, '联系方式')
+                ->setCellValue('G' . $num, '所在区')
+                ->setCellValue('H' . $num, '地址')
+                ->setCellValue('I' . $num, '保洁师')
+                ->setCellValue('J' . $num, '备注')
+            ;
             $num += 1;
-            }*/
+            foreach($data as $key => $value){
+
+                $technicians = '';
+                $server_date = date('Y-m-d',$value['booking_time']);
+                $server_time = date('H:i:s',$value['booking_time']);
+                $order_id =Yii::app()->params['o2o_service'][$value['products'][0]['product']['type']].'-'.time();
+                foreach($value['technicians'] as $k => $v){
+                    $technicians .= $v['technician_name'].'  ';
+                }
+
+                //var_dump();exit;.
+                $objPHPExcel->setActiveSheetIndex(0)
+                    //Excel的第A列,uid是你查出数组的键值,下面以此类推
+                    ->setCellValue('A' . $num, $value['id'])
+                    ->setCellValue('B' . $num, $order_id)
+                    ->setCellValue('C' . $num, $server_date)
+                    ->setCellValue('D' . $num, $value['order_time_str'])
+                    ->setCellValue('E' . $num, $value['address']['name'])
+                    ->setCellValue('F' . $num, $value['address']['mobile'])
+                    ->setCellValue('G' . $num, $value['address']['area'])
+                    ->setCellValue('H' . $num, $value['address']['detail'])
+                    ->setCellValue('I' . $num, $technicians)
+                    ->setCellValue('J' . $num, $value['memo'].$value['remark'])
+
+                ;
+                $num += 1;
+            }
+        }
 
         $objPHPExcel->getActiveSheet()->setTitle('User');
         $objPHPExcel->setActiveSheetIndex(0);

+ 8 - 0
www/protected/views/layouts/o2o.php

@@ -6,7 +6,15 @@
     <meta name="robots" content="noarchive">
     <title></title>
     <link rel="shortcut icon" href="http://7oxep6.com2.z0.glb.qiniucdn.com/favicon32.png" />
+    <link id="easyuiTheme" rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/jquery-easyui-1.3.6/themes/default/easyui.css">
+    <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/jquery-easyui-1.3.6/themes/icon.css?v=20160222">
     <link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/common/style.css?v=201406221314">
+    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/jquery-easyui-1.3.6/jquery.min.js"></script>
+    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/jquery-easyui-1.3.6/jquery.easyui.min.js?v=201602031010"></script>
+    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/jquery-easyui-1.3.6/easyloader.js"></script>
+    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/jquery-easyui-1.3.6/locale/easyui-lang-zh_CN.js"></script>
+    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/extension/jquery-easyui-edatagrid/jquery.edatagrid.js?v=201402131314"></script>
+    <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/easyui/extension/extend.js?v=201405191314"></script>
     <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/common.js?v=201602031011"></script>
     <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/promise.min.js?v=201401021314"></script>
     <script type="text/javascript" src="<?php echo Yii::app()->request->baseUrl; ?>/js/tinycon.min.js?v=201401021314"></script>

+ 13 - 0
www/protected/views/rOrder/index.php

@@ -226,6 +226,17 @@
                                     </div>
                                 </li>
 
+                                <li class="f_item">
+                                    <div class="box">
+                                        <div class="f_label">
+                                            <span>保洁师车费: </span>
+                                        </div>
+                                        <div class="box_flex f_content">
+                                            <input id="tech_money"  name="tech_money" style="width: 250px;">
+                                        </div>
+                                    </div>
+                                </li>
+
                                 <li class="f_item">
                                     <div class="box">
                                         <div class="f_label">
@@ -1136,6 +1147,7 @@
                 $('#charge_id').html(data.charge_id);
                 $('#memo').html(data.memo);
                 $('#id_str').html(data.id);
+                $('#tech_money').html(data.tech_money);
 
             },
 
@@ -1154,6 +1166,7 @@
                 $('#booking_time_str').val('');
                 $('#deal_time_str').val('');
                 jq_action_info.html('');
+                $('#tech_money').html('');
                 jq_dg_content.datagrid('clearSelections');
                 jq_setStatus.combobox('setValue', 100);
             }