Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
Tia-dev
Project
Project
Details
Activity
Releases
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
Dida Adams Arizona
Tia-dev
Commits
760e55ed
Commit
760e55ed
authored
Dec 07, 2020
by
r.kurnia
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://103.44.149.204/d.arizona/tia-dev
into rifka
parents
37234e85
b356415d
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
145 additions
and
11 deletions
+145
-11
index.js
src/api/index.js
+4
-0
OperatingIndicatorMR.js
src/container/MonthlyReport/OperatingIndicatorMR.js
+136
-7
ProfitLossMR.js
src/container/MonthlyReport/ProfitLossMR.js
+5
-4
No files found.
src/api/index.js
View file @
760e55ed
...
@@ -275,9 +275,11 @@ const create = (type = "") => {
...
@@ -275,9 +275,11 @@ const create = (type = "") => {
const
checkUploadMonthlyReportTP
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_tp/check_import'
,
body
)
const
checkUploadMonthlyReportTP
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_tp/check_import'
,
body
)
const
checkUploadMonthlyReportFAM
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report/fam/check_import'
,
body
)
const
checkUploadMonthlyReportFAM
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report/fam/check_import'
,
body
)
const
checkUploadMonthlyReportBS
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_bs/check_import'
,
body
)
const
checkUploadMonthlyReportBS
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_bs/check_import'
,
body
)
const
checkUploadMonthlyReportOI
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_oi/check_import'
,
body
)
const
uploadMonthlyReportBS
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_bs/import_monthly_report'
,
body
)
const
uploadMonthlyReportBS
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_bs/import_monthly_report'
,
body
)
const
uploadMonthlyReportFAM
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report/fam/import_monthly_report'
,
body
)
const
uploadMonthlyReportFAM
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report/fam/import_monthly_report'
,
body
)
const
uploadMonthlyReportTP
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_tp/import_monthly_report'
,
body
)
const
uploadMonthlyReportTP
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_tp/import_monthly_report'
,
body
)
const
uploadMonthlyReportOI
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_oi/import_monthly_report'
,
body
)
// MonthlyPL
// MonthlyPL
const
getHierarkiMontlyReportPL
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_pl/get_report_hierarki'
,
body
)
const
getHierarkiMontlyReportPL
=
(
body
)
=>
api
.
post
(
'transaction/monthly_report_pl/get_report_hierarki'
,
body
)
...
@@ -492,12 +494,14 @@ const create = (type = "") => {
...
@@ -492,12 +494,14 @@ const create = (type = "") => {
getHierarkiMontlyReportCAT
,
getHierarkiMontlyReportCAT
,
checkUploadMonthlyReportTP
,
checkUploadMonthlyReportTP
,
checkUploadMonthlyReportFAM
,
checkUploadMonthlyReportFAM
,
checkUploadMonthlyReportOI
,
uploadMonthlyReportPL
,
uploadMonthlyReportPL
,
getMonthlyReport
,
getMonthlyReport
,
checkUploadMonthlyReportBS
,
checkUploadMonthlyReportBS
,
uploadMonthlyReportBS
,
uploadMonthlyReportBS
,
uploadMonthlyReportFAM
,
uploadMonthlyReportFAM
,
uploadMonthlyReportTP
,
uploadMonthlyReportTP
,
uploadMonthlyReportOI
,
getHierarkiMontlyReportCF
getHierarkiMontlyReportCF
}
}
}
}
...
...
src/container/MonthlyReport/OperatingIndicatorMR.js
View file @
760e55ed
...
@@ -237,6 +237,135 @@ export default class OperatingIndicatorMR extends Component {
...
@@ -237,6 +237,135 @@ export default class OperatingIndicatorMR extends Component {
this
.
props
.
onClickClose
()
this
.
props
.
onClickClose
()
}
}
fileHandler
=
(
event
)
=>
{
let
fileObj
=
event
ExcelRenderer
(
fileObj
,
(
err
,
resp
)
=>
{
console
.
log
(
resp
)
if
(
err
)
{
// // console.log(err);
}
else
{
let
isi
=
resp
.
rows
.
slice
(
3
)
// // console.log(isi);
let
payload
=
[]
let
reg
=
/^
[
-+
]?(?:[
0-9
]
+,
)
*
[
0-9
]
+
(?:\.[
0-9
]
+
)?
$/
;
isi
.
map
((
i
,
index
)
=>
{
if
(
i
.
length
>
0
)
{
payload
.
push
({
order
:
i
[
0
]
===
undefined
?
""
:
String
(
i
[
0
]).
trim
(),
item_report_id
:
i
[
1
]
===
undefined
?
""
:
String
(
i
[
1
]).
trim
(),
item_report
:
i
[
2
]
===
undefined
?
""
:
String
(
i
[
2
]).
trim
(),
uom
:
i
[
3
]
===
undefined
?
""
:
String
(
i
[
3
]).
trim
(),
actual
:
i
[
4
]
===
undefined
?
"0"
:
reg
.
test
(
String
(
i
[
4
]))
===
false
?
"0"
:
String
(
i
[
4
]).
trim
(),
mtd_vs_mb
:
i
[
5
]
===
undefined
?
"0"
:
reg
.
test
(
String
(
i
[
5
]))
===
false
?
"0"
:
String
(
i
[
5
]).
trim
(),
mtd_vs_rb
:
i
[
6
]
===
undefined
?
"0"
:
reg
.
test
(
String
(
i
[
6
]))
===
false
?
"0"
:
String
(
i
[
6
]).
trim
(),
})
}
})
let
body
=
{
company_id
:
this
.
props
.
data
.
company
.
company_id
,
periode
:
this
.
props
.
data
.
periode
,
report_id
:
this
.
props
.
data
.
report_id
,
months
:
this
.
props
.
data
.
report_id
===
22
?
1
:
23
?
2
:
24
?
3
:
25
?
4
:
27
?
5
:
28
?
6
:
29
?
7
:
31
?
8
:
32
?
9
:
33
?
10
:
35
?
11
:
36
?
12
:
null
,
monthly_report
:
payload
}
console
.
log
(
body
)
this
.
setState
({
payload
:
body
,
buttonError
:
false
,
judul
:
resp
.
rows
[
1
][
0
]
})
}
});
}
checkUpload
()
{
api
.
create
().
checkUploadMonthlyReportOI
(
this
.
state
.
payload
).
then
(
response
=>
{
// console.log(JSON.stringify(this.state.payload));
console
.
log
(
response
)
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
'success'
)
{
this
.
setState
({
visibleUpload
:
false
,
visibleOI
:
false
,
loading
:
true
})
let
total
=
0
let
dataTable
=
response
.
data
.
data
.
map
((
item
,
index
)
=>
{
console
.
log
(
item
);
if
(
item
.
type_report_id
!=
null
)
{
total
+=
1
}
return
[
item
.
type_report_id
,
item
.
item_report_id
,
item
.
parent
,
item
.
formula
,
item
.
level
,
item
.
item_report
,
item
.
uom
,
item
.
rolling_outlook
,
item
.
master_budget
,
item
.
rolling_budget
,
item
.
actual
,
item
.
amount_act_vs_mb
,
item
.
percent_act_vs_mb
,
item
.
amount_act_vs_rb
,
item
.
percent_act_vs_rb
,
item
.
mtd_vs_mb
,
item
.
mtd_vs_rb
,
item
.
order
,
item
.
error
]
})
this
.
setState
({
dataTable
,
dataLoaded
:
true
,
loading
:
false
,
templateNull
:
total
>
0
?
true
:
false
})
}
}
})
}
uploadOI
(
type
)
{
let
data
=
[]
console
.
log
(
this
.
state
.
dataTable
)
this
.
state
.
dataTable
.
map
(
i
=>
{
data
.
push
({
item_report_id
:
i
[
1
],
uom
:
String
(
i
[
6
]),
rolling_outlook
:
String
(
Number
(
i
[
7
]).
toFixed
(
1
)),
master_budget
:
String
(
Number
(
i
[
8
]).
toFixed
(
1
)),
rolling_budget
:
String
(
Number
(
i
[
9
]).
toFixed
(
1
)),
actual
:
String
(
Number
(
i
[
10
]).
toFixed
(
1
)),
amount_act_vs_mb
:
String
(
Number
(
i
[
11
]).
toFixed
(
1
)),
percent_act_vs_mb
:
String
(
Number
(
i
[
12
]).
toFixed
(
1
)),
amount_act_vs_rb
:
String
(
Number
(
i
[
13
]).
toFixed
(
1
)),
percent_act_vs_rb
:
String
(
Number
(
i
[
14
]).
toFixed
(
1
)),
mtd_vs_mb
:
String
(
Number
(
i
[
15
]).
toFixed
(
1
)),
mtd_vs_rb
:
String
(
Number
(
i
[
16
]).
toFixed
(
1
)),
})
})
let
body
=
{
company_id
:
this
.
props
.
data
.
company
.
company_id
,
operating_indicator_id
:
this
.
props
.
data
.
operatingIndID
,
periode
:
this
.
props
.
data
.
periode
,
report_id
:
this
.
props
.
data
.
report_id
,
status
:
type
,
months
:
this
.
props
.
data
.
report_id
===
22
?
1
:
23
?
2
:
24
?
3
:
25
?
4
:
27
?
5
:
28
?
6
:
29
?
7
:
31
?
8
:
32
?
9
:
33
?
10
:
35
?
11
:
36
?
12
:
null
,
monthly_report
:
data
}
console
.
log
(
data
);
// // console.log(JSON.stringify(body))
api
.
create
(
'UPLOAD'
).
uploadMonthlyReportOI
(
body
).
then
(
response
=>
{
// // console.log(response);
this
.
setState
({
loading
:
false
})
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
"success"
)
{
this
.
props
.
onClickClose
()
this
.
props
.
getReport
()
}
else
{
alert
(
response
.
data
.
status
)
}
}
else
{
alert
(
response
.
problem
)
}
})
}
closeAlert
()
{
this
.
setState
({
alert
:
false
})
}
render
()
{
render
()
{
let
dataTable2
=
this
.
state
.
dataTable
let
dataTable2
=
this
.
state
.
dataTable
const
handleValue
=
(
data
,
type
)
=>
{
const
handleValue
=
(
data
,
type
)
=>
{
...
@@ -472,7 +601,7 @@ export default class OperatingIndicatorMR extends Component {
...
@@ -472,7 +601,7 @@ export default class OperatingIndicatorMR extends Component {
}
}
}
}
},
{
},
{
name
:
"Rolling Outlook (FY2021)"
,
name
:
`Rolling Outlook (FY
${
this
.
props
.
periode
}
)`
,
options
:
{
options
:
{
customHeadRender
:
(
columnMeta
)
=>
(
customHeadRender
:
(
columnMeta
)
=>
(
<
TableCell
style
=
{{
...
style2
,
top
:
0
,
zIndex
:
99
,
backgroundColor
:
'#07a7d0'
,
width
:
96
,
borderLeft
:
'1px #fff solid'
,
borderRight
:
'1px #fff solid'
}}
>
<
TableCell
style
=
{{
...
style2
,
top
:
0
,
zIndex
:
99
,
backgroundColor
:
'#07a7d0'
,
width
:
96
,
borderLeft
:
'1px #fff solid'
,
borderRight
:
'1px #fff solid'
}}
>
...
@@ -544,15 +673,15 @@ export default class OperatingIndicatorMR extends Component {
...
@@ -544,15 +673,15 @@ export default class OperatingIndicatorMR extends Component {
{
/* <TableCell style={{ ...style2, top: 0, zIndex: 99, backgroundColor: '#1c71b8', width: 96 }}>
{
/* <TableCell style={{ ...style2, top: 0, zIndex: 99, backgroundColor: '#1c71b8', width: 96 }}>
<Typography style={{ color: 'white', fontSize: 12, fontWeight: 'bold', textAlign: 'center' }}>{columnMeta.name}</Typography>
<Typography style={{ color: 'white', fontSize: 12, fontWeight: 'bold', textAlign: 'center' }}>{columnMeta.name}</Typography>
</TableCell> */
}
</TableCell> */
}
<
div
style
=
{{
borderBottom
:
"1px #fff solid"
,
backgroundColor
:
'#1c71b8'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
4
3
,
fontSize
:
12
,
fontWeight
:
'bold'
,
padding
:
5
}}
>
{
columnMeta
.
name
}
<
/div
>
<
div
style
=
{{
borderBottom
:
"1px #fff solid"
,
backgroundColor
:
'#1c71b8'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
4
0
,
fontSize
:
12
,
fontWeight
:
'bold'
,
padding
:
5
}}
>
{
columnMeta
.
name
}
<
/div
>
<
div
className
=
"grid grid-3x"
style
=
{{
...
style2
,
color
:
'#fff'
,
fontSize
:
12
,
fontWeight
:
'bold'
,
position
:
"sticky"
}}
>
<
div
className
=
"grid grid-3x"
style
=
{{
...
style2
,
color
:
'#fff'
,
fontSize
:
12
,
fontWeight
:
'bold'
,
position
:
"sticky"
}}
>
<
div
className
=
"column-1"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
}}
>
<
div
className
=
"column-1"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
45
}}
>
<
span
>
{
"Master Budget (MB)"
}
<
/span
>
<
span
>
{
"Master Budget (MB)"
}
<
/span
>
<
/div
>
<
/div
>
<
div
className
=
"column-2"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
}}
>
<
div
className
=
"column-2"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
45
}}
>
<
span
>
{
"Rolling Budget (RB)"
}
<
/span
>
<
span
>
{
"Rolling Budget (RB)"
}
<
/span
>
<
/div
>
<
/div
>
<
div
className
=
"column-3"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
backgroundColor
:
'#37b5e6'
,
height
:
'100%'
}}
>
<
div
className
=
"column-3"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
backgroundColor
:
'#37b5e6'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
45
}}
>
<
span
>
{
"Actual"
}
<
/span
>
<
span
>
{
"Actual"
}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
@@ -1318,7 +1447,7 @@ export default class OperatingIndicatorMR extends Component {
...
@@ -1318,7 +1447,7 @@ export default class OperatingIndicatorMR extends Component {
onClick
=
{()
=>
onClick
=
{()
=>
this
.
setState
({
loading
:
true
,
visibleOI
:
true
},
()
=>
{
this
.
setState
({
loading
:
true
,
visibleOI
:
true
},
()
=>
{
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
get
DataDetail
()
this
.
get
ItemHierarki
()
},
100
)
},
100
)
})}
})}
>
>
...
@@ -1424,7 +1553,7 @@ export default class OperatingIndicatorMR extends Component {
...
@@ -1424,7 +1553,7 @@ export default class OperatingIndicatorMR extends Component {
this
.
setState
({
uploadStatus
:
'idle'
,
percentage
:
'0'
})
this
.
setState
({
uploadStatus
:
'idle'
,
percentage
:
'0'
})
}}
}}
onUpload
=
{()
=>
{
onUpload
=
{()
=>
{
this
.
state
.
judul
===
"MONTHLY REPORT -
OPERATING INDICATOR
"
?
this
.
state
.
judul
===
"MONTHLY REPORT -
MONTHLY REPORT
"
?
this
.
checkUpload
()
:
this
.
checkUpload
()
:
this
.
setState
({
alert
:
true
,
messageAlert
:
"Invalid Template"
,
tipeAlert
:
'warning'
})
this
.
setState
({
alert
:
true
,
messageAlert
:
"Invalid Template"
,
tipeAlert
:
'warning'
})
}}
}}
...
...
src/container/MonthlyReport/ProfitLossMR.js
View file @
760e55ed
...
@@ -742,15 +742,15 @@ export default class ProfitLossMR extends Component {
...
@@ -742,15 +742,15 @@ export default class ProfitLossMR extends Component {
{
/* <TableCell style={{ ...style2, top: 0, zIndex: 99, backgroundColor: '#1c71b8', width: 96 }}>
{
/* <TableCell style={{ ...style2, top: 0, zIndex: 99, backgroundColor: '#1c71b8', width: 96 }}>
<Typography style={{ color: 'white', fontSize: 12, fontWeight: 'bold', textAlign: 'center' }}>{columnMeta.name}</Typography>
<Typography style={{ color: 'white', fontSize: 12, fontWeight: 'bold', textAlign: 'center' }}>{columnMeta.name}</Typography>
</TableCell> */
}
</TableCell> */
}
<
div
style
=
{{
borderBottom
:
"1px #fff solid"
,
backgroundColor
:
'#1c71b8'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
4
3
,
fontSize
:
12
,
fontWeight
:
'bold'
,
padding
:
5
}}
>
{
columnMeta
.
name
}
<
/div
>
<
div
style
=
{{
borderBottom
:
"1px #fff solid"
,
backgroundColor
:
'#1c71b8'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
4
0
,
fontSize
:
12
,
fontWeight
:
'bold'
,
padding
:
5
}}
>
{
columnMeta
.
name
}
<
/div
>
<
div
className
=
"grid grid-3x"
style
=
{{
...
style2
,
color
:
'#fff'
,
fontSize
:
12
,
fontWeight
:
'bold'
,
position
:
"sticky"
}}
>
<
div
className
=
"grid grid-3x"
style
=
{{
...
style2
,
color
:
'#fff'
,
fontSize
:
12
,
fontWeight
:
'bold'
,
position
:
"sticky"
}}
>
<
div
className
=
"column-1"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
}}
>
<
div
className
=
"column-1"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
45
}}
>
<
span
>
{
"Master Budget (MB)"
}
<
/span
>
<
span
>
{
"Master Budget (MB)"
}
<
/span
>
<
/div
>
<
/div
>
<
div
className
=
"column-2"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
}}
>
<
div
className
=
"column-2"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
borderRight
:
"1px #fff solid"
,
backgroundColor
:
'#07a7d0'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
45
}}
>
<
span
>
{
"Rolling Budget (RB)"
}
<
/span
>
<
span
>
{
"Rolling Budget (RB)"
}
<
/span
>
<
/div
>
<
/div
>
<
div
className
=
"column-3"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
backgroundColor
:
'#37b5e6'
,
height
:
'100%'
}}
>
<
div
className
=
"column-3"
style
=
{{
placeSelf
:
'center'
,
textAlign
:
'center'
,
padding
:
5
,
backgroundColor
:
'#37b5e6'
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
height
:
45
}}
>
<
span
>
{
"Actual"
}
<
/span
>
<
span
>
{
"Actual"
}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
...
@@ -1716,6 +1716,7 @@ export default class ProfitLossMR extends Component {
...
@@ -1716,6 +1716,7 @@ export default class ProfitLossMR extends Component {
<
/MuiThemeProvider
>
<
/MuiThemeProvider
>
)}
)}
<
/div
>
<
/div
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
20
}}
>
Last
Updated
by
:
{
this
.
state
.
updateBy
}
<
/Typography
>
{
/* {this.props.isApprover === true || this.state.dataTable.length == 0 ? null :
{
/* {this.props.isApprover === true || this.state.dataTable.length == 0 ? null :
(this.props.lastStatus === 'SUBMIT' || this.props.lastStatus === 'REVISION') && this.props.prevRevision === false && (this.props.status === 'revision' || this.props.status === 'not-yet' || this.props.status === 'draft' || this.props.status === 'submitted') ? */
}
(this.props.lastStatus === 'SUBMIT' || this.props.lastStatus === 'REVISION') && this.props.prevRevision === false && (this.props.status === 'revision' || this.props.status === 'not-yet' || this.props.status === 'draft' || this.props.status === 'submitted') ? */
}
<
div
className
=
"grid grid-2x"
style
=
{{
marginTop
:
20
}}
>
<
div
className
=
"grid grid-2x"
style
=
{{
marginTop
:
20
}}
>
...
...
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