EditReportItems.js 58.2 KB
Newer Older
EKSAD's avatar
EKSAD committed
1
import React, { Component } from 'react';
2
import { TextField, Typography, withStyles, Snackbar } from '@material-ui/core';
EKSAD's avatar
EKSAD committed
3
import { DatePicker } from '@material-ui/pickers';
EKSAD's avatar
EKSAD committed
4 5
import format from "date-fns/format";
import Autocomplete from '@material-ui/lab/Autocomplete';
6
import MuiAlert from '@material-ui/lab/Alert';
EKSAD's avatar
EKSAD committed
7
import api from '../../../api';
EKSAD's avatar
EKSAD committed
8
import * as R from 'ramda'
EKSAD's avatar
EKSAD committed
9
import { titleCase } from '../../../library/Utils';
d.arizona's avatar
d.arizona committed
10
import Images from '../../../assets/Images';
a.bairuha's avatar
a.bairuha committed
11
import Constant from '../../../library/Constant';
12 13
const Alert = withStyles({
})((props) => <MuiAlert elevation={6} variant="filled" {...props} />);
EKSAD's avatar
EKSAD committed
14

EKSAD's avatar
EKSAD committed
15
export default class EditReportItems extends Component {
EKSAD's avatar
EKSAD committed
16 17 18
    constructor(props) {
        super(props)
        this.state = {
Deni Rinaldi's avatar
Deni Rinaldi committed
19

EKSAD's avatar
EKSAD committed
20 21 22 23 24 25 26 27 28 29
            tempData: null,
            InputType: null,
            company: null,
            parent: null,
            reportType: null,
            startDate: null,
            endDate: null,
            order: null,
            description: '',
            uom: '',
30
            weight: "",
EKSAD's avatar
EKSAD committed
31 32 33 34 35 36 37 38
            formula: '',
            realVal: '',
            condition: null,
            date: new Date(),
            listInputType: null,
            listCompany: null,
            listReportType: null,
            listParent: null,
39 40 41 42
            listKPI: null,
            listMaxAch: null,
            MaxAchValue: null,
            KPIValue: null,
EKSAD's avatar
EKSAD committed
43 44 45 46 47 48
            errorOrder: false,
            errorDesc: false,
            errorFormula: false,
            errorRV: false,
            errorStartDate: false,
            errorEndDate: false,
Deni Rinaldi's avatar
Deni Rinaldi committed
49 50 51 52
            errorJenisLaporan: false,
            errorPerusahaan: false,
            msgErrorJenisLaporan: '',
            msgErrorPerusahaan: '',
EKSAD's avatar
EKSAD committed
53 54 55
            msgErrorOrder: '',
            msgErrorDesc: '',
            msgErrorFormula: '',
Deni Rinaldi's avatar
Deni Rinaldi committed
56 57 58 59
            errorTipeData: false,
            msgErrorTipeData: '',
            errorCondition: false,
            msgErrorCondition: '',
EKSAD's avatar
EKSAD committed
60 61 62 63 64 65
            msgErrorRV: '',
            msgErrorSD: '',
            msgErrorED: '',
            disabledFormula: true,
            disabledCondt: true,
            disabledValue: true,
66 67 68
            options: ['WARNING', 'STOPPER'],
            alert: false,
            tipeAlert: '',
a.bairuha's avatar
a.bairuha committed
69 70 71
            messageAlert: '',
            kpiType: ['HIG', 'HIB'],
            maxAch: ['50%', '100%', 'Unlimited'],
a.bairuha's avatar
a.bairuha committed
72
            formulaYtd: ['SUM', 'AVG', 'LAST'],
a.bairuha's avatar
a.bairuha committed
73 74 75
            kpiTypeValue: null,
            maxAchValue: null,
            formulaYTDValue: null
EKSAD's avatar
EKSAD committed
76 77 78 79 80

        }
    }

    componentDidMount() {
EKSAD's avatar
EKSAD committed
81
        this.getDetailReportItems();
Deni Rinaldi's avatar
Deni Rinaldi committed
82

EKSAD's avatar
EKSAD committed
83 84
    }

EKSAD's avatar
EKSAD committed
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
    handleChange(e, type) {
        let data = this.state
        let isDate = type !== '' ? true : false
        if (isDate && type === 'start_date') {
            this.setState({
                ...data, tempData: { ...this.state.tempData, start_date: format(e, 'yyyy-MM-dd'), end_date: null },
                errorOrder: false,
                errorDesc: false,
                errorFormula: false,
                errorRV: false,
                errorStartDate: false,
                errorEndDate: false,
                msgErrorOrder: '',
                msgErrorDesc: '',
                msgErrorFormula: '',
                msgErrorRV: '',
                msgErrorSD: '',
                msgErrorED: '',
            })
        } else if (isDate && type === 'end_date') {
            this.setState({
                ...data, tempData: { ...this.state.tempData, end_date: format(e, 'yyyy-MM-dd') },
                errorOrder: false,
                errorDesc: false,
                errorFormula: false,
                errorRV: false,
                errorStartDate: false,
                errorEndDate: false,
                msgErrorOrder: '',
                msgErrorDesc: '',
                msgErrorFormula: '',
                msgErrorRV: '',
                msgErrorSD: '',
                msgErrorED: '',
            })
        } else {
            this.setState({
                ...data, tempData: { ...this.state.tempData, [e.target.name]: e.target.value },
                errorOrder: false,
                errorDesc: false,
                errorFormula: false,
                errorRV: false,
                errorStartDate: false,
                errorEndDate: false,
                msgErrorOrder: '',
                msgErrorDesc: '',
                msgErrorFormula: '',
                msgErrorRV: '',
                msgErrorSD: '',
                msgErrorED: '',
            })
        }
    }

    validasi() {
        // alert('coba ya')
141 142 143 144
        if (R.isNil(this.state.reportType)) {
            this.setState({ errorJenisLaporan: true, msgErrorJenisLaporan: 'Report Type Cannot be Empty' })
        } else if (R.isNil(this.state.company)) {
            this.setState({ errorPerusahaan: true, msgErrorPerusahaan: 'Company Name Cannot be Empty' })
Deni Rinaldi's avatar
Deni Rinaldi committed
145
        } else if (R.isEmpty(this.state.tempData.order)) {
EKSAD's avatar
EKSAD committed
146
            this.setState({ errorOrder: true, msgErrorOrder: 'Order Cannot be Empty' })
EKSAD's avatar
EKSAD committed
147
        } else if (R.isEmpty(this.state.tempData.description)) {
EKSAD's avatar
EKSAD committed
148
            this.setState({ errorDesc: true, msgErrorDesc: 'Description Cannot be Empty' })
Deni Rinaldi's avatar
Deni Rinaldi committed
149
        } else if (R.isNil(this.state.InputType)) {
EKSAD's avatar
EKSAD committed
150
            this.setState({ errorTipeData: true, msgErrorTipeData: 'Data Type Cannot be Empty' })
a.bairuha's avatar
a.bairuha committed
151
        } else if ((this.state.InputType.type_item_report_name === 'Formula' && R.isEmpty(this.state.tempData.formula)) || (this.state.InputType.type_item_report_name === 'Validation' && R.isEmpty(this.state.tempData.formula))) {
EKSAD's avatar
EKSAD committed
152
            this.setState({ errorFormula: true, msgErrorFormula: 'Formula Cannot be Empty' })
a.bairuha's avatar
a.bairuha committed
153
        } else if (this.state.InputType.type_item_report_name === 'Validation' && R.isEmpty(this.state.tempData.condition_it_should_be)) {
EKSAD's avatar
EKSAD committed
154
            this.setState({ errorRV: true, msgErrorRV: 'True Value Cannot be Empty' })
a.bairuha's avatar
a.bairuha committed
155
        } else if (this.state.InputType.type_item_report_name === 'Validation' && R.isNil(this.state.tempData.condition_if_wrong)) {
EKSAD's avatar
EKSAD committed
156
            this.setState({ errorCondition: true, msgErrorCondition: 'False Condition Cannot be Empty' })
Deni Rinaldi's avatar
Deni Rinaldi committed
157
        } else if (R.isNil(this.state.tempData.start_date)) {
EKSAD's avatar
EKSAD committed
158
            this.setState({ errorStartDate: true, msgErrorSD: 'Valid From Cannot be Empty' })
EKSAD's avatar
EKSAD committed
159
        } else if (R.isNil(this.state.tempData.end_date)) {
EKSAD's avatar
EKSAD committed
160
            this.setState({ errorEndDate: true, msgErrorED: 'Valid To Cannot be Empty' })
EKSAD's avatar
EKSAD committed
161
        } else {
EKSAD's avatar
EKSAD committed
162
            this.updateReportItems()
EKSAD's avatar
EKSAD committed
163 164 165 166
        }

    }

EKSAD's avatar
EKSAD committed
167 168 169
    updateReportItems() {
        // alert('test')
        let payload = {
d.arizona's avatar
d.arizona committed
170
            "item_report_id": this.state.tempData.item_report_id,
Deni Rinaldi's avatar
Deni Rinaldi committed
171 172
            "report_id": this.state.reportType == null ? this.state.tempData.report_id : this.state.reportType.report_id,
            "company_id": this.state.company == null ? this.state.tempData.company_id : this.state.company.company_id,
EKSAD's avatar
EKSAD committed
173 174
            "description": this.state.tempData.description,
            "orders": this.state.tempData.order,
Deni Rinaldi's avatar
Deni Rinaldi committed
175
            "parent": this.state.parent == null ? null : this.state.parent.item_report_id,
a.bairuha's avatar
a.bairuha committed
176
            "type_report_id": this.state.InputType == null ? this.state.tempData.type_item_report_id : this.state.InputType.type_item_report_id,
EKSAD's avatar
EKSAD committed
177 178
            "formula": this.state.tempData.formula,
            "uom": this.state.tempData.uom,
Deni Rinaldi's avatar
Deni Rinaldi committed
179
            "weight": this.state.tempData.weight == null ? "" : this.state.tempData.weight,
EKSAD's avatar
EKSAD committed
180 181
            "condition_if_wrong": this.state.tempData.condition_if_wrong,
            "condition_it_should_be": this.state.tempData.condition_it_should_be,
a.bairuha's avatar
a.bairuha committed
182 183 184
            "type_kpi": this.state.tempData.kpi_type,
            "max_ach": this.state.tempData.max_ach,
            "formula_ytd": this.state.tempData.formula_ytd,
EKSAD's avatar
EKSAD committed
185 186 187
            "start_date": this.state.tempData.start_date,
            "end_date": this.state.tempData.end_date
        }
EKSAD's avatar
EKSAD committed
188
        // console.log(payload)
189
        this.props.updateReportItems(payload)
EKSAD's avatar
EKSAD committed
190 191
    }

EKSAD's avatar
EKSAD committed
192
    getDetailReportItems() {
EKSAD's avatar
EKSAD committed
193
        api.create().getDetailReportItems(this.props.data[1]).then((response) => {
194
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
195 196 197
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let data = response.data.data
198
                        this.setState({
a.bairuha's avatar
a.bairuha committed
199
                            tempData: response.data.data,
200 201 202 203
                            getCompanyID: data.company_id
                        }, () => this.getInputType(),
                            this.getPerusahaan(),
                            this.getReportType())
EKSAD's avatar
EKSAD committed
204
                        // console.log(response.data.data)
a.bairuha's avatar
a.bairuha committed
205 206
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
a.bairuha's avatar
a.bairuha committed
207
                            if (response.data.message.includes("Someone Logged In")) {
a.bairuha's avatar
a.bairuha committed
208 209 210 211 212 213 214
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                    }
215
                } else {
a.bairuha's avatar
a.bairuha committed
216
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
217
                }
EKSAD's avatar
EKSAD committed
218
            } else {
219
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
220 221 222 223 224 225 226
            }
        })
    }

    getInputType() {
        api.create().getInputType().then((response) => {
            // console.log(response)
227
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
228 229 230 231 232 233 234 235 236 237 238 239 240
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let data = response.data.data
                        let inputData = data.map((item) => {
                            return {
                                type_item_report_id: item.type_item_report_id,
                                type_item_report_name: item.type_item_report_name
                            }
                        })
                        let defaultProps = {
                            options: inputData,
                            getOptionLabel: (option) => titleCase(option.type_item_report_name),
                        };
Deni Rinaldi's avatar
Deni Rinaldi committed
241

a.bairuha's avatar
a.bairuha committed
242 243 244 245
                        let index = inputData.findIndex((val) => val.type_item_report_id === this.state.tempData.type_item_report_id)
                        this.setState({ listInputType: defaultProps, InputType: index === -1 ? null : inputData[index] })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
a.bairuha's avatar
a.bairuha committed
246
                            if (response.data.message.includes("Someone Logged In")) {
a.bairuha's avatar
a.bairuha committed
247 248 249 250 251 252 253
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                    }
254
                } else {
a.bairuha's avatar
a.bairuha committed
255
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
256
                }
EKSAD's avatar
EKSAD committed
257
            } else {
258
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
259 260 261 262 263 264
            }
        })
    }

    getPerusahaan() {
        api.create().getPerusahaanActive().then((response) => {
EKSAD's avatar
EKSAD committed
265
            // console.log(response)
266
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let data = response.data.data
                        let companyData = data.map((item) => {
                            return {
                                company_id: item.company_id,
                                company_name: item.company_name
                            }
                        })
                        companyData.push({
                            company_id: 0,
                            company_name: 'Default'
                        })
                        let index = companyData.sort((a, b) => a.company_id - b.company_id).findIndex((val) => val.company_id == this.state.getCompanyID)
                        let defaultProps = {
                            options: companyData,
                            getOptionLabel: (option) => option.company_name,
                        };
                        // let index = companyData.findIndex((val) => val.company_id === this.state.tempData.company_id)
286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
                        this.setState({ listCompany: defaultProps, companyData: response.data.data, company: index === -1 ? null : companyData[index], msgErrorPerusahaan: index === -1 ? 'Company has been Inactive.' : "", errorPerusahaan: index === -1 ? true : false }, () => {
                            this.getParent()
                            this.getKPIType()
                            this.getMaxAch()
                        })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
                            if (response.data.message.includes("Someone Logged In")) {
                                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' })
            }
        })
    }

    getKPIType() {
        let body = {
            group: 'CAT',
            company_id: this.state.company.company_id,
            type: 'KPI_TYPE'
        }
        api.create().getAllSettingByType(body).then(response => {
            if (response.data) {
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let data = response.data.data
                        let inputKPI = data.map((item) => {
                            return {
                                value: item.value
                            }
                        })
                        let defaultProps = {
                            options: inputKPI,
                            getOptionLabel: (option) => titleCase(option.value),
                        };
                        let index = inputKPI.findIndex((val) => val.value === this.state.tempData.kpi_type)
                        this.setState({ listKPI: defaultProps, inputKPI: response.data.data, KPIValue: index === -1 ? null : inputKPI[index]})
a.bairuha's avatar
a.bairuha committed
332 333
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
a.bairuha's avatar
a.bairuha committed
334
                            if (response.data.message.includes("Someone Logged In")) {
a.bairuha's avatar
a.bairuha committed
335 336 337 338 339 340
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383
                        // alert(response.data.message)
                    }
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
                }
            } else {
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
            }
        })
    }

    getMaxAch() {
        let body = {
            group: 'CAT',
            company_id: this.state.company.company_id,
            type: 'MAX_ACHIEVEMENT'
        }
        api.create().getAllSettingByType(body).then(response => {
            if (response.data) {
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let data = response.data.data
                        let inputMaxAch = data.map((item) => {
                            return {
                                value: item.value
                            }
                        })
                        let defaultProps = {
                            options: inputMaxAch,
                            getOptionLabel: (option) => titleCase(option.value),
                        };
                        let index = inputMaxAch.findIndex((val) => val.value === this.state.tempData.max_ach)
                        this.setState({ listMaxAch: defaultProps, inputMaxAch: response.data.data, MaxAchValue: index === -1 ? null : inputMaxAch[index] })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
                            if (response.data.message.includes("Someone Logged In")) {
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                        // alert(response.data.message)
a.bairuha's avatar
a.bairuha committed
384
                    }
385
                } else {
a.bairuha's avatar
a.bairuha committed
386
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
387
                }
EKSAD's avatar
EKSAD committed
388
            } else {
389
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
390 391 392 393 394 395
            }
        })
    }

    getReportType() {
        api.create().getReportType().then((response) => {
EKSAD's avatar
EKSAD committed
396
            // console.log(response)
397
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
398 399 400 401 402 403 404 405 406 407 408 409 410
                if (response.ok) {
                    if (response.data.status === 'success') {
                        let data = response.data.data
                        let reportTypeData = data.map((item) => {
                            return {
                                report_id: item.report_id,
                                report_name: item.report_name,
                            }
                        })
                        let defaultProps = {
                            options: reportTypeData,
                            getOptionLabel: (option) => titleCase(option.report_name),
                        };
EKSAD's avatar
EKSAD committed
411

a.bairuha's avatar
a.bairuha committed
412 413 414 415
                        let index = reportTypeData.findIndex((val) => val.report_id === this.state.tempData.report_id)
                        this.setState({ listReportType: defaultProps, reportType: index === -1 ? null : reportTypeData[index] }, () => this.getParent())
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
a.bairuha's avatar
a.bairuha committed
416
                            if (response.data.message.includes("Someone Logged In")) {
a.bairuha's avatar
a.bairuha committed
417 418 419 420 421 422 423
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                    }
424
                } else {
a.bairuha's avatar
a.bairuha committed
425
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
426
                }
EKSAD's avatar
EKSAD committed
427
            } else {
428
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
429 430 431 432 433
            }
        })
    }

    getParent() {
d.arizona's avatar
d.arizona committed
434
        if (this.state.reportType !== null && this.state.company !== null) {
EKSAD's avatar
EKSAD committed
435
            // console.log(this.state.tempData.item_report_id)
d.arizona's avatar
d.arizona committed
436 437 438
            let payload = {
                "report_id": this.state.reportType.report_id,
                "company_id": this.state.company.company_id
EKSAD's avatar
EKSAD committed
439
            }
d.arizona's avatar
d.arizona committed
440
            api.create().getReportParent(payload).then((response) => {
EKSAD's avatar
EKSAD committed
441
                // console.log(response)
442
                if (response.data) {
a.bairuha's avatar
a.bairuha committed
443 444 445 446 447 448 449 450 451 452 453 454
                    if (response.ok) {
                        if (response.data.status === 'success') {
                            let data = response.data.data
                            let currentIndex = null
                            let parentData = data.map((item, index) => {
                                if (this.state.tempData.item_report_id !== item.item_report_id) {
                                    return {
                                        item_report_id: item.item_report_id,
                                        description: item.description
                                    }
                                } else {
                                    currentIndex = index
EKSAD's avatar
EKSAD committed
455
                                }
a.bairuha's avatar
a.bairuha committed
456 457 458
                            })
                            if (currentIndex !== null) {
                                parentData.splice(currentIndex, 1)
459
                            }
EKSAD's avatar
EKSAD committed
460
                            // console.log(parentData)
a.bairuha's avatar
a.bairuha committed
461 462 463 464 465 466 467 468
                            let defaultProps = {
                                options: parentData,
                                getOptionLabel: (option) => titleCase(option.description),
                            };
                            let index = parentData.findIndex((val) => val.item_report_id === this.state.tempData.parent)
                            this.setState({ listParent: defaultProps, parent: index == -1 ? null : parentData[index] })
                        } else {
                            this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
a.bairuha's avatar
a.bairuha committed
469
                                if (response.data.message.includes("Someone Logged In")) {
a.bairuha's avatar
a.bairuha committed
470 471 472 473 474 475
                                    setTimeout(() => {
                                        localStorage.removeItem(Constant.TOKEN)
                                        window.location.reload();
                                    }, 1000);
                                }
                            })
EKSAD's avatar
EKSAD committed
476
                        }
477
                    } else {
a.bairuha's avatar
a.bairuha committed
478
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
479
                    }
d.arizona's avatar
d.arizona committed
480
                } else {
481
                    this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
d.arizona's avatar
d.arizona committed
482 483 484
                }
            })
        }
EKSAD's avatar
EKSAD committed
485
    }
Deni Rinaldi's avatar
Deni Rinaldi committed
486 487 488 489 490 491

    clearMessage() {
        this.setState({
            errorFormula: false, msgErrorFormula: '',
            errorTipeData: false, msgErrorTipeData: '',
            errorCondition: false, msgErrorCondition: '',
Deni Rinaldi's avatar
Deni Rinaldi committed
492 493 494
            errorRV: false, msgErrorRV: '',
            errorJenisLaporan: false, msgErrorJenisLaporan: '',
            errorPerusahaan: false, msgErrorPerusahaan: ''
Deni Rinaldi's avatar
Deni Rinaldi committed
495 496 497
        })
    }

498 499 500 501
    closeAlert() {
        this.setState({ alert: false })
    }

EKSAD's avatar
EKSAD committed
502 503 504 505 506
    render() {

        return (
            <div className="test app-popup-show">
                <div className="popup-content background-white border-radius" style={{ borderRadius: 8 }}>
EKSAD's avatar
EKSAD committed
507
                    <div className="popup-panel grid grid-2x main-color" style={{ height: 64, borderTopRightRadius: 8, borderTopLeftRadius: 8 }}>
EKSAD's avatar
EKSAD committed
508 509 510 511 512 513 514 515 516 517 518
                        <div className="col-1" style={{ maxWidth: "inherit", display: 'flex', alignItems: 'center' }}>
                            <div className="popup-title">
                                <span style={{ color: '#fff', fontSize: 16, fontWeight: 'bold' }}>Edit Data</span>
                            </div>
                        </div>
                        <div className="col-2 content-right" style={{ maxWidth: "inherit", alignSelf: 'center' }}>
                            <button
                                type="button"
                                className="btn btn-circle btn-white"
                                onClick={() => this.props.onClickClose()}
                            >
Deni Rinaldi's avatar
Deni Rinaldi committed
519
                                <img src={Images.close} />
EKSAD's avatar
EKSAD committed
520 521 522
                            </button>
                        </div>
                    </div>
523 524 525 526 527
                    <Snackbar open={this.state.alert} autoHideDuration={6000} onClose={() => this.closeAlert()}>
                        <Alert onClose={() => this.closeAlert()} severity={this.state.tipeAlert}>
                            {this.state.messageAlert}
                        </Alert>
                    </Snackbar>
EKSAD's avatar
EKSAD committed
528

EKSAD's avatar
EKSAD committed
529
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
EKSAD's avatar
EKSAD committed
530
                        <div className="column-1">
a.bairuha's avatar
a.bairuha committed
531
                            <div className="margin-top-10px" style={{ backgroundColor: '#e8e8e8', padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
532 533
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
534
                                    value={this.state.tempData === null ? '' : this.state.tempData.item_report_id}
EKSAD's avatar
EKSAD committed
535 536 537
                                    id="ID"
                                    label="ID"
                                    disabled
EKSAD's avatar
EKSAD committed
538
                                    onChange={(e) => null}
EKSAD's avatar
EKSAD committed
539 540 541
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
542
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
543 544 545 546 547 548
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
549
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
550 551 552 553
                                        }
                                    }}
                                />
                            </div>
EKSAD's avatar
EKSAD committed
554 555
                        </div>
                        <div className="column-2">
Deni Rinaldi's avatar
Deni Rinaldi committed
556
                            <div className="margin-top-10px" style={{ padding: 10 }}>
EKSAD's avatar
EKSAD committed
557 558 559
                                <Autocomplete
                                    {...this.state.listReportType}
                                    id="reportType"
560 561 562
                                    onChange={(event, newInputValue) => this.setState({ reportType: newInputValue }, () =>
                                        newInputValue == null || (newInputValue.report_name !== 'CAT') ? this.setState({ tempData: { ...this.state.tempData, kpi_type: null, max_ach: null, formula_ytd: null } }, () => this.getParent(), this.clearMessage())
                                            : this.getParent(), this.clearMessage()
a.bairuha's avatar
a.bairuha committed
563
                                    )}
EKSAD's avatar
EKSAD committed
564
                                    debug
Deni Rinaldi's avatar
Deni Rinaldi committed
565 566
                                    renderInput={(params) =>
                                        <TextField {...params}
567
                                            label="Report Type"
EKSAD's avatar
EKSAD committed
568 569 570 571 572 573 574
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
575 576
                                            error={this.state.errorJenisLaporan}
                                            helperText={this.state.msgErrorJenisLaporan}
EKSAD's avatar
EKSAD committed
577 578 579 580 581 582 583 584 585
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
                                        />}
                                    value={this.state.reportType}
                                />
                            </div>
                        </div>
                    </div>
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
Deni Rinaldi's avatar
Deni Rinaldi committed
586
                            <div className="margin-top-10px" style={{ padding: 10 }} >
EKSAD's avatar
EKSAD committed
587 588
                                <Autocomplete
                                    {...this.state.listCompany}
EKSAD's avatar
EKSAD committed
589
                                    id="company"
Deni Rinaldi's avatar
Deni Rinaldi committed
590
                                    onChange={(event, newInputValue) => this.setState({ company: newInputValue }, () => this.getParent(), this.clearMessage())}
EKSAD's avatar
EKSAD committed
591
                                    debug
Deni Rinaldi's avatar
Deni Rinaldi committed
592 593
                                    renderInput={(params) =>
                                        <TextField {...params}
EKSAD's avatar
EKSAD committed
594
                                            label="Company Name"
EKSAD's avatar
EKSAD committed
595 596 597 598 599 600 601
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
602 603
                                            error={this.state.errorPerusahaan}
                                            helperText={this.state.msgErrorPerusahaan}
EKSAD's avatar
EKSAD committed
604
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
605 606 607
                                        />}
                                    value={this.state.company}
                                />
EKSAD's avatar
EKSAD committed
608
                            </div>
EKSAD's avatar
EKSAD committed
609 610 611
                        </div>
                        <div className="column-2">
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
612 613
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
614 615 616
                                    id="order"
                                    label="Order"
                                    name="order"
617
                                    type="number"
EKSAD's avatar
EKSAD committed
618 619 620
                                    value={this.state.tempData === null ? '' : this.state.tempData.order}
                                    error={this.state.errorOrder}
                                    helperText={this.state.msgErrorOrder}
d.arizona's avatar
d.arizona committed
621
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
622
                                    inputProps={{
623
                                        min: 0,
EKSAD's avatar
EKSAD committed
624 625
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
626
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
627 628 629 630 631 632
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
633
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
634 635 636 637 638
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
639 640 641 642
                        </div>
                    </div>
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
Deni Rinaldi's avatar
Deni Rinaldi committed
643
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
644 645
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
646
                                    id="description"
647
                                    label="Description"
EKSAD's avatar
EKSAD committed
648 649 650
                                    name="description"
                                    error={this.state.errorDesc}
                                    helperText={this.state.msgErrorDesc}
d.arizona's avatar
d.arizona committed
651
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
652
                                    value={this.state.tempData === null ? '' : this.state.tempData.description}
EKSAD's avatar
EKSAD committed
653 654 655
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
656
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
657 658 659 660 661 662
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
663
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
664 665 666 667 668
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
669 670
                        </div>
                        <div className="column-2">
Deni Rinaldi's avatar
Deni Rinaldi committed
671
                            <div className="margin-top-10px" style={{ padding: 10 }} >
EKSAD's avatar
EKSAD committed
672
                                <Autocomplete
EKSAD's avatar
EKSAD committed
673 674
                                    {...this.state.listParent}
                                    id="parentId"
Deni Rinaldi's avatar
Deni Rinaldi committed
675
                                    onChange={(event, newInputValue) => this.setState({ parent: newInputValue })}
EKSAD's avatar
EKSAD committed
676
                                    disabled={this.state.reportType == null || this.state.company == null}
EKSAD's avatar
EKSAD committed
677
                                    debug
Deni Rinaldi's avatar
Deni Rinaldi committed
678 679 680
                                    renderInput={(params) =>
                                        <TextField {...params}
                                            label="Parent ID"
EKSAD's avatar
EKSAD committed
681 682 683 684 685 686 687
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
EKSAD's avatar
EKSAD committed
688
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
689
                                        />}
EKSAD's avatar
EKSAD committed
690
                                    value={this.state.parent}
EKSAD's avatar
EKSAD committed
691 692
                                />
                            </div>
EKSAD's avatar
EKSAD committed
693 694 695 696
                        </div>
                    </div>
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
Deni Rinaldi's avatar
Deni Rinaldi committed
697
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
698 699
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
700 701 702 703 704
                                    id="uom"
                                    label="UOM"
                                    name="uom"
                                    onChange={(e) => this.handleChange(e, '')}
                                    value={this.state.tempData === null ? '' : this.state.tempData.uom}
EKSAD's avatar
EKSAD committed
705 706 707
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
708
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
709 710 711 712 713 714
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
715
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
716 717
                                        }
                                    }}
EKSAD's avatar
EKSAD committed
718 719
                                >
                                </TextField>
EKSAD's avatar
EKSAD committed
720 721 722
                            </div>
                        </div>
                        <div className="column-2">
Deni Rinaldi's avatar
Deni Rinaldi committed
723
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
724 725
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
726 727 728
                                    id="weight"
                                    label="Weight"
                                    name="weight"
EKSAD's avatar
EKSAD committed
729
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
730
                                    value={this.state.tempData === null ? '' : this.state.tempData.weight}
EKSAD's avatar
EKSAD committed
731 732 733
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
734
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
735 736 737 738 739 740
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
741
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
742 743 744 745 746
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
747 748 749 750
                        </div>
                    </div>
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
Deni Rinaldi's avatar
Deni Rinaldi committed
751
                            <div className="margin-top-10px" style={{ padding: 10 }}>
EKSAD's avatar
EKSAD committed
752
                                <Autocomplete
EKSAD's avatar
EKSAD committed
753 754
                                    {...this.state.listInputType}
                                    id="inputType"
Deni Rinaldi's avatar
Deni Rinaldi committed
755 756 757 758 759 760
                                    onChange={(event, newInputValue) =>
                                        this.setState({
                                            InputType: newInputValue,
                                            tempData: { ...this.state.tempData, formula: '', condition_it_should_be: '', condition_if_wrong: '' },
                                        },
                                            () => console.log(this.state.InputType), this.clearMessage())}
EKSAD's avatar
EKSAD committed
761
                                    debug
Deni Rinaldi's avatar
Deni Rinaldi committed
762 763
                                    renderInput={(params) =>
                                        <TextField {...params}
764
                                            label="Data Type"
EKSAD's avatar
EKSAD committed
765 766 767 768 769 770 771
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
772 773
                                            error={this.state.errorTipeData}
                                            helperText={this.state.msgErrorTipeData}
EKSAD's avatar
EKSAD committed
774
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
775
                                        />}
EKSAD's avatar
EKSAD committed
776
                                    value={this.state.InputType}
EKSAD's avatar
EKSAD committed
777
                                />
EKSAD's avatar
EKSAD committed
778
                            </div>
EKSAD's avatar
EKSAD committed
779 780 781
                        </div>
                        <div className="column-2">
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
782 783
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
784 785
                                    id="formula"
                                    label="Formula"
EKSAD's avatar
EKSAD committed
786
                                    disabled={this.state.InputType == null ? true : (this.state.InputType.type_item_report_name === 'Formula' || this.state.InputType.type_item_report_name === 'Validation' || this.state.InputType.type_item_report_name === 'Formula - Summary' ? false : true)}
EKSAD's avatar
EKSAD committed
787 788 789
                                    name="formula"
                                    error={this.state.errorFormula}
                                    helperText={this.state.msgErrorFormula}
d.arizona's avatar
d.arizona committed
790
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
791
                                    value={this.state.tempData === null ? '' : this.state.tempData.formula}
EKSAD's avatar
EKSAD committed
792 793 794
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
795
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
796 797 798 799 800 801
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
802
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
803 804 805 806 807
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
808 809 810 811 812
                        </div>
                    </div>
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
                            <div className="margin-top-10px" style={{ padding: 10 }}>
EKSAD's avatar
EKSAD committed
813 814
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
815
                                    id="condition_it_should_be"
816
                                    label="True Value"
EKSAD's avatar
EKSAD committed
817 818
                                    error={this.state.errorRV}
                                    helperText={this.state.msgErrorRV}
a.bairuha's avatar
a.bairuha committed
819
                                    disabled={this.state.InputType == null ? true : (this.state.InputType.type_item_report_name === 'Validation' ? false : true)}
Deni Rinaldi's avatar
Deni Rinaldi committed
820 821
                                    name="condition_it_should_be"
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
822
                                    value={this.state.tempData === null ? '' : this.state.tempData.condition_it_should_be}
EKSAD's avatar
EKSAD committed
823 824 825
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
826
                                            fontFamily: 'Nunito Sans, sans-serif'
EKSAD's avatar
EKSAD committed
827 828 829 830 831 832
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
833
                                            color: '#7e8085'
EKSAD's avatar
EKSAD committed
834 835
                                        }
                                    }}
EKSAD's avatar
EKSAD committed
836
                                />
EKSAD's avatar
EKSAD committed
837
                            </div>
EKSAD's avatar
EKSAD committed
838 839
                        </div>
                        <div className="column-2">
Deni Rinaldi's avatar
Deni Rinaldi committed
840
                            <div className="margin-top-10px" style={{ padding: 10 }}>
EKSAD's avatar
EKSAD committed
841
                                <Autocomplete
Deni Rinaldi's avatar
Deni Rinaldi committed
842
                                    value={this.state.tempData === null ? "" : this.state.tempData.condition_if_wrong}
EKSAD's avatar
EKSAD committed
843
                                    id="isWrongCondition"
a.bairuha's avatar
a.bairuha committed
844
                                    disabled={this.state.InputType == null ? true : (this.state.InputType.type_item_report_name === 'Validation' ? false : true)}
EKSAD's avatar
EKSAD committed
845
                                    onChange={(event, newValue) => {
Deni Rinaldi's avatar
Deni Rinaldi committed
846
                                        this.setState({ tempData: { ...this.state.tempData, condition_if_wrong: newValue } }, () => this.clearMessage());
EKSAD's avatar
EKSAD committed
847 848
                                    }}
                                    options={this.state.options}
Deni Rinaldi's avatar
Deni Rinaldi committed
849 850
                                    renderInput={(params) =>
                                        <TextField {...params}
851
                                            label="False Condition"
EKSAD's avatar
EKSAD committed
852 853 854 855 856 857 858
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
859 860
                                            error={this.state.errorCondition}
                                            helperText={this.state.msgErrorCondition}
EKSAD's avatar
EKSAD committed
861
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
862
                                        />}
EKSAD's avatar
EKSAD committed
863 864
                                />
                            </div>
EKSAD's avatar
EKSAD committed
865 866
                        </div>
                    </div>
a.bairuha's avatar
a.bairuha committed
867 868

                    {this.state.reportType !== null && (
869 870 871 872 873 874 875 876 877 878
                        this.state.reportType.report_name === 'CAT' && (
                            <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                                <div className="column-1">
                                    <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                        <Autocomplete
                                            {...this.state.listKPI}
                                            value={this.state.KPIValue}
                                            id="kpiType"
                                            onChange={(event, newValue) => {
                                                this.setState({ tempData: { ...this.state.tempData, kpi_type: newValue.value }, KPIValue: newValue }, () => this.clearMessage());
a.bairuha's avatar
a.bairuha committed
879
                                            }}
880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902
                                            renderInput={(params) =>
                                                <TextField {...params}
                                                    label="KPI Type"
                                                    InputLabelProps={{
                                                        style: {
                                                            fontSize: 11,
                                                            fontFamily: 'Nunito Sans, sans-serif',
                                                            color: '#7e8085'
                                                        }
                                                    }}
                                                    InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
                                                />}
                                        />
                                    </div>
                                </div>
                                <div className="column-2">
                                    <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                        <Autocomplete
                                            {...this.state.listMaxAch}
                                            value={this.state.MaxAchValue}
                                            id="maxAch"
                                            onChange={(event, newValue) => {
                                                this.setState({ tempData: { ...this.state.tempData, max_ach: newValue.value }, MaxAchValue: newValue }, () => this.clearMessage());
a.bairuha's avatar
a.bairuha committed
903
                                            }}
904 905 906 907 908 909 910 911 912 913 914 915 916 917 918
                                            renderInput={(params) =>
                                                <TextField {...params}
                                                    label="Max Achievement"
                                                    InputLabelProps={{
                                                        style: {
                                                            fontSize: 11,
                                                            fontFamily: 'Nunito Sans, sans-serif',
                                                            color: '#7e8085'
                                                        }
                                                    }}
                                                    InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
                                                />}
                                        />
                                    </div>
                                </div>
a.bairuha's avatar
a.bairuha committed
919
                            </div>
920
                        ))}
a.bairuha's avatar
a.bairuha committed
921 922

                    {this.state.reportType !== null && (
923 924 925 926 927 928 929 930 931
                        this.state.reportType.report_name === 'CAT' && (
                            <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                                <div className="column-1">
                                    <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                        <Autocomplete
                                            value={this.state.tempData === null ? "" : this.state.tempData.formula_ytd}
                                            id="kpiType"
                                            onChange={(event, newValue) => {
                                                this.setState({ tempData: { ...this.state.tempData, formula_ytd: newValue } }, () => this.clearMessage());
a.bairuha's avatar
a.bairuha committed
932
                                            }}
933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948
                                            options={this.state.formulaYtd}
                                            renderInput={(params) =>
                                                <TextField {...params}
                                                    label="Formula YTD"
                                                    InputLabelProps={{
                                                        style: {
                                                            fontSize: 11,
                                                            fontFamily: 'Nunito Sans, sans-serif',
                                                            color: '#7e8085'
                                                        }
                                                    }}
                                                    InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
                                                />}
                                        />
                                    </div>
                                </div>
a.bairuha's avatar
a.bairuha committed
949
                            </div>
950
                        ))}
a.bairuha's avatar
a.bairuha committed
951

EKSAD's avatar
EKSAD committed
952 953
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
EKSAD's avatar
EKSAD committed
954
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
955 956 957
                                <DatePicker
                                    margin="normal"
                                    id="startDate"
958
                                    label="Valid From"
EKSAD's avatar
EKSAD committed
959
                                    format="dd-MM-yyyy"
EKSAD's avatar
EKSAD committed
960 961 962 963 964 965 966
                                    value={this.state.tempData === null ? null : this.state.tempData.start_date}
                                    error={this.state.errorStartDate}
                                    helperText={this.state.msgErrorSD}
                                    onChange={(e) => this.handleChange(e, 'start_date')}
                                    KeyboardButtonProps={{
                                        'aria-label': 'change date',
                                    }}
967 968 969 970 971 972 973 974 975 976 977 978 979
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
EKSAD's avatar
EKSAD committed
980 981 982 983 984 985 986
                                    style={{ padding: 0, margin: 0, width: '100%' }}
                                />
                            </div>
                        </div>
                        <div className="column-2">
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <DatePicker
EKSAD's avatar
EKSAD committed
987 988
                                    margin="normal"
                                    id="endDate"
989
                                    label="Valid To"
EKSAD's avatar
EKSAD committed
990
                                    format="dd-MM-yyyy"
EKSAD's avatar
EKSAD committed
991 992 993 994 995 996 997 998
                                    value={this.state.tempData === null ? null : this.state.tempData.end_date}
                                    error={this.state.errorEndDate}
                                    helperText={this.state.msgErrorED}
                                    minDate={this.state.tempData === null ? null : this.state.tempData.start_date}
                                    onChange={(e) => this.handleChange(e, 'end_date')}
                                    KeyboardButtonProps={{
                                        'aria-label': 'change date',
                                    }}
999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
EKSAD's avatar
EKSAD committed
1012 1013

                                    style={{ padding: 0, margin: 0, width: '100%' }}
EKSAD's avatar
EKSAD committed
1014 1015 1016
                                />
                            </div>
                        </div>
EKSAD's avatar
EKSAD committed
1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043
                    </div>
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
                            <div className="margin-top-10px" style={{ backgroundColor: '#e8e8e8', padding: 10, borderRadius: 5 }}>
                                <TextField
                                    style={{ width: '100%' }}
                                    value={this.state.tempData === null ? '' : this.state.tempData.status}
                                    id="status"
                                    label="Status"
                                    disabled
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif'
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085'
                                        }
                                    }}
                                />
                            </div>
                        </div>
                    </div>
1044
                    <div className="margin-top-10px" style={{ paddingTop: 10, paddingBottom: 30, paddingRight: 30, paddingLeft: 30 }}>
1045
                        <div style={{ display: 'flex' }}>
a.bairuha's avatar
a.bairuha committed
1046
                            <Typography style={{ fontSize: 11, width: '12%' }}>Created By</Typography>
EKSAD's avatar
EKSAD committed
1047
                            <Typography style={{ fontSize: 11 }}>:  {this.state.tempData === null ? "" : this.state.tempData.created}</Typography>
1048 1049
                        </div>
                        <div style={{ display: 'flex' }}>
a.bairuha's avatar
a.bairuha committed
1050
                            <Typography style={{ fontSize: 11, width: '12%' }}>Updated By</Typography>
EKSAD's avatar
EKSAD committed
1051
                            <Typography style={{ fontSize: 11 }}>:  {this.state.tempData === null ? "" : this.state.tempData.updated}</Typography>
EKSAD's avatar
EKSAD committed
1052
                        </div>
EKSAD's avatar
EKSAD committed
1053 1054 1055 1056 1057 1058 1059 1060 1061
                    </div>

                    <div className="border-top grid grid-2x" style={{ height: 56, backgroundColor: '#f5f5f5', paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1" style={{ alignSelf: 'center' }}>
                            <button
                                type="button"
                                onClick={() => this.props.onClickClose()}
                            >
                                <div style={{ width: 102, height: 30, border: 'solid 1px #354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
1062
                                    <span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
EKSAD's avatar
EKSAD committed
1063 1064 1065 1066
                                </div>
                            </button>
                        </div>
                        <div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
EKSAD's avatar
EKSAD committed
1067
                            <button onClick={() => this.validasi()}>
EKSAD's avatar
EKSAD committed
1068
                                <div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
1069
                                    <span style={{ color: '#fff', fontSize: 11 }}>Save</span>
EKSAD's avatar
EKSAD committed
1070 1071
                                </div>
                            </button>
EKSAD's avatar
EKSAD committed
1072 1073 1074 1075 1076 1077 1078
                        </div>
                    </div>
                </div>
            </div>
        )
    }
}