Commit 28258664 authored by hujun's avatar hujun

分佣汇总修改

parent a9ed4450
......@@ -1016,27 +1016,26 @@ class Finance extends Basic
$pageNo = empty($this->params['pageNo']) ? 1 : $this->params['pageNo'];
$pageSize = empty($this->params['pageSize']) ? 15 : $this->params['pageSize'];
$where['c.is_del'] = 0; //订单状态
$where['a.status'] = ['in', '10,11,13']; //10已提交 11审核成功
$where['b.father_id'] = ['<>', 0]; //去除税费总佣金
$where['c.confirm_status'] = 1; //确认分佣
$where['b.status'] = ['in', '10,11,13']; //10已提交 11审核成功
$where[] = ['EXP', '(c.father_id > 0 or c.father_id is NULL)']; //去除税费总佣金
$where['a.confirm_status'] = 1; //确认分佣
$income_date = $operation_date = '';
/**收佣日期 start**/
if (!empty($this->params['income_start_date']) && empty($this->params['income_end_date'])) {
$where[] = [ 'EXP', " f.income_time > {$this->params['income_start_date']} or b.operation_date > {$this->params['income_start_date']}"];
$where[] = [ 'EXP', " f.income_time > {$this->params['income_start_date']} or c.operation_date > {$this->params['income_start_date']}"];
$income_date = date('Y.m.d', strtotime($this->params['income_start_date']));
}
if (!empty($this->params['income_end_date']) && empty($this->params['income_start_date'])) {
$where[] = [ 'EXP', " f.income_time < {$this->params['income_end_date']} or b.operation_date < {$this->params['income_start_date']}"];
$where[] = [ 'EXP', " f.income_time < {$this->params['income_end_date']} or c.operation_date < {$this->params['income_start_date']}"];
$income_date = '-'. date('Y.m.d', strtotime($this->params['income_end_date']));
}
if (!empty($this->params['income_start_date']) && !empty($this->params['income_end_date'])){
$where[] = [ 'EXP', "(f.income_time > {$this->params['income_start_date']} and f.income_time < {$this->params['income_end_date']}) or
(b.operation_date > {$this->params['income_start_date']} or b.operation_date < {$this->params['income_end_date']})"];
(c.operation_date > {$this->params['income_start_date']} or c.operation_date < {$this->params['income_end_date']})"];
$income_date = date('Y.m.d', strtotime($this->params['income_start_date'])) .'-'. date('Y.m.d', strtotime($this->params['income_end_date']));
}
......@@ -1044,18 +1043,18 @@ class Finance extends Basic
/**提交成交报告日期 start**/
if (!empty($this->params['bargain_start_date']) && empty($this->params['bargain_end_date'])) {
$where[] = [ 'EXP', "a.create_time > {$this->params['bargain_start_date']} . ' 00:00:00' or b.operation_date > {$this->params['bargain_start_date']}"];
$where[] = [ 'EXP', "a.create_time > {$this->params['bargain_start_date']} . ' 00:00:00' or c.operation_date > {$this->params['bargain_start_date']}"];
$operation_date = date('Y.m.d', strtotime($this->params['bargain_start_date']));
}
if (!empty($this->params['bargain_end_date']) && empty($this->params['bargain_start_date'])) {
$where[] = [ 'EXP', "a.create_time < {$this->params['bargain_end_date']} . ' 23:59:59' or b.operation_date < {$this->params['bargain_end_date']}"];
$where[] = [ 'EXP', "a.create_time < {$this->params['bargain_end_date']} . ' 23:59:59' or c.operation_date < {$this->params['bargain_end_date']}"];
$operation_date = date('Y.m.d', strtotime($this->params['bargain_end_date']));
}
if (!empty($this->params['bargain_start_date']) && !empty($this->params['bargain_end_date'])) {
$where[] = [ 'EXP', "(a.create_time > '{$this->params['bargain_start_date']} 00:00:00' and a.create_time < '{$this->params['bargain_end_date']} 23:59:59') or
(b.operation_date > {$this->params['bargain_start_date']} and b.operation_date < {$this->params['bargain_end_date']})"];
(c.operation_date > {$this->params['bargain_start_date']} and c.operation_date < {$this->params['bargain_end_date']})"];
$operation_date = date('Y.m.d', strtotime($this->params['bargain_start_date'])) .'-'. date('Y.m.d', strtotime($this->params['bargain_end_date']));
}
......@@ -1079,13 +1078,11 @@ class Finance extends Basic
$where['d.name'] = [ 'like', '%' . $this->params['name'] . '%' ];
}
$m_bargain = new OBargainModel();
$m_bargain = new OPartialCommission();
if (empty($this->params['excel']) && $this->params['excel'] != 1) {
$fields = 'f.income_time,a.create_time,a.id,a.agent_id,sum(b.fee) as fee,sum(c.practical_fee) as practical_fee,sum(c.cash) as cash,';
$fields .= 'sum(b.fee) as fee,sum(c.real_fee) as real_fee,';
$fields .= 'd.name,d.phone';
$fields = 'f.income_time,b.create_time,b.id,b.agent_id,sum(c.fee) as fee,sum(a.practical_fee) as practical_fee,sum(a.cash) as cash,';
$fields .= 'sum(a.real_fee) as real_fee,d.name,d.phone';
$data['data']['list'] = $m_bargain->getCommissionTotalList($pageNo, $pageSize, 'a.id desc', $fields, $where, $whereOr);
foreach ($data['data']['list'] as $k=>$v) {
......@@ -1099,9 +1096,9 @@ class Finance extends Basic
//导出Excel
$fields = 'f.income_time,a.create_time,sum(b.fee) as fee,sum(f.money) as money,sum(c.cash) as cash,';
$fields .= 'sum(c.service_charge) as service_charge,a.agent_id,sum(c.practical_fee) as practical_fee,';
$fields .= 'd.name,d.phone,sum(c.charity_fund) as charity_fund, sum(should_commission) as should_commission';
$fields = 'f.income_time,b.create_time,sum(c.fee) as fee,sum(f.money) as money,sum(a.cash) as cash,';
$fields .= 'sum(a.service_charge) as service_charge,a.agent_id,sum(a.practical_fee) as practical_fee,';
$fields .= 'd.name,d.phone,sum(a.charity_fund) as charity_fund, sum(a.should_commission) as should_commission';
$pageSize = 25000;
$data = $m_bargain->getCommissionTotalList($pageNo, $pageSize, 'a.id desc', $fields, $where, $whereOr);
......
......@@ -12,6 +12,7 @@ namespace app\model;
class OPartialCommission extends BaseModel
{
protected $table = "o_partial_commission";
/**
* 成交报告分佣表
*
......@@ -25,13 +26,14 @@ class OPartialCommission extends BaseModel
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getCommissionBargainList($pageNo, $pageSize, $order_ = 'id desc', $fields, $where) {
$data = $this->field($fields)
public function getCommissionBargainList($pageNo, $pageSize, $order_ = 'id desc', $fields, $where)
{
$data = $this->field($fields)
->alias('a')
->join('o_bargain b', 'a.bargain_id = b.id', 'left')
->join('o_order c', 'b.order_id = c.id', 'left')
->join('g_houses d', 'c.house_id = d.id', 'left')
->join('a_agents e', 'b.agent_id = e.id','left')
->join('a_agents e', 'b.agent_id = e.id', 'left')
->where($where)
->order($order_)
->limit($pageSize)
......@@ -39,30 +41,35 @@ class OPartialCommission extends BaseModel
->select();
$result = [];
$m_agent = new AAgents();
$m_bargain = new OBargainModel();
$m_agent = new AAgents();
$m_bargain = new OBargainModel();
$fields_str = 'a.id,a.name,a.phone,b.store_name,c.district_name';
foreach ($data as $k => $v) {
$result[$k] = $v;
if (isset($v['agent_id'])) {
$agent_data = $m_agent->getStoreDistrict($fields_str, ['a.id'=>$v['agent_id']]);
$result[$k]['agent'] = $agent_data['name'].'-'.$agent_data['phone'];
$result[$k]['district_store'] = $agent_data['district_name'] .'-'.$agent_data['store_name'];
$agent_data = $m_agent->getStoreDistrict($fields_str, [ 'a.id' => $v['agent_id'] ]);
$result[$k]['agent'] = $agent_data['name'] . '-' . $agent_data['phone'];
$result[$k]['district_store'] = $agent_data['district_name'] . '-' . $agent_data['store_name'];
}
if (isset($v['role'])) {
switch ($v['role']) {
case 1 :
$data[$k]['role_name'] = '盘方';break;
$data[$k]['role_name'] = '盘方';
break;
case 2 :
$data[$k]['role_name'] = '客方';break;
$data[$k]['role_name'] = '客方';
break;
case 3 :
$data[$k]['role_name'] = '反签';break;
$data[$k]['role_name'] = '反签';
break;
case 4 :
$data[$k]['role_name'] = '独家';break;
$data[$k]['role_name'] = '独家';
break;
case 5 :
$data[$k]['role_name'] = '合作方';break;
$data[$k]['role_name'] = '合作方';
break;
default :
$data[$k]['role_name'] = '无';
}
......@@ -84,12 +91,13 @@ class OPartialCommission extends BaseModel
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getCommissionBargainColumn($pageNo, $pageSize, $order_ = 'id desc', $fields, $where) {
public function getCommissionBargainColumn($pageNo, $pageSize, $order_ = 'id desc', $fields, $where)
{
$data = $this->alias('a')
->join('o_bargain b', 'a.bargain_id = b.id', 'left')
->join('o_order c', 'b.order_id = c.id', 'left')
->join('g_houses d', 'c.house_id = d.id', 'left')
->join('a_agents e', 'b.agent_id = e.id','left')
->join('a_agents e', 'b.agent_id = e.id', 'left')
->where($where)
->order($order_)
->limit($pageSize)
......@@ -98,22 +106,22 @@ class OPartialCommission extends BaseModel
$result = [];
$m_agent = new AAgents();
$m_agent = new AAgents();
$fields_str = 'a.id,a.name,a.phone,b.store_name,c.district_name';
foreach ($data as $k => $v) {
$result[$k]['confirm_date'] = $v['confirm_date'];
if ($v['agent_id']) {
$agent_data = $m_agent->getStoreDistrict($fields_str, ['a.id'=>$v['agent_id']]);
$result[$k]['district_store'] = $agent_data['store_name'] .'-'.$agent_data['store_name'];
$result[$k]['agent'] = $agent_data['name'].'-'.$agent_data['phone'];
$agent_data = $m_agent->getStoreDistrict($fields_str, [ 'a.id' => $v['agent_id'] ]);
$result[$k]['district_store'] = $agent_data['store_name'] . '-' . $agent_data['store_name'];
$result[$k]['agent'] = $agent_data['name'] . '-' . $agent_data['phone'];
}
$result[$k]['practical_fee'] = $v['practical_fee'];
$result[$k]['scale_fee'] = $v['scale_fee'];
$result[$k]['practical_fee'] = $v['practical_fee'];
$result[$k]['scale_fee'] = $v['scale_fee'];
$result[$k]['service_charge'] = $v['service_charge'];
$result[$k]['charity_fund'] = $v['charity_fund'];
$result[$k]['practical_fee'] = $v['practical_fee'];
$result[$k]['cash'] = $v['cash'];
$result[$k]['real_fee'] = $v['real_fee'];
$result[$k]['charity_fund'] = $v['charity_fund'];
$result[$k]['practical_fee'] = $v['practical_fee'];
$result[$k]['cash'] = $v['cash'];
$result[$k]['real_fee'] = $v['real_fee'];
}
return $result;
}
......@@ -122,12 +130,13 @@ class OPartialCommission extends BaseModel
* @param $where
* @return int|string
*/
public function getCommissionBargainListTotal($where) {
public function getCommissionBargainListTotal($where)
{
return $this->alias('a')
->join('o_bargain b', 'a.bargain_id = b.id', 'left')
->join('o_order c', 'b.order_id = c.id', 'left')
->join('g_houses d', 'c.house_id = d.id', 'left')
->join('a_agents e', 'b.agent_id = e.id','left')
->join('a_agents e', 'b.agent_id = e.id', 'left')
->where($where)
->count();
}
......@@ -138,30 +147,31 @@ class OPartialCommission extends BaseModel
* @param $data
* @return int|string
*/
public function addCommission($data) {
/* $insert_data['id'] = $data['id'];
$insert_data['bargain_id'] = $data['bargain_id']; //成交报告id
$insert_data['practical_fee'] = $data['practical_fee']; //实收佣金
$insert_data['cash'] = $data['cash']; //现金奖
$insert_data['service_charge'] = $data['service_charge']; //手续费
$insert_data['charity_fund'] = $data['charity_fund']; //慈善基金
$insert_data['real_fee'] = $data['real_fee']; //实分佣金
$insert_data['operation_id'] = $agent_id; //操作人id
$insert_data['should_commission'] = $data['should_commission']; //应分佣金
$insert_data['scale'] = $data['scale']; //分佣比例
$insert_data['role'] = $data['role']; //分佣方 1盘方 2客方 3 反签 4独家 5合作方
$insert_data['agent_id'] = $data['agent_id']; //分佣方经纪人
//确认分佣加时间 否则 只是保存分佣数据
if ($data['confirm_date']) {
$insert_data['confirm_date'] = $data['confirm_date'];
$insert_data['confirm_status'] = 1;
}
public function addCommission($data)
{
/* $insert_data['id'] = $data['id'];
$insert_data['bargain_id'] = $data['bargain_id']; //成交报告id
$insert_data['practical_fee'] = $data['practical_fee']; //实收佣金
$insert_data['cash'] = $data['cash']; //现金奖
$insert_data['service_charge'] = $data['service_charge']; //手续费
$insert_data['charity_fund'] = $data['charity_fund']; //慈善基金
$insert_data['real_fee'] = $data['real_fee']; //实分佣金
$insert_data['operation_id'] = $agent_id; //操作人id
$insert_data['should_commission'] = $data['should_commission']; //应分佣金
$insert_data['scale'] = $data['scale']; //分佣比例
$insert_data['role'] = $data['role']; //分佣方 1盘方 2客方 3 反签 4独家 5合作方
$insert_data['agent_id'] = $data['agent_id']; //分佣方经纪人
//确认分佣加时间 否则 只是保存分佣数据
if ($data['confirm_date']) {
$insert_data['confirm_date'] = $data['confirm_date'];
$insert_data['confirm_status'] = 1;
}
if (empty($insert_data['id'])) {
return $this->insert($insert_data);
} else {
return $this->update($insert_data);
}*/
if (empty($insert_data['id'])) {
return $this->insert($insert_data);
} else {
return $this->update($insert_data);
}*/
return $this->saveAll($data);
}
......@@ -175,17 +185,18 @@ class OPartialCommission extends BaseModel
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getCommissionListByBargainId($field,$params){
public function getCommissionListByBargainId($field, $params)
{
$params["a.is_del"] = 0;
$result = $this->field($field)
$result = $this->field($field)
->alias("a")
->join("a_agents b","a.agent_id=b.id","left")
->join("o_bargain c","a.bargain_id=c.id or a.bargain_id = c.father_id","left")
->join("a_agents b", "a.agent_id=b.id", "left")
->join("o_bargain c", "a.bargain_id=c.id or a.bargain_id = c.father_id", "left")
->where($params)
->order("a.create_time desc")
->select();
echo $this->getLastSql();
return $result ;
return $result;
}
......@@ -197,10 +208,70 @@ class OPartialCommission extends BaseModel
* @throws \think\db\exception\BindParamException
* @throws \think\exception\PDOException
*/
public function getBragainScale(int $bargain_id) {
public function getBragainScale(int $bargain_id)
{
$sql = 'SELECT a.bargain_id,a.scale,b.scale_fee,a.agent_id,a.role,substring_index(group_concat(a.id ORDER BY a.id DESC),",",1) AS id
FROM o_partial_commission a LEFT JOIN o_bargain b on a.bargain_id=b.id WHERE a.bargain_id = '.$bargain_id.'
and b.id= '.$bargain_id.' OR b.father_id='.$bargain_id.' GROUP BY role';
FROM o_partial_commission a LEFT JOIN o_bargain b on a.bargain_id=b.id WHERE a.bargain_id = ' . $bargain_id . '
and b.id= ' . $bargain_id . ' OR b.father_id=' . $bargain_id . ' GROUP BY role';
return $this->query($sql);
}
/**
* 分佣提成汇总表
*
* @param int $pageNo
* @param int $pageSize
* @param string $order_
* @param string $field
* @param string $params
* @param $whereOr
* @return false|\PDOStatement|string|\think\Collection
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getCommissionTotalList($pageNo = 1, $pageSize = 15, $order_ = 'a.id desc', $field = '', $params = '', $whereOr = [])
{
$data = $this->alias('a')
->field($field)
->join('o_bargain b', 'a.bargain_id = b.id', 'left')
->join('o_taxes c', 'b.id = c.bargain_id', 'left')
->join('o_real_income f', 'b.id = f.bargain_id', 'left')
->join('a_agents d', 'a.agent_id = d.id', 'left')
->where($params)
->whereOr($whereOr)
->order($order_)
->limit($pageSize)
->page($pageNo)
->group('a.agent_id')
->select();
$m_agent = new AAgents();
foreach ($data as $k => $v) {
if (isset($v['agent_id'])) {
$district_store = $m_agent->getStoreDistrict('store_name,district_name', [ 'a.id' => $v['agent_id'] ]);
$data[$k]['district_store'] = $district_store['district_name'] . '-' . $district_store['store_name'];
}
}
return $data;
}
/**
* @param $params
* @param array $whereOr
* @return int|string
*/
public function getCommissionTotalListTotal($params, $whereOr = [])
{
return $this->alias('a')
->join('o_bargain b', 'a.bargain_id = b.id', 'left')
->join('o_taxes c', 'b.id = c.bargain_id', 'left')
->join('o_real_income f', 'b.id = f.bargain_id', 'left')
->join('a_agents d', 'a.agent_id = d.id', 'left')
->where($params)
->whereOr($whereOr)
->group('a.agent_id')
->count();
}
}
\ No newline at end of file
......@@ -9,7 +9,11 @@
<td>[%= it[item]['practical_fee'] %]</td>
<td>[%= it[item]['cash'] %]</td>
<td>[%= it[item]['practical_fee'] %]</td>
<td>[%= it[item]['fee'] %]</td>
<td>
[% if (it[item]['fee']){ %]
[%= it[item]['fee'] %]
[% } %]
</td>
<td>[%= it[item]['over_fee'] %]</td>
</tr>
[% } %]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment