You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3638 lines
134 KiB
3638 lines
134 KiB
<?php
|
|
|
|
namespace frontend\controllers;
|
|
|
|
use common\libs\MyLib;
|
|
use common\models\AppointmentHistoryT;
|
|
use common\models\AppointmentT;
|
|
use common\models\BankT;
|
|
use common\models\BrandT;
|
|
use common\models\CaiwuT;
|
|
use common\models\CaiwuT1;
|
|
use common\models\CarBT;
|
|
use common\models\CarCT;
|
|
use common\models\CarDT;
|
|
use common\models\CarGiftT;
|
|
use common\models\CarT;
|
|
use common\models\CarTypeT;
|
|
use common\models\CarUseT;
|
|
use common\models\CityT;
|
|
use common\models\CarLogT;
|
|
use common\models\DirectionT;
|
|
use common\models\DisplacementT;
|
|
use common\models\DistrictT;
|
|
use common\models\EmsT;
|
|
use common\models\ExpressT;
|
|
use common\models\GiftGroupT;
|
|
use common\models\GiftT;
|
|
use common\models\GiftTicketT;
|
|
use common\models\GiftTicketTUse;
|
|
use common\models\GiftType2T;
|
|
use common\models\GiftType3T;
|
|
use common\models\GroupT;
|
|
use common\models\InsurerCompany2T;
|
|
use common\models\InsurerCompanyT;
|
|
use common\models\InsurerTypeT;
|
|
use common\models\InvalidT;
|
|
use common\models\OrderCaiwuT;
|
|
use common\models\OrderCaiwuT1;
|
|
use common\models\OrderGiftT;
|
|
use common\models\OrderT;
|
|
use common\models\OrderWeizhi;
|
|
use common\models\OrderUserT;
|
|
use common\models\PayOrderUserT;
|
|
use common\models\PayT;
|
|
use common\models\PayeeT;
|
|
use common\models\Payment;
|
|
use common\models\PayTypeT;
|
|
use common\models\PriceT;
|
|
use common\models\RangeT;
|
|
use common\models\SendLogT;
|
|
use common\models\SeriesT;
|
|
use common\models\UserT;
|
|
use common\models\CaiwuStatusT;
|
|
use common\models\ZhongjiGiftT;
|
|
use Faker\Provider\Image;
|
|
use Yii;
|
|
use yii\data\Pagination;
|
|
use yii\helpers\FileHelper;
|
|
use yii\web\Response;
|
|
use yii\web\User;
|
|
use yii\helpers\ArrayHelper;
|
|
use common\models\NonAutoInsurance;
|
|
|
|
class InsurerController extends BaseController
|
|
{
|
|
public $my = null;
|
|
public $enableCsrfValidation = false;
|
|
public $layout = 'blue-main';
|
|
|
|
public function init()
|
|
{
|
|
parent::init();
|
|
|
|
$cookie = Yii::$app->request->cookies;
|
|
$user_id = MyLib::encrypt($cookie->get('aid'),'DECODE');
|
|
|
|
if($user_id != 0)
|
|
{
|
|
$this->my = UserT::findOne(['id'=>$user_id]);
|
|
} else {
|
|
Yii::$app->response->redirect('/common/login')->send();
|
|
exit;
|
|
}
|
|
}
|
|
|
|
public function actionIndex()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$car_id = $request->get('car_id');
|
|
return $this->renderPartial('index',[
|
|
'car_id' => $car_id
|
|
]);
|
|
}
|
|
|
|
public function actionEdit()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$car_id = $request->get('car_id',0);
|
|
$id = $request->get('id',0);
|
|
$info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = CarT::findOne(['id'=>$car_id]);
|
|
if(empty($info)) {
|
|
$info = OrderT::find()
|
|
->where('car_id='.$car_id.' and user_id='.$car_info->user_id.' and status_id=1')
|
|
->one();
|
|
if(empty($info))
|
|
$info = new OrderT();
|
|
}
|
|
|
|
$insurer_company_items = InsurerCompanyT::find()->all();
|
|
$pay_type_items = PayTypeT::find()->all();
|
|
$insurer_type_items = InsurerTypeT::find()->all();
|
|
|
|
return $this->renderPartial('edit',[
|
|
'info'=>$info,
|
|
'car_info'=>$car_info,
|
|
'pay_type_items'=>$pay_type_items,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'insurer_company_items' => $insurer_company_items
|
|
]);
|
|
}
|
|
|
|
public function actionInfo()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
|
|
$nonitems=null;
|
|
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')
|
|
->all();
|
|
$gift_group_items = GiftGroupT::find()
|
|
->where('is_free=0')
|
|
->all();
|
|
//获取礼品数据
|
|
$sel_gifts = array();
|
|
$tmp_items = OrderGiftT::find()
|
|
->where('order_id='.$order_info->id)
|
|
->all();
|
|
foreach($tmp_items as $item) {
|
|
$sel_gifts[$item->group_id] = $item;
|
|
}
|
|
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
//登陆用户ID
|
|
$uid = $this->my->id;
|
|
$order_caiwu = OrderCaiwuT::findOne(['order_id'=>$order_info->id]);
|
|
$money_man='';
|
|
$money_no='';
|
|
$money_bank='';
|
|
if($order_caiwu){
|
|
$money_man=$order_caiwu->money_man;
|
|
$money_no= $order_caiwu->money_no;
|
|
$money_bank=$order_caiwu->money_bank;
|
|
}
|
|
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,
|
|
'gift_free_group_items' => $gift_free_group_items,
|
|
'gift_group_items' => $gift_group_items,
|
|
'sel_gifts' => $sel_gifts,
|
|
'uid' => $uid,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'nonitems' => $nonitems
|
|
]);
|
|
}
|
|
public function actionSave()
|
|
{
|
|
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);
|
|
$car_id = $request->post('car_id',0);
|
|
$car_no = $request->post('car_no');
|
|
$engine_no = $request->post('engine_no');
|
|
$car_frame_no = $request->post('car_frame_no');
|
|
$car_man = $request->post('car_man');
|
|
$id_man = $request->post('id_man');
|
|
$id_number = $request->post('id_number');
|
|
$link_man = $request->post('link_man');
|
|
$link_phone = $request->post('link_phone');
|
|
$send_date = $request->post('send_date');
|
|
$company_id = $request->post('company_id');
|
|
$pay_type_id = $request->post('pay_type_id');
|
|
$insurer1_begin_date = $request->post('insurer1_begin_date');
|
|
$insurer1_end_date = $request->post('insurer1_end_date');
|
|
$insurer2_begin_date = $request->post('insurer2_begin_date');
|
|
$insurer2_end_date = $request->post('insurer2_end_date');
|
|
$gift_other = $request->post('gift_other');
|
|
$remark = $request->post('remark');
|
|
$total1 = $request->post('total1');
|
|
$total2 = $request->post('total2');
|
|
$total3 = $request->post('total3');
|
|
$total_all = $request->post('total_all');
|
|
$total_dis = $request->post('total_dis');
|
|
$total_real = $request->post('total_real');
|
|
$price_remark = $request->post('price_remark');
|
|
$direction1_id = $request->post('direction1_id');
|
|
$range1_id = $request->post('range1_id');
|
|
$city1_id = $request->post('city1_id');
|
|
$district1_id = $request->post('district1_id');
|
|
$send_address1 = $request->post('send_address1');
|
|
$direction2_id = $request->post('direction2_id');
|
|
$range2_id = $request->post('range2_id');
|
|
$city2_id = $request->post('city2_id');
|
|
$district2_id = $request->post('district2_id');
|
|
$send_address2 = $request->post('send_address2');
|
|
$status_id = $request->post('status_id',1);
|
|
|
|
|
|
$types = $request->post('types',array());
|
|
$nopays = $request->post('nopays', array());
|
|
|
|
if($car_no == '') {
|
|
$result['msg'] = '请输入车牌号!';
|
|
return $result;
|
|
}
|
|
if($engine_no == '') {
|
|
$result['msg'] = '请输入发动机号!';
|
|
return $result;
|
|
}
|
|
if($car_frame_no == '') {
|
|
$result['msg'] = '请输入车架号!';
|
|
return $result;
|
|
}
|
|
if($car_id == 0) {
|
|
$result['msg'] = '车辆不存在!';
|
|
return $result;
|
|
}
|
|
$car_info = CarT::findOne(['id'=>$car_id]);
|
|
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$row = OrderT::findOne(['id'=>$order_id]);
|
|
if(empty($row)) {
|
|
$row = new OrderT();
|
|
$row->car_id = $car_id;
|
|
$row->user_id = $this->my->id;
|
|
$row->status_id = 1;
|
|
}
|
|
|
|
$row->car_no = $car_no;
|
|
$row->engine_no = $engine_no;
|
|
$row->car_frame_no = $car_frame_no;
|
|
$row->car_man = $car_man;
|
|
$row->id_man = $id_man;
|
|
// $row->id_number = $id_number;
|
|
$row->link_man = $link_man;
|
|
$row->link_phone = $link_phone;
|
|
$row->send_date = $send_date;
|
|
$row->company_id = $company_id;
|
|
$row->pay_type_id = $pay_type_id;
|
|
$row->insurer1_begin_date = $insurer1_begin_date;
|
|
$row->insurer1_end_date = $insurer1_end_date;
|
|
$row->insurer2_begin_date = $insurer2_begin_date;
|
|
$row->insurer2_end_date = $insurer2_end_date;
|
|
$row->gift_other = $gift_other;
|
|
$row->remark = $remark;
|
|
$row->total1 = $total1;
|
|
$row->total2 = $total2;
|
|
$row->total3 = $total3;
|
|
$row->total_all = $total_all;
|
|
$row->total_dis = $total_dis;
|
|
$row->total_real = $total_real;
|
|
$row->price_remark = $price_remark;
|
|
|
|
$row->direction1_id = $direction1_id;
|
|
$row->range1_id = $range1_id;
|
|
$row->city1_id = $city1_id;
|
|
$row->district1_id = $district1_id;
|
|
$row->send_address1 = $send_address1;
|
|
$row->direction2_id = $direction2_id;
|
|
$row->range2_id = $range2_id;
|
|
$row->city2_id = $city2_id;
|
|
$row->district2_id = $district2_id;
|
|
$row->send_address2 = $send_address2;
|
|
|
|
$row->status_id = $status_id;
|
|
if($status_id == 2) {
|
|
$row->submit_date = date('Y-m-d');
|
|
$tmp_row = AppointmentT::findOne(['car_id'=>$row->car_id]);
|
|
if(!empty($tmp_row)) {
|
|
$tmp_row->delete();
|
|
}
|
|
$this->addLog($car_id,'提交保单到核保管理',1);
|
|
}
|
|
$row->save();
|
|
|
|
//更新车辆信息
|
|
$car_info->car_no = $car_no;
|
|
$car_info->engine_no = $engine_no;
|
|
$car_info->car_frame_no = $car_frame_no;
|
|
$car_info->car_man = $car_man;
|
|
$car_info->save();
|
|
|
|
foreach($types as $id=>$val) {
|
|
$price_row = PriceT::find()
|
|
->where('order_id='.$row->id.' and type_id='.$id)
|
|
->one();
|
|
if(empty($price_row)) {
|
|
$price_row = new PriceT();
|
|
$price_row->order_id = $row->id;
|
|
$price_row->type_id = $id;
|
|
}
|
|
$price_row->val = $val;
|
|
if(!empty($nopays[$id]))
|
|
$price_row->is_nopay = 1;
|
|
else
|
|
$price_row->is_nopay = 0;
|
|
$price_row->save();
|
|
}
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
public function actionMyList() {
|
|
return $this->render('my-list');
|
|
}
|
|
|
|
public function actionMyListJson()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$car_man = $request->get('car_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$id_man = $request->get('id_man');
|
|
$offset = $request->get('offset',0);
|
|
$limit = $request->get('limit', 10);
|
|
|
|
$query = OrderT::find()
|
|
->where('status_id>1')
|
|
->andWhere('return_status_id=0')
|
|
->orderBy('submit_date DESC, id DESC');
|
|
$user_items = $this->my->getChildren();
|
|
$user_ids[] = $this->my->id;
|
|
if($user_items) {
|
|
foreach($user_items as $user_item) {
|
|
$user_ids[] = $user_item->id;
|
|
}
|
|
}
|
|
$query->andWhere(['in','user_id',$user_ids]);
|
|
if($car_man != '') {
|
|
$query->andWhere('car_man="'.$car_man.'"');
|
|
}
|
|
if($id_man != '') {
|
|
$query->andWhere('id_man="'.$id_man.'"');
|
|
}
|
|
if($phone != '') {
|
|
$query->andWhere('car_man_phone=:phone or id_man_phone=:phone or link_man_phone=:phone',[':phone'=>$phone]);
|
|
}
|
|
if($car_no != '') {
|
|
$query->andWhere('car_no="'.$car_no.'"');
|
|
}
|
|
// echo $query->createCommand()->rawSql;
|
|
// exit;
|
|
$total = $query->count();
|
|
|
|
$query->offset($offset)->limit($limit);
|
|
$items = $query->all();
|
|
|
|
$data = [];
|
|
$data['total'] = $total;
|
|
$data['rows'] = [];
|
|
foreach($items as $item) {
|
|
$row = $item->toArray();
|
|
$row['factory_model'] = $item->car->factory_model;
|
|
$row['user_name'] = $item->user?$item->user->getShowName():'';
|
|
$row['status_name'] = $item->status->name;
|
|
if($item->status_id == 2) {
|
|
$row['lock_name'] = $item->op1 ? $item->op1->getShowName():'';
|
|
} else if($item->status_id < 10) {
|
|
$row['lock_name'] = $item->op2 ? $item->op2->getShowName():'';
|
|
} else {
|
|
$row['lock_name'] = '';
|
|
}
|
|
$row['gift_status_name'] = $item->gift_status == 1 ? '已确认':'';
|
|
$data['rows'][] = $row;
|
|
}
|
|
return $data;
|
|
}
|
|
|
|
public function actionMyListInfo()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
|
|
//快递
|
|
$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_items = GiftT::find()
|
|
->where('type_id=1')
|
|
->all();
|
|
//礼品
|
|
$gift_group_items = GiftGroupT::find()->all();
|
|
//获取礼品数据
|
|
$sel_gifts = array();
|
|
$tmp_items = OrderGiftT::find()
|
|
->where('order_id='.$order_info->id)
|
|
->all();
|
|
foreach($tmp_items as $item) {
|
|
$sel_gifts[$item->group_id] = $item;
|
|
}
|
|
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
|
|
//登陆用户ID
|
|
$uid = $this->my->role_id;
|
|
$my_id = $this->my->id;
|
|
//转账信息
|
|
$caiwu_status = CaiwuStatusT::find()->asArray()->all();
|
|
$caiwu_status= ArrayHelper::map($caiwu_status,'id', 'name');
|
|
|
|
return $this->render('my-list-info',[
|
|
'car_info' => $car_info,
|
|
'caiwu_status' => $caiwu_status,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'ems_items' => $ems_items,
|
|
'ems_items1' => $ems_items1,
|
|
'uid' => $uid,
|
|
'my_id' => $my_id,
|
|
'gift_items' => $gift_items,
|
|
'gift_group_items' => $gift_group_items,
|
|
'sel_gifts' => $sel_gifts,
|
|
]);
|
|
}
|
|
/**
|
|
*补发礼品以后 Ajax 请求渲染页面
|
|
*/
|
|
public function actionAjaxGiftInfo(){
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
|
|
//礼品
|
|
$gift_group_items = GiftGroupT::find()->all();
|
|
|
|
//获取礼品数据
|
|
$sel_gifts = array();
|
|
$tmp_items = OrderGiftT::find()
|
|
->where('order_id='.$order_info->id)
|
|
->all();
|
|
foreach($tmp_items as $item) {
|
|
$sel_gifts[$item->group_id] = $item;
|
|
}
|
|
|
|
$html = $this->renderPartial('ajax-gift-info',[
|
|
'order_info' => $order_info,
|
|
'gift_group_items' => $gift_group_items,
|
|
'sel_gifts' => $sel_gifts,
|
|
]);
|
|
|
|
$result = array();
|
|
$result['success'] = true;
|
|
$result['html'] = $html;
|
|
return $result;
|
|
}
|
|
/**
|
|
* 业务员漏发礼品 并且 财务完结以后补发 补发
|
|
*/
|
|
public function actionGiftEditSave(){
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '保存失败';
|
|
|
|
if($request->isPost){
|
|
$id = $request->post('order_id',0);
|
|
$order_info = OrderT::findOne($id);
|
|
$gifts = $request->post('gifts',array());
|
|
|
|
if(is_array($gifts) && count($gifts) > 0 ) {
|
|
|
|
$tableName = OrderGiftT::tableName();//批量插入表名
|
|
$field = ['order_id','group_id','gift_id','send_id','send_time','price','status'];//批量插入字段
|
|
$insertData = [];//批量插入数据
|
|
|
|
foreach($gifts as $tmp_str) {
|
|
$tmp = explode('_',$tmp_str);
|
|
$group_id = isset($tmp[0])?$tmp[0]:0;
|
|
$gift_id = isset($tmp[1])?$tmp[1]:0;
|
|
if($group_id == 0 && $gift_id == 0) {
|
|
$result['msg'] = "请先选择礼品";
|
|
continue;
|
|
}
|
|
$group_info = GiftGroupT::findOne(['id'=>$group_id]);
|
|
if(!isset($group_info)) {
|
|
continue;
|
|
}
|
|
$gift_info = GiftType3T::findOne(['id'=>$gift_id]);
|
|
if(!isset($gift_info)) {
|
|
continue;
|
|
}
|
|
$tmp_count = OrderGiftT::find()->where('order_id='.$order_info->id.' and group_id='.$group_id.' and status=1')->count();
|
|
if($tmp_count > 0) {
|
|
continue;
|
|
}
|
|
|
|
$insertData[] = [$order_info->id,$group_id,$gift_id,0,0,0,0];
|
|
}
|
|
|
|
$totalNum = Yii::$app->db->createCommand()->batchInsert($tableName,$field,$insertData)->execute();
|
|
if($totalNum > 0 ){
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
}
|
|
}else{
|
|
$result['msg'] = '没有可选礼品';
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 核保管理-列表
|
|
* @return string
|
|
*/
|
|
public function actionOfficeMng() {
|
|
$insurer_company_items = InsurerCompanyT::find()->all();
|
|
|
|
return $this->render('office-mng',[
|
|
'insurer_company_items' => $insurer_company_items
|
|
]);
|
|
}
|
|
public function actionOfficeMngJson()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$type = $request->get('type');
|
|
$car_man = $request->get('car_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$company2_id = $request->get('company2_id');
|
|
$offset = $request->get('offset', 0);
|
|
$limit = $request->get('limit', 10);
|
|
|
|
$query = OrderT::find()
|
|
->where('status_id=2')
|
|
->orderBy('submit_date DESC, id DESC');
|
|
if($type == 1) {
|
|
$query->andWhere('lock_id=0');
|
|
}
|
|
if($type == 2) {
|
|
$query->andWhere('lock_id>0');
|
|
}
|
|
if($car_man != '') {
|
|
$query->andWhere('car_man="'.$car_man.'"');
|
|
}
|
|
if($phone != '') {
|
|
$query->andWhere('car_man_phone like :phone1 or id_man_phone like :phone2 or link_man_phone like :phone3',[':phone1'=>$phone,':phone2'=>$phone,':phone3'=>$phone]);
|
|
}
|
|
if($car_no != '') {
|
|
$query->andWhere('car_no="'.$car_no.'"');
|
|
}
|
|
if($company2_id > 0) {
|
|
$query->andWhere('company2_id=:company2_id',[':company2_id'=>$company2_id]);
|
|
}
|
|
$query = $query->orderBy('updated_at asc');
|
|
$total = $query->count();
|
|
|
|
$query = $query->offset($offset)->limit($limit);
|
|
$items = $query->all();
|
|
|
|
$data = [];
|
|
$data['total'] = $total;
|
|
$data['rows'] = [];
|
|
foreach($items as $item) {
|
|
$row = $item->toArray();
|
|
$row['company_name'] = $item->company?$item->company->name:'';
|
|
$row['factory_model'] = $item->car?$item->car->factory_model:'';
|
|
$row['user_name'] = $item->user?$item->user->getShowName():'';
|
|
$row['status_name'] = $item->status->name;
|
|
$row['pay_type'] = ($item->shoufei_id?MyLib::zhifufs($item->shoufei_id).'-':'').' '.($item->payType?$item->payType->name:'');
|
|
$row['lock_name'] = $item->op1?$item->op1->getShowName():'';
|
|
$data['rows'][] = $row;
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function actionOfficeMngEdit()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
|
|
if($order_info->op1_id == 0) {
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$order_info->op1_id = $this->my->id;
|
|
$order_info->save();
|
|
|
|
$tran->commit();
|
|
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
echo $e->getMessage();
|
|
exit;
|
|
}
|
|
} else {
|
|
if($order_info->op1_id != $this->my->id) {
|
|
echo '该记录已经被别人锁定,【<a href="javascript:history.go(-1);">返回</a>】';
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
$insurer_company2_items = InsurerCompany2T::find()
|
|
->all();
|
|
$payee_items=PayeeT::find()->all();
|
|
$payment_items=Payment::find()->all();
|
|
|
|
return $this->render('office-mng-edit',[
|
|
'car_info' => $car_info,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'insurer_company2_items' => $insurer_company2_items,
|
|
'payee_items' => $payee_items,
|
|
'payment_items' => $payment_items,
|
|
]);
|
|
}
|
|
/**
|
|
* 放弃操作
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionOrderCancelSave()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$order_id = $request->post('order_id',0);
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '无法放弃';
|
|
$order_info = OrderT::findOne(['id'=>$order_id]);
|
|
if($order_info) {
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
if($order_info->status_id == 2) {
|
|
$order_info->op1_id = 0;
|
|
} else {
|
|
$order_info->op2_id = 0;
|
|
}
|
|
if(!$order_info->save()) {
|
|
throw new \Exception(print_r($order_info->getErrors(), true));
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '操作成功';
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
$result['msg'] = $e->getMessage();
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 核保管理-保存
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionOfficeMngSave()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '保存失败';
|
|
|
|
if($request->isPost) {
|
|
$car_id = $request->post('car_id',0);
|
|
$order_id = $request->post('order_id',0);
|
|
$status_id = $request->post('status_id',2);
|
|
$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('company_id',0);
|
|
|
|
if($total1_rate == '') {
|
|
$result['msg'] = '请输入商业跟单手续费!';
|
|
return $result;
|
|
}
|
|
if($total2_rate == '') {
|
|
$result['msg'] = '请输入交强跟单手续费!';
|
|
return $result;
|
|
}
|
|
if($company2_id == 0) {
|
|
$result['msg'] = '请选择保险公司!';
|
|
return $result;
|
|
}
|
|
if($pay_no == '') {
|
|
$result['msg'] = '请输入缴费单号';
|
|
return $result;
|
|
}
|
|
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$order_info = OrderT::findOne(['id'=>$order_id]);
|
|
if(empty($order_info)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$old_status_id = $order_info->status_id;
|
|
$order_info->total1_rate = $total1_rate;
|
|
$order_info->total2_rate = $total2_rate;
|
|
$order_info->company2_id = $company2_id;
|
|
$order_info->pay_no = $pay_no;
|
|
|
|
$order_info->status_id = $status_id;
|
|
|
|
$result['msg'] = '保存成功';
|
|
if($status_id > $old_status_id) {
|
|
$result['msg'] = '提交成功';
|
|
$this->addLog($car_id,'核保结束,进入正本生成',1);
|
|
}
|
|
if(!$order_info->save()) {
|
|
throw new \Exception(print_r($order_info->getErrors(), true));
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$tran->commit();
|
|
} catch(\Exception $e) {
|
|
$tran->rollBack();
|
|
$result['msg'] = $e->getMessage();
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
/**
|
|
* 正本管理-列表
|
|
* @return string
|
|
*/
|
|
public function actionOriginalMng() {
|
|
$pay_type_items = PayTypeT::find()->all();
|
|
|
|
return $this->render('original-mng',[
|
|
'pay_type_items' => $pay_type_items
|
|
]);
|
|
}
|
|
public function actionOriginalMngJson()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$id_man = $request->get('id_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$pay_type_id = $request->get('pay_type_id');
|
|
$offset = $request->get('offset',0);
|
|
$limit = $request->get('limit',10);
|
|
|
|
$query = OrderT::find()
|
|
->where('status_id=5')
|
|
->orderBy('submit_date DESC, id DESC');
|
|
if($id_man != '') {
|
|
$query->andWhere('id_man="'.$id_man.'"');
|
|
}
|
|
if($phone != '') {
|
|
$query->andWhere('car_man_phone like :phone1 or id_man_phone like :phone2 or link_man_phone like :phone3',[':phone1'=>$phone,':phone2'=>$phone,':phone3'=>$phone]);
|
|
}
|
|
if($car_no != '') {
|
|
$query->andWhere('car_no=:car_no',[':car_no'=>$car_no]);
|
|
}
|
|
if($pay_type_id > 0) {
|
|
$query->andWhere('pay_type_id=:pay_type_id',[':pay_type_id'=>$pay_type_id]);
|
|
}
|
|
$query->orderBy('updated_at ASC');
|
|
$total = $query->count();
|
|
|
|
$query->offset($offset)->limit($limit);
|
|
$items = $query->all();
|
|
|
|
$data = [];
|
|
$data['total'] = $total;
|
|
$data['rows'] = [];
|
|
foreach($items as $item) {
|
|
$row = $item->toArray();
|
|
$row['company_name'] = $item->company2->name;
|
|
$row['user_name'] = $item->user?$item->user->getShowName():'';
|
|
$row['status_name'] = $item->status->name;
|
|
$row['pay_type'] = ($item->shoufei_id?MyLib::zhifufs($item->shoufei_id).'-':'').' '.($item->payType?$item->payType->name:'');
|
|
$row['lock_name'] = $item->op2?$item->op2->getShowName():'';
|
|
$data['rows'][] = $row;
|
|
}
|
|
|
|
return $data;
|
|
|
|
}
|
|
/**
|
|
* 正本管理-详情
|
|
* @return string
|
|
*/
|
|
|
|
public function actionOriginalMngEdit()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$back_params = $request->get('back_params');
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
|
|
if($order_info->op2_id == 0) {
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$order_info->op2_id = $this->my->id;
|
|
$order_info->save();
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
echo $e->getMessage();
|
|
exit;
|
|
}
|
|
} else {
|
|
if($order_info->op2_id != $this->my->id) {
|
|
echo '该记录已经被别人锁定,【<a href="/insurer/original-mng?'.$back_params.'">返回</a>】';
|
|
exit;
|
|
}
|
|
}
|
|
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
$insurer_company_items = InsurerCompanyT::find()
|
|
->all();
|
|
|
|
return $this->render('original-mng-edit',[
|
|
'car_info' => $car_info,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'insurer_company_items' => $insurer_company_items
|
|
]);
|
|
}
|
|
/**
|
|
* 正本管理-保存
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionOriginalMngSave()
|
|
{
|
|
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);
|
|
$status_id = $request->post('status_id',0);
|
|
$insurer1_no = $request->post('insurer1_no');
|
|
$insurer2_no = $request->post('insurer2_no');
|
|
$payer = $request->post('payer');
|
|
$payee_id = $request->post('payee_id');
|
|
$payment_id = $request->post('payment_id');
|
|
//上传商业和交强文件
|
|
$shangye_src= $request->post('shangye_src');
|
|
$fapiao_src= $request->post('fapiao_src');
|
|
$jiaoqiang_src= $request->post('jiaoqiang_src');
|
|
$jq_fapiao_src= $request->post('jq_fapiao_src');
|
|
|
|
if($insurer1_no == '' && $insurer2_no == '') {
|
|
$result['msg'] = '请输入商业或交强保单号!';
|
|
return $result;
|
|
}
|
|
//去除首位空格和字符串中间的空格
|
|
$insurer1_no= trim($insurer1_no);
|
|
$insurer1_no=str_replace(" ","",$insurer1_no);
|
|
$insurer2_no= trim($insurer2_no);
|
|
$insurer2_no=str_replace(" ","",$insurer2_no);
|
|
|
|
$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 {
|
|
$order_info = OrderT::findOne(['id'=>$order_id]);
|
|
if(empty($order_info)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$old_status_id = $order_info->status_id;
|
|
$order_info->insurer1_no = $insurer1_no;
|
|
$order_info->insurer2_no = $insurer2_no;
|
|
//上传文件
|
|
$order_info->shangye_src = $shangye_src;
|
|
$order_info->jiaoqiang_src = $jiaoqiang_src;
|
|
$order_info->fapiao_src = $fapiao_src;
|
|
$order_info->jq_fapiao_src = $jq_fapiao_src;
|
|
$order_info->upload_status = 2;
|
|
|
|
|
|
$order_info->payee_id = $payee_id;
|
|
$order_info->payment_id = $payment_id;
|
|
$order_info->status_id = $status_id;
|
|
$order_info->payer = $payer;
|
|
if($status_id == 10) {
|
|
$order_info->print_date = date('Y-m-d');
|
|
}
|
|
if(!$order_info->save()) {
|
|
throw new \Exception(print_r($order_info->getErrors(), true));
|
|
}
|
|
|
|
if($status_id == 10) {
|
|
//财务处理
|
|
CaiwuT::deleteAll(['order_id'=>$order_info->id]);
|
|
//商业
|
|
if($order_info->insurer1_no != '' && $order_info->total1_clear > 0) {
|
|
$row = null;
|
|
CaiwuT::deleteAll('insurer_no="'.$order_info->insurer1_no.'"');
|
|
$row = new CaiwuT();
|
|
$row->insurer_no = $order_info->insurer1_no;
|
|
$row->car_no = $order_info->car_no;
|
|
$row->factory_model = $order_info->car->factory_model;
|
|
$row->id_man = $order_info->id_man;
|
|
$row->company = $order_info->company2->name;
|
|
$row->total = sprintf("%.2f",$order_info->total1);
|
|
$row->total_clear = sprintf("%.2f",$order_info->total1_clear);
|
|
$row->total_clear_real = sprintf("%.2f",($order_info->total1_clear * $order_info->total1_rate/100));
|
|
$row->total_tax = sprintf("%.2f",$order_info->total1 - $order_info->total1_clear);
|
|
$row->total_tax_real = sprintf("%.2f",(($order_info->total1-$order_info->total1_clear) * $order_info->total1_rate/100));
|
|
$row->total_rate = $order_info->total1_rate;
|
|
$row->total_dis = $row->total_clear_real;
|
|
$row->user_id = $order_info->user_id;
|
|
$row->status = 0;
|
|
$row->insurer_type = 1;
|
|
$row->order_id = $order_info->id;
|
|
if(!$row->save()) {
|
|
throw new \Exception(print_r($row->getErrors(), true));
|
|
}
|
|
}
|
|
|
|
//交强
|
|
if($order_info->insurer2_no != '' && $order_info->total2_clear > 0) {
|
|
$row = null;
|
|
CaiwuT::deleteAll('insurer_no="'.$order_info->insurer2_no.'"');
|
|
$row = new CaiwuT();
|
|
$row->insurer_no = $order_info->insurer2_no;
|
|
$row->car_no = $order_info->car_no;
|
|
$row->factory_model = $order_info->car->factory_model;
|
|
$row->company = $order_info->company2->name;
|
|
$row->id_man = $order_info->id_man;
|
|
$row->total = sprintf("%.2f",$order_info->total2);
|
|
$row->total_clear = sprintf("%.2f",$order_info->total2_clear);
|
|
$row->total_tax = sprintf("%.2f",($order_info->total2 - $order_info->total2_clear));
|
|
$row->total_clear_real = sprintf("%.2f",($order_info->total2_clear * $order_info->total2_rate/100));
|
|
$row->total_tax_real = sprintf("%.2f",(($order_info->total2-$order_info->total2_clear) * $order_info->total2_rate/100));
|
|
$row->total_rate = $order_info->total2_rate;
|
|
$row->total_dis = $row->total_clear_real;
|
|
$row->user_id = $order_info->user_id;
|
|
$row->status = 0;
|
|
$row->insurer_type = 2;
|
|
$row->order_id = $order_info->id;
|
|
if(!$row->save()) {
|
|
throw new \Exception(print_r($row->getErrors(), true));
|
|
}
|
|
}
|
|
|
|
//生成财务分支 修改日期2018/5/18
|
|
$order_caiwu = OrderCaiwuT::findOne(['order_id'=>$order_info->id]);
|
|
if(!$order_caiwu) {
|
|
$order_caiwu = new OrderCaiwuT();
|
|
$order_caiwu->order_id = $order_info->id;
|
|
$order_caiwu->status_id = 12;
|
|
$order_caiwu->pay_date = substr($order_info->print_date,0,7);
|
|
if(!$order_caiwu->save()) {
|
|
throw new \Exception(print_r($order_caiwu->getErrors(), true));
|
|
}
|
|
}else{
|
|
$order_caiwu->status_id = 12;
|
|
$order_caiwu->pay_date = substr($order_info->print_date,0,7);
|
|
if(!$order_caiwu->save()) {
|
|
throw new \Exception(print_r($order_caiwu->getErrors(), true));
|
|
}
|
|
}
|
|
//B->C 或 D->C
|
|
$car_info = CarT::findOne(['id'=>$order_info->car_id]);
|
|
|
|
if($car_info->is_xubao == 0){
|
|
$car_info->op1_id = $order_info->user_id;
|
|
|
|
}elseif($car_info->is_xubao==1){//如果是续保
|
|
//查找上一年的保单
|
|
$car_info->op2_id = $order_info->user_id;
|
|
}
|
|
|
|
|
|
|
|
$car_info->location = 3;
|
|
$car_info->is_xubao = 1;
|
|
$car_info->print_date = date('Y-m-d');
|
|
|
|
|
|
$car_info->user_id = 0;
|
|
//更新保险日期
|
|
$car_info->insurer1_date = $order_info->insurer1_end_date;
|
|
$car_info->insurer2_date = $order_info->insurer2_end_date;
|
|
$car_info->company = $order_info->company->name;
|
|
//续保次数
|
|
if(!$car_info->save()) {
|
|
throw new \Exception(print_r($car_info->getErrors(), true));
|
|
}
|
|
|
|
CarBT::deleteAll(['id'=>$car_info->id]);
|
|
CarDT::deleteAll(['id'=>$car_info->id]);
|
|
|
|
$c_info = CarCT::findOne(['id'=>$car_info->id]);
|
|
if(!$c_info) {
|
|
$c_info = new CarCT();
|
|
$c_info->id = $car_info->id;
|
|
$c_info->user_id = 0;
|
|
if(!$c_info->save()) {
|
|
throw new \Exception(print_r($c_info->getErrors(), true));
|
|
}
|
|
}
|
|
$this->addLog($order_info->car_id,'正本生成结束',1);
|
|
}
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
$tran->commit();
|
|
|
|
} catch(\Exception $e) {
|
|
$tran->rollBack();
|
|
$result['msg'] = $e->getMessage();
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 出纳办结-列表
|
|
* @return string
|
|
*/
|
|
public function actionFinanceMng() {
|
|
return $this->render('finance-mng');
|
|
}
|
|
public function actionFinanceMngJson()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
//新增正本日期
|
|
$begin_date = $request->get('begin_date');
|
|
$end_date = $request->get('end_date');
|
|
//新增完成状态
|
|
$status = $request->get('status');
|
|
|
|
$car_man = $request->get('car_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$send_date = $request->get('send_date');
|
|
$insurer_no = $request->get('insurer_no');
|
|
$caiwu_status_id = $request->get('caiwu_status_id');
|
|
$offset = $request->get('offset',0);
|
|
$limit = $request->get('limit', 10);
|
|
|
|
//级别
|
|
$group_id = $request->get('group_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;
|
|
}
|
|
}
|
|
|
|
|
|
$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');
|
|
if($car_man != '') {
|
|
$query->andWhere('id_man="'.$car_man.'"');
|
|
}
|
|
if($phone != '') {
|
|
$query->andWhere('link_phone="'.$phone.'"');
|
|
}
|
|
if($car_no != '') {
|
|
$query->andWhere('car_no="'.$car_no.'"');
|
|
}
|
|
if($send_date != '') {
|
|
$query->andWhere('send_date="'.$send_date.'"');
|
|
}
|
|
if($insurer_no != '') {
|
|
$query->andWhere('(insurer1_no="'.$insurer_no.'" or insurer2_no="'.$insurer_no.'")');
|
|
}
|
|
//添加正本日期
|
|
if($begin_date != '') {
|
|
$query->andWhere('print_date>="'.$begin_date.'"');
|
|
}
|
|
if($end_date != '') {
|
|
$query->andWhere('print_date<="'.$end_date.'"');
|
|
}
|
|
//添加完成状态
|
|
if($status == 2) {
|
|
$query->andWhere('order_caiwu_t.status_id=10 or order_caiwu_t.status_id=13');
|
|
} else if($status == 1) {
|
|
$query->andWhere('order_caiwu_t.status_id=12');
|
|
} else {
|
|
$query->andWhere('order_caiwu_t.status_id=13 or order_caiwu_t.status_id=10 or order_caiwu_t.status_id=12');
|
|
}
|
|
//转账状态
|
|
if($caiwu_status_id > 0){
|
|
switch($caiwu_status_id){
|
|
case 1:
|
|
$query->andWhere('order_caiwu_t.caiwu_status_id=1');
|
|
break;
|
|
case 2:
|
|
$query->andWhere('order_caiwu_t.caiwu_status_id=2');
|
|
break;
|
|
case 3:
|
|
$query->andWhere('order_caiwu_t.caiwu_status_id=3');
|
|
break;
|
|
case 4:
|
|
$query->andWhere('order_caiwu_t.caiwu_status_id=4');
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
// 现在的搜索条件
|
|
$userSql = '';
|
|
|
|
$user_items = $this->my->getChildren($userSql);
|
|
$user_items[] = $this->my;
|
|
|
|
$row = array();
|
|
foreach($user_items as $user_info) {
|
|
if ($group_id > 0) {
|
|
if (!in_array($user_info->group_id, $group_ids)) {
|
|
continue;
|
|
}
|
|
}
|
|
|
|
$row[] = $user_info->id;
|
|
|
|
}
|
|
|
|
//加上级别筛选
|
|
if($group_id > 0){
|
|
$query = $query->andWhere(['in','order_t.user_id',$row]);
|
|
}
|
|
$total = $query->count();
|
|
|
|
$query = $query->offset($offset)->limit($limit);
|
|
$items = $query->all();
|
|
|
|
$data = [];
|
|
$data['total'] = $total;
|
|
$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['transfer_date'] = $item->caiwu->transfer_date;
|
|
$row['caiwu_status_name'] = $item->caiwu->caiwuStatus->name;
|
|
$row['shoufei_name'] = MyLib::zhifufs($item->shoufei_id);
|
|
$row['status_name'] = $item->caiwu->status->name;
|
|
$row['lock_man'] = $item->caiwu->lock?$item->caiwu->lock->getShowName():'';
|
|
$data['rows'][] = $row;
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
/**
|
|
* 非车险出纳办结-列表
|
|
* @return string
|
|
*/
|
|
public function actionNonFinanceMng()
|
|
{
|
|
$request = Yii::$app->request;
|
|
//新增正本日期
|
|
$begin_date = $request->get('begin_date');
|
|
$end_date = $request->get('end_date');
|
|
//新增完成状态
|
|
$status = $request->get('status');
|
|
|
|
$id_man = $request->get('id_man');
|
|
|
|
|
|
$send_date = $request->get('send_date');
|
|
$insurer_no = $request->get('insurer_no');
|
|
|
|
$page = $request->get('page',1);
|
|
if($page < 1) $page = 1;
|
|
|
|
$query = OrderT::find()
|
|
->leftJoin('order_caiwu_t1','order_caiwu_t1.order_id=order_t.id')
|
|
->where('order_caiwu_t1.status_id>0')
|
|
->andWhere('insurance_status = 2')
|
|
->orderBy('order_t.print_date asc');
|
|
if($id_man != '') {
|
|
$query = $query->andWhere('id_man="'.$id_man.'"');
|
|
}
|
|
|
|
if($send_date != '') {
|
|
$query = $query->andWhere('send_date="'.$send_date.'"');
|
|
}
|
|
if($insurer_no != '') {
|
|
$query = $query->andWhere('(insurer1_no="'.$insurer_no.'" or insurer2_no="'.$insurer_no.'")');
|
|
}
|
|
//添加正本日期
|
|
if($begin_date != '') {
|
|
$query = $query->andWhere('print_date>="'.$begin_date.'"');
|
|
}
|
|
if($end_date != '') {
|
|
$query = $query->andWhere('print_date<="'.$end_date.'"');
|
|
}
|
|
//添加完成状态
|
|
if($status == 2) {
|
|
$query = $query->andWhere('order_caiwu_t1.status_id=10 or order_caiwu_t1.status_id=13');
|
|
} else if($status == 1) {
|
|
$query = $query->andWhere('order_caiwu_t1.status_id=12');
|
|
} else {
|
|
$query = $query->andWhere('order_caiwu_t1.status_id=13 or order_caiwu_t1.status_id=10 or order_caiwu_t1.status_id=12');
|
|
}
|
|
|
|
$total = $query->count();
|
|
|
|
$pagination = new Pagination(['totalCount' => $total,'pageSize'=>20]);
|
|
$pagination->setPage($page-1);
|
|
|
|
$query = $query->offset($pagination->offset)->limit($pagination->limit);
|
|
$items = $query->all();
|
|
|
|
$page_info = MyLib::getPageInfo($pagination);
|
|
|
|
|
|
|
|
return $this->render('non-finance-mng',[
|
|
'items' => $items,
|
|
'id_man' => $id_man,
|
|
|
|
'send_date' => $send_date,
|
|
'page' => $page,
|
|
'page_info' => $page_info,
|
|
'insurer_no' => $insurer_no,
|
|
'status' => $status,
|
|
|
|
'begin_date' => $begin_date,
|
|
'end_date' => $end_date
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 非车险财务办结-列表
|
|
* @return string
|
|
*/
|
|
public function actionNonFinancialSettlementList()
|
|
{
|
|
$request = Yii::$app->request;
|
|
//新增正本日期
|
|
$begin_date = $request->get('begin_date');
|
|
$end_date = $request->get('end_date');
|
|
//新增完成状态
|
|
$status = $request->get('status');
|
|
|
|
$id_man = $request->get('id_man');
|
|
|
|
$send_date = $request->get('send_date');
|
|
$insurer_no = $request->get('insurer_no');
|
|
|
|
$page = $request->get('page',1);
|
|
if($page < 1) $page = 1;
|
|
|
|
|
|
$query = OrderT::find()
|
|
->leftJoin('order_caiwu_t1','order_caiwu_t1.order_id=order_t.id')
|
|
->where('order_t.status_id>5')
|
|
->andWhere('insurance_status = 2');
|
|
if($id_man != '') {
|
|
$query = $query->andWhere('id_man="'.$id_man.'"');
|
|
}
|
|
|
|
if($send_date != '') {
|
|
$query = $query->andWhere('send_date="'.$send_date.'"');
|
|
}
|
|
if($insurer_no != '') {
|
|
$query = $query->andWhere('(insurer1_no="'.$insurer_no.'" or insurer2_no="'.$insurer_no.'")');
|
|
}
|
|
//添加正本日期
|
|
if($begin_date != '') {
|
|
$query = $query->andWhere('print_date>="'.$begin_date.'"');
|
|
}
|
|
if($end_date != '') {
|
|
$query = $query->andWhere('print_date<="'.$end_date.'"');
|
|
}
|
|
//添加完成状态
|
|
|
|
if($status == 2) {
|
|
$query = $query->andWhere('order_caiwu_t1.status_id=10');
|
|
} else if($status == 1) {
|
|
$query = $query->andWhere('order_caiwu_t1.status_id=13');
|
|
} else {
|
|
$query = $query->andWhere('order_caiwu_t1.status_id=13 or order_caiwu_t1.status_id=10 ');
|
|
}
|
|
|
|
$total = $query->count();
|
|
|
|
$pagination = new Pagination(['totalCount' => $total,'pageSize'=>20]);
|
|
$pagination->setPage($page-1);
|
|
|
|
$query = $query->offset($pagination->offset)->limit($pagination->limit);
|
|
$items = $query->all();
|
|
|
|
$page_info = MyLib::getPageInfo($pagination);
|
|
|
|
|
|
|
|
return $this->render('non-financial-settlement-list',[
|
|
'items' => $items,
|
|
'id_man' => $id_man,
|
|
'send_date' => $send_date,
|
|
'page' => $page,
|
|
'page_info' => $page_info,
|
|
'insurer_no' => $insurer_no,
|
|
'status' => $status,
|
|
'begin_date' => $begin_date,
|
|
'end_date' => $end_date
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 出纳办结-详情
|
|
* @return string
|
|
*/
|
|
public function actionFinanceMngEdit()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$back_params = $request->get('back_params');
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
$caiwu_info = $order_info->caiwu;
|
|
if($caiwu_info->lock_id == 0) {
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info->lock_id = $this->my->id;
|
|
$caiwu_info->save();
|
|
|
|
$order_user_info = new OrderUserT();
|
|
$order_user_info->user_id = $this->my->id;
|
|
$order_user_info->order_id = $caiwu_info->order_id;
|
|
$order_user_info->type_id = $caiwu_info->status_id;
|
|
$order_user_info->status = 0;
|
|
$order_user_info->save();
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
} else {
|
|
if($caiwu_info->lock_id != $this->my->id && $this->my->username != 'admin') {
|
|
echo '该记录已经被别人锁定,【<a href="/insurer/finance-mng?'.$back_params.'">返回</a>】';
|
|
exit;
|
|
}
|
|
}
|
|
//快递
|
|
$ems_items = EmsT::find()
|
|
->where(['car_id'=>$car_info->id,'order_id'=>$order_info->id])
|
|
->orderBy('id ASC')
|
|
->all();
|
|
//礼品
|
|
$gift_group_items = [];
|
|
$sel_gifts = [];
|
|
|
|
$gift_group_items = GiftGroupT::find()
|
|
->where('is_free=0')
|
|
->all();
|
|
$gift_free_group_items = GiftGroupT::find()
|
|
->where('is_free=1')
|
|
->all();
|
|
//获取礼品数据
|
|
$sel_gifts = array();
|
|
$tmp_items = OrderGiftT::find()
|
|
->where('order_id='.$order_info->id)
|
|
->all();
|
|
foreach($tmp_items as $item) {
|
|
$sel_gifts[$item->group_id] = $item;
|
|
}
|
|
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
$new_array = [];
|
|
|
|
foreach($insurer_type_items as $k => $v){
|
|
|
|
$order_id = $order_info->id;
|
|
if(!$order_id)
|
|
$order_id = 0;
|
|
$tmp_row = PriceT::find()
|
|
->where('order_id='.$order_id.' and type_id='.$v->id)
|
|
->one();
|
|
if($tmp_row) {
|
|
if ($tmp_row->val != '' && $tmp_row->val != '0' && $tmp_row->val != '否' && $tmp_row->val != '无') {
|
|
$new_array[$k]['zl'] = $v->name . '(' . $v->code . ')';
|
|
$new_array[$k]['neir'] = $tmp_row->val;
|
|
$new_array[$k]['bjmp'] = $tmp_row->is_nopay == 1 ? '是' : '';
|
|
}
|
|
}
|
|
}
|
|
|
|
//银行列表
|
|
$banks = BankT::find()->all();
|
|
|
|
//转账状态列表
|
|
$caiwu_status = CaiwuStatusT::find()->all();
|
|
|
|
return $this->render('finance-mng-edit',[
|
|
'car_info' => $car_info,
|
|
'new_array' => $new_array,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'caiwu_info' => $caiwu_info,
|
|
'ems_items' => $ems_items,
|
|
'gift_group_items' => $gift_group_items,
|
|
'gift_free_group_items' => $gift_free_group_items,
|
|
'sel_gifts' => $sel_gifts,
|
|
'back_params' => $back_params,
|
|
'banks' => $banks,
|
|
'caiwu_status' => $caiwu_status
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 非车险出纳办结-详情
|
|
* @return string
|
|
*/
|
|
public function actionNonFinanceMngEdit()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$oid = $request->get('oid',0);
|
|
$back_params = $request->get('back_params');
|
|
// dd($id);
|
|
$order_info = OrderT::findOne(['id'=>$oid]);
|
|
|
|
$caiwu_info = $order_info->caiwu1;
|
|
$nonInfo = NonAutoInsurance::findOne(['id'=>$id]);
|
|
if($caiwu_info->lock_id == 0) {
|
|
$tran = OrderCaiwuT1::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info->lock_id = $this->my->id;
|
|
$caiwu_info->save();
|
|
|
|
$order_user_info = new OrderUserT();
|
|
$order_user_info->user_id = $this->my->id;
|
|
$order_user_info->order_id = $caiwu_info->order_id;
|
|
$order_user_info->type_id = $caiwu_info->status_id;
|
|
$order_user_info->status = 0;
|
|
$order_user_info->save();
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
} else {
|
|
if($caiwu_info->lock_id != $this->my->id && $this->my->username != 'admin') {
|
|
echo '该记录已经被别人锁定,【<a href="/insurer/finance-mng?'.$back_params.'">返回</a>】';
|
|
exit;
|
|
}
|
|
}
|
|
//快递
|
|
// $ems_items = EmsT::find()
|
|
// ->where(['car_id'=>$car_info->id,'order_id'=>$order_info->id])
|
|
// ->orderBy('id ASC')
|
|
// ->all();
|
|
//礼品
|
|
// $gift_group_items = [];
|
|
// $sel_gifts = [];
|
|
//
|
|
// $gift_group_items = GiftGroupT::find()
|
|
// ->where('is_free=0')
|
|
// ->all();
|
|
// $gift_free_group_items = GiftGroupT::find()
|
|
// ->where('is_free=1')
|
|
// ->all();
|
|
//获取礼品数据
|
|
// $sel_gifts = array();
|
|
// $tmp_items = OrderGiftT::find()
|
|
// ->where('order_id='.$order_info->id)
|
|
// ->all();
|
|
// foreach($tmp_items as $item) {
|
|
// $sel_gifts[$item->group_id] = $item;
|
|
// }
|
|
//
|
|
// $insurer_type_items = InsurerTypeT::find()
|
|
// ->all();
|
|
// $new_array = [];
|
|
//
|
|
// foreach($insurer_type_items as $k => $v){
|
|
//
|
|
// $order_id = $order_info->id;
|
|
// if(!$order_id)
|
|
// $order_id = 0;
|
|
// $tmp_row = PriceT::find()
|
|
// ->where('order_id='.$order_id.' and type_id='.$v->id)
|
|
// ->one();
|
|
// if($tmp_row->val != '' && $tmp_row->val != '0' && $tmp_row->val != '否' && $tmp_row->val != '无'){
|
|
// $new_array[$k]['zl'] = $v->name.'('.$v->code.')';
|
|
// $new_array[$k]['neir'] = $tmp_row->val;
|
|
// $new_array[$k]['bjmp'] = $tmp_row->is_nopay==1?'是':'';
|
|
// }
|
|
// }
|
|
|
|
//银行列表
|
|
// $banks = BankT::find()->all();
|
|
|
|
//转账状态列表
|
|
// $caiwu_status = CaiwuStatusT::find()->all();
|
|
|
|
return $this->render('non-finance-mng-edit',[
|
|
'info' => $nonInfo,
|
|
// 'new_array' => $new_array,
|
|
// 'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'caiwu_info' => $caiwu_info,
|
|
|
|
// 'gift_group_items' => $gift_group_items,
|
|
// 'gift_free_group_items' => $gift_free_group_items,
|
|
// 'sel_gifts' => $sel_gifts,
|
|
'back_params' => $back_params,
|
|
// 'banks' => $banks,
|
|
// 'caiwu_status' => $caiwu_status
|
|
]);
|
|
}
|
|
/**
|
|
* 非车险财务办结-详情
|
|
* @return string
|
|
*/
|
|
public function actionNonFinancialSettlementDetail()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$oid = $request->get('oid',0);
|
|
$back_params = $request->get('back_params');
|
|
// dd($id);
|
|
$order_info = OrderT::findOne(['id'=>$oid]);
|
|
|
|
$caiwu_info = $order_info->caiwu1;
|
|
$nonInfo = NonAutoInsurance::findOne(['id'=>$id]);
|
|
if($caiwu_info->lock_id == 0) {
|
|
$tran = OrderCaiwuT1::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info->lock_id = $this->my->id;
|
|
$caiwu_info->save();
|
|
|
|
$order_user_info = new OrderUserT();
|
|
$order_user_info->user_id = $this->my->id;
|
|
$order_user_info->order_id = $caiwu_info->order_id;
|
|
$order_user_info->type_id = $caiwu_info->status_id;
|
|
$order_user_info->status = 0;
|
|
$order_user_info->save();
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
} else {
|
|
if($caiwu_info->lock_id != $this->my->id && $this->my->username != 'admin') {
|
|
echo '该记录已经被别人锁定,【<a href="/insurer/finance-mng?'.$back_params.'">返回</a>】';
|
|
exit;
|
|
}
|
|
}
|
|
|
|
|
|
return $this->render('non-financial-settlement-detail',[
|
|
'info' => $nonInfo,
|
|
// 'new_array' => $new_array,
|
|
// 'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'caiwu_info' => $caiwu_info,
|
|
|
|
// 'gift_group_items' => $gift_group_items,
|
|
// 'gift_free_group_items' => $gift_free_group_items,
|
|
// 'sel_gifts' => $sel_gifts,
|
|
'back_params' => $back_params,
|
|
// 'banks' => $banks,
|
|
// 'caiwu_status' => $caiwu_status
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 出纳保存
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionFinanceMngSave()
|
|
{
|
|
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);
|
|
$status_id = $request->post('status_id',0);
|
|
$money_man = $request->post('money_man');
|
|
$money_no = $request->post('money_no');
|
|
$money_bank = $request->post('money_bank');
|
|
$transfer_date = $request->post('transfer_date');
|
|
$transfer_money = $request->post('transfer_money');
|
|
$transfer_bank_id = $request->post('transfer_bank_id');
|
|
$transfer_bank_no = $request->post('transfer_bank_no');
|
|
$caiwu_no = $request->post('caiwu_no');
|
|
$caiwu_status_id = $request->post('caiwu_status_id');
|
|
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info = OrderCaiwuT::findOne(['order_id'=>$order_id]);
|
|
if(empty($caiwu_info)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$caiwu_info->money_man = $money_man;
|
|
$caiwu_info->money_no = $money_no;
|
|
$caiwu_info->money_bank = $money_bank;
|
|
$caiwu_info->transfer_date = $transfer_date;
|
|
$caiwu_info->transfer_date = $transfer_date;
|
|
$caiwu_info->transfer_money = $transfer_money;
|
|
$caiwu_info->transfer_bank_id = $transfer_bank_id;
|
|
$caiwu_info->transfer_bank_no = $transfer_bank_no;
|
|
$caiwu_info->caiwu_no = $caiwu_no;
|
|
$old_status_id = $caiwu_info->status_id;
|
|
if($status_id == 10) {
|
|
if($caiwu_status_id == 0){
|
|
$result['success'] = false;
|
|
$result['msg'] = '请先确定转账状态后,再点提交按钮!';
|
|
return $result;
|
|
}
|
|
if($caiwu_info->caiwu_status_id != $caiwu_status_id) {
|
|
$result['success'] = false;
|
|
$result['msg'] = '请先保存成功后,再点提交按钮!';
|
|
return $result;
|
|
}
|
|
|
|
$caiwu_info->lock_id = 0;
|
|
$this->addLog($caiwu_info->order->car_id,'返现管理完成',1);
|
|
}
|
|
$caiwu_info->caiwu_status_id = $caiwu_status_id;
|
|
|
|
$caiwu_info->status_id = $status_id;
|
|
if(!$caiwu_info->save()) {
|
|
throw new \Exception(print_r($caiwu_info->getErrors(), true));
|
|
}
|
|
$tran->commit();
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
} catch(\Throwable $e) {
|
|
$tran->rollBack();
|
|
$result['msg'] = $e->getMessage();
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 非车险出纳保存
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionNonFinanceMngSave()
|
|
{
|
|
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);
|
|
$status_id = $request->post('status_id',0);
|
|
|
|
$rate1 = $request->post('rate1');
|
|
$money1 = $request->post('money1');
|
|
|
|
$rate4 = $request->post('rate4');
|
|
$money4 = $request->post('money4');
|
|
|
|
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info = OrderCaiwuT1::findOne(['order_id'=>$order_id]);
|
|
|
|
|
|
if(empty($caiwu_info)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
//原来的财务状态
|
|
$old_status_id = $caiwu_info->status_id;
|
|
|
|
|
|
|
|
$caiwu_info->rate1 = $rate1;
|
|
$caiwu_info->money1 = $money1;
|
|
|
|
$caiwu_info->rate4 = $rate4;
|
|
$caiwu_info->money4 = $money4;
|
|
|
|
|
|
|
|
$caiwu_info->status_id = $status_id;
|
|
$caiwu_info->save();
|
|
|
|
|
|
|
|
if($status_id > $old_status_id) {
|
|
//处理新保、跟踪、续保提成
|
|
$order_info = $caiwu_info->order;
|
|
|
|
//删除相当记录
|
|
PayOrderUserT::deleteAll('order_id='.$order_info->id);
|
|
|
|
|
|
|
|
//截取日期来进行判断
|
|
$year= (int)substr($caiwu_info->pay_date,0,4);
|
|
|
|
if($year>=2018){
|
|
$op11= substr($order_info->op1->getShowName(),0,strpos($order_info->op1->getShowName(),'('));
|
|
// dd($op11);
|
|
$op1_user = UserT::findOne(['username'=>$op11,'is_delete'=>0]);
|
|
if($op1_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $op1_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 8;
|
|
$pay_order_user->is_own = 2;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay1();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
// $op_user1_id = substr($car_info->op_user1,0,strpos($car_info->op_user1,'('));
|
|
$pay1_user = UserT::findOne(['username'=>$order_info->user_id,'is_delete'=>0]);
|
|
|
|
if($pay1_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $pay1_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 7;
|
|
$pay_order_user->is_own = 2;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay1();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
|
|
|
|
$caiwu_info->lock_id = 0;
|
|
$this->addNonLog($caiwu_info->order->non_id,'出纳办结完成,提交财务处理',1);
|
|
|
|
// if($year>=2018){
|
|
// $this->addLog($caiwu_info->order->car_id,'出纳办结完成,提交财务处理',1);
|
|
// }else{
|
|
// $this->addLog1($caiwu_info->order->car_id,'出纳办结完成,提交财务处理',1);
|
|
// }
|
|
|
|
//处理操作人员状态
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$caiwu_info->order_id,'user_id'=>$this->my->id,'type_id'=>$old_status_id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 1; //操作结束
|
|
$order_user_info->save();
|
|
}
|
|
}
|
|
$caiwu_info->save();
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Throwable $e) {
|
|
$tran->rollBack();
|
|
file_put_contents('log.txt',$e->getMessage());
|
|
throw $e;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
/**
|
|
* 非车险财务保存
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionNonFinancialSettlementSave()
|
|
{
|
|
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);
|
|
$status_id = $request->post('status_id',0);
|
|
|
|
$rate1 = $request->post('rate1');
|
|
$money1 = $request->post('money1');
|
|
|
|
$rate4 = $request->post('rate4');
|
|
$money4 = $request->post('money4');
|
|
|
|
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info = OrderCaiwuT1::findOne(['order_id'=>$order_id]);
|
|
|
|
|
|
if(empty($caiwu_info)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
//原来的财务状态
|
|
$old_status_id = $caiwu_info->status_id;
|
|
|
|
|
|
|
|
$caiwu_info->rate1 = $rate1;
|
|
$caiwu_info->money1 = $money1;
|
|
|
|
$caiwu_info->rate4 = $rate4;
|
|
$caiwu_info->money4 = $money4;
|
|
|
|
|
|
|
|
$caiwu_info->status_id = $status_id;
|
|
$caiwu_info->save();
|
|
|
|
|
|
|
|
if($status_id == 10) {
|
|
//处理新保、跟踪、续保提成
|
|
$order_info = $caiwu_info->order;
|
|
|
|
//删除相当记录
|
|
PayOrderUserT::deleteAll('order_id='.$order_info->id);
|
|
|
|
|
|
|
|
//截取日期来进行判断
|
|
$year= (int)substr($caiwu_info->pay_date,0,4);
|
|
|
|
if($year>=2018){
|
|
$op11= substr($order_info->op1->getShowName(),0,strpos($order_info->op1->getShowName(),'('));
|
|
// dd($op11);
|
|
$op1_user = UserT::findOne(['username'=>$op11,'is_delete'=>0]);
|
|
if($op1_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $op1_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 8;
|
|
$pay_order_user->is_own = 2;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay1();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
// $op_user1_id = substr($car_info->op_user1,0,strpos($car_info->op_user1,'('));
|
|
$pay1_user = UserT::findOne(['username'=>$order_info->user_id,'is_delete'=>0]);
|
|
|
|
if($pay1_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $pay1_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 7;
|
|
$pay_order_user->is_own = 2;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay1();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
|
|
|
|
$caiwu_info->lock_id = 0;
|
|
// $this->addLog($caiwu_info->order->car_id,'出纳办结完成,提交财务处理',1);
|
|
$this->addNonLog($caiwu_info->order->non_id,'财务办结完成,财务流程结束',1);
|
|
// if($year>=2018){
|
|
// $this->addLog($caiwu_info->order->car_id,'出纳办结完成,提交财务处理',1);
|
|
// }else{
|
|
// $this->addLog1($caiwu_info->order->car_id,'出纳办结完成,提交财务处理',1);
|
|
// }
|
|
|
|
//处理操作人员状态
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$caiwu_info->order_id,'user_id'=>$this->my->id,'type_id'=>$old_status_id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 1; //操作结束
|
|
$order_user_info->save();
|
|
}
|
|
}
|
|
$caiwu_info->save();
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Throwable $e) {
|
|
$tran->rollBack();
|
|
file_put_contents('log.txt',$e->getMessage());
|
|
throw $e;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 退回操作
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionReturnOp()
|
|
{
|
|
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_status_id = $request->post('return_status_id',0);
|
|
$return_remark = $request->post('return_remark');
|
|
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$row = OrderT::findOne(['id'=>$order_id]);
|
|
if(empty($row)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$row->status_id = 1;
|
|
$row->return_status_id = $return_status_id;
|
|
$row->return_remark = $return_remark;
|
|
$row->return_time = time();
|
|
// if($return_status_id == 2) {
|
|
// $row->op1_id = 0;
|
|
// } else {
|
|
// $row->op2_id = 0;
|
|
// }
|
|
if(!$row->save()) {
|
|
throw new \Exception(print_r($row->getErrors(), true));
|
|
}
|
|
|
|
$this->addLog($row->car_id,'退回业务员,理由是:'.$return_remark,1);
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '退回成功';
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionNonReturnOp()
|
|
{
|
|
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_status_id = $request->post('return_status_id',0);
|
|
$return_remark = $request->post('return_remark');
|
|
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$row = OrderT::findOne(['id'=>$order_id]);
|
|
if(empty($row)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$row->status_id = 14;
|
|
$row->return_status_id = $return_status_id;
|
|
$row->return_remark = $return_remark;
|
|
$row->return_time = time();
|
|
$row->lock_id = 0;
|
|
$row->save();
|
|
|
|
//处理操作人员状态
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$row->id,'user_id'=>$this->my->id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 2; //退回
|
|
$order_user_info->save();
|
|
|
|
$order_user_info2 = new OrderUserT();
|
|
$order_user_info2->user_id = $row->user_id;
|
|
$order_user_info2->order_id = $row->id;
|
|
$order_user_info2->type_id = 1;
|
|
$order_user_info2->status = 0;
|
|
$order_user_info2->save();
|
|
}
|
|
//
|
|
//处理礼品数量
|
|
$sel_gifts = OrderGiftT::find()
|
|
->where('order_id='.$order_id)
|
|
->all();
|
|
foreach($sel_gifts as $sel_gift) {
|
|
$gift_info = $sel_gift->gift;
|
|
if($gift_info && $gift_info->total > -1) {
|
|
$gift_info->total = $gift_info->total + 1;
|
|
$gift_info->save();
|
|
}
|
|
}
|
|
$this->addNonLog($row->non_id, '退回业务员,理由是:'.$return_remark, 1);
|
|
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '退回成功';
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionNonMyReturnList()
|
|
{
|
|
$request = Yii::$app->request;
|
|
|
|
$car_no = $request->get('car_no');
|
|
$date_begin = $request->get('date_begin');
|
|
$date_end = $request->get('date_end');
|
|
$date2_begin = $request->get('date2_begin');
|
|
$date2_end = $request->get('date2_end');
|
|
$page = $request->get('page',1);
|
|
if($page < 1) $page = 1;
|
|
|
|
$query = OrderT::find()
|
|
->where('status_id=14 and return_status_id>0')
|
|
->orderBy('submit_date DESC, id DESC');
|
|
$user_items = $this->my->getChildren();
|
|
$user_ids[] = $this->my->id;
|
|
if($user_items) {
|
|
foreach($user_items as $user_item) {
|
|
$user_ids[] = $user_item->id;
|
|
}
|
|
}
|
|
$query = $query->andWhere(['in','user_id',$user_ids]);
|
|
|
|
if($car_no != '') {
|
|
$query = $query->andWhere('car_no="'.$car_no.'"');
|
|
}
|
|
if($date_begin != '') {
|
|
$query = $query->andWhere('submit_date>="'.$date_begin.'"');
|
|
}
|
|
if($date_end != '') {
|
|
$query = $query->andWhere('submit_date<="'.$date_end.'"');
|
|
}
|
|
if($date2_begin != '') {
|
|
$time_begin = strtotime($date2_begin.' 00:00:00');
|
|
$query = $query->andWhere('return_time>='.$time_begin);
|
|
}
|
|
if($date2_end != '') {
|
|
$time_end = strtotime($date2_end.' 23:59:59');
|
|
$query = $query->andWhere('return_time<='.$time_end);
|
|
}
|
|
//echo $query->createCommand()->rawSql;
|
|
$total = $query->count();
|
|
|
|
$pagination = new Pagination(['totalCount' => $total,'pageSize'=>20]);
|
|
$pagination->setPage($page-1);
|
|
|
|
$query = $query->offset($pagination->offset)->limit($pagination->limit);
|
|
$items = $query->all();
|
|
|
|
$page_info = MyLib::getPageInfo($pagination);
|
|
|
|
return $this->render('non-my-return-list',[
|
|
'items' => $items,
|
|
'car_no' => $car_no,
|
|
'page' => $page,
|
|
'page_info' => $page_info,
|
|
'date_begin'=>$date_begin,
|
|
'date_end'=>$date_end,
|
|
'date2_begin'=>$date2_begin,
|
|
'date2_end'=>$date2_end
|
|
]);
|
|
}
|
|
|
|
public function actionMyReturnList() {
|
|
return $this->render('my-return-list');
|
|
}
|
|
|
|
public function actionMyReturnListJson()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$car_man = $request->get('car_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$date_begin = $request->get('date_begin');
|
|
$date_end = $request->get('date_end');
|
|
$date2_begin = $request->get('date2_begin');
|
|
$date2_end = $request->get('date2_end');
|
|
$offset = $request->get('offset',0);
|
|
$limit = $request->get('limit',10);
|
|
|
|
$query = OrderT::find()
|
|
->where('status_id=1 and return_status_id>0')
|
|
->orderBy('submit_date DESC, id DESC');
|
|
$user_items = $this->my->getChildren();
|
|
$user_ids[] = $this->my->id;
|
|
if($user_items) {
|
|
foreach($user_items as $user_item) {
|
|
$user_ids[] = $user_item->id;
|
|
}
|
|
}
|
|
$query = $query->andWhere(['in','user_id',$user_ids]);
|
|
if($car_man != '') {
|
|
$query = $query->andWhere('car_man="'.$car_man.'"');
|
|
}
|
|
if($phone != '') {
|
|
$query = $query->andWhere('link_phone="'.$phone.'"');
|
|
}
|
|
if($car_no != '') {
|
|
$query = $query->andWhere('car_no="'.$car_no.'"');
|
|
}
|
|
if($date_begin != '') {
|
|
$query = $query->andWhere('submit_date>="'.$date_begin.'"');
|
|
}
|
|
if($date_end != '') {
|
|
$query = $query->andWhere('submit_date<="'.$date_end.'"');
|
|
}
|
|
if($date2_begin != '') {
|
|
$time_begin = strtotime($date2_begin.' 00:00:00');
|
|
$query = $query->andWhere('return_time>='.$time_begin);
|
|
}
|
|
if($date2_end != '') {
|
|
$time_end = strtotime($date2_end.' 23:59:59');
|
|
$query = $query->andWhere('return_time<='.$time_end);
|
|
}
|
|
//echo $query->createCommand()->rawSql;
|
|
$total = $query->count();
|
|
|
|
$query = $query->offset($offset)->limit($limit);
|
|
$items = $query->all();
|
|
|
|
$data = [];
|
|
$data['total'] = $total;
|
|
$data['rows'] = [];
|
|
foreach($items as $item) {
|
|
$row = $item->toArray();
|
|
$row['return_time'] = date('Y-m-d H:i:s', $item->return_time);
|
|
$data['rows'][] = $row;
|
|
}
|
|
|
|
return $data;
|
|
}
|
|
|
|
public function actionMyReturnListInfo()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
|
|
$car_info = CarT::findOne(['id'=>$id]);
|
|
$order_info = $car_info->getOrders()->one();
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
$insurer_company_items = InsurerCompanyT::find()
|
|
->all();
|
|
$pay_type_items = PayTypeT::find()
|
|
->all();
|
|
$car_use_items = CarUseT::find()->all();
|
|
$car_type_items = CarTypeT::find()->all();
|
|
$brand_items = BrandT::find()->all();
|
|
$series_items = SeriesT::find()
|
|
->where('brand_id='.intval($car_info->brand_id))
|
|
->all();
|
|
$displacement_items = DisplacementT::find()
|
|
->where('series_id='.intval($car_info->series_id))
|
|
->all();
|
|
$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()->all();
|
|
$success_items = InvalidT::getTree(1);
|
|
$failure_items = InvalidT::getTree(2);
|
|
|
|
return $this->render('my-return-list-info',[
|
|
'car_info' => $car_info,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'insurer_company_items' => $insurer_company_items,
|
|
'pay_type_items' => $pay_type_items,
|
|
'car_use_items' => $car_use_items,
|
|
'car_type_items' => $car_type_items,
|
|
'brand_items' => $brand_items,
|
|
'series_items' => $series_items,
|
|
'displacement_items' => $displacement_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
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* EMS打印
|
|
* @return string
|
|
*/
|
|
public function actionOriginalEmsEdit()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$back_params = $request->get('back_params');
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
|
|
return $this->render('original-ems-edit',[
|
|
'car_info' => $car_info,
|
|
'order_info' => $order_info,
|
|
'back_params' => $back_params
|
|
]);
|
|
}
|
|
|
|
public function actionOriginalEmsEdit1()
|
|
{
|
|
return $this->render('original-ems-edit1',[]);
|
|
}
|
|
|
|
public function actionSearch() {
|
|
return $this->render('search');
|
|
}
|
|
public function actionSearchJson()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$car_man = $request->get('car_man');
|
|
$id_man = $request->get('id_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$date_begin = $request->get('date_begin');
|
|
$date_end = $request->get('date_end');
|
|
$date2_begin = $request->get('date2_begin');
|
|
$date2_end = $request->get('date2_end');
|
|
$date3_begin = $request->get('date3_begin');
|
|
$date3_end = $request->get('date3_end');
|
|
$status = $request->get('status');
|
|
$offset = $request->get('offset',0);
|
|
$limit = $request->get('limit', 10);
|
|
|
|
$query = OrderT::find()
|
|
->where('status_id>1')
|
|
->orderBy('car_no desc,submit_date asc');
|
|
if($id_man != '') {
|
|
$query->andWhere(['like','id_man',$id_man]);
|
|
}
|
|
if($car_man != '') {
|
|
$query->andWhere(['like','car_man',$car_man]);
|
|
}
|
|
if($phone != '') {
|
|
$query->andWhere('car_man_phone like :phone or id_man_phone like :phone or link_man_phone like :phone', [':phone'=>$phone]);
|
|
}
|
|
if($car_no != '') {
|
|
$query->andWhere(['like','car_no',$car_no]);
|
|
}
|
|
if($date_begin != '') {
|
|
$query->andWhere('submit_date>="'.$date_begin.'"');
|
|
}
|
|
if($date_end != '') {
|
|
$query->andWhere('submit_date<="'.$date_end.'"');
|
|
}
|
|
if($date2_begin != '') {
|
|
$query->andWhere('print_date>="'.$date2_begin.'"');
|
|
}
|
|
if($date2_end != '') {
|
|
$query->andWhere('print_date<="'.$date2_end.'"');
|
|
}
|
|
if($date3_begin != '') {
|
|
$query->andWhere('insurer1_begin_date>=:begin_date or insurer2_begin_date>=:begin_date', [':begin_date'=>$date3_begin]);
|
|
}
|
|
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');
|
|
}
|
|
}
|
|
$total = $query->count();
|
|
|
|
$query->offset($offset)->limit($limit);
|
|
$items = $query->all();
|
|
|
|
$data = [];
|
|
$data['total'] = $total;
|
|
$data['rows'] = [];
|
|
foreach($items as $item) {
|
|
$row = $item->toArray();
|
|
$row['lock_name'] = $item->lock?$item->lock->getShowName():'';
|
|
$row['status'] = $item->status->name;
|
|
$row['username'] = $item->user->getShowName();
|
|
$row['company_name'] = $item->company->name;
|
|
$row['file_status'] = '未上传';
|
|
if($item->shangye_src || $item->jiaoqiang_src) {
|
|
$row['file_status'] = '保单已上传';
|
|
}
|
|
$data['rows'][] = $row;
|
|
}
|
|
return $data;
|
|
}
|
|
public function actionSearch1()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$car_man = $request->get('car_man');
|
|
$id_man = $request->get('id_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$page = $request->get('page',1);
|
|
$date_begin = $request->get('date_begin');
|
|
$date_end = $request->get('date_end');
|
|
$date2_begin = $request->get('date2_begin');
|
|
$date2_end = $request->get('date2_end');
|
|
$date3_begin = $request->get('date3_begin');
|
|
$date3_end = $request->get('date3_end');
|
|
$group_id = $request->get('group_id');
|
|
$company_id = $request->get('company_id');
|
|
$insurance_status= $request->get('insurance_status');
|
|
|
|
if($page < 1) $page = 1;
|
|
|
|
$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;
|
|
}
|
|
}
|
|
// $submit_date='2018-10-14';
|
|
// $near_info= OrderT::find()->where(['car_no'=>$car_no])
|
|
// ->orderBy('created_at desc')->select('car_man,created_at,user_id')->one();
|
|
// $near_info= OrderT::find()->where(['car_no'=>$car_no])
|
|
// ->asArray()->select('created_at,submit_date,id,car_man')
|
|
// ->andWhere(['status_id'=>10])
|
|
// ->andWhere(['<', 'submit_date', $submit_date])
|
|
// ->orderBy('created_at desc')->one();
|
|
//
|
|
// $car_info->op_user1 = $near_info->user->getShowName();
|
|
// dd($near_info);
|
|
$query = OrderT::find()
|
|
->where('status_id>1')
|
|
// ->orderBy('submit_date DESC, id DESC');
|
|
->orderBy('car_no desc,submit_date asc');
|
|
if($id_man != '') {
|
|
$query = $query->andWhere(['like','id_man',$id_man]);
|
|
}
|
|
if($car_man != '') {
|
|
$query = $query->andWhere(['like','car_man',$car_man]);
|
|
}
|
|
if($phone != '') {
|
|
$query = $query->andWhere(['like','link_phone',$phone]);
|
|
}
|
|
if($car_no != '') {
|
|
$query = $query->andWhere(['like','car_no',$car_no]);
|
|
}
|
|
if($date_begin != '') {
|
|
$query = $query->andWhere('submit_date>="'.$date_begin.'"');
|
|
}
|
|
if($date_end != '') {
|
|
$query = $query->andWhere('submit_date<="'.$date_end.'"');
|
|
}
|
|
if($date2_begin != '') {
|
|
$query = $query->andWhere('print_date>="'.$date2_begin.'"');
|
|
}
|
|
if($date2_end != '') {
|
|
$query = $query->andWhere('print_date<="'.$date2_end.'"');
|
|
}
|
|
if($date3_begin != '') {
|
|
$query = $query->andWhere('insurer1_begin_date>="'.$date3_begin.'"');
|
|
}
|
|
if($date3_end != '') {
|
|
$query = $query->andWhere('insurer1_begin_date<="'.$date3_end.'"');
|
|
}
|
|
|
|
if($company_id != '') {
|
|
$query = $query->andWhere('company_id ="'.$company_id.'"');
|
|
}
|
|
if($insurance_status != '') {
|
|
$query = $query->andWhere('insurance_status ="'.$insurance_status.'"');
|
|
}
|
|
$total = $query->count();
|
|
|
|
$pagination = new Pagination(['totalCount' => $total,'pageSize'=>20]);
|
|
$pagination->setPage($page-1);
|
|
|
|
// $query = $query->offset($pagination->offset)->limit($pagination->limit);
|
|
$items = $query->all();
|
|
|
|
// echo $query->createCommand()->rawSql;
|
|
|
|
foreach($items as $vs){
|
|
|
|
$order_weizhi_info = OrderWeizhi::findOne(['car_id'=>$vs->car_id]);
|
|
if($order_weizhi_info){
|
|
$order_weizhi_info->num=$order_weizhi_info->num+1;
|
|
$order_weizhi_info->order_text=$order_weizhi_info->order_text.','.$vs->user_id;
|
|
$order_weizhi_info->save();
|
|
}else{
|
|
$order_weizhi_info= new OrderWeizhi();
|
|
$order_weizhi_info->order_id=$vs->id;
|
|
$order_weizhi_info->car_no=$vs->car_no;
|
|
$order_weizhi_info->car_id=$vs->car_id;
|
|
$order_weizhi_info->order_text= $vs->user_id;
|
|
$order_weizhi_info->num=1;
|
|
$order_weizhi_info->save();
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
$sum = $query->sum('total1_clear');
|
|
$sum1 = $query->sum('total2_clear');
|
|
// var_dump($sum1) ;
|
|
|
|
$page_info = MyLib::getPageInfo($pagination);
|
|
$company_items = InsurerCompanyT::find()->all();
|
|
return $this->render('search',[
|
|
'items' => $items,
|
|
'company_items' => $company_items,
|
|
'insurance_status' => $insurance_status,
|
|
'company_id' => $company_id,
|
|
'car_man' => $car_man,
|
|
'id_man' => $id_man,
|
|
'phone' => $phone,
|
|
'car_no' => $car_no,
|
|
'date_begin' => $date_begin,
|
|
'date_end' => $date_end,
|
|
'date2_begin' => $date2_begin,
|
|
'date2_end' => $date2_end,
|
|
'date3_begin' => $date3_begin,
|
|
'date3_end' => $date3_end,
|
|
'page' => $page,
|
|
'page_info' => $page_info,
|
|
'group_items'=>$group_items,
|
|
'group_id'=>$group_id,
|
|
'sum' => $sum
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 财务放弃处理
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionFinanceCancelSave()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$order_id = $request->post('order_id',0);
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '无法放弃';
|
|
$order_info = OrderT::findOne(['id'=>$order_id]);
|
|
if($order_info) {
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info = $order_info->caiwu;
|
|
|
|
$caiwu_info->lock_id = 0;
|
|
$caiwu_info->save();
|
|
$result['success'] = true;
|
|
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$order_info->id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 4; //放弃操作
|
|
$order_user_info->save();
|
|
}
|
|
|
|
$tran->commit();
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '放弃成功';
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 财务放弃处理
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionNonFinanceCancelSave()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$order_id = $request->post('order_id',0);
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '无法放弃';
|
|
$order_info = OrderT::findOne(['id'=>$order_id]);
|
|
if($order_info) {
|
|
$tran = OrderCaiwuT1::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info = $order_info->caiwu1;
|
|
|
|
$caiwu_info->lock_id = 0;
|
|
$caiwu_info->save();
|
|
$result['success'] = true;
|
|
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$order_info->id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 4; //放弃操作
|
|
$order_user_info->save();
|
|
}
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 财务办结-列表
|
|
* @return string
|
|
*/
|
|
|
|
/**
|
|
* 财务办结-列表
|
|
* @return string
|
|
*/
|
|
|
|
public function actionFinancialSettlementList()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$begin_date = $request->get('begin_date');
|
|
$end_date = $request->get('end_date');
|
|
$tbegin_date = $request->get('tbegin_date');
|
|
$tend_date = $request->get('tend_date');
|
|
$car_man = $request->get('car_man');
|
|
$phone = $request->get('phone');
|
|
$car_no = $request->get('car_no');
|
|
$insurer_no = $request->get('insurer_no');
|
|
$status = $request->get('status');
|
|
$caiwu_status_id = $request->get('caiwu_status_id');
|
|
$page = $request->get('page',1);
|
|
$username = $request->get('username');
|
|
//级别
|
|
$group_id = $request->get('group_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;
|
|
}
|
|
}
|
|
// die;
|
|
if($page < 1) $page = 1;
|
|
|
|
|
|
$query = OrderT::find()
|
|
->leftJoin('order_caiwu_t','order_caiwu_t.order_id=order_t.id')
|
|
->where('order_t.status_id>5');
|
|
if($car_man != '') {
|
|
$query = $query->andWhere('id_man="'.$car_man.'"');
|
|
}
|
|
if($phone != '') {
|
|
$query = $query->andWhere('link_phone="'.$phone.'"');
|
|
}
|
|
if($car_no != '') {
|
|
$query = $query->andWhere('car_no like "%'.$car_no.'%"');
|
|
}
|
|
if($begin_date != '') {
|
|
$query = $query->andWhere('print_date>="'.$begin_date.'"');
|
|
}
|
|
if($end_date != '') {
|
|
$query = $query->andWhere('print_date<="'.$end_date.'"');
|
|
}
|
|
if($tbegin_date != '') {
|
|
$query = $query->andWhere('order_caiwu_t.transfer_date>="'.$tbegin_date.'"');
|
|
}
|
|
if($tend_date != '') {
|
|
$query = $query->andWhere('order_caiwu_t.transfer_date<="'.$tend_date.'"');
|
|
}
|
|
if($username != '') {
|
|
$user_info = UserT::findOne(['username'=>$username]);
|
|
if($user_info) {
|
|
$query = $query->andWhere('user_id='.$user_info->id);
|
|
}
|
|
}
|
|
|
|
if($insurer_no != '') {
|
|
$query = $query->andWhere('(insurer1_no="'.$insurer_no.'" or insurer2_no="'.$insurer_no.'")');
|
|
}
|
|
if($status == 2) {
|
|
$query = $query->andWhere('order_caiwu_t.status_id=10');
|
|
} else if($status == 1) {
|
|
$query = $query->andWhere('order_caiwu_t.status_id=13');
|
|
} else {
|
|
$query = $query->andWhere('order_caiwu_t.status_id=13 or order_caiwu_t.status_id=10 ');
|
|
}
|
|
//转账状态
|
|
if($caiwu_status_id > 0){
|
|
switch($caiwu_status_id){
|
|
case 1:
|
|
$query = $query->andWhere('order_caiwu_t.caiwu_status_id=1');
|
|
break;
|
|
case 2:
|
|
$query = $query->andWhere('order_caiwu_t.caiwu_status_id=2');
|
|
break;
|
|
case 3:
|
|
$query = $query->andWhere('order_caiwu_t.caiwu_status_id=3');
|
|
break;
|
|
case 4:
|
|
$query = $query->andWhere('order_caiwu_t.caiwu_status_id=4');
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
//找出$group_id 有多少在职的user_ids
|
|
// 现在的搜索条件
|
|
$userSql = '';
|
|
$user_items = $this->my->getChildren($userSql);
|
|
if($this->my->username == '6002')
|
|
$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;
|
|
if ($group_id > 0) {
|
|
if (!in_array($user_info->group_id, $group_ids)) {
|
|
continue;
|
|
}
|
|
}
|
|
|
|
$row[] = $user_info->id;
|
|
|
|
}
|
|
|
|
//加上级别筛选
|
|
if($group_id > 0){
|
|
$query = $query->andWhere(['in','order_t.user_id',$row]);
|
|
}
|
|
$query = $query->orderBy('order_caiwu_t.created_at ASC');
|
|
$total = $query->count();
|
|
|
|
$total1_dis = $query->sum('total1_dis');
|
|
|
|
$pagination = new Pagination(['totalCount' => $total,'pageSize'=>20]);
|
|
$pagination->setPage($page-1);
|
|
|
|
$query = $query->offset($pagination->offset)->limit($pagination->limit);
|
|
$items = $query->all();
|
|
// echo $query->createCommand()->rawSql;
|
|
|
|
//die;
|
|
|
|
$page_info = MyLib::getPageInfo($pagination);
|
|
|
|
return $this->render('financial-settlement-list',[
|
|
'items' => $items,
|
|
'car_man' => $car_man,
|
|
'username' => $username,
|
|
'phone' => $phone,
|
|
'car_no' => $car_no,
|
|
'page' => $page,
|
|
'page_info' => $page_info,
|
|
'insurer_no' => $insurer_no,
|
|
'status' => $status,
|
|
'caiwu_status_id' => $caiwu_status_id,
|
|
'begin_date' => $begin_date,
|
|
'end_date' => $end_date,
|
|
'tbegin_date' => $tbegin_date,
|
|
'tend_date' => $tend_date,
|
|
'group_id' => $group_id,
|
|
'group_items' => $group_items,
|
|
'total1_dis' => $total1_dis
|
|
]);
|
|
}
|
|
/**
|
|
* 财务办结-详情
|
|
* @return string
|
|
*/
|
|
public function actionFinancialSettlementDetail()
|
|
{
|
|
$request = Yii::$app->request;
|
|
$id = $request->get('id',0);
|
|
$back_params = $request->get('back_params');
|
|
$order_info = OrderT::findOne(['id'=>$id]);
|
|
$car_info = $order_info->car;
|
|
$caiwu_info = $order_info->caiwu;
|
|
|
|
if($caiwu_info->lock_id == 0) {
|
|
if( $caiwu_info->status_id != 10) {
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info->lock_id = $this->my->id;
|
|
$caiwu_info->save();
|
|
|
|
$order_user_info = new OrderUserT();
|
|
$order_user_info->user_id = $this->my->id;
|
|
$order_user_info->order_id = $caiwu_info->order_id;
|
|
$order_user_info->type_id = $caiwu_info->status_id;
|
|
$order_user_info->status = 0;
|
|
$order_user_info->save();
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
}
|
|
} else {
|
|
if($caiwu_info->lock_id != $this->my->id && $this->my->username != 'admin') {
|
|
echo '该记录已经被别人锁定,【<a href="/insurer/financial-settlement-list?'.$back_params.'">返回</a>】';
|
|
exit;
|
|
}
|
|
}
|
|
//快递
|
|
$ems_items = EmsT::find()
|
|
->where(['car_id'=>$car_info->id,'order_id'=>$order_info->id])
|
|
->orderBy('id ASC')
|
|
->all();
|
|
//礼品
|
|
$gift_group_items = [];
|
|
$sel_gifts = [];
|
|
|
|
$gift_group_items = GiftGroupT::find()
|
|
->where('is_free=0')
|
|
->all();
|
|
$gift_free_group_items = GiftGroupT::find()
|
|
->where('is_free=1')
|
|
->all();
|
|
//获取礼品数据
|
|
$sel_gifts = array();
|
|
$tmp_items = OrderGiftT::find()
|
|
->where('order_id='.$order_info->id)
|
|
->all();
|
|
foreach($tmp_items as $item) {
|
|
$sel_gifts[$item->group_id] = $item;
|
|
}
|
|
|
|
$insurer_type_items = InsurerTypeT::find()
|
|
->all();
|
|
$new_array = [];
|
|
|
|
foreach($insurer_type_items as $k => $v){
|
|
|
|
$order_id = $order_info->id;
|
|
if(!$order_id)
|
|
$order_id = 0;
|
|
$tmp_row = PriceT::find()
|
|
->where('order_id='.$order_id.' and type_id='.$v->id)
|
|
->one();
|
|
if($tmp_row->val != '' && $tmp_row->val != '0' && $tmp_row->val != '否' && $tmp_row->val != '无'){
|
|
$new_array[$k]['zl'] = $v->name.'('.$v->code.')';
|
|
$new_array[$k]['neir'] = $tmp_row->val;
|
|
$new_array[$k]['bjmp'] = $tmp_row->is_nopay==1?'是':'';
|
|
}
|
|
}
|
|
|
|
//银行列表
|
|
$banks = BankT::find()->all();
|
|
|
|
//转账信息
|
|
$caiwu_status = CaiwuStatusT::find()->all();
|
|
|
|
return $this->render('financial-settlement-detail',[
|
|
'car_info' => $car_info,
|
|
'new_array' => $new_array,
|
|
'insurer_type_items' => $insurer_type_items,
|
|
'order_info' => $order_info,
|
|
'caiwu_info' => $caiwu_info,
|
|
'ems_items' => $ems_items,
|
|
'gift_group_items' => $gift_group_items,
|
|
'gift_free_group_items' => $gift_free_group_items,
|
|
'sel_gifts' => $sel_gifts,
|
|
'back_params' => $back_params,
|
|
'banks' => $banks,
|
|
'caiwu_status' => $caiwu_status
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* 财务保存
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionFinancialSettlementSave()
|
|
{
|
|
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);
|
|
$status_id = $request->post('status_id',0);
|
|
$money_man = $request->post('money_man');
|
|
$money_no = $request->post('money_no');
|
|
$money_bank = $request->post('money_bank');
|
|
$transfer_date = $request->post('transfer_date');
|
|
$transfer_money = $request->post('transfer_money');
|
|
$transfer_bank_id = $request->post('transfer_bank_id');
|
|
$transfer_bank_no = $request->post('transfer_bank_no');
|
|
$budian_rate = $request->post('budian_rate');
|
|
$budian_money = $request->post('budian_money');
|
|
$business_back_money = $request->post('business_back_money');
|
|
$business_back_rate = $request->post('business_back_rate');
|
|
$business_back_routine = $request->post('business_back_routine');
|
|
$business_back_date = $request->post('business_back_date');
|
|
$force_back_money = $request->post('force_back_money');
|
|
$force_back_rate = $request->post('force_back_rate');
|
|
$force_back_routine = $request->post('force_back_routine');
|
|
$force_back_date = $request->post('force_back_date');
|
|
$caiwu_no = $request->post('caiwu_no');
|
|
$rate1 = $request->post('rate1');
|
|
$money1 = $request->post('money1');
|
|
$rate2 = $request->post('rate2');
|
|
$money2 = $request->post('money2');
|
|
$rate3 = $request->post('rate3');
|
|
$money3 = $request->post('money3');
|
|
$rate4 = $request->post('rate4');
|
|
$money4 = $request->post('money4');
|
|
$rate5 = $request->post('rate5');
|
|
$money5 = $request->post('money5');
|
|
$send_rate = $request->post('send_rate');
|
|
$send_money = $request->post('send_money');
|
|
$caiwu_status_id = $request->post('caiwu_status_id');
|
|
$gift_ids = $request->post('gift_ids',array());
|
|
$gift_prices = $request->post('gift_prices',array());
|
|
$gift_rates = $request->post('gift_rates',array());
|
|
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$caiwu_info = OrderCaiwuT::findOne(['order_id'=>$order_id]);
|
|
if(empty($caiwu_info)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$caiwu_info->money_man = $money_man;
|
|
$caiwu_info->money_no = $money_no;
|
|
$caiwu_info->money_bank = $money_bank;
|
|
$caiwu_info->transfer_date = $transfer_date;
|
|
$caiwu_info->transfer_date = $transfer_date;
|
|
$caiwu_info->transfer_money = $transfer_money;
|
|
$caiwu_info->transfer_bank_id = $transfer_bank_id;
|
|
$caiwu_info->transfer_bank_no = $transfer_bank_no;
|
|
$caiwu_info->budian_rate = $budian_rate;
|
|
$caiwu_info->budian_money = $budian_money;
|
|
$caiwu_info->business_back_money = $business_back_money;
|
|
$caiwu_info->business_back_rate = $business_back_rate;
|
|
$caiwu_info->business_back_routine = $business_back_routine;
|
|
$caiwu_info->business_back_date = $business_back_date;
|
|
$caiwu_info->force_back_money = $force_back_money;
|
|
$caiwu_info->force_back_rate = $force_back_rate;
|
|
$caiwu_info->force_back_routine = $force_back_routine;
|
|
$caiwu_info->force_back_date = $force_back_date;
|
|
$caiwu_info->caiwu_no = $caiwu_no;
|
|
$old_status_id = $caiwu_info->status_id;
|
|
if($status_id != $old_status_id) {
|
|
if($caiwu_info->caiwu_status_id != $caiwu_status_id) {
|
|
$result['success'] = false;
|
|
$result['msg'] = '请先保存成功后,再点提交按钮!';
|
|
return $result;
|
|
}
|
|
}
|
|
$caiwu_info->caiwu_status_id = $caiwu_status_id;
|
|
|
|
$caiwu_info->rate1 = $rate1;
|
|
$caiwu_info->money1 = $money1;
|
|
$caiwu_info->rate2 = $rate2;
|
|
$caiwu_info->money2 = $money2;
|
|
$caiwu_info->rate3 = $rate3;
|
|
$caiwu_info->money3 = $money3;
|
|
$caiwu_info->rate4 = $rate4;
|
|
$caiwu_info->money4 = $money4;
|
|
$caiwu_info->rate5 = $rate5;
|
|
$caiwu_info->money5 = $money5;
|
|
$caiwu_info->send_rate = $send_rate;
|
|
$caiwu_info->send_money = $send_money;
|
|
// $caiwu_info->send_price = $send_price;
|
|
|
|
$old_status_id = $caiwu_info->status_id;
|
|
$caiwu_info->status_id = $status_id;
|
|
$caiwu_info->save();
|
|
// echo $caiwu_info->lock_id."\r\n";
|
|
// echo $status_id;
|
|
// exit;
|
|
|
|
//保存礼品价格
|
|
foreach($gift_ids as $index => $id) {
|
|
$rate = $gift_rates[$index];
|
|
$price = $gift_prices[$index];
|
|
$order_gift = OrderGiftT::findOne(['id'=>$id]);
|
|
if($order_gift) {
|
|
$order_gift->rate = $rate;
|
|
$order_gift->price = $price;
|
|
$order_gift->save();
|
|
}
|
|
}
|
|
|
|
if($status_id == 10) {
|
|
//处理新保、跟踪、续保提成
|
|
$order_info = $caiwu_info->order;
|
|
$car_info = $order_info->car;
|
|
//删除相当记录
|
|
PayOrderUserT::deleteAll('order_id='.$order_info->id);
|
|
|
|
|
|
// echo $op_user1_id;
|
|
// die;
|
|
//截取日期来进行判断
|
|
$year= (int)substr($caiwu_info->pay_date,0,4);
|
|
|
|
if($year>=2018){
|
|
if($order_info->op1){
|
|
$op11= substr($order_info->op1->getShowName(),0,strpos($order_info->op1->getShowName(),'('));
|
|
$op1_user = UserT::findOne(['username'=>$op11,'is_delete'=>0]);
|
|
if($op1_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $op1_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 5;
|
|
$pay_order_user->is_own = 0;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
}
|
|
|
|
if($order_info->op2){
|
|
$op22= substr($order_info->op2->getShowName(),0,strpos($order_info->op2->getShowName(),'('));
|
|
$op2_user = UserT::findOne(['username'=>$op22,'is_delete'=>0]);
|
|
if($op2_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $op2_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 6;
|
|
$pay_order_user->is_own = 0;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$op_user1_id = substr($car_info->op_user1,0,strpos($car_info->op_user1,'('));
|
|
$pay1_user = UserT::findOne(['username'=>$op_user1_id,'is_delete'=>0]);
|
|
if($pay1_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $pay1_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 1;
|
|
$pay_order_user->is_own = $car_info->op_user3 != '' ? 0:1;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
$op_user2_id = substr($car_info->op_user2,0,strpos($car_info->op_user2,'('));
|
|
$pay2_user = UserT::findOne(['username'=>$op_user2_id,'is_delete'=>0]);
|
|
if($pay2_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $pay2_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 2;
|
|
$pay_order_user->is_own = 0;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
$op_user3_id = substr($car_info->op_user3,0,strpos($car_info->op_user3,'('));
|
|
$pay3_user = UserT::findOne(['username'=>$op_user3_id,'is_delete'=>0]);
|
|
if($pay3_user) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $pay3_user->id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 3;
|
|
$pay_order_user->is_own = 1;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay();
|
|
$pay_info = PayT::findOne(['user_id'=>$pay_order_user->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
$send_info = $order_info->sendLog;
|
|
if($send_info) {
|
|
$pay_order_user = new PayOrderUserT();
|
|
$pay_order_user->user_id = $send_info->user_id;
|
|
$pay_order_user->order_id = $order_info->id;
|
|
$pay_order_user->type = 4;
|
|
$pay_order_user->is_own = 0;
|
|
$pay_order_user->pay_date = $caiwu_info->pay_date;
|
|
$pay_order_user->save();
|
|
$pay_order_user->calPay();
|
|
$pay_info = PayT::findOne(['user_id'=>$send_info->user_id,'pay_date'=>$pay_order_user->pay_date]);
|
|
if($pay_info) {
|
|
$pay_info->calPay();
|
|
}
|
|
}
|
|
|
|
$caiwu_info->lock_id = 0;
|
|
$caiwu_info->save();
|
|
|
|
// $this->addLog($caiwu_info->order->car_id,'财务办结完成,财务流程结束',1);
|
|
if($year>=2018){
|
|
$this->addLog($caiwu_info->order->car_id,'财务办结完成,财务流程结束',1);
|
|
}else{
|
|
$this->addLog1($caiwu_info->order->car_id,'财务办结完成,财务流程结束',1);
|
|
// die;
|
|
|
|
}
|
|
|
|
//处理操作人员状态
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$caiwu_info->order_id,'user_id'=>$this->my->id,'type_id'=>$old_status_id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 1; //操作结束
|
|
$order_user_info->save();
|
|
}
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Throwable $e) {
|
|
$tran->rollBack();
|
|
file_put_contents('log2.txt',$e->getMessage());
|
|
throw $e;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
/**
|
|
* 财务退回操作
|
|
* @return array
|
|
* @throws \Exception
|
|
*/
|
|
public function actionFinanceReturnOp()
|
|
{
|
|
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');
|
|
|
|
$tran = OrderCaiwuT::getDb()->beginTransaction();
|
|
try {
|
|
$row = OrderCaiwuT::findOne(['order_id'=>$order_id]);
|
|
if(empty($row)) {
|
|
$result['msg'] = '保单错误!';
|
|
return $result;
|
|
}
|
|
|
|
$row->status_id = 12;
|
|
$row->lock_id = 0;
|
|
$row->save();
|
|
|
|
//处理操作人员状态
|
|
$order_user_info = OrderUserT::findOne(['order_id'=>$order_id,'user_id'=>$this->my->id,'status'=>0]);
|
|
if($order_user_info) {
|
|
$order_user_info->status = 2; //退回
|
|
$order_user_info->save();
|
|
}
|
|
|
|
$this->addLog($row->order->car_id,'退回出纳处理原因:'.$return_remark,1);
|
|
|
|
$tran->commit();
|
|
|
|
} catch(\Exception $e) {
|
|
$tran->rollBack();
|
|
throw $e;
|
|
}
|
|
|
|
$result['success'] = true;
|
|
$result['msg'] = '退回成功';
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionTuidanSave(){
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '保存失败';
|
|
|
|
if($request->isPost){
|
|
$id = $request->post('id',0);
|
|
$order_info = OrderT::findOne($id);
|
|
$order_info->status_id=5;
|
|
$re=$order_info->save();
|
|
$odc=OrderCaiwuT::find()->where('order_id='.$id)->one();
|
|
$res=$odc->delete();
|
|
$this->addLog($order_info->car_id,'退单成功',1);
|
|
if($re && $res){
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionUnlocked()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '解锁失败';
|
|
|
|
if($request->isPost){
|
|
|
|
$order_info = OrderCaiwuT::findOne(['order_id'=>$request->post('id')]);
|
|
$order_info->lock_id=0;
|
|
if($order_info->save()){
|
|
$result['success'] = true;
|
|
$result['msg'] = '解锁成功';
|
|
}
|
|
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionNonUnlocked()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '解锁失败';
|
|
|
|
if($request->isPost){
|
|
|
|
$order_info = OrderCaiwuT1::findOne(['order_id'=>$request->post('id')]);
|
|
$order_info->lock_id=0;
|
|
if($order_info->save()){
|
|
$result['success'] = true;
|
|
$result['msg'] = '解锁成功';
|
|
}
|
|
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionPdfSave(){
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '保存失败';
|
|
|
|
if($request->isPost){
|
|
$id = $request->post('order_id',0);
|
|
//上传商业和交强文件
|
|
$urlfile= $request->post('urlfile');
|
|
$urlfile1= $request->post('urlfile1');
|
|
|
|
if(substr($urlfile,-3)!='pdf' && substr($urlfile1,-3)!='pdf'){
|
|
$result['msg'] = '请上传正确的商业或交强pdf文件';
|
|
return $result;
|
|
}
|
|
$urlfile= trim($urlfile);
|
|
$urlfile1= trim($urlfile1);
|
|
$order_info = OrderT::findOne($id);
|
|
$order_info->shangye_src = $urlfile;
|
|
$order_info->jiaoqiang_src = $urlfile1;
|
|
$order_info->upload_status = 2;
|
|
$re=$order_info->save();
|
|
$this->addLog($order_info->car_id,'正本保单上传',1);
|
|
if($re){
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionGiftUnSave()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '取消失败';
|
|
|
|
if ($request->isPost) {
|
|
$id = $request->post('order_id', 0);
|
|
|
|
$order_info = OrderT::findOne($id);
|
|
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
$order_info->gift_status = 0;
|
|
if(!$order_info->save()) {
|
|
throw new \Exception(print_r($order_info->getErrors(), true));
|
|
}
|
|
$result['success'] = true;
|
|
$result['msg'] = '取消成功';
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
$tran->rollBack();
|
|
$result['msg'] = $e->getMessage();
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
public function actionGiftSave()
|
|
{
|
|
Yii::$app->response->format = Response::FORMAT_JSON;
|
|
|
|
$request = Yii::$app->request;
|
|
$result = array();
|
|
$result['success'] = false;
|
|
$result['msg'] = '保存失败';
|
|
|
|
if ($request->isPost) {
|
|
$id = $request->post('order_id', 0);
|
|
$gift_ids = $request->post('gift_ids', []);
|
|
$quan_ids = $request->post('quan_ids', []);
|
|
|
|
$order_info = OrderT::findOne($id);
|
|
if ($order_info->gift_status > 0) {
|
|
$result['msg'] = '礼品不能修改';
|
|
return $result;
|
|
}
|
|
|
|
if (!isset($order_info->print_date)) {
|
|
$result['msg'] = '正本还没有生成,不能确认礼品';
|
|
return $result;
|
|
}
|
|
$gift_counts = [];
|
|
$tran = OrderT::getDb()->beginTransaction();
|
|
try {
|
|
// OrderGiftT::deleteAll('order_id=' . $order_info->id . ' and gift_src is null');
|
|
OrderGiftT::deleteAll('order_id=' . $order_info->id);
|
|
//礼品
|
|
foreach($gift_ids as $gift_str) {
|
|
$tmp = explode('-', $gift_str);
|
|
$zhongjigift_item = ZhongjiGiftT::findOne(['id'=>$tmp[0]]);
|
|
$gift_id = $tmp[1];
|
|
$gift_item = GiftT::findOne(['id'=>$gift_id]);
|
|
$order_gift_id = 0;
|
|
if($zhongjigift_item && $gift_item) {
|
|
$row = new OrderGiftT();
|
|
$row->order_id = $order_info->id;
|
|
$row->group_id = 0;
|
|
$row->gift_id = $gift_id;
|
|
$row->is_free = $zhongjigift_item->free_type;
|
|
$row->gift_type = $zhongjigift_item->gift_type;
|
|
$row->send_id = 0;
|
|
$row->send_time = 0;
|
|
$row->price = $gift_item->price;
|
|
$row->status = 0;
|
|
if (!$row->save()) {
|
|
throw new \Exception(print_r($row->getErrors(), true));
|
|
}
|
|
$order_gift_id = $row->id;
|
|
if(!isset($gift_counts[$zhongjigift_item->id])) {
|
|
$gift_counts[$zhongjigift_item->id] = 1;
|
|
} else {
|
|
$gift_counts[$zhongjigift_item->id] += 1;
|
|
}
|
|
if($gift_counts[$zhongjigift_item->id] > $zhongjigift_item->n) {
|
|
$result['msg'] = '礼品数量超限,请重新选择';
|
|
return $result;
|
|
}
|
|
}
|
|
//生成礼品图片
|
|
if($gift_item) {
|
|
$this->getGift(0, $gift_id, $order_info->car_no, $order_info, $order_gift_id);
|
|
}
|
|
}
|
|
//礼券
|
|
foreach($quan_ids as $gift_str) {
|
|
$tmp = explode('-', $gift_str);
|
|
$zhongjigift_item = ZhongjiGiftT::findOne(['id'=>$tmp[0]]);
|
|
$gift_id = $tmp[1];
|
|
$gift_item = GiftT::findOne(['id'=>$gift_id]);
|
|
$order_gift_id = 0;
|
|
if($zhongjigift_item && $gift_item) {
|
|
$row = new OrderGiftT();
|
|
$row->order_id = $order_info->id;
|
|
$row->group_id = 0;
|
|
$row->gift_id = $gift_id;
|
|
$row->is_free = $zhongjigift_item->free_type;
|
|
$row->gift_type = $zhongjigift_item->gift_type;
|
|
$row->send_id = 0;
|
|
$row->send_time = 0;
|
|
$row->price = $gift_item->price;
|
|
$row->status = 0;
|
|
if (!$row->save()) {
|
|
throw new \Exception(print_r($row->getErrors(), true));
|
|
}
|
|
$order_gift_id = $row->id;
|
|
if(!isset($gift_counts[$zhongjigift_item->id])) {
|
|
$gift_counts[$zhongjigift_item->id] = 1;
|
|
} else {
|
|
$gift_counts[$zhongjigift_item->id] += 1;
|
|
}
|
|
if($gift_counts[$zhongjigift_item->id] > $zhongjigift_item->n) {
|
|
$result['msg'] = '礼券数量超限,请重新选择';
|
|
return $result;
|
|
}
|
|
}
|
|
//生成礼券图片
|
|
if($gift_item) {
|
|
$this->getGift(0, $gift_id, $order_info->car_no, $order_info, $order_gift_id);
|
|
}
|
|
}
|
|
$order_info->gift_status = 1;
|
|
if(!$order_info->save()) {
|
|
throw new \Exception(print_r($order_info->getErrors(), true));
|
|
}
|
|
$result['success'] = true;
|
|
$result['msg'] = '保存成功';
|
|
|
|
$tran->commit();
|
|
} catch (\Exception $e) {
|
|
var_dump($e->getTrace());
|
|
$tran->rollBack();
|
|
$result['msg'] = $e->getMessage();
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
public function getGift($k, $v, $car_no, $order_info, $order_gift_id)
|
|
{
|
|
$result = array();
|
|
$result['tishi'] = true;
|
|
$result['teshu'] = false;
|
|
$gift_info = GiftT::findOne(['id' => $v]);
|
|
if($order_gift_id == 0) {
|
|
return;
|
|
}
|
|
$bianhao = '';
|
|
$endDate = '';
|
|
//礼券
|
|
if ($gift_info && $gift_info->type_id == 2) {
|
|
$pinyin_arr = explode(' ', $gift_info->pinyin_name);
|
|
// dd($pinyin_arr);
|
|
$liquan_str = 'ch';
|
|
//获取礼券拼音首字母
|
|
foreach ($pinyin_arr as $first) {
|
|
$liquan_str .= substr($first, 0, 1);
|
|
}
|
|
$liquan_str = strtolower($liquan_str);
|
|
//获取提单日期
|
|
$liquan_str .= date('Ymd', strtotime($order_info->print_date));
|
|
|
|
//获取该礼券下的最后一条记录
|
|
$gift_use = GiftTicketTUse::find()->where(['type_id' => $v, 'status' => 1])->orderBy('created_at desc')->one();
|
|
|
|
//礼券的使用
|
|
$new_gift_use = new GiftTicketTUse();
|
|
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->op_id = $this->my->id;
|
|
$new_gift_use->type_id = $v; //礼券ID
|
|
$new_gift_use->input_date = date('Y-m-d H:i:s');
|
|
$new_gift_use->car_no = $car_no;
|
|
$new_gift_use->order_id = $order_info->id;
|
|
$new_gift_use->status = 1;
|
|
$new_gift_use->end_date = $order_info->insurer1_end_date;
|
|
|
|
if(!$new_gift_use->save()) {
|
|
throw new \Exception(print_r($new_gift_use->getErrors(), true));
|
|
}
|
|
|
|
//表头
|
|
$bianhao = strtoupper($liquan_str); //转换成大写编号
|
|
$endDate = '有效期' . $order_info->insurer1_end_date;
|
|
}
|
|
//礼品的使用
|
|
if ($gift_info && $gift_info->type_id == 1) {
|
|
$shiwu_use = GiftTicketTUse::find()->where(['type_id' => $v, 'status' => 1])->orderBy('created_at desc')->one();
|
|
|
|
$new_shiwu = new GiftTicketTUse();
|
|
|
|
if ($shiwu_use) {
|
|
$new_shiwu->gift_shuzi = $shiwu_use->gift_shuzi + 1;
|
|
$new_shiwu->code = sprintf("%04d", $gift_use->gift_shuzi + 1);
|
|
} else {
|
|
$new_shiwu->gift_shuzi = 1;
|
|
$new_shiwu->code = sprintf("%04d", 1);
|
|
}
|
|
$new_shiwu->op_id = $this->my->id;
|
|
$new_shiwu->type_id = $v;
|
|
$new_shiwu->input_date = date('Y-m-d H:i:s');
|
|
$new_shiwu->car_no = $car_no;
|
|
$new_shiwu->status = 1;
|
|
$new_shiwu->order_id = $order_info->id;
|
|
$new_shiwu->end_date = $order_info->insurer1_end_date;
|
|
if(!$new_shiwu->save()) {
|
|
throw new \Exception(print_r($new_shiwu->getErrors(), true));
|
|
}
|
|
//表头
|
|
$bianhao = '';
|
|
$endDate = '';
|
|
}
|
|
|
|
$gift_name = $gift_info->name;
|
|
|
|
//生成png文件
|
|
$gift_src = '';
|
|
$panduan = (object)array();
|
|
$datetime = date('YmdHis');
|
|
$name = md5(rand(100, 200));
|
|
$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)
|
|
->save(Yii::getAlias($imgstr),
|
|
['quality' => 100]);//生成缩略图的质量
|
|
//图片打水印
|
|
\yii\imagine\Image::text('@frontend/web/images/gift.png', $bianhao, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [15, 15], ['color' => '000000', 'size' => 12])
|
|
->save(Yii::getAlias($imgstr));
|
|
\yii\imagine\Image::text($imgstr, $gift_name, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [20, 50], ['color' => '000000', 'size' => 20])
|
|
->save(Yii::getAlias($imgstr));
|
|
|
|
\yii\imagine\Image::text($imgstr, $car_no, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [20, 120], ['color' => '000000', 'size' => 20])
|
|
->save(Yii::getAlias($imgstr));
|
|
|
|
$panduan = \yii\imagine\Image::text($imgstr, $endDate, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [20, 200], ['color' => '000000', 'size' => 20])
|
|
->save(Yii::getAlias($imgstr));
|
|
|
|
} elseif ($gift_info && $gift_info->type_id == 2) {
|
|
$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])
|
|
->save(Yii::getAlias($imgstr));
|
|
|
|
\yii\imagine\Image::text($imgstr, $car_no, Yii::getAlias('@frontend/web/fonts/msyh.ttc'), [900, 400], ['color' => 'ffffff', '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])
|
|
->save(Yii::getAlias($imgstr));
|
|
}
|
|
|
|
$gift_src = str_replace('@frontend/web', '', $imgstr);
|
|
//保存order_gift_t表里png文件地址
|
|
|
|
$order_gift_info = OrderGiftT::findOne(['id' => $order_gift_id]);
|
|
$order_gift_info->gift_src = $gift_src;
|
|
if(!$order_gift_info->save()) {
|
|
throw new \Exception(print_r($order_gift_info->getErrors(), true));
|
|
}
|
|
}
|
|
|
|
}
|
|
|