Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tl_estate
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hujun
tl_estate
Commits
f8c1da70
Commit
f8c1da70
authored
Sep 20, 2018
by
hujun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
分佣汇总表
parent
d41c5b73
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
252 additions
and
9 deletions
+252
-9
Finance.php
application/index/controller/Finance.php
+154
-0
OPartialCommission.php
application/model/OPartialCommission.php
+88
-0
route.php
application/route.php
+1
-1
commissionTotal.js
public/resource/js/commissionTotal.js
+9
-8
No files found.
application/index/controller/Finance.php
View file @
f8c1da70
...
...
@@ -1305,6 +1305,160 @@ class Finance extends Basic
return
$this
->
response
(
$data
[
'code'
],
$data
[
'msg'
],
$data
[
'data'
]);
}
/**
* 分佣提成汇总表
*
* @return \think\Response
*/
public
function
getCommissionTotalListV2
()
{
if
(
!
$this
->
request
->
isAjax
()
&&
$this
->
params
[
'excel'
]
!=
1
)
{
return
view
(
'commission_total'
);
}
$data
[
'code'
]
=
200
;
$data
[
'msg'
]
=
""
;
$data
[
'data'
]
=
$excel_data
=
[];
$pageNo
=
empty
(
$this
->
params
[
'pageNo'
])
?
1
:
$this
->
params
[
'pageNo'
];
$pageSize
=
empty
(
$this
->
params
[
'pageSize'
])
?
15
:
$this
->
params
[
'pageSize'
];
$where
[
'c.status'
]
=
[
'in'
,
'10,11,13'
];
//10已提交 11审核成功
$where
[
'a.confirm_status'
]
=
1
;
//确认分佣
$operation_start_data
=
$operation_end_data
=
$income_date
=
$operation_date
=
''
;
/**收佣日期 start**/
if
(
!
empty
(
$this
->
params
[
'income_start_date'
])
&&
empty
(
$this
->
params
[
'income_end_date'
]))
{
$where
[]
=
[
'EXP'
,
"d.income_time >
{
$this
->
params
[
'income_start_date'
]
}
or f.operation_date >
{
$this
->
params
[
'income_start_date'
]
}
"
];
$income_date
=
date
(
'Y.m.d'
,
strtotime
(
$this
->
params
[
'income_start_date'
]));
$operation_start_data
=
$this
->
params
[
'income_start_date'
]
.
' 00:00:00'
;
}
if
(
!
empty
(
$this
->
params
[
'income_end_date'
])
&&
empty
(
$this
->
params
[
'income_start_date'
]))
{
$where
[]
=
[
'EXP'
,
" d.income_time <
{
$this
->
params
[
'income_end_date'
]
}
or f.operation_date <
{
$this
->
params
[
'income_start_date'
]
}
"
];
$income_date
=
'-'
.
date
(
'Y.m.d'
,
strtotime
(
$this
->
params
[
'income_end_date'
]));
$operation_end_data
=
$this
->
params
[
'income_end_date'
]
.
' 23:59:59'
;
}
if
(
!
empty
(
$this
->
params
[
'income_start_date'
])
&&
!
empty
(
$this
->
params
[
'income_end_date'
]))
{
$where
[]
=
[
'EXP'
,
"(d.income_time BETWEEN '
{
$this
->
params
[
'income_start_date'
]
}
' and '
{
$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'
]));
$operation_start_data
=
$this
->
params
[
'income_start_date'
]
.
' 00:00:00'
;
$operation_end_data
=
$this
->
params
[
'income_end_date'
]
.
' 23:59:59'
;
}
/**收佣日期 end**/
/**提交成交报告日期 start**/
if
(
!
empty
(
$this
->
params
[
'bargain_start_date'
])
&&
empty
(
$this
->
params
[
'bargain_end_date'
]))
{
$where
[]
=
[
'EXP'
,
"c.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'
]));
$operation_start_data
=
$this
->
params
[
'bargain_start_date'
]
.
' 00:00:00'
;
}
if
(
!
empty
(
$this
->
params
[
'bargain_end_date'
])
&&
empty
(
$this
->
params
[
'bargain_start_date'
]))
{
$where
[]
=
[
'EXP'
,
"c.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'
]));
$operation_end_data
=
$this
->
params
[
'bargain_end_date'
]
.
' 23:59:59'
;
}
if
(
!
empty
(
$this
->
params
[
'bargain_start_date'
])
&&
!
empty
(
$this
->
params
[
'bargain_end_date'
]))
{
$where
[]
=
[
'EXP'
,
"(c.create_time BETWEEN '
{
$this
->
params
[
'bargain_start_date'
]
}
00:00:00' and '
{
$this
->
params
[
'bargain_end_date'
]
}
23:59:59')"
];
$operation_date
=
date
(
'Y.m.d'
,
strtotime
(
$this
->
params
[
'bargain_start_date'
]))
.
'-'
.
date
(
'Y.m.d'
,
strtotime
(
$this
->
params
[
'bargain_end_date'
]));
$operation_start_data
=
$this
->
params
[
'bargain_start_date'
]
.
' 00:00:00'
;
$operation_end_data
=
$this
->
params
[
'bargain_end_date'
]
.
' 23:59:59'
;
}
/**部门id**/
if
(
!
empty
(
$this
->
params
[
'district_id'
]))
{
$where
[
'b.district_id'
]
=
$this
->
params
[
'district_id'
];
}
/**门店名**/
if
(
!
empty
(
$this
->
params
[
'store_id'
]))
{
$where
[
'b.store_id'
]
=
$this
->
params
[
'store_id'
];
}
/**经纪人手机号**/
if
(
!
empty
(
$this
->
params
[
'phone'
]))
{
$where
[
'b.phone'
]
=
[
'like'
,
'%'
.
$this
->
params
[
'phone'
]
.
'%'
];
}
/**经纪人姓名**/
if
(
!
empty
(
$this
->
params
[
'name'
]))
{
$where
[
'b.name'
]
=
[
'like'
,
'%'
.
$this
->
params
[
'name'
]
.
'%'
];
}
$m_bargain
=
new
OPartialCommission
();
$fields
=
'd.income_time,c.create_time,c.id,a.agent_id,b.name,b.phone'
;
if
(
empty
(
$this
->
params
[
'excel'
])
&&
$this
->
params
[
'excel'
]
!=
1
)
{
$result_data
=
$m_bargain
->
getCommissionTotalListV2
(
$pageNo
,
$pageSize
,
'a.agent_id desc'
,
$fields
,
$where
,
$operation_start_data
,
$operation_end_data
);
if
(
$result_data
[
'status'
]
==
'successful'
)
{
$data
[
'data'
][
'list'
]
=
$result_data
[
'data'
];
foreach
(
$data
[
'data'
][
'list'
]
as
$k
=>
$v
)
{
$data
[
'data'
][
'list'
][
$k
][
'income_date'
]
=
$income_date
;
$data
[
'data'
][
'list'
][
$k
][
'operation_date'
]
=
$operation_date
;
$data
[
'data'
][
'list'
][
$k
][
'over_fee'
]
=
$v
[
'practical_fee'
]
-
$v
[
'fee'
];
}
$data
[
'data'
][
'total'
]
=
$m_bargain
->
getCommissionTotalListTotalV2
(
$where
);
}
else
{
$data
[
'code'
]
=
101
;
$data
[
'msg'
]
=
'内部错误'
.
$result_data
[
'msg'
];
}
}
else
{
//导出Excel
$pageSize
=
25000
;
$result_data
=
$m_bargain
->
getCommissionTotalListV2
(
$pageNo
,
$pageSize
,
'a.agent_id desc'
,
$fields
,
$where
,
$operation_start_data
,
$operation_end_data
);
if
(
$result_data
[
'status'
]
==
'succesful'
)
{
$data
=
$result_data
[
'data'
];
foreach
(
$data
as
$k
=>
$v
)
{
$excel_data
[
$k
][
'income_date'
]
=
$income_date
;
//收佣日期
$excel_data
[
$k
][
'operation_date'
]
=
$operation_date
;
//成交日期
$excel_data
[
$k
][
'district_store'
]
=
$v
[
'district_store'
];
//所属部门/门店
$excel_data
[
$k
][
'name'
]
=
$v
[
'name'
]
.
'-'
.
$v
[
'phone'
];
//业务员
$excel_data
[
$k
][
'should_commission'
]
=
$v
[
'should_commission'
];
//应分佣金
$excel_data
[
$k
][
'service_charge'
]
=
$v
[
'service_charge'
];
//手续费
$excel_data
[
$k
][
'cash'
]
=
$v
[
'cash'
];
//现金奖
$excel_data
[
$k
][
'charity_fund'
]
=
$v
[
'charity_fund'
];
//慈善基金
$excel_data
[
$k
][
'practical_fee'
]
=
$v
[
'practical_fee'
];
//实收佣金
$excel_data
[
$k
][
'fee'
]
=
$v
[
'fee'
];
//税费
$excel_data
[
$k
][
'over_fee'
]
=
$v
[
'practical_fee'
]
-
$v
[
'fee'
];
}
$num
=
count
(
$excel_data
)
+
2
;
$excel_data
[
$num
][
'income_time'
]
=
'合计'
;
//收佣日期
$excel_data
[
$num
][
'create_time'
]
=
''
;
//成交日期
$excel_data
[
$num
][
'district_store'
]
=
''
;
//所属部门/门店
$excel_data
[
$num
][
'name'
]
=
''
;
//业务员
$excel_data
[
$num
][
'should_commission'
]
=
"=SUM(E3:E
{
$num
}
)"
;
//应分佣金
$excel_data
[
$num
][
'service_charge'
]
=
"=SUM(F3:F
{
$num
}
)"
;
//手续费
$excel_data
[
$num
][
'cash'
]
=
"=SUM(G3:G
{
$num
}
)"
;
//现金奖
$excel_data
[
$num
][
'charity_fund'
]
=
"=SUM(H3:H
{
$num
}
)"
;
//慈善基金
$excel_data
[
$num
][
'money'
]
=
"=SUM(I3:I
{
$num
}
)"
;
//实收佣金
$excel_data
[
$num
][
'fee'
]
=
"=SUM(J3:J
{
$num
}
)"
;
//税费
$excel_data
[
$num
][
'over_fee'
]
=
"=SUM(K3:K
{
$num
}
)"
;
$export
=
new
ExportExcelUntil
();
$title
=
[
'收佣日期/开票日期'
,
'成交日期/开票日期'
,
'所属部门/门店'
,
'业务员'
,
'应分佣金(元)'
,
'手续费(元)'
,
'现金奖(元)'
,
'慈善基金(元)'
,
'实收佣金(元)'
,
'税费(元)'
,
'最终实收(元)'
];
$export
->
exportTable
(
'分佣提成汇总表'
,
$excel_data
,
11
,
'分佣提成汇总表'
,
$title
);
}
else
{
$data
[
'code'
]
=
101
;
$data
[
'msg'
]
=
'内部错误'
.
$result_data
[
'msg'
];
}
}
return
$this
->
response
(
$data
[
'code'
],
$data
[
'msg'
],
$data
[
'data'
]);
}
/**
* 回到一级审核
*
...
...
application/model/OPartialCommission.php
View file @
f8c1da70
...
...
@@ -289,6 +289,78 @@ class OPartialCommission extends BaseModel
return
$data
;
}
/**
* 分佣提成汇总表
*
* @param int $pageNo
* @param int $pageSize
* @param string $order_
* @param string $field
* @param string $params
* @param $operation_start_data
* @param $operation_end_data
* @return mixed
*/
public
function
getCommissionTotalListV2
(
$pageNo
=
1
,
$pageSize
=
15
,
$order_
=
'a.id desc'
,
$field
=
''
,
$params
=
''
,
$operation_start_data
,
$operation_end_data
)
{
try
{
$data
=
$this
->
alias
(
'a'
)
->
field
(
$field
)
->
join
(
'a_agents b'
,
'a.agent_id = b.id'
,
'left'
)
->
join
(
'o_bargain c'
,
'a.bargain_id = c.id'
,
'left'
)
->
join
(
'o_real_income d'
,
'a.real_income_id = d.id'
,
'left'
)
->
join
(
'o_taxes f'
,
'a.bargain_id = f.bargain_id'
,
'left'
)
->
where
(
$params
)
->
order
(
$order_
)
->
limit
(
$pageSize
)
->
page
(
$pageNo
)
->
group
(
'b.id'
)
->
select
();
$m_agent
=
new
AAgents
();
$m_tax
=
new
OTaxes
();
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'
];
//税费
$data
[
$k
][
'fee'
]
=
$m_tax
->
where
(
'operation_date'
,
'between time'
,
[
$operation_start_data
,
$operation_end_data
])
->
where
(
'agent_id'
,
$v
[
'agent_id'
])
->
sum
(
'fee'
);
//去除多次应分佣金
$should_commission
=
$this
->
where
(
'confirm_date'
,
'between time'
,
[
$operation_start_data
,
$operation_end_data
])
->
where
(
'agent_id'
,
$v
[
'agent_id'
])
->
group
(
'bargain_id'
)
->
column
(
'should_commission'
);
$data
[
$k
][
'should_commission'
]
=
0
;
foreach
(
$should_commission
as
$kk
=>
$vv
)
{
$data
[
$k
][
'should_commission'
]
+=
$vv
;
}
$field_sum
=
'sum(practical_fee) as practical_fee,sum(cash) as cash,sum(real_fee) as real_fee,sum(service_charge) as service_charge,
sum(charity_fund) as charity_fund'
;
//应分佣金
$partial_commission
=
$this
->
field
(
$field_sum
)
->
where
(
'confirm_date'
,
'between time'
,
[
$operation_start_data
,
$operation_end_data
])
->
where
(
'agent_id'
,
$v
[
'agent_id'
])
->
find
();
$data
[
$k
][
'practical_fee'
]
=
$partial_commission
[
'practical_fee'
];
$data
[
$k
][
'cash'
]
=
$partial_commission
[
'cash'
];
$data
[
$k
][
'real_fee'
]
=
$partial_commission
[
'real_fee'
];
$data
[
$k
][
'service_charge'
]
=
$partial_commission
[
'service_charge'
];
$data
[
$k
][
'charity_fund'
]
=
$partial_commission
[
'charity_fund'
];
}
}
$result
[
'status'
]
=
'successful'
;
$result
[
'data'
]
=
$data
;
}
catch
(
\Exception
$e
)
{
$result
[
'status'
]
=
'fail'
;
$result
[
'msg'
]
=
$e
->
getMessage
();
}
return
$result
;
}
/**
* @param $params
* @return int|string
...
...
@@ -304,6 +376,22 @@ class OPartialCommission extends BaseModel
->
count
();
}
/**
* @param $params
* @return int|string
*/
public
function
getCommissionTotalListTotalV2
(
$params
)
{
return
$this
->
alias
(
'a'
)
->
join
(
'a_agents b'
,
'a.agent_id = b.id'
,
'left'
)
->
join
(
'o_bargain c'
,
'a.bargain_id = c.id'
,
'left'
)
->
join
(
'o_real_income d'
,
'a.real_income_id = d.id'
,
'left'
)
->
join
(
'o_taxes f'
,
'a.bargain_id = f.bargain_id'
,
'left'
)
->
where
(
$params
)
->
group
(
'a.agent_id'
)
->
count
();
}
/**
* 检查是否有未结单分佣
*
...
...
application/route.php
View file @
f8c1da70
...
...
@@ -245,7 +245,7 @@ Route::group('index', [
'searchBargainAgents'
=>
[
'index/Finance/searchBargainAgents'
,
[
'method'
=>
'GET'
]
],
//成交报告id获取盘方,客方,反签,独家,合作方
'searchOrderAgents'
=>
[
'index/Finance/searchOrderAgents'
,
[
'method'
=>
'GET'
]
],
//order_id获取盘方,客方,反签,独家,合作方
'getTallAgeList'
=>
[
'index/Finance/getTallAgeList'
,
[
'method'
=>
'GET'
]
],
//税费承担明细表
'getCommissionTotalList'
=>
[
'index/Finance/getCommissionTotalList'
,
[
'method'
=>
'GET'
]
],
//分佣提成汇总表
'getCommissionTotalList'
=>
[
'index/Finance/getCommissionTotalList
V2
'
,
[
'method'
=>
'GET'
]
],
//分佣提成汇总表
'getCollection'
=>
[
'index/Collection/getCollection'
,
[
'method'
=>
'post|get'
]
],
//收款记录
'addRealMoney'
=>
[
'index/Collection/addRealMoney'
,
[
'method'
=>
'post|get'
]
],
//新增实收
'visitShop'
=>
[
'index/Supervise/visitShop'
,
[
'method'
=>
'get'
]
],
//门店拜访
...
...
public/resource/js/commissionTotal.js
View file @
f8c1da70
...
...
@@ -407,14 +407,15 @@ define(['doT', 'text!temp/commissionTotal_template_tpl.html', 'css!style/home.cs
data
:
params
,
dataType
:
'json'
,
success
:
function
(
data
)
{
console
.
log
(
data
);
var
temp
=
document
.
getElementById
(
'commissionTotal_list_tpl'
).
innerHTML
;
var
doTtmpl
=
doT
.
template
(
temp
);
$
(
"#business_list"
).
html
(
doTtmpl
(
data
.
data
.
list
));
console
.
log
(
data
.
data
.
list
);
/*分页代码*/
add_page
(
data
.
data
.
total
,
pageNo
,
business
.
pageSize
,
business
.
getList
);
if
(
data
.
code
==
200
)
{
var
temp
=
document
.
getElementById
(
'commissionTotal_list_tpl'
).
innerHTML
;
var
doTtmpl
=
doT
.
template
(
temp
);
$
(
"#business_list"
).
html
(
doTtmpl
(
data
.
data
.
list
));
/*分页代码*/
add_page
(
data
.
data
.
total
,
pageNo
,
business
.
pageSize
,
business
.
getList
);
}
else
{
alert
(
data
.
msg
);
}
}
});
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment