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
5216c22e
Commit
5216c22e
authored
Oct 19, 2023
by
fahrur huzain
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'ENV-DEV' into 'ENV-STAGING'
Env dev See merge request
!2088
parents
f58b2b3a
9913a807
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
320 additions
and
258 deletions
+320
-258
CreateParameter.js
src/container/MasterData/Parameter/CreateParameter.js
+49
-4
BalanceSheetMR.js
src/container/MonthlyReport/BalanceSheetMR.js
+268
-252
BalanceSheetRO.js
src/container/RollingOutlook/BalanceSheetRO.js
+3
-2
No files found.
src/container/MasterData/Parameter/CreateParameter.js
View file @
5216c22e
...
...
@@ -871,7 +871,7 @@ export default class CreateParameter extends Component {
if
(
R
.
isEmpty
(
data
.
maxValue
))
{
}
else
{
if
(
data
.
maxValue
.
match
(
minMaxValidasi
.
minMaxRegex
)
&&
(
this
.
state
.
getTypes
.
setting_group_name
!=
"THRESHOLD_CONTROL"
?
data
.
maxValue
.
substring
(
0
,
1
)
!=
"0"
:
true
)
&&
(
this
.
state
.
getTypes
.
setting_group_name
!=
"THRESHOLD_CONTROL"
?
data
.
maxValue
.
length
<=
minMaxValidasi
.
maxLength
:
true
))
{
this
.
updateParameter
()
this
.
updateParameter
Threshold
()
}
}
}
...
...
@@ -954,11 +954,11 @@ export default class CreateParameter extends Component {
}
else
if
(
this
.
state
.
getTypes
.
setting_group_name
==
"THRESHOLD_VARIANCE"
||
this
.
state
.
getTypes
.
setting_group_name
==
"THRESHOLD_CONTROL"
)
{
if
(
R
.
isEmpty
(
data
.
minValue
))
{
}
else
{
if
(
data
.
minValue
.
match
(
minMaxValidasi
.
minMaxRegex
)
&&
data
.
minValue
.
substring
(
0
,
1
)
!=
"0"
&&
data
.
minValue
.
length
<=
minMaxValidasi
.
minLength
)
{
if
(
data
.
minValue
.
match
(
minMaxValidasi
.
minMaxRegex
)
&&
(
this
.
state
.
getTypes
.
setting_group_name
!=
"THRESHOLD_CONTROL"
?
data
.
minValue
.
substring
(
0
,
1
)
!=
"0"
:
true
)
&&
(
this
.
state
.
getTypes
.
setting_group_name
!=
"THRESHOLD_CONTROL"
?
data
.
minValue
.
length
<=
minMaxValidasi
.
minLength
:
true
)
)
{
if
(
R
.
isEmpty
(
data
.
maxValue
))
{
}
else
{
if
(
data
.
maxValue
.
match
(
minMaxValidasi
.
minMaxRegex
)
&&
data
.
maxValue
.
substring
(
0
,
1
)
!=
"0"
&&
data
.
maxValue
.
length
<=
minMaxValidasi
.
maxLength
)
{
this
.
createParameter
()
if
(
data
.
maxValue
.
match
(
minMaxValidasi
.
minMaxRegex
)
&&
(
this
.
state
.
getTypes
.
setting_group_name
!=
"THRESHOLD_CONTROL"
?
data
.
maxValue
.
substring
(
0
,
1
)
!=
"0"
:
true
)
&&
(
this
.
state
.
getTypes
.
setting_group_name
!=
"THRESHOLD_CONTROL"
?
data
.
maxValue
.
length
<=
minMaxValidasi
.
maxLength
:
true
)
)
{
this
.
createParameter
Threshold
()
}
}
}
...
...
@@ -1358,6 +1358,28 @@ export default class CreateParameter extends Component {
this
.
props
.
updateParameter
(
body
)
}
updateParameterThreshold
()
{
// let char = this.state.value
// let arrayChar = char.split('');
// console.log(char);
let
body
=
{
"setting_id"
:
this
.
state
.
tempData
.
setting_id
,
"setting_group_id"
:
this
.
state
.
getTypes
.
setting_group_id
,
"setting_type_id"
:
this
.
state
.
getParameter
.
setting_type_id
,
"company_id"
:
this
.
state
.
getPerusahaan
.
company_id
,
"reference_id"
:
this
.
state
.
getThresholdCurrency
==
null
?
null
:
this
.
state
.
getThresholdCurrency
.
setting_type_id
,
"description"
:
this
.
state
.
tempData
.
description
,
"orders"
:
this
.
state
.
tempData
.
order
,
"value"
:
this
.
state
.
tempData
.
value
,
"max_value"
:
this
.
state
.
tempData
.
max_value
,
"min_value"
:
this
.
state
.
tempData
.
min_value
,
"start_date"
:
this
.
state
.
tempData
.
start_date
,
"end_date"
:
this
.
state
.
tempData
.
end_date
}
console
.
log
(
body
);
this
.
props
.
updateParameter
(
body
)
}
updateParameterCurrebcyMoneyFormat
()
{
// let char = this.state.value
// let arrayChar = char.split('');
...
...
@@ -1403,6 +1425,29 @@ export default class CreateParameter extends Component {
this
.
props
.
createParameter
(
body
)
}
createParameterThreshold
()
{
let
char
=
this
.
state
.
value
let
arrayChar
=
char
.
split
(
''
);
console
.
log
(
char
);
let
body
=
{
"setting_group_id"
:
this
.
state
.
getTypes
.
setting_group_id
,
"setting_type_id"
:
this
.
state
.
getParameter
.
setting_type_id
,
"company_id"
:
this
.
state
.
getPerusahaan
.
company_id
,
"reference_id"
:
this
.
state
.
getThresholdCurrency
==
null
?
null
:
this
.
state
.
getThresholdCurrency
.
setting_type_id
,
"description"
:
this
.
state
.
description
,
"orders"
:
this
.
state
.
order
,
"value"
:
this
.
state
.
value
,
// convert IDR to IDR mn
"value"
:
this
.
state
.
enableReportName
?
this
.
state
.
value
.
includes
(
"."
)
||
arrayChar
.
length
==
2
?
this
.
state
.
value
:
this
.
state
.
value
/
1000
:
this
.
state
.
value
,
"max_value"
:
this
.
state
.
maxValue
,
"min_value"
:
this
.
state
.
minValue
,
"start_date"
:
this
.
state
.
startDate
,
"end_date"
:
this
.
state
.
endDate
}
console
.
log
(
body
);
this
.
props
.
createParameter
(
body
)
}
createParameterCurrebcyMoneyFormat
()
{
let
char
=
this
.
state
.
value
let
arrayChar
=
char
.
split
(
''
);
...
...
src/container/MonthlyReport/BalanceSheetMR.js
View file @
5216c22e
...
...
@@ -850,9 +850,9 @@ export default class BalanceSheetMR extends Component {
let
selisih
=
Number
(
dataTable2
[
tableMeta
.
rowIndex
][
11
])
let
prevMonth
=
Number
(
String
(
dataTable2
[
tableMeta
.
rowIndex
][
10
]).
includes
(
'-'
)
?
Number
(
dataTable2
[
tableMeta
.
rowIndex
][
10
])
*
-
1
:
dataTable2
[
tableMeta
.
rowIndex
][
10
])
total
=
R
.
equals
(
selisih
/
prevMonth
,
0
)
||
R
.
equals
(
selisih
/
prevMonth
,
NaN
)
||
R
.
equals
(
selisih
/
prevMonth
,
Infinity
)
||
R
.
equals
(
selisih
/
prevMonth
,
-
Infinity
)
?
0
:
(
selisih
/
prevMonth
)
*
100
||
R
.
equals
(
selisih
/
prevMonth
,
NaN
)
||
R
.
equals
(
selisih
/
prevMonth
,
Infinity
)
||
R
.
equals
(
selisih
/
prevMonth
,
-
Infinity
)
?
0
:
(
selisih
/
prevMonth
)
*
100
// dataTable2[tableMeta.rowIndex][tableMeta.columnIndex + type] = String(selisih).includes('-') ? Number(total * -1).toFixed(1) : this.props.defaultCurrency.id == 1 ? fixNumber(Number(total), 1) : Number(total)
...
...
@@ -870,9 +870,9 @@ export default class BalanceSheetMR extends Component {
let
selisih
=
Number
(
dataTable2
[
tableMeta
.
rowIndex
][
13
])
let
prevMonth
=
Number
(
String
(
dataTable2
[
tableMeta
.
rowIndex
][
7
]).
includes
(
'-'
)
?
Number
(
dataTable2
[
tableMeta
.
rowIndex
][
7
])
*
-
1
:
dataTable2
[
tableMeta
.
rowIndex
][
7
])
total
=
R
.
equals
(
selisih
/
prevMonth
,
0
)
||
R
.
equals
(
selisih
/
prevMonth
,
NaN
)
||
R
.
equals
(
selisih
/
prevMonth
,
Infinity
)
||
R
.
equals
(
selisih
/
prevMonth
,
-
Infinity
)
?
0
:
(
selisih
/
prevMonth
)
*
100
||
R
.
equals
(
selisih
/
prevMonth
,
NaN
)
||
R
.
equals
(
selisih
/
prevMonth
,
Infinity
)
||
R
.
equals
(
selisih
/
prevMonth
,
-
Infinity
)
?
0
:
(
selisih
/
prevMonth
)
*
100
// dataTable2[tableMeta.rowIndex][tableMeta.columnIndex + type] = String(selisih).includes('-') ? Number(total * -1).toFixed(1) : this.props.defaultCurrency.id == 1 ? fixNumber(Number(total), 1) : Number(total)
// total = String(selisih).includes('-') && Number(tableMeta.rowData[9]) < Number(tableMeta.rowData[7]) ? Number(total * -1).toFixed(1) : this.props.defaultCurrency.id == 1 ? fixNumber(Number(total), 1) : Number(total)
...
...
@@ -883,9 +883,9 @@ export default class BalanceSheetMR extends Component {
let
selisih
=
Number
(
dataTable2
[
tableMeta
.
rowIndex
][
15
])
let
prevMonth
=
Number
(
String
(
dataTable2
[
tableMeta
.
rowIndex
][
8
]).
includes
(
'-'
)
?
Number
(
dataTable2
[
tableMeta
.
rowIndex
][
8
])
*
-
1
:
dataTable2
[
tableMeta
.
rowIndex
][
8
])
total
=
R
.
equals
(
selisih
/
prevMonth
,
0
)
||
R
.
equals
(
selisih
/
prevMonth
,
NaN
)
||
R
.
equals
(
selisih
/
prevMonth
,
Infinity
)
||
R
.
equals
(
selisih
/
prevMonth
,
-
Infinity
)
?
0
:
(
selisih
/
prevMonth
)
*
100
||
R
.
equals
(
selisih
/
prevMonth
,
NaN
)
||
R
.
equals
(
selisih
/
prevMonth
,
Infinity
)
||
R
.
equals
(
selisih
/
prevMonth
,
-
Infinity
)
?
0
:
(
selisih
/
prevMonth
)
*
100
// dataTable2[tableMeta.rowIndex][tableMeta.columnIndex + type] = String(selisih).includes('-') ? Number(total * -1).toFixed(1) : this.props.defaultCurrency.id == 1 ? fixNumber(Number(total), 1) : Number(total)
// total = String(selisih).includes('-') && Number(tableMeta.rowData[9]) < Number(tableMeta.rowData[8])? Number(total * -1).toFixed(1) : this.props.defaultCurrency.id == 1 ? fixNumber(Number(total), 1) : Number(total)
...
...
@@ -1307,15 +1307,23 @@ export default class BalanceSheetMR extends Component {
<
div
style
=
{{
textAlign
:
'right'
,
width
:
90
}}
>
{
tableMeta
.
rowData
[
0
]
===
4
||
tableMeta
.
rowData
[
0
]
===
1
||
tableMeta
.
rowData
[
0
]
===
7
?
null
:
// this.state.get_for == 'view'?
<
NumberFormat
thousandSeparator
=
{
true
}
style
=
{{
fontSize
:
12
,
textAlign
:
'right'
,
borderColor
:
'transparent'
,
margin
:
0
,
width
:
96
,
backgroundColor
:
'transparent'
}}
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
tableMeta
.
rowData
[
7
]),
1
)
:
Number
(
tableMeta
.
rowData
[
7
])
==
0
?
"0.0"
:
Number
(
tableMeta
.
rowData
[
7
])}
/
>
this
.
state
.
get_for
==
'view'
?
<
NumberFormat
thousandSeparator
=
{
true
}
style
=
{{
fontSize
:
12
,
textAlign
:
'right'
,
borderColor
:
'transparent'
,
margin
:
0
,
width
:
96
,
backgroundColor
:
'transparent'
}}
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
tableMeta
.
rowData
[
7
]),
1
)
:
Number
(
tableMeta
.
rowData
[
7
])
==
0
?
"0.0"
:
fixNumber
(
Number
(
tableMeta
.
rowData
[
7
]))}
/>
:
<
NumberFormat
thousandSeparator
=
{
true
}
style
=
{{
fontSize
:
12
,
textAlign
:
'right'
,
borderColor
:
'transparent'
,
margin
:
0
,
width
:
96
,
backgroundColor
:
'transparent'
}}
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
tableMeta
.
rowData
[
7
]),
1
)
:
Number
(
tableMeta
.
rowData
[
7
])
==
0
?
"0.0"
:
Number
(
tableMeta
.
rowData
[
7
])}
/
>
// :
// tableMeta.rowData[0] === 2 ?
// <span style={{ fontSize: 12, textAlign: 'right' }}>
...
...
@@ -1404,15 +1412,23 @@ export default class BalanceSheetMR extends Component {
<
div
style
=
{{
textAlign
:
'right'
,
width
:
90
}}
>
{
tableMeta
.
rowData
[
0
]
===
4
||
tableMeta
.
rowData
[
0
]
===
1
||
tableMeta
.
rowData
[
0
]
===
7
?
null
:
// this.state.get_for == 'view'?
<
NumberFormat
thousandSeparator
=
{
true
}
style
=
{{
fontSize
:
12
,
textAlign
:
'right'
,
borderColor
:
'transparent'
,
margin
:
0
,
width
:
96
,
backgroundColor
:
'transparent'
}}
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
tableMeta
.
rowData
[
8
]),
1
)
:
Number
(
tableMeta
.
rowData
[
8
])
==
0
?
"0.0"
:
Number
(
tableMeta
.
rowData
[
8
])}
/
>
this
.
state
.
get_for
==
'view'
?
<
NumberFormat
thousandSeparator
=
{
true
}
style
=
{{
fontSize
:
12
,
textAlign
:
'right'
,
borderColor
:
'transparent'
,
margin
:
0
,
width
:
96
,
backgroundColor
:
'transparent'
}}
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
tableMeta
.
rowData
[
8
]),
1
)
:
Number
(
tableMeta
.
rowData
[
8
])
==
0
?
"0.0"
:
fixNumber
(
Number
(
tableMeta
.
rowData
[
8
]))}
/>
:
<
NumberFormat
thousandSeparator
=
{
true
}
style
=
{{
fontSize
:
12
,
textAlign
:
'right'
,
borderColor
:
'transparent'
,
margin
:
0
,
width
:
96
,
backgroundColor
:
'transparent'
}}
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
tableMeta
.
rowData
[
8
]),
1
)
:
Number
(
tableMeta
.
rowData
[
8
])
==
0
?
"0.0"
:
Number
(
tableMeta
.
rowData
[
8
])}
/
>
// :
// tableMeta.rowData[0] === 2 ?
// <span style={{ fontSize: 12, textAlign: 'right' }}>
...
...
@@ -2702,75 +2718,75 @@ export default class BalanceSheetMR extends Component {
<
/Snackbar
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
{
this
.
state
.
visibleBSMR
?
<
Paper
style
=
{{
paddingTop
:
10
}}
>
<
div
style
=
{{
borderBottom
:
'solid 1px #c4c4c4'
}}
>
<
Typography
style
=
{{
fontSize
:
'12px'
,
color
:
'#4b4b4b'
,
margin
:
10
}}
>
Monthly
Report
-
Balance
Sheet
<
/Typography
>
<
/div
>
<
div
style
=
{{
padding
:
20
}}
>
<
div
style
=
{{
display
:
'flex'
,
justifyContent
:
'space-between'
}}
>
<
div
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
{
this
.
props
.
company
.
company_name
}
<
/Typography
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
Period
:
{
String
(
this
.
props
.
month
.
month_value
).
toLocaleUpperCase
()}
{
this
.
props
.
periode
}
(
rev
.{
this
.
props
.
revision
})
<
/Typography
>
{
this
.
props
.
defaultCurrency
.
id
===
1
?
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
in
IDR
mn
<
/Typography
>
:
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
in
USD
thousand
<
/Typography
>
}
<
/div
>
<
div
style
=
{{
width
:
'50%'
}}
>
{
this
.
props
.
isApprover
===
true
||
this
.
state
.
get_for
==
'view'
?
null
// <div style={{ justifyContent: 'flex-end', display: 'flex', flexFlow: 'wrap' }}>
// <a data-tip={'Download'} data-for="download">
// <button
// style={{
// backgroundColor: 'transparent',
// cursor: 'pointer',
// borderColor: 'transparent',
// margin: 5
// }}
// onClick={() =>
// this.setState({ loading: true }, () => {
// setTimeout(() => {
// this.downloadAllData()
// }, 100);
// })}
// >
// <img src={Images.download} />
// </button>
// </a>
// <ReactTooltip border={true} id="download" place="bottom" type="light" effect="solid" />
// </div>
:
<
div
style
=
{{
justifyContent
:
'flex-end'
,
display
:
'flex'
,
flexFlow
:
'wrap'
}}
>
<
a
data
-
tip
=
{
'Download Template'
}
data
-
for
=
"template"
>
<
button
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
margin
:
5
}}
onClick
=
{()
=>
this
.
downloadTemplate
()}
>
<
img
src
=
{
Images
.
template
}
/
>
<
/button
>
<
/a
>
<
ReactTooltip
border
=
{
true
}
id
=
"template"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
a
data
-
tip
=
{
'Upload'
}
data
-
for
=
"upload"
>
<
button
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
margin
:
5
}}
onClick
=
{()
=>
this
.
setState
({
visibleUpload
:
true
})}
>
<
img
src
=
{
Images
.
upload
}
/
>
<
/button
>
<
/a
>
<
ReactTooltip
border
=
{
true
}
id
=
"upload"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
{
/* <a data-tip={'Download'} data-for="download">
<
div
style
=
{{
borderBottom
:
'solid 1px #c4c4c4'
}}
>
<
Typography
style
=
{{
fontSize
:
'12px'
,
color
:
'#4b4b4b'
,
margin
:
10
}}
>
Monthly
Report
-
Balance
Sheet
<
/Typography
>
<
/div
>
<
div
style
=
{{
padding
:
20
}}
>
<
div
style
=
{{
display
:
'flex'
,
justifyContent
:
'space-between'
}}
>
<
div
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
{
this
.
props
.
company
.
company_name
}
<
/Typography
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
Period
:
{
String
(
this
.
props
.
month
.
month_value
).
toLocaleUpperCase
()}
{
this
.
props
.
periode
}
(
rev
.{
this
.
props
.
revision
})
<
/Typography
>
{
this
.
props
.
defaultCurrency
.
id
===
1
?
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
in
IDR
mn
<
/Typography
>
:
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
in
USD
thousand
<
/Typography
>
}
<
/div
>
<
div
style
=
{{
width
:
'50%'
}}
>
{
this
.
props
.
isApprover
===
true
||
this
.
state
.
get_for
==
'view'
?
null
// <div style={{ justifyContent: 'flex-end', display: 'flex', flexFlow: 'wrap' }}>
// <a data-tip={'Download'} data-for="download">
// <button
// style={{
// backgroundColor: 'transparent',
// cursor: 'pointer',
// borderColor: 'transparent',
// margin: 5
// }}
// onClick={() =>
// this.setState({ loading: true }, () => {
// setTimeout(() => {
// this.downloadAllData()
// }, 100);
// })}
// >
// <img src={Images.download} />
// </button>
// </a>
// <ReactTooltip border={true} id="download" place="bottom" type="light" effect="solid" />
// </div>
:
<
div
style
=
{{
justifyContent
:
'flex-end'
,
display
:
'flex'
,
flexFlow
:
'wrap'
}}
>
<
a
data
-
tip
=
{
'Download Template'
}
data
-
for
=
"template"
>
<
button
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
margin
:
5
}}
onClick
=
{()
=>
this
.
downloadTemplate
()}
>
<
img
src
=
{
Images
.
template
}
/
>
<
/button
>
<
/a
>
<
ReactTooltip
border
=
{
true
}
id
=
"template"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
<
a
data
-
tip
=
{
'Upload'
}
data
-
for
=
"upload"
>
<
button
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
margin
:
5
}}
onClick
=
{()
=>
this
.
setState
({
visibleUpload
:
true
})}
>
<
img
src
=
{
Images
.
upload
}
/
>
<
/button
>
<
/a
>
<
ReactTooltip
border
=
{
true
}
id
=
"upload"
place
=
"bottom"
type
=
"light"
effect
=
"solid"
/>
{
/* <a data-tip={'Download'} data-for="download">
<button
style={{
backgroundColor: 'transparent',
...
...
@@ -2789,164 +2805,71 @@ export default class BalanceSheetMR extends Component {
</button>
</a>
<ReactTooltip border={true} id="download" place="bottom" type="light" effect="solid" /> */
}
<
/div
>
}
<
/div
>
}
<
/div
>
<
/div
>
<
/div
>
<
div
style
=
{{
marginTop
:
20
,
width
:
this
.
props
.
width
-
(
this
.
props
.
open
===
true
?
400
:
150
)
}}
>
{
!
this
.
state
.
loading
&&
(
<
MuiThemeProvider
theme
=
{
getMuiTheme
()}
>
<
MUIDataTable
data
=
{
dataTable2
}
columns
=
{
columns
}
options
=
{
options
}
/
>
<
/MuiThemeProvider
>
)}
{
this
.
state
.
get_for
==
'view'
&&
this
.
state
.
viewOnly
&&
<
div
style
=
{{
color
:
'#000'
,
marginTop
:
10
,
fontSize
:
12
}}
>
(
*
)
There
may
be
discrepancies
in
amount
due
to
rounding
<
/div>
}
<
/div
>
<
div
style
=
{{
marginTop
:
20
,
width
:
this
.
props
.
width
-
(
this
.
props
.
open
===
true
?
400
:
150
)
}}
>
{
!
this
.
state
.
loading
&&
(
<
MuiThemeProvider
theme
=
{
getMuiTheme
()}
>
<
MUIDataTable
data
=
{
dataTable2
}
columns
=
{
columns
}
options
=
{
options
}
/
>
<
/MuiThemeProvider
>
)}
{
this
.
state
.
get_for
==
'view'
&&
this
.
state
.
viewOnly
&&
<
div
style
=
{{
color
:
'#000'
,
marginTop
:
10
,
fontSize
:
12
}}
>
(
*
)
There
may
be
discrepancies
in
amount
due
to
rounding
<
/div>
}
<
/div
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
20
}}
>
Last
Updated
by
:
<
/Typography
>
<
div
style
=
{{
marginLeft
:
10
,
overflowY
:
'scroll'
,
height
:
this
.
state
.
updateBy
.
length
<
2
?
25
:
75
,
marginTop
:
10
}}
>
{
this
.
state
.
updateBy
.
length
>
0
?
this
.
state
.
updateBy
.
reverse
().
map
((
item
,
index
)
=>
{
return
(
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
10
,
marginRight
:
5
}}
>
{
item
.
latest_update
}
<
/Typography
>
)
})
:
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
10
,
marginRight
:
5
}}
>-<
/Typography
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
20
}}
>
Last
Updated
by
:
<
/Typography
>
<
div
style
=
{{
marginLeft
:
10
,
overflowY
:
'scroll'
,
height
:
this
.
state
.
updateBy
.
length
<
2
?
25
:
75
,
marginTop
:
10
}}
>
{
this
.
state
.
updateBy
.
length
>
0
?
this
.
state
.
updateBy
.
reverse
().
map
((
item
,
index
)
=>
{
return
(
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
10
,
marginRight
:
5
}}
>
{
item
.
latest_update
}
<
/Typography
>
)
})
:
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
10
,
marginRight
:
5
}}
>-<
/Typography
>
}
}
<
/div
>
<
/div
>
<
/div
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
Notes
:
{
this
.
state
.
notes
}
<
/Typography
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
}}
>
Notes
:
{
this
.
state
.
notes
}
<
/Typography
>
<
div
style
=
{{
display
:
'flex'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
5
,
textDecorationLine
:
'underline'
}}
>
Notes
:
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
5
,
fontWeight
:
'bold'
}}
>
Rolling
Outlook
(
Full
Year
)
or
Rolling
Budget
(
RB
)
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Jan
-
Mar
=
MB
figures
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Apr
-
Jun
=
OL
Q1
figures
or
MB
figures
(
if
OL
Q1
not
available
)
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Jul
-
Sep
=
OL
Q2
figures
or
OL
Q1
(
if
OL
Q2
not
available
)
or
MB
(
if
OL
Q2
and
OL
Q1
not
available
)
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Oct
-
Dec
=
OL
Q3
figures
or
OL
Q2
(
if
OL
Q3
not
available
)
and
consecutive
to
the
MB
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
5
,
textDecorationLine
:
'underline'
}}
>
Notes
:
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
5
,
fontWeight
:
'bold'
}}
>
Rolling
Outlook
(
Full
Year
)
or
Rolling
Budget
(
RB
)
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Jan
-
Mar
=
MB
figures
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Apr
-
Jun
=
OL
Q1
figures
or
MB
figures
(
if
OL
Q1
not
available
)
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Jul
-
Sep
=
OL
Q2
figures
or
OL
Q1
(
if
OL
Q2
not
available
)
or
MB
(
if
OL
Q2
and
OL
Q1
not
available
)
<
/Typography
>
<
/div
>
<
div
style
=
{{
display
:
'flex'
,
paddingLeft
:
10
,
justifyContent
:
'space-between'
,
maxWidth
:
'100%'
,
paddingRight
:
15
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#4b4b4b'
,
marginTop
:
0
}}
>
Period
Oct
-
Dec
=
OL
Q3
figures
or
OL
Q2
(
if
OL
Q3
not
available
)
and
consecutive
to
the
MB
<
/Typography
>
<
/div
>
<
/div
>
{
/* {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') ? */
}
<
div
className
=
"grid grid-2x"
style
=
{{
padding
:
20
}}
>
<
div
className
=
"col-1"
style
=
{{
paddingLeft
:
0
}}
>
<
button
type
=
"button"
onClick
=
{()
=>
this
.
setState
({
loading
:
true
},
()
=>
{
setTimeout
(()
=>
{
this
.
props
.
onClickClose
()
},
100
);
})}
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
}}
>
<
div
style
=
{{
backgroundColor
:
'#019ce5'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#fff'
,
textAlign
:
'center'
}}
>
Back
<
/Typography
>
<
/div
>
<
/button
>
<
/div
>
{
this
.
props
.
isApprover
===
true
?
<
div
className
=
"col-2"
>
<
/div>
:
<
div
className
=
"col-2"
style
=
{{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
maxWidth
:
'100%'
,
paddingRight
:
5
}}
>
{
this
.
state
.
get_for
==
'view'
&&
this
.
state
.
viewOnly
&&
<
button
className
=
"button"
type
=
"button"
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
marginRight
:
20
}}
onClick
=
{()
=>
{
this
.
setState
({
loading
:
true
},
()
=>
{
this
.
handleGetFor
(
'edit'
)
})
}}
>
<
div
style
=
{{
backgroundColor
:
'#fff'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
border
:
'solid 1px #354960'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#354960'
,
textAlign
:
'center'
}}
>
Edit
<
/Typography
>
<
/div
>
<
/button>
}
{
this
.
state
.
get_for
==
'edit'
&&
<
button
className
=
"button"
type
=
"button"
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
marginRight
:
20
}}
onClick
=
{()
=>
{
this
.
setState
({
loading
:
true
,
dataTable
:
dataTable2
},
()
=>
{
setTimeout
(()
=>
{
this
.
handleValidate
()
},
100
);
})
}}
>
<
div
style
=
{{
backgroundColor
:
'#fff'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
border
:
'solid 1px #354960'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#354960'
,
textAlign
:
'center'
}}
>
Calculate
<
/Typography
>
<
/div
>
<
/button>
}
{
this
.
state
.
get_for
===
'edit'
&&
<
button
className
=
"button"
type
=
"button"
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
marginRight
:
20
}}
onClick
=
{()
=>
this
.
state
.
saveDraft
?
this
.
setState
({
alert
:
true
,
messageAlert
:
'Data Incomplete !'
,
tipeAlert
:
'error'
})
:
this
.
state
.
handleDoubleClick
==
1
?
null
:
this
.
setState
({
handleDoubleClick
:
1
,
loading
:
true
},
()
=>
{
this
.
backToMonthlyReport
(
'draft'
)
})
}
>
<
div
style
=
{{
backgroundColor
:
'#354960'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#fff'
,
textAlign
:
'center'
}}
>
Save
as
Draft
<
/Typography
>
<
/div
>
<
/button>
}
{
this
.
state
.
get_for
===
'edit'
&&
<
button
{
/* {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') ? */
}
<
div
className
=
"grid grid-2x"
style
=
{{
padding
:
20
}}
>
<
div
className
=
"col-1"
style
=
{{
paddingLeft
:
0
}}
>
<
button
type
=
"button"
// disabled={this.state.buttonError}
onClick
=
{()
=>
this
.
state
.
buttonError
?
this
.
setState
({
alert
:
true
,
messageAlert
:
'Data incomplete !'
,
tipeAlert
:
'error'
})
:
this
.
state
.
handleDoubleClick
==
1
?
null
:
this
.
setState
({
handleDoubleClick
:
1
},
()
=>
{
this
.
backToMonthlyReport
(
'submitted'
)
})}
onClick
=
{()
=>
this
.
setState
({
loading
:
true
},
()
=>
{
setTimeout
(()
=>
{
this
.
props
.
onClickClose
()
},
100
);
})}
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
...
...
@@ -2954,16 +2877,109 @@ export default class BalanceSheetMR extends Component {
outline
:
'none'
,
}}
>
<
div
style
=
{{
backgroundColor
:
'#
354960
'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#fff'
,
textAlign
:
'center'
}}
>
Save
&
Complete
<
/Typography
>
<
div
style
=
{{
backgroundColor
:
'#
019ce5
'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#fff'
,
textAlign
:
'center'
}}
>
Back
<
/Typography
>
<
/div
>
<
/button>
}
<
/button
>
<
/div
>
}
<
/div
>
{
/* : null
{
this
.
props
.
isApprover
===
true
?
<
div
className
=
"col-2"
>
<
/div>
:
<
div
className
=
"col-2"
style
=
{{
display
:
'flex'
,
justifyContent
:
'flex-end'
,
maxWidth
:
'100%'
,
paddingRight
:
5
}}
>
{
this
.
state
.
get_for
==
'view'
&&
this
.
state
.
viewOnly
&&
<
button
className
=
"button"
type
=
"button"
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
marginRight
:
20
}}
onClick
=
{()
=>
{
this
.
setState
({
loading
:
true
},
()
=>
{
this
.
handleGetFor
(
'edit'
)
})
}}
>
<
div
style
=
{{
backgroundColor
:
'#fff'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
border
:
'solid 1px #354960'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#354960'
,
textAlign
:
'center'
}}
>
Edit
<
/Typography
>
<
/div
>
<
/button>
}
{
this
.
state
.
get_for
==
'edit'
&&
<
button
className
=
"button"
type
=
"button"
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
marginRight
:
20
}}
onClick
=
{()
=>
{
this
.
setState
({
loading
:
true
,
dataTable
:
dataTable2
},
()
=>
{
setTimeout
(()
=>
{
this
.
handleValidate
()
},
100
);
})
}}
>
<
div
style
=
{{
backgroundColor
:
'#fff'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
,
border
:
'solid 1px #354960'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#354960'
,
textAlign
:
'center'
}}
>
Calculate
<
/Typography
>
<
/div
>
<
/button>
}
{
this
.
state
.
get_for
===
'edit'
&&
<
button
className
=
"button"
type
=
"button"
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
marginRight
:
20
}}
onClick
=
{()
=>
this
.
state
.
saveDraft
?
this
.
setState
({
alert
:
true
,
messageAlert
:
'Data Incomplete !'
,
tipeAlert
:
'error'
})
:
this
.
state
.
handleDoubleClick
==
1
?
null
:
this
.
setState
({
handleDoubleClick
:
1
,
loading
:
true
},
()
=>
{
this
.
backToMonthlyReport
(
'draft'
)
})
}
>
<
div
style
=
{{
backgroundColor
:
'#354960'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#fff'
,
textAlign
:
'center'
}}
>
Save
as
Draft
<
/Typography
>
<
/div
>
<
/button>
}
{
this
.
state
.
get_for
===
'edit'
&&
<
button
type
=
"button"
// disabled={this.state.buttonError}
onClick
=
{()
=>
this
.
state
.
buttonError
?
this
.
setState
({
alert
:
true
,
messageAlert
:
'Data incomplete !'
,
tipeAlert
:
'error'
})
:
this
.
state
.
handleDoubleClick
==
1
?
null
:
this
.
setState
({
handleDoubleClick
:
1
},
()
=>
{
this
.
backToMonthlyReport
(
'submitted'
)
})}
style
=
{{
backgroundColor
:
'transparent'
,
cursor
:
'pointer'
,
borderColor
:
'transparent'
,
outline
:
'none'
,
}}
>
<
div
style
=
{{
backgroundColor
:
'#354960'
,
width
:
105
,
height
:
25
,
borderRadius
:
3
,
justifyContent
:
'center'
,
display
:
'flex'
,
alignItems
:
'center'
}}
>
<
Typography
style
=
{{
fontSize
:
'11px'
,
color
:
'#fff'
,
textAlign
:
'center'
}}
>
Save
&
Complete
<
/Typography
>
<
/div
>
<
/button>
}
<
/div
>
}
<
/div
>
{
/* : null
} */
}
<
/Paper>
:
<
/Paper>
:
<
Paper
style
=
{{
paddingTop
:
10
}}
>
<
div
style
=
{{
borderBottom
:
'solid 1px #c4c4c4'
}}
>
<
Typography
style
=
{{
fontSize
:
'12px'
,
color
:
'#4b4b4b'
,
margin
:
10
}}
>
Monthly
Report
-
Balance
Sheet
<
/Typography
>
...
...
src/container/RollingOutlook/BalanceSheetRO.js
View file @
5216c22e
...
...
@@ -1231,7 +1231,8 @@ export default class BalanceSheetRO extends Component {
placeholder
=
""
// disabled={this.props.isApprover? true : (this.state.get_for == 'view'? true : false)}
disabled
=
{
this
.
props
.
quarter
==
'q1'
?
false
:
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
(
this
.
props
.
quarter
==
'q2'
||
this
.
props
.
quarter
==
'q3'
?
(
val
==
""
?
""
:
fixNumber
(
Number
(
val
),
1
))
:
fixNumber
(
Number
(
val
),
1
))
:
(
this
.
props
.
quarter
==
'q2'
||
this
.
props
.
quarter
==
'q3'
?
(
val
==
""
?
""
:
Number
(
val
)
==
0
?
"0.0"
:
Number
(
val
))
:
Number
(
val
)
==
0
?
"0.0"
:
Number
(
val
))}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
val
),
1
)
:
Number
(
val
)
==
0
?
"0.0"
:
Number
(
val
)}
// value={this.props.defaultCurrency.id == 1 ? (this.props.quarter == 'q2' || this.props.quarter == 'q3' ? (val == "" ? "" : fixNumber(Number(val), 1)) : fixNumber(Number(val), 1)) : (this.props.quarter == 'q2' || this.props.quarter == 'q3' ? (val == "" ? "" : Number(val) == 0 ? "0.0" : Number(val)) : Number(val) == 0 ? "0.0" : Number(val))}
onBlur
=
{(
event
)
=>
{
handleChange
(
event
.
target
.
value
,
tableMeta
)
}}
...
...
@@ -2720,7 +2721,7 @@ export default class BalanceSheetRO extends Component {
type
=
"text"
placeholder
=
""
disabled
=
{
true
}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
val
),
1
)
:
Number
(
val
)
==
0
?
"0.0"
:
Number
(
val
)}
value
=
{
this
.
props
.
defaultCurrency
.
id
==
1
?
fixNumber
(
Number
(
val
),
1
)
:
Number
(
val
)
==
0
?
"0.0"
:
fixNumber
(
Number
(
val
),
1
)}
/
>
:
tableMeta
.
rowData
[
0
]
===
2
?
...
...
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