[ 'class' => VerbFilter::className(), 'actions' => [ 'delete' => ['POST'], ], ], ]; } /** * Lists all BusOrder models. * @return mixed */ public function actionIncome() { $searchModel = new searchOrder(); $searchModel->date_type = 1; $time = strtotime('-1 months'); $searchModel->date_from = date('Y-m-01', $time); $searchModel->date_to = date('Y-m-t', $time); $search = Yii::$app->request->queryParams; $dataProvider = $searchModel->search($search); if (Yii::$app->request->isPjax) { return $this->renderPartial('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } else { return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } } /** * 外部调车应付记录 * * @return string * * @author wangxj */ public function actionOutcome() { $searchModel = new searchOrder(); $searchModel->date_type = 1; $time = strtotime('-1 months'); $searchModel->date_from = date('Y-m-01', $time); $searchModel->date_to = date('Y-m-t', $time); $search = Yii::$app->request->queryParams; $searchModel->send_type = 1; $dataProvider = $searchModel->search($search); if (Yii::$app->request->isPjax) { return $this->renderPartial('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } else { return $this->render('index', [ 'searchModel' => $searchModel, 'dataProvider' => $dataProvider, ]); } } /** * Finds the BusOrder model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return BusOrder the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = BusOrder::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } } /** * User: wangxj * * 开关账操作 * * 关账的时候要同步一次出车任务中run_id不为0的数据 * * @param integer $send_type 应收 应付 * @param $type ['open', 'close'] */ public function actionCondom() { $searchModel = new searchOrder(); $search = Yii::$app->request->post(); $searchModel->search($search); $type = $_REQUEST['type']; $send_type = $_REQUEST['send_type']; $searchModel->send_type = $send_type; $tran = Yii::$app->db->beginTransaction(); $rows = 0; try{ $rows = $searchModel->condomAction($type); }catch (Exception $e){ // $tran->rollBack(); } if ($rows) { $tran->commit(); $result = ['code' => 0, 'msg' => ($type == 'open' ? '取消关账' : '关账') . '成功!']; } else { $tran->rollBack(); $result = ['code' => 1, 'msg' => ($type == 'open' ? '取消关账' : '关账') . '失败!']; } return Json::encode($result); } /** * User: wangxj * * 应收管理 导出订单 * */ public function actionExport() { ini_set("memory_limit", "-1"); $objPHPExcel = new zPhpExcel(); //实例化PHPExcel类 $objSheet = $objPHPExcel->getActiveSheet(); //获取当前活动sheet的操作对象 $searchModel = new searchOrder(); $search = Yii::$app->request->queryParams; $dataProvider = $searchModel->search($search); $dataProvider-> pagination = false; $data = $dataProvider->getModels(); //出车 / 收车日期{开始日期}-{结束日期} {客户名称} {5种结算状态}订单 $client = ''; $status = $searchModel->end_status === '' ? '' : (' ' . searchOrder::$finance_type_array[$searchModel->end_status]); $objPHPExcel->file_name = ($searchModel->date_type == 1 ? '出车日期' : '收车日期') . ' ' . ($searchModel->date_from . '-' . $searchModel->date_to) . ' ' . $client . ' ' . $status; $objSheet->setTitle('订单列表'); $order_sort = ['id', 'bus_number', 'create_time', 'depart_name', 'itinerary_name', 'bus_no', 'run_bus_id', 'run_date', 'date_end', 'bus_cost', 'bus_cost_id', 'send_cost', 'pay_type_name', 'end_status_name']; //设置表头 $a_k = range('A', 'N'); foreach ($a_k as $key => $item) { $objSheet->setCellValue($item . '1', $searchModel->getAttributeLabel($order_sort[$key])); } foreach ($data as $key => $datum) { foreach ($a_k as $index => $item) { if ($item == 'A') $objSheet->setCellValue($item . ($key + 2), $key + 1); else $objSheet->setCellValue($item . ($key + 2), $order_sort[$index] == 'run_bus_id' ? ($datum->$order_sort[$index] == 0 ? '-' : $datum->$order_sort[$index]) : $datum->$order_sort[$index]); } } //设置宽度 $objPHPExcel->setColumnSize(range('C', 'N'), [20, 20, 55, 12, 10, 12, 10, 10, 12, 12,12,12,12]); $objPHPExcel->output(); } /** * User: wangxj * * 生成对账单,BusOrderFinance * */ public function actionGenerateOrderFinance() { $searchModel = new searchOrder(); $search = Yii::$app->request->post(); $searchModel->search($search); $end_attr = $searchModel->send_type ? 'outcome_end_status' : 'end_status'; if ($searchModel->$end_attr != 1) { $result = ['code' => 1, 'msg' => '请切换已关账的出车订单!']; } else { //客户为单位,所需数据 $data = $searchModel->getOrderFinanceOrder(); if (count($data) > 0) { $transaction = Yii::$app->db->beginTransaction(); try { foreach ($data as $datum) { /* @var $datum \backend\modules\motorcade\models\searchOrder */ $orderFinance = new BusOrderFinance(); $orderFinance->DATE_FROM = $searchModel->date_from; $orderFinance->DATE_TO = $searchModel->date_to; $orderFinance->USE_BUS_ORG_ID = $datum->use_bus_org_id; $orderFinance->BUS_COST = $searchModel->send_type ? $datum->send_cost : $datum->bus_cost; $orderFinance->FINANCE_TYPE = $searchModel->send_type ? 1 : 0; $orderFinance->BUS_ORDER_COUNT = $datum->bus_order_count; if ($orderFinance->save()) { if ($orderFinance->FINANCE_TYPE == 1) { BusOrder::updateAll(['outcome_end_status' => BusOrder::STATUS_END_WAITING_CONFIRM, 'bus_order_outcome_finance' => $orderFinance->ID], 'id in (' . $datum->bus_ids . ')'); } else { BusOrder::updateAll(['end_status' => BusOrder::STATUS_END_WAITING_CONFIRM, 'bus_order_finance' => $orderFinance->ID], 'id in (' . $datum->bus_ids . ')'); } } } $transaction->commit(); $result = ['code' => 0, 'msg' => '生成对账单成功!']; } catch (Exception $e) { $transaction->rollBack(); $result = ['code' => 1, 'msg' => '生成对账单失败!']; } } else { $result = ['code' => 1, 'msg' => '无数据生成对账单!']; } } return Json::encode($result); } }