diff --git a/common/config/main.php b/common/config/main.php index 674dd13..59d7b73 100644 --- a/common/config/main.php +++ b/common/config/main.php @@ -6,5 +6,5 @@ return [ 'class' => 'yii\caching\FileCache', ], ], - 'timeZone' => 'Asia/Chongqing', + 'timeZone' => 'Asia/Shanghai', ]; diff --git a/common/libs/MyLib.php b/common/libs/MyLib.php index 85efc26..eb1b026 100644 --- a/common/libs/MyLib.php +++ b/common/libs/MyLib.php @@ -214,7 +214,7 @@ class MyLib { } } static public function zhifufs($cx){ - + $cn = '未知'; if($cx==1) { $cn='上门收费'; }elseif($cx==2){ diff --git a/common/models/CaiwuT.php b/common/models/CaiwuT.php index b3c93fd..4207219 100644 --- a/common/models/CaiwuT.php +++ b/common/models/CaiwuT.php @@ -125,4 +125,9 @@ class CaiwuT extends \common\models\Base { return $this->hasOne(OrderCaiwuT::className(),['order_id'=>'order_id']); } + + public function getPayOrderUser() + { + return $this->hasMany(PayOrderUserT::className(),['order_id'=>'order_id']); + } } diff --git a/common/models/CarT.php b/common/models/CarT.php index c972f75..c4f9d57 100644 --- a/common/models/CarT.php +++ b/common/models/CarT.php @@ -175,11 +175,7 @@ class CarT extends \common\models\Base switch($this->location) { case 1: $car=CarT::findOne(['id'=>$this->id]); - if($car->qiyong==2){ - $name = 'A库(永不启用)'; - }else{ - $name = 'A库'; - } + $name = 'A库'; break; case 2: $carb=CarBT::findOne(['id'=>$this->id]); diff --git a/common/models/GiftT.php b/common/models/GiftT.php index 26d42af..3726e92 100644 --- a/common/models/GiftT.php +++ b/common/models/GiftT.php @@ -62,7 +62,7 @@ class GiftT extends \common\models\Base public function getShowType() { - if($this->type_id == 1) return '实名礼品'; + if($this->type_id == 1) return '实物礼品'; if($this->type_id == 2) return '礼券'; return ''; } diff --git a/common/models/GiftUseLogT.php b/common/models/GiftUseLogT.php new file mode 100644 index 0000000..878495e --- /dev/null +++ b/common/models/GiftUseLogT.php @@ -0,0 +1,63 @@ + 50], + [['group_name', 'remark','info'], 'string', 'max' => 100], + ]; + } + + /** + * @inheritdoc + */ + public function attributeLabels() + { + return [ + 'id' => 'ID', + 'gift_use_id' => 'Gift Use ID', + 'op_man' => 'Op Man', + 'op_time' => 'Op Time', + 'group_name' => 'Group Name', + 'type' => 'Type', + 'remark' => 'Remark', + 'info' => 'Info', + 'created_at' => 'Created At', + 'updated_at' => 'Updated At', + ]; + } +} \ No newline at end of file diff --git a/common/models/SysIpT.php b/common/models/SysIpT.php index 7a2fc79..57e65ed 100644 --- a/common/models/SysIpT.php +++ b/common/models/SysIpT.php @@ -57,7 +57,6 @@ class SysIpT extends \common\models\Base static public function getIpArray(){ $list = self::find() - ->where('status = 1') ->orderBy('id ASC') ->all(); diff --git a/composer.json b/composer.json index 4d25cdc..15a058d 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,8 @@ "phpoffice/phpspreadsheet": "^1.9", "codeception/codeception": "^3.1", "yiisoft/yii2-imagine": "^2.2", - "phpoffice/phpexcel": "^1.8" + "phpoffice/phpexcel": "^1.8", + "guzzlehttp/guzzle": "^6.4" }, "require-dev": { "yiisoft/yii2-debug": "*", diff --git a/composer.lock b/composer.lock index 9652f66..65766e9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "4e10a054c08f42ba7431449d509147d7", + "content-hash": "f5d698a9c66d02defab335c7095a8982", "packages": [ { "name": "behat/gherkin", @@ -845,16 +845,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "6.3.3", + "version": "6.4.1", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba" + "reference": "0895c932405407fd3a7368b6910c09a24d26db11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba", - "reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0895c932405407fd3a7368b6910c09a24d26db11", + "reference": "0895c932405407fd3a7368b6910c09a24d26db11", "shasum": "", "mirrors": [ { @@ -864,14 +864,15 @@ ] }, "require": { + "ext-json": "*", "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.4", + "guzzlehttp/psr7": "^1.6.1", "php": ">=5.5" }, "require-dev": { "ext-curl": "*", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", - "psr/log": "^1.0" + "psr/log": "^1.1" }, "suggest": { "psr/log": "Required for using the Log middleware" @@ -883,12 +884,12 @@ } }, "autoload": { - "files": [ - "src/functions_include.php" - ], "psr-4": { "GuzzleHttp\\": "src/" - } + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -912,7 +913,7 @@ "rest", "web service" ], - "time": "2018-04-22T15:46:56+00:00" + "time": "2019-10-23T15:58:00+00:00" }, { "name": "guzzlehttp/promises", diff --git a/frontend/config/params.php b/frontend/config/params.php index 7f754b9..f852a76 100644 --- a/frontend/config/params.php +++ b/frontend/config/params.php @@ -1,4 +1,14 @@ 'admin@example.com', + 'userPanel' => [ + 'token' => 'ff7dc73536475c11981a1c52531f2ff7', + 'phone_url' => 'http://user.banmacar.com/api/phone/op', + 'sms_url' => 'http://user.banmacar.com/api/sms/single-send', + 'myinfo_url' => 'http://user.banmacar.com/api/user/myinfo', + 'search_car_url' => 'http://user.banmacar.com/api/car/search-car', + 'car_info_url' => 'http://user.banmacar.com/api/car/car-info', + 'post-precise-price' => 'http://user.banmacar.com/api/car/post-precise-price', + 'get-precise-price' => 'http://user.banmacar.com/api/car/get-precise-price', + ], ]; diff --git a/frontend/controllers/AppointmentController.php b/frontend/controllers/AppointmentController.php index 61e9b7d..7b1cd69 100644 --- a/frontend/controllers/AppointmentController.php +++ b/frontend/controllers/AppointmentController.php @@ -328,11 +328,9 @@ class AppointmentController extends BaseController $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); - $page = $request->get('page',1); $username = $request->get('username'); $sort_key = $request->get('sort_key','appointment_t.pdate'); $sort_value = $request->get('sort_value','ASC'); - $user_id = $request->get('user_id'); $offset = $request->get('offset',0); $limit = $request->get('limit', 10); @@ -349,7 +347,7 @@ class AppointmentController extends BaseController $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { - $query->andWhere('car_t.phone like "'.$phone.'"'); + $query->andWhere('car_t.car_man_phone like "'.$phone.'"'); } if($car_no != '') { $query->andWhere('car_t.car_no like "'.$car_no.'"'); @@ -430,7 +428,7 @@ class AppointmentController extends BaseController $query = $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { - $query = $query->andWhere('car_t.phone="'.$phone.'"'); + $query = $query->andWhere('car_t.car_man_phone="'.$phone.'"'); } if($ptype > 0) { $query = $query->andWhere('appointment_t.ptype='.$ptype); @@ -507,7 +505,7 @@ class AppointmentController extends BaseController $query = $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { - $query = $query->andWhere('car_t.phone="'.$phone.'"'); + $query = $query->andWhere('car_t.car_man_phone="'.$phone.'"'); } if($ptype > 0) { $query = $query->andWhere('appointment_t.ptype='.$ptype); diff --git a/frontend/controllers/CarController.php b/frontend/controllers/CarController.php index c706d63..f627c88 100644 --- a/frontend/controllers/CarController.php +++ b/frontend/controllers/CarController.php @@ -63,9 +63,11 @@ use common\models\OrderAddress; use common\models\InvalidNew; use common\models\InvalidRenewal; use common\models\ZhongjiGiftT; +use GuzzleHttp\Client; use Yii; use yii\data\Pagination; use yii\db\Exception; +use yii\web\Request; use yii\web\Response; class CarController extends BaseController @@ -496,6 +498,313 @@ class CarController extends BaseController return $result; } + public function actionBihuSearch() + { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $id = $request->get('id',0); + $car_info = CarT::findOne(['id'=>$id]); + if($car_info) { + $url = Yii::$app->params['userPanel']['search_car_url']; + $token = Yii::$app->params['userPanel']['token']; + $params = [ + 'token' => $token, + 'LicenseNo' => $car_info->car_no, + 'EngineNo' => $car_info->engine_no, + 'CarVin' => $car_info->car_frame_no, + 'RegisterDate' => $car_info->register_date, + ]; + if($car_info->car_man_number != '' && substr($car_info->car_man_number, -6) != '') { + $params['SixDigitsAfterIdCard'] = substr($car_info->car_man_number, -6); + } + $client = new Client(['timeout'=> 120]); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + return MyLib::ok3($obj); + } + return MyLib::error3($res->getBody()); + } + return MyLib::error3('车辆信息不存在'); + } + + public function actionBihuCarinfo() + { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $id = $request->get('id',0); + $car_info = CarT::findOne(['id'=>$id]); + if($car_info) { + $url = Yii::$app->params['userPanel']['car_info_url']; + $token = Yii::$app->params['userPanel']['token']; + $params = [ + 'token' => $token, + 'LicenseNo' => $car_info->car_no, + 'EngineNo' => $car_info->engine_no, + 'CarVin' => $car_info->car_frame_no, + ]; + $client = new Client(['timeout'=> 120]); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 200) { + if($obj->data && $obj->data->UserInfo && $obj->data->UserInfo->CarUsedType != '') { + $car_user_info = CarUseT::find()->where(['name'=>$obj->data->UserInfo->CarUsedType])->one(); + if($car_user_info) { + $obj->data->UserInfo->CarUsedType = $car_user_info->id; + } + } + return MyLib::ok3($obj->data); + } else { + return MyLib::error3($obj->msg); + } + } + return MyLib::error3($res->getBody()); + } + return MyLib::error3('车辆信息不存在'); + } + + public function actionPostPrecisePrice() + { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $url = Yii::$app->params['userPanel']['post-precise-price']; + $token = Yii::$app->params['userPanel']['token']; + $types = $request->post('types'); + $nopays = $request->post('nopays'); + $params = [ + 'token' => $token, + 'LicenseNo' => $request->post('car_no'), + 'CarOwnersName' => $request->post('car_man'), + 'IdCard' => strtoupper($request->post('car_man_number')), + 'OwnerIdCardType' => $request->post('car_man_type'), // + 'QuoteGroup' => $request->post('company_id'), // + 'InsuredName' => $request->post('id_man'), + 'InsuredIdCard' => strtoupper($request->post('id_man_number')), + 'InsuredIdType' => $request->post('id_man_type'), // + 'HolderIdCard' => strtoupper($request->post('link_man_number')), + 'HolderName' => $request->post('link_man'), + 'HolderIdType' => $request->post('link_man_type'), // + 'CarUsedType' => $request->post('car_use_id'), + 'EngineNo' => strtoupper($request->post('engine_no')), + 'CarVin' => strtoupper($request->post('car_frame_no')), + 'RegisterDate' => $request->post('register_date'), + 'MoldName' => $request->post('factory_model'), + 'ForceTax' => 1, + 'BizTimeStamp' => $request->post('insurer1_begin_date'), + 'ForceTimeStamp' => $request->post('insurer2_begin_date'), + 'BoLi' => 0, + 'BuJiMianCheSun' => isset($nopays[1])?1:0, + 'BuJiMianDaoQiang' => isset($nopays[3])?1:0, + 'BuJiMianSanZhe' => isset($nopays[2])?1:0, + 'BuJiMianChengKe' => isset($nopays[5])?1:0, + 'BuJiMianSiJi' => isset($nopays[4])?1:0, + 'BuJiMianHuaHen' => isset($nopays[7])?1:0, + 'BuJiMianSheShui' => isset($nopays[8])?1:0, + 'BuJiMianZiRan' => isset($nopays[9])?1:0, + 'SheShui' => $types[8]=='是'?1:0, + 'HuaHen' => $types[7], + 'SiJi' => $types[4], + 'ChengKe' => $types[5], + 'CheSun' => floatval($types[1]), + 'DaoQiang' => $types[3]=='是'?1:0, + 'SanZhe' => $types[2], + 'ZiRan' => $types[9]=='是'?1:0, + 'SeatCount' => $request->post('seats'), + 'HcSanFangTeYue' => $types[12]=='是'?1:0, + 'PurchasePrice' => $request->post('purchase_price'), + 'AutoMoldCode' => $request->post('auto_mold_code'), + 'VehicleYear' => $request->post('vehicle_year'), + 'AutoMoldCodeSource' => 3, + ]; + if($params['QuoteGroup'] == 0) { + return MyLib::error3('请选择保险公司'); + } + if($params['CarUsedType'] == 0) { + return MyLib::error3('请选择车辆使用性质'); + } + if($params['OwnerIdCardType'] == '身份证') $params['OwnerIdCardType'] = 1; + else $params['OwnerIdCardType'] = 9; + if($params['InsuredIdType'] == '身份证') $params['InsuredIdType'] = 1; + else $params['InsuredIdType'] = 9; + if($params['HolderIdType'] == '身份证') $params['HolderIdType'] = 1; + else $params['HolderIdType'] = 9; + + $min_chesun = floatval($request->post('min_chesun')); + $max_chesun = floatval($request->post('max_chesun')); + if($params['CheSun'] > 0 && $min_chesun > 0 && $max_chesun > 0 && ($params['CheSun'] < $min_chesun || $params['CheSun'] > $max_chesun)) { + return MyLib::error3('车损只能填写:'.$min_chesun.' ~ '.$max_chesun.' 之间的值'); + } + if($params['CheSun'] > 0 && $types[10] == '是' && $types[11] == '是') { + $params['ForceTax'] = 1; + } + if($params['CheSun'] == 0 && $types[10] == '是' && $types[11] == '是') { + $params['ForceTax'] = 2; + } + if($params['CheSun'] > 0 && $types[10] == '否' && $types[11] == '否') { + $params['ForceTax'] = 0; + } + if($types[6] == '国产') { + $params['BoLi'] = 1; + } + if($types[6] == '进口') { + $params['BoLi'] = 2; + } + switch($types[7]) { + case '2000元': + $params['HuaHen'] = 2000; + break; + case '5000元': + $params['HuaHen'] = 5000; + break; + case '10000元': + $params['HuaHen'] = 10000; + break; + case '20000元': + $params['HuaHen'] = 20000; + break; + default: + $params['HuaHen'] = 0; + } + switch($types[4]) { + case '1万': + $params['SiJi'] = 10000; + break; + case '2万': + $params['SiJi'] = 20000; + break; + case '3万': + $params['SiJi'] = 30000; + break; + case '4万': + $params['SiJi'] = 40000; + break; + case '5万': + $params['SiJi'] = 50000; + break; + case '10万': + $params['SiJi'] = 100000; + break; + default: + $params['SiJi'] = 0; + } + switch($types[5]) { + case '1万': + $params['ChengKe'] = 10000; + break; + case '2万': + $params['ChengKe'] = 20000; + break; + case '3万': + $params['ChengKe'] = 30000; + break; + case '4万': + $params['ChengKe'] = 40000; + break; + case '5万': + $params['ChengKe'] = 50000; + break; + case '10万': + $params['ChengKe'] = 100000; + break; + default: + $params['ChengKe'] = 0; + } + switch($types[2]) { + case '5万': + $params['SanZhe'] = 50000; + break; + case '10万': + $params['SanZhe'] = 100000; + break; + case '15万': + $params['SanZhe'] = 150000; + break; + case '20万': + $params['SanZhe'] = 200000; + break; + case '30万': + $params['SanZhe'] = 300000; + break; + case '50万': + $params['SanZhe'] = 500000; + break; + case '100万': + $params['SanZhe'] = 1000000; + break; + case '150万': + $params['SanZhe'] = 1500000; + break; + case '200万': + $params['SanZhe'] = 2000000; + break; + default: + $params['SanZhe'] = 0; + } + $client = new Client(['timeout'=> 120]); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 200) { + if($obj->data && $obj->data->UserInfo && $obj->data->UserInfo->CarUsedType != '') { + $car_user_info = CarUseT::find()->where(['name'=>$obj->data->UserInfo->CarUsedType])->one(); + if($car_user_info) { + $obj->data->UserInfo->CarUsedType = $car_user_info->id; + } + } + return MyLib::ok3($obj->data); + } else { + return MyLib::error3($obj->msg); + } + } + return MyLib::error3($res->getBody()); + } + + public function actionGetPrecisePrice() + { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $url = Yii::$app->params['userPanel']['get-precise-price']; + $token = Yii::$app->params['userPanel']['token']; + $params = [ + 'token' => $token, + 'LicenseNo' => $request->post('car_no'), + 'QuoteGroup' => $request->post('company_id'), + ]; + $client = new Client(['timeout'=> 120]); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); +// echo $url; +// var_dump($params); +// echo $res->getBody(); +// exit; + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 200) { + if($obj->data && $obj->data->UserInfo && $obj->data->UserInfo->CarUsedType != '') { + $car_user_info = CarUseT::find()->where(['name'=>$obj->data->UserInfo->CarUsedType])->one(); + if($car_user_info) { + $obj->data->UserInfo->CarUsedType = $car_user_info->id; + } + } + return MyLib::ok3($obj->data); + } else { + return MyLib::error3($obj->msg); + } + } + return MyLib::error3($res->getBody()); + } public function actionInfo() { @@ -503,6 +812,7 @@ class CarController extends BaseController $id = $request->get('id',0); $car_info = CarT::findOne(['id'=>$id]); + $order_info = $car_info->getOrders()->orderBy('id DESC')->one(); if(!$order_info) { $user_id = 0; @@ -531,35 +841,6 @@ class CarController extends BaseController $order_info->link_phone = $car_info->phone; $order_info->save(); } - $insurer_type_items = InsurerTypeT::find()->all(); - $insurer_company_items = InsurerCompanyT::find()->all(); - $insurer_company2_items = InsurerCompany2T::find()->all(); - $pay_type_items = PayTypeT::find()->all(); - $car_use_items = CarUseT::find()->all(); - $direction_items = DirectionT::find() - ->all(); - $range_items = RangeT::find() - ->all(); - $city_items = CityT::find() - ->all(); - $district_items = DistrictT::find() - ->orderBy('order_id ASC') - ->all(); - $gift_items = GiftT::find() - ->where('type_id=1') - ->all(); - $success_items = InvalidT::getTree(1); - $failure_items = InvalidT::getTreeXinbaoNew(2); - - $list = MeetT::getAllData(1); - $order_ad=OrderAddress::findOne(['id'=>$order_info->addr_id]); - - $province = Region::find()->asArray()->where(['parent_id'=>0])->andWhere(['level'=>1])->all(); - - $c=[]; - $d=[]; - $e=[]; - $linkMan_items = $car_info->getLinkmen() ->orderBy('created_at desc') ->all(); @@ -568,25 +849,7 @@ class CarController extends BaseController 'user_id' => $this->my->id, 'car_info' => $car_info, 'link_men' => $linkMan_items, - 'insurer_type_items' => $insurer_type_items, 'order_info' => $order_info, - 'insurer_company_items' => $insurer_company_items, - 'insurer_company2_items' => $insurer_company2_items, - 'list' => $list, - 'pay_type_items' => $pay_type_items, - 'car_use_items' => $car_use_items, - 'direction_items' => $direction_items, - 'range_items' => $range_items, - 'city_items' => $city_items, - 'district_items' => $district_items, - 'gift_items' => $gift_items, - 'success_items' => $success_items, - 'failure_items' => $failure_items, - 'province' => $province, - 'city' =>$c, - 'district' =>$d, - 'twon' =>isset($e)?$e:[], - 'order_ad' =>isset($order_ad)?$order_ad:[] ]); } /* @@ -1879,15 +2142,8 @@ class CarController extends BaseController $order_info->link_man_number = $link_man_number; $order_info->company_id = $company_id; - if($order_info->status_id != $status_id) { - if($order_info->return_status_id > 0) { - $order_info->status_id = $order_info->return_status_id; - $order_info->return_status_id = 0; - } else { - $order_info->status_id = $status_id; - $order_info->return_status_id = 0; - } - } + $order_info->status_id = $status_id; + $order_info->return_status_id = 0; $order_info->submit_date = date('Y-m-d'); //商业保险日期 $order_info->insurer1_begin_date = $insurer1_begin_date; diff --git a/frontend/controllers/CommonController.php b/frontend/controllers/CommonController.php index 533e403..9f28501 100644 --- a/frontend/controllers/CommonController.php +++ b/frontend/controllers/CommonController.php @@ -385,6 +385,9 @@ class CommonController extends \yii\web\Controller } public function actionCallPhone() { - return $this->render('call-phone'); + $user_info = $this->my; + return $this->render('call-phone',[ + 'user_info' => $user_info + ]); } } diff --git a/frontend/controllers/DatabaseController.php b/frontend/controllers/DatabaseController.php index 2a26daa..033a88b 100644 --- a/frontend/controllers/DatabaseController.php +++ b/frontend/controllers/DatabaseController.php @@ -207,7 +207,7 @@ class DatabaseController extends BaseController } if($has_phone == 1) { - $query->andWhere('phone<>""'); + $query->andWhere('car_man_phone<>""'); } if($no_insurerdate == 1) { $query->andWhere('insurer1_date="" or insurer1_date is null or insurer1_date="0000-00-00"'); @@ -285,7 +285,7 @@ class DatabaseController extends BaseController $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 1) { $car_info->location = 2; - $car_info->xubao_num = 0; + $car_info->is_xubao = 0; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } @@ -298,6 +298,12 @@ class DatabaseController extends BaseController if(!$b_info->save(false)) { throw new Exception(print_r($b_info->getFirstErrors(),true)); } + } else { + $b_info->user_id = 0; + if(!$b_info->save(false)) { + throw new Exception(print_r($b_info->getFirstErrors(),true)); + } + $this->addLog($car_info->id,'从B库回收成未分配状态',1); } $this->addLog($car_info->id,'从A库分配到B库',1); } @@ -333,7 +339,7 @@ class DatabaseController extends BaseController foreach($query->each(1000) as $car_info) { if($car_info->location == 1) { $car_info->location = 2; - $car_info->xubao_num = 0; + $car_info->is_xubao = 0; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } @@ -346,6 +352,12 @@ class DatabaseController extends BaseController if(!$b_info->save(false)) { throw new Exception(print_r($b_info->getFirstErrors(),true)); } + } else { + $b_info->user_id = 0; + if(!$b_info->save(false)) { + throw new Exception(print_r($b_info->getFirstErrors(),true)); + } + $this->addLog($car_info->id,'从B库回收成未分配状态',1); } $this->addLog($car_info->id,'从A库分配到B库',1); } @@ -383,7 +395,7 @@ class DatabaseController extends BaseController $car_info = CarT::findOne(['id'=>$id]); if($car_info->location == 1) { $car_info->location = 3; - $car_info->xubao_num = 1; + $car_info->is_xubao = 1; if(!$car_info->save(false)) { throw new Exception(print_r($car_info->getFirstErrors(),true)); } @@ -396,6 +408,12 @@ class DatabaseController extends BaseController if(!$c_info->save(false)) { throw new Exception(print_r($c_info->getFirstErrors(),true)); } + } else { + $c_info->user_id = 0; + if(!$c_info->save(false)) { + throw new Exception(print_r($c_info->getFirstErrors(),true)); + } + $this->addLog($car_info->id,'从C库回收成未分配状态',1); } $this->addLog($car_info->id,'从A库分配到C库',1); } @@ -647,10 +665,10 @@ class DatabaseController extends BaseController $order_row->user_id = $user_id; $order_row->status_id = 1; $order_row->id_man = $b_info->car->car_man; - $order_row->id_man_number = $b_info->car->id_number; + $order_row->id_man_number = $b_info->car->id_man_number; $order_row->link_man = $b_info->car->car_man; $order_row->link_man_phone = $b_info->car->car_man_phone; - $order_row->link_man_number = $b_info->car->id_number; + $order_row->link_man_number = $b_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } @@ -824,7 +842,7 @@ class DatabaseController extends BaseController $order_row->id_man = $b_info->car->car_man; $order_row->link_man = $b_info->car->car_man; $order_row->link_man_phone = $b_info->car->car_man_phone; - $order_row->link_man_number = $b_info->car->id_number; + $order_row->link_man_number = $b_info->car->id_man_number; $order_row->return_status_id = 0; $order_row->return_remark = ''; if(!$order_row->save()) { @@ -988,20 +1006,23 @@ class DatabaseController extends BaseController } $b_info = CarBT::findOne(['id'=>$id]); - if($b_info->user_id > 0) { - //删除预约 - AppointmentT::deleteAll('car_id='.$b_info->id); - - //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 - //删除操作人员 - $orders = OrderT::find() - ->where('car_id='.$b_info->id.' and status_id<5') - ->all(); - foreach($orders as $order_info) { - OrderUserT::deleteAll('order_id='.$order_info->id); - //删除保单 - $order_info->delete(); + if($b_info) { + if($b_info->user_id > 0) { + //删除预约 + AppointmentT::deleteAll('car_id='.$b_info->id); + + //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 + //删除操作人员 + $orders = OrderT::find() + ->where('car_id='.$b_info->id.' and status_id<5') + ->all(); + foreach($orders as $order_info) { + OrderUserT::deleteAll('order_id='.$order_info->id); + //删除保单 + $order_info->delete(); + } } + $b_info->delete(); } $this->addLog($car_info->id,'从B库移动到无效库',1); } @@ -1214,10 +1235,10 @@ class DatabaseController extends BaseController $order_row->user_id = $user_id; $order_row->status_id = 1; $order_row->id_man = $c_info->car->car_man; - $order_row->id_man_number = $c_info->car->id_number; + $order_row->id_man_number = $c_info->car->id_man_number; $order_row->link_man = $c_info->car->car_man; $order_row->link_man_phone = $c_info->car->car_man_phone; - $order_row->link_man_number = $c_info->car->id_number; + $order_row->link_man_number = $c_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } @@ -1388,10 +1409,10 @@ class DatabaseController extends BaseController $order_row->user_id = $c_info->user_id; $order_row->status_id = 1; $order_row->id_man = $c_info->car->car_man; - $order_row->id_man_number = $c_info->car->id_number; + $order_row->id_man_number = $c_info->car->id_man_number; $order_row->link_man = $c_info->car->car_man; $order_row->link_man_phone = $c_info->car->car_man_phone; - $order_row->link_man_number = $c_info->car->id_number; + $order_row->link_man_number = $c_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } @@ -1555,6 +1576,12 @@ class DatabaseController extends BaseController if(!$d_info->save(false)) { throw new Exception(print_r($d_info->getFirstErrors(),true)); } + } else { + $d_info->user_id = 0; + if(!$d_info->save(false)) { + throw new Exception(print_r($d_info->getFirstErrors(),true)); + } + $this->addLog($car_info->id,'从D库回收成未分配状态',1); } $this->addLog($car_info->id,'从C库分配到D库',1); } @@ -1601,6 +1628,12 @@ class DatabaseController extends BaseController if(!$d_info->save(false)) { throw new Exception(print_r($d_info->getFirstErrors(),true)); } + } else { + $d_info->user_id = 0; + if(!$d_info->save(false)) { + throw new Exception(print_r($d_info->getFirstErrors(),true)); + } + $this->addLog($car_info->id,'从D库回收成未分配状态',1); } $this->addLog($car_info->id,'从C库分配到D库',1); } @@ -1659,20 +1692,23 @@ class DatabaseController extends BaseController } $c_info = CarCT::findOne(['id'=>$id]); - if($c_info->user_id > 0) { - //删除预约 - AppointmentT::deleteAll('car_id='.$c_info->id); - - //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 - //删除操作人员 - $orders = OrderT::find() - ->where('car_id='.$c_info->id.' and status_id<5') - ->all(); - foreach($orders as $order_info) { - OrderUserT::deleteAll('order_id='.$order_info->id); - //删除保单 - $order_info->delete(); + if($c_info) { + if($c_info->user_id > 0) { + //删除预约 + AppointmentT::deleteAll('car_id='.$c_info->id); + + //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 + //删除操作人员 + $orders = OrderT::find() + ->where('car_id='.$c_info->id.' and status_id<5') + ->all(); + foreach($orders as $order_info) { + OrderUserT::deleteAll('order_id='.$order_info->id); + //删除保单 + $order_info->delete(); + } } + $c_info->delete(); } $this->addLog($car_info->id,'从C库移动到无效库',1); } @@ -1889,10 +1925,10 @@ class DatabaseController extends BaseController $order_row->user_id = $user_id; $order_row->status_id = 1; $order_row->id_man = $d_info->car->car_man; - $order_row->id_man_number = $d_info->car->id_number; + $order_row->id_man_number = $d_info->car->id_man_number; $order_row->link_man = $d_info->car->car_man; $order_row->link_man_phone = $d_info->car->car_man_phone; - $order_row->link_man_number = $d_info->car->id_number; + $order_row->link_man_number = $d_info->car->id_man_number; if(!$order_row->save()) { throw new \Exception(print_r($order_row->getErrors(),true)); } @@ -2060,7 +2096,7 @@ class DatabaseController extends BaseController $order_row->user_id = $d_info->user_id; $order_row->status_id = 1; $order_row->id_man = $d_info->car->car_man; - $order_row->id_man_number = $d_info->car->id_number; + $order_row->id_man_number = $d_info->car->id_man_number; $order_row->link_man = $d_info->car->car_man; $order_row->link_man_phone = $d_info->car->car_man_phone; $order_row->link_man_number = $d_info->car->id_man_number; @@ -2236,20 +2272,23 @@ class DatabaseController extends BaseController } $d_info = CarDT::findOne(['id'=>$id]); - if($d_info->user_id > 0) { - //删除预约 - AppointmentT::deleteAll('car_id='.$d_info->id); - - //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 - //删除操作人员 - $orders = OrderT::find() - ->where('car_id='.$d_info->id.' and status_id<5') - ->all(); - foreach($orders as $order_info) { - OrderUserT::deleteAll('order_id='.$order_info->id); - //删除保单 - $order_info->delete(); + if($d_info) { + if($d_info->user_id > 0) { + //删除预约 + AppointmentT::deleteAll('car_id='.$d_info->id); + + //删除保单 还没有正本生成的保单可以直接删除,正本生成后,需要退单操作 + //删除操作人员 + $orders = OrderT::find() + ->where('car_id='.$d_info->id.' and status_id<5') + ->all(); + foreach($orders as $order_info) { + OrderUserT::deleteAll('order_id='.$order_info->id); + //删除保单 + $order_info->delete(); + } } + $d_info->deletel(); } $this->addLog($car_info->id,'从C库移动到无效库',1); } @@ -2385,7 +2424,7 @@ class DatabaseController extends BaseController $row['car_man'] = MyLib::substr_cut($car_info->car_man, 8); $row['op_user'] = $item->user?$item->user->getShowName():''; $row['invalid_info'] = $item->invalid->getPath(); - $row['invalid_time'] = $item->invalid->created_at; + $row['invalid_time'] = $item->created_at; $data['rows'][] = $row; } return $data; diff --git a/frontend/controllers/FinanceController.php b/frontend/controllers/FinanceController.php index d2bd428..c4f09ee 100644 --- a/frontend/controllers/FinanceController.php +++ b/frontend/controllers/FinanceController.php @@ -213,15 +213,22 @@ class FinanceController extends \frontend\controllers\UserBaseController $data['rows'] = []; foreach($items as $item) { $row = $item->toArray(); - $row['group'] = $item->user->group->name; - $row['company_name'] = $item->order->company2->name; - $row['username'] = $item->user->getShowName(); - $row['submit_date'] = $item->order->submit_date; - $row['print_date'] = $item->order->print_date; + $row['group'] = $item->user && $item->user->group ? $item->user->group->name : ''; + $row['company_name'] = $item->order && $item->order->company2 ? $item->order->company2->name : 0; + $row['username'] = $item->user ? $item->user->getShowName() : 0; + $row['submit_date'] = $item->order ? $item->order->submit_date : ''; + $row['print_date'] = $item->order ? $item->order->print_date : ''; $row['total_real'] = round($item->total_clear_real + $item->total_tax_real,2); $data['rows'][] = $row; } + $data['rows'][] = array( + ['商业保总额', $sum_total], + ['商业净保总额', $sum_total_clear], + ['回款总额', $sum_r_total], + ['回款差额', $sum_total_dis] + ); + return $data; } public function actionReceiptImport() { @@ -3264,18 +3271,18 @@ class FinanceController extends \frontend\controllers\UserBaseController for ($i = 7; $i <= $rowCount; $i++) { $cell = $currentSheet->getCellByColumnAndRow(1, $i); - $insurer_no = $cell->getValue();//$data[$i][1]; + $insurer_no = $cell->getFormattedValue();//$data[$i][1]; // var_dump($insurer_no); $cell = $currentSheet->getCellByColumnAndRow(2, $i); - $policy_man = $cell->getValue();//$data[$i][2]; + $policy_man = $cell->getFormattedValue();//$data[$i][2]; $cell = $currentSheet->getCellByColumnAndRow(3, $i); - $total_real = $cell->getValue();//$data[$i][3]; + $total_real = $cell->getFormattedValue();//$data[$i][3]; $cell = $currentSheet->getCellByColumnAndRow(4, $i); - $total_rate = $cell->getValue();//$data[$i][4]; + $total_rate = $cell->getFormattedValue();//$data[$i][4]; $cell = $currentSheet->getCellByColumnAndRow(5, $i); - $pay_total = $cell->getValue();//$data[$i][5]; + $pay_total = $cell->getFormattedValue();//$data[$i][5]; $cell = $currentSheet->getCellByColumnAndRow(6, $i); - $insurer_total = $cell->getValue();//$data[$i][6]; + $insurer_total = $cell->getFormattedValue();//$data[$i][6]; $cell = $currentSheet->getCellByColumnAndRow(7, $i); $insurer_date = $cell->getFormattedValue(); // var_dump($insurer_date); @@ -5147,12 +5154,20 @@ class FinanceController extends \frontend\controllers\UserBaseController $row['is_leave'] = $item->is_leave ? '已离职':''; $pay_info = $item->getPay($pay_date); $row['status_name'] = $pay_info ? $pay_info->getStatus($pay_info->status_id) : ''; - $row['real_pay'] = $pay_info->base_real_pay; - $row['should_pay'] = $pay_info->ticheng_real_pay; - $row['is_show'] = ($pay_info->renshi_status_id > 0 && $pay_info->chuna_status_id > 0 && $pay_info->status_id != 7 && $pay_info->status_id != 8) ? 1 : 0; + $row['real_pay'] = $pay_info ? $pay_info->base_real_pay : ''; + $row['should_pay'] = $pay_info ? $pay_info->ticheng_real_pay : ''; + $row['is_show'] = $pay_info && ($pay_info->renshi_status_id > 0 && $pay_info->chuna_status_id > 0 && $pay_info->status_id != 7 && $pay_info->status_id != 8) ? 1 : 0; $data['rows'][] = $row; } + $pay_chexian = PayT::find() + ->where("pay_date='{$pay_date}'") + ->sum('ticheng_real_pay'); + + $data['rows'][] = array( + ['提成工资总额', number_format($pay_chexian,2)], + ); + return $data; } @@ -6543,6 +6558,7 @@ class FinanceController extends \frontend\controllers\UserBaseController $query->andWhere('order_t.print_date<="' . $end_date . '"'); } $total = $query->count(); + $sum_total1_clear = $query->sum('total1_clear'); $query->offset($offset)->limit($limit); $items = $query->all(); @@ -6561,6 +6577,10 @@ class FinanceController extends \frontend\controllers\UserBaseController $data['rows'][] = $row; } + $data['rows'][] = array( + ['商业净保总额', number_format($sum_total1_clear,2)], + ); + return $data; } @@ -6718,19 +6738,14 @@ class FinanceController extends \frontend\controllers\UserBaseController $group_ids = []; if($group_id > 0) { $items = GroupT::getTree($group_id); - $group_ids[] = $group_id; foreach($items as $group_info) { $group_ids[] = $group_info->id; } } - - $query = CaiwuT::find() ->leftJoin(OrderT::tableName(), "order_t.id=caiwu_t.order_id") - ->where('order_t.status_id>1') - ->orderBy('order_t.print_date DESC'); - + ->where('order_t.status_id>1'); if($user_names != '' && $user_names != 'null'){ $user_arr = explode(',',$user_names); $user_ids = []; @@ -6739,40 +6754,33 @@ class FinanceController extends \frontend\controllers\UserBaseController if($user) $user_ids[] = $user->id; } - $query->andWhere(['in','caiwu_t.user_id',$user_ids]); } - if( $company_id > 0) { $query->andWhere('order_t.company2_id='.$company_id); } if( $car_no != '') { $query->andWhere('order_t.car_no="'.$car_no.'"'); } - if($car_no_type == 1){ $query->andWhere('caiwu_t.car_no like "' . '京' . '%"'); }elseif($car_no_type == 2){ $query->andWhere('caiwu_t.car_no not like "' . '京' . '%"'); } - if($begin_totalclear != ''){ $query->andWhere('caiwu_t.total_clear >=' . $begin_totalclear); } if($end_totalclear != ''){ $query->andWhere('caiwu_t.total_clear <=' . $end_totalclear); } - if ($begin_date != "") { $query->andWhere('order_t.print_date>="' . $begin_date . '"'); } if ($end_date != "") { $query->andWhere('order_t.print_date<="' . $end_date . '"'); } - $user_items = $this->my->getChildren(''); $user_items[] = $this->my; - $row = array(); foreach($user_items as $user_info) { if ($group_id > 0) { @@ -6782,58 +6790,46 @@ class FinanceController extends \frontend\controllers\UserBaseController } $row[] = $user_info->id; } - //加上级别筛选 if($group_id > 0){ $query->andWhere(['in','caiwu_t.user_id',$row]); } - - $query1 = clone $query; if($insurer_type ==1){ $query->andWhere('caiwu_t.insurer_type=1'); } - - - $items = $query->all(); - - $total2_clear_all = $query1->andWhere('caiwu_t.insurer_type=2')->sum('total_clear'); - - $yewu_ticheng_all = 0; - $total1_clear_all = 0; - $yeji_ticheng_all = 0; - $ticheng_money_all = 0; - $lipin_all = 0; - $liquan_all = 0; - $yuangong_money_all = 0; - foreach($items as $index => $item) { - $order_caiwu_info = $item->orderCaiwu; - $order_info = $item->order; - - $total1_clear_all += $item->total_clear; - $yewu_ticheng_all += $order_caiwu_info ? $order_caiwu_info->yewu_ticheng : 0; - $yeji_ticheng_all += $order_caiwu_info ? $order_caiwu_info->yeji_ticheng : 0; - $ticheng_money_all += $order_info ? $order_info->ticheng_money : 0; - $lipin_all += $order_info ? $order_info->getGiftPrice(1,1) : 0; - $liquan_all += $order_info ? $order_info->getGiftPrice(1,2) : 0; - $yuangong_money = 0; - if($order_info){ - $yuangong_money = $order_info->yuangong_money>0?$order_info->yuangong_money:0; - } - $yuangong_money_all += $yuangong_money; - - } -// echo $query->createCommand()->rawSql;exit; + $query1 = clone $query; + $sums = $query1 + ->leftJoin(OrderCaiwuT::tableName(), "order_t.id=order_caiwu_t.order_id") + ->select([ + 'sum_total1_clear' => 'sum(order_t.total1_clear)', + 'sum_total2_clear' => 'sum(order_t.total2_clear)', + 'sum_yeji_ticheng' => 'sum(order_caiwu_t.yeji_ticheng)', + 'sum_ticheng_money' => 'sum(order_caiwu_t.ticheng_money)', + 'sum_yuangong_money' => 'sum(order_caiwu_t.yuangong_money)', + 'sum_yewu_ticheng' => 'sum(order_caiwu_t.yewu_ticheng)', + ])->asArray()->one(); + $query2 = clone $query; + $gift_sum = $query2 + ->leftJoin(OrderGiftT::tableName(), "order_gift_t.order_id=caiwu_t.order_id") + ->leftJoin(GiftT::tableName(), "gift_t.id=order_gift_t.gift_id") + ->andWhere('order_gift_t.gift_type=1 && order_gift_t.is_free=2') + ->sum('gift_t.price'); + $query2 = clone $query; + $voucher_sum = $query2 + ->leftJoin(OrderGiftT::tableName(), "order_gift_t.order_id=caiwu_t.order_id") + ->leftJoin(GiftT::tableName(), "gift_t.id=order_gift_t.gift_id") + ->andWhere('order_gift_t.gift_type=2 && order_gift_t.is_free=2') + ->sum('gift_t.price'); $total = $query->count(); - - $query->offset($offset)->limit($limit); - $items = $query->all(); + $query=$query->offset($offset)->limit($limit); + $items = $query->orderBy('order_t.print_date DESC')->all(); $data = []; $data['total'] = $total; $data['rows'] = []; foreach($items as $item) { $row = $item->toArray(); - $row['company_name'] = $item->order->company2->name; + $row['company_name'] = $item->order->company2?$item->order->company2->name:''; $row['print_date'] = $item->order->print_date; $row['yeji_rate'] = $item->orderCaiwu->yeji_rate; $row['yeji_ticheng'] = $item->orderCaiwu->yeji_ticheng; @@ -6844,17 +6840,17 @@ class FinanceController extends \frontend\controllers\UserBaseController $row['yuangong_money'] = $item->order->yuangong_money; $row['yewu_ticheng'] = $item->orderCaiwu->yewu_ticheng; if($item->order->car->op2_id > 0) { - $row['op_user'] = $item->order->car->op2->showName; - $row['op_user1'] = $item->order->car->op1->showName; + $row['op_user'] = $item->order->car->op2?$item->order->car->op2->showName:''; + $row['op_user1'] = $item->order->car->op1?$item->order->car->op1->showName:''; } else { - $row['op_user'] = $item->order->car->op1->showName; + $row['op_user'] = $item->order->car->op1?$item->order->car->op1->showName:''; $row['op_user1'] = ''; } $row['first_xinbao_ticheng'] = $item->orderCaiwu->first_xinbao_ticheng; $row['hebao_ticheng'] = $item->orderCaiwu->hebao_ticheng; - $row['op1_user'] = $item->order->op1->showName; + $row['op1_user'] = $item->order->op1?$item->order->op1->showName:''; $row['zhengben_ticheng'] = $item->orderCaiwu->zhengben_ticheng; - $row['op2_user'] = $item->order->op2->showName; + $row['op2_user'] = $item->order->op2?$item->order->op2->showName:''; $row['dz_ticheng1'] = $item->orderCaiwu->dz_ticheng1; $row['dz_names1'] = $item->orderCaiwu->dz_names1; $row['dz_ticheng2'] = $item->orderCaiwu->dz_ticheng2; @@ -6867,6 +6863,16 @@ class FinanceController extends \frontend\controllers\UserBaseController $row['dz_names5'] = $item->orderCaiwu->dz_names5; $data['rows'][] = $row; } + $data['rows'][] = array( + ['保费总额', number_format($sums['sum_total1_clear'] + $sums['sum_total2_clear'],2)], + ['商业净保总额', number_format($sums['sum_total1_clear'],2)], + ['基本提成合计', number_format($sums['sum_yeji_ticheng'],2)], + ['加点提成合计', number_format($sums['sum_ticheng_money'],2)], + ['自费礼品合计', number_format($gift_sum,2)], + ['自费礼券合计', number_format($voucher_sum,2)], + ['自费减免合计', number_format($sums['sum_yuangong_money'],2)], + ['提成合计', number_format($sums['sum_yewu_ticheng'],2)] + ); return $data; } @@ -7380,6 +7386,9 @@ class FinanceController extends \frontend\controllers\UserBaseController $query = $query->offset($offset)->limit($limit); $items = $query->all(); + $pay_chexian = PayOrderUserT::find() + ->where("pay_date='{$pay_date}'") + ->sum('real_pay'); $data = []; $data['total'] = $total; @@ -7395,6 +7404,10 @@ class FinanceController extends \frontend\controllers\UserBaseController $data['rows'][] = $row; } + $data['rows'][] = array( + ['提成工资总额', number_format($pay_chexian,2)], + ); + return $data; } /** @@ -7586,7 +7599,6 @@ class FinanceController extends \frontend\controllers\UserBaseController $limit = $request->get('limit', 10); $user_id = $this->my->id; -// var_dump($user_id); $query = UserT::find() ->leftJoin('pay_t','pay_t.user_id=user_t.id') ->where('group_id>0 and is_delete=0'); @@ -7611,10 +7623,6 @@ class FinanceController extends \frontend\controllers\UserBaseController $query->offset($offset)->limit($limit); $items = $query->all(); - $page_info = MyLib::getPageInfo($pagination); - - $group_items = GroupT::getTree(); - $data = []; $data['total'] = $total; $data['rows'] = []; @@ -7631,8 +7639,17 @@ class FinanceController extends \frontend\controllers\UserBaseController $data['rows'][] = $row; } + $pay_chexian = PayT::find() + ->where("pay_date='{$pay_date}'") + ->sum('ticheng_real_pay'); + + $data['rows'][] = array( + ['提成工资总额', number_format($pay_chexian,2)], + ); + return $data; } + /** * 出纳工资-详情 * @return string @@ -7759,12 +7776,26 @@ class FinanceController extends \frontend\controllers\UserBaseController ]); } - public function actionReceiptLirun() + public function actionReceiptLirun() { + $company_items = InsurerCompany2T::find()->all(); + $group_items = GroupT::getTree((int)$this->my->group_id); + if($this->my->id == 1) + $group_items = GroupT::getTree(); + + return $this->render('receipt-lirun',[ + 'company_items' => $company_items, + 'group_items' => $group_items + ]); + } + + public function actionReceiptLirunJson() { + Yii::$app->response->format = Response::FORMAT_JSON; set_time_limit(0); ini_set('memory_limit', '3072M'); $request = Yii::$app->request; - $page = $request->get('page', 1); + $offset = $request->get('offset', 0); + $limit = $request->get('limit', 10); $insurer_type = $request->get('insurer_type', 0); $begin_date = $request->get('begin_date',date('Y-m-d')); $end_date = $request->get('end_date',date('Y-m-d')); @@ -7781,245 +7812,192 @@ class FinanceController extends \frontend\controllers\UserBaseController $zbname = $request->get('zbname'); //级别 $group_id = $request->get('group_id'); - $group_items = GroupT::getTree((int)$this->my->group_id); - if($this->my->id == 1 || $this->my->username=='6002' || $this->my->username=='7053') - $group_items = GroupT::getTree(); $group_ids[] = $group_id; - if($group_id > 0) { $items = GroupT::getTree($group_id); - foreach($items as $group_info) { $group_ids[] = $group_info->id; } } -// var_dump($group_ids); - - if ($page < 1) $page = 1; $query = CaiwuT::find() ->leftJoin(OrderT::tableName(), "order_t.id=caiwu_t.order_id") ->where('order_t.status_id>1'); -// ->orderBy('order_t.print_date DESC'); - - switch ($sort_key) { - case 'total': - $sort = 'caiwu_t.total '; - break; - case 'total_clear': - $sort = 'caiwu_t.total_clear '; - break; - case 'total_rate': - $sort = 'caiwu_t.total_rate '; - break; - case 'print_date'://默认按照print_date排序 - default: - $sort = 'order_t.print_date '; - break; - } - - switch ($sort_value) { - case 'ASC': - $sort .= 'ASC'; - break; - case 'DESC': - default: - $sort .= 'DESC'; - break; - } - - $query = $query->orderBy($sort); - if( $insurer_type != 0) { - $query = $query->andWhere('caiwu_t.insurer_type='.$insurer_type); + $query->andWhere('caiwu_t.insurer_type='.$insurer_type); } - if( $company_id > 0) { - $query = $query->andWhere('order_t.company_id='.$company_id); + $query->andWhere('order_t.company2_id='.$company_id); } if ($username != "") { -// $userdata = UserT::findOne(['username'=>$username]); $userdata = UserT::find()->where('username="'.$username.'"')->andwhere('is_leave=0')->one(); if($userdata){ - $query = $query->andWhere('caiwu_t.user_id = ' . $userdata->id . ''); + $query->andWhere('caiwu_t.user_id = ' . $userdata->id . ''); } } - if ($hebaoname != "") { -// $userdata = UserT::findOne(['username'=>$username]); $userdata = UserT::find()->where('username="'.$hebaoname.'"')->andwhere('is_leave=0')->one(); if($userdata){ - $query = $query->andWhere('order_t.op1_id = ' . $userdata->id . ''); + $query->andWhere('order_t.op1_id = ' . $userdata->id . ''); } } - if ($zbname != "") { -// $userdata = UserT::findOne(['username'=>$username]); $userdata = UserT::find()->where('username="'.$zbname.'"')->andwhere('is_leave=0')->one(); if($userdata){ - $query = $query->andWhere('order_t.op2_id = ' . $userdata->id . ''); + $query->andWhere('order_t.op2_id = ' . $userdata->id . ''); } } - if ($car_no != "") { - $query = $query->andWhere('caiwu_t.car_no like "%' . $car_no . '%"'); + $query->andWhere('caiwu_t.car_no like "%' . $car_no . '%"'); } - if ($insurer_no != "") { - $query = $query->andWhere('caiwu_t.insurer_no like "' . $insurer_no . '%"'); + $query->andWhere('caiwu_t.insurer_no like "' . $insurer_no . '%"'); } if ($status > 0) { if ($status == 1) { - $query = $query->andWhere('r_date="" or r_date is null'); + $query->andWhere('r_date="" or r_date is null'); } if ($status == 2) { - $query = $query->andWhere('r_date<>"" and total_dis=0'); + $query->andWhere('r_date<>"" and total_dis=0'); } if($status == 3) { - $query = $query->andWhere('r_date<>"" and total_dis<>0'); + $query->andWhere('r_date<>"" and total_dis<>0'); } } if ($begin_date != "") { - $query = $query->andWhere('order_t.print_date>="' . $begin_date . '"'); + $query->andWhere('order_t.print_date>="' . $begin_date . '"'); } if ($end_date != "") { - $query = $query->andWhere('order_t.print_date<="' . $end_date . '"'); + $query->andWhere('order_t.print_date<="' . $end_date . '"'); } if ($r_begin_date != "") { - $query = $query->andWhere('caiwu_t.r_date>="' . $r_begin_date . '"'); + $query->andWhere('caiwu_t.r_date>="' . $r_begin_date . '"'); } if ($r_end_date != "") { - $query = $query->andWhere('caiwu_t.r_date<="' . $r_end_date . '"'); + $query->andWhere('caiwu_t.r_date<="' . $r_end_date . '"'); } //找出$group_id 有多少在职的user_ids // 现在的搜索条件 $userSql = ''; -// if($username != '') { -// $userSql = ' username like "'.$username.'" and '; -// } - //$userSql .= 'is_locked=0 and is_login=1'; - $user_items = $this->my->getChildren($userSql); - if($this->my->username == '6002' || $this->my->username == '7053') - $user_items = $this->my->getChildren($userSql,1); $user_items[] = $this->my; - $row = array(); foreach($user_items as $user_info) { -// if ($user_info->is_leave == 1) continue; -// var_dump($user_info); if ($group_id > 0) { if (!in_array($user_info->group_id, $group_ids)) { continue; } } - $row[] = $user_info->id; - } - -// var_dump($row); //加上级别筛选 if($group_id > 0){ -// $query = $query->andWhere('order_t.company_id='.$company_id); - $query = $query->andWhere(['in','caiwu_t.user_id',$row]); -// $query = $query->andWhere('caiwu_t.user_id ="' . $group_id . '"'); + $query->andWhere(['in','caiwu_t.user_id',$row]); } - - $query1 = clone $query; - - - $item1s = $query1->all(); - -// echo $query->createCommand()->rawSql; $total = $query->count(); - $sum_r_total = $query->sum('r_total'); - //商业净保费综合 - $sum_total_clear = $query->sum('total_clear'); //是错误的 - - //商业总保费 - $sum_total = $query->sum('total'); - - $sum_total_dis = $query->sum('total_dis'); + $query1 = clone $query; + $sums = $query1->select([ + 'sum_total1' => 'sum(order_t.total1)', + 'sum_r_total' => 'sum(caiwu_t.r_total)', + 'sum_total1_clear' => 'sum(order_t.total1_clear)', + 'sum_budian' => 'sum(order_t.yuangong_money)', + 'sum_r_budian' => 'sum(ifnull(caiwu_t.budian_rate,0)*total_clear/100)', + 'sum_total1_dis' => 'sum(order_t.total1_dis)', + ])->asArray()->one(); + $query2 = clone $query; + $gift_sum = $query2 + ->leftJoin(OrderGiftT::tableName(), "order_gift_t.order_id=caiwu_t.order_id") + ->leftJoin(GiftT::tableName(), "gift_t.id=order_gift_t.gift_id") + ->andWhere('caiwu_t.insurer_type=1') + ->andWhere('order_gift_t.gift_type=1 && order_gift_t.is_free=2') + ->sum('gift_t.price'); + $query2 = clone $query; + $voucher_sum = $query2 + ->leftJoin(OrderGiftT::tableName(), "order_gift_t.order_id=caiwu_t.order_id") + ->leftJoin(GiftT::tableName(), "gift_t.id=order_gift_t.gift_id") + ->andWhere('caiwu_t.insurer_type=1') + ->andWhere('order_gift_t.gift_type=2 && order_gift_t.is_free=2') + ->sum('gift_t.price'); + $query2 = clone $query; + $gongzi_sum = $query2 + ->leftJoin(PayOrderUserT::tableName(), "pay_order_user_t.order_id=caiwu_t.order_id") + ->andWhere('caiwu_t.insurer_type=1') + ->sum('pay_order_user_t.real_pay'); - $pagination = new Pagination(['totalCount' => $total, 'pageSize' => 20]); - $pagination->setPage($page - 1); + switch ($sort_key) { + case 'total': + $sort = 'caiwu_t.total '; + break; + case 'total_clear': + $sort = 'caiwu_t.total_clear '; + break; + case 'total_rate': + $sort = 'caiwu_t.total_rate '; + break; + case 'print_date'://默认按照print_date排序 + default: + $sort = 'order_t.print_date '; + break; + } + switch ($sort_value) { + case 'ASC': + $sort .= 'ASC'; + break; + case 'DESC': + default: + $sort .= 'DESC'; + break; + } - $query = $query->offset($pagination->offset)->limit($pagination->limit); + $query = $query->orderBy($sort)->offset($offset)->limit($limit); $items = $query->all(); - $lirun_all = 0; - $gongzi_all = 0; - $liwu_all = 0; - $total1_dis_all = 0; - $bu_dian_all = 0; - $r_bu_dian_all = 0; - foreach($item1s as $item){ - - + $data = []; + $data['total'] = $total; + $data['rows'] = []; + foreach($items as $item) { $order_info = $item->order; - - $total_clear_real = $item->total_clear * $item->total_rate/100; - $total1_dis = $item->insurer_type == 1?($order_info->total1_dis + $order_info->yuangong_money):0; - - $gongzi = $item->insurer_type == 1?$item->getPayOrderUser()->sum('real_pay'):0; + $user_info = $item->user; + $row = $item->toArray(); + $row['username'] = $user_info->username; + $row['company_name'] = $order_info ? $order_info->company2->name : ''; + $row['group_name'] = $user_info->group ? $user_info->group->path : ''; + $row['submit_date'] = $order_info ? $order_info->submit_date : ''; + $row['print_date'] = $order_info ? $order_info->print_date : ''; + if($item->insurer_type == 1) { + $row['insurer_type'] = '商业'; + } else { + $row['insurer_type'] = '交强'; + } + $row['total_real'] = round($item->total * $item->total_rate/100,2); + $row['total_clear_real'] = round($item->total_clear * $item->total_rate/100,2); + $row['bu_dian'] = $item->budian_rate?round($item->budian_rate * $item->total_clear,2) / 100:0; + $row['r_bu_dian'] = $item->insurer_type == 1?round($item->b1_total+$item->b2_total+$item->b3_total,2):0; + $row['total1_dis'] = $item->insurer_type == 1?round($order_info->total1_dis + $order_info->yuangong_money,2):0; $ticket = $item->insurer_type == 1?$order_info->getGiftPrice(1,1):0; $gift = $item->insurer_type == 1?$order_info->getGiftPrice(1,2):0; - $r_bu_dian = $item->insurer_type == 1?($item->b1_total+$item->b2_total+$item->b3_total):0; - $bu_dian = $item->budian_rate?$item->budian_rate * $item->total_clear / 100:0; - $liwu = $ticket + $gift; - - $lirun_all += $total_clear_real + $bu_dian - $total1_dis - $gongzi - $liwu; - - $gongzi_all += $gongzi; - $liwu_all += $liwu; - $total1_dis_all += $total1_dis; - $bu_dian_all += $bu_dian; - $r_bu_dian_all += $r_bu_dian; - + $row['liwu'] = round($ticket + $gift,2); + $row['gongzi'] = $item->insurer_type == 1?round($item->getPayOrderUser()->sum('real_pay'),2):0; + $row['lirun'] = round($row['total_clear_real'] + $row['bu_dian'] - $row['total1_dis'] - $row['gongzi'] - $row['liwu'],2); + $data['rows'][] = $row; } -// var_dump($items); - - $page_info = MyLib::getPageInfo($pagination); - - $company_items = InsurerCompanyT::find()->all(); + $data['rows'][] = array( + ['商业保总额', number_format($sums['sum_total1'],2)], + ['商业净保总额', number_format($sums['sum_total1_clear'],2)], + ['回款总额', number_format($sums['sum_r_total'],2)], + ['补点总额', number_format($sums['sum_budian'],2)], + ['回款补点总额', number_format($sums['sum_r_budian'],2)], + ['减免总额', number_format($sums['sum_total1_dis'],2)], + ['礼品礼券自费总额', number_format($gift_sum + $voucher_sum,2)], + ['工资总额', number_format($gongzi_sum,2)], + ['利润总额', number_format($sums['sum_total1_clear'] + $sums['sum_budian'] - $sums['sum_total1_dis'] - $gongzi_sum - $gift_sum - $voucher_sum,2)], + ); - return $this->render('receipt-lirun', [ - 'items' => $items, - 'username' => $username, - 'hebaoname' => $hebaoname, - 'zbname' => $zbname, - 'page' => $page, - 'car_no' => $car_no, - 'insurer_no' => $insurer_no, - 'status' => $status, - 'begin_date' => $begin_date, - 'end_date' => $end_date, - 'r_begin_date' => $r_begin_date, - 'r_end_date' => $r_end_date, - 'page_info' => $page_info, - 'sort_key' => $sort_key, - 'sort_value' => $sort_value, - 'sum_r_total' => $sum_r_total, - 'sum_total_clear' => $sum_total_clear, - 'sum_total' => $sum_total, - 'sum_total_dis' => $sum_total_dis, - 'company_items' => $company_items, - 'group_id' => $group_id, - 'group_items' => $group_items, - 'company_id' => $company_id, - 'insurer_type' => $insurer_type, - 'lirun_all'=>$lirun_all, - 'gongzi_all'=>$gongzi_all, - 'liwu_all'=>$liwu_all, - 'total1_dis_all'=>$total1_dis_all, - 'bu_dian_all'=>$bu_dian_all, - 'r_bu_dian_all'=>$r_bu_dian_all - ]); + return $data; } public function actionGongziAllReturnSave() diff --git a/frontend/controllers/FixCarController.php b/frontend/controllers/FixCarController.php index 7f4cf26..d85d49f 100644 --- a/frontend/controllers/FixCarController.php +++ b/frontend/controllers/FixCarController.php @@ -207,9 +207,6 @@ class FixCarController extends BaseController $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; diff --git a/frontend/controllers/GiftController.php b/frontend/controllers/GiftController.php index 9a1145d..2c63b38 100644 --- a/frontend/controllers/GiftController.php +++ b/frontend/controllers/GiftController.php @@ -59,7 +59,7 @@ class GiftController extends \yii\web\Controller $query = GiftT::find() ->where('is_delete=0'); if($type_id > 0) { - $query = $query->andWhere('typeid='.$type_id); + $query = $query->andWhere('type_id='.$type_id); } if($name != '') { $query = $query->andWhere('name like "'.$name.'"'); @@ -75,7 +75,7 @@ class GiftController extends \yii\web\Controller $data['rows'] = []; foreach($items as $item) { $row = $item->toArray(); - $row['type'] = $item->getShowType(); + $row['type'] = $item->showType; $data['rows'][] = $row; } @@ -818,7 +818,7 @@ class GiftController extends \yii\web\Controller ->leftJoin('order_t','order_t.id=gift_ticket_t_use.order_id') ->leftJoin('gift_t','gift_t.id=gift_ticket_t_use.type_id') ->leftJoin('user_t','user_t.id=gift_ticket_t_use.user_id') - ->where('gift_t.type_id=2') + ->where('gift_t.type_id=1') ->orderBy('id DESC'); if($code != '') { $query->andWhere('gift_ticket_t_use.code="'.$code.'"'); @@ -1095,6 +1095,25 @@ class GiftController extends \yii\web\Controller return $data; } + + public function actionGiftUseEdit() + { + $request = Yii::$app->request; + $id = $request->get('id',0); + $back_params = $request->get('back_params'); + if($id > 0) { + $info = GiftTicketTUse::findOne(['id'=>$id]); + } else { + $info = new GiftTicketTUse(); + } + + + + return $this->render('gift-use-edit',[ + 'info' => $info + ]); + } + public function actionTicketUseEdit() { $request = Yii::$app->request; @@ -1114,7 +1133,6 @@ class GiftController extends \yii\web\Controller } public function actionHistoryLogJson() { - Yii::$app->response->format = Response::FORMAT_JSON; Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $id = $request->get('id'); diff --git a/frontend/controllers/InsurerController.php b/frontend/controllers/InsurerController.php index e0c84b0..c5fd1d1 100644 --- a/frontend/controllers/InsurerController.php +++ b/frontend/controllers/InsurerController.php @@ -131,20 +131,6 @@ class InsurerController extends BaseController if($order_info->non_id){ $nonitems=NonAutoInsurance::findOne(['id'=>$order_info->non_id]); } -// dd($order_info->non_id); - //快递 -// dd($car_info->id); -// $ems_items = EmsT::find() -// ->where(['car_id'=>$car_info->id,'order_id'=>$order_info->id]) -// ->orderBy('id ASC') -// ->all(); -// $ems_items1=(object)array(); -// if(!$ems_items){ -// $ems_items1 = ExpressT::find() -// ->where(['car_id'=>$car_info->id,'order_id'=>$order_info->id]) -// ->orderBy('id ASC') -// ->all(); -// } //礼品 $gift_free_group_items = GiftGroupT::find() ->where('is_free=1') @@ -177,8 +163,6 @@ class InsurerController extends BaseController return $this->render('info',[ 'order_info'=>$order_info, 'car_info'=>$car_info, -// 'ems_items' => $ems_items, -// 'ems_items1' => $ems_items1, 'money_man' => $money_man, 'money_no' => $money_no, 'money_bank' => $money_bank, @@ -613,6 +597,7 @@ class InsurerController extends BaseController if($company2_id > 0) { $query->andWhere('company2_id=:company2_id',[':company2_id'=>$company2_id]); } +// echo $query->createCommand()->rawSql; $query = $query->orderBy('updated_at asc'); $total = $query->count(); @@ -737,7 +722,7 @@ class InsurerController extends BaseController $total1_rate = $request->post('total1_rate','0.00'); $total2_rate = $request->post('total2_rate','0.00'); $pay_no = $request->post('pay_no',0); - $company2_id = $request->post('company2_id',0); + $company2_id = $request->post('company_id',0); if($total1_rate == '') { $result['msg'] = '请输入商业跟单手续费!'; @@ -930,6 +915,26 @@ class InsurerController extends BaseController $insurer2_no= trim($insurer2_no); $insurer2_no=str_replace(" ","",$insurer2_no); + if($insurer1_no == $insurer2_no) { + $result['msg'] = '商业保单号和交强保单号不能相同!'; + return $result; + } + $tmp_count = OrderT::find() + ->where('insurer1_no=:insurer1_no or insurer2_no=:insurer1_no', [':insurer1_no'=>$insurer1_no]) + ->andWhere('id<>'.$order_id) + ->count(); + if($tmp_count > 0) { + $result['msg'] = '商业保单号已经存在!'; + return $result; + } + $tmp_count = OrderT::find() + ->where('insurer1_no=:insurer2_no or insurer2_no=:insurer2_no', [':insurer2_no'=>$insurer2_no]) + ->andWhere('id<>'.$order_id) + ->count(); + if($tmp_count > 0) { + $result['msg'] = '交强保单号已经存在!'; + return $result; + } $tran = OrderT::getDb()->beginTransaction(); try { @@ -1122,17 +1127,14 @@ class InsurerController extends BaseController if($group_id > 0) { $items = GroupT::getTree($group_id); - foreach($items as $group_info) { $group_ids[] = $group_info->id; } } - $query = OrderT::find() ->leftJoin('order_caiwu_t','order_caiwu_t.order_id=order_t.id') - ->where('order_caiwu_t.status_id>0') - ->orderBy('order_t.print_date asc'); + ->where('order_caiwu_t.status_id>0'); if($car_man != '') { $query->andWhere('id_man="'.$car_man.'"'); } @@ -1195,9 +1197,7 @@ class InsurerController extends BaseController continue; } } - $row[] = $user_info->id; - } //加上级别筛选 @@ -1205,8 +1205,15 @@ class InsurerController extends BaseController $query = $query->andWhere(['in','order_t.user_id',$row]); } $total = $query->count(); - - $query = $query->offset($offset)->limit($limit); + $query1 = clone $query; + $sums = $query1->select([ + 'sum_total1' => 'sum(order_t.total1)', + 'sum_total1_clear' => 'sum(order_t.total1_clear)', + 'sum_yuangong_money' => 'sum(order_t.yuangong_money)', + 'sum_non_total1_dis' => 'sum(order_t.non_total1_dis)', + 'sum_total1_dis' => 'sum(order_t.total1_dis)', + ])->asArray()->one(); + $query = $query->orderBy('order_t.print_date asc')->offset($offset)->limit($limit); $items = $query->all(); $data = []; @@ -1214,18 +1221,26 @@ class InsurerController extends BaseController $data['rows'] = []; foreach($items as $item) { $row = $item->toArray(); - $row['company_name'] = $item->company2->name; - $row['path'] = ($item->user && $item->user->group) ? $item->user->group->getPath():''; - $row['user_name'] = $item->user?$item->user->getShowName():''; - $row['total_user_real'] = number_format($item->total1_dis + $item->yuangong_money,2); + $row['company_name'] = $item->company2 ? $item->company2->name : ''; + $row['path'] = ($item->user && $item->user->group) ? $item->user->group->getPath() : ''; + $row['user_name'] = $item->user ? $item->user->getShowName() : ''; + $row['total_user_real'] = number_format($item->total1_dis + $item->yuangong_money, 2); $row['transfer_date'] = $item->caiwu->transfer_date; - $row['caiwu_status_name'] = $item->caiwu->caiwuStatus->name; + $row['caiwu_status_name'] = $item->caiwu && $item->caiwu->caiwuStatus ? $item->caiwu->caiwuStatus->name : ''; $row['shoufei_name'] = MyLib::zhifufs($item->shoufei_id); - $row['status_name'] = $item->caiwu->status->name; + $row['status_name'] = $item->caiwu && $item->caiwu->status ? $item->caiwu->status->name : ''; $row['lock_man'] = $item->caiwu->lock?$item->caiwu->lock->getShowName():''; $data['rows'][] = $row; } + $data['rows'][] = array( + ['商业保总额', number_format($sums['sum_total1'],2)], + ['商业净保总额', number_format($sums['sum_total1_clear'],2)], + ['业务自付', number_format($sums['sum_yuangong_money'],2)], + ['公司代付非车险', number_format($sums['sum_non_total1_dis'],2)], + ['公司返金额', number_format($sums['sum_total1_dis'],2)], + ['实返现金额', number_format($sums['sum_yuangong_money'] + $sums['sum_total1_dis'],2)] + ); return $data; } @@ -2019,7 +2034,7 @@ class InsurerController extends BaseController if($request->isPost) { $order_id = $request->post('order_id',0); - $return_status_id = $request->post('return_status_id',0); + $return_status_id = $request->post('return_status_id',2); $return_remark = $request->post('return_remark'); $tran = OrderT::getDb()->beginTransaction(); @@ -2031,7 +2046,8 @@ class InsurerController extends BaseController } $row->status_id = 1; - $row->return_status_id = $return_status_id; + $row->return_status_id = $row->status_id; + if($row->return_status_id == 0) $row->return_status_id = 2; $row->return_remark = $return_remark; $row->return_time = time(); // if($return_status_id == 2) { @@ -2361,8 +2377,8 @@ class InsurerController extends BaseController $limit = $request->get('limit', 10); $query = OrderT::find() - ->where('status_id>1') - ->orderBy('car_no desc,submit_date asc'); + ->andWhere('status_id>1') + ->orderBy('status_id desc,car_no desc,submit_date asc'); if($id_man != '') { $query->andWhere(['like','id_man',$id_man]); } @@ -2393,13 +2409,11 @@ class InsurerController extends BaseController if($date3_end != '') { $query->andWhere('insurer1_begin_date<=:end_date or insurer2_begin_date<=:end_date', [':end_date'=>$date3_end]); } - if($status > 0) { - if($status == 1) { - $query->andWhere('status_id>1 and status_id<10'); - } - if($status == 2) { - $query->andWhere('status_id=10'); - } + if($status == 1) { + $query->andWhere('status_id>1 and status_id<10'); + } + if($status == 2) { + $query->andWhere('status_id=10'); } $total = $query->count(); @@ -3475,12 +3489,69 @@ class InsurerController extends BaseController $tran->commit(); } catch (\Exception $e) { +// var_dump($e->getTrace()); $tran->rollBack(); $result['msg'] = $e->getMessage(); } } return $result; } + + /** + * 礼品状态回退 + * @return array + */ + public function actionGiftCancel() + { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $id = $request->post('order_id'); + $msg= $request->post('return_msg'); + $result = array('success'=>false,'msg'=>'操作成功'); + if(!$request->isPost){ + $result['msg'] = '请求方式错误'; + return $result; + } + if(!$this->my->id == 1){ + $result['msg'] = '无此操作权限'; + return $result; + } + if ($id < 0) { + $result['msg'] = '订单ID无效'; + return $result; + } + if ($msg == '') { + $result['msg'] = '退单理由必须'; + return $result; + } + + $order_info = OrderT::findOne($id); + if (!$order_info) { + $result['msg'] = '订单不存在'; + return $result; + } + + $tran = OrderT::getDb()->beginTransaction(); + try { + // 删除礼品/券库信息 + GiftTicketTUse::deleteAll('order_id=' . $order_info->id); + // 修改订单礼品/券信息 + OrderGiftT::updateAll(['gift_src' => ''], ['order_id' => $order_info->id]); + // 修改订单状态 + $order_info->gift_status = 0; + $order_info->save(); + $this->addLog($order_info->car_id, '回退礼品状态,理由:' . $msg, 1); + $tran->commit(); + } catch (\Exception $e) { + $tran->rollBack(); + $result['msg'] = '订单不存在'; + $result['msg'] = $e->getMessage(); + return $result; + } + $result['success'] = true; + return $result; + } + public function getGift($k, $v, $car_no, $order_info, $order_gift_id) { $result = array(); @@ -3495,8 +3566,7 @@ class InsurerController extends BaseController //礼券 if ($gift_info && $gift_info->type_id == 2) { $pinyin_arr = explode(' ', $gift_info->pinyin_name); -// dd($pinyin_arr); - $liquan_str = 'ch'; + $liquan_str = 'wf'; //获取礼券拼音首字母 foreach ($pinyin_arr as $first) { $liquan_str .= substr($first, 0, 1); @@ -3513,13 +3583,12 @@ class InsurerController extends BaseController if ($gift_use) { $liquan_str .= sprintf("%04d", $gift_use->gift_shuzi + 1); $new_gift_use->gift_shuzi = $gift_use->gift_shuzi + 1; - $new_gift_use->code = $liquan_str; } else { $liquan_str .= sprintf("%04d", 1); $new_gift_use->gift_shuzi = 1; - $new_gift_use->code = strtoupper($liquan_str); } + $new_gift_use->code = strtoupper($liquan_str); $new_gift_use->op_id = $this->my->id; $new_gift_use->type_id = $v; //礼券ID $new_gift_use->input_date = date('Y-m-d H:i:s'); @@ -3544,7 +3613,7 @@ class InsurerController extends BaseController if ($shiwu_use) { $new_shiwu->gift_shuzi = $shiwu_use->gift_shuzi + 1; - $new_shiwu->code = sprintf("%04d", $gift_use->gift_shuzi + 1); + $new_shiwu->code = sprintf("%04d", $shiwu_use->gift_shuzi + 1); } else { $new_shiwu->gift_shuzi = 1; $new_shiwu->code = sprintf("%04d", 1); @@ -3574,7 +3643,6 @@ class InsurerController extends BaseController $imgstr = '@frontend/web/upload/images/'.date('Ym'); $imgstr .= '/gift' . $name . '' . $datetime . '.png'; FileHelper::createDirectory(dirname(str_replace('@frontend/web/', '',$imgstr))); - //生成新的图片 if ($gift_info && $gift_info->type_id == 1) { // 实物 \yii\imagine\Image::thumbnail('@frontend/web/images/gift.png', 400, 252) @@ -3593,23 +3661,25 @@ class InsurerController extends BaseController ->save(Yii::getAlias($imgstr)); } elseif ($gift_info && $gift_info->type_id == 2) { + if($gift_info->original_img == '') { + throw new \Exception('礼券文件不存在'); + } $liquanSrc = '@frontend/web' . $gift_info->original_img; \yii\imagine\Image::thumbnail($liquanSrc, 1097, 979) ->save(Yii::getAlias($imgstr), ['quality' => 100]);//生成缩略图的质量 //图片打水印 $bianhao = '券号:' . $bianhao; - \yii\imagine\Image::text($liquanSrc, $bianhao, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [325, 85], ['color' => 'ffffff', 'size' => 14]) + \yii\imagine\Image::text($liquanSrc, $bianhao, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [20, 20], ['color' => '000000', 'size' => 14]) ->save(Yii::getAlias($imgstr)); - \yii\imagine\Image::text($imgstr, $car_no, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [900, 400], ['color' => 'ffffff', 'size' => 16]) + \yii\imagine\Image::text($imgstr, $car_no, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [425, 200], ['color' => '000000', 'size' => 16]) ->save(Yii::getAlias($imgstr)); - $panduan = \yii\imagine\Image::text($imgstr, $endDate, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [850, 440], ['color' => 'ffffff', 'size' => 16]) + $panduan = \yii\imagine\Image::text($imgstr, $endDate, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [425, 223], ['color' => '000000', 'size' => 16]) ->save(Yii::getAlias($imgstr)); } - $gift_src = str_replace('@frontend/web', '', $imgstr); //保存order_gift_t表里png文件地址 @@ -3620,4 +3690,100 @@ class InsurerController extends BaseController } } -} + /** + * 退单操作(超管权限任意状态退单) + * @return array + * @throws \Exception + */ + public function actionSupperReturn() + { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $result = array(); + $result['success'] = false; + $result['msg'] = '操作失败'; + if($request->isPost) { + $order_id = $request->post('order_id',0); + $return_remark = $request->post('return_remark'); + if ($order_id < 0) { + $result['msg'] = '订单ID无效'; + return $result; + } + if($return_remark == ''){ + $result['msg'] = '请填写退单理由!'; + return $result; + } + + $order_info = OrderT::findOne(['id'=>$order_id]); + if(empty($order_info)) { + $result['msg'] = '保单信息不存在!'; + return $result; + } + + // 订单信息更新 + $order_info->return_status_id = $order_info->status_id; + if($order_info->return_status_id == 0) $order_info->return_status_id = 2; + $order_info->lock_id = 0; + $order_info->status_id = 1; + $order_info->return_remark = $return_remark; + $order_info->return_time = time(); + $order_info->gift_status = 0; + // 车辆信息处理 + $car_info = $order_info->car; + if ($car_info->op2_id > 0) { //续保 + $car_info->location = 4; + }else { + $car_info->location = 2; + $car_info->is_xubao = 0; + } +// $car_info->user_id = $order_info->user_id; + + $tran = OrderT::getDb()->beginTransaction(); + try { + if(!$car_info->save()) { + throw new \Exception(print_r($car_info->getErrors(), true)); + } + // 财务处理 + CaiwuT::deleteAll(['order_id'=>$order_info->id]); + OrderCaiwuT::deleteAll(['order_id'=>$order_info->id]); + OrderUserT::deleteAll(['order_id'=>$order_info->id]); + + // 车辆信息 + CarCT::deleteAll(['id' => $order_info->car_id]); + // 检测车辆是否移库 + if($car_info->op2_id > 0 && $car_info->location != 4){ + $car_db_info = new CarDT(false); + $car_db_info->id = $order_info->car_id; + $car_db_info->user_id = $order_info->user_id; + if(!$car_db_info->save()) { + throw new \Exception(print_r($car_db_info->getErrors(), true)); + } + } + if(!$order_info->car->op2_id && $order_info->car->location != 2){ + $car_db_info = new CarBT(false); + $car_db_info->id = $order_info->car_id; + $car_db_info->user_id = $order_info->user_id; + if(!$car_db_info->save()) { + throw new \Exception(print_r($car_db_info->getErrors(), true)); + } + } + + // 礼品状态回退 + GiftTicketTUse::deleteAll('order_id=' . $order_info->id); + OrderGiftT::updateAll(['gift_src' => ''], ['order_id' => $order_info->id]); + + $this->addLog($order_info->car_id,'超管退单,理由是:'.$return_remark,1); + if(!$order_info->save()) { + throw new \Exception(print_r($order_info->getErrors(), true)); + } + $tran->commit(); + $result['success'] = true; + $result['msg'] = '操作成功'; + } catch (\Exception $e) { + $tran->rollBack(); + $result['msg'] = '操作失败,' . $e->getMessage(); + } + } + return $result; + } +} \ No newline at end of file diff --git a/frontend/controllers/MarketingStrategyController.php b/frontend/controllers/MarketingStrategyController.php index fb21ba7..9ef8497 100644 --- a/frontend/controllers/MarketingStrategyController.php +++ b/frontend/controllers/MarketingStrategyController.php @@ -110,6 +110,31 @@ class MarketingStrategyController extends UserBaseController return $result; } + public function actionDelete() { + Yii::$app->response->format = Response::FORMAT_JSON; + $request = Yii::$app->request; + $result = array(); + $result['success'] = false; + $result['msg'] = '删除失败'; + + $id = $request->post('id',0); + + if($id == 0) + return $result; + + $tichengTypeT = ZhongjiYingxiao::findOne(['id'=>$id]); + if($tichengTypeT) { + $tichengTypeT->is_delete = 1; + $tichengTypeT->save(); + } + + + $result['success'] = true; + $result['msg'] = '删除成功'; + + return $result; + } + public function actionUsers() { $request = Yii::$app->request; $id = $request->get('id'); @@ -467,7 +492,7 @@ class MarketingStrategyController extends UserBaseController $total1_clear = $request->post('total1_clear', 0); $car_no = $request->post('car_no'); $car_use_id = $request->post('car_use_id', 0); - $company2_id = $request->post('company2_id', 0); + $company_id = $request->post('company_id', 0); $car_info = CarT::findOne($car_id); if(!$car_info) { @@ -484,7 +509,7 @@ class MarketingStrategyController extends UserBaseController } $date = date('Y-m-d H:i:s'); $query = ZhongjiYingxiao::find() - ->where('begin_date<=:begin_date and end_date>=:end_date',[':begin_date'=>$date,':end_date'=>$date]) + ->where('is_delete=0 and begin_date<=:begin_date and end_date>=:end_date',[':begin_date'=>$date,':end_date'=>$date]) ->andWhere(['in','id',$celuo_ids]) ->orderBy('id desc'); $yingxiao_item = $query->one(); @@ -493,49 +518,73 @@ class MarketingStrategyController extends UserBaseController } $items = ZhongjiTiaojian::find() ->where('celuo_id=:celuo_id and type=1',[':celuo_id'=>$yingxiao_item->id]) - ->andWhere(['<','baofei', $total1_clear]) + ->andWhere(['<=','baofei', $total1_clear]) ->all(); $ids = []; + $flags = []; foreach($items as $item) { - $flag = false; //车牌 + $flags[0] = 0; if($item->car_type_id != '') { $car_type_ids = explode(',',$item->car_type_id); $tmp_type_id = 1; if(mb_substr($car_no, 0, 1, 'utf-8') != '京') $tmp_type_id = 2; if(in_array($tmp_type_id, $car_type_ids)) { - $flag = true; + $flags[0] = 1; + } else { + $flags[0] = -1; } } //保险公司 + $flags[1] = 0; if($item->company_ids != '') { $company_ids = explode(',',$item->company_ids); - if(in_array($company2_id, $company_ids)) { - $flag = true; + if(in_array($company_id, $company_ids)) { + $flags[1] = 1; + } else { + $flags[1] = -1; } } //车辆使用类型 + $flags[2] = 0; if($item->car_use_id != '') { $car_use_ids = explode(',',$item->car_use_id); if(in_array($car_use_id, $car_use_ids)) { - $flag = true; + $flags[2] = 1; + } else { + $flags[2] = -1; } } //新保、续保 + $flags[3] = 0; if($item->type_ids != '') { $type_ids = explode(',',$item->type_ids); $tmp_type_id = 1; if($car_info->is_xubao > 0) $tmp_type_id = 2; if(in_array($tmp_type_id, $type_ids)) { - $flag = true; + $flags[3] = 1; + } else { + $flags[3] = -1; + } + } + + $flag = true; + foreach($flags as $tmp_flag) { + if($tmp_flag == 0) continue; + if($tmp_flag == -1) { + $flag = false; + break; } } if($flag) { $ids[] = $item->id; } } + if(count($ids) == 0) { + return $result; + } $result['success'] = true; $result['ids'] = join(',',$ids); $result['celuo_id'] = $yingxiao_item->id; @@ -586,8 +635,10 @@ class MarketingStrategyController extends UserBaseController ->where(['order_id'=>$order_id,'gift_type'=>$type]) ->all(); $order_gift_ids = []; + $order_gift_srcs = []; foreach($order_gift_items as $order_gift_item) { $order_gift_ids[] = $order_gift_item->gift_id; + $order_gift_srcs[$order_gift_item->gift_id] = $order_gift_item->gift_src; } $gifts = ZhongjiGiftT::find() ->where(['fanxian_id'=>$fanxian_id,'gift_type'=>$type]) @@ -601,6 +652,12 @@ class MarketingStrategyController extends UserBaseController foreach($tmp_row['gifts'] as $index => $gift_info) { if(in_array($gift_info['id'], $order_gift_ids)) { $tmp_row['gifts'][$index]['selected'] = 1; + $tmp_gift = GiftT::find()->where('id='.$gift_info['id'])->one(); + if($tmp_gift && $tmp_gift->type_id == 2) { + $tmp_row['gifts'][$index]['img_src'] = $order_gift_srcs[$gift_info['id']]; + } else { + $tmp_row['gifts'][$index]['img_src'] = ''; + } } else { $tmp_row['gifts'][$index]['selected'] = 0; } diff --git a/frontend/controllers/PhoneCenterController.php b/frontend/controllers/PhoneCenterController.php index eaf24a3..457f868 100644 --- a/frontend/controllers/PhoneCenterController.php +++ b/frontend/controllers/PhoneCenterController.php @@ -10,6 +10,7 @@ namespace frontend\controllers; use common\models\FixCarT; use common\models\UserT; +use GuzzleHttp\Client; use yii\base\Controller; use common\libs\MyLib; use common\models\AppointmentT; @@ -277,6 +278,10 @@ public function actionDownload(){ $data['rows'] = []; foreach($sub_items as $item) { $row = $item->toArray(); + $row['status'] = ''; + if($item->bind_id != '') { + $row['status'] = '已绑定'; + } $data['rows'][] = $row; } @@ -315,7 +320,6 @@ public function actionDownload(){ $phone = $request->post('phone',''); $is_double = $request->post('is_double',0); - if($user_id == 0) { $result['msg'] = '请输入人员名称!'; return $result; @@ -326,14 +330,33 @@ public function actionDownload(){ return $result; } - - $tran = NetworkPhoneAssignT::getDb()->beginTransaction(); - try { $row = null; if($id > 0) { $row = NetworkPhoneAssignT::findOne(['id'=>$id]); + + $url = Yii::$app->params['userPanel']['phone_url']; + $token = Yii::$app->params['userPanel']['token']; + + $params = [ + 'token' => $token, + 'op' => 'edit', + 'phone' => $phone, + 'old_phone' => $row->phone + ]; + $client = new Client(); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 400) { + $result['msg'] = $obj->msg; + return $result; + } + } } else { if($is_double == 0) { $t = NetworkPhoneAssignT::findOne(['phone' => $phone]); @@ -342,6 +365,26 @@ public function actionDownload(){ return $result; } } + $url = Yii::$app->params['userPanel']['phone_url']; + $token = Yii::$app->params['userPanel']['token']; + + $params = [ + 'token' => $token, + 'op' => 'add', + 'phone' => $phone + ]; + $client = new Client(); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 400) { + $result['msg'] = $obj->msg; + return $result; + } + } $row = new NetworkPhoneAssignT(); } $row->user_id = $user_id; @@ -382,6 +425,27 @@ public function actionDownload(){ return $result; } $row = NetworkPhoneAssignT::findOne(['id'=>$id]); + + $url = Yii::$app->params['userPanel']['phone_url']; + $token = Yii::$app->params['userPanel']['token']; + + $params = [ + 'token' => $token, + 'op' => 'delete', + 'phone' => $row->phone + ]; + $client = new Client(); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 400) { + $result['msg'] = $obj->msg; + return $result; + } + } $row->delete(); $result['success'] = true; @@ -390,7 +454,7 @@ public function actionDownload(){ $tran->commit(); } catch(\Exception $e) { $tran->rollBack(); - throw $e; + $result['msg'] = $e->getMessage(); } } } @@ -408,7 +472,6 @@ public function actionDownload(){ $info = new NetworkPhoneSubT(); } - return $this->render('sub-edit',[ 'info' => $info, 'assign_id'=>$assign_id @@ -430,13 +493,12 @@ public function actionDownload(){ $is_called = $request->post('is_called'); $is_double = $request->post('is_double'); - - if($phone == '') { $result['msg'] = '请输入电话号码!'; return $result; } + $phone_info = NetworkPhoneAssignT::findOne(['id'=>$assign_id]); $tran = NetworkPhoneSubT::getDb()->beginTransaction(); @@ -444,6 +506,28 @@ public function actionDownload(){ $row = null; if($id > 0) { $row = NetworkPhoneSubT::findOne(['id'=>$id]); + + $url = Yii::$app->params['userPanel']['phone_url']; + $token = Yii::$app->params['userPanel']['token']; + $params = [ + 'token' => $token, + 'op' => 'sub_edit', + 'phone' => $phone_info->phone, + 'sub_phone' => $phone, + 'old_sub_phone' => $row->phone + ]; + $client = new Client(); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 400) { + $result['msg'] = $obj->msg; + return $result; + } + } } else { if($is_double == 0) { $t = NetworkPhoneSubT @@ -453,6 +537,28 @@ public function actionDownload(){ return $result; } } + + $url = Yii::$app->params['userPanel']['phone_url']; + $token = Yii::$app->params['userPanel']['token']; + $params = [ + 'token' => $token, + 'op' => 'sub_add', + 'phone' => $phone_info->phone, + 'sub_phone' => $phone + ]; + $client = new Client(); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 400) { + $result['msg'] = $obj->msg; + return $result; + } + } + $row = new NetworkPhoneSubT(); } $row->assign_id = $assign_id; @@ -463,7 +569,7 @@ public function actionDownload(){ $tran->commit(); } catch(\Exception $e) { $tran->rollBack(); - throw $e; + $result['msg'] = $e->getMessage(); } $result['success'] = true; @@ -488,6 +594,26 @@ public function actionDownload(){ try { $row = NetworkPhoneSubT::findOne(['id'=>$id]); if($row->bind_id == ''){ + $url = Yii::$app->params['userPanel']['phone_url']; + $token = Yii::$app->params['userPanel']['token']; + $params = [ + 'token' => $token, + 'op' => 'sub_delete', + 'sub_phone' => $row->phone + ]; + $client = new Client(); + $res = $client->request('POST', $url, [ + 'form_params' => $params, + 'http_errors' => false, + ]); + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody()); + if($obj->code == 400) { + $result['msg'] = $obj->msg; + return $result; + } + } + $row->delete(); $result['success'] = true; @@ -498,7 +624,7 @@ public function actionDownload(){ $tran->commit(); } catch(\Exception $e) { $tran->rollBack(); - throw $e; + $result['msg'] = $e->getMessage(); } } } diff --git a/frontend/controllers/PhoneController.php b/frontend/controllers/PhoneController.php index e82e5cf..b9029d0 100644 --- a/frontend/controllers/PhoneController.php +++ b/frontend/controllers/PhoneController.php @@ -16,6 +16,7 @@ use common\models\NetworkPhoneAssignT; use common\models\NetworkPhoneSubT; use common\models\NetworkPhoneT; +use GuzzleHttp\Client; use Yii; use yii\console\Request; use yii\web\Response; @@ -723,11 +724,30 @@ class PhoneController extends \yii\web\Controller $phone = $request->get('phone',''); $user_id = $request->get('user_id',0); + //检查通话剩余分钟 + $url = Yii::$app->params['userPanel']['myinfo_url']; + $token = Yii::$app->params['userPanel']['token']; + + $client = new Client(); + $res = $client->request('GET', $url.'?token='.$token); + $phone_time = 0; + if($res->getStatusCode() == 200) { + $obj = json_decode($res->getBody(), true); + if($obj['code'] == 400) { + $result['msg'] = $obj['msg']; + return $result; + } + $phone_time = intval($obj['data']['phone_time']); + } + + if($phone_time <= 0) { + $result['msg'] = '电话剩余话费不足,请联系管理员充值'; + return $result; + } + $headers = array( "Content-Type: application/json;charset=UTF-8", "Accept:application/json", - - ); $uri = "http://api.1ketong.com/ykt-pool/number/ax2/call_out"; $app_key = '0946239060682011'; @@ -737,6 +757,7 @@ class PhoneController extends \yii\web\Controller $assign = NetworkPhoneAssignT::find()->where('user_id='.$user_id)->one(); if(!$assign){ + $result['msg'] = '该账号无绑定主叫号码'; return $result; } @@ -748,6 +769,7 @@ class PhoneController extends \yii\web\Controller $count = count($total_ids); if($count<= 0){ + $result['msg'] = '该主叫号码无绑定子号码'; return $result; } diff --git a/frontend/controllers/RenewalController.php b/frontend/controllers/RenewalController.php index 909585a..1e08582 100644 --- a/frontend/controllers/RenewalController.php +++ b/frontend/controllers/RenewalController.php @@ -97,11 +97,9 @@ class RenewalController extends BaseController $car_man = $request->get('car_man'); $phone = $request->get('phone'); $car_no = $request->get('car_no'); - $page = $request->get('page',1); $username = $request->get('username'); $sort_key = $request->get('sort_key','appointment_t.pdate'); $sort_value = $request->get('sort_value','ASC'); - $user_id = $request->get('user_id'); $offset = $request->get('offset',0); $limit = $request->get('limit', 10); @@ -118,7 +116,7 @@ class RenewalController extends BaseController $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { - $query->andWhere('car_t.phone like "'.$phone.'"'); + $query->andWhere('car_t.car_man_phone like "'.$phone.'"'); } if($car_no != '') { $query->andWhere('car_t.car_no like "'.$car_no.'"'); @@ -199,7 +197,7 @@ class RenewalController extends BaseController $query = $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { - $query = $query->andWhere('car_t.phone="'.$phone.'"'); + $query = $query->andWhere('car_t.car_man_phone="'.$phone.'"'); } if($ptype > 0) { $query = $query->andWhere('appointment_t.ptype='.$ptype); @@ -276,7 +274,7 @@ class RenewalController extends BaseController $query = $query->andWhere('car_t.car_man like "'.$car_man.'"'); } if($phone != '') { - $query = $query->andWhere('car_t.phone="'.$phone.'"'); + $query = $query->andWhere('car_t.car_man_phone="'.$phone.'"'); } if($ptype > 0) { $query = $query->andWhere('appointment_t.ptype='.$ptype); diff --git a/frontend/controllers/StatisticsController.php b/frontend/controllers/StatisticsController.php index e4cb4f6..d394593 100644 --- a/frontend/controllers/StatisticsController.php +++ b/frontend/controllers/StatisticsController.php @@ -21,8 +21,21 @@ class StatisticsController extends BaseController public $enableCsrfValidation = false; public $layout = 'blue-main'; - public function actionWork() + public function actionWork() { + $group_items = GroupT::getTree((int)$this->my->group_id); + if($this->my->id == 1 || $this->my->username=='6002') + $group_items = GroupT::getTree(); + $company_items = InsurerCompanyT::find() + ->all(); + return $this->render('work',[ + 'group_items' => $group_items, + 'company_items' => $company_items + ]); + } + + public function actionWorkJson() { + Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $date_begin = $request->get('date_begin',date('Y-m-d')); $date_end = $request->get('date_end',date('Y-m-d')); @@ -31,9 +44,7 @@ class StatisticsController extends BaseController $username = $request->get('username'); $group_id = $request->get('group_id'); $company_id = $request->get('company_id'); - $group_items = GroupT::getTree((int)$this->my->group_id); - if($this->my->id == 1 || $this->my->username=='6002') - $group_items = GroupT::getTree(); + $group_ids[] = $group_id; if($group_id > 0) { $items = GroupT::getTree($group_id); @@ -42,12 +53,6 @@ class StatisticsController extends BaseController } } -// 原来的搜索条件 -// $userSql = ''; -// if($username != '') { -// $userSql = ' username like "'.$username.'"'; -// } - // 现在的搜索条件 $userSql = ''; if($username != '') { @@ -58,8 +63,6 @@ class StatisticsController extends BaseController $user_items = $this->my->getChildren($userSql); if($this->my->username == '6002') $user_items = $this->my->getChildren($userSql,1); -// $user_items[] = $this->my; -//var_dump($user_items); $user_rows = array(); $sum_total = array(); $sum_total[0] = ''; @@ -95,22 +98,21 @@ class StatisticsController extends BaseController ->where('user_id='.$user_info->id.' and status_id>1') ->andWhere('insurance_status=1 or insurance_status=3'); if($date_begin != '') { - $tmp_query = $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); + $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); } if($date_end != '') { - $tmp_query = $tmp_query->andWhere('submit_date<="'.$date_end.'"'); + $tmp_query->andWhere('submit_date<="'.$date_end.'"'); } if($date2_begin != '') { - $tmp_query = $tmp_query->andWhere('print_date>="'.$date2_begin.'"'); + $tmp_query->andWhere('print_date>="'.$date2_begin.'"'); } if($date2_end != '') { - $tmp_query = $tmp_query->andWhere('print_date<="'.$date2_end.'"'); + $tmp_query->andWhere('print_date<="'.$date2_end.'"'); } if($company_id > 0) { - $tmp_query = $tmp_query->andWhere('company_id='.$company_id); + $tmp_query->andWhere('company_id='.$company_id); } -// exit; foreach($tmp_query->each() as $item) { $total[0]++; //提单总数 @@ -129,16 +131,16 @@ class StatisticsController extends BaseController $tmp_query = FixCarT::find() ->where('user_id='.$user_info->id.' and status>0'); if($date_begin != '') { - $tmp_query = $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); + $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); } if($date_end != '') { - $tmp_query = $tmp_query->andWhere('submit_date<="'.$date_end.'"'); + $tmp_query->andWhere('submit_date<="'.$date_end.'"'); } if($date2_begin != '') { - $tmp_query = $tmp_query->andWhere('submit_date>="'.$date2_begin.'"'); + $tmp_query->andWhere('submit_date>="'.$date2_begin.'"'); } if($date2_end != '') { - $tmp_query = $tmp_query->andWhere('submit_date<="'.$date2_end.'"'); + $tmp_query->andWhere('submit_date<="'.$date2_end.'"'); } $total[7] = $tmp_query->count(); @@ -146,7 +148,6 @@ class StatisticsController extends BaseController $phone_time = ''; $query = PhoneDayT::find() ->where('user_id='.$user_info->id.' and call_date>="'.$date_begin.'" and call_date<="'.$date_end.'"'); -// echo $query->createCommand()->rawSql; $items = $query->all(); $call_time = 0; foreach($items as $item) { @@ -163,7 +164,6 @@ class StatisticsController extends BaseController $row['total'] = $total; $user_rows[] = $row; -// $sum_total[0] += $total[0]; $sum_total[1] += $total[1]; $sum_total[2] += $total[2]; $sum_total[3] += $total[3]; @@ -173,23 +173,37 @@ class StatisticsController extends BaseController $sum_total[7] += $total[7]; } - $company_items = InsurerCompanyT::find() - ->all(); - - return $this->render('work',[ - 'user_rows' => $user_rows, - 'date_begin' => $date_begin, - 'date_end' => $date_end, - 'date2_begin' => $date2_begin, - 'date2_end' => $date2_end, - 'username' => $username, - 'sum_total' => $sum_total, - 'group_id' => $group_id, - 'group_items' => $group_items, - 'company_items' => $company_items, - 'company_id' => $company_id - ]); + $data = []; + $data['total'] = count($user_rows); + $data['rows'] = []; + foreach($user_rows as $item) { + $row = $item; + $row['total_0'] = $item['total'][0]!=''?$item['total'][0]:''; + $row['total_7'] = $item['total'][7]>0?$item['total'][7]:''; + $row['total_1'] = $item['total'][1]>0?$item['total'][1]:''; + $row['total_2'] = $item['total'][2]>0?'¥'.number_format($item['total'][2],2):''; + $row['total_3'] = $item['total'][3]>0?'¥'.number_format($item['total'][3],2):''; + $row['total_4'] = $item['total'][4]>0?'¥'.number_format($item['total'][4],2):''; + $row['total_5'] = $item['total'][5]>0?'¥'.number_format($item['total'][5],2):''; + $row['total_6'] = $item['total'][6]>0?'¥'.number_format($item['total'][6],2):''; + $row['op'] = 1; + $data['rows'][] = $row; + } + $row = []; + $row['username'] = '汇总'; + $row['total_7'] = $sum_total[7]>0?$sum_total[7]:''; + $row['total_1'] = $sum_total[1]>0?$sum_total[1]:''; + $row['total_2'] = $sum_total[2]>0?'¥'.number_format($sum_total[2],2):''; + $row['total_3'] = $sum_total[3]>0?'¥'.number_format($sum_total[3],2):''; + $row['total_4'] = $sum_total[4]>0?'¥'.number_format($sum_total[4],2):''; + $row['total_5'] = $sum_total[5]>0?'¥'.number_format($sum_total[5],2):''; + $row['total_6'] = $sum_total[6]>0?'¥'.number_format($sum_total[6],2):''; + $row['op'] = 0; + $data['rows'][] = $row; + + return $data; } + public function actionCleanWork() { $request = Yii::$app->request; @@ -210,7 +224,6 @@ class StatisticsController extends BaseController } } -// 现在的搜索条件 $userSql = ''; if($username != '') { $userSql = ' username like "'.$username.'" and '; @@ -221,7 +234,7 @@ class StatisticsController extends BaseController if($this->my->username == '6002') $user_items = $this->my->getChildrenClean($userSql,1); $user_items[] = $this->my; -//var_dump($user_items); + $user_rows = array(); $sum_total = array(); $sum_total[0] = 0; @@ -255,21 +268,6 @@ class StatisticsController extends BaseController $tmp_query = $tmp_query->andWhere('company_id='.$company_id); } -// exit; -// foreach($tmp_query->each() as $item) { -// $total[0]++; -// //提单总数 -// if ($item->status_id > 0) { -// $total[1]++; -// $total[2] += $item->total1_clear;//提单总净保费 -// $total[3] += $item->total2_clear;//交强总净保费 -// if($item->status_id > 5) { -// $total[4] += $item->total1_clear;//商业已收净保费 -// $total[5] += $item->total2_clear;//商业已收净保费 -// } -// $total[6] += $item->total1_clear + $item->total2_clear;//总签单净保费 -// } -// } $total['right_num']=$tmp_query->sum('right_num'); $total['wrong_num']=$tmp_query->sum('wrong_num'); $total['yuyue_num']=$tmp_query->sum('yuyue_num'); @@ -285,11 +283,6 @@ class StatisticsController extends BaseController $sum_total[1] += $total['wrong_num']; $sum_total[2] += $total['yuyue_num']; -// $sum_total[3] += $total[3]; -// $sum_total[4] += $total[4]; -// $sum_total[5] += $total[5]; -// $sum_total[6] += $total[6]; - } $company_items = InsurerCompanyT::find() @@ -321,7 +314,7 @@ class StatisticsController extends BaseController if($date_end != '') { $query = $query->andWhere('fenpei_date<="'.$date_end.'"'); } - $CleanFenpei=$query ->count(); + $CleanFenpei=$query ->count(); return $this->render('clean-work-zj',[ 'CleanFenpei' => $CleanFenpei, @@ -510,198 +503,27 @@ class StatisticsController extends BaseController 'company_id' => $company_id ]); } - - public function actionWorkOutput() - { - $objectPHPExcel = new \PHPExcel(); - $index = 1; - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$index,'工号'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$index,'真实姓名'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$index,'通时'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$index,'提车总数'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$index,'提单总数'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('F'.$index,'商业总净保费'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('G'.$index,'交强总净保费'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('H'.$index,'商业已收净保费'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('I'.$index,'交强已收净保费'); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('J'.$index,'总签单净保费'); - + public function actionWorkInfo() { $request = Yii::$app->request; - $date_begin = $request->get('date_begin',date('Y-m-d')); - $date_end = $request->get('date_end',date('Y-m-d')); + $user_id = $request->get('user_id'); + $date_begin = $request->get('date_begin'); + $date_end = $request->get('date_end'); $date2_begin = $request->get('date2_begin'); $date2_end = $request->get('date2_end'); $username = $request->get('username'); - $group_id = $request->get('group_id'); - $company_id = $request->get('company_id'); - $group_items = GroupT::getTree((int)$this->my->group_id); - if($this->my->id == 1 || $this->my->username=='6002') - $group_items = GroupT::getTree(); - $group_ids[] = $group_id; - if($group_id > 0) { - $items = GroupT::getTree($group_id); - foreach($items as $group_info) { - $group_ids[] = $group_info->id; - } - } - -// 原来的搜索条件 -// $userSql = ''; -// if($username != '') { -// $userSql = ' username like "'.$username.'"'; -// } - -// 现在的搜索条件 - $userSql = ''; - if($username != '') { - $userSql = ' username like "'.$username.'" and '; - } - //$userSql .= 'is_locked=0 and is_login=1'; - - $user_items = $this->my->getChildren($userSql); - if($this->my->username == '6002') - $user_items = $this->my->getChildren($userSql,1); - $user_items[] = $this->my; -//var_dump($user_items); - $user_rows = array(); - $sum_total = array(); - $sum_total[0] = ''; - $sum_total[1] = 0; - $sum_total[2] = 0; - $sum_total[3] = 0; - $sum_total[4] = 0; - $sum_total[5] = 0; - $sum_total[6] = 0; - $sum_total[7] = 0; - foreach($user_items as $user_info) { - if($user_info->is_leave == 1) continue; - - if($group_id > 0) { - if(!in_array($user_info->group_id,$group_ids)) { - continue; - } - } - $total[0] = 0; - $total[1] = 0; - $total[2] = 0; - $total[3] = 0; - $total[4] = 0; - $total[5] = 0; - $total[6] = 0; - $total[7] = 0; - - $row = array(); - $row['id'] = $user_info->id; - $row['username'] = trim($user_info->username); - $row['truename'] = $user_info->name; - $tmp_query = OrderT::find() - ->where('user_id='.$user_info->id.' and status_id>1'); - if($date_begin != '') { - $tmp_query = $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); - } - if($date_end != '') { - $tmp_query = $tmp_query->andWhere('submit_date<="'.$date_end.'"'); - } - if($date2_begin != '') { - $tmp_query = $tmp_query->andWhere('print_date>="'.$date2_begin.'"'); - } - if($date2_end != '') { - $tmp_query = $tmp_query->andWhere('print_date<="'.$date2_end.'"'); - } - if($company_id > 0) { - $tmp_query = $tmp_query->andWhere('company_id='.$company_id); - } - $index++; -// exit; - foreach($tmp_query->each() as $item) { - - $total[0]++; - //提单总数 - if ($item->status_id > 0) { - $total[1]++; - $total[2] += $item->total1_clear;//提单总净保费 - $total[3] += $item->total2_clear;//交强总净保费 - if($item->status_id > 5) { - $total[4] += $item->total1_clear;//商业已收净保费 - $total[5] += $item->total2_clear;//商业已收净保费 - } - $total[6] += $item->total1_clear + $item->total2_clear;//总签单净保费 - } - - } - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('A'.$index,$row['username']); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('B'.$index,$row['truename']); - - - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('E'.$index,$total[1]>0?$total[1]:''); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('F'.$index,$total[2]>0?'¥'.number_format($total[2],2):''); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('G'.$index,$total[3]>0?'¥'.number_format($total[3],2):''); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('H'.$index,$total[4]>0?'¥'.number_format($total[4],2):''); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('I'.$index,$total[5]>0?'¥'.number_format($total[5],2):''); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('J'.$index,$total[6]>0?'¥'.number_format($total[6],2):''); - //提单总数 - $tmp_query = FixCarT::find() - ->where('user_id='.$user_info->id.' and status>0'); - if($date_begin != '') { - $tmp_query = $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); - } - if($date_end != '') { - $tmp_query = $tmp_query->andWhere('submit_date<="'.$date_end.'"'); - } - if($date2_begin != '') { - $tmp_query = $tmp_query->andWhere('submit_date>="'.$date2_begin.'"'); - } - if($date2_end != '') { - $tmp_query = $tmp_query->andWhere('submit_date<="'.$date2_end.'"'); - } - $total[7] = $tmp_query->count(); - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('D'.$index,$total[7]>0?$total[7]:''); - - //通时 - $phone_time = ''; - $query = PhoneDayT::find() - ->where('user_id='.$user_info->id.' and call_date>="'.$date_begin.'" and call_date<="'.$date_end.'"'); -// echo $query->createCommand()->rawSql; - $items = $query->all(); - $call_time = 0; - foreach($items as $item) { - $call_time += $item->call_time; - } - if($call_time > 0) { - $h = floor($call_time/3600); - $m = floor(($call_time - $h * 3600)/60); - $s = $call_time - $h * 3600 - $m * 60; - $phone_time = $h.':'.$m.':'.$s; - } - - $total[0] = $phone_time; - $objectPHPExcel->setActiveSheetIndex(0)->setCellValue('C'.$index,$total[0]!=''?$total[0]:''); - $row['total'] = $total; - $user_rows[] = $row; - - - -// $sum_total[0] += $total[0]; -// $sum_total[1] += $total[1]; -// $sum_total[2] += $total[2]; -// $sum_total[3] += $total[3]; -// $sum_total[4] += $total[4]; -// $sum_total[5] += $total[5]; -// $sum_total[6] += $total[6]; -// $sum_total[7] += $total[7]; - } - - header('Content-Type: application/vnd.ms-excel;charset=utf-8'); - header('Content-Disposition:attachment;filename="'.date("YmjHis").'.xls"'); - header('Cache-Control: max-age=0'); - $objWriter = \PHPExcel_IOFactory::createWriter($objectPHPExcel, 'Excel5'); - $objWriter->save('php://output'); - + return $this->render('work-info',[ + 'user_id' => $user_id, + 'date_begin' => $date_begin, + 'date_end' => $date_end, + 'date2_begin' => $date2_begin, + 'date2_end' => $date2_end, + 'username' => $username + ]); } - - public function actionWorkInfo() + public function actionWorkInfoJson() { + Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; $user_id = $request->get('user_id'); $date_begin = $request->get('date_begin'); @@ -726,8 +548,7 @@ class StatisticsController extends BaseController //提交单数 $tmp_query = OrderT::find() - ->where('user_id='.$user_info->id.' and status_id>1') - ->andWhere('insurance_status=1 or insurance_status=3'); + ->where('user_id='.$user_info->id.' and status_id>1'); if($date_begin != '') { $tmp_query = $tmp_query->andWhere('submit_date>="'.$date_begin.'"'); } @@ -763,17 +584,29 @@ class StatisticsController extends BaseController $phone_time = ''; $total[0] = $phone_time; - return $this->render('work-info',[ - 'user_info' => $user_info, - 'items' => $items, - 'date_begin' => $date_begin, - 'date_end' => $date_end, - 'date2_begin' => $date2_begin, - 'date2_end' => $date2_end, - 'username' => $username, - 'total' => $total - ]); + $data = []; + $data['total'] = count($items); + $data['rows'] = []; + foreach($items as $item) { + $row = $item->toArray(); + $row['total1_clear'] = '¥'.$item->total1_clear; + $row['total1_real'] = '¥'.$item->total1_real; + $row['total1_dis'] = '¥'.$item->total1_dis; + $row['total1_percent'] = '¥'.$item->total1_percent; + $row['status_name'] = '¥'.$item->status->name; + $row['op'] = 1; + $data['rows'][] = $row; + } + $row = []; + $row['id'] = '汇总'; + $row['total1_clear'] = $total[2]?'¥'.number_format($total[2],2):''; + $row['total1_real'] = $total[8]?'¥'.number_format($total[8],2):''; + $row['total1_dis'] = $total[9]?'¥'.number_format($total[9],2):''; + $row['op'] = 0; + $data['rows'][] = $row; + return $data; } + public function actionFixWorkInfo() { $request = Yii::$app->request; @@ -1054,4 +887,4 @@ class StatisticsController extends BaseController 'total' => $total ]); } -} +} \ No newline at end of file diff --git a/frontend/controllers/SystemController.php b/frontend/controllers/SystemController.php index 4bda3eb..9d24355 100644 --- a/frontend/controllers/SystemController.php +++ b/frontend/controllers/SystemController.php @@ -19,7 +19,8 @@ class SystemController extends \yii\web\Controller { public $my = null; public $web = null; - private $_STATE = 1; + public $enableCsrfValidation = false; + public $layout = 'blue-main'; public function init() { @@ -94,21 +95,27 @@ class SystemController extends \yii\web\Controller * @author liukangle * */ - public function actionIp(){ + public function actionIp() { + return $this->render('ip'); + } + public function actionIpJson(){ + Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; - $name = $request->get('name'); - $ips = SysIpT::find(); - if($name != ''){ - $ips = $ips->andWhere(['like','city_name',$name]); + + $ips = SysIpT::find()->orderBy('id ASC'); + $total = $ips->count(); + $items = $ips->all(); + + $data = []; + $data['total'] = $total; + $data['rows'] = []; + foreach($items as $item) { + $row = $item->toArray(); + $data['rows'][] = $row; } - $ips = $ips->andWhere('status ='.$this->_STATE); - $data = $ips->orderBy('id ASC')->all(); - return $this->render('ip',[ - 'info' => $data, - 'name' => $name, - ]); + return $data; } /** @@ -119,7 +126,7 @@ class SystemController extends \yii\web\Controller * @author liukangle * */ - public function actionEdit() + public function actionIpEdit() { $request = Yii::$app->request; @@ -129,7 +136,7 @@ class SystemController extends \yii\web\Controller } else { $info = new SysIpT(); } - return $this->render('edit',[ + return $this->render('ip-edit',[ 'info' => $info, ]); } @@ -181,7 +188,7 @@ class SystemController extends \yii\web\Controller * @author liukangle * */ - public function actionDel() + public function actionIpDelete() { Yii::$app->response->format = Response::FORMAT_JSON; $request = Yii::$app->request; @@ -194,14 +201,34 @@ class SystemController extends \yii\web\Controller $id = $request->post('id'); if($id > 0){ $row = SysIpT::findOne(['id'=>$id]); - $row->status = 0; - $row->save(); + if($row) { + $row->delete(); + } $result['success'] = true; - $result['msg'] = '保存成功'; + $result['msg'] = '删除成功'; } return $result; } } + + public function actionTest() { + $items = OrderT::find() + ->where('status_id=10') + ->all(); + foreach($items as $item) { + $car_info = $item->car; + if(!$car_info) { + echo 'error'; + break; + } + $car_info->op1_id = $item->user_id; + if(!$car_info->save()) { + print_r($car_info->getErrors()); + break; + } + } + return count($items); + } } diff --git a/frontend/views/appointment/all.php b/frontend/views/appointment/all.php index bbfb12b..6883663 100644 --- a/frontend/views/appointment/all.php +++ b/frontend/views/appointment/all.php @@ -28,6 +28,7 @@ use \common\libs\MyLib; +