Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 
 
 

271 rader
10 KiB

  1. <?php
  2. namespace backend\modules\zzcs\controllers;
  3. use backend\modules\zzcs\models\BaseArea;
  4. use Yii;
  5. use backend\modules\zzcs\models\BaseSupplier;
  6. use backend\modules\zzcs\models\BusCost;
  7. use backend\modules\zzcs\models\OperaLine;
  8. use backend\modules\zzcs\models\RunBus;
  9. use yii\web\Controller;
  10. class LineController extends Controller
  11. {
  12. public $layout = '@backend/modules/zzcs/views/layouts/zzcs';
  13. public $enableCsrfValidation = false;
  14. /**
  15. * Function Description:巴士成本列表
  16. * Function Name: actionCostList
  17. *
  18. * @return string
  19. *
  20. * @author 张帅
  21. */
  22. public function actionCostList()
  23. {
  24. $base_supplier = new BaseSupplier();
  25. $bus_cost = new BusCost();
  26. $opera_line = new OperaLine();
  27. //获取cookies
  28. $cookies = Yii::$app->request->cookies;
  29. //账号权限
  30. $user_role = $cookies->getValue('ht_user_role');
  31. #region 获取参数
  32. $audit_status = Yii::$app->request->get('audit_status', 444);//审核状态
  33. $date_type_id = Yii::$app->request->get('date_type', 0);//日期类型
  34. $start_date = Yii::$app->request->get('start_date', date('Y-m-d', strtotime("-1 day")));//开始日期
  35. $end_date = Yii::$app->request->get('end_date', date('Y-m-d', strtotime("-1 day")));//结束日期
  36. $cost_id = Yii::$app->request->get('cost_id');//成本编号
  37. $supplier_name = Yii::$app->request->get('supplier_name');//渠道商
  38. $line_code = Yii::$app->request->get('line_code');//线路编号
  39. $opera_name = Yii::$app->request->get('opera_name');//操作人
  40. $page_size = Yii::$app->request->get('page_size', 20);//每页尺寸
  41. $current_page = Yii::$app->request->get('current_page', 1);//当前页
  42. #endregion
  43. $supplier_name == '----请选择----' ? $supplier_name = '' : true;
  44. $line_code == '----请选择----' ? $line_code = '' : true;
  45. //创建一个数组
  46. $data = [];
  47. //1.日期选项
  48. $date_type = ['出发日期', '添加日期'];
  49. //2.结算类型
  50. $settlement_type = [477 => '包车计价', 478 => '车座计价'];
  51. //3.获取所有的车队名称和车队代码
  52. $motorcade = $base_supplier->getMotorcadeInfo( true );
  53. //4.获取所有线路
  54. $line_list = $opera_line->getLineInfo();
  55. //5.获取数据
  56. $cost_list_result = $bus_cost->getCostList($audit_status, $date_type_id, $start_date, $end_date, $cost_id, $supplier_name, $line_code, $opera_name, $page_size, $current_page);
  57. $cost_list = $cost_list_result['rows'];
  58. $page_arr = $cost_list_result['page_arr'];
  59. $page = $cost_list_result['page'];
  60. $page_size_arr = [20, 30, 50, 100];
  61. $data['user_role'] = $user_role;//用户权限
  62. $data['date_type'] = $date_type;//日期选项
  63. $data['settlement_type'] = $settlement_type;//结算类型
  64. $data['motorcade'] = $motorcade;//车队
  65. $data['line_list'] = $line_list;//车队
  66. $data['cost_list'] = $cost_list;//成本列表
  67. $data['page_arr'] = $page_arr;
  68. $data['page'] = $page;
  69. $data['page_size'] = $page_size;
  70. $data['page_size_arr'] = $page_size_arr;
  71. return $this->render('cost-list', $data);
  72. }
  73. /*============================ajax================================ajax=================================ajax======================================*/
  74. /**
  75. * Function Description:获取班次和车次
  76. * Function Name: actionGetRunBus
  77. *
  78. * @return string
  79. *
  80. * @author 张帅
  81. */
  82. public function actionGetRunBus()
  83. {
  84. $run_bus = new RunBus();
  85. #region 1.获取参数
  86. $line_id = Yii::$app->request->post('line_id');//线路id
  87. $run_date = Yii::$app->request->post('run_date');//出发日期
  88. #endregion
  89. $result = $run_bus->getRunBusByLineDate($line_id, $run_date);
  90. $json['code'] = '0';
  91. $json['info'] = '返回数据成功';
  92. $json['list'] = $result;
  93. return json_encode($json);
  94. }
  95. /**
  96. * Function Description:添加成本
  97. * Function Name: actionAddBusCost
  98. *
  99. * @return string
  100. *
  101. * @author 张帅
  102. */
  103. public function actionAddBusCost()
  104. {
  105. $bus_cost = new BusCost();
  106. #region 1.获取参数
  107. $line_id = Yii::$app->request->post('line_id');//线路id
  108. $run_date = Yii::$app->request->post('run_date');//出发日期
  109. $run_time = Yii::$app->request->post('run_time');//出发时间
  110. $bus_order_id = Yii::$app->request->post('bus_order_id');//车号
  111. $settlement_type = Yii::$app->request->post('settlement_type');//结算方式
  112. $cost_motorcade_id = Yii::$app->request->post('cost_motorcade_id');//规定渠道商
  113. $run_id = Yii::$app->request->post('run_id');//班次id
  114. $bus_id = Yii::$app->request->post('bus_id');//车资源id
  115. $run_bus_id = Yii::$app->request->post('run_bus_id');//班次车次唯一id
  116. $saled_count = Yii::$app->request->post('saled_count');//售卖座位数
  117. $cost_price = Yii::$app->request->post('cost_price');//单价
  118. $total_cost_price = Yii::$app->request->post('total_cost_price');//总价
  119. $check_status = Yii::$app->request->post('check_status');//审核状态
  120. $memo = Yii::$app->request->post('memo');//备注
  121. #endregion
  122. #region 2.添加成本
  123. $result = $bus_cost->addBusCost($line_id, $run_date, $run_time, $bus_order_id, $settlement_type, $cost_motorcade_id, $run_id, $bus_id, $run_bus_id, $saled_count, $cost_price, $total_cost_price, $check_status, $memo);
  124. #endregion
  125. return json_encode($result);
  126. }
  127. /**
  128. * Function Description:修改成本
  129. * Function Name: actionUpdateBusCost
  130. *
  131. * @return string
  132. *
  133. * @author 张帅
  134. */
  135. public function actionUpdateBusCost()
  136. {
  137. $bus_cost = new BusCost();
  138. #region 1.获取参数
  139. $cost_id = Yii::$app->request->post('cost_id');//结算方式
  140. $cost_type = Yii::$app->request->post('cost_type');//结算方式
  141. $cost_motorcade_id = Yii::$app->request->post('cost_motorcade_id');//规定渠道商
  142. $saled_count = Yii::$app->request->post('saled_count');//售卖座位数
  143. $cost_price = Yii::$app->request->post('cost_price');//单价
  144. $total_cost_price = Yii::$app->request->post('total_cost_price');//总价
  145. $check_status = Yii::$app->request->post('check_status');//审核状态
  146. $memo = Yii::$app->request->post('memo');//备注
  147. #endregion
  148. #region 2.添加成本
  149. $result = $bus_cost->updateBusCost($cost_id, $cost_type, $cost_motorcade_id, $saled_count, $cost_price, $total_cost_price, $check_status, $memo);
  150. #endregion
  151. return json_encode($result);
  152. }
  153. /**
  154. * Function Description:修改审核状态
  155. * Function Name: actionUpdateCheckCost
  156. *
  157. * @return string
  158. *
  159. * @author 张帅
  160. */
  161. public function actionUpdateCheckCost()
  162. {
  163. $bus_cost = new BusCost();
  164. #region 1.获取参数
  165. $cost_id = Yii::$app->request->post('cost_id');//结算方式
  166. $check_status = Yii::$app->request->post('check_status');//审核状态
  167. #endregion
  168. #region 2.添加成本
  169. $result = $bus_cost->updateCheckCost($cost_id, $check_status);
  170. #endregion
  171. return json_encode($result);
  172. }
  173. /**
  174. * Function Description:巴士成本的导出
  175. * Function Name: actionExportBusExpense
  176. *
  177. * @return string
  178. *
  179. * @author 张帅
  180. */
  181. public function actionExportBusExpense()
  182. {
  183. $bus_cost = new BusCost();
  184. $base_area = new BaseArea();
  185. #region 获取参数
  186. $audit_status = Yii::$app->request->post('audit_status', 444);//审核状态
  187. $date_type_id = Yii::$app->request->post('date_type', 0);//日期类型
  188. $start_date = Yii::$app->request->post('start_date', date('Y-m-d', strtotime("-1 day")));//开始日期
  189. $end_date = Yii::$app->request->post('end_date', date('Y-m-d', strtotime("-1 day")));//结束日期
  190. $cost_id = Yii::$app->request->post('cost_id');//成本编号
  191. $supplier_name = Yii::$app->request->post('supplier_name');//渠道商
  192. $line_code = Yii::$app->request->post('line_code');//线路编号
  193. $opera_name = Yii::$app->request->post('opera_name');//操作人
  194. #endregion
  195. $supplier_name == '----请选择----' ? $supplier_name = '' : true;
  196. $line_code == '----请选择----' ? $line_code = '' : true;
  197. //获取数据
  198. $cost_list_result = $bus_cost->getCostList($audit_status, $date_type_id, $start_date, $end_date, $cost_id, $supplier_name, $line_code, $opera_name, 1000000, 1);
  199. $cost_list = $cost_list_result['rows'];
  200. $table_name = $start_date . '~' . $end_date . '巴士成本管理';//表名
  201. $data_title = ['成本编号', '添加时间', '出发时间', '供应商', '线路编号', '线路名称', '车次', '座位数', '已售人数', '操作人', '计数方式', '数量', '单价', '总价', '备忘'];
  202. $data_list = [];
  203. foreach ($cost_list as $k => $v) {
  204. $data_list[$k]['cost_id'] = $v['cost_id'];
  205. $data_list[$k]['create_time'] = $v['create_time'];
  206. $data_list[$k]['start_time'] = $v['start_time'];
  207. $data_list[$k]['bus_org_name'] = $v['bus_org_name'];
  208. $data_list[$k]['line_code'] = $v['line_code'];
  209. $data_list[$k]['line_name'] = $v['line_name'];
  210. $data_list[$k]['bus_order_id'] = $v['bus_order_id'];
  211. $data_list[$k]['seat_count'] = $v['seat_count'];
  212. $data_list[$k]['saled_count'] = $v['saled_count'];
  213. if ($data_list[$k]['check_status_id'] == 446) {
  214. $data_list[$k]['create_user_name'] = $v['create_user_name'] . '|' . $v['check_user_name'];
  215. } else {
  216. $data_list[$k]['create_user_name'] = $v['create_user_name'];
  217. }
  218. $data_list[$k]['create_user_name'] = $v['create_user_name'];
  219. $data_list[$k]['cost_type'] = $v['cost_type'];
  220. $data_list[$k]['number'] = $v['num'];
  221. $data_list[$k]['cost_price'] = $v['cost_price'];
  222. $data_list[$k]['total_cost_price'] = $v['total_cost_price'];
  223. $data_list[$k]['memo'] = $v['memo'];
  224. }
  225. return $base_area->exportExcel($table_name, $data_title, $data_list);
  226. }
  227. }