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
7013a73f
Commit
7013a73f
authored
Mar 25, 2021
by
r.kurnia
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
home
parent
115b3b35
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
308 additions
and
6 deletions
+308
-6
index.js
src/api/index.js
+4
-0
HomePage.js
src/container/HomePage.js
+304
-6
No files found.
src/api/index.js
View file @
7013a73f
...
@@ -416,6 +416,8 @@ const create = (type = "") => {
...
@@ -416,6 +416,8 @@ const create = (type = "") => {
const
getListUserSubcoMB
=
(
periode
)
=>
api
.
get
(
`transaction/get_dashboard_sub_co/master_budget/
${
periode
}
`
)
const
getListUserSubcoMB
=
(
periode
)
=>
api
.
get
(
`transaction/get_dashboard_sub_co/master_budget/
${
periode
}
`
)
const
getListUserSubcoMR
=
(
months
,
periode
)
=>
api
.
get
(
`transaction/get_dashboard_sub_co/monthly_report/
${
periode
}
/
${
months
}
`
)
const
getListUserSubcoMR
=
(
months
,
periode
)
=>
api
.
get
(
`transaction/get_dashboard_sub_co/monthly_report/
${
periode
}
/
${
months
}
`
)
const
getListUserSubcoRO
=
(
periode
,
quartal
)
=>
api
.
get
(
`transaction/get_dashboard_sub_co/rolling_outlook/
${
periode
}
/
${
quartal
}
`
)
const
getListUserSubcoOL
=
(
periode
)
=>
api
.
get
(
`transaction/get_dashboard_sub_co/outlook_pa/
${
periode
}
`
)
// Cronjob
// Cronjob
const
getHierarkiCronJobMBPL
=
()
=>
api
.
get
(
'/transaction/report/get_hierarki_master_budget/profit_loss'
)
const
getHierarkiCronJobMBPL
=
()
=>
api
.
get
(
'/transaction/report/get_hierarki_master_budget/profit_loss'
)
...
@@ -678,6 +680,8 @@ const create = (type = "") => {
...
@@ -678,6 +680,8 @@ const create = (type = "") => {
createPeriodeRevisionMonthly
,
createPeriodeRevisionMonthly
,
getListUserSubcoMB
,
getListUserSubcoMB
,
getListUserSubcoMR
,
getListUserSubcoMR
,
getListUserSubcoRO
,
getListUserSubcoOL
,
validateSubmitReportFAM
,
validateSubmitReportFAM
,
createMonthlyReportCF
,
createMonthlyReportCF
,
getReportBSMB
,
getReportBSMB
,
...
...
src/container/HomePage.js
View file @
7013a73f
...
@@ -30,25 +30,39 @@ class HomePage extends Component {
...
@@ -30,25 +30,39 @@ class HomePage extends Component {
isApprover
:
true
,
isApprover
:
true
,
listSubcoMB
:
[],
listSubcoMB
:
[],
listSubcoMR
:
[],
listSubcoMR
:
[],
listSubcoRO
:
[],
listSubcoOL
:
[],
valueSubmit
:
0
,
valueSubmit
:
0
,
listdmb
:
[],
listdmb
:
[],
dataTableMB
:
[],
dataTableMB
:
[],
listPeriodeMB
:
null
,
listPeriodeMB
:
null
,
listPeriodeMR
:
null
,
listPeriodeMR
:
null
,
listPeriodeRO
:
null
,
listPeriodeOL
:
null
,
listMonth
:
null
,
listMonth
:
null
,
periodeMB
:
null
,
periodeMB
:
null
,
periodeMR
:
null
,
periodeMR
:
null
,
periodeRO
:
null
,
periodeOL
:
null
,
month
:
null
,
month
:
null
,
monthCAT
:
null
,
monthCAT
:
null
,
periodeCAT
:
null
,
periodeCAT
:
null
,
loading
:
false
,
loading
:
false
,
accessMB
:
false
,
accessMB
:
false
,
accessMR
:
false
,
accessMR
:
false
,
accessRO
:
false
,
accessOL
:
false
,
company
:
[],
company
:
[],
dataDashboardCAT
:
[],
dataDashboardCAT
:
[],
loading2
:
false
,
loading2
:
false
,
loading3
:
false
,
loading3
:
false
,
parameterPerfom
:
[]
parameterPerfom
:
[],
quarterList
:
[
{
value
:
'q1'
,
name
:
'Q1'
},
{
value
:
'q2'
,
name
:
'Q2'
},
{
value
:
'q3'
,
name
:
'Q3'
},
],
quarter
:
null
}
}
}
}
...
@@ -75,6 +89,8 @@ class HomePage extends Component {
...
@@ -75,6 +89,8 @@ class HomePage extends Component {
// })
// })
this
.
getPermissionMB
()
this
.
getPermissionMB
()
this
.
getPermissionMR
()
this
.
getPermissionMR
()
this
.
getPermissionRO
()
this
.
getPermissionOL
()
this
.
getApprMat
()
this
.
getApprMat
()
// this.getListUserSubco()
// this.getListUserSubco()
this
.
getMonth
()
this
.
getMonth
()
...
@@ -91,9 +107,13 @@ class HomePage extends Component {
...
@@ -91,9 +107,13 @@ class HomePage extends Component {
let
currentYear
=
new
Date
().
getFullYear
()
let
currentYear
=
new
Date
().
getFullYear
()
let
MB
=
[]
let
MB
=
[]
let
MR
=
[]
let
MR
=
[]
let
ROut
=
[]
let
OL
=
[]
for
(
var
i
=
2000
;
i
<=
currentYear
;
i
++
)
{
for
(
var
i
=
2000
;
i
<=
currentYear
;
i
++
)
{
MB
.
push
({
name
:
String
(
i
),
value
:
i
})
MB
.
push
({
name
:
String
(
i
),
value
:
i
})
MR
.
push
({
name
:
String
(
i
),
value
:
i
})
MR
.
push
({
name
:
String
(
i
),
value
:
i
})
ROut
.
push
({
name
:
String
(
i
),
value
:
i
})
OL
.
push
({
name
:
String
(
i
),
value
:
i
})
if
(
i
==
currentYear
)
{
if
(
i
==
currentYear
)
{
MB
.
push
({
name
:
String
(
i
+
1
),
value
:
i
+
1
})
MB
.
push
({
name
:
String
(
i
+
1
),
value
:
i
+
1
})
}
}
...
@@ -108,13 +128,41 @@ class HomePage extends Component {
...
@@ -108,13 +128,41 @@ class HomePage extends Component {
options
:
MR
,
options
:
MR
,
getOptionLabel
:
(
option
)
=>
option
.
name
,
getOptionLabel
:
(
option
)
=>
option
.
name
,
};
};
let
defaultPropsRO
=
{
options
:
ROut
,
getOptionLabel
:
(
option
)
=>
option
.
name
,
};
let
defaultPropsOL
=
{
options
:
OL
,
getOptionLabel
:
(
option
)
=>
option
.
name
,
};
// console.log(MR[MR.length - 1])
// console.log(MR[MR.length - 1])
let
dateNow
=
new
Date
()
let
dateNow
=
new
Date
()
dateNow
.
setMonth
(
dateNow
.
getMonth
()
-
1
);
dateNow
.
setMonth
(
dateNow
.
getMonth
()
-
1
);
let
yearNow
=
dateNow
.
getFullYear
()
let
yearNow
=
dateNow
.
getFullYear
()
let
indexMonthMR
=
MR
.
findIndex
((
val
)
=>
val
.
value
==
yearNow
)
let
indexMonthMR
=
MR
.
findIndex
((
val
)
=>
val
.
value
==
yearNow
)
let
indexMonthRO
=
ROut
.
findIndex
((
val
)
=>
val
.
value
==
yearNow
)
let
indexMonthOL
=
OL
.
findIndex
((
val
)
=>
val
.
value
==
yearNow
)
this
.
setState
({
listPeriodeMB
:
defaultPropsMB
,
periodeMB
:
MB
[
MB
.
length
-
1
],
listPeriodeMR
:
defaultPropsMR
,
periodeMR
:
MR
[
indexMonthMR
],
listPeriodeCAT
:
defaultPropsMB
,
periodeCAT
:
MB
[
indexMonthMR
]
},
()
=>
{
let
defaultPropsQuarter
=
{
options
:
this
.
state
.
quarterList
,
getOptionLabel
:
(
option
)
=>
option
.
name
}
this
.
setState
({
listPeriodeMB
:
defaultPropsMB
,
periodeMB
:
MB
[
MB
.
length
-
1
],
listPeriodeMR
:
defaultPropsMR
,
periodeMR
:
MR
[
indexMonthMR
],
listPeriodeRO
:
defaultPropsRO
,
periodeRO
:
ROut
[
indexMonthRO
],
listQuarter
:
defaultPropsQuarter
,
quarter
:
this
.
state
.
quarterList
[
0
],
listPeriodeOL
:
defaultPropsOL
,
periodeOL
:
OL
[
indexMonthOL
],
listPeriodeCAT
:
defaultPropsMB
,
periodeCAT
:
MB
[
indexMonthMR
]
},
()
=>
{
this
.
getParameterGroupPerfom
()
this
.
getParameterGroupPerfom
()
})
})
}
}
...
@@ -276,6 +324,62 @@ class HomePage extends Component {
...
@@ -276,6 +324,62 @@ class HomePage extends Component {
})
})
}
}
getPermissionRO
()
{
let
payload
=
{
menu
:
"rolling outlook & cat revision"
}
api
.
create
().
getPermission
(
payload
).
then
(
response
=>
{
console
.
log
(
response
)
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
"success"
)
{
this
.
setState
({
btnCreateRO
:
response
.
data
.
data
.
create
,
btnEditRO
:
response
.
data
.
data
.
edit
,
load
:
true
},
()
=>
{
if
(
this
.
state
.
btnCreateRO
===
true
&&
this
.
state
.
btnEditRO
===
true
)
{
this
.
setState
({
accessRO
:
true
})
}
})
}
else
{
this
.
setState
({
load
:
true
})
}
}
else
{
this
.
setState
({
load
:
true
})
}
})
}
getPermissionOL
()
{
let
payload
=
{
menu
:
"outlook performance appraisal"
}
api
.
create
().
getPermission
(
payload
).
then
(
response
=>
{
console
.
log
(
response
)
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
"success"
)
{
this
.
setState
({
btnCreateOL
:
response
.
data
.
data
.
create
,
btnEditOL
:
response
.
data
.
data
.
edit
,
load
:
true
},
()
=>
{
if
(
this
.
state
.
btnCreateOL
===
true
&&
this
.
state
.
btnEditOL
===
true
)
{
this
.
setState
({
accessOL
:
true
})
}
})
}
else
{
this
.
setState
({
load
:
true
})
}
}
else
{
this
.
setState
({
load
:
true
})
}
})
}
getDetailUser
()
{
getDetailUser
()
{
let
userId
=
localStorage
.
getItem
(
Constant
.
USER
)
let
userId
=
localStorage
.
getItem
(
Constant
.
USER
)
api
.
create
().
getDetailUser
(
userId
).
then
((
response
)
=>
{
api
.
create
().
getDetailUser
(
userId
).
then
((
response
)
=>
{
...
@@ -359,6 +463,60 @@ class HomePage extends Component {
...
@@ -359,6 +463,60 @@ class HomePage extends Component {
})
})
}
}
getListUserSubcoRO
()
{
// console.log(this.state.month.month_id)
// console.log(this.state.periodeMR.value)
api
.
create
().
getListUserSubcoRO
(
this
.
state
.
periodeRO
.
value
,
this
.
state
.
quarter
.
value
).
then
((
response
)
=>
{
let
valueSubmitRO
=
0
let
dataRO
=
[]
console
.
log
(
response
)
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
"success"
)
{
response
.
data
.
data
.
map
((
item
,
index
)
=>
{
if
(
item
.
is_submit
===
true
)
{
valueSubmitRO
+=
1
}
dataRO
.
push
(
item
)
})
this
.
setState
({
listSubcoRO
:
dataRO
,
valueSubmitRO
,
loading
:
false
})
}
}
else
{
this
.
setState
({
loading
:
false
})
}
})
}
getListUserSubcoOL
()
{
// console.log(this.state.month.month_id)
// console.log(this.state.periodeOL.value)
api
.
create
().
getListUserSubcoOL
(
this
.
state
.
periodeOL
.
value
).
then
((
response
)
=>
{
let
valueSubmitOL
=
0
let
dataOL
=
[]
console
.
log
(
response
)
if
(
response
.
data
)
{
if
(
response
.
data
.
status
===
"success"
)
{
response
.
data
.
data
.
map
((
item
,
index
)
=>
{
if
(
item
.
is_submit
===
true
)
{
valueSubmitOL
+=
1
}
dataOL
.
push
(
item
)
})
this
.
setState
({
listSubcoOL
:
dataOL
,
valueSubmitOL
,
loading
:
false
})
}
}
else
{
this
.
setState
({
loading
:
false
})
}
})
}
getListUserSubco
()
{
getListUserSubco
()
{
api
.
create
().
getDashboardUser
().
then
(
response
=>
{
api
.
create
().
getDashboardUser
().
then
(
response
=>
{
// console.log(response);
// console.log(response);
...
@@ -513,12 +671,16 @@ class HomePage extends Component {
...
@@ -513,12 +671,16 @@ class HomePage extends Component {
this
.
setState
({
parameterPerfom
:
response
.
data
.
data
}
,
()
=>
{
this
.
setState
({
parameterPerfom
:
response
.
data
.
data
}
,
()
=>
{
this
.
getListUserSubcoMB
()
this
.
getListUserSubcoMB
()
this
.
getListUserSubcoMR
()
this
.
getListUserSubcoMR
()
this
.
getListUserSubcoRO
()
this
.
getListUserSubcoOL
()
this
.
getDetailUser
()
this
.
getDetailUser
()
})
})
}
else
{
}
else
{
this
.
setState
({
parameterPerfom
:
[]
}
,
()
=>
{
this
.
setState
({
parameterPerfom
:
[]
}
,
()
=>
{
this
.
getListUserSubcoMB
()
this
.
getListUserSubcoMB
()
this
.
getListUserSubcoMR
()
this
.
getListUserSubcoMR
()
this
.
getListUserSubcoRO
()
this
.
getListUserSubcoOL
()
this
.
getDetailUser
()
this
.
getDetailUser
()
})
})
}
}
...
@@ -1024,14 +1186,14 @@ class HomePage extends Component {
...
@@ -1024,14 +1186,14 @@ class HomePage extends Component {
})}
})}
<
/div
>
<
/div
>
{(
this
.
state
.
accessMB
||
this
.
state
.
accessMR
)
&&
{(
this
.
state
.
accessMB
||
this
.
state
.
accessMR
||
this
.
state
.
accessRO
||
this
.
state
.
accessOL
)
&&
<
div
style
=
{{
flex
:
1
,
paddingLeft
:
20
,
paddingRight
:
20
,
paddingTop
:
20
,
paddingBottom
:
0
,
width
:
'100%'
}}
>
<
div
style
=
{{
flex
:
1
,
paddingLeft
:
20
,
paddingRight
:
20
,
paddingTop
:
20
,
paddingBottom
:
0
,
width
:
'100%'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Tasks
to
be
Completed
<
/Typography
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
Tasks
to
be
Completed
<
/Typography
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
}
}
{(
this
.
state
.
accessMB
===
false
&&
this
.
state
.
accessMR
===
false
)
&&
{(
this
.
state
.
accessMB
===
false
&&
this
.
state
.
accessMR
===
false
&&
this
.
state
.
accessRO
===
false
&&
this
.
state
.
accessOL
===
false
)
&&
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
div
style
=
{{
flex
:
1
,
padding
:
20
,
width
:
'100%'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
div
style
=
{{
display
:
'flex'
}}
>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
You
don
't have pending task</Typography>
<
Typography
style
=
{{
color
:
'#656565'
,
fontSize
:
'16px'
,
fontWeight
:
'bold'
}}
>
You
don
't have pending task</Typography>
...
@@ -1113,7 +1275,7 @@ class HomePage extends Component {
...
@@ -1113,7 +1275,7 @@ class HomePage extends Component {
// }
// }
})}
})}
disableClearable
disableClearable
style={{ minWidth: 2
5
0, marginRight: 20 }}
style={{ minWidth: 2
1
0, marginRight: 20 }}
renderInput={(params) => <TextField {...params} label="Month" margin="normal" style={{ marginTop: 7 }} />}
renderInput={(params) => <TextField {...params} label="Month" margin="normal" style={{ marginTop: 7 }} />}
value={this.state.month}
value={this.state.month}
/>
/>
...
@@ -1130,7 +1292,7 @@ class HomePage extends Component {
...
@@ -1130,7 +1292,7 @@ class HomePage extends Component {
// }
// }
})}
})}
disableClearable
disableClearable
style={{ width: 2
5
0 }}
style={{ width: 2
1
0 }}
renderInput={(params) => <TextField {...params} label="Periode MR" margin="normal" style={{ marginTop: 7 }} />}
renderInput={(params) => <TextField {...params} label="Periode MR" margin="normal" style={{ marginTop: 7 }} />}
value={this.state.periodeMR}
value={this.state.periodeMR}
/>
/>
...
@@ -1173,6 +1335,142 @@ class HomePage extends Component {
...
@@ -1173,6 +1335,142 @@ class HomePage extends Component {
</Paper>
</Paper>
</div>
</div>
}
}
{this.state.accessRO &&
<div style={{ flex: 1, padding: 20, width: '
100
%
' }}>
<div style={{ display: '
flex
' }}>
<Autocomplete
{...this.state.listPeriodeRO}
id="periodeRO"
onChange={(event, newInputValue) => this.setState({ periodeRO: newInputValue, loading: true }, () => {
this.getListUserSubcoRO()
// if (this.state.isApprover === true) {
// this.getCompanySubmitted()
// } else {
// this.setState({ visibleTableHistory: false })
// this.getRevision()
// }
})}
disableClearable
style={{ minWidth: 210, marginRight: 20 }}
renderInput={(params) => <TextField {...params} label="Periode RO" margin="normal" style={{ marginTop: 7 }} />}
value={this.state.periodeRO}
/>
<Autocomplete
{...this.state.listQuarter}
id="quartal"
disabled={this.state.intent === '
Home
' ? true : false}
onChange={(event, newInputValue) => this.setState({ quarter: newInputValue, loading: true }, () => {
this.getListUserSubcoRO()
// this.setState({ visibleTableHistory: false })
// if (this.state.listCompany == null) {
// this.getCompanySubmitted()
// } else {
// this.getRevision()
// }
})}
disableClearable
style={{ width: 210 }}
renderInput={(params) => <TextField {...params} label="Quarter" margin="normal" style={{ marginTop: 7 }} />}
value={this.state.quarter}
/>
</div>
<Paper style={{ width: 450, padding: 20, borderRadius: 10, marginTop: 5 }}>
{!this.state.loading2 && <Typography style={{ fontWeight: '
bold
', textDecorationLine: '
underline
' }}>{`Rolling Outlook & CAT - ${this.state.periodeRO.value} ${this.state.quarter.value} ${this.state.valueSubmitRO}/${this.state.listSubcoRO.length}`}</Typography>}
{this.state.listSubcoRO.map((item, index) => {
console.log(item)
return (
<div style={{ display: '
flex
', justifyContent: '
space
-
between
', marginTop: 10, paddingLeft: 10 }}>
<div style={{ display: '
flex
' }}>
<img src={item.is_submit === true ? Images.dotDone : item.is_overdue === true ? Images.dotOverdue : Images.dotOpen} />
<Link to={{
pathname: `/home/rolling-outlook/`,
state: {
userType: '
user
',
rawData: item,
quarter: this.state.quarter
}
}}>
<button
style={{
backgroundColor: '
transparent
',
cursor: '
pointer
',
borderColor: '
transparent
',
margin: 5,
outline: '
none
'
}}>
<Typography style={{ marginLeft: 10, color: '
#
5198
ea
', fontSize: 13 }}>{item.company_name}</Typography>
</button>
</Link>
</div>
{item.is_submit === false && item.is_overdue && (
<div style={{ backgroundColor: '
#
f65a4c
', paddingRight: 5, paddingLeft: 5, borderRadius: 5, alignSelf: '
center
' }}>
<Typography style={{ fontSize: 11, color: '
#
fff
' }}>Overdue</Typography>
</div>
)}
</div>
)
})}
</Paper>
</div>
}
{this.state.accessOL &&
<div style={{ flex: 1, padding: 20, width: '
100
%
' }}>
<div style={{ display: '
flex
' }}>
<Autocomplete
{...this.state.listPeriodeOL}
id="periodeOL"
onChange={(event, newInputValue) => this.setState({ periodeOL: newInputValue, loading: true }, () => {
// if (this.state.isApprover === true) {
// this.getCompanySubmitted()
// } else {
// this.setState({ visibleTableHistory: false })
// this.getRevision()
// }
\
this.getListUserSubcoOL()
})}
disableClearable
style={{ width: 250 }}
renderInput={(params) => <TextField {...params} label="Periode OL" margin="normal" style={{ marginTop: 7 }} />}
value={this.state.periodeOL}
/>
</div>
<Paper style={{ width: 450, padding: 20, borderRadius: 10, marginTop: 5 }}>
<Typography style={{ fontWeight: '
bold
', textDecorationLine: '
underline
' }}>{`Outlook Performance Appraisal ${this.state.valueSubmit}/${this.state.listSubcoOL.length}`}</Typography>
{this.state.listSubcoOL.map((item, index) => {
return (
<div style={{ display: '
flex
', justifyContent: '
space
-
between
', marginTop: 10, paddingLeft: 10 }}>
<div style={{ display: '
flex
' }}>
<img src={item.is_submit === true ? Images.dotDone : item.is_overdue === true ? Images.dotOverdue : Images.dotOpen} />
<Link to={{
pathname: `/home/outlook-performance/`,
state: {
userType: '
user
',
rawData: item
}
}}>
<button
style={{
backgroundColor: '
transparent
',
cursor: '
pointer
',
borderColor: '
transparent
',
margin: 5,
outline: '
none
'
}}>
<Typography style={{ marginLeft: 10, color: '
#
5198
ea
', fontSize: 13 }}>{item.company_name}</Typography>
</button>
</Link>
</div>
{item.is_submit === false && item.is_overdue && (
<div style={{ backgroundColor: '
#
f65a4c
', paddingRight: 5, paddingLeft: 5, borderRadius: 5, alignSelf: '
center
' }}>
<Typography style={{ fontSize: 11, color: '
#
fff
' }}>Overdue</Typography>
</div>
)}
</div>
)
})}
</Paper>
</div>
}
</div>
</div>
</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