edit-admin-settle

This commit is contained in:
lccsw
2022-04-06 17:34:13 +08:00
parent 8f1338e2eb
commit 520542cbbf
4 changed files with 99 additions and 59 deletions
+2 -1
View File
@@ -217,7 +217,7 @@ class Settle extends HD_Controller
$other_price,
$row['price_ml'],
$row['profix_liche'],
$row['profix_partner'],
$row['profix_partner']+$row['profix_partner_oflow'],
$row['month_str']
];
}
@@ -361,6 +361,7 @@ class Settle extends HD_Controller
$temp['price_other'] = $v['price_other'] ? json_decode($v['price_other']) : [];
$temp['total_need'] = $v['rent'] + $v['wat_ele'] + $v['manager_wage'] + $v['employee_wage'] + $v['commission'] + $v['price_trucking'];
$temp['price_ml'] = $v['price_total'] - $temp['total_need'];
$temp['profix_partner'] = $v['profix_partner'] + $v['profix_partner_oflow'];
$lists[] = $temp;
}
}
+5
View File
@@ -1040,6 +1040,7 @@ class Store extends HD_Controller
's_time' => $base_info['s_time'] ? date('Y-m-d',$base_info['s_time']) : '',
'e_time' => $base_info['e_time'] ? date('Y-m-d',$base_info['e_time']) : '',
'type' => $base_info['type'],
'rate' => strlen($base_info['rate']) ? $base_info['rate'] : 0,
];
$brands = [];
$b_rows = $this->biz_trucking_model->select(['biz_id'=>$base_info['biz_id'],'status'=>1],'','','','auto_b_id,money');
@@ -1069,6 +1070,9 @@ class Store extends HD_Controller
if(!$this->biz_info_model->get(['id'=>$info['id']])){
return $this->show_json(SYS_CODE_FAIL, '错数错误!');
}
if($info['rate']<0||$info['rate']>100){
return $this->show_json(SYS_CODE_FAIL, '分佣比例请填写0~100');
}
$up_data = [
'name' => $info['name'],
'mobile' => $info['mobile'],
@@ -1082,6 +1086,7 @@ class Store extends HD_Controller
's_time' => $info['s_time'] ? strtotime($info['s_time']) : 0,
'e_time' => $info['e_time'] ? strtotime($info['e_time']) : 0,
'type' => $info['type'],
'rate' => $info['rate'],
];
$this->biz_info_model->update($up_data,['id'=>$info['id']]);
$b_ids = array_column($brands,'id');
+7
View File
@@ -19,6 +19,13 @@
</select>
</div>
</div>
<div class="am-form-group">
<label class="am-para-label">分佣比例:</label>
<div class="am-para-input">
合伙人:<input type="text" style="width:90px;display:inline" placeholder="0~100" name="" v-model="info.rate"/>%&nbsp;&nbsp;&nbsp;&nbsp;
狸车:<span>{{100-info.rate}}%</span> (说明:有效值0~100,输入数值的百分比)
</div>
</div>
<div class="am-form-group">
<label class="am-para-label">保证金:</label>
<div class="am-para-input w150">
+85 -58
View File
@@ -17,6 +17,8 @@ class Biz extends HD_Controller
$this->load->model('biz/biz_settle_model');
$this->load->model('biz/biz_settle_static_model');
$this->load->model('biz/biz_trucking_model');
$this->load->library('receiver/orders_v2_entity');
}
public function settle(){
@@ -30,11 +32,13 @@ class Biz extends HD_Controller
$fields = "$t2.*,$t4.city_id";
$where = [
"$t1.pid_status" => 5,
"$t1.pid_status" => 3,
"$t1.status" => 1,
"$t2.status>=" => 0,
"$t2.status in (0,1)" => null,
"$t2.id>=" => Orders_v2_entity::V2_START_ID,
"$t2.bill_time !='0000-00-00 00:00:00'" => null,
"$t3.id is null" => null,
"$t4.type" => 2
"$t4.type" => 2,
];
$this->db->from("$t1");
@@ -49,24 +53,24 @@ class Biz extends HD_Controller
$rows = $this->db->get()->result_array();
if($rows){
foreach($rows as $key=>$val){
//获取创建订单当月商务政策
$info_json = json_decode($val['info_json'],true);
$money_json = json_decode($val['money_json'],true);
//获取创建订单时商务政策
$where = [
'id' => $info_json['business_id'],
];
$b_row_one = $this->auto_business_model->get($where);
//获取开票日期商务政策
$b_where = [
'city_id ' => $val['city_id'],
'city_id' => $val['city_id'],
'brand_id' => $val['brand_id'],
's_id' => $val['s_id'],
'v_id' => $val['v_id'],
'if_effect' => 1,
'status' => 1
];
$b_where['year'] = date('Y',$val['c_time']);
$b_where['month'] = intval(date('m',$val['c_time']));
$b_row_one = $this->auto_business_model->get($b_where);
//获取开票日期商务政策
$b_row_two = $b_row_one;
if(date('Y-m',strtotime($val['bill_time']))!=date('Y-m',$val['c_time'])) {
$b_where['year'] = date('Y',strtotime($val['bill_time']));
$b_where['month'] = intval(date('m',strtotime($val['bill_time'])));
$b_row_two = $this->auto_business_model->get($b_where);
}
$b_row_two = $this->auto_business_model->select($b_where,'id desc',1,1);
$b_row_two = $b_row_two[0];
$truck_row = $this->biz_trucking_model->get(['auto_b_id'=>$val['brand_id'],'biz_id'=>$val['biz_id'],'status'=>1]);
$price_trucking = $truck_row['money'] ? $truck_row['money'] : 0;
$add_data = [
@@ -77,10 +81,13 @@ class Biz extends HD_Controller
'profix_loan' => $b_row_two['profix_loan'] ? $b_row_two['profix_loan'] : 0,
'profix_carno' => $b_row_two['profix_carno'] ? $b_row_two['profix_carno'] : 0,
'price_trucking' => $price_trucking,
'year' => date('Y'),
'month' => intval(date('m')),
'year' => date('Y',strtotime($val['bill_time'])),
'month' => intval(date('m',strtotime($val['bill_time']))),
'c_time' => time()
];
if($money_json['price_car']>$b_row_one['price_floor']){
$add_data['oflow_profix_car'] = $money_json['price_car'] - $b_row_one['price_floor'];
}
$this->biz_settle_model->add($add_data);
}
}else{
@@ -91,68 +98,88 @@ class Biz extends HD_Controller
//统计前一个月利润
public function merage(){
$size = $this->input->get('size');
!$page && $page = 1;
!$size && $size = 5;
$t1 = 'lc_biz_settle';
$t2 = 'lc_biz_settle_static';
$fields = "$t1.*";
$where = [
"$t1.year" => date('Y',strtotime("last month")),
"$t1.month" => intval(date('m',strtotime('last day of - 1 months'))),
"$t2.id is null" => null
"year" => date('Y',strtotime("last month")),
"month" => intval(date('m',strtotime('last day of - 1 months'))),
"stic_id" => 0
];
$this->db->from("$t1");
$this->db->join("$t2", "$t2.biz_id=$t1.biz_id",'left');
$this->db->select($fields);
$this->db->where($where);
$this->db->group_by("$t1.biz_id");
$this->db->limit($size);
$rows = $this->db->get()->result_array();
$rows = $this->biz_settle_model->select($where,'id asc',$page,$size);
if($rows){
foreach($rows as $key=>$val){
$biz_info = $this->biz_info_model->get(['biz_id'=>$val['biz_id']]);
$where = [
'biz_id' => $val['biz_id'],
'year' => $val['year'],
'month' => $val['month']
];
if(!$this->biz_settle_static_model->get($where)){
$biz = $this->biz_model->get(['id'=>$val['biz_id']]);
$biz_info = $this->biz_info_model->get(['biz_id'=>$val['biz_id']]);
$total_car = $this->biz_settle_model->count($where);
$sum_car = $this->biz_settle_model->sum('profix_car',$where);
$sum_insure = $this->biz_settle_model->sum('profix_insure',$where);
$sum_loan = $this->biz_settle_model->sum('profix_loan',$where);
$sum_carno = $this->biz_settle_model->sum('profix_carno',$where);
$price_all = $sum_insn['profix_insure']+$sum_loan['profix_loan']+$sum_carno['profix_carno'];
$sum_trucking = $this->biz_settle_model->sum('price_trucking',$where);
$static_row = $this->biz_settle_static_model->get($where);
$price_all = $val['profix_insure']+$val['profix_loan']+$val['profix_carno'];
if(!$static_row){
$data = [
'biz_id' => $val['biz_id'],
'profix_car' => $sum_car['profix_car'],
'profix_car_after' => sprintf("%.2f",$sum_car['profix_car']/1.13),
'profix_car' => $val['profix_car'],
'price_all' => $price_all,
'price_trucking' => $sum_trucking['price_trucking'],
'rent' => $biz_info['rent'],
'wat_ele' => $biz_info['wat_ele'],
'employee_wage' => $biz_info['employee_wage'],
'manager_wage' => $biz_info['manager_wage'],
'commission' => $biz_info['commission'] * $total_car,
'price_trucking' => $val['price_trucking'],
'year' => $val['year'],
'month' => $val['month'],
'c_time' => time()
];
$data['price_total'] = $data['price_all']+$data['profix_car_after'];
$type_config = $this->biz_type[$biz_info['type']];
$price_need = $data['price_total'] - $data['rent'] - $data['wat_ele'] - $data['employee_wage'] - $data['manager_wage'] - $data['commission'] - $data['price_trucking'];
$data['profix_liche'] = $price_need*$type_config['liche'];
$data['profix_partner'] = $price_need*$type_config['partner'];
$this->biz_settle_static_model->add($data);
$stic_id = $this->biz_settle_static_model->add($data);
if($stic_id){
$this->biz_settle_model->update(['stic_id'=>$stic_id],['id'=>$val['id']]);
}
}else{
$data = [
'profix_car' => $static_row['profix_car'] + $val['profix_car'],
'price_all' => $static_row['price_all'] + $price_all,
'price_trucking' => $static_row['price_trucking'] + $val['price_trucking'],
];
$res = $this->biz_settle_static_model->update($data,['id'=>$static_row['id']]);
if($res){
$this->biz_settle_model->update(['stic_id'=>$static_row['id']],['id'=>$val['id']]);
}
}
}
}else{
echo 'finish';
//计算分润
$where = [
'profix_car_after' => 0.00
];
$rows = $this->biz_settle_static_model->select($where,'id asc',$page,$size);
if($rows){
foreach($rows as $val){
$biz_info = $this->biz_info_model->get(['biz_id'=>$val['biz_id']]);
$car_total = $this->biz_settle_model->count(['stic_id'=>$val['id']]);
$data = [
'profix_car_after' => sprintf("%.2f",$val['profix_car']/1.13),
'rent' => $biz_info['rent'],
'wat_ele' => $biz_info['wat_ele'],
'employee_wage' => $biz_info['employee_wage'],
'manager_wage' => $biz_info['manager_wage'],
'commission' => $biz_info['commission']*$car_total,
];
$data['price_total'] = $val['price_all']+$data['profix_car_after'];
$price_need = $data['price_total'] - $data['rent'] - $data['wat_ele'] - $data['employee_wage'] - $data['manager_wage'] - $data['commission'] - $data['price_trucking'];
$partner_rate = $biz_info['rate']/100;
$liche_rate = (100-$biz_info['rate'])/100;
$data['profix_liche'] = $price_need*$liche_rate;
$data['profix_partner'] = $price_need*$partner_rate;
//超出裸车价部分
$overflow = $this->biz_settle_model->sum('oflow_profix_car',['stic_id'=>$val['id']]);
if($overflow['oflow_profix_car']){
$data['profix_partner_oflow'] = sprintf("%.2f",$overflow['oflow_profix_car']/1.13);
}
$this->biz_settle_static_model->update($data,['id'=>$val['id']]);
}
}else{
echo 'finish';
}
}
}
}