Files
2023-05-17 16:04:34 +08:00

124 lines
7.8 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Items_cost_model extends HD_Model
{
private $table_name = 'lc_items_cost';
public function __construct()
{
parent::__construct($this->table_name, 'default');
}
/**
* 更新合计数据
* @param $id
* @return bool
*/
public function update_total($id){
$this->load->model('items/items_model');
$this->load->model('receiver/order/receiver_orders_v2_model');
$this->load->model('auto/auto_business_model');
$this->load->model("biz/biz_model");
$row = $this->get(['id'=>$id]);
if($row){
$item_row = $this->items_model->get(['id'=>$row['item_id']]);
$cost_json = json_decode($row['cost_json'],true);
$promotion_json = json_decode($row['promotion_json'],true);
$srv_json = json_decode($row['srv_json'],true);
$order_row = $this->receiver_orders_v2_model->get(['id'=>$row['o_id']], 'id, info_json, biz_id, (select type from lc_biz where id = lc_receiver_orders_v2.biz_id) as biz_type');
$biz_type = $order_row['biz_type'];
$info_json = json_decode($order_row['info_json'],true);
$business_id = $info_json['business_id'] ? $info_json['business_id'] : 0;
$business_row = $business_id ? $this->auto_business_model->get(['id'=>$business_id]) : array();
//【销售收入合计】(实际售价+选装实收)
$sale_price = $row['price'] + $srv_json['price_fine_select'];
//【采购及加装成本合计】(采购成本 + 选装成本 + 选装工时费 )
$buy_price = $item_row['buy_price'] + $cost_json['select_price'] + $cost_json['labor_price'];
//【促销成本合计】(销售佣金+其他)
$promotion_price = $promotion_json['sale_price'] + $promotion_json['other'];
#if ($biz_type == 3 && $business_row && $business_row['proxy_type'] == 1){ # 23-4-04: 不用区分是否票折
# 代理店:【促销成本合计】=(销售佣金+其他);那非代理店,怎么计算?
# 0fun:都一样,默认是0; 可以手工填写
/*if ($biz_type == 3){
$promotion_price = $promotion_json['other'];
}*/
//【整车采购成本】(采购成本-厂家补贴)
$car_buy_price = $item_row['buy_price'] - $promotion_json['factory_price'];
//【整车采购毛利】(销售收入合计 - 整车采购成本 - 促销成本合计 - 选装金额 -选装工时费)
$car_profit_price = $sale_price - $car_buy_price - $promotion_price - $cost_json['select_price'] - $cost_json['labor_price'];
/*
水平
品牌店按现有逻辑 (1)
合伙店取商务政策的固定值 (2)
代理店没有水平业务 (3)
*/
$insurance_price = $fee_carno_price = $loan_price = $loan_price0 = $srv_price = 0;
if ($biz_type == 1){
//【保险收入合计】
$insurance_price = $srv_json['business_ins_price']+$srv_json['insurance_ins_price']+$srv_json['accident_ins_price']-$srv_json['back_price'];
//【挂牌收入合计】
$fee_carno_price = $srv_json['fee_carno'] - $srv_json['cb_fee_carno'];
//【按揭收入合计】(按揭综合服务费+按揭解抵服务费+利息补贴收入+金融公司手续费收入+其他收入-其他支出) # 23-04-04: 手续费 跟 服务费 分开
$loan_price = $srv_json['loan_srv_price']+$srv_json['loan_srv']+$srv_json['loan_offset_price']+$srv_json['loan_subsidy_price']+$srv_json['commission_price']+$srv_json['loan_in_price']-$srv_json['loan_out_price'];
// 首付按揭收入合计
$loan_price0 = $srv_json['loan_srv_price0']+$srv_json['loan_srv0']+$srv_json['loan_offset_price0']+$srv_json['loan_subsidy_price0']+$srv_json['commission_price0']+$srv_json['loan_in_price0']-$srv_json['loan_out_price0'];
//【水平业务总毛利】(保险收入合计+挂牌收入合计+按揭收入合计+首付按揭收入合计+其他收入-其他支出)
$srv_price = $insurance_price+$fee_carno_price+$loan_price+$loan_price0+$srv_json['other_in_price']-$srv_json['other_out_price'];
}
elseif ($biz_type == 2){
$insurance_price = $row['insurance_price'];
$fee_carno_price = $row['fee_carno_price'];
$loan_price = $row['loan_price'];
$srv_price = $insurance_price+$fee_carno_price+$loan_price;
}
elseif ($biz_type == 3){
# 23-04-03: 按揭, 350600 代理店按所在城市的品牌店处理; 23-04-04: 加多一个城市,宁德
$biz = $this->biz_model->get(['id'=>$order_row['biz_id']]);
$city_ids_force = $this->receiver_orders_v2_model->get_city_ids_force();
if (in_array($biz['city_id'], $city_ids_force)){
$biz_force = $this->biz_model->get(['city_id'=>$biz['city_id'], 'type'=>1, 'status'=>1]);
if ($biz_force){
//【按揭收入合计】(按揭综合服务费+按揭解抵服务费+利息补贴收入+金融公司手续费收入+其他收入-其他支出)
$loan_price = $srv_json['loan_srv_price']+$srv_json['loan_srv']+$srv_json['loan_offset_price']+$srv_json['loan_subsidy_price']+$srv_json['commission_price']+$srv_json['loan_in_price']-$srv_json['loan_out_price'];
// 首付按揭收入合计
$loan_price0 = $srv_json['loan_srv_price0']+$srv_json['loan_srv0']+$srv_json['loan_offset_price0']+$srv_json['loan_subsidy_price0']+$srv_json['commission_price0']+$srv_json['loan_in_price0']-$srv_json['loan_out_price0'];
//【水平业务总毛利】(保险收入合计+挂牌收入合计+按揭收入合计+首付按揭收入合计+其他收入-其他支出)
$srv_price = $insurance_price+$fee_carno_price+$loan_price+$loan_price0+$srv_json['other_in_price']-$srv_json['other_out_price'];
}
}
}
//【单车总毛利】(整车采购毛利+水平业务总毛利)
$car_price = $car_profit_price + $srv_price;
//【品牌店单车毛利/代理店单车毛利/合伙店采购毛利】(根据门店类型取, 商务政策分润 - 选装金额 - 选装工时费 - 促销成本 + 水平业务总毛利 + (实际售价入 - 商务政策底价))
$dl_car_price = $srv_json['profix_car']-$cost_json['select_price']-$cost_json['labor_price'] - $promotion_price + $srv_price + ($row['price']-$srv_json['price_floor']);
//【品牌单车总毛利】(单车总毛利 - 品牌店单车毛利/代理店单车毛利/合伙店采购毛利)
$brand_car_price = $car_price - $dl_car_price;
$data = [
'sale_price' => $sale_price,
'buy_price' => $buy_price,
'promotion_price' => $promotion_price,
'car_buy_price' => $car_buy_price,
'car_profit_price' => $car_profit_price,
'insurance_price' => $insurance_price,
'fee_carno_price' => $fee_carno_price,
'loan_price' => $loan_price,
'loan_price0' => $loan_price0,
'loan_price_total' => $loan_price + $loan_price0,
'srv_price' => $srv_price,
'car_price' => $car_price,
'dl_car_price' => $dl_car_price,
'brand_car_price' => $brand_car_price,
];
$this->update($data,['id'=>$id]);
return true;
}else{
return false;
}
}
}