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
8e7966d4
Commit
8e7966d4
authored
Sep 21, 2020
by
Deni Rinaldi
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://103.44.149.204/d.arizona/tia-dev
into deni-dev(pc)
parents
473070f8
89571848
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
475 additions
and
126 deletions
+475
-126
index.js
src/api/index.js
+2
-1
ApprovalMatrix.js
src/container/ApprovalMatrix/ApprovalMatrix.js
+24
-20
BudgetTahunan.js
src/container/BudgetTahunan.js
+1
-2
TaxPlanning.js
src/container/BudgetTahunan/TaxPlanning.js
+76
-51
AllDocument.js
src/container/DocumentManagement/AllDocument.js
+310
-0
DocumentManagement.js
src/container/DocumentManagement/DocumentManagement.js
+62
-52
No files found.
src/api/index.js
View file @
8e7966d4
...
@@ -206,7 +206,8 @@ const create = (type = "") => {
...
@@ -206,7 +206,8 @@ const create = (type = "") => {
const
uploadFoto
=
(
body
)
=>
api
.
post
(
'attachment/upload_foto'
,
body
)
const
uploadFoto
=
(
body
)
=>
api
.
post
(
'attachment/upload_foto'
,
body
)
// MANAGEMENT DOCUMENT
// MANAGEMENT DOCUMENT
const
getDocumentCategory
=
(
body
)
=>
api
.
post
(
'setting/get_all_setting_document_category'
,
body
)
// const getDocumentCategory = (body) => api.post('setting/get_all_setting_document_category', body)
const
getDocumentCategory
=
()
=>
api
.
get
(
'setting/get_all_setting_document_category'
)
const
getAllDocument
=
(
body
)
=>
api
.
post
(
'document/get_all_document'
,
body
)
const
getAllDocument
=
(
body
)
=>
api
.
post
(
'document/get_all_document'
,
body
)
const
uploadDocument
=
(
body
)
=>
api
.
post
(
'document/upload_document'
,
body
)
const
uploadDocument
=
(
body
)
=>
api
.
post
(
'document/upload_document'
,
body
)
const
updateDocument
=
(
body
)
=>
api
.
post
(
'document/update_document'
,
body
)
const
updateDocument
=
(
body
)
=>
api
.
post
(
'document/update_document'
,
body
)
...
...
src/container/ApprovalMatrix/ApprovalMatrix.js
View file @
8e7966d4
import
React
,
{
Component
}
from
'react'
;
import
React
,
{
Component
}
from
'react'
;
import
{
Container
,
Row
,
Col
}
from
"react-bootstrap"
;
import
{
Container
,
Row
,
Col
}
from
"react-bootstrap"
;
import
{
makeStyles
,
createMuiTheme
,
MuiThemeProvider
,
withStyles
}
from
'@material-ui/core/styles'
;
import
{
makeStyles
,
createMuiTheme
,
MuiThemeProvider
}
from
'@material-ui/core/styles'
;
import
{
TextField
,
InputBase
,
Snackbar
}
from
"@material-ui/core"
;
import
{
TextField
,
InputBase
,
Snackbar
,
withStyles
,
Tooltip
}
from
"@material-ui/core"
;
import
{
ExcelRenderer
}
from
'react-excel-renderer'
;
import
{
ExcelRenderer
}
from
'react-excel-renderer'
;
import
Images
from
'../../assets/Images'
;
import
Images
from
'../../assets/Images'
;
import
MUIDataTable
from
"mui-datatables"
;
import
MUIDataTable
from
"mui-datatables"
;
...
@@ -17,6 +17,16 @@ import api from "../../api";
...
@@ -17,6 +17,16 @@ import api from "../../api";
import
Constant
from
'../../library/Constant'
;
import
Constant
from
'../../library/Constant'
;
import
{
css
}
from
"@emotion/core"
;
import
{
css
}
from
"@emotion/core"
;
import
PropagateLoader
from
"react-spinners/PropagateLoader"
import
PropagateLoader
from
"react-spinners/PropagateLoader"
const
LightTooltip
=
withStyles
((
theme
)
=>
({
tooltip
:
{
backgroundColor
:
theme
.
palette
.
common
.
white
,
color
:
'rgba(0, 0, 0, 0.87)'
,
boxShadow
:
theme
.
shadows
[
1
],
fontSize
:
11
,
},
}))(
Tooltip
);
var
ct
=
require
(
"../../library/CustomTable"
);
var
ct
=
require
(
"../../library/CustomTable"
);
const
getMuiTheme
=
()
=>
createMuiTheme
(
ct
.
customTable
());
const
getMuiTheme
=
()
=>
createMuiTheme
(
ct
.
customTable
());
const
options
=
ct
.
customOptions
();
const
options
=
ct
.
customOptions
();
...
@@ -66,7 +76,6 @@ export default class ApprovalMatrix extends Component {
...
@@ -66,7 +76,6 @@ export default class ApprovalMatrix extends Component {
let
isi
=
resp
.
rows
.
slice
(
3
)
let
isi
=
resp
.
rows
.
slice
(
3
)
let
payload
=
[]
let
payload
=
[]
isi
.
map
((
item
,
index
)
=>
{
isi
.
map
((
item
,
index
)
=>
{
console
.
log
(
item
)
if
(
item
.
length
>
0
)
{
if
(
item
.
length
>
0
)
{
payload
.
push
({
payload
.
push
({
id
:
index
+
1
,
id
:
index
+
1
,
...
@@ -173,12 +182,11 @@ export default class ApprovalMatrix extends Component {
...
@@ -173,12 +182,11 @@ export default class ApprovalMatrix extends Component {
return
(
return
(
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
<
a
data
-
tip
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
data
-
for
=
"email"
>
<
LightTooltip
title
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
arrow
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
/
a
>
:
<
/
LightTooltip
>
:
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
}
}
<
ReactTooltip
border
=
{
true
}
id
=
"email"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
/div
>
<
/div
>
);
);
}
}
...
@@ -198,12 +206,11 @@ export default class ApprovalMatrix extends Component {
...
@@ -198,12 +206,11 @@ export default class ApprovalMatrix extends Component {
return
(
return
(
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
<
a
data
-
tip
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
data
-
for
=
"fullname"
>
<
LightTooltip
title
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
arrow
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
}
<
/span
>
<
/
a
>
:
<
/
LightTooltip
>
:
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
}
<
/span
>
}
}
<
ReactTooltip
border
=
{
true
}
id
=
"fullname"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
/div
>
<
/div
>
);
);
}
}
...
@@ -223,12 +230,11 @@ export default class ApprovalMatrix extends Component {
...
@@ -223,12 +230,11 @@ export default class ApprovalMatrix extends Component {
return
(
return
(
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
<
a
data
-
tip
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
data
-
for
=
"operatorname"
>
<
LightTooltip
title
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
arrow
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
/
a
>
:
<
/
LightTooltip
>
:
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
}
}
<
ReactTooltip
border
=
{
true
}
id
=
"operatorname"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
/div
>
<
/div
>
);
);
}
}
...
@@ -248,12 +254,11 @@ export default class ApprovalMatrix extends Component {
...
@@ -248,12 +254,11 @@ export default class ApprovalMatrix extends Component {
return
(
return
(
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
<
a
data
-
tip
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
data
-
for
=
"startdate"
>
<
LightTooltip
title
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
arrow
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
/
a
>
:
<
/
LightTooltip
>
:
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
}
}
<
ReactTooltip
border
=
{
true
}
id
=
"startdate"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
/div
>
<
/div
>
);
);
}
}
...
@@ -273,12 +278,11 @@ export default class ApprovalMatrix extends Component {
...
@@ -273,12 +278,11 @@ export default class ApprovalMatrix extends Component {
return
(
return
(
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
{
tableMeta
.
rowData
[
7
]
!=
null
&&
check
>
-
1
?
<
a
data
-
tip
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
data
-
for
=
"enddate"
>
<
LightTooltip
title
=
{
tableMeta
.
rowData
[
7
][
check
].
message
}
arrow
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
/
a
>
:
<
/
LightTooltip
>
:
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
<
span
style
=
{{
color
:
check
!=
null
&&
check
>
-
1
?
"red"
:
'black'
}}
>
{
val
===
""
?
"Empty"
:
val
}
<
/span
>
}
}
<
ReactTooltip
border
=
{
true
}
id
=
"enddate"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
/div
>
<
/div
>
);
);
}
}
...
...
src/container/BudgetTahunan.js
View file @
8e7966d4
...
@@ -646,8 +646,7 @@ export default class BudgetTahunan extends Component {
...
@@ -646,8 +646,7 @@ export default class BudgetTahunan extends Component {
submissionID
=
{
this
.
state
.
submissionID
}
submissionID
=
{
this
.
state
.
submissionID
}
saveToMasterBudget
=
{
this
.
saveToMasterBudget
.
bind
(
this
)}
saveToMasterBudget
=
{
this
.
saveToMasterBudget
.
bind
(
this
)}
onClickClose
=
{()
=>
this
.
setState
({
visibleTP
:
false
,
visibleBudgetTahunan
:
true
})}
onClickClose
=
{()
=>
this
.
setState
({
visibleTP
:
false
,
visibleBudgetTahunan
:
true
})}
getReport
=
{
this
.
getReport
.
bind
(
this
)}
getReport
=
{
this
.
getCompanyActive
.
bind
(
this
)}
getReportAttachment
=
{
this
.
getReportAttachment
.
bind
(
this
)}
/
>
/
>
)}
)}
{
this
.
state
.
visibleFAM
&&
(
{
this
.
state
.
visibleFAM
&&
(
...
...
src/container/BudgetTahunan/TaxPlanning.js
View file @
8e7966d4
This diff is collapsed.
Click to expand it.
src/container/DocumentManagement/AllDocument.js
0 → 100644
View file @
8e7966d4
This diff is collapsed.
Click to expand it.
src/container/DocumentManagement/DocumentManagement.js
View file @
8e7966d4
...
@@ -6,6 +6,7 @@ import ManualBookTia from './ManualBookTia'
...
@@ -6,6 +6,7 @@ import ManualBookTia from './ManualBookTia'
import
api
from
'../../api'
import
api
from
'../../api'
import
AuditTahunan
from
'./AuditTahunan'
import
AuditTahunan
from
'./AuditTahunan'
import
CreateManagementDoc
from
'./CreateManagementDoc'
import
CreateManagementDoc
from
'./CreateManagementDoc'
import
AllDocument
from
'./AllDocument'
import
QReview
from
'./QReview'
import
QReview
from
'./QReview'
import
BOD
from
'./BOD'
import
BOD
from
'./BOD'
import
ManualBookETMS
from
'./ManualBookETMS'
import
ManualBookETMS
from
'./ManualBookETMS'
...
@@ -57,7 +58,7 @@ export default class DocumentManagement extends Component {
...
@@ -57,7 +58,7 @@ export default class DocumentManagement extends Component {
selectTab
=
(
event
,
newEvent
)
=>
{
selectTab
=
(
event
,
newEvent
)
=>
{
this
.
setState
({
tab
:
newEvent
})
this
.
setState
({
tab
:
newEvent
})
console
.
log
(
this
.
state
.
tab
)
//
console.log(this.state.tab)
}
}
componentDidMount
()
{
componentDidMount
()
{
...
@@ -66,13 +67,13 @@ export default class DocumentManagement extends Component {
...
@@ -66,13 +67,13 @@ export default class DocumentManagement extends Component {
}
}
getDataDocument
(
id
)
{
getDataDocument
(
id
)
{
let
payload
=
{
//
let payload = {
"setting_group_id"
:
7
,
//
"setting_group_id": 7,
"setting_type_id"
:
167
,
//
"setting_type_id": 167,
"company_id"
:
0
//
"company_id": 0
}
//
}
api
.
create
().
getDocumentCategory
(
payload
).
then
(
response
=>
{
api
.
create
().
getDocumentCategory
().
then
(
response
=>
{
console
.
log
(
response
);
console
.
log
(
response
);
if
(
response
)
{
if
(
response
)
{
if
(
response
.
data
.
status
===
"success"
)
{
if
(
response
.
data
.
status
===
"success"
)
{
...
@@ -82,7 +83,7 @@ export default class DocumentManagement extends Component {
...
@@ -82,7 +83,7 @@ export default class DocumentManagement extends Component {
loadTable
:
true
,
loadTable
:
true
,
refresh
:
id
===
undefined
?
''
:
'create'
refresh
:
id
===
undefined
?
''
:
'create'
})
})
console
.
log
(
this
.
state
.
listData
)
//
console.log(this.state.listData)
}
else
{
}
else
{
}
}
...
@@ -176,6 +177,7 @@ export default class DocumentManagement extends Component {
...
@@ -176,6 +177,7 @@ export default class DocumentManagement extends Component {
render
()
{
render
()
{
return
(
return
(
<
div
style
=
{{
height
:
this
.
props
.
height
,
backgroundColor
:
'#f8f8f8'
}}
>
<
div
style
=
{{
height
:
this
.
props
.
height
,
backgroundColor
:
'#f8f8f8'
}}
>
{
/* {this.props.load && ()} */
}
<
Snackbar
open
=
{
this
.
state
.
alert
}
autoHideDuration
=
{
6000
}
onClose
=
{()
=>
this
.
closeAlert
()}
>
<
Snackbar
open
=
{
this
.
state
.
alert
}
autoHideDuration
=
{
6000
}
onClose
=
{()
=>
this
.
closeAlert
()}
>
<
Alert
onClose
=
{()
=>
this
.
closeAlert
()}
severity
=
{
this
.
state
.
tipeAlert
}
>
<
Alert
onClose
=
{()
=>
this
.
closeAlert
()}
severity
=
{
this
.
state
.
tipeAlert
}
>
{
this
.
state
.
messageAlert
}
{
this
.
state
.
messageAlert
}
...
@@ -214,56 +216,64 @@ export default class DocumentManagement extends Component {
...
@@ -214,56 +216,64 @@ export default class DocumentManagement extends Component {
{
this
.
state
.
listData
.
map
((
item
,
index
)
=>
{
{
this
.
state
.
listData
.
map
((
item
,
index
)
=>
{
return
(
return
(
<
Tab
<
Tab
onClick
=
{()
=>
this
.
setState
({
id
:
item
.
setting_id
})}
onClick
=
{()
=>
this
.
setState
({
id
:
item
.
setting_id
,
refresh
:
''
})}
label
=
{
item
.
value
}
label
=
{
item
.
value
}
/
>
/
>
)
)
})}
})}
<
/Tabs
>
<
/Tabs
>
{
this
.
state
.
loadTable
&&
(
{
this
.
state
.
loadTable
&&
(
this
.
state
.
id
===
68542
?
<
AllDocument
<
AuditTahunan
data
=
{
this
.
state
.
listData
[
this
.
state
.
tab
]}
data
=
{
this
.
state
.
listData
[
this
.
state
.
tab
]}
refresh
=
{
this
.
state
.
refresh
}
refresh
=
{
this
.
state
.
refresh
}
btnedit
=
{
this
.
state
.
btnedit
}
btnedit
=
{
this
.
state
.
btnedit
}
btndelete
=
{
this
.
state
.
btndelete
}
btndelete
=
{
this
.
state
.
btndelete
}
load
=
{
this
.
state
.
load
}
load
=
{
this
.
state
.
load
}
setId
=
{
this
.
state
.
id
}
/
>
/
>
:
// this.state.id === 68542 ?
this
.
state
.
id
===
68541
?
// <AuditTahunan
<
ManualBookTia
// data={this.state.listData[this.state.tab]}
data
=
{
this
.
state
.
listData
[
this
.
state
.
tab
]}
// refresh={this.state.refresh}
refresh
=
{
this
.
state
.
refresh
}
// btnedit={this.state.btnedit}
btnedit
=
{
this
.
state
.
btnedit
}
// btndelete={this.state.btndelete}
btndelete
=
{
this
.
state
.
btndelete
}
// load={this.state.load}
load
=
{
this
.
state
.
load
}
// />
/
>
// :
:
// this.state.id === 68541 ?
this
.
state
.
id
===
68544
?
// <ManualBookTia
<
QReview
// data={this.state.listData[this.state.tab]}
data
=
{
this
.
state
.
listData
[
this
.
state
.
tab
]}
// refresh={this.state.refresh}
refresh
=
{
this
.
state
.
refresh
}
// btnedit={this.state.btnedit}
btnedit
=
{
this
.
state
.
btnedit
}
// btndelete={this.state.btndelete}
btndelete
=
{
this
.
state
.
btndelete
}
// load={this.state.load}
load
=
{
this
.
state
.
load
}
// />
/
>
// :
:
// this.state.id === 68544 ?
this
.
state
.
id
===
68543
?
// <QReview
<
BOD
// data={this.state.listData[this.state.tab]}
data
=
{
this
.
state
.
listData
[
this
.
state
.
tab
]}
// refresh={this.state.refresh}
refresh
=
{
this
.
state
.
refresh
}
// btnedit={this.state.btnedit}
btnedit
=
{
this
.
state
.
btnedit
}
// btndelete={this.state.btndelete}
btndelete
=
{
this
.
state
.
btndelete
}
// load={this.state.load}
load
=
{
this
.
state
.
load
}
// />
/
>
// :
// :
// this.state.id === 68543 ?
// this.state.id === 68545 ?
// <BOD
// <ManualBookETMS
// data={this.state.listData[this.state.tab]}
// data={this.state.listData[this.state.tab]}
// refresh={this.state.refresh}
// refresh={this.state.refresh}
// btnedit={this.state.btnedit}
// />
// btndelete={this.state.btndelete}
:
// load={this.state.load}
<
span
>
Coming
Soon
<
/span
>
// />
// // :
// // this.state.id === 68545 ?
// // <ManualBookETMS
// // data={this.state.listData[this.state.tab]}
// // refresh={this.state.refresh}
// // />
// :
// <span>Coming Soon</span>
)}
)}
<
/div
>
<
/div
>
...
...
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