You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
simple-yewu/frontend/controllers/FixCarController.php

885 lines
29 KiB

<?php
namespace frontend\controllers;
use common\libs\MyLib;
use common\models\BrandT;
use common\models\CarGiftT;
use common\models\CarLogT;
use common\models\CarT;
use common\models\CarTypeT;
use common\models\DirectionT;
use common\models\DisplacementT;
use common\models\FixCarT;
use common\models\FixItemT;
use common\models\FixTypeUserT;
use common\models\RangeT;
use common\models\SeriesT;
use common\models\UserT;
use Yii;
use yii\web\Response;
class FixCarController extends BaseController
{
public $my = null;
public $enableCsrfValidation = false;
public $layout = 'blue-main';
public function init()
{
parent::init();
$cookie = Yii::$app->request->cookies;
$user_id = MyLib::encrypt($cookie->get('aid'),'DECODE');
if($user_id != 0)
{
$this->my = UserT::findOne(['id'=>$user_id]);
} else {
Yii::$app->response->redirect('/common/login')->send();
exit;
}
}
public function actionMySearch() {
return $this->render('my-search');
}
public function actionMySearchResult()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$engine_no = $request->get('engine_no');
$car_frame_no = $request->get('car_frame_no');
$car_man = $request->get('car_man');
$car_phone = $request->get('car_phone');
$query = CarT::find();
if($car_no != '') {
$query = $query->andWhere('car_no like "'.$car_no.'"');
}
if($engine_no != '') {
$query = $query->andWhere('engine_no like "'.$engine_no.'"');
}
if($car_frame_no != '') {
$query = $query->andWhere('car_frame_no like "'.$car_frame_no.'"');
}
if($car_man != '') {
$query = $query->andWhere('car_man like "'.$car_man.'"');
}
if($car_phone != '') {
$query = $query->andWhere('phone like "'.$car_phone.'"');
}
$items = $query->all();
return $this->render('my-search-result',[
'items' => $items
]);
}
public function actionMyList()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find()
->where('status=0');
$user_ids = $this->getChildrenUserIDs();
$query = $query->andWhere(['in','user_id',$user_ids]);
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('id DESC');
$items = $query->all();
return $this->render('my-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionMyListFinish()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find()
->where('status>0');
$user_ids = $this->getChildrenUserIDs();
$query = $query->andWhere(['in','user_id',$user_ids]);
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC');
$items = $query->all();
return $this->render('my-list-finish',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionMyListDelete()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '删除失败';
if($request->isPost) {
$id = $request->post('id',0);
if($id > 0) {
$row = FixCarT::findOne(['id'=>$id]);
$row->delete();
FixItemT::deleteAll('fix_id='.$id);
$result['success'] = true;
$result['msg'] = '删除成功';
}
}
return $result;
}
public function actionMyListEdit()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
$car_id = $request->get('car_id',0);
$status = $request->get('status',0);
$type = $request->get('type',0);
$gift_enable = $request->get('gift_enable',0);
if($id > 0) {
$info = FixCarT::findOne(['id'=>$id]);
} else {
$info = new FixCarT();
}
if($car_id > 0) {
$car_info = CarT::find()
->where(['id'=>$car_id])
->orderBy('register_date DESC')
->one();
$info->car_id = $car_info->id;
$info->car_no = $car_info->car_no;
$info->engine_no = $car_info->engine_no;
$info->car_frame_no = $car_info->car_frame_no;
$info->id_man = $car_info->id_man;
$info->id_phone = $car_info->phone;
$info->link_man = $car_info->car_man;
$info->link_phone = $car_info->phone;
$info->company = $car_info->company;
$info->brand_id = $car_info->brand_id;
$info->series_id = $car_info->series_id;
$info->displacement_id = $car_info->displacement_id;
$info->car_year = $car_info->car_year;
$info->status = $status;
// var_dump($car_info->car_year);
// var_dump($info->car_year);
// die;
}
if($car_id == 0) {
$car_id = $info->car_id;
$car_info = $info->car;
}
//礼品
$gift_items = CarGiftT::find()
->where('car_id='.$car_info->id)
->orderBy('strategy_id DESC')
->all();
$direction_items = DirectionT::find()->all();
$range_items = RangeT::find()->all();
//司机
$driver_items = UserT::find()
->where('group_id=34 and is_leave=0')
->orderBy('username ASC')
->all();
//品牌
$brand_items = BrandT::find()->all();
//车系
$series_items = SeriesT::find()
->where('brand_id='.intval($info->brand_id))
->all();
//排量
$displacement_items = DisplacementT::find()
->where('series_id='.intval($info->series_id))
->all();
//读取记录
$log_items = CarLogT::find()
->where('car_id='.$info->car_id.' and type=2')
->orderBy('id DESC')
->all();
return $this->render('my-list-edit',[
'info' => $info,
'gift_items' => $gift_items,
'direction_items' => $direction_items,
'range_items' => $range_items,
'log_items' => $log_items,
'driver_items' => $driver_items,
'brand_items' => $brand_items,
'series_items' => $series_items,
'displacement_items' => $displacement_items,
'type' => $type,
'gift_enable' => $gift_enable
]);
}
public function actionMyListSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '保存失败';
if($request->isPost) {
$id = $request->post('id',0);
$car_id = $request->post('car_id');
$car_no = $request->post('car_no');
$engine_no = $request->post('engine_no');
$car_frame_no = $request->post('car_frame_no');
$new_price = $request->post('new_price');
$brand_id = $request->post('brand_id');
$series_id = $request->post('series_id');
$displacement_id = $request->post('displacement_id');
$car_year = $request->post('car_year');
$id_man = $request->post('id_man');
$id_phone = $request->post('id_phone');
$link_man = $request->post('link_man');
$link_phone = $request->post('link_phone');
$company = $request->post('company');
$insurer1_no = $request->post('insurer1_no');
$insurer2_no = $request->post('insurer2_no');
$receive_date = $request->post('receive_date');
$receive_type = $request->post('receive_type');
$accident_type = $request->post('accident_type');
$responsibility = $request->post('responsibility');
$replace_car_id = $request->post('replace_car_id');
$driver_id = $request->post('driver_id');
$direction_id = $request->post('direction_id');
$range_id = $request->post('range_id');
$address = $request->post('address');
$report_no = $request->post('report_no');
$receive_mileage = $request->post('receive_mileage');
$receive_oil = $request->post('receive_oil');
$factory_mileage = $request->post('factory_mileage');
$factory_oil = $request->post('factory_oil');
$finish_date = $request->post('finish_date');
$remark = $request->post('remark');
$sys_remark = $request->post('sys_remark');
$status = $request->post('status');
$baoan_man = $request->post('baoan_man');
$baoan_time = $request->post('baoan_time');
$baoan_address = $request->post('baoan_address');
$chuxian_time = $request->post('chuxian_time');
$shigu_info = $request->post('shigu_info');
$lipei_company = $request->post('lipei_company');
$zhuche_money = $request->post('zhuche_money');
$sanzhe_money = $request->post('sanzhe_money');
$wusun_money = $request->post('wusun_money');
$tuoche = $request->post('tuoche');
$tuoche_money = $request->post('tuoche_money');
$dingsun_hour_money = $request->post('dingsun_hour_money');
$dingsun_huanjian_money = $request->post('dingsun_huanjian_money');
$peifu_bili = $request->post('peifu_bili');
$peifu_money = $request->post('peifu_money');
$kehu_money = $request->post('kehu_money');
if($car_no == '') {
$result['msg'] = '请输入车牌号码';
return $result;
}
if($accident_type == '') {
$result['msg'] = '请选择事故类型';
return $result;
}
if($id_man == '') {
$result['msg'] = '请输入被保险人';
return $result;
}
if($id_phone == '') {
$result['msg'] = '请输入被保险人电话';
return $result;
}
if($link_man == '') {
$result['msg'] = '请输入联系人';
return $result;
}
if($link_phone == '') {
$result['msg'] = '请输入联系人电话';
return $result;
}
if($company == '') {
$result['msg'] = '请输入保险公司';
return $result;
}
if($receive_date == '') {
$result['msg'] = '请输入接车日期';
return $result;
}
if($receive_type == '') {
$result['msg'] = '请选择接车方式';
return $result;
}
if($responsibility == '') {
$result['msg'] = '请选择责任';
return $result;
}
if($brand_id == 0) {
$result['msg'] = '请选择品牌';
return $result;
}
if($address == '') {
$result['msg'] = '请输入接车地址';
return $result;
}
if($car_year == ''){
$result['msg'] = '请输入年份';
return $result;
}
$row = null;
if($id > 0) {
$row = FixCarT::findOne(['id'=>$id]);
} else {
$row = new FixCarT();
$row->submit_date = date('Y-m-d');
$row->user_id = $this->my->id;
$row->car_id = $car_id;
}
$row->car_no = $car_no;
$row->engine_no = $engine_no;
$row->car_frame_no = $car_frame_no;
$row->new_price = $new_price;
$row->brand_id = $brand_id;
$row->series_id = $series_id;
$row->displacement_id = $displacement_id;
$row->car_year = $car_year;
$row->id_man = $id_man;
$row->id_phone = $id_phone;
$row->link_man = $link_man;
$row->link_phone = $link_phone;
$row->company = $company;
$row->insurer1_no = $insurer1_no;
$row->insurer2_no = $insurer2_no;
$row->receive_date = $receive_date;
$row->receive_type = $receive_type;
$row->accident_type = $accident_type;
$row->responsibility = $responsibility;
$row->replace_car_id = $replace_car_id;
$row->driver_id = $driver_id;
$row->direction_id = $direction_id;
$row->range_id = $range_id;
$row->address = $address;
$row->report_no = $report_no;
$row->receive_mileage = $receive_mileage;
$row->receive_oil = $receive_oil;
$row->factory_mileage = $factory_mileage;
$row->factory_oil = $factory_oil;
$row->finish_date = $finish_date;
$row->remark = $remark;
if($row->status != $status && $status > 0) {
$log_info = new CarLogT();
$log_info->car_id = $car_id;
$log_info->op_time = time();
$log_info->op_man = $this->my->getShowName();
$log_info->group_name = $this->my->group?$this->my->group->getPath():'';
$log_info->type = 2;
if($status == 1) {
$log_info->remark = '提交到维修调度';
}
if($status == 2) {
$log_info->remark = '提交到司机接车';
}
if($status == 3) {
$log_info->remark = '提交到前台派工';
}
if($status == 4) {
$log_info->remark = '提交到查勘定损';
}
if($status == 5) {
$log_info->remark = '提交到维修部';
}
$log_info->info = $sys_remark;
if(!$log_info->save()) {
var_dump($log_info->errors);
}
//如果是客户自上门,则直接到前台派工
if($status == 2) {
if($receive_type == '客户自送') {
$status = 3;
}
}
}
$row->status = $status;
$row->baoan_man = $baoan_man;
$row->baoan_time = $baoan_time;
$row->baoan_address = $baoan_address;
$row->chuxian_time = $chuxian_time;
$row->shigu_info = $shigu_info;
$row->lipei_company = $lipei_company;
$row->zhuche_money = floatval($zhuche_money);
$row->sanzhe_money = floatval($sanzhe_money);
$row->wusun_money = floatval($wusun_money);
$row->tuoche = $tuoche;
$row->tuoche_money = floatval($tuoche_money);
$row->dingsun_hour_money = floatval($dingsun_hour_money);
$row->dingsun_huanjian_money = floatval($dingsun_huanjian_money);
$row->peifu_bili = $peifu_bili;
$row->peifu_money = floatval($peifu_money);
$row->kehu_money = floatval($kehu_money);
if(!$row->save()) {
var_dump($row->errors);
exit;
}
$result['success'] = true;
$result['msg'] = '保存成功';
$result['fix_id'] = $row->id;
}
return $result;
}
public function actionGiftSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '保存失败';
if($request->isPost) {
$id = $request->post('id',0);
$car_gift_ids = $request->post('car_gift_ids');
if($id == 0 ) {
$result['msg'] = '请输入保存维修信息!';
return $result;
}
foreach($car_gift_ids as $car_gift_id) {
$car_gift_info = CarGiftT::findOne(['id'=>$car_gift_id]);
if($car_gift_info) {
$car_gift_info->status = 3;
$car_gift_info->save();
}
}
$result['success'] = true;
$result['msg'] = '保存成功';
}
return $result;
}
public function actionAddItem()
{
$request = Yii::$app->request;
if($request->isPost) {
Yii::$app->response->format = Response::FORMAT_JSON;
$fix_id = $request->post('fix_id');
$name = $request->post('name');
$price = floatval($request->post('price'));
$count = intval($request->post('count'));
$type = $request->post('type');
$big_type_id = $request->post('big_type_id');
$small_type_id = $request->post('small_type_id');
$fix_remark = $request->post('fix_remark');
$item_info = new FixItemT();
$item_info->fix_id = $fix_id;
$item_info->name = $name;
$item_info->price = $price;
$item_info->count = $count;
$item_info->type = $type;
$item_info->total = $price * $count;
$item_info->big_type_id = $big_type_id;
$item_info->small_type_id = $small_type_id;
$item_info->fix_remark = $fix_remark;
$item_info->save();
$result['success'] = true;
$result['msg'] = '保存成功';
return $result;
}
$fix_id = $request->get('fix_id');
$fix_info = FixCarT::findOne(['id'=>$fix_id]);
return $this->renderPartial('add-item',[
'fix_info' => $fix_info
]);
}
public function actionAjaxItemList()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result['success'] = true;
$result['msg'] = '读取失败';
$fix_id = $request->get('fix_id');
$big_type_id = $request->get('big_type_id');
$type1_items = FixItemT::find()
->where('fix_id='.$fix_id.' and big_type_id='.$big_type_id.' and small_type_id=1')
->all();
$type2_items = FixItemT::find()
->where('fix_id='.$fix_id.' and big_type_id='.$big_type_id.' and small_type_id=2')
->all();
$type3_items = FixItemT::find()
->where('fix_id='.$fix_id.' and big_type_id='.$big_type_id.' and small_type_id=3')
->all();
$type4_items = FixItemT::find()
->where('fix_id='.$fix_id.' and big_type_id='.$big_type_id.' and small_type_id=4')
->all();
$type5_items = FixItemT::find()
->where('fix_id='.$fix_id.' and big_type_id='.$big_type_id.' and small_type_id=5')
->all();
$html = $this->renderPartial('ajax-item-list',[
'type1_items' => $type1_items,
'type2_items' => $type2_items,
'type3_items' => $type3_items,
'type4_items' => $type4_items,
'type5_items' => $type5_items
]);
$result['success'] = true;
$result['msg'] = '读取成功';
$result['html'] = $html;
return $result;
}
public function actionStep1List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status=1');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC,receive_date ASC');
$items = $query->all();
return $this->render('step1-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionStep1ListFinish()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>1');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC,updated_at DESC');
$items = $query->all();
return $this->render('step1-list-finish',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionPrintReceive()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
$info = FixCarT::findOne(['id'=>$id]);
$car_info = $info->car;
$direction_items = DirectionT::find()->all();
$range_items = RangeT::find()->all();
$brand_items = BrandT::find()->all();
$series_items = SeriesT::find()
->where('brand_id='.intval($car_info->brand_id))
->all();
$displacement_items = DisplacementT::find()
->where('series_id='.intval($car_info->series_id))
->all();
return $this->render('print_receive',[
'info' => $info,
'car_info' => $car_info
]);
}
public function actionStep2List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status=2');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC');
$items = $query->all();
return $this->render('step2-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionStep2ListFinish()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>2');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC, updated_at DESC');
$items = $query->all();
return $this->render('step2-list-finish',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionStep3List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>2');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC,updated_at DESC');
$items = $query->all();
return $this->render('step3-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionStep4List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>3');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC');
$items = $query->all();
$lists = array();
foreach($items as $item) {
$count = $item->getItems()->where('big_type_id=1')->count();
if($count > 0) {
$lists[] = $item;
}
}
return $this->render('step4-list',[
'items' => $lists,
'car_no' => $car_no
]);
}
public function actionStep5List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>3');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC');
$items = $query->all();
return $this->render('step5-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionStep6List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>4');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC');
$items = $query->all();
return $this->render('step6-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionStep7List()
{
$request = Yii::$app->request;
$car_no = $request->get('car_no');
$query = FixCarT::find();
$query = $query->where('status>1');
if($car_no != '') {
$query = $query->andWhere(['like','car_no',$car_no]);
}
$query = $query->orderBy('status ASC');
$items = $query->all();
return $this->render('step7-list',[
'items' => $items,
'car_no' => $car_no
]);
}
public function actionTypeIndex()
{
$request = Yii::$app->request;
$name = $request->get('name');
$query = FixTypeUserT::find();
if($name != '') {
$query = $query->andWhere(['like','name',$name]);
}
$items = $query->all();
return $this->render('type-index',[
'items' => $items,
'name' => $name
]);
}
public function actionTypeEdit()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
if($id > 0) {
$info = FixTypeUserT::findOne(['id'=>$id]);
} else {
$info = new FixTypeUserT();
}
return $this->render('type-edit',[
'info' => $info
]);
}
public function actionTypeSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '保存失败';
if($request->isPost) {
$id = $request->post('id',0);
$name = $request->post('name');
if($name == '') {
$result['msg'] = '请输入名称!';
return $result;
}
$row = null;
if($id > 0) {
$row = FixTypeUserT::findOne(['id'=>$id]);
} else {
$row = new FixTypeUserT();
}
$row->name = $name;
$row->save();
$result['success'] = true;
$result['msg'] = '保存成功';
}
return $result;
}
public function actionTypeDelete()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '删除失败';
if($request->isPost) {
$id = $request->post('id',0);
if($id > 0) {
$row = FixTypeUserT::findOne(['id'=>$id]);
$row->delete();
$result['success'] = true;
$result['msg'] = '删除成功';
}
}
return $result;
}
public function actionReturnOp()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '退回失败';
if($request->isPost) {
$id = $request->post('id',0);
$return_status_id = $request->post('return_status_id',0);
$return_remark = $request->post('return_remark');
$tran = FixCarT::getDb()->beginTransaction();
try {
$row = FixCarT::findOne(['id'=>$id]);
if(empty($row)) {
$result['msg'] = '错误!';
return $result;
}
$row->status = 0;
$row->return_status = $return_status_id;
$row->return_remark = $return_remark;
$row->return_time = time();
$row->save();
$tran->commit();
} catch(\Exception $e) {
$tran->rollBack();
throw $e;
}
$result['success'] = true;
$result['msg'] = '退回成功';
}
return $result;
}
}