import React, { Component } from 'react';
import { Typography, MuiThemeProvider, createMuiTheme, Paper, TextField } from '@material-ui/core';
import MUIDataTable from "mui-datatables";
import Images from '../../assets/Images';
import DonutChart from 'react-d3-donut';
import Constant from '../../library/Constant';
import api from '../../api';
import { Link } from 'react-router-dom';
import { PropagateLoader } from 'react-spinners';
import { titleCase } from '../../library/Utils';
import { format } from 'date-fns';
import Autocomplete from '@material-ui/lab/Autocomplete';
import ReactSpeedometer from 'react-d3-speedometer';

var ct = require("../../library/CustomTable");
const getMuiTheme = () => createMuiTheme(ct.customTable());

class HomePage extends Component {
    constructor(props) {
        super(props)
        this.state = {
            userData: null,
            listDashboard: [],
            listMasterBudget: [
                { nama: 'Triputra Agro Persada', status: 'complete' },
                { nama: 'Puninar Infinite Raya', status: 'complete' },
                { nama: 'Dharma Group', status: 'overdue' },
                { nama: 'Daya Group', status: 'open' },
            ],
            isApprover: true,
            listSubcoMB: [],
            listSubcoMR: [],
            listSubcoRO: [],
            listSubcoOL: [],
            valueSubmit: 0,
            listdmb: [],
            dataTableMB: [],
            listPeriodeMB: null,
            listPeriodeMR: null,
            listPeriodeRO: null,
            listPeriodeOL: null,
            listMonth: null,
            periodeMB: null,
            periodeMR: null,
            periodeRO: null,
            periodeOL: null,
            month: null,
            monthCAT: null,
            periodeCAT: null,
            loading: false,
            accessMB: false,
            accessMR: false,
            accessRO: false,
            accessOL: false,
            company: [],
            dataDashboardCAT: [],
            loading2: false,
            loading3: false,
            parameterPerfom: [],
            quarterList: [
                { value: 'q1', name: 'Q1' },
                { value: 'q2', name: 'Q2' },
                { value: 'q3', name: 'Q3' },
            ],
            quarter: null
        }
    }

    componentDidMount() {
        this.setState({ loading: true, loading2: true, loading3: true })
        let userId = localStorage.getItem(Constant.USER)
        api.create().getDetailUser(userId).then((response) => {
            if (response.data) {
                if (response.ok) {
                    if (response.data.status === 'success') {
                        this.setState({ userData: response.data.data })
                        // console.log(response.data.data)
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                    }
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
                }
            } else {
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
            }
        })
        // api.create().checkApprover().then(response => {
        //     console.log(response);
        //     if (response.data.data.is_approver === true) {
        //         this.setState({ isApprover: true }, () =>
        //             this.getDashboard())
        //     } else {
        //         this.setState({ isApprover: false })
        //     }
        // })
        this.getPermissionMB()
        this.getPermissionMR()
        this.getPermissionRO()
        this.getPermissionOL()
        this.getApprMat()
        // this.getListUserSubco()
        this.getMonth()
    }

    componentDidUpdate() {
        window.onpopstate = e => {
            //your code...
            this.props.selectIndex('Home')
        }
    }

    getPeriode() {
        let currentYear = new Date().getFullYear()
        let MB = []
        let MR = []
        let ROut = []
        let OL = []
        for (var i = 2000; i <= currentYear; i++) {
            MB.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) {
                MB.push({ name: String(i + 1), value: i + 1 })
            }
        }

        let defaultPropsMB = {
            options: MB,
            getOptionLabel: (option) => option.name,
        };

        let defaultPropsMR = {
            options: MR,
            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])
        let dateNow = new Date()
        dateNow.setMonth(dateNow.getMonth() - 1);
        let yearNow = dateNow.getFullYear()
        let indexMonthMR = MR.findIndex((val) => val.value == yearNow)
        let indexMonthRO = ROut.findIndex((val) => val.value == yearNow)
        let indexMonthOL = OL.findIndex((val) => val.value == yearNow)

        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()
        })
    }

    getDashboardCAT() {
        console.log(this.state.company)
        api.create().getListChildDashboardCAT(this.state.periodeCAT.value, this.state.monthCAT.month_id).then((res) => {
            if (res.data) {
                // console.log(res)
                let response = res.data.data.business_unit
                let data = []
                response.map((item, index) => {
                    let arrayChild = []
                    item.category.map((items, indexs) => {
                        if (this.state.company.includes(items.company_id)) {
                            let indexPerform = this.state.parameterPerfom.findIndex((val) => val.company_id == items.company_id)
                            let listPerfomanceDefault = []
                            if (indexPerform == -1) {
                                listPerfomanceDefault = this.state.parameterPerfom.filter((val) => String(val.company_name).toLocaleLowerCase() == "default")
                            } else {
                                listPerfomanceDefault = this.state.parameterPerfom.filter((val) => val.company_id == items.company_id)
                            }
                            let performanceScore = ''
                            let perfomanceScoreColor = '#fff'
                            if (listPerfomanceDefault.length > 0) {
                                listPerfomanceDefault.map((item, index) => {
                                    // console.log(Number(lastTotal))
                                    // console.log(Number(item.min_value))
                                    // console.log(Number(item.max_value))
                                    if (Number(items.current_value).toFixed(2) >= Number(item.min_value) && Number(items.current_value).toFixed(2) <= Number(item.max_value)) {
                                        // console.log('masuk')
                                        performanceScore = item.description
                                        perfomanceScoreColor = item.value
                                    }
                                })
                            }
                            arrayChild.push({ ...items, current_value: Number(items.current_value).toFixed(2), performanceColor: perfomanceScoreColor, performanceScore })
                        }
                    })
                    if (arrayChild.length > 0 && String(item.item_business).toLocaleLowerCase() != 'holding') {
                        data.push({ ...item, category: arrayChild })
                    }
                })
                // console.log(this.state.parameterPerfom)
                console.log(data)
                this.setState({ dataDashboardCAT: data, loading: false, loading2: false }, () => {
                    setTimeout(() => {
                        this.setState({loading3: false})
                    }, 1000);
                })
            }
        })
    }

    getMonth() {
        api.create().getMonthTransaction().then(response => {
            let dateNow = new Date()
            dateNow.setMonth(dateNow.getMonth() - 1);
            let month = format(dateNow, 'MMMM')
            // console.log(month);
            if (response.data) {
                if (response.data.status === "success") {
                    // console.log(response);
                    let data = response.data.data
                    let monthData = data.map((item) => {
                        return {
                            month_id: item.id,
                            month_value: String(item.month_name).substr(0, 3)
                        }
                    })
                    let defaultProps = {
                        options: monthData,
                        getOptionLabel: (option) => option.month_value,
                    };
                    let index = data.findIndex((val) => val.month_name == month)
                    // console.log(month)
                    // console.log(index)
                    this.setState({ listMonth: defaultProps, listMonthCAT: defaultProps, monthCAT: monthData[index], month: index == -1 ? monthData[0] : monthData[index] }, () => {
                        // if (this.state.isApprover === true) {
                        //     if (this.state.submittedOnly) {
                        //         console.log('masuk cuk')
                        //         this.getPeriode()
                        //     } else {
                        //         this.getLastPeriod()
                        //     }
                        this.getPeriode()
                        // } else {
                        // this.getLastPeriod()
                        // this.getPeriode()
                        // }
                    })
                } else {
                    // this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
                    //     if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
                    //         setTimeout(() => {
                    //             localStorage.removeItem(Constant.TOKEN)
                    //             window.location.reload();
                    //         }, 1000);
                    //     }
                    // })
                }
            } else {
                // this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
            }
        })
    }

    getPermissionMB() {
        let payload = {
            menu: "Master Budget & CAT"
        }
        api.create().getPermission(payload).then(response => {
            // console.log(response)
            if (response.data) {
                if (response.data.status === "success") {
                    this.setState({
                        btnCreateMB: response.data.data.create,
                        btnEditMB: response.data.data.edit,
                        load: true
                    }, () => {
                        if (this.state.btnCreateMB === true && this.state.btnEditMB === true) {
                            this.setState({ accessMB: true })
                        }
                    })
                } else {
                    this.setState({
                        load: true
                    })
                }
            } else {
                this.setState({ load: true })
            }
        })
    }

    getPermissionMR() {
        let payload = {
            menu: "monthly report"
        }
        api.create().getPermission(payload).then(response => {
            // console.log(response)
            if (response.data) {
                if (response.data.status === "success") {
                    this.setState({
                        btnCreateMR: response.data.data.create,
                        btnEditMR: response.data.data.edit,
                        load: true
                    }, () => {
                        if (this.state.btnCreateMR === true && this.state.btnEditMR === true) {
                            this.setState({ accessMR: true })
                        }
                    })
                } else {
                    this.setState({
                        load: true
                    })
                }
            } else {
                this.setState({ load: true })
            }
        })
    }

    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() {
        let userId = localStorage.getItem(Constant.USER)
        api.create().getDetailUser(userId).then((response) => {
            if (response.data) {
                if (response.ok) {
                    if (response.data.status === 'success') {
                        this.setState({ tempData: response.data.data, company: response.data.data.company }, () =>
                            this.getDashboardCAT())
                        // console.log(response.data.data)
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                    }
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
                }
            } else {
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
            }
        })
    }

    getListUserSubcoMB() {
        // console.log(this.state.month.month_id)
        // console.log(this.state.periodeMR.value)
        api.create().getListUserSubcoMB(this.state.periodeMB.value).then((response) => {
            // console.log(response)
            let valueSubmit = 0
            let dataMB = []
            if (response.data) {
                if (response.data.status === "success") {
                    response.data.data.map((item, index) => {
                        if (item.is_submit === true) {
                            valueSubmit += 1
                        }
                        dataMB.push(item)

                    })
                    this.setState({
                        listSubcoMB: dataMB,
                        valueSubmit,
                        loading: false
                    })
                }
            } else {
                this.setState({ loading: false })
            }
        })
    }

    getListUserSubcoMR() {
        // console.log(this.state.month.month_id)
        // console.log(this.state.periodeMR.value)
        api.create().getListUserSubcoMR(this.state.month.month_id, this.state.periodeMR.value).then((response) => {
            let valueSubmitMR = 0
            let dataMR = []
            console.log(response)
            if (response.data) {
                if (response.data.status === "success") {
                    response.data.data.map((item, index) => {
                        if (item.is_submit === true) {
                            valueSubmitMR += 1
                        }
                        dataMR.push(item)
                    })
                    this.setState({
                        listSubcoMR: dataMR,
                        valueSubmitMR,
                        loading: false
                    })
                }
            } else {
                this.setState({ loading: false })
            }
        })
    }

    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() {
        api.create().getDashboardUser().then(response => {
            // console.log(response);
            let valueSubmit = 0
            let valueSubmitMR = 0
            let dataMB = []
            let dataMR = []
            if (response.data) {
                if (response.data.status === "success") {
                    response.data.data.map((item, index) => {
                        if (item.is_submit === true && item.type === "master_budget") {
                            valueSubmit += 1
                        } else if (item.is_submit === true && item.type === "monthly_report") {
                            valueSubmitMR += 1
                        }

                        if (item.type === "master_budget") {
                            dataMB.push(item)
                        } else {
                            dataMR.push(item)
                        }
                    })
                    this.setState({
                        listSubcoMB: dataMB,
                        listSubcoMR: dataMR,
                        valueSubmit,
                        valueSubmitMR,
                        loading: false
                    })
                }
            }
            // console.log(this.state.listSubcoMB)
            // console.log(this.state.listSubcoMR)
        })
    }

    getDashboard() {
        let listDashboard = []
        let rawData = []
        api.create().getDashboard().then((response) => {
            console.log(response);
            console.log(this.state.isApproverMB);
            console.log(this.state.isApproverMR);
            console.log(this.state.isApproverRO);
            console.log(this.state.isApproverOL);
            if (String(response.data.status).toLocaleLowerCase() == 'success') {
                let data = response.data.data
                data.map((item, index) => {
                    let statusConvert = item.status == 'approval_review' ? 'Waiting For Review' : item.status == 'approval_proccess' ? 'Waiting For Approval' : titleCase(item.status)
                    if (this.state.isApproverMB && this.state.isApproverMR && this.state.isApproverRO && this.state.isApproverOL) {
                        if (String(item.type_report).toLocaleLowerCase().includes("master")) {
                            listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} - ${item.periode}`, item.revision, item.status, statusConvert])
                            rawData.push(item)
                        } else if (String(item.type_report).toLocaleLowerCase().includes("monthly")) {
                            listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} ${item.periode}`, item.revision, item.status, statusConvert])
                            rawData.push(item)
                        } else if (String(item.type_report).toLocaleLowerCase().includes("rolling")) {
                            listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} ${item.periode}`, item.revision, item.status, statusConvert])
                            rawData.push(item)
                        } else if (String(item.type_report).toLocaleLowerCase().includes("pa")) {
                            listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} ${item.periode}`, item.revision, item.status, statusConvert])
                            rawData.push(item)
                        } 
                    } else {
                        if (this.state.isApproverMB) {
                            if (String(item.type_report).toLocaleLowerCase().includes("master")) {
                                listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} - ${item.periode}`, item.revision, item.status, statusConvert])
                                rawData.push(item)
                            }
                        } 
                        if (this.state.isApproverMR) {
                            if (String(item.type_report).toLocaleLowerCase().includes("monthly")) {
                                listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} ${item.periode}`, item.revision, item.status, statusConvert])
                                rawData.push(item)
                            }
                        } 
                        if (this.state.isApproverRO) {
                            if (String(item.type_report).toLocaleLowerCase().includes("rolling")) {
                                listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} ${item.periode}`, item.revision, item.status, statusConvert])
                                rawData.push(item)
                            }
                        }
                        if (this.state.isApproverOL) {
                            if (String(item.type_report).toLocaleLowerCase().includes("pa")) {
                                listDashboard.push([index + 1, item.approval_id, item.company_name, `${item.type_report} ${item.periode}`, item.revision, item.status, statusConvert])
                                rawData.push(item)
                            }
                        }
                    }
                })
                this.setState({ listDashboard, rawData })
            }
        })
    }

    getApprMat() {
        this.setState({ loading: true })
        let isApproverMR = false
        let isApproverMB = false
        let isApproverRO = false
        let isApproverOL = false
        api.create().getAM().then((response) => {
            console.log(response);
            let actAMActive = []
            let actAM = response.data.data.map((item, index) => {
                if (String(item.status).toLocaleLowerCase() == 'active') {
                    actAMActive.push(item)
                    return item
                }
            })
            let userId = localStorage.getItem(Constant.USER)
            // console.log(userId);
            let indexId = actAMActive.findIndex((val) => val.user_id == userId)
            actAMActive.map((item, index) => {
                if (item.approval_type_name === "MONTHLY_REPORT") {
                    isApproverMR = true
                } else if (item.approval_type_name === "MASTER_BUDGET") {
                    isApproverMB = true
                } else if (item.approval_type_name === "ROLLING_OUTLOOK") {
                    isApproverRO = true
                } else if (item.approval_type_name === "OUTLOOK_PA") {
                    isApproverOL = true
                }
            })

            if (indexId === -1) {
                this.setState({ isApprover: false })
                this.getMonth()
                // this.getListUserSubco()
            }
            this.setState({ isApproverMB, isApproverMR, isApproverRO, isApproverOL })
            this.getDashboardMB()
            // this.getDashboardMB()
            this.getDashboard()
            // console.log(actAM)
            this.setState({ loading: false })
        })
    }

    getDashboardMB() {
        api.create().getDashboardMB().then((response) => {
            // console.log(response)
            if (String(response.data.status).toLocaleLowerCase() == 'success') {
                let data = response.data.data
                let listdmb = data.sort((a, b) => a.company_id - b.company_id).map((item, index) => {
                    return [
                        item.company_name,
                        item.master_budget,
                        item.operating_indicator
                    ]
                })
                this.setState({ dataTableMB: listdmb, loading: false })
            }
        })
    }

    handleBackgroundPerform(total) {
        let color = 'white'
        if (total >= 1.00 && total <= 2.00) {
            color = 'red'
        } else if (total >= 2.01 && total <= 2.75) {
            color = 'yellow'
        } else if (total >= 2.76 && total <= 3.00) {
            color = 'lightgreen'
        } else if (total >= 3.01 && total <= 3.75) {
            color = 'yellowgreen'
        } else if (total >= 3.76 && total <= 4.00) {
            color = 'forestgreen'
        } else if (total >= 4.01 && total <= 4.75) {
            color = 'deepskyblue'
        } else if (total >= 4.76 && total <= 5.00) {
            color = 'dodgerblue'
        }
        return color
    }

    getParameterGroupPerfom() {
        api.create().getParameterByGroupName({
            "group_name": "PERFORMANCE_KPI"
        }).then((response) => {
            console.log(response.data)
            if (response.data) {
                this.setState({ parameterPerfom: response.data.data } , () => {
                    this.getListUserSubcoMB()
                    this.getListUserSubcoMR()
                    this.getListUserSubcoRO()
                    this.getListUserSubcoOL()
                    this.getDetailUser()
                })
            } else {
                this.setState({ parameterPerfom: [] } , () => {
                    this.getListUserSubcoMB()
                    this.getListUserSubcoMR()
                    this.getListUserSubcoRO()
                    this.getListUserSubcoOL()
                    this.getDetailUser()
                })
            }
        })
    }

    render() {
        const getDataMonth = (item) => {
            let months = item.months
            let dataMonth = this.state.listMonth.options
            let indexID = dataMonth.findIndex((val) => val.month_id == months)
            // console.log(dataMonth[indexID])
            return dataMonth[indexID]
        }

        const columns = ["#", "ID", "Company", "Report Type", "Revision",
            {
                name: "",
                options: {
                    display: false
                }
            }, 'Status', {
                name: "Action",
                options: {
                    customBodyRender: (val, tableMeta) => {
                        // console.log(tableMeta);
                        // console.log(this.state.rawData);
                        return (
                            <div style={{ display: 'flex' }}>
                                <Link to={{
                                    pathname: String(tableMeta.rowData[3]).toLocaleLowerCase().includes("master") ? `/home/master-budget/` : String(tableMeta.rowData[3]).toLocaleLowerCase().includes("monthly") ? `/home/monthly-report/` : String(tableMeta.rowData[3]).toLocaleLowerCase().includes("rolling") ? `/home/rolling-outlook/` : `/home/outlook-performance/`,
                                    state: {
                                        userType: 'approver',
                                        rawData: {...this.state.rawData[tableMeta.rowIndex], quarter: String(tableMeta.rowData[3]).toLocaleLowerCase().includes("rolling") ? this.state.rawData[tableMeta.rowIndex].quartal : null },
                                        month: String(tableMeta.rowData[3]).toLocaleLowerCase().includes("master") ? null : getDataMonth(this.state.rawData[tableMeta.rowIndex]),
                                        quarter: String(tableMeta.rowData[3]).toLocaleLowerCase().includes("rolling") ? this.state.rawData[tableMeta.rowIndex].quartal : null
                                    }
                                }}>
                                    <button
                                        style={{
                                            backgroundColor: 'transparent',
                                            cursor: 'pointer',
                                            borderColor: 'transparent',
                                            marginRight: 10
                                        }}
                                        onClick={() => null}
                                    >
                                        <img src={Images.editCopy2} />
                                    </button>
                                </Link>
                            </div >
                        );
                    }
                }
            }]
        const data = [
            ["1", "TRIPUTRA AGRO PERSADA", "Laporan Bulanan - September 2020", "1 (20 Oktober 2020)", "Belum Disetujui"],
            ["2", "DAYA GROUP", "Laporan Bulanan - September 2020", "1 (20 Oktober 2020)", "Belum Disetujui"],
            ["3", "PUNINAR INFINITE RAYA", "Budget Tahunan 2021", "0 (20 Oktober 2020)", "Belum Disetujui"],
            ["4", "DHARMA GROUP", "Laporan Bulanan - September 2020", "0 (20 Oktober 2020)", "Belum Disetujui"],
            ["5", "PUNINAR INFINITE RAYA", "Budget Tahunan 2021", "0 (20 Oktober 2020)", "Belum Disetujui"],
        ]
        const options = {
            filter: true,
            sort: false,
            responsive: "scroll",
            print: false,
            download: false,
            selectableRows: false,
            viewColumns: true,
            rowsPerPage: 5,
            search: true
        }

        const columnsMB = ["Company", "Master Budget & CAT", "Operating Indicator"]

        const dataChart = [{
            count: 90,
            color: '#5198ea',
            name: 'My name',
        }, {
            count: 10,
            color: '#ffd600',
            name: 'name',
        }]
        const dataChart2 = [{
            count: 90,
            color: '#f65a4c',
            name: 'My name',
        }, {
            count: 10,
            color: '#5198ea',
            name: 'name',
        }]
        const dataChart3 = [{
            count: 90,
            color: '#4caf51',
            name: 'My name',
        }, {
            count: 10,
            color: '#f65a4c',
            name: 'name',
        }]
        const loadingComponent = (
            <div style={{ position: 'absolute', zIndex: 110, top: 0, left: 0, width: '100%', height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center', background: 'rgba(255,255,255,0.8)' }}>
                <PropagateLoader
                    // css={override}
                    size={20}
                    color={"#274B80"}
                    loading={this.state.loading}
                />
            </div>
        );
        let bulan = format(new Date(), 'MMM')
        let tahun = new Date().getFullYear()
        return (
            <div style={{ flex: 1, backgroundColor: '#f8f8f8', minHeight: this.props.height }}>
                {(this.state.loading || this.state.loading2 || this.state.loading3) && loadingComponent}
                {this.state.isApprover === true ?
                    <div>
                        <div className={"main-color"} style={{ height: 78, flex: 1, display: 'flex', alignItems: 'center', paddingLeft: 20 }}>
                            <Typography style={{ fontSize: '24px', color: 'white' }}>{this.state.userData === null ? '' : `Welcome, ${this.state.userData.fullname} !`}</Typography>
                        </div>
                        <div>
                            <div style={{ flex: 1, padding: 20, width: '100%' }}>
                                <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>Dashboard CAT</Typography>
                                <div style={{ display: 'flex' }}>
                                    <Autocomplete
                                        {...this.state.listMonthCAT}
                                        id="monthCAT"
                                        onChange={(event, newInputValue) => this.setState({ monthCAT: newInputValue, loading: true, loading3: true}, () => {
                                            this.getDashboardCAT()
                                            // if (this.state.isApprover === true) {
                                            //     this.getCompanySubmitted()
                                            // } else {
                                            // this.setState({ visibleTableHistory: false })
                                            // this.getRevision()
                                            // }
                                        })}
                                        disableClearable
                                        style={{ minWidth: 250, marginRight: 20 }}
                                        renderInput={(params) => <TextField {...params} label="Month CAT" margin="normal" style={{ marginTop: 7 }} />}
                                        value={this.state.monthCAT}
                                    />
                                    <Autocomplete
                                        {...this.state.listPeriodeCAT}
                                        id="periodeCAT"
                                        onChange={(event, newInputValue) => this.setState({ periodeCAT: newInputValue, loading: true, loading3: true }, () => {
                                            this.getDashboardCAT()
                                            // if (this.state.isApprover === true) {
                                            //         this.getCompanySubmitted()
                                            // } else {
                                            // this.setState({ visibleTableHistory: false })
                                            // this.getRevision()
                                            // }
                                        })}
                                        disableClearable
                                        style={{ width: 250 }}
                                        renderInput={(params) => <TextField {...params} label="Periode CAT" margin="normal" style={{ marginTop: 7 }} />}
                                        value={this.state.periodeCAT}
                                    />
                                </div>
                                {this.state.dataDashboardCAT.map((item, index) => {
                                    return (
                                        <div>
                                            <Typography style={{ color: '#656565', fontSize: '16px', marginTop: 20 }}>{item.item_business}</Typography>
                                            <div style={{ display: 'flex', overflowX: 'scroll', width: this.props.width * 0.95 }}>
                                                {item.category.map((items, indexs) => {
                                                    return (
                                                        <Link to={{
                                                            pathname: `/home/cat-dashboard/`,
                                                            state: {
                                                                userType: 'user',
                                                                rawData: { month: this.state.monthCAT.month_id, periode: this.state.periodeCAT.value, companyId: items.company_id }
                                                            }
                                                        }}>
                                                            <div style={{ padding: 10, backgroundColor: '#fff', height: 350, borderRadius: 6, paddingBottom: 20, margin: 10, boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.25)', width: 250, marginRight: indexs == item.category.length - 1 ? 25 : 0, marginLeft: indexs == 0 ? 5 : 25 }}>
                                                                {/* <span style={{ fontSize: '17px', color: this.state.selectIndex === index ? '#fff' : '#7e8085', maxWidth: 100 }}>{item.category_name}</span> */}
                                                                <div style={{ fontSize: '17px', width: '100%', height: 25 }}>
                                                                    <Typography style={{ textAlign: 'left', color: '#4b4b4b' }}>{items.category_name}</Typography>
                                                                </div>
                                                                {items.total_kpi != null &&
                                                                    <div style={{ width: '100%', display: 'flex', justifyContent: 'center', marginTop: 10 }}>
                                                                        <span style={{ textAlign: 'center', fontSize: '18px', color: "#fff" }}>{item.total_kpi}</span>
                                                                        {/* <span style={{ textAlign: 'center', fontSize: '11px', color: selectIndex === index ? "#fff" : '#4b4b4b' }}>KPIs</span> */}
                                                                    </div>}
                                                                <div style={{ display: 'flex', justifyContent: 'center', marginTop: items.total_kpi == null ? 50 : 0 }}>
                                                                    <div style={{ backgroundColor: items.performanceColor, textAlign: 'center', display: 'flex', justifyContent: 'center', width: 40, height: 21 }}>
                                                                        <Typography style={{ textAlign: 'center', color: '#4b4b4b' }}>{items.performanceScore}</Typography>
                                                                    </div>
                                                                </div>
                                                                <div style={{ display: 'flex', justifyContent: 'center' }}>
                                                                    <ReactSpeedometer
                                                                        maxSegmentLabels={0}
                                                                        segmentColors={[
                                                                            items.performanceColor,
                                                                            "#d8d8d8"
                                                                        ]}
                                                                        needleColor={"#4b4b4b"}
                                                                        value={Number(items.current_value).toFixed(2)}
                                                                        valueFormat={'.2f'}
                                                                        minValue={Number(items.low)}
                                                                        maxValue={Number(items.high)}
                                                                        customSegmentStops={[0, Number(items.current_value), 5]}
                                                                        width={200}
                                                                        height={140}
                                                                        ringWidth={25}
                                                                        textColor={'#4b4b4b'}
                                                                    />
                                                                </div>
                                                                <div style={{ backgroundColor: 'transparent', display: 'flex', marginTop: 20, placeContent: 'center' }}>
                                                                    {items.is_higher == '-' ?
                                                                        <div style={{ textAlign: '-webkit-center' }}>
                                                                            <Typography style={{ fontSize: 16, color: '#4b4b4b' }}> - </Typography>
                                                                        </div>
                                                                        :
                                                                        <div style={{ textAlign: '-webkit-center' }}>
                                                                            {items.is_higher == 'true' ?
                                                                                <img src={Images.up} /> : <img src={Images.down} />}
                                                                            <Typography style={{ fontSize: 16, color: '#4b4b4b' }}>vs Last Month</Typography>
                                                                        </div>
                                                                    }
                                                                </div>
                                                            </div>
                                                        </Link>
                                                    )
                                                })}
                                            </div>
                                        </div>
                                    )

                                })}
                            </div>
                            <div style={{ flex: 1, padding: 20, width: '100%' }}>
                                <div style={{ display: 'flex' }}>
                                    <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>Waiting Your Approval</Typography>
                                </div>

                            </div>

                            <div style={{ flex: 1, padding: 20, width: '100%' }}>
                                <div>
                                    <MuiThemeProvider theme={getMuiTheme()}>
                                        <MUIDataTable
                                            data={this.state.listDashboard}
                                            columns={columns}
                                            options={options}
                                        />
                                    </MuiThemeProvider>
                                </div>
                                <div style={{ marginTop: 20 }}>
                                    <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>Master Budget & CAT</Typography>
                                    <div style={{ marginTop: 10, width: '100%' }}>
                                        <MuiThemeProvider theme={getMuiTheme()}>
                                            <MUIDataTable
                                                data={this.state.dataTableMB}
                                                columns={columnsMB}
                                                options={options}
                                            />
                                        </MuiThemeProvider>
                                    </div>
                                </div>
                            </div>
                            {/* <div style={{ marginTop: 20 }}>
                                <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>Status Laporan</Typography>
                                <div style={{ marginTop: 10, display: 'flex' }}>
                                    <div style={{ width: 280, height: 400, padding: 20, backgroundColor: 'white', borderRadius: 6, border: 'solid 1px #c4c4c4', marginRight: 25 }}>
                                        <Typography style={{ color: '#4b4b4b', fontSize: '24px', fontWeight: 'bold' }}>Budget Tahunan - 2021</Typography>
                                        <div style={{ textAlign: 'center' }}>
                                            <DonutChart
                                                innerRadius={70}
                                                outerRadius={100}
                                                transition={true}
                                                pieClass="pie1"
                                                displayTooltip={true}
                                                strokeWidth={3}
                                                data={dataChart} />
                                        </div>
                                        <div style={{ display: 'flex', width: '100%', marginTop: 10 }}>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>Submit</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>92.8 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.red} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>-0.6%</Typography>
                                                </div>
                                            </div>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>On Time</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>6.1 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.green} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>0.7%</Typography>
                                                </div>

                                            </div>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>Overdue</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>1.1 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.green} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>0.1%</Typography>
                                                </div>
                                            </div>
                                        </div>
                                    </div>

                                    <div style={{ width: 280, height: 400, padding: 20, backgroundColor: 'white', borderRadius: 6, border: 'solid 1px #c4c4c4', marginRight: 25 }}>
                                        <Typography style={{ color: '#4b4b4b', fontSize: '24px', fontWeight: 'bold' }}>Laporan Bulanan - Oct 2020</Typography>
                                        <div style={{ textAlign: 'center' }}>
                                            <DonutChart
                                                innerRadius={70}
                                                outerRadius={100}
                                                transition={true}
                                                pieClass="pie5"
                                                displayTooltip={true}
                                                strokeWidth={3}
                                                data={dataChart2}
                                            />
                                        </div>
                                        <div style={{ display: 'flex', width: '100%', marginTop: 10 }}>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>Submit</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>92.8 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.red} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>-0.6%</Typography>
                                                </div>
                                            </div>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>On Time</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>6.1 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.green} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>0.7%</Typography>
                                                </div>

                                            </div>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>Overdue</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>1.1 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.green} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>0.1%</Typography>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <div style={{ width: 280, height: 400, padding: 20, backgroundColor: 'white', borderRadius: 6, border: 'solid 1px #c4c4c4', }}>
                                        <Typography style={{ color: '#4b4b4b', fontSize: '24px', fontWeight: 'bold', height: 71 }}>Lainnya</Typography>
                                        <div style={{ textAlign: 'center' }}>
                                            <DonutChart
                                                innerRadius={70}
                                                outerRadius={100}
                                                transition={true}
                                                pieClass="pie2"
                                                displayTooltip={true}
                                                strokeWidth={3}
                                                data={dataChart3}
                                            />
                                        </div>
                                        <div style={{ display: 'flex', width: '100%', marginTop: 10 }}>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>Submit</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>92.8 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.red} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>-0.6%</Typography>
                                                </div>
                                            </div>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>On Time</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>6.1 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.green} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>0.7%</Typography>
                                                </div>

                                            </div>
                                            <div style={{ width: '33%' }}>
                                                <Typography style={{ color: '#656565', fontSize: '15px', textAlign: 'left' }}>Overdue</Typography>
                                                <Typography style={{ color: '#656565', fontSize: '20px', textAlign: 'left' }}>1.1 %</Typography>
                                                <div style={{ display: 'flex' }} >
                                                    <img src={Images.green} />
                                                    <Typography style={{ color: '#656565', fontSize: '14px', textAlign: 'left' }}>0.1%</Typography>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div> */}
                        </div>
                    </div>
                    :
                    <div>
                        <div className={"main-color"} style={{ height: 78, flex: 1, display: 'flex', alignItems: 'center', paddingLeft: 20 }}>
                            <Typography style={{ fontSize: '24px', color: 'white' }}>{this.state.userData === null ? '' : `Welcome, ${this.state.userData.fullname} !`}</Typography>
                        </div>
                        <div style={{ flex: 1, padding: 20, width: '100%' }}>
                            <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>Dashboard CAT</Typography>
                            <div style={{ display: 'flex' }}>
                                <Autocomplete
                                    {...this.state.listMonthCAT}
                                    id="monthCAT"
                                    onChange={(event, newInputValue) => this.setState({ monthCAT: newInputValue, loading: true, loading3: true }, () => {
                                        this.getDashboardCAT()
                                        // if (this.state.isApprover === true) {
                                        //     this.getCompanySubmitted()
                                        // } else {
                                        // this.setState({ visibleTableHistory: false })
                                        // this.getRevision()
                                        // }
                                    })}
                                    disableClearable
                                    style={{ minWidth: 250, marginRight: 20 }}
                                    renderInput={(params) => <TextField {...params} label="Month CAT" margin="normal" style={{ marginTop: 7 }} />}
                                    value={this.state.monthCAT}
                                />
                                <Autocomplete
                                    {...this.state.listPeriodeCAT}
                                    id="periodeCAT"
                                    onChange={(event, newInputValue) => this.setState({ periodeCAT: newInputValue, loading: true, loading3: true }, () => {
                                        this.getDashboardCAT()
                                        // if (this.state.isApprover === true) {
                                        //         this.getCompanySubmitted()
                                        // } else {
                                        // this.setState({ visibleTableHistory: false })
                                        // this.getRevision()
                                        // }
                                    })}
                                    disableClearable
                                    style={{ width: 250 }}
                                    renderInput={(params) => <TextField {...params} label="Periode CAT" margin="normal" style={{ marginTop: 7 }} />}
                                    value={this.state.periodeCAT}
                                />
                            </div>
                            {this.state.dataDashboardCAT.map((item, index) => {
                                return (
                                    <div>
                                        <Typography style={{ color: '#656565', fontSize: '16px', marginTop: 20 }}>{item.item_business}</Typography>
                                        <div style={{ display: 'flex', overflowX: 'scroll', width: this.props.width * 0.95 }}>
                                            {item.category.map((items, indexs) => {
                                                return (
                                                    <Link to={{
                                                        pathname: `/home/cat-dashboard/`,
                                                        state: {
                                                            userType: 'user',
                                                            rawData: { month: this.state.monthCAT.month_id, periode: this.state.periodeCAT.value, companyId: items.company_id }
                                                        }
                                                    }}>
                                                        <div style={{ padding: 10, backgroundColor: '#fff', height: 350, borderRadius: 6, paddingBottom: 20, margin: 10, boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.25)', width: 250, marginRight: indexs == item.category.length - 1 ? 25 : 0, marginLeft: indexs == 0 ? 5 : 25 }}>
                                                            {/* <span style={{ fontSize: '17px', color: this.state.selectIndex === index ? '#fff' : '#7e8085', maxWidth: 100 }}>{item.category_name}</span> */}
                                                            <div style={{ fontSize: '17px', width: '100%', height: 25 }}>
                                                                <Typography style={{ textAlign: 'left', color: '#4b4b4b' }}>{items.category_name}</Typography>
                                                            </div>
                                                            {items.total_kpi != null &&
                                                                <div style={{ width: '100%', display: 'flex', justifyContent: 'center', marginTop: 10 }}>
                                                                    <span style={{ textAlign: 'center', fontSize: '18px', color: "#fff" }}>{items.total_kpi}</span>
                                                                    {/* <span style={{ textAlign: 'center', fontSize: '11px', color: selectIndex === index ? "#fff" : '#4b4b4b' }}>KPIs</span> */}
                                                                </div>}
                                                            <div style={{ display: 'flex', justifyContent: 'center', marginTop: items.total_kpi == null ? 50 : 0 }}>
                                                                <div style={{ backgroundColor: items.performanceColor, textAlign: 'center', display: 'flex', justifyContent: 'center', width: 40, height: 21 }}>
                                                                    <Typography style={{ textAlign: 'center', color: '#4b4b4b' }}>{items.performanceScore}</Typography>
                                                                </div>
                                                            </div>
                                                            {!this.state.loading3 && <div style={{ display: 'flex', justifyContent: 'center' }}>
                                                                <ReactSpeedometer
                                                                    maxSegmentLabels={0}
                                                                    segmentColors={[
                                                                        items.performanceColor,
                                                                        "#d8d8d8"
                                                                    ]}
                                                                    needleColor={"#4b4b4b"}
                                                                    value={Number(items.current_value).toFixed(2)}
                                                                    valueFormat={'.2f'}
                                                                    minValue={Number(items.low)}
                                                                    maxValue={Number(items.high)}
                                                                    customSegmentStops={[0, Number(items.current_value), 5]}
                                                                    width={200}
                                                                    height={140}
                                                                    ringWidth={25}
                                                                    textColor={'#4b4b4b'}
                                                                />
                                                            </div>}
                                                            <div style={{ backgroundColor: 'transparent', display: 'flex', marginTop: 20, placeContent: 'center' }}>
                                                                {items.is_higher == '-' ?
                                                                    <div style={{ textAlign: '-webkit-center' }}>
                                                                        <Typography style={{ fontSize: 16, color: '#4b4b4b' }}> - </Typography>
                                                                    </div>
                                                                    :
                                                                    <div style={{ textAlign: '-webkit-center' }}>
                                                                        {items.is_higher == 'true' ?
                                                                            <img src={Images.up} /> : <img src={Images.down} />}
                                                                        <Typography style={{ fontSize: 16, color: '#4b4b4b' }}>vs Last Month</Typography>
                                                                    </div>
                                                                }
                                                            </div>
                                                        </div>
                                                    </Link>
                                                )
                                            })}
                                        </div>
                                    </div>
                                )

                            })}
                        </div>
                        {(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={{ display: 'flex' }}>
                                    <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>Tasks to be Completed</Typography>
                                </div>
                            </div>
                        }
                        {(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={{ display: 'flex' }}>
                                    <Typography style={{ color: '#656565', fontSize: '16px', fontWeight: 'bold' }}>You don't have pending task</Typography>
                                </div>
                            </div>
                        }
                        <div style={{ display: 'flex', overflowX: 'scroll', width: this.props.width * 0.95 }}>
                            {this.state.accessMB &&
                                <div style={{ flex: 1, padding: 20, width: '100%' }}>
                                    <div style={{ display: 'flex' }}>
                                        <Autocomplete
                                            {...this.state.listPeriodeMB}
                                            id="periodeMB"
                                            onChange={(event, newInputValue) => this.setState({ periodeMB: newInputValue, loading: true }, () => {
                                                // if (this.state.isApprover === true) {
                                                //         this.getCompanySubmitted()
                                                // } else {
                                                // this.setState({ visibleTableHistory: false })
                                                // this.getRevision()
                                                // }\
                                                this.getListUserSubcoMB()
                                            })}
                                            disableClearable
                                            style={{ width: 250 }}
                                            renderInput={(params) => <TextField {...params} label="Periode MB" margin="normal" style={{ marginTop: 7 }} />}
                                            value={this.state.periodeMB}
                                        />
                                    </div>
                                    <Paper style={{ width: 450, padding: 20, borderRadius: 10, marginTop: 5 }}>
                                        <Typography style={{ fontWeight: 'bold', textDecorationLine: 'underline' }}>{`Master Budget ${this.state.valueSubmit}/${this.state.listSubcoMB.length}`}</Typography>
                                        {this.state.listSubcoMB.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/master-budget/`,
                                                            state: {
                                                                userType: 'user',
                                                                rawData: item
                                                            }
                                                        }}>
                                                            <button
                                                                style={{
                                                                    backgroundColor: 'transparent',
                                                                    cursor: 'pointer',
                                                                    borderColor: 'transparent',
                                                                    margin: 5,
                                                                    outline: 'none'
                                                                }}>
                                                                <Typography style={{ marginLeft: 10, color: '#5198ea', 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.accessMR &&
                                <div style={{ flex: 1, padding: 20, width: '100%' }}>
                                    <div style={{ display: 'flex' }}>
                                        <Autocomplete
                                            {...this.state.listMonth}
                                            id="month"
                                            onChange={(event, newInputValue) => this.setState({ month: newInputValue, loading: true }, () => {
                                                this.getListUserSubcoMR()
                                                // 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="Month" margin="normal" style={{ marginTop: 7 }} />}
                                            value={this.state.month}
                                        />
                                        <Autocomplete
                                            {...this.state.listPeriodeMR}
                                            id="periodeMR"
                                            onChange={(event, newInputValue) => this.setState({ periodeMR: newInputValue, loading: true }, () => {
                                                this.getListUserSubcoMR()
                                                // if (this.state.isApprover === true) {
                                                //         this.getCompanySubmitted()
                                                // } else {
                                                // this.setState({ visibleTableHistory: false })
                                                // this.getRevision()
                                                // }
                                            })}
                                            disableClearable
                                            style={{ width: 210 }}
                                            renderInput={(params) => <TextField {...params} label="Periode MR" margin="normal" style={{ marginTop: 7 }} />}
                                            value={this.state.periodeMR}
                                        />
                                    </div>
                                    <Paper style={{ width: 450, padding: 20, borderRadius: 10, marginTop: 5 }}>
                                        {!this.state.loading2 && <Typography style={{ fontWeight: 'bold', textDecorationLine: 'underline' }}>{`Monthly Report - ${this.state.month.month_value} ${this.state.periodeMR.value} ${this.state.valueSubmitMR}/${this.state.listSubcoMR.length}`}</Typography>}
                                        {this.state.listSubcoMR.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/monthly-report/`,
                                                            state: {
                                                                userType: 'user',
                                                                rawData: item,
                                                                month: this.state.month
                                                            }
                                                        }}>
                                                            <button
                                                                style={{
                                                                    backgroundColor: 'transparent',
                                                                    cursor: 'pointer',
                                                                    borderColor: 'transparent',
                                                                    margin: 5,
                                                                    outline: 'none'
                                                                }}>
                                                                <Typography style={{ marginLeft: 10, color: '#5198ea', 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.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) => {
                                            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.value},
                                                            }
                                                        }}>
                                                            <button
                                                                style={{
                                                                    backgroundColor: 'transparent',
                                                                    cursor: 'pointer',
                                                                    borderColor: 'transparent',
                                                                    margin: 5,
                                                                    outline: 'none'
                                                                }}>
                                                                <Typography style={{ marginLeft: 10, color: '#5198ea', 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 }}>
                                        {!this.state.loading2 && <Typography style={{ fontWeight: 'bold', textDecorationLine: 'underline' }}>{`Outlook Performance Appraisal - ${this.state.periodeOL.value} ${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: '#5198ea', 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>
        );

    }
}

export default HomePage;
