add-api-edit-order
This commit is contained in:
@@ -408,7 +408,8 @@ class Orders extends HD_Controller
|
||||
$file = $_FILES['file'];
|
||||
$row = $this->order_loans_model->get(['o_id' => $oid]);
|
||||
if (!$row) {
|
||||
return $this->show_json(SYS_CODE_FAIL, '参数错误!');
|
||||
$this->order_loans_model->add(['o_id'=>$oid,'c_time'=>time()]);
|
||||
$row = $this->order_loans_model->get(['o_id' => $oid]);
|
||||
}
|
||||
$update = [];
|
||||
if ($file) { //上传按揭通知函
|
||||
|
||||
@@ -219,7 +219,20 @@
|
||||
</a><br>
|
||||
<span class="ml20">{{info.contract_data[3]['status_name']}}</span>
|
||||
</div>
|
||||
|
||||
<div class="am-form-group ml10" v-if="info.contract_data[4]">
|
||||
<a href="javascript:;" class="am-btn am-btn-default am-btn-sm"
|
||||
@click="show_imgs(info.contract_data[4]['type'])">
|
||||
整车销售合同补充协议
|
||||
</a><br>
|
||||
<span class="ml20">{{info.contract_data[4]['status_name']}}</span>
|
||||
</div>
|
||||
<div class="am-form-group ml10" v-if="info.contract_data[5]">
|
||||
<a href="javascript:;" class="am-btn am-btn-default am-btn-sm"
|
||||
@click="show_imgs(info.contract_data[5]['type'])">
|
||||
委托服务补充协议书
|
||||
</a><br>
|
||||
<span class="ml20">{{info.contract_data[5]['status_name']}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -23,10 +23,12 @@ class Contract extends Wxapp{
|
||||
$this->load->model('receiver/order/receiver_order_ckcars_model','ckcars_model');
|
||||
$this->load->model('receiver/order/receiver_order_bills_model','bills_model');
|
||||
$this->load->model('receiver/order/receiver_order_deliverys_model','deliverys_model');
|
||||
$this->load->model('receiver/order/receiver_order_oplogs_model');
|
||||
$this->load->model('receiver/receiver_service_package_model','package_model');
|
||||
|
||||
$this->load->model("biz/biz_model");
|
||||
$this->load->model("sys/sys_company_model");
|
||||
$this->load->library('receiver/orders_entity');
|
||||
}
|
||||
|
||||
protected function get(){
|
||||
@@ -41,7 +43,6 @@ class Contract extends Wxapp{
|
||||
}
|
||||
$contract = $this->contracts_model->get(['type'=>$type,'o_id'=>$id]);
|
||||
|
||||
$this->load->library('receiver/orders_entity');
|
||||
$this->load->library('pdf');
|
||||
|
||||
list($h5_url,$title) = $this->orders_entity->get_contract_h5($id,$type,1);
|
||||
@@ -81,11 +82,30 @@ class Contract extends Wxapp{
|
||||
$this->contracts_model->update($update,['id'=>$contract['id']]);
|
||||
}
|
||||
}
|
||||
|
||||
$next_path = ''; //下一步合同
|
||||
switch($type){
|
||||
case 0: //整车
|
||||
$next_path = '/pages/mine/signContract/daiLi?id='.$row['id'];
|
||||
break;
|
||||
case 1: //协议
|
||||
break;
|
||||
case 4://车辆买卖合同补充协议
|
||||
$opt_row = $this->receiver_order_oplogs_model->select(['order_id'=>$row['id'],'type'=>3],'id desc',1,1);//最后修改日志
|
||||
$opt_row = json_decode($opt_row[0]['log_json'],true);
|
||||
if($opt_row['pack_id']!=$row['pack_id']){
|
||||
//需要签服务补充协议
|
||||
$next_path = '/pages/mine/signContract/weiTuoBu?id='.$row['id'];
|
||||
}
|
||||
break;
|
||||
case 5://委托服务补充协议
|
||||
break;
|
||||
default:
|
||||
}
|
||||
$data = [
|
||||
'title' => $title,
|
||||
'url' => $h5_url,
|
||||
'img' => 'https://qs.haodian.cn/wechat_app/liche/mine/he-demo-2.jpg',
|
||||
'netx_path' => $next_path
|
||||
];
|
||||
return $data;
|
||||
}
|
||||
@@ -182,7 +202,6 @@ class Contract extends Wxapp{
|
||||
];
|
||||
$result = $this->contracts_model->update($update,['id'=>$row['id']]);
|
||||
if($result){
|
||||
$this->load->library('receiver/orders_entity');
|
||||
$this->orders_entity->sign_after_v2($id,$this->session);
|
||||
$redis->delete($cache_key);
|
||||
throw new Exception('签名成功', API_CODE_SUCCESS);
|
||||
@@ -209,7 +228,6 @@ class Contract extends Wxapp{
|
||||
if($result){
|
||||
$this->ckcars_model->update(['status'=>2],['o_id'=>$id]);
|
||||
//生成支付订单
|
||||
$this->load->library('receiver/orders_entity');
|
||||
$this->orders_entity->check_finish_v2($id,$this->session);
|
||||
$redis->delete($cache_key);
|
||||
throw new Exception('签名成功', API_CODE_SUCCESS);
|
||||
@@ -240,6 +258,57 @@ class Contract extends Wxapp{
|
||||
throw new Exception('签名失败', API_CODE_INVILD_PARAM);
|
||||
}
|
||||
break;
|
||||
case 4://车辆买卖合同补充协议
|
||||
$sign_img = array_pop($imgs);
|
||||
$height = $order['ifentrust'] ? 1470 : 1350;
|
||||
$res = $sign_entity->merge($sign_img,$img,1050,$height,350);
|
||||
if(!$res){
|
||||
throw new Exception('签名失败', API_CODE_INVILD_PARAM);
|
||||
}
|
||||
$imgs[] = http_host_com('api').'/'.$res;
|
||||
$imgs = $this->up_qiniu($imgs,$res);
|
||||
$update = [
|
||||
'imgs' => json_encode($imgs,JSON_UNESCAPED_UNICODE),
|
||||
'sign_time' => date('Y-m-d H:i:s'),
|
||||
'status' => 1
|
||||
];
|
||||
$result = $this->contracts_model->update($update,['id'=>$row['id']]);
|
||||
if($result){
|
||||
$redis->delete($cache_key);
|
||||
$opt_row = $this->receiver_order_oplogs_model->select(['order_id'=>$id,'type'=>3],'id desc',1,1);//最后修改日志
|
||||
$opt_row = json_decode($opt_row[0]['log_json'],true);
|
||||
if($opt_row['pack_id']==$order['pack_id']){
|
||||
//不需要签服务补充协议 完成重新补充协议签约
|
||||
$this->orders_entity->finish_sp($id);
|
||||
}
|
||||
throw new Exception('签名成功', API_CODE_SUCCESS);
|
||||
}else{
|
||||
throw new Exception('签名失败', API_CODE_INVILD_PARAM);
|
||||
}
|
||||
break;
|
||||
case 5://委托服务补充协议
|
||||
$sign_img = array_pop($imgs);
|
||||
$height = $order['ifentrust'] ? 1270 : 1150;
|
||||
$res = $sign_entity->merge($sign_img,$img,1050,$height,340);
|
||||
if(!$res){
|
||||
throw new Exception('签名失败', API_CODE_INVILD_PARAM);
|
||||
}
|
||||
$imgs[] = http_host_com('api').'/'.$res;
|
||||
$imgs = $this->up_qiniu($imgs,$res);
|
||||
$update = [
|
||||
'imgs' => json_encode($imgs,JSON_UNESCAPED_UNICODE),
|
||||
'sign_time' => date('Y-m-d H:i:s'),
|
||||
'status' => 1
|
||||
];
|
||||
$result = $this->contracts_model->update($update,['id'=>$row['id']]);
|
||||
if($result){
|
||||
$redis->delete($cache_key);
|
||||
$this->orders_entity->finish_sp($id);
|
||||
throw new Exception('签名成功', API_CODE_SUCCESS);
|
||||
}else{
|
||||
throw new Exception('签名失败', API_CODE_INVILD_PARAM);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
$redis->delete($cache_key);
|
||||
throw new Exception('未知签名类型', API_CODE_INVILD_PARAM);
|
||||
|
||||
@@ -146,9 +146,13 @@ class Order extends Wxapp{
|
||||
|
||||
$type_arr = $this->app_liche_orders_model->get_type_arr();
|
||||
foreach($rows as $key=>$val){
|
||||
$order = $this->receiver_orders_model->get(['id'=>$val['o_id']],'payway,price,brand_id,s_id,v_id,cor_id');
|
||||
$select_car = false;
|
||||
if($order['brand_id'] && $order['s_id'] && $order['cor_id']){
|
||||
$select_car = true;
|
||||
}
|
||||
$brand_name = $brands[$val['brand_id']] ? $brands[$val['brand_id']][0]['name'] : '';
|
||||
$serie_name = $series[$val['s_id']] ? $series[$val['s_id']][0]['name'] : '';
|
||||
$order = $this->receiver_orders_model->get(['id'=>$val['o_id']],'payway,price');
|
||||
$info['车辆级别'] = $attrs[$val['v_id']] ? $attrs[$val['v_id']][0]['title'] : '';
|
||||
$info['车身颜色'] = $attrs[$val['cor_id']] ? $attrs[$val['cor_id']][0]['title'] : '';
|
||||
$info['内饰颜色'] = $attrs[$val['incor_id']] ? $attrs[$val['incor_id']][0]['title'] : '';
|
||||
@@ -194,8 +198,9 @@ class Order extends Wxapp{
|
||||
'price' => $order['price'],
|
||||
'sid' => $val['sid'],
|
||||
'payway' => $order['payway'],
|
||||
'type' => $select_car,
|
||||
'info' => $info,
|
||||
'sub_order' => $sub_order
|
||||
'sub_order' => $sub_order,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,6 +197,7 @@ class User extends Wxapp{
|
||||
$this->load->model('receiver/order/receiver_order_loans_model');
|
||||
$this->load->model('receiver/order/receiver_order_ckcars_model');
|
||||
$this->load->model('receiver/order/receiver_order_deliverys_model');
|
||||
$this->load->model('receiver/order/receiver_order_oplogs_model');
|
||||
$row = $this->orders_model->get_step($mobile);
|
||||
$progressOpt = $progress = [];
|
||||
if($row){
|
||||
@@ -266,12 +267,17 @@ class User extends Wxapp{
|
||||
$sign_row = $this->receiver_order_signs_model->get(['o_id'=>$row['id']],'status');
|
||||
$ckcar_row = $this->receiver_order_ckcars_model->get(['o_id'=>$row['id']],'status');
|
||||
$delivery_row = $this->receiver_order_deliverys_model->get(['o_id'=>$row['id']],'status');
|
||||
$sign_count = $this->receiver_order_contracts_model->count(['o_id'=>$row['id'],'type in (0,1,4,5)','status'=>1]);
|
||||
$car_count = $this->receiver_order_contracts_model->count(['o_id'=>$row['id'],'type' => 4,'status'=>1]); //合同补充协议
|
||||
$agent_count = $this->receiver_order_contracts_model->count(['o_id'=>$row['id'],'type' => 5,'status'=>1]); //服务补充协议
|
||||
$opt_row = $this->receiver_order_oplogs_model->select(['order_id'=>$row['id'],'type'=>3],'id desc',1,1);//最后修改日志
|
||||
$opt_row = json_decode($opt_row[0]['log_json'],true);
|
||||
$this->load->library('receiver/orders_entity');
|
||||
foreach($progress_arr as $key=>$val){
|
||||
$imgs = [];
|
||||
if($row['status']>$val['key']){
|
||||
if($val['key']==0 && $val['id']==1){
|
||||
$imgs = $this->orders_entity->get_sign_imgs($row['id'],[0,1]);
|
||||
$imgs = $this->orders_entity->get_sign_imgs($row['id'],[0,1,4,5]);
|
||||
}
|
||||
if($val['key']==2 && $val['id']==5){
|
||||
$imgs = $this->orders_entity->get_sign_imgs($row['id'],[2]);
|
||||
@@ -282,8 +288,20 @@ class User extends Wxapp{
|
||||
case 0:
|
||||
$state = 0;
|
||||
if(!$sign_row['status']){//未签名
|
||||
$count = $this->receiver_order_contracts_model->count(['o_id'=>$row['id'],'type in (0,1)','status'=>1]);
|
||||
if($count>0){
|
||||
if($sign_count>=2){ //需要签补充协议
|
||||
$diff_key_arr = ['s_id','v_id','cor_id','incor_id','pack_id']; //修改其中一项需要签补充协议
|
||||
if($opt_row['s_id']!=$row['s_id'] || $opt_row['v_id']!=$row['v_id'] || $opt_row['cor_id']!=$row['cor_id'] || $opt_row['incor_id']!=$row['incor_id'] || $opt_row['payway']!=$row['payway']){
|
||||
$need_resign_car = true; //需要签合同补充协议
|
||||
}
|
||||
if($opt_row['pack_id']!=$row['pack_id']){
|
||||
$need_resign_agent = true; //需要签服务补充协议
|
||||
}
|
||||
if($need_resign_car && !$car_count){
|
||||
$url = '/pages/mine/signContract/maiMaiBu?id='.$row['id'];
|
||||
}elseif($need_resign_agent && !$agent_count){
|
||||
$url = '/pages/mine/signContract/weiTuoBu?id='.$row['id'];
|
||||
}
|
||||
}elseif($sign_count==1){
|
||||
$url = '/pages/mine/signContract/daiLi?id='.$row['id'];
|
||||
}else{
|
||||
$url = '/pages/mine/signContract/zhengChe?id='.$row['id'];
|
||||
|
||||
@@ -70,6 +70,7 @@ class Cusorder extends Wxapp{
|
||||
$ifentrust = $this->input_param('ifentrust');
|
||||
$entrust_name = $this->input_param('entrust_name');
|
||||
$entrust_idcard = $this->input_param('entrust_idcard');
|
||||
$entrust_idcard = $this->input_param('entrust_idcard');
|
||||
$name = $this->input_param('name');
|
||||
$mobile = $this->input_param('mobile');
|
||||
$address = $this->input_param('address');
|
||||
@@ -183,10 +184,7 @@ class Cusorder extends Wxapp{
|
||||
if($series_row['brand_id']==3){ //狸车品牌写死挂牌费用0.01 测试用
|
||||
$money_json['fee_carno'] = 0.01;
|
||||
}else{
|
||||
$biz = $this->biz_model->get(['id'=>$row['biz_id']],'company_id,city_id');
|
||||
if($series_row['brand_id']==4){ //哪吒品牌 公司固定厦门狸车销售公司
|
||||
$biz['company_id'] = 1;
|
||||
}
|
||||
$biz = $this->biz_model->get(['id'=>$row['biz_id']],'city_id');
|
||||
$city = $this->sys_city_model->get(['city_id'=>$biz['city_id']],'fee_carno');
|
||||
$money_json['fee_carno'] = $city['fee_carno'];
|
||||
}
|
||||
@@ -396,10 +394,14 @@ class Cusorder extends Wxapp{
|
||||
//是否存在意向金订单
|
||||
$inten_row = $this->app_liche_orders_model->get(['o_id'=>$row['id'],'type'=>4,'status>='=>0]);
|
||||
$pay_status = 0;
|
||||
$inten_money = 0;
|
||||
$pay_img = 'https://img.liche.cn/liche/1634022931.png';
|
||||
if($inten_row && $inten_row['status']==0){
|
||||
$pay_status = 1;
|
||||
}
|
||||
if($inten_row['status']==1){//已支付意向金
|
||||
$inten_money = floatval($inten_row['total_price']);
|
||||
}
|
||||
//开票信息
|
||||
$bill_status = 0;
|
||||
$bill_data = [];
|
||||
@@ -428,7 +430,7 @@ class Cusorder extends Wxapp{
|
||||
'name' => $row['name'],
|
||||
'mobile' => mobile_asterisk($row['mobile']),
|
||||
'admin_img' => 'https://img.liche.cn/liche/2021/08/7725fc9ab0dc0ba1/f3c84cf3b805bac4.png',
|
||||
'payway' => $row['payway'],
|
||||
'payway' => $row['brand_id'] ? $row['payway'] : '',
|
||||
'car_data' => $car_data,
|
||||
'pay_status' => $pay_status,
|
||||
'pay_img' => $pay_img,
|
||||
@@ -437,8 +439,19 @@ class Cusorder extends Wxapp{
|
||||
'bill_status' => $bill_status,
|
||||
'bill_data' => $bill_data,
|
||||
'ckcar_status' => $ckcar_status,
|
||||
'pack_id' => $row['pack_id']
|
||||
'pack_id' => $row['pack_id'],
|
||||
'brand_id' => $row['brand_id'],
|
||||
'car_id' => $row['s_id'],
|
||||
'v_id' => $row['v_id'],
|
||||
'color_id' => $row['cor_id'],
|
||||
'incolor_id' => $row['incor_id'],
|
||||
'ifentrust' => $row['brand_id'] ? $row['ifentrust'] : '',
|
||||
'entrust_name' => $info_json['entrust_name'] ? $info_json['entrust_name']:'',
|
||||
'entrust_idcard' => $info_json['entrust_idcard'] ? $info_json['entrust_idcard']:'',
|
||||
'delry_time' => $row['delry_time']!='0000-00-00 00:00:00' ? date('Y-m-d',strtotime($row['delry_time'])):'',
|
||||
'finance_id' => !$row['payway'] ? $row['finance_id'] : ''
|
||||
];
|
||||
$inten_money && $data['inten_money'] = $inten_money;
|
||||
return $data;
|
||||
}
|
||||
//确认交付
|
||||
|
||||
@@ -0,0 +1,215 @@
|
||||
<?php
|
||||
defined('WXAPP_APP') OR exit('No direct script access allowed');
|
||||
|
||||
/**
|
||||
* Created by Vim
|
||||
* User: lcc
|
||||
* Date: 2021/07/09
|
||||
* Time: 14:08
|
||||
*/
|
||||
require_once APPPATH.'controllers/wxapp/Wxapp.php';
|
||||
class Cusorder2 extends Wxapp{
|
||||
|
||||
function __construct($inputs, $app_key){
|
||||
parent::__construct($inputs, $app_key);
|
||||
|
||||
$this->login_white = array();//登录白名单
|
||||
$this->check_status = array();//用户状态校验
|
||||
$this->check_mobile = array();//需要手机号
|
||||
$this->check_headimg =array();//授权微信信息
|
||||
|
||||
$this->load->model('receiver/receiver_customers_model','customers_model');
|
||||
$this->load->model('receiver/order/receiver_orders_model','orders_model');
|
||||
$this->load->model('receiver/order/receiver_order_contracts_model');
|
||||
|
||||
$this->load->model('auto/auto_series_model');
|
||||
$this->load->model('auto/auto_attr_model');
|
||||
$this->load->model('auto/auto_cars_model');
|
||||
|
||||
$this->load->model("biz/biz_model");
|
||||
$this->load->model('sys/sys_finance_model');
|
||||
$this->load->model('sys/sys_city_model');
|
||||
|
||||
$this->load->model('app/liche/app_liche_users_model');
|
||||
$this->load->model('app/liche/app_liche_orders_model');
|
||||
|
||||
$this->load->library('receiver/orders_entity');
|
||||
}
|
||||
|
||||
protected function get(){
|
||||
}
|
||||
|
||||
//创建订单
|
||||
protected function post(){
|
||||
$biz_id = $this->session['new_biz_id'] ? $this->session['new_biz_id'] : intval($this->session['biz_id']);
|
||||
$cus_id = $this->input_param('cus_id');
|
||||
$name = $this->input_param('name');
|
||||
$mobile = $this->input_param('mobile');
|
||||
$address = $this->input_param('address');
|
||||
$cardid = $this->input_param('cardid');
|
||||
$ifentrust = $this->input_param('ifentrust');
|
||||
$entrust_name = $this->input_param('entrust_name');
|
||||
$entrust_mobile = $this->input_param('entrust_mobile');
|
||||
$entrust_idcard = $this->input_param('entrust_idcard');
|
||||
$inten_money = floatval($this->input_param('inten_money'));//意向金
|
||||
|
||||
$row = $this->customers_model->get(['id'=>$cus_id]);
|
||||
if(!$row || !$cardid || !$address){
|
||||
throw new Exception('参数错误', ERR_PARAMS_ERROR);
|
||||
}
|
||||
if($inten_money > 2000){
|
||||
throw new Exception('意向金不得高于2000', ERR_PARAMS_ERROR);
|
||||
}
|
||||
//判断是否存在未完成流程
|
||||
$omobile = $mobile ? $mobile : $row['mobile'];
|
||||
$o_order = $this->orders_model->get_step($omobile);
|
||||
if($o_order){
|
||||
$this->orders_model->update(['status'=>-1],['id'=>$o_order['id']]);
|
||||
}
|
||||
$data = [
|
||||
'rid' => $cus_id,
|
||||
'sid' => create_order_no(350200,$this->app_key),
|
||||
'name' => $name ? $name : $row['name'],
|
||||
'mobile' => $mobile ? $mobile : $row['mobile'],
|
||||
'biz_id' => $biz_id,
|
||||
'admin_id' => $this->session['uid'],
|
||||
'c_time' => time()
|
||||
];
|
||||
$info_json = [];
|
||||
$cardid && $info_json['c_cardid'] = $cardid;
|
||||
$address && $info_json['c_address'] = $address;
|
||||
if($ifentrust){
|
||||
if(!$entrust_name || !$entrust_mobile || !$entrust_idcard){
|
||||
throw new Exception('参数错误', ERR_PARAMS_ERROR);
|
||||
}
|
||||
$info_json['entrust_name'] = $entrust_name;
|
||||
$info_json['entrust_mobile'] = $entrust_mobile;
|
||||
$info_json['entrust_idcard'] = $entrust_idcard;
|
||||
}
|
||||
$info_json && $data['info_json'] = json_encode($info_json,JSON_UNESCAPED_UNICODE);
|
||||
|
||||
//获取挂牌价
|
||||
if($series_row['brand_id']==3){ //狸车品牌写死挂牌费用0.01 测试用
|
||||
$money_json['fee_carno'] = 0.01;
|
||||
}else{
|
||||
$biz = $this->biz_model->get(['id'=>$row['biz_id']],'city_id');
|
||||
|
||||
$city = $this->sys_city_model->get(['city_id'=>$biz['city_id']],'fee_carno');
|
||||
$money_json['fee_carno'] = $city['fee_carno'];
|
||||
}
|
||||
$data['money_json'] = json_encode($money_json,JSON_UNESCAPED_UNICODE);
|
||||
|
||||
$row['rid'] && $data['clue_id'] = $row['rid'];
|
||||
$o_id = $this->orders_model->add($data);
|
||||
if(!$o_id){
|
||||
throw new Exception('创建失败', ERR_PARAMS_ERROR);
|
||||
}
|
||||
//增加分销记录
|
||||
$this->load->library('entity/deal_entity',['app_id'=>1]);
|
||||
$this->deal_entity->deal_log($o_id);
|
||||
//意向金订单
|
||||
if($inten_money){
|
||||
$userinfo = $this->app_liche_users_model->get(['mobile'=>$data['mobile']]);
|
||||
$this->orders_entity->c_intention($o_id,$userinfo,$inten_money);
|
||||
}
|
||||
return ['id'=>$o_id];
|
||||
}
|
||||
|
||||
//修改订单信息
|
||||
protected function put(){
|
||||
$id = $this->input_param('id');
|
||||
$car_id = $this->input_param('car_id');
|
||||
$color_id = $this->input_param('color_id');
|
||||
$incolor_id = $this->input_param('incolor_id');
|
||||
$v_id = $this->input_param('v_id');
|
||||
$payway = $this->input_param('payway');
|
||||
$pack_id = $this->input_param('pack_id');
|
||||
$main_type = $this->input_param('main_type');
|
||||
$delry_time = $this->input_param('delry_time');
|
||||
$finance_id = $this->input_param('finance_id');
|
||||
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
$series_row = $this->auto_series_model->get(['id'=>$car_id]);
|
||||
$car_row = $this->auto_cars_model->get(['brand_id'=>$series_row['brand_id'],'s_id'=>$series_row['id'],'v_id'=>$v_id,'cor_id'=>$color_id,'incor_id'=>$incolor_id]);
|
||||
if(!$row || !$series_row || !$car_row){
|
||||
throw new Exception('参数错误', ERR_PARAMS_ERROR);
|
||||
}
|
||||
if($row['status']>2){ //车辆确认后不可修改
|
||||
throw new Exception('修改失败,信息不可修改', ERR_PARAMS_ERROR);
|
||||
}
|
||||
if(!$payway){ //分期
|
||||
$finance_row = $this->sys_finance_model->get(['id'=>$finance_id,'status'=>1]);
|
||||
if(!$finance_row){
|
||||
throw new Exception('参数错误', ERR_PARAMS_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
$where = [
|
||||
"id in ($v_id,$color_id,$incolor_id)" => null
|
||||
];
|
||||
$attr_row = $this->auto_attr_model->map('id','',$where);
|
||||
if($attr_row[$color_id]){
|
||||
$color_row = $attr_row[$color_id][0];
|
||||
$color_row['jsondata'] = json_decode($color_row['jsondata'],true);
|
||||
}
|
||||
if($attr_row[$incolor_id]){
|
||||
$incolor_row = $attr_row[$incolor_id][0];
|
||||
$incolor_row['jsondata'] = json_decode($incolor_row['jsondata'],true);
|
||||
}
|
||||
if($attr_row[$v_id]){
|
||||
$version_row = $attr_row[$v_id][0];
|
||||
$version_row['jsondata'] = json_decode($version_row['jsondata'],true);
|
||||
}
|
||||
$car_json = [
|
||||
'c_id' => $color_id,
|
||||
'inc_id' => $incolor_id,
|
||||
'v_id' => $v_id,
|
||||
'color' => isset($color_row) ? $color_row : '',
|
||||
'incolor' => isset($incolor_row) ? $incolor_row : '',
|
||||
'version' => isset($version_row) ? $version_row : ''
|
||||
];
|
||||
|
||||
$data = [
|
||||
'brand_id' => $series_row['brand_id'],
|
||||
's_id' => $series_row['id'],
|
||||
'v_id' => $v_id,
|
||||
'cor_id' => $color_id,
|
||||
'incor_id' => $incolor_id,
|
||||
'car_json' => json_encode($car_json,JSON_UNESCAPED_UNICODE),
|
||||
'price' => $car_row['price_car'],
|
||||
'deposit' => $car_row['price_book'],
|
||||
'payway' => $payway ? 1 : 0,
|
||||
'status' => 0,
|
||||
];
|
||||
$pack_id && $data['pack_id'] = $pack_id;
|
||||
$main_type && $data['main_type'] = 1;
|
||||
$delry_time && $data['delry_time'] = $delry_time;
|
||||
$finance_row && $data['finance_id'] = $finance_row['id'];
|
||||
|
||||
//获取金额json数据
|
||||
$money_json = json_decode($row['money_json'],true);
|
||||
$money_json['price_car'] = $car_row['price_car'];
|
||||
$money_json['price_book'] = $car_row['price_book'];
|
||||
$money_json['price_insure'] = $car_row['price_insure'];
|
||||
$money_json['price_fine'] = $car_row['price_fine'];
|
||||
$orders_entity = new Orders_entity();
|
||||
if(!$payway){
|
||||
if($series_row['brand_id']==4){ //哪吒品牌 金融服务费2000
|
||||
$money_json['price_finance'] = 2000;
|
||||
}else{
|
||||
$money_json['price_finance'] = $orders_entity::PRICE_FINANCE;
|
||||
}
|
||||
}
|
||||
$data['money_json'] = json_encode($money_json,JSON_UNESCAPED_UNICODE);
|
||||
|
||||
$result = $this->orders_model->update($data,['id'=>$row['id']]);
|
||||
if($result){
|
||||
$orders_entity->edit_order($data,$row,$this->session['uid'],$this->session['uname']);
|
||||
throw new Exception('修改成功', API_CODE_SUCCESS);
|
||||
}else{
|
||||
throw new Exception('创建失败', ERR_PARAMS_ERROR);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -9,6 +9,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
*/
|
||||
class Protocol extends CI_Controller{
|
||||
|
||||
private $folder;
|
||||
public function __construct(){
|
||||
parent::__construct();
|
||||
$this->load->model('receiver/order/receiver_orders_model','orders_model');
|
||||
@@ -18,10 +19,12 @@ class Protocol extends CI_Controller{
|
||||
$this->load->model('receiver/order/receiver_order_ckcars_model','ckcars_model');
|
||||
$this->load->model('receiver/receiver_service_package_model','package_model');
|
||||
$this->load->model('receiver/receiver_services_model','services_model');
|
||||
$this->load->model('receiver/order/receiver_order_oplogs_model');
|
||||
|
||||
$this->load->model('auto/auto_series_model');
|
||||
$this->load->model('auto/auto_brand_model');
|
||||
$this->load->model('auto/auto_cars_model');
|
||||
$this->load->model('auto/auto_attr_model');
|
||||
|
||||
$this->load->model("biz/biz_model");
|
||||
$this->load->model('area_model');
|
||||
@@ -29,11 +32,13 @@ class Protocol extends CI_Controller{
|
||||
$this->load->model("items/items_model");
|
||||
$this->load->model('apporder/order_purchase_model','purchase_model');
|
||||
$this->load->model('app/liche/app_liche_orders_model');
|
||||
|
||||
$wxapp = $this->input->get('wxapp');
|
||||
$this->folder = $wxapp ? 'protocol' : 'html2pdf';
|
||||
}
|
||||
|
||||
//整车合同
|
||||
public function car(){
|
||||
$wxapp = $this->input->get('wxapp');
|
||||
$id = $this->input->get('id');
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
$contract = $this->contracts_model->get(['o_id'=>$id,'type'=>0]);
|
||||
@@ -71,13 +76,11 @@ class Protocol extends CI_Controller{
|
||||
$row['cid'] = $contract['cid'];
|
||||
$row['day'] = $contract ? date('Y年m月d日',$contract['c_time']):date('Y年m月d日');
|
||||
$row['dep_price'] = number_format($row['deposit'],2); //定金
|
||||
$folder = $wxapp ? 'protocol' : 'html2pdf';
|
||||
$this->load->view("wxapp/licheb/{$folder}/car",$row);
|
||||
$this->load->view("wxapp/licheb/{$this->folder}/car",$row);
|
||||
}
|
||||
|
||||
//代理合同
|
||||
public function agent(){
|
||||
$wxapp = $this->input->get('wxapp');
|
||||
$id = $this->input->get('id');
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
$contract = $this->contracts_model->get(['o_id'=>$id,'type'=>1]);
|
||||
@@ -102,12 +105,10 @@ class Protocol extends CI_Controller{
|
||||
$row['info_json'] = json_decode($row['info_json'],true);
|
||||
$row['day'] = $contract ? date('Y年m月d日',$contract['c_time']):date('Y年m月d日');
|
||||
$row['cid'] = $contract['cid'];
|
||||
$folder = $wxapp ? 'protocol' : 'html2pdf';
|
||||
$this->load->view("wxapp/licheb/{$folder}/agent",$row);
|
||||
$this->load->view("wxapp/licheb/{$this->folder}/agent",$row);
|
||||
}
|
||||
//车辆信息确认单
|
||||
public function car_ck(){
|
||||
$wxapp = $this->input->get('wxapp');
|
||||
$id = $this->input->get('id');
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
if($row){
|
||||
@@ -130,13 +131,11 @@ class Protocol extends CI_Controller{
|
||||
$row['day'] = $contract ? date('Y年m月d日',$contract['c_time']):date('Y年m月d日');
|
||||
$row['cid'] = $contract['cid'];
|
||||
$row['vin'] = $items['vin'];
|
||||
$folder = $wxapp ? 'protocol' : 'html2pdf';
|
||||
$this->load->view("wxapp/licheb/{$folder}/car_ck",$row);
|
||||
$this->load->view("wxapp/licheb/{$this->folder}/car_ck",$row);
|
||||
}
|
||||
//车辆交接信息
|
||||
public function car_fh(){
|
||||
$this->load->model('app/licheb/app_licheb_users_model');
|
||||
$wxapp = $this->input->get('wxapp');
|
||||
$id = $this->input->get('id');
|
||||
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
@@ -191,7 +190,142 @@ class Protocol extends CI_Controller{
|
||||
$row['day'] = $contract ? date('Y年m月d日',$contract['c_time']):date('Y年m月d日');
|
||||
$row['cid'] = $contract['cid'];
|
||||
$row['vin'] = $items['vin'];
|
||||
$folder = $wxapp ? 'protocol' : 'html2pdf';
|
||||
$this->load->view("wxapp/licheb/{$folder}/car_fh",$row);
|
||||
$this->load->view("wxapp/licheb/{$this->folder}/car_fh",$row);
|
||||
}
|
||||
//车辆买卖合同补充协议书
|
||||
public function car_sp(){
|
||||
$id = $this->input->get('id');
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
$row['old_contract'] = $this->contracts_model->get(['o_id'=>$id,'type'=>0]); //买卖合同
|
||||
$contract = $this->contracts_model->get(['o_id'=>$id,'type'=>4]);
|
||||
if($row){
|
||||
$brand = $this->auto_brand_model->get(['id'=>$row['brand_id']],'name');
|
||||
$series = $this->auto_series_model->get(['id'=>$row['s_id']],'name');
|
||||
$car_json = json_decode($row['car_json'],true);
|
||||
$row['color'] = isset($car_json['color']) ? $car_json['color']['title'] : '';
|
||||
$row['incolor'] = isset($car_json['incolor']) ? $car_json['incolor']['title'] : '';
|
||||
$row['version'] = isset($car_json['version']) ? $car_json['version']['title'] : '';
|
||||
$row['brand_name'] = $brand['name'];
|
||||
$row['series_name'] = $series['name'];
|
||||
//获取门店信息
|
||||
$biz = $this->biz_model->get(['id'=>$row['biz_id']]);
|
||||
$city = $this->area_model->get(['county_id'=>$biz['county_id']],'city_name,county_name');
|
||||
$row['address'] = $city['city_name'].$city['county_name'].' '.$biz['address'] .'  '. $biz['biz_name'];
|
||||
if($row['brand_id']==4){ //哪吒品牌 公司固定厦门狸车销售公司
|
||||
$biz['company_id'] = 1;
|
||||
}
|
||||
$company = $this->sys_company_model->get(['id'=>$biz['company_id']]);
|
||||
$row['company'] = $company;
|
||||
//获取选择代办包
|
||||
$pack_row = $this->package_model->get(['id'=>$row['pack_id']],'srv_ids');
|
||||
$srv_total = count(explode(',',$pack_row['srv_ids']));
|
||||
if($srv_total==4){
|
||||
$row['give_time'] = 30;
|
||||
}elseif($srv_total==3){
|
||||
$row['give_time'] = 45;
|
||||
}else{
|
||||
$row['give_time'] = 60;
|
||||
}
|
||||
}
|
||||
//修改信息
|
||||
$opt_row = $this->receiver_order_oplogs_model->select(['order_id'=>$row['id'],'type'=>3],'id desc',1,1);//最后修改日志
|
||||
$opt_row = json_decode($opt_row[0]['log_json'],true);
|
||||
$logs = [];
|
||||
if($opt_row){
|
||||
$diff_key_arr = ['s_id','v_id','cor_id','incor_id'];
|
||||
$diff_car = false;
|
||||
foreach($diff_key_arr as $item){
|
||||
if($opt_row[$item]!=$row[$item]){
|
||||
$diff_car = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if($diff_car){
|
||||
$brand = $this->auto_brand_model->get(['id'=>$row['brand_id']],'name');
|
||||
$series = $this->auto_series_model->get(['id'=>$row['s_id']],'name');
|
||||
$old_brand = $this->auto_brand_model->get(['id'=>$row['brand_id']],'name');
|
||||
$old_series = $this->auto_series_model->get(['id'=>$row['s_id']],'name');
|
||||
$attr_arr = [
|
||||
$row['v_id'],$row['cor_id'],$row['incor_id'],$opt_row['v_id'],$opt_row['cor_id'],$opt_row['incor_id']
|
||||
];
|
||||
$attr_str = implode(',',array_filter($attr_arr));
|
||||
$where = [
|
||||
"id in ({$attr_str})" => null
|
||||
];
|
||||
$attr_rows = $this->auto_attr_model->map('id','',$where);
|
||||
$version = $attr_rows[$row['v_id']] ? $attr_rows[$row['v_id']][0]['title'] : '';
|
||||
$cor = $attr_rows[$row['cor_id']] ? $attr_rows[$row['cor_id']][0]['title'] : '';
|
||||
$incor = $attr_rows[$row['incor_id']] ? $attr_rows[$row['incor_id']][0]['title'] : '';
|
||||
$old_version = $attr_rows[$opt_row['v_id']] ? $attr_rows[$opt_row['v_id']][0]['title'] : '';
|
||||
$old_cor = $attr_rows[$opt_row['cor_id']] ? $attr_rows[$opt_row['cor_id']][0]['title'] : '';
|
||||
$old_incor = $attr_rows[$opt_row['incor_id']] ? $attr_rows[$opt_row['incor_id']][0]['title'] : '';
|
||||
$new_car = "{$brand['name']}{$series['name']}{$version}{$cor}{$incor}";
|
||||
$old_car = "{$old_brand['name']}{$old_series['name']}{$old_version}{$old_car}{$old_incor}";
|
||||
$b_price = num_to_rmb($row['price']);
|
||||
$price = number_format($row['price'],2);
|
||||
$logs[0] = "购买车型由 {$old_car} 变更为 {$new_car}
|
||||
<div>车辆单价:{$price} 元 数量:1</div>
|
||||
<div>车辆总价:{$price}元,{$b_price} </div>";
|
||||
$old_price = number_format($opt_row['price'],2);
|
||||
$logs[] = "车辆单价由 {$old_price} 变更为 {$price} 车辆总价:{$price}元, {$b_price}";
|
||||
}
|
||||
if($row['payway']!=$opt_row['payway']){
|
||||
$old_payway = $opt_row['payway'] ? '一次性付款' : '分期付款';
|
||||
$payway = $row['payway'] ? '一次性付款' : '分期付款';
|
||||
$logs[] = "付款方式由 {$old_payway} 变更为 {$payway}";
|
||||
}
|
||||
}
|
||||
$row['logs'] = $logs;
|
||||
$row['info_json'] = json_decode($row['info_json'],true);
|
||||
$row['price_rmb'] = num_to_rmb($row['price']);
|
||||
$row['cid'] = $contract['cid'];
|
||||
$row['day'] = $contract ? date('Y年m月d日',$contract['c_time']):date('Y年m月d日');
|
||||
$row['dep_price'] = number_format($row['deposit'],2); //定金
|
||||
$this->load->view("wxapp/licheb/{$this->folder}/car_sp",$row);
|
||||
}
|
||||
//委托服务补充协议书
|
||||
public function agent_sp(){
|
||||
$id = $this->input->get('id');
|
||||
$row = $this->orders_model->get(['id'=>$id]);
|
||||
$row['old_contract'] = $this->contracts_model->get(['o_id'=>$id,'type'=>1]);
|
||||
$contract = $this->contracts_model->get(['o_id'=>$id,'type'=>5]);
|
||||
$total_price = 0;
|
||||
$old_services = $services = '';
|
||||
if($row){
|
||||
//获取修改前数据
|
||||
$opt_row = $this->receiver_order_oplogs_model->select(['order_id'=>$row['id'],'type'=>3],'id desc',1,1);//最后修改日志
|
||||
$opt_row = json_decode($opt_row[0]['log_json'],true);
|
||||
$money_json = json_decode($row['money_json'],true);
|
||||
//获取门店信息
|
||||
$biz = $this->biz_model->get(['id'=>$row['biz_id']]);
|
||||
$row['company'] = $this->sys_company_model->get(["title like '%服务%'"=>null,'status'=>1]);
|
||||
//获取选择代办包
|
||||
$pack_ids[] = $row['pack_id'];
|
||||
$pack_ids[] = $opt_row['pack_id'];
|
||||
$pack_ids_str = implode(',',$pack_ids);
|
||||
$pack_rows = $this->package_model->map('id','',["id in ($pack_ids_str)"=>null],'','','','id,srv_ids');
|
||||
if($pack_rows){
|
||||
$srv_ids_str = $pack_rows[$row['pack_id']][0]['srv_ids'];
|
||||
if($srv_ids_str){
|
||||
$service_rows = $this->services_model->select(["id in ({$srv_ids_str})"=>null],'','','','title');
|
||||
$services = implode(',',array_column($service_rows,'title'));
|
||||
}
|
||||
$old_srv_ids_str = $pack_rows[$opt_row['pack_id']][0]['srv_ids'];
|
||||
if($old_srv_ids_str){
|
||||
$service_rows = $this->services_model->select(["id in ({$old_srv_ids_str})"=>null],'','','','title');
|
||||
$old_services = implode(',',array_column($service_rows,'title'));
|
||||
}
|
||||
}
|
||||
$this->load->library('receiver/orders_entity');
|
||||
$srv_price = $this->orders_entity->order_srv_money($row['id']);
|
||||
$total_price = $srv_price + $money_json['price_insure'];
|
||||
}
|
||||
$row['services'] = $services;
|
||||
$row['old_services'] = $old_services;
|
||||
$row['total_price'] = $total_price;
|
||||
$row['info_json'] = json_decode($row['info_json'],true);
|
||||
$row['day'] = $contract ? date('Y年m月d日',$contract['c_time']):date('Y年m月d日');
|
||||
$row['cid'] = $contract['cid'];
|
||||
$this->load->view("wxapp/licheb/{$this->folder}/agent_sp",$row);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,8 +38,8 @@ class Services extends Wxapp{
|
||||
if(!is_array($srv_id_arr)){
|
||||
continue;
|
||||
}
|
||||
if($type==2){ //分期 必须包含金融包
|
||||
if(in_array($srv_id,$srv_id_arr)){
|
||||
if($type==1){ //全款 过滤包含金融包
|
||||
if(!in_array($srv_id,$srv_id_arr)){
|
||||
$s_where = [
|
||||
"id in ({$val['srv_ids']})" => null
|
||||
];
|
||||
@@ -50,8 +50,8 @@ class Services extends Wxapp{
|
||||
'title' => $title
|
||||
];
|
||||
}
|
||||
}else{ //全款 过滤包含金融包
|
||||
if(!in_array($srv_id,$srv_id_arr)){
|
||||
}else{ //分期 必须包含金融包
|
||||
if(in_array($srv_id,$srv_id_arr)){
|
||||
$s_where = [
|
||||
"id in ({$val['srv_ids']})" => null
|
||||
];
|
||||
|
||||
@@ -41,7 +41,7 @@ class User extends Wxapp
|
||||
throw new Exception('参数错误', API_CODE_INVILD_PARAM);
|
||||
}
|
||||
//判断验证码
|
||||
if ($mobile != '15359333655') {//测试号码
|
||||
if($mobile!='15359333655' && $this->env!='d'){//测试环境和测试号码
|
||||
$mc = &load_cache();
|
||||
$key = "licheb_login_code_" . $mobile;
|
||||
$cache_code = $mc->get($key);
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>委托服务补充协议书</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div style="font-size:14px;">
|
||||
<div style="text-align:center;font-weight:bold;font-size:16px;">委托服务补充协议书</div>
|
||||
<div style="text-align:right;">合同编号:<?=$cid?></div>
|
||||
<div><b>甲方(出卖人):</b><?=$company['title']?></div>
|
||||
<div><b>统一社会信用代码:</b><?=$company['credit_code']?></div>
|
||||
<div><b>乙方(买受人):</b><?=$name?></div>
|
||||
<?if($info_json['c_cardid']){?>
|
||||
<div><b>身份证号码:</b><?=$info_json['c_cardid']?></div>
|
||||
<?}?>
|
||||
<div><b>联系电话:</b><?=$mobile?></div>
|
||||
<?if($ifentrust){?>
|
||||
<div><b>受托代理人:</b><?=$info_json['entrust_name']?></div>
|
||||
<div><b>受托人身份证:</b><?=$info_json['entrust_idcard']?></div>
|
||||
<?}?>
|
||||
<div><b>本协议中的所有术语,除非另有说明,否则其定义与双方于<?=date('Y-m-d',strtotime($old_contract['sign_time']))?>签订协议编号为<?=$old_contract['cid']?>的《委托服务协议》(以下简称“原协议”)中的定义相同。</b></div>
|
||||
<div><b>甲、乙双方经友好协商,依据实际情况,在原协议基础上变更协议条款部分内容,特订立以下补充协议。</b></div>
|
||||
<div><b>第一条 车辆基本情况</b></div>
|
||||
<div>代办项目由 <?=$old_services?> 变更为 <?=$services?></div>
|
||||
<div>代办服务总价:<?=$total_price?>元, <?=num_to_rmb($total_price)?>,保险费用由乙方直接支付给保险公司。</div>
|
||||
<div><b>二、本协议生效后,即成为原合同不可分割的组成部分,与原合同具有同等的法律效力。</b></div>
|
||||
<div><b>除本协议中明确所作修改的条款之外,原合同的其余部分应完全继续有效。</b></div>
|
||||
<div><b>本协议与原合同有相互冲突时,以本协议为准。</b></div>
|
||||
<div><b>三、本协议一式贰份,甲方执壹份,乙方执壹份,具有同等法律效力,自双方签字盖章之日起生效。</b></div>
|
||||
<div style="margin-top:50px;">
|
||||
<table style="width:100%;">
|
||||
<tr>
|
||||
<td style="width:60%;">
|
||||
<div>甲方(出卖人)</div>
|
||||
<div>日期:<?=$day?></div>
|
||||
</td>
|
||||
<td style="width:40%;">
|
||||
<div>乙方(<?=$ifentrust?'受托人':'买受人'?>)</div>
|
||||
<div>日期:<?=$day?></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,47 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>车辆买卖合同补充协议书</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div style="font-size:14px;">
|
||||
<div style="text-align:center;font-weight:bold;font-size:16px;">车辆买卖合同补充协议书</div>
|
||||
<div style="text-align:right;">合同编号:<?=$cid?></div>
|
||||
<div><b>甲方(出卖人):</b><?=$company['title']?></div>
|
||||
<div><b>统一社会信用代码:</b><?=$company['credit_code']?></div>
|
||||
<div><b>乙方(买受人):</b><?=$name?></div>
|
||||
<div><b>联系电话:</b><?=$mobile?></div>
|
||||
<?if($ifentrust){?>
|
||||
<div><b>委托代理人:</b><?=$info_json['entrust_name']?></div>
|
||||
<div><b>受托人身份证:</b><?=$info_json['entrust_idcard']?></div>
|
||||
<?}?>
|
||||
<div><b>本协议中的所有术语,除非另有说明,否则其定义与双方于<?=date('Y-m-d',strtotime($old_contract['sign_time']))?>签订合同编号为<?=$old_contract['cid']?>的《车辆买卖合同》(以下简称“原合同”)中的定义相同。</b></div>
|
||||
<div><b>甲、乙双方经友好协商,依据实际情况,在原合同基础上变更合同条款部分内容,特订立以下补充协议。</b></div>
|
||||
<div><b>一、协议内容变更部分为:</b></div>
|
||||
<?foreach($logs as $key=>$item){?>
|
||||
<div><?=$key+1?> <?=$item?></div>
|
||||
<?}?>
|
||||
<div><b>二、本协议生效后,即成为原合同不可分割的组成部分,与原合同具有同等的法律效力。</b></div>
|
||||
<div><b>除本协议中明确所作修改的条款之外,原合同的其余部分应完全继续有效。</b></div>
|
||||
<div><b>本协议与原合同有相互冲突时,以本协议为准。</b></div>
|
||||
<div><b>三、本协议一式贰份,甲方执壹份,乙方执壹份,具有同等法律效力,自双方签字盖章之日起生效。</b></div>
|
||||
<div style="margin-top:50px;">
|
||||
<table style="width:100%;">
|
||||
<tr>
|
||||
<td style="width:60%;">
|
||||
<div>甲方(出卖人)</div>
|
||||
<div>日期:<?=$day?></div>
|
||||
</td>
|
||||
<td style="width:40%;">
|
||||
<div>乙方(<?=$ifentrust?'受托人':'买受人'?>)</div>
|
||||
<div>日期:<?=$day?></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -14,7 +14,7 @@ class Pdf {
|
||||
|
||||
private $pdf2img_url = 'https://open.xiaoyu.com/jar/pdf2img/index';
|
||||
public function __construct($isdev=''){
|
||||
if($isdev){
|
||||
if (false !== strpos($_SERVER['HTTP_HOST'], 'dev') || $isdev) {//dev
|
||||
$this->pdf2img_url = 'https://liche-api-dev.xiaoyu.com/jar/pdf2img';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,6 +46,10 @@ class Deal_entity
|
||||
if(!$clue){
|
||||
return array('code' => 0, 'msg' => '参数错误');
|
||||
}
|
||||
//该线索是否存在分销
|
||||
if($this->ci->mdDealLog->get(['ex_id'=>$clue['id'],'status>='=>0])){
|
||||
return array('code' => 0, 'msg' => '该线索已存在分销记录');
|
||||
}
|
||||
$where = [
|
||||
'brand_id' => $order['brand_id'],
|
||||
's_id' => $order['s_id'],
|
||||
@@ -92,7 +96,62 @@ class Deal_entity
|
||||
, 'ex_id' => $params[4], 'cf_sid' => $params[5], 'app_id' => $params[6], 'status' => 0, 'c_time' => time());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 确认交车
|
||||
* @param $oid int 订单id
|
||||
* @return bool
|
||||
*/
|
||||
public function deal_log_finish($oid){
|
||||
$this->load->model('app/User_account_model', 'mdUserAccount');
|
||||
$this->load->model('app/User_accountlog_model', 'mdUserAccountLog');
|
||||
$this->load->model('app/Deal_log_model', 'mdDealLog');
|
||||
$this->load->model('receiver/order/receiver_orders_model');
|
||||
$order = $this->ci->receiver_orders_model->get(['id'=>$oid]);
|
||||
if(!$order){
|
||||
return array('code' => 0, 'msg' => '订单不存在');
|
||||
}
|
||||
$where = array("app_id" => $this->app_id, "cf_sid" => $order['sid'], "status" => 0);
|
||||
$res = $this->ci->mdDealLog->select($where, 'id DESC', 0, 0, 'id,app_uid,money');
|
||||
if ($res) {
|
||||
foreach ($res as $key => $value) {
|
||||
$reUa = $this->ci->mdUserAccount->get(array('app_id' => $this->app_id, 'app_uid' => $value['app_uid']));
|
||||
if ($reUa['id']) {
|
||||
$aid = $reUa['id'];
|
||||
$money_total = $reUa['money_total'] + $value['money'];
|
||||
$money_left = $reUa['money_left'] + $value['money'];
|
||||
} else {
|
||||
$money_total = $value['money'];
|
||||
$money_left = $value['money'];
|
||||
$addData = array('app_id' => $this->app_id, 'app_uid' => $value['app_uid'], 'status' => 1, 'c_time' => time());
|
||||
$aid = $this->ci->mdUserAccount->add($addData);
|
||||
}
|
||||
if ($aid) {
|
||||
$this->ci->mdUserAccountLog->db->trans_begin();
|
||||
$this->ci->mdUserAccount->db->trans_begin();
|
||||
$this->ci->mdDealLog->db->trans_begin();
|
||||
//增加资金流水表
|
||||
$this->ci->mdUserAccountLog->add(array('account_id' => $aid, 'trade_type' => 1, 'money_in' => $value['money']
|
||||
, 'money_left' => $money_left, 'status' => 1, 'c_time' => time()));
|
||||
//更新账户表
|
||||
$this->ci->mdUserAccount->update(array('money_total' => $money_total, 'money_left' => $money_left), array('id' => $aid));
|
||||
//更新分销记录表
|
||||
$this->ci->mdDealLog->update(array('status' => 1), array('id' => $value['id']));
|
||||
if ($this->ci->mdUserAccountLog->db->trans_status() && $this->ci->mdUserAccount->db->trans_status()
|
||||
&& $this->ci->mdDealLog->db->trans_status()) {
|
||||
$this->ci->mdUserAccountLog->db->trans_commit();
|
||||
$this->ci->mdUserAccount->db->trans_commit();
|
||||
$this->ci->mdDealLog->db->trans_commit();
|
||||
debug_log("[success] " . __FUNCTION__ . ":操作成功,account_id={$aid}", $this->log_file);
|
||||
} else {
|
||||
$this->ci->mdUserAccountLog->db->trans_rollback();
|
||||
$this->ci->mdUserAccount->db->trans_rollback();
|
||||
$this->ci->mdDealLog->db->trans_rollback();
|
||||
debug_log("[finish] " . __FUNCTION__ . ":执行失败回滚,account_id={$aid}", $this->log_file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Notes:核销成功/确认收货后加佣金
|
||||
* Created on: 2020/7/9 16:30
|
||||
|
||||
@@ -59,6 +59,14 @@ class Orders_entity{
|
||||
$path = '/wxapp/licheb/protocol/car_fh';
|
||||
$title = '车辆交付表';
|
||||
break;
|
||||
case 4:
|
||||
$path = '/wxapp/licheb/protocol/car_sp';
|
||||
$title = '车辆买卖合同补充协议书';
|
||||
break;
|
||||
case 5:
|
||||
$path = '/wxapp/licheb/protocol/agent_sp';
|
||||
$title = '委托服务补充协议书';
|
||||
break;
|
||||
default:
|
||||
}
|
||||
if($path){
|
||||
@@ -81,8 +89,9 @@ class Orders_entity{
|
||||
if(!$pay_money){//未支付意向订单设置删除
|
||||
$this->ci->app_liche_orders_model->update(['status'=>-1],['o_id'=>$oid,'uid'=>$userinfo['uid'],'type'=>4,'status'=>0]);
|
||||
}
|
||||
$deposit_count = $this->ci->app_liche_orders_model->count(['o_id'=>$oid,'uid'=>$userinfo['uid'],'type'=>1,'status'=>1]); //定金已支付
|
||||
$need_pay_money = $this->order_row['deposit'] - $pay_money['total_price'];
|
||||
if($need_pay_money > 0){
|
||||
if($need_pay_money > 0 && !$deposit_count){
|
||||
$this->ci->signs_model->update(['status'=>1],['o_id'=>$this->order_row['id']]);
|
||||
$srv_money = $this->order_srv_money($oid);
|
||||
if($srv_money < $this->order_row['deposit']){ //服务费小于定金 给销售公司
|
||||
@@ -137,7 +146,7 @@ class Orders_entity{
|
||||
$res = $this->ci->app_liche_orders_model->add($sub_data);
|
||||
}
|
||||
}else{
|
||||
if($pay_money['status']){
|
||||
if($pay_money['status'] || $deposit_count){
|
||||
$this->ci->signs_model->update(['status'=>2],['o_id'=>$oid]);
|
||||
if($this->order_row['payway']){//全款
|
||||
$status = 2;
|
||||
@@ -146,14 +155,10 @@ class Orders_entity{
|
||||
$status = 1;
|
||||
$this->ci->load->model('receiver/order/receiver_order_loans_model','next_model');
|
||||
}
|
||||
$this->ci->orders_model->update(['status'=>$status],['id'=>$this->order_row['id']]);
|
||||
//判断下一步是否存在
|
||||
if(!$this->ci->next_model->get(['o_id'=>$this->order_row['id']])){
|
||||
$res = $this->ci->orders_model->update(['status'=>$status],['id'=>$this->order_row['id']]);
|
||||
if($res){
|
||||
$this->ci->next_model->add(['o_id'=>$this->order_row['id'],'c_time'=>time()]);
|
||||
}
|
||||
}else{
|
||||
$res = $this->ci->orders_model->update(['status'=>2],['id'=>$this->order_row['id']]);
|
||||
$this->ci->next_model->add(['o_id'=>$this->order_row['id'],'c_time'=>time()]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -257,10 +262,10 @@ class Orders_entity{
|
||||
* @param $uid int 操作用户id
|
||||
* @param $uname int 操作用户名
|
||||
* @param $content string 日志内容
|
||||
* @param $type int 操作类型 (0普通日志 1短信 2拨打电话)
|
||||
* @param $type int 操作类型 (0普通日志 1短信 2拨打电话 3修改订单信息)
|
||||
* @param $cf_platform string 来源 (wxapp小程序 admin后台)
|
||||
*/
|
||||
public function add_log($o_id,$uid,$uname,$content,$type='',$cf_platform='wxapp'){
|
||||
public function add_log($o_id,$uid,$uname,$content,$type='',$cf_platform='wxapp',$jsondata = ''){
|
||||
$this->ci->load->model('receiver/order/receiver_order_oplogs_model','order_oplogs_model');
|
||||
$add_data = [
|
||||
'order_id' => $o_id,
|
||||
@@ -271,6 +276,7 @@ class Orders_entity{
|
||||
$uname && $add_data['uname'] = $uname;
|
||||
$type && $add_data['type'] = $type;
|
||||
$cf_platform && $add_data['cf_platform'] = $cf_platform;
|
||||
$jsondata && $add_data['log_json'] = $jsondata;
|
||||
$result = $this->ci->order_oplogs_model->add($add_data);
|
||||
return $result;
|
||||
}
|
||||
@@ -517,6 +523,75 @@ class Orders_entity{
|
||||
];
|
||||
return $config[$status] ? $config[$status] : '';
|
||||
}
|
||||
/*
|
||||
* 修改完订单信息后操作
|
||||
* @param array() $new_data 修改后的数据
|
||||
* @param array() $row 修改前数据
|
||||
*/
|
||||
public function edit_order($new_data,$row,$uid,$uname){
|
||||
$sign_row = $this->ci->signs_model->get(['o_id'=>$row['id']]);
|
||||
if($sign_row){
|
||||
$diff_key_arr = ['s_id','v_id','cor_id','incor_id','payway','pack_id']; //修改其中一项需要签补充协议
|
||||
$need_resign = false;
|
||||
foreach($diff_key_arr as $item){
|
||||
if($new_data[$item]!=$row[$item]){
|
||||
$need_resign = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if($new_data['payway']!=$row['payway']){ //修改付款方式
|
||||
$this->ci->load->model('receiver/order/receiver_order_loans_model');
|
||||
$this->ci->receiver_order_loans_model->delete(['o_id'=>$row['id']]);
|
||||
}
|
||||
if($need_resign){
|
||||
$content = '修改订单信息';
|
||||
$jsondata = json_encode($row,JSON_UNESCAPED_UNICODE);
|
||||
$this->add_log($row['id'],$uid,$uname,$content,3,'wxapp',$jsondata); //添加日志
|
||||
$this->ci->receiver_order_contracts_model->delete(['o_id'=>$row['id'],'type in (4,5)'=>null]);
|
||||
if(!$row['status']){ //未签合同删除旧合同文件并且删除未支付订单
|
||||
$this->ci->load->model('app/liche/app_liche_users_model');
|
||||
$this->ci->receiver_order_contracts_model->delete(['o_id'=>$row['id']]);
|
||||
$userinfo = $this->ci->app_liche_users_model->get(['mobile'=>$row['mobile']]);
|
||||
$this->ci->app_liche_orders_model->delete(['o_id'=>$row['id'],'status'=>0,'pid!='=>0]);
|
||||
}
|
||||
$this->ci->signs_model->update(['status'=>0],['id'=>$sign_row['id']]);
|
||||
}
|
||||
}else{
|
||||
$this->ci->signs_model->add(['o_id'=>$row['id'],'c_time'=>time()]);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 完成补充协议签名
|
||||
* @param int $oid 订单id
|
||||
* return boolean
|
||||
*/
|
||||
public function finish_sp($oid){
|
||||
!$this->order_row && $this->order_row = $this->ci->orders_model->get(['id'=>$oid]);
|
||||
if(!$this->order_row){
|
||||
return false;
|
||||
}
|
||||
$this->ci->load->model('receiver/order/receiver_order_ckcars_model');
|
||||
$this->ci->signs_model->update(['status'=>2],['o_id'=>$oid]);
|
||||
if($this->order_row['payway']){//全款
|
||||
$res = $this->ci->orders_model->update(['status'=>2],['id'=>$oid]);
|
||||
if(!$this->ci->receiver_order_ckcars_model->get(['o_id'=>$oid])){
|
||||
$this->ci->receiver_order_ckcars_model->add(['o_id'=>$oid,'c_time'=>time()]);
|
||||
}
|
||||
}else{
|
||||
$this->ci->load->model('receiver/order/receiver_order_loans_model');
|
||||
if($this->ci->receiver_order_loans_model->get(['o_id'=>$oid])){
|
||||
if($this->ci->receiver_order_ckcars_model->get(['o_id'=>$oid])) {
|
||||
$res = $this->ci->orders_model->update(['status'=>2],['id'=>$oid]);
|
||||
}else{
|
||||
$res = $this->ci->orders_model->update(['status'=>1],['id'=>$oid]);
|
||||
}
|
||||
}else{
|
||||
$res = $this->ci->orders_model->update(['status'=>1],['id'=>$oid]);
|
||||
$this->ci->receiver_order_loans_model->add(['o_id'=>$oid,'c_time'=>time()]);
|
||||
}
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
@@ -12,7 +12,7 @@ class Receiver_order_contracts_model extends HD_Model
|
||||
{
|
||||
private $table_name = 'lc_receiver_order_contracts';
|
||||
|
||||
private $type_arr = [ 0 => '整车合同',1 => '代理协议',2 => '车辆信息确定',3 => '交接信息'];
|
||||
private $type_arr = [ 0 => '整车合同',1 => '代理协议',2 => '车辆信息确定',3 => '交接信息', 4 => '合同补充协议', 5 => '委托服务补充协议'];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
|
||||
@@ -64,7 +64,8 @@ class Receiver_orders_model extends HD_Model
|
||||
$where = [
|
||||
"$t1.mobile" => $mobile,
|
||||
"$t1.status<" => 6,
|
||||
"$t1.status>=" => 0
|
||||
"$t1.status>=" => 0,
|
||||
"$t1.brand_id>" => 0
|
||||
];
|
||||
$this->db->where($where);
|
||||
$this->db->order_by("$t1.id desc");
|
||||
|
||||
@@ -151,6 +151,7 @@ class Payment_service extends HD_Service{
|
||||
//更新订单状态
|
||||
$row = $this->orders_model->get(['id' => $order['o_id']]);
|
||||
if ($row) {
|
||||
$this->order_signs_model->update(['status' => 2], ['o_id' => $row['id']]);
|
||||
if ($row['payway']) {//全款
|
||||
$status = 2;
|
||||
$this->load->model('receiver/order/receiver_order_ckcars_model', 'next_model');
|
||||
@@ -158,9 +159,9 @@ class Payment_service extends HD_Service{
|
||||
$status = 1;
|
||||
$this->load->model('receiver/order/receiver_order_loans_model', 'next_model');
|
||||
}
|
||||
$res = $this->orders_model->update(['status' => $status], ['id' => $row['id']]);
|
||||
$this->order_signs_model->update(['status' => 2], ['o_id' => $row['id']]);
|
||||
if ($res) {
|
||||
$next_row = $this->next_model->get(['o_id'=>$row['id']]);
|
||||
$this->orders_model->update(['status' => $status], ['id' => $row['id']]);
|
||||
if(!$next_row){
|
||||
$add_data = [
|
||||
'o_id' => $row['id'],
|
||||
'c_time' => time()
|
||||
|
||||
@@ -69,7 +69,7 @@ create table lc_receiver_order_contracts (
|
||||
file varchar(255) not null default '' comment '合同文件地址',
|
||||
imgs json default null comment '合同图片地址',
|
||||
jsondata json default null comment '其他信息',
|
||||
type tinyint(1) not null default '0' comment '合同类型(0整车合同 1代理协议 2确定信息 3交接信息)',
|
||||
type tinyint(1) not null default '0' comment '合同类型(0整车合同 1代理协议 2确定信息 3交接信息 4车辆买卖合同补充协议 5委托服务补充协议)',
|
||||
status tinyint(1) not null default '0' comment '状态(0未签署 1已签署)',
|
||||
sign_time timestamp not null default '0000-00-00 00:00:00' comment '签名时间',
|
||||
c_time int(10) unsigned not null default '0' comment '创建时间',
|
||||
@@ -127,13 +127,14 @@ create table lc_receiver_order_oplogs (
|
||||
order_id int(10) unsigned not null comment '订单id',
|
||||
uid int(10) unsigned not null comment '操作用户id',
|
||||
uname varchar(32) not null default '' comment '用户名',
|
||||
type tinyint(1) not null default '0' comment '类型 0 普通 1短信 2电话',
|
||||
type tinyint(1) not null default '0' comment '类型 0 普通 1短信 2电话 3修改订单信息',
|
||||
log varchar(256) not null default '' comment '操作内容',
|
||||
cf_platform varchar(10) not null default '' comment '来源平台',
|
||||
c_time int(10) unsigned not null default '0' comment '创建时间',
|
||||
u_time timestamp not null default current_timestamp on update current_timestamp,
|
||||
primary key (id)
|
||||
) ENGINE=INNODB DEFAULT CHARSET=UTF8MB4 COLLATE=UTF8MB4_0900_AI_CI COMMENT='订单操作日志表';
|
||||
alter table lc_receiver_order_oplogs add log_json json default null comment '修改json数据' after log;
|
||||
|
||||
-- ----------------------------
|
||||
-- Title:订单合同签订
|
||||
|
||||
Reference in New Issue
Block a user