|
- <?php
- /**
- * 财务模块
- * Class FinanceController
- * @package backend\modules\zzcs\controllers
- */
-
- namespace backend\modules\zzcs\controllers;
-
- use backend\modules\zzcs\logic\ProdManage;
- use backend\modules\zzcs\models\BaseArea;
- use backend\modules\zzcs\logic\Finance;
- use yii\web\Controller;
- use Yii;
- use backend\modules\zzcs\models\OrderMain;
-
- class FinanceController extends Controller
- {
- public $layout = '@backend/modules/zzcs/views/layouts/zzcs';
- public $enableCsrfValidation = false;
-
- public function actionIndex()
- {
- return 'Hello';
- }
-
- /**
- * Function Description:巴士成本统计报表
- * Function Name: actionBusPostForm
- *
- * @return string
- * @author 温依莅
- */
- public function actionBusCostForm()
- {
- return $this->render('bus-cost-form-loading');
- }
-
- public function actionBusCostForm1()
- {
- $finance = new Finance();
-
- $view = Yii::$app->view;
- $view->title = '巴士统计报表';
- //1,获取参数
- $yesterday = date('Y-m-d', strtotime("-1 days"));
-
- $dimensionality_list = ['日期', '线路', '渠道', '运营负责人'];
-
- $dimensionality = Yii::$app->request->get('dimensionality', 2);//维度 0,日期 1,线路 2,渠道 3,运营负责人
- $dimensionality2 = Yii::$app->request->get('dimensionality2', 0);//线路类型0,全部 1,市内 2,省际
- $start_date = Yii::$app->request->get('start_date', $yesterday);//开始日期
- $bus_start_time = Yii::$app->request->get('bus_start_time', '');//发车时间
- $line_code = Yii::$app->request->get('line_code', '');//线路代码
- $end_date = Yii::$app->request->get('end_date', $yesterday);//结束日期
- $page_size = Yii::$app->request->get('page_size', 30);//每页展示条数
- $current_page = Yii::$app->request->get('current_page', 1);//当前页
-
- $channel_list = Yii::$app->request->get('channel_list', '');//日期维度下的渠道筛选
-
- /*$start_date = Yii::$app->request->get('start_date','2017-03-22');//开始日期
- $end_date = Yii::$app->request->get('end_date','2017-03-25');//结束日期*/
- //2,获取数据
- $form_list = $finance->getDateCost($dimensionality, $dimensionality2, $start_date, $end_date, $page_size, $current_page, $channel_list, $bus_start_time, $line_code);
-
-
- //3.每页展示条数
- $page_size_arr = [10, 30, 50, 100];
-
- $rows = $form_list['rows'];
- $final_amount = $form_list['final_amount'];
- $empty_bus_cost = $form_list['empty_bus_cost'];
- $page_arr = $form_list['page_arr'];
- $page = $form_list['page'];
-
- $data['dimensionality'] = $dimensionality_list;
- $data['rows'] = $rows;
- $data['search_dimensionality'] = $dimensionality;
- $data['final_amount'] = $final_amount;
- $data['empty_bus_cost'] = $empty_bus_cost;
- $data['page_arr'] = $page_arr;
- $data['page'] = $page;
- $data['page_size'] = $page_size;
- $data['page_size_arr'] = $page_size_arr;
- $data['statistical_type'] = $dimensionality_list[$dimensionality];
- $data['start_date'] = $start_date;
- $data['end_date'] = $end_date;
-
-
- return $this->render('bus-cost', $data);
- }
-
- /**
- * Function Description:统计报表
- * Function Name: actionOrderStatisticalForm
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionOrderStatisticalForm()
- {
- $order_main = new OrderMain();
-
- $view = Yii::$app->view;
- $view->title = '统计报表';
-
- //1.维度
- $dimensionality_list = ['渠道', '产品', '日期'];
-
- #region 2.获取参数
- $dimensionality = Yii::$app->request->get('dimensionality');//维度
- $dimensionality2 = Yii::$app->request->get('dimensionality2');//维度
- $dimensionality3 = Yii::$app->request->get('dimensionality3');//维度
- $start_date = Yii::$app->request->get('start_date');//开始日期
- $end_date = Yii::$app->request->get('end_date');//结束日期
- $page_size = Yii::$app->request->get('page_size');//每页展示条数
- $current_page = Yii::$app->request->get('current_page');//当前页
-
- empty($dimensionality) ? $dimensionality = 0 : true;
- empty($dimensionality2) ? $dimensionality2 = 2 : true;
- empty($dimensionality3) ? $dimensionality3 = 0 : true;
- /*
- empty($start_date) ? $start_date = date('Y-m',time()) . '-01' : true;
- empty($end_date) ? $end_date = date('Y-m-d', time()) : true;
- */
- empty($start_date) ? $start_date = date('Y-m-d', strtotime("-1 days")) : true;
- empty($end_date) ? $end_date = date('Y-m-d', strtotime("-1 days")) : true;
- empty($page_size) ? $page_size = 30 : true;
- empty($current_page) ? $current_page = 1 : true;
- #endregion
-
- //3.获取数据
- $form_list = $order_main->getOrderStatisticalForm($dimensionality, $dimensionality2, $dimensionality3, $start_date, $end_date, $page_size, $current_page);
-
- //4.每页展示条数
- $page_size_arr = [10, 30, 50, 100];
-
- $statistical_list = $form_list['rows'];
- $stat_row = $form_list['stat_row'];
- $page_arr = $form_list['page_arr'];
- $page = $form_list['page'];
-
- $data['dimensionality'] = $dimensionality_list;
- $data['search_dimensionality'] = $dimensionality;
- $data['statistical_list'] = $statistical_list;
- $data['stat_row'] = $stat_row;
- $data['page_arr'] = $page_arr;
- $data['page'] = $page;
- $data['page_size'] = $page_size;
- $data['page_size_arr'] = $page_size_arr;
- $data['statistical_type'] = $dimensionality_list[$dimensionality];
- $data['start_date'] = $start_date;
- $data['end_date'] = $end_date;
-
- return $this->render('statistical-form', $data);
- }
-
- /**
- * Function Description:导出数据
- * Function Name: actionExportOrderStatisticalForm
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionExportBusCost()
- {
- $finance = new Finance();
- $base_area = new BaseArea();
- #region 2.获取参数
- $yesterday = date('Y-m-d', strtotime("-1 days"));
- $dimensionality = Yii::$app->request->post('dimensionality', 2);//维度 0,日期 1,线路 2,渠道
- $dimensionality2 = Yii::$app->request->post('dimensionality2', 0);//线路类型0,全部 1,市内 2,省际
- $start_date = Yii::$app->request->post('start_date', $yesterday);//开始日期
- $bus_start_time = Yii::$app->request->post('bus_start_time', '');//发车时间
- $line_code = Yii::$app->request->post('line_code', '');//线路代码
- $end_date = Yii::$app->request->post('end_date', $yesterday);//结束日期
-
- $channel_list = Yii::$app->request->get('channel_list', '');//日期维度下的渠道筛选
- #endregion
-
- //3.获取数据
- $form_list = $finance->getDateCost($dimensionality, $dimensionality2, $start_date, $end_date, 10000, 1, $channel_list, $bus_start_time, $line_code);
-
- $obj_type = ['日期', '线路', '渠道', '运营负责人'];
-
- $cost_list = $form_list['rows'];
- $stat_row = $form_list['final_amount'];
- $stat_row['no'] = '-';
- $stat_row['type_data'] = '合计';
- $empty_bus_cost = $form_list['empty_bus_cost'];
- $empty_bus_cost['no'] = '-';
- $empty_bus_cost['type_data'] = '空车成本';
-
- $table_name = $start_date . '~' . $end_date . '巴士业绩统计';
- $data_title = ['编号', $obj_type[$dimensionality], '订单数', '人次', '上座率', 'GMV', '赔入', '赔出', '成本', 'GP', 'GP率'];
- $data_list = [];
- $index_temp = 0;
- foreach ($cost_list as $k => $v) {
- $data_list[$index_temp]['no'] = $v['no'];
- $data_list[$index_temp]['type_data'] = $v['type_data'];
- $data_list[$index_temp]['order_num'] = number_format($v['order_num']);
- $data_list[$index_temp]['people_num'] = number_format($v['people_num']);
- if ($dimensionality == 2 || $dimensionality == 3 || $v['total_saled_count'] == 0) {
- $data_list[$index_temp]['seat_rate'] = "-";
- } else {
- $seat_rate = ($v['total_saled_count'] == 0) ? 0 : $v['total_saled_count'] / $v['total_seat_count'] * 100;
- $data_list[$index_temp]['seat_rate'] = number_format($seat_rate, 2) . "%";
- }
-
- $data_list[$index_temp]['total_price'] = number_format($v['total_price'], 2);
- $data_list[$index_temp]['peiru'] = number_format($v['peiru'], 2);
- $data_list[$index_temp]['peichu'] = number_format($v['peichu'], 2);
- $data_list[$index_temp]['cost'] = number_format($v['cost'], 2);
- $data_list[$index_temp]['gp'] = number_format($v['gp'], 2);
- $data_list[$index_temp]['gp_rate'] = $v['gp_rate'];
- $index_temp++;
- }
- if ($dimensionality == 2 || $dimensionality == 3) {
- $new_empty_bus_cost = array();
- $new_empty_bus_cost['no'] = count($data_list) + 1;
- $new_empty_bus_cost['type_data'] = '空车成本';
- $new_empty_bus_cost['order_num'] = 0;
- $new_empty_bus_cost['people_num'] = 0;
- $new_empty_bus_cost['seat_rate'] = "0%";
- $new_empty_bus_cost['total_price'] = number_format(0, 2);
- $new_empty_bus_cost['peiru'] = number_format(0, 2);
- $new_empty_bus_cost['peichu'] = number_format(0, 2);
- $new_empty_bus_cost['cost'] = number_format($empty_bus_cost['cost'], 2);
- $new_empty_bus_cost['gp'] = number_format($empty_bus_cost['gp'], 2);
- $new_empty_bus_cost['gp_rate'] = $empty_bus_cost['gp_rate'];
- $data_list[] = $new_empty_bus_cost;
- }
-
- if ($dimensionality == 2 || $dimensionality == 3 || $v['total_saled_count'] == 0) {
- $stat_row['seat_rate'] = "-";
- } else {
- $seat_rate = ($stat_row['total_saled_count'] == 0) ? 0 : $stat_row['total_saled_count'] / $stat_row['total_seat_count'] * 100;
- $stat_row['seat_rate'] = number_format($seat_rate, 2) . "%";
- }
- $data_list[] = [$stat_row['no'], $stat_row['type_data'], number_format($stat_row['order_num']), number_format($stat_row['people_num']), $stat_row['seat_rate'], number_format($stat_row['total_price'], 2), number_format($stat_row['total_peiru'], 2), number_format($stat_row['total_peichu'], 2), number_format($stat_row['cost'], 2), number_format($stat_row['gp'], 2), $stat_row['gp_rate']];
- return $base_area->exportExcel($table_name, $data_title, $data_list);
- }
-
- /**
- * Function Description:门票列表加载
- * Function Name: actionTicketCostFormLoading
- *
- * @return string
- *
- * @author 李健
- */
- public function actionTicketCostFormLoading()
- {
- return $this->render('ticket-cost-form-loading');
- }
-
- /**
- * Function Description:得到门票业绩列表
- * Function Name: actionTicketCostForm
- *
- * @return string
- *
- * @author 李健
- */
- public function actionTicketCostForm()
- {
- $view = Yii::$app->view;
- $view->title = '门票统计报表';
- $dimensionality_list = [ '日期','供应商', '产品名','运营负责人'];
- $dimensionality = Yii::$app->request->get('dimensionality', 3);//维度 1,日期 2,供应商 3,产品名
- $date = date('Y-m-d', strtotime('-1 day'));
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $prod_name = Yii::$app->request->get('prod_name', '');
- $supplier_name = Yii::$app->request->get('supplier_name', '');
- $ticket_type = Yii::$app->request->get('ticket_type', 0);//票种 1 保险 2其他
- $current_page = Yii::$app->request->get('current_page', 1);
- $size = Yii::$app->request->get('page_size', 30);
- $logic = new ProdManage();
- $data = $logic->getProdCostList($dimensionality, $start_date, $end_date, $prod_name, $supplier_name, $ticket_type, $current_page, $size);
-
- $data['dimensionality'] = $dimensionality_list;
- $data['search_dimensionality'] = $dimensionality;
-
- $data['statistical_type'] = $dimensionality_list[$dimensionality - 1];
- $data['start_date'] = $start_date;
- $data['end_date'] = $end_date;
- return $this->render('ticket-cost', $data);
- }
-
- /**
- * Function Description:下载
- * Function Name: actionGetProdCostDetail
- *
- *
- * @author 李健
- */
- public function actionGetProdCostDetail()
- {
- $dimensionality = Yii::$app->request->get('dimensionality', 3);//维度 1,日期 2,供应商 3,产品名
- $ticket_type = Yii::$app->request->get('ticket_type', 0);
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date',$date);
- $end_date = Yii::$app->request->get('end_date',$date);
- $prod_name = Yii::$app->request->get('prod_name','');
- $supplier_name = Yii::$app->request->get('supplier_name','');
- $org_id = Yii::$app->request->get('org_id','');
- $run_duty_id = Yii::$app->request->get('run_duty_id','');
- $prod_id = Yii::$app->request->get('prod_id','');
- $logic = new ProdManage();
- $logic->ExportProdCostDetail($dimensionality,$start_date,$end_date,$prod_name,$supplier_name,$ticket_type,$org_id,$prod_id,$run_duty_id);
- }
-
- /**
- * Function Description:导出门票业绩列表页
- * Function Name: actionExportProdCostList
- *
- *
- * @author 李健
- */
- public function actionExportProdCostList()
- {
- $dimensionality = Yii::$app->request->get('dimensionality', 1);//维度 1,日期 2,供应商 3,产品名
-
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $prod_name = Yii::$app->request->get('prod_name', '');
- $supplier_name = Yii::$app->request->get('supplier_name', '');
- $ticket_type = Yii::$app->request->get('ticket_type', 0);//票种 1 保险 2其他
- $current_page = Yii::$app->request->get('current_page', 1);
- $size = Yii::$app->request->get('page_size', 30);
- $logic = new ProdManage();
- $logic->ExportProdCostList($dimensionality, $start_date, $end_date, $prod_name, $supplier_name, $ticket_type, $current_page, $size);
- }
-
- /**
- * Function Description:巴士工作业绩加载
- * Function Name: actionBusWorkForm
- *
- * @return string
- *
- * @author 李健
- */
- public function actionBusWorkForm()
- {
- return $this->render('bus-work-form-loading');
- }
-
- /**
- * Function Description:巴士工作业绩列表
- * Function Name: actionGetBusWorkList
- *
- * @return string
- *
- * @author 李健
- */
- public function actionGetBusWorkList()
- {
- $current_page = Yii::$app->request->get('current_page', '1');
- $page_size = Yii::$app->request->get('page_size', '30');
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $line_type = Yii::$app->request->get('line_type', '0');
- $logic = new Finance();
- $data = $logic->getBusWorkList($start_date, $end_date, $line_type, $current_page, $page_size);
- $data['start_date'] = $start_date;
- $data['end_date'] = $end_date;
- return $this->render('bus-work', $data);
- }
-
- /**
- * Function Description:巴士工作业绩统计流水导出
- * Function Name: actionGetBusWorkDetail
- *
- *
- * @author 李健
- */
- public function actionGetBusWorkDetail()
- {
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $line_type = Yii::$app->request->get('line_type', '0');
- $user_id = Yii::$app->request->get('user_id', '0');
- $logic = new Finance();
- $logic->getBusWorkDetail($start_date, $end_date, $line_type, $user_id);
- }
-
- /**
- * Function Description:个人巴士工作业绩流水详情
- * Function Name: actionExportBusWorkList
- *
- *
- * @author 李健
- */
- public function actionExportBusWorkList()
- {
- $logic = new Finance();
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $line_type = Yii::$app->request->get('line_type', '0');
- $logic->ExportBusWorkList($start_date, $end_date, $line_type);
- }
-
- /**
- * Function Description:门票工作业绩列表加载
- * Function Name: actionTicketWorkForm
- *
- * @return string
- *
- * @author 李健
- */
- public function actionTicketWorkForm()
- {
- return $this->render('ticket-work-form-loading');
- }
-
- /**
- * Function Description:门票工作业绩列表
- * Function Name: actionGetTicketWorkList
- *
- * @return string
- *
- * @author 李健
- */
- public function actionGetTicketWorkList()
- {
- $current_page = Yii::$app->request->get('current_page', '1');
- $page_size = Yii::$app->request->get('page_size', '30');
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $ticket_type = Yii::$app->request->get('ticket_type', '0');
- $logic = new ProdManage();
- $data = $logic->getTicketWorkList($start_date, $end_date, $ticket_type, $current_page, $page_size);
- $data['start_date'] = $start_date;
- $data['end_date'] = $end_date;
- return $this->render('ticket-work', $data);
- }
-
- /**
- * Function Description:导出门票个人业绩详情
- * Function Name: actionGetTicketWorkDetail
- *
- *
- * @author 李健
- */
- public function actionGetTicketWorkDetail()
- {
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $ticket_type = Yii::$app->request->get('ticket_type', '0');
- $user_id = Yii::$app->request->get('user_id', '0');
- $logic = new ProdManage();
- $logic->getTicketWorkDetail($start_date, $end_date, $ticket_type, $user_id);
- }
-
- /**
- * Function Description:导出门票工作业绩流水
- * Function Name: actionExportTicketWorkList
- *
- *
- * @author 李健
- */
- public function actionExportTicketWorkList()
- {
- $logic = new ProdManage();
- $date = date('Y-m-d');
- $start_date = Yii::$app->request->get('start_date', $date);
- $end_date = Yii::$app->request->get('end_date', $date);
- $ticket_type = Yii::$app->request->get('ticket_type', '0');
- $logic->ExportTicketWorkList($start_date, $end_date, $ticket_type);
- }
-
- }
|