Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
c2e939f3
Commit
c2e939f3
authored
Nov 03, 2020
by
mobh
Committed by
chenzg
Jul 05, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改问题
parent
f6d57301
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
105 additions
and
85 deletions
+105
-85
src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
+5
-42
src/main/java/cn/timer/api/dao/xcgl/XcglAssoGsjsmxMapper.java
+12
-3
src/main/java/cn/timer/api/dao/xcgl/XcglAssoZxfjkcMapper.java
+1
-1
src/main/java/cn/timer/api/dto/xcgl/SearchSalariedPeopleDto.java
+3
-2
src/main/resources/mapping/xcgl/XcglAssoGsjsmxMapper.xml
+56
-16
src/main/resources/mapping/xcgl/XcglAssoXzdazdyMapper.xml
+11
-5
src/main/resources/mapping/xcgl/XcglAssoZxfjkcMapper.xml
+17
-16
No files found.
src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
View file @
c2e939f3
...
@@ -825,14 +825,6 @@ public class SalaryManagementController {
...
@@ -825,14 +825,6 @@ public class SalaryManagementController {
@ApiOperation
(
value
=
"查询定薪人员/分页"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"查询定薪人员/分页"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
FixedSalarStaff
(
@CurrentUser
UserBean
userBean
,
@RequestBody
SearchSalariedPeopleDto
search
)
{
public
Result
<
Object
>
FixedSalarStaff
(
@CurrentUser
UserBean
userBean
,
@RequestBody
SearchSalariedPeopleDto
search
)
{
search
.
setOrgcode
(
userBean
.
getOrgCode
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
if
((
"0"
).
equals
(
search
.
getStatus
()))
{
//全部
search
.
setStatus
(
""
);
}
else
if
((
"1"
).
equals
(
search
.
getStatus
()))
{
//在职
search
.
setStatus
(
"0"
);
}
else
{
search
.
setStatus
(
"3"
);
}
Page
<
FixedSalaryStaffDto
>
page
=
new
Page
<
FixedSalaryStaffDto
>(
Page
<
FixedSalaryStaffDto
>
page
=
new
Page
<
FixedSalaryStaffDto
>(
search
.
getCurrentPage
()
==
null
?
1
:
search
.
getCurrentPage
(),
search
.
getCurrentPage
()
==
null
?
1
:
search
.
getCurrentPage
(),
search
.
getTotalPage
()
==
null
?
10
:
search
.
getTotalPage
());
search
.
getTotalPage
()
==
null
?
10
:
search
.
getTotalPage
());
...
@@ -2914,15 +2906,7 @@ public class SalaryManagementController {
...
@@ -2914,15 +2906,7 @@ public class SalaryManagementController {
@PostMapping
(
value
=
"/obtainidedu"
)
@PostMapping
(
value
=
"/obtainidedu"
)
@ApiOperation
(
value
=
"获取附加扣除数据"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"获取附加扣除数据"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
ResponseResult
ObtainAdditionalDeduction
(
@CurrentUser
UserBean
userBean
,
@RequestBody
SearchSalariedPeopleDto
search
)
{
public
ResponseResult
ObtainAdditionalDeduction
(
@CurrentUser
UserBean
userBean
,
@RequestBody
SearchSalariedPeopleDto
search
)
{
search
.
setOrgcode
(
userBean
.
getOrgCode
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
if
((
"0"
).
equals
(
search
.
getStatus
()))
{
//全部
search
.
setStatus
(
""
);
}
else
if
((
"1"
).
equals
(
search
.
getStatus
()))
{
//在职
search
.
setStatus
(
"0"
);
}
else
{
search
.
setStatus
(
"3"
);
}
List
<
AdditionalDeductionDto
>
fjkclist
=
xcglassozxfjkcmapper
.
selectAdditionalDeductiontwo
(
search
);
List
<
AdditionalDeductionDto
>
fjkclist
=
xcglassozxfjkcmapper
.
selectAdditionalDeductiontwo
(
search
);
return
new
ResponseResult
().
success
(
"获取附加扣除数据成功"
,
fjkclist
);
return
new
ResponseResult
().
success
(
"获取附加扣除数据成功"
,
fjkclist
);
...
@@ -2939,13 +2923,6 @@ public class SalaryManagementController {
...
@@ -2939,13 +2923,6 @@ public class SalaryManagementController {
search
.
getTotalPage
()
==
null
?
10
:
search
.
getTotalPage
());
search
.
getTotalPage
()
==
null
?
10
:
search
.
getTotalPage
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
if
((
"0"
).
equals
(
search
.
getStatus
()))
{
//全部
search
.
setStatus
(
""
);
}
else
if
((
"1"
).
equals
(
search
.
getStatus
()))
{
//在职
search
.
setStatus
(
"66"
);
}
else
{
search
.
setStatus
(
"3"
);
}
IPage
<
AdditionalDeductionDto
>
pageAs
=
xcglassozxfjkcmapper
.
selectAdditionalDeduction
(
page
,
search
);
IPage
<
AdditionalDeductionDto
>
pageAs
=
xcglassozxfjkcmapper
.
selectAdditionalDeduction
(
page
,
search
);
List
<
AdditionalDeductionDto
>
listAs
=
pageAs
.
getRecords
();
List
<
AdditionalDeductionDto
>
listAs
=
pageAs
.
getRecords
();
...
@@ -3394,18 +3371,11 @@ public class SalaryManagementController {
...
@@ -3394,18 +3371,11 @@ public class SalaryManagementController {
search
.
getTotalPage
()
==
null
?
10
:
search
.
getTotalPage
());
search
.
getTotalPage
()
==
null
?
10
:
search
.
getTotalPage
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
if
((
"0"
).
equals
(
search
.
getStatus
()))
{
//全部
search
.
setStatus
(
""
);
page
.
setTotal
(
xcglassogsjsmxmapper
.
listPageCount
(
search
));
}
else
if
((
"1"
).
equals
(
search
.
getStatus
()))
{
//在职
List
<
XcglAssoGsjsmxDto
>
listAs
=
xcglassogsjsmxmapper
.
listPage
(
search
);
search
.
setStatus
(
"0"
);
}
else
{
search
.
setStatus
(
"3"
);
}
IPage
<
XcglAssoGsjsmxDto
>
pageAs
=
xcglassogsjsmxmapper
.
SelectIndividualincomedetails
(
page
,
search
);
List
<
XcglAssoGsjsmxDto
>
listAs
=
pageAs
.
getRecords
();
return
ResultUtil
.
data
(
page
As
,
listAs
,
"操作成功!"
);
return
ResultUtil
.
data
(
page
,
listAs
,
"操作成功!"
);
}
}
/**
/**
...
@@ -3415,14 +3385,7 @@ public class SalaryManagementController {
...
@@ -3415,14 +3385,7 @@ public class SalaryManagementController {
@ApiOperation
(
value
=
"获取个税明细数据"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"获取个税明细数据"
,
httpMethod
=
"POST"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
IndividualIncomeDetailsAll
(
@CurrentUser
UserBean
userBean
,
@RequestBody
SearchSalariedPeopleDto
search
)
{
public
Result
<
Object
>
IndividualIncomeDetailsAll
(
@CurrentUser
UserBean
userBean
,
@RequestBody
SearchSalariedPeopleDto
search
)
{
search
.
setOrgcode
(
userBean
.
getOrgCode
());
search
.
setOrgcode
(
userBean
.
getOrgCode
());
if
((
"0"
).
equals
(
search
.
getStatus
()))
{
//全部
List
<
XcglAssoGsjsmxDto
>
listAs
=
xcglassogsjsmxmapper
.
SelectIndividualincomedetailsAll
(
search
);
search
.
setStatus
(
""
);
}
else
if
((
"1"
).
equals
(
search
.
getStatus
()))
{
//在职
search
.
setStatus
(
"0"
);
}
else
{
search
.
setStatus
(
"3"
);
}
List
<
XcglAssoGsjsmxDto
>
listAs
=
xcglassogsjsmxmapper
.
SelectIndividualincomedetails
(
search
);
return
ResultUtil
.
data
(
listAs
,
"操作成功!"
);
return
ResultUtil
.
data
(
listAs
,
"操作成功!"
);
}
}
...
...
src/main/java/cn/timer/api/dao/xcgl/XcglAssoGsjsmxMapper.java
View file @
c2e939f3
...
@@ -17,9 +17,18 @@ import cn.timer.api.dto.xcgl.XcglAssoGsjsmxDto;
...
@@ -17,9 +17,18 @@ import cn.timer.api.dto.xcgl.XcglAssoGsjsmxDto;
*/
*/
@Repository
@Repository
public
interface
XcglAssoGsjsmxMapper
extends
BaseMapper
<
XcglAssoGsjsmx
>
{
public
interface
XcglAssoGsjsmxMapper
extends
BaseMapper
<
XcglAssoGsjsmx
>
{
List
<
XcglAssoGsjsmxDto
>
SelectIndividualincomedetails
(
@Param
(
"param"
)
SearchSalariedPeopleDto
searchsalariedpeopledto
);
List
<
XcglAssoGsjsmxDto
>
SelectIndividualincomedetailsAll
(
@Param
(
"param"
)
SearchSalariedPeopleDto
searchsalariedpeopledto
);
IPage
<
XcglAssoGsjsmxDto
>
SelectIndividualincomedetails
(
IPage
<
XcglAssoGsjsmxDto
>
page
,
@Param
(
"param"
)
SearchSalariedPeopleDto
searchsalariedpeopledto
);
/**
* 分页统计总数
* @return
*/
Integer
listPageCount
(
@Param
(
"param"
)
SearchSalariedPeopleDto
searchsalariedpeopledto
);
/**
* 分页数据
* @return
*/
List
<
XcglAssoGsjsmxDto
>
listPage
(
@Param
(
"param"
)
SearchSalariedPeopleDto
searchsalariedpeopledto
);
List
<
XcglAssoGsjsmx
>
Allyearround
(
String
year
,
String
usernum
,
Integer
qyid
);
List
<
XcglAssoGsjsmx
>
Allyearround
(
String
year
,
String
usernum
,
Integer
qyid
);
...
...
src/main/java/cn/timer/api/dao/xcgl/XcglAssoZxfjkcMapper.java
View file @
c2e939f3
...
@@ -23,7 +23,7 @@ public interface XcglAssoZxfjkcMapper extends BaseMapper<XcglAssoZxfjkc> {
...
@@ -23,7 +23,7 @@ public interface XcglAssoZxfjkcMapper extends BaseMapper<XcglAssoZxfjkc> {
int
insertXcglAssoZxfjkc
(
XcglAssoZxfjkc
xcglassozxfjkc
);
int
insertXcglAssoZxfjkc
(
XcglAssoZxfjkc
xcglassozxfjkc
);
List
<
AdditionalDeductionDto
>
selectAdditionalDeductiontwo
(
SearchSalariedPeopleDto
searchsalariedpeopledto
);
List
<
AdditionalDeductionDto
>
selectAdditionalDeductiontwo
(
@Param
(
"param"
)
SearchSalariedPeopleDto
searchsalariedpeopledto
);
int
updateXcglAssoZxfjkc
(
XcglAssoZxfjkc
xcglassozxfjkc
);
int
updateXcglAssoZxfjkc
(
XcglAssoZxfjkc
xcglassozxfjkc
);
...
...
src/main/java/cn/timer/api/dto/xcgl/SearchSalariedPeopleDto.java
View file @
c2e939f3
package
cn
.
timer
.
api
.
dto
.
xcgl
;
package
cn
.
timer
.
api
.
dto
.
xcgl
;
import
java.io.Serializable
;
import
java.io.Serializable
;
import
java.util.List
;
import
cn.timer.api.utils.Page
;
import
cn.timer.api.utils.Page
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
...
@@ -20,8 +21,8 @@ public class SearchSalariedPeopleDto extends Page {
...
@@ -20,8 +21,8 @@ public class SearchSalariedPeopleDto extends Page {
private
static
final
long
serialVersionUID
=
6251994337286870380L
;
private
static
final
long
serialVersionUID
=
6251994337286870380L
;
@ApiModelProperty
(
value
=
"员工状态
"
,
example
=
"员工状态
"
)
@ApiModelProperty
(
value
=
"员工状态
列表 "
,
example
=
"员工状态列表
"
)
String
status
;
List
<
Integer
>
status
;
@ApiModelProperty
(
value
=
"姓名/工号 "
,
example
=
"姓名/工号"
)
@ApiModelProperty
(
value
=
"姓名/工号 "
,
example
=
"姓名/工号"
)
String
text
;
String
text
;
...
...
src/main/resources/mapping/xcgl/XcglAssoGsjsmxMapper.xml
View file @
c2e939f3
...
@@ -34,8 +34,8 @@
...
@@ -34,8 +34,8 @@
<resultMap
id=
"BaseXcglAssoGsjsmxDto"
type=
"cn.timer.api.dto.xcgl.XcglAssoGsjsmxDto"
>
<resultMap
id=
"BaseXcglAssoGsjsmxDto"
type=
"cn.timer.api.dto.xcgl.XcglAssoGsjsmxDto"
>
<result
column=
"phone"
property=
"phone"
/>
<result
column=
"phone"
property=
"phone"
/>
<result
column=
"
user
_num"
property=
"userNum"
/>
<result
column=
"
emp
_num"
property=
"userNum"
/>
<result
column=
"
user
_name"
property=
"userName"
/>
<result
column=
"
emp
_name"
property=
"userName"
/>
<result
column=
"salary_month"
property=
"salaryMonth"
/>
<result
column=
"salary_month"
property=
"salaryMonth"
/>
<result
column=
"tax_month"
property=
"taxMonth"
/>
<result
column=
"tax_month"
property=
"taxMonth"
/>
<result
column=
"thmonth_personal"
property=
"thmonthPersonal"
/>
<result
column=
"thmonth_personal"
property=
"thmonthPersonal"
/>
...
@@ -60,23 +60,63 @@
...
@@ -60,23 +60,63 @@
<result
column=
"cum_ybtse"
property=
"cumYbtse"
/>
<result
column=
"cum_ybtse"
property=
"cumYbtse"
/>
<result
column=
"qyid"
property=
"qyid"
/>
<result
column=
"qyid"
property=
"qyid"
/>
</resultMap>
</resultMap>
<select
id=
"SelectIndividualincomedetails"
resultMap=
"BaseXcglAssoGsjsmxDto"
>
<!-- 分页 -->
select em.phone,
<select
id=
"listPageCount"
resultType=
"java.lang.Integer"
>
gs.*
select count(*)
from xcgl_asso_gsjsmx gs
from yggl_main_emp emp
LEFT JOIN yggl_main_emp as em on em.emp_num = gs.user_num and em.org_code = #{param.orgcode}
where emp.org_code = #{param.orgcode}
where gs.qyid = #{param.orgcode}
<if
test=
"param.status != null and param.status.size() >0"
>
<if
test=
"param.datetime != ''"
>
and emp.job_status in
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
#{item, jdbcType=INTEGER}
</foreach>
</if>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
</if>
</select>
<select
id=
"listPage"
resultMap=
"BaseXcglAssoGsjsmxDto"
>
select emp.phone, emp.emp_num, emp.name as emp_name, gs.*
from (select emp.phone, emp.emp_num, emp.name
from yggl_main_emp emp
where emp.org_code = #{param.orgcode}
<if
test=
"param.status != null and param.status.size() >0"
>
and emp.job_status in
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
#{item, jdbcType=INTEGER}
</foreach>
</if>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
</if>
limit #{param.offset}, #{param.totalPage}) emp
LEFT JOIN xcgl_asso_gsjsmx gs on emp.emp_num = gs.user_num and gs.qyid = #{param.orgcode}
<if
test=
"param.datetime != ''"
>
and gs.salary_month = #{param.datetime}
and gs.salary_month = #{param.datetime}
</if>
</if>
<if
test=
"param.status != ''"
>
and em.job_status = #{param.status}
</if>
<if
test=
"param.text != ''"
>
and (em.`name` like CONCAT('%',#{param.text},'%') or em.emp_num = #{param.text})
</if>
</select>
</select>
<select
id=
"SelectIndividualincomedetailsAll"
resultMap=
"BaseXcglAssoGsjsmxDto"
>
select emp.phone, emp.emp_num, emp.name as emp_name,gs.*
from (select emp.phone, emp.emp_num, emp.name
from yggl_main_emp emp
where emp.org_code = #{param.orgcode}
<if
test=
"param.status != null and param.status.size() >0"
>
and emp.job_status in
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
#{item, jdbcType=INTEGER}
</foreach>
</if>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
</if>
) emp
LEFT JOIN xcgl_asso_gsjsmx gs on emp.emp_num = gs.user_num and gs.qyid = #{param.orgcode}
<if
test=
"param.datetime != ''"
>
and gs.salary_month = #{param.datetime}
</if>
</select>
<select
id=
"Allyearround"
resultMap=
"BaseResultMap"
>
<select
id=
"Allyearround"
resultMap=
"BaseResultMap"
>
select * from xcgl_asso_gsjsmx gs
select * from xcgl_asso_gsjsmx gs
...
...
src/main/resources/mapping/xcgl/XcglAssoXzdazdyMapper.xml
View file @
c2e939f3
...
@@ -175,8 +175,11 @@
...
@@ -175,8 +175,11 @@
<select
id=
"selectFixedSalaryStaffCount"
resultType=
"java.lang.Long"
>
<select
id=
"selectFixedSalaryStaffCount"
resultType=
"java.lang.Long"
>
select COUNT(*) from yggl_main_emp emp
select COUNT(*) from yggl_main_emp emp
where emp.org_code = #{param.orgcode}
where emp.org_code = #{param.orgcode}
<if
test=
"param.status != ''"
>
<if
test=
"param.status != null and param.status.size() >0"
>
and emp.job_status = #{param.status}
and emp.job_status in
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
#{item, jdbcType=INTEGER}
</foreach>
</if>
</if>
<if
test=
"param.text != ''"
>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
...
@@ -209,9 +212,12 @@
...
@@ -209,9 +212,12 @@
xzdaz.xzdadxid as xzdadxid
xzdaz.xzdadxid as xzdadxid
from (select * from yggl_main_emp emp
from (select * from yggl_main_emp emp
where emp.org_code = #{param.orgcode}
where emp.org_code = #{param.orgcode}
<if
test=
"param.status != ''"
>
<if
test=
"param.status != null and param.status.size() >0"
>
and emp.job_status = #{param.status}
and emp.job_status in
</if>
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
#{item, jdbcType=INTEGER}
</foreach>
</if>
<if
test=
"param.text != ''"
>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
</if>
</if>
...
...
src/main/resources/mapping/xcgl/XcglAssoZxfjkcMapper.xml
View file @
c2e939f3
...
@@ -77,13 +77,12 @@
...
@@ -77,13 +77,12 @@
and zxfj.taxmonth = #{param.datetime}
and zxfj.taxmonth = #{param.datetime}
</if>
</if>
where emp.org_code = #{param.orgcode}
where emp.org_code = #{param.orgcode}
<if
test=
"param.status != null and param.status.size() >0"
>
<if
test=
"param.status != '' and param.status != '66'"
>
and emp.job_status in
and emp.job_status = #{param.status}
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
</if>
#{item, jdbcType=INTEGER}
<if
test=
"param.status != '' and param.status == '66'"
>
</foreach>
and emp.job_status in (0,1)
</if>
</if>
<if
test=
"param.text != ''"
>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
</if>
</if>
...
@@ -103,16 +102,18 @@
...
@@ -103,16 +102,18 @@
zxfj.totalmoney as lj
zxfj.totalmoney as lj
from yggl_main_emp emp
from yggl_main_emp emp
LEFT JOIN xcgl_asso_zxfjkc as zxfj on zxfj.userid = emp.emp_num
LEFT JOIN xcgl_asso_zxfjkc as zxfj on zxfj.userid = emp.emp_num
<if
test=
"datetime != ''"
>
<if
test=
"param.datetime != ''"
>
and zxfj.taxmonth = #{datetime}
and zxfj.taxmonth = #{param.datetime}
</if>
where emp.org_code = #{orgcode}
<if
test=
"status != ''"
>
and emp.job_status = #{status}
</if>
</if>
<if
test=
"text != ''"
>
where emp.org_code = #{param.orgcode}
and (emp.`name` like CONCAT('%',#{text},'%') or emp.emp_num = #{text})
<if
test=
"param.status != null and param.status.size() >0"
>
and emp.job_status in
<foreach
collection=
"param.status"
open=
"("
close=
")"
separator=
","
index=
"i"
item=
"item"
>
#{item, jdbcType=INTEGER}
</foreach>
</if>
<if
test=
"param.text != ''"
>
and (emp.`name` like CONCAT('%',#{param.text},'%') or emp.emp_num = #{param.text})
</if>
</if>
</select>
</select>
...
...
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