CreateReportItems.js 59.2 KB
Newer Older
EKSAD's avatar
EKSAD committed
1
import React, { Component } from 'react';
EKSAD's avatar
EKSAD committed
2
import { TextField, Typography, Snackbar, withStyles } from '@material-ui/core';
EKSAD's avatar
EKSAD committed
3 4 5 6 7
import * as R from 'ramda';
import api from '../../../api';
import Autocomplete from '@material-ui/lab/Autocomplete';
import { titleCase } from '../../../library/Utils';
import format from "date-fns/format";
EKSAD's avatar
EKSAD committed
8
import { DatePicker } from '@material-ui/pickers';
d.arizona's avatar
d.arizona committed
9
import Images from '../../../assets/Images';
EKSAD's avatar
EKSAD committed
10
import MuiAlert from '@material-ui/lab/Alert';
a.bairuha's avatar
a.bairuha committed
11
import Constant from '../../../library/Constant';
EKSAD's avatar
EKSAD committed
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 CreateReportItems extends Component {
EKSAD's avatar
EKSAD committed
16 17 18
    constructor(props) {
        super(props)
        this.state = {
EKSAD's avatar
EKSAD committed
19
            InputType: null,
EKSAD's avatar
EKSAD committed
20
            company: null,
EKSAD's avatar
EKSAD committed
21 22 23 24
            parent: null,
            reportType: null,
            startDate: null,
            endDate: null,
EKSAD's avatar
EKSAD committed
25
            order: '',
EKSAD's avatar
EKSAD committed
26 27
            description: '',
            uom: '',
28
            weight: '',
EKSAD's avatar
EKSAD committed
29
            formula: '',
EKSAD's avatar
EKSAD committed
30
            formulasum: '',
EKSAD's avatar
EKSAD committed
31
            realVal: '',
EKSAD's avatar
EKSAD committed
32
            condition: null,
EKSAD's avatar
EKSAD committed
33 34
            date: new Date(),
            listInputType: null,
EKSAD's avatar
EKSAD committed
35
            listCompany: null,
EKSAD's avatar
EKSAD committed
36 37
            listReportType: null,
            listParent: null,
38 39
            listKPI: null,
            listMaxAch: null,
EKSAD's avatar
EKSAD committed
40 41 42 43 44 45
            errorOrder: false,
            errorDesc: false,
            errorFormula: false,
            errorRV: false,
            errorStartDate: false,
            errorEndDate: false,
46 47
            errorTipeData: false,
            errorCondition: false,
Deni Rinaldi's avatar
Deni Rinaldi committed
48 49 50 51
            errorJenisLaporan: false,
            errorPerusahaan: false,
            msgErrorJenisLaporan: '',
            msgErrorPerusahaan: '',
52 53
            msgErrorTipeData: '',
            msgErrorCondition: '',
EKSAD's avatar
EKSAD committed
54 55 56
            msgErrorOrder: '',
            msgErrorDesc: '',
            msgErrorFormula: '',
EKSAD's avatar
EKSAD committed
57
            msgErrorRV: '',
EKSAD's avatar
EKSAD committed
58 59
            msgErrorSD: '',
            msgErrorED: '',
EKSAD's avatar
EKSAD committed
60
            disabledFormula: true,
EKSAD's avatar
EKSAD committed
61
            disabledFormulaSum: true,
EKSAD's avatar
EKSAD committed
62
            disabledCondt: true,
EKSAD's avatar
EKSAD committed
63
            disabledValue: true,
EKSAD's avatar
EKSAD committed
64 65 66
            options: ['WARNING', 'STOPPER'],
            alert: false,
            tipeAlert: '',
a.bairuha's avatar
a.bairuha committed
67 68 69
            messageAlert: '',
            kpiType: ['HIG', 'HIB'],
            maxAch: ['50%', '100%', 'Unlimited'],
d.arizona's avatar
d.arizona committed
70
            formulaYtd: ['SUM', 'AVG', 'LAST', 'FORMULA'],
a.bairuha's avatar
a.bairuha committed
71 72
            kpiTypeValue: null,
            maxAchValue: null,
73 74
            formulaYTDValue: null,
            kpiDisable: true,
75 76 77 78 79 80 81 82 83 84 85 86
            maxAchDisable: true,
            convertible: null,
            listConvert: [
                {
                    "id": 0,
                    "value": "No"
                },
                {
                    "id": 1,
                    "value": "Yes"
                }
            ],
EKSAD's avatar
EKSAD committed
87 88 89
        }
    }

EKSAD's avatar
EKSAD committed
90
    componentDidMount() {
EKSAD's avatar
EKSAD committed
91
        this.getInputType()
EKSAD's avatar
EKSAD committed
92
        this.getPerusahaan()
EKSAD's avatar
EKSAD committed
93
        this.getReportType()
d.arizona's avatar
d.arizona committed
94
        // this.getParent()
EKSAD's avatar
EKSAD committed
95
        let date = format(new Date, 'yyyy-MM-dd')
EKSAD's avatar
EKSAD committed
96
        // console.log(date);
97 98 99 100
        this.setState({
            startDate: date,
            endDate: date
        })
EKSAD's avatar
EKSAD committed
101 102
    }

EKSAD's avatar
EKSAD committed
103

EKSAD's avatar
EKSAD committed
104 105
    handleChange(e, type) {
        let data = this.state
106
        let isDate = type !== '' ? true : false
EKSAD's avatar
EKSAD committed
107
        if (isDate && type === 'start_date') {
108 109
            this.setState({
                ...data, startDate: format(e, 'yyyy-MM-dd'), endDate: null,
EKSAD's avatar
EKSAD committed
110
                errorOrder: false,
EKSAD's avatar
EKSAD committed
111 112 113
                errorDesc: false,
                errorFormula: false,
                errorRV: false,
EKSAD's avatar
EKSAD committed
114 115
                errorStartDate: false,
                errorEndDate: false,
116 117 118 119
                errorTipeData: false,
                errorCondition: false,
                msgErrorTipeData: '',
                msgErrorCondition: '',
EKSAD's avatar
EKSAD committed
120
                msgErrorOrder: '',
EKSAD's avatar
EKSAD committed
121 122 123
                msgErrorDesc: '',
                msgErrorFormula: '',
                msgErrorRV: '',
EKSAD's avatar
EKSAD committed
124 125
                msgErrorSD: '',
                msgErrorED: '',
EKSAD's avatar
EKSAD committed
126
            })
EKSAD's avatar
EKSAD committed
127
        } else if (isDate && type === 'end_date') {
128 129
            this.setState({
                ...data, endDate: format(e, 'yyyy-MM-dd'),
EKSAD's avatar
EKSAD committed
130
                errorOrder: false,
EKSAD's avatar
EKSAD committed
131 132 133
                errorDesc: false,
                errorFormula: false,
                errorRV: false,
EKSAD's avatar
EKSAD committed
134 135
                errorStartDate: false,
                errorEndDate: false,
136 137 138 139
                errorTipeData: false,
                errorCondition: false,
                msgErrorTipeData: '',
                msgErrorCondition: '',
EKSAD's avatar
EKSAD committed
140
                msgErrorOrder: '',
EKSAD's avatar
EKSAD committed
141 142 143
                msgErrorDesc: '',
                msgErrorFormula: '',
                msgErrorRV: '',
EKSAD's avatar
EKSAD committed
144 145
                msgErrorSD: '',
                msgErrorED: '',
EKSAD's avatar
EKSAD committed
146 147
            })
        } else {
148 149
            this.setState({
                ...data, [e.target.name]: e.target.value,
EKSAD's avatar
EKSAD committed
150
                errorOrder: false,
EKSAD's avatar
EKSAD committed
151 152 153
                errorDesc: false,
                errorFormula: false,
                errorRV: false,
EKSAD's avatar
EKSAD committed
154 155
                errorStartDate: false,
                errorEndDate: false,
156 157 158 159
                errorTipeData: false,
                errorCondition: false,
                msgErrorTipeData: '',
                msgErrorCondition: '',
EKSAD's avatar
EKSAD committed
160
                msgErrorOrder: '',
EKSAD's avatar
EKSAD committed
161 162 163
                msgErrorDesc: '',
                msgErrorFormula: '',
                msgErrorRV: '',
EKSAD's avatar
EKSAD committed
164 165 166
                msgErrorSD: '',
                msgErrorED: '',
            })
EKSAD's avatar
EKSAD committed
167 168 169 170
        }
    }

    validasi() {
EKSAD's avatar
EKSAD committed
171
        // alert('coba ya')
Deni Rinaldi's avatar
Deni Rinaldi committed
172
        if (R.isNil(this.state.reportType)) {
173 174 175
            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
176
        } else if (R.isEmpty(this.state.order)) {
EKSAD's avatar
EKSAD committed
177
            this.setState({ errorOrder: true, msgErrorOrder: 'Order Cannot be Empty' })
178
        }
EKSAD's avatar
EKSAD committed
179
        else if (R.isEmpty(this.state.description)) {
EKSAD's avatar
EKSAD committed
180
            this.setState({ errorDesc: true, msgErrorDesc: 'Description Cannot be Empty' })
181 182
        }
        else if (R.isNil(this.state.InputType)) {
EKSAD's avatar
EKSAD committed
183
            this.setState({ errorTipeData: true, msgErrorTipeData: 'Data Type Cannot be Empty' })
184
        }
EKSAD's avatar
EKSAD committed
185
        else if (this.state.disabledFormula === false && R.isEmpty(this.state.formula)) {
EKSAD's avatar
EKSAD committed
186
            this.setState({ errorFormula: true, msgErrorFormula: 'Formula Cannot be Empty' })
187
        }
EKSAD's avatar
EKSAD committed
188
        else if (this.state.disabledValue === false && R.isEmpty(this.state.realVal)) {
EKSAD's avatar
EKSAD committed
189
            this.setState({ errorRV: true, msgErrorRV: 'True Value Cannot be Empty' })
190 191
        }
        else if (this.state.disabledCondt === false && R.isEmpty(this.state.condition)) {
EKSAD's avatar
EKSAD committed
192
            this.setState({ errorCondition: true, msgErrorCondition: 'False Condition Cannot be Empty' })
EKSAD's avatar
EKSAD committed
193 194
        }
        else if (R.isNil(this.state.startDate)) {
EKSAD's avatar
EKSAD committed
195
            this.setState({ errorStartDate: true, msgErrorSD: 'Valid From Cannot be Empty' })
196
        }
EKSAD's avatar
EKSAD committed
197
        else if (R.isNil(this.state.endDate)) {
EKSAD's avatar
EKSAD committed
198
            this.setState({ errorEndDate: true, msgErrorED: 'Valid To Cannot be Empty' })
199
        }
EKSAD's avatar
EKSAD committed
200
        else {
EKSAD's avatar
EKSAD committed
201 202
            this.addReportItems()
        }
EKSAD's avatar
EKSAD committed
203 204
    }

EKSAD's avatar
EKSAD committed
205
    addReportItems() {
EKSAD's avatar
EKSAD committed
206 207 208 209 210 211
        // alert("test")
        let payload = {
            "report_id": this.state.reportType.report_id,
            "company_id": this.state.company.company_id,
            "description": this.state.description,
            "orders": this.state.order,
EKSAD's avatar
EKSAD committed
212
            "parent": this.state.parent === null ? null : this.state.parent.item_report_id,
a.bairuha's avatar
a.bairuha committed
213
            "type_report_id": this.state.InputType.type_item_report_id,
EKSAD's avatar
EKSAD committed
214 215 216 217 218
            "formula": this.state.formula,
            "uom": this.state.uom,
            "weight": this.state.weight,
            "condition_if_wrong": this.state.condition,
            "condition_it_should_be": this.state.realVal,
219 220
            "type_kpi": this.state.kpiTypeValue ? this.state.kpiTypeValue.value : null,
            "max_ach": this.state.maxAchValue ? this.state.maxAchValue.value : null,
a.bairuha's avatar
a.bairuha committed
221
            "formula_ytd": this.state.formulaYTDValue,
EKSAD's avatar
EKSAD committed
222
            "start_date": this.state.startDate,
223 224
            "end_date": this.state.endDate,
            "is_can_convert_value": this.state.convertible.id
EKSAD's avatar
EKSAD committed
225
        }
EKSAD's avatar
EKSAD committed
226
        // console.log(payload)
227
        this.props.createReportItems(payload)
EKSAD's avatar
EKSAD committed
228 229
    }

230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
    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),
                        };
                        this.setState({ listKPI: defaultProps, inputKPI: response.data.data })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
253
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                        // 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),
                        };
                        this.setState({ listMaxAch: defaultProps, inputMaxAch: response.data.data })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
294
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                        // 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' })
            }
        })
    }

EKSAD's avatar
EKSAD committed
312 313
    getInputType() {
        api.create().getInputType().then((response) => {
EKSAD's avatar
EKSAD committed
314
            // console.log(response.data)
315
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
316
                if (response.ok) {
a.bairuha's avatar
a.bairuha committed
317 318 319 320 321 322 323 324 325 326 327 328 329 330 331
                    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),
                        };
                        this.setState({ listInputType: defaultProps, inputData: response.data.data })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
332
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
a.bairuha's avatar
a.bairuha committed
333 334 335 336 337 338 339 340
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                        // alert(response.data.message)
                    }
EKSAD's avatar
EKSAD committed
341
                } else {
a.bairuha's avatar
a.bairuha committed
342
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
343
                }
EKSAD's avatar
EKSAD committed
344
            } else {
EKSAD's avatar
EKSAD committed
345
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
346 347 348 349 350
            }
        })
    }

    getPerusahaan() {
EKSAD's avatar
EKSAD committed
351 352
        api.create().getPerusahaanActive().then((response) => {
            // console.log(response)
EKSAD's avatar
EKSAD committed
353
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
                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 typeProps = {
                            options: companyData.sort((a, b) => a.company_id - b.company_id),
                            getOptionLabel: (option) => option.company_name,
                        };
                        this.setState({ listCompany: typeProps, companyData: response.data.data })
                    } else {
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
374
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
a.bairuha's avatar
a.bairuha committed
375 376 377 378 379 380 381 382
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                        // alert(response.data.message)
                    }
EKSAD's avatar
EKSAD committed
383
                } else {
a.bairuha's avatar
a.bairuha committed
384
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
385
                }
EKSAD's avatar
EKSAD committed
386
            } else {
EKSAD's avatar
EKSAD committed
387
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
388 389
            }
        })
EKSAD's avatar
EKSAD committed
390 391
    }

EKSAD's avatar
EKSAD committed
392 393 394
    getReportType() {
        api.create().getReportType().then((response) => {
            // console.log(response)
EKSAD's avatar
EKSAD committed
395
            if (response.data) {
a.bairuha's avatar
a.bairuha committed
396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412
                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),
                        };
                        this.setState({ listReportType: defaultProps, reportTypeData: response.data.data })
                    } else {
                        // alert(response.data.message)
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
413
                            if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
a.bairuha's avatar
a.bairuha committed
414 415 416 417 418 419 420
                                setTimeout(() => {
                                    localStorage.removeItem(Constant.TOKEN)
                                    window.location.reload();
                                }, 1000);
                            }
                        })
                    }
EKSAD's avatar
EKSAD committed
421
                } else {
a.bairuha's avatar
a.bairuha committed
422
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
423
                }
EKSAD's avatar
EKSAD committed
424
            } else {
EKSAD's avatar
EKSAD committed
425
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
426 427 428 429 430
            }
        })
    }

    getParent() {
431
        if (this.state.reportType !== null && this.state.company !== null) {
d.arizona's avatar
d.arizona committed
432 433 434
            let payload = {
                "report_id": this.state.reportType.report_id,
                "company_id": this.state.company.company_id
EKSAD's avatar
EKSAD committed
435
            }
d.arizona's avatar
d.arizona committed
436
            api.create().getReportParent(payload).then((response) => {
EKSAD's avatar
EKSAD committed
437 438
                // console.log(response)
                if (response.data) {
a.bairuha's avatar
a.bairuha committed
439 440 441 442 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 parentData = data.map((item) => {
                                return {
                                    item_report_id: item.item_report_id,
                                    description: item.description
                                }
                            })
                            let defaultProps = {
                                options: parentData,
                                getOptionLabel: (option) => titleCase(option.description),
                            };
                            this.setState({ listParent: defaultProps, parentData: response.data.data })
                        } else {
                            this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => {
d.arizona's avatar
d.arizona committed
455
                                if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) {
a.bairuha's avatar
a.bairuha committed
456 457 458 459 460 461 462 463
                                    setTimeout(() => {
                                        localStorage.removeItem(Constant.TOKEN)
                                        window.location.reload();
                                    }, 1000);
                                }
                            })
                            // alert(response.data.message)
                        }
EKSAD's avatar
EKSAD committed
464
                    } else {
a.bairuha's avatar
a.bairuha committed
465
                        this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
466
                    }
d.arizona's avatar
d.arizona committed
467
                } else {
EKSAD's avatar
EKSAD committed
468
                    this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
d.arizona's avatar
d.arizona committed
469 470 471
                }
            })
        }
EKSAD's avatar
EKSAD committed
472 473
    }

EKSAD's avatar
EKSAD committed
474 475 476 477 478
    handleDate(item) {
        let value = format(item, 'dd MMMM yyyy')
        return value
    }

479 480
    clearMessage() {
        this.setState({
Deni Rinaldi's avatar
Deni Rinaldi committed
481
            errorFormula: false, msgErrorFormula: '',
482 483 484 485
            errorTipeData: false,
            errorCondition: false,
            msgErrorTipeData: '',
            msgErrorCondition: '',
Deni Rinaldi's avatar
Deni Rinaldi committed
486 487 488
            errorRV: false, msgErrorRV: '',
            errorJenisLaporan: false, msgErrorJenisLaporan: '',
            errorPerusahaan: false, msgErrorPerusahaan: ''
489 490 491
        })
    }

a.bairuha's avatar
a.bairuha committed
492 493 494 495
    closeAlert() {
        this.setState({ alert: false })
    }

EKSAD's avatar
EKSAD committed
496
    render() {
EKSAD's avatar
EKSAD committed
497

EKSAD's avatar
EKSAD committed
498 499 500
        return (
            <div className="test app-popup-show">
                <div className="popup-content background-white border-radius" style={{ borderRadius: 8 }}>
EKSAD's avatar
EKSAD committed
501
                    <div className="popup-panel grid grid-2x main-color" style={{ height: 64, borderTopRightRadius: 8, borderTopLeftRadius: 8 }}>
EKSAD's avatar
EKSAD committed
502 503
                        <div className="col-1" style={{ maxWidth: "inherit", display: 'flex', alignItems: 'center' }}>
                            <div className="popup-title">
EKSAD's avatar
EKSAD committed
504
                                <span style={{ color: '#fff', fontSize: 16, fontWeight: 'bold' }}>Create Data</span>
EKSAD's avatar
EKSAD committed
505 506 507 508 509 510 511 512
                            </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()}
                            >
513
                                <img src={Images.close} />
EKSAD's avatar
EKSAD committed
514 515 516
                            </button>
                        </div>
                    </div>
EKSAD's avatar
EKSAD committed
517 518 519 520 521
                    <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
522

EKSAD's avatar
EKSAD committed
523
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
EKSAD's avatar
EKSAD committed
524
                        <div className="column-1">
EKSAD's avatar
EKSAD committed
525
                            <div className="margin-top-10px" style={{ backgroundColor: '#e8e8e8', padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
526 527
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
528
                                    value={'-'}
EKSAD's avatar
EKSAD committed
529
                                    id="ID"
EKSAD's avatar
EKSAD committed
530 531 532 533
                                    label="ID"
                                    disabled
                                    inputProps={{
                                        style: {
EKSAD's avatar
EKSAD committed
534 535
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
536 537 538 539 540
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
541 542
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
EKSAD's avatar
EKSAD committed
543 544 545 546
                                        }
                                    }}
                                />
                            </div>
EKSAD's avatar
EKSAD committed
547 548
                        </div>
                        <div className="column-2">
549
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
550 551 552
                                <Autocomplete
                                    {...this.state.listReportType}
                                    id="reportType"
553 554
                                    onChange={(event, newInputValue) => this.setState({ reportType: newInputValue, kpiDisable: true, maxAchDisable: true }, () => {
                                        newInputValue == null || (newInputValue.report_name !== 'CAT') ? this.setState({ kpiTypeValue: null, maxAchValue: null, formulaYTDValue: null }, () => this.clearMessage())
a.bairuha's avatar
a.bairuha committed
555 556
                                            : this.clearMessage();
                                    })}
EKSAD's avatar
EKSAD committed
557
                                    debug
558 559
                                    renderInput={(params) =>
                                        <TextField {...params}
560
                                            label="Report Type"
EKSAD's avatar
EKSAD committed
561 562 563 564 565 566 567
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
568 569
                                            error={this.state.errorJenisLaporan}
                                            helperText={this.state.msgErrorJenisLaporan}
EKSAD's avatar
EKSAD committed
570
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
571 572 573 574 575 576 577 578 579
                                        />}
                                    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">
580
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }} >
EKSAD's avatar
EKSAD committed
581 582
                                <Autocomplete
                                    {...this.state.listCompany}
EKSAD's avatar
EKSAD committed
583
                                    id="company"
584 585 586 587 588 589
                                    onChange={(event, newInputValue) => this.setState({ company: newInputValue, kpiDisable: false, maxAchDisable: false }, () => {
                                        this.getParent()
                                        this.clearMessage()
                                        this.getKPIType()
                                        this.getMaxAch()
                                    })}
EKSAD's avatar
EKSAD committed
590
                                    debug
591 592
                                    renderInput={(params) =>
                                        <TextField {...params}
EKSAD's avatar
EKSAD committed
593
                                            label="Company Name"
EKSAD's avatar
EKSAD committed
594 595 596 597 598 599 600
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
601 602
                                            error={this.state.errorPerusahaan}
                                            helperText={this.state.msgErrorPerusahaan}
EKSAD's avatar
EKSAD committed
603
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
604
                                        />}
EKSAD's avatar
EKSAD committed
605 606
                                    value={this.state.company}
                                />
EKSAD's avatar
EKSAD committed
607
                            </div>
EKSAD's avatar
EKSAD committed
608 609
                        </div>
                        <div className="column-2">
610
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
611 612
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
613 614 615
                                    id="orders"
                                    name="order"
                                    label="Order"
616
                                    type="number"
EKSAD's avatar
EKSAD committed
617
                                    onChange={(e) => this.handleChange(e, null)}
EKSAD's avatar
EKSAD committed
618 619 620
                                    value={this.state.order}
                                    error={this.state.errorOrder}
                                    helperText={this.state.msgErrorOrder}
EKSAD's avatar
EKSAD committed
621
                                    inputProps={{
622
                                        min: 0,
EKSAD's avatar
EKSAD committed
623 624 625 626 627 628 629 630 631 632 633 634 635 636 637
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
638 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">
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 651
                                    name="description"
                                    value={this.state.description}
                                    error={this.state.errorDesc}
                                    helperText={this.state.msgErrorDesc}
EKSAD's avatar
EKSAD committed
652
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
653
                                    // value={this.props.data.business_unit_name}
EKSAD's avatar
EKSAD committed
654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
670 671
                        </div>
                        <div className="column-2">
672
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }} >
EKSAD's avatar
EKSAD committed
673
                                <Autocomplete
EKSAD's avatar
EKSAD committed
674 675
                                    {...this.state.listParent}
                                    id="parentId"
676
                                    onChange={(event, newInputValue) => this.setState({ parent: newInputValue })}
EKSAD's avatar
EKSAD committed
677
                                    debug
EKSAD's avatar
EKSAD committed
678
                                    disabled={this.state.reportType == null || this.state.company == null}
679 680 681
                                    renderInput={(params) =>
                                        <TextField {...params}
                                            label="Parent ID"
EKSAD's avatar
EKSAD committed
682 683 684 685 686 687 688
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
EKSAD's avatar
EKSAD committed
689
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
690
                                        />}
EKSAD's avatar
EKSAD committed
691
                                    value={this.state.parent}
EKSAD's avatar
EKSAD committed
692
                                />
EKSAD's avatar
EKSAD committed
693
                            </div>
EKSAD's avatar
EKSAD committed
694 695
                        </div>
                    </div>
EKSAD's avatar
EKSAD committed
696

EKSAD's avatar
EKSAD committed
697 698
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
699
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
700 701
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
702 703 704 705
                                    id="uom"
                                    name="uom"
                                    label="UOM"
                                    value={this.state.uom}
EKSAD's avatar
EKSAD committed
706
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
707 708 709 710 711 712 713 714 715 716 717 718 719
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
EKSAD's avatar
EKSAD committed
720 721
                                >
                                </TextField>
EKSAD's avatar
EKSAD committed
722 723 724
                            </div>
                        </div>
                        <div className="column-2">
725
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
726 727
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
728 729 730 731
                                    id="weight"
                                    label="Weight"
                                    name="weight"
                                    value={this.state.weight}
EKSAD's avatar
EKSAD committed
732
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
733 734
                                    inputProps={{
                                        style: {
EKSAD's avatar
EKSAD committed
735 736
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
737 738 739 740 741
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
742 743
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
EKSAD's avatar
EKSAD committed
744 745 746 747 748
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
749 750 751 752 753
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
754
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
755
                                <Autocomplete
EKSAD's avatar
EKSAD committed
756 757
                                    {...this.state.listInputType}
                                    id="inputType"
758 759
                                    onChange={(event, newInputValue) => this.setState({ InputType: newInputValue },
                                        () => newInputValue === null ? this.setState({ disabledFormula: true, disabledCondt: true, disabledValue: true, formula: '', condition: '', realVal: '' })
a.bairuha's avatar
a.bairuha committed
760
                                            : newInputValue.type_item_report_name === 'Formula' ?
761 762 763 764 765 766 767 768
                                                this.setState({
                                                    disabledFormula: false,
                                                    disabledCondt: true,
                                                    disabledValue: true,
                                                    formula: '',
                                                    condition: '',
                                                    realVal: ''
                                                }, () => this.clearMessage())
a.bairuha's avatar
a.bairuha committed
769
                                                : newInputValue.type_item_report_name === 'Validation' ?
770 771 772 773 774 775 776 777
                                                    this.setState({
                                                        disabledFormula: false,
                                                        disabledCondt: false,
                                                        disabledValue: false,
                                                        formula: '',
                                                        condition: '',
                                                        realVal: ''
                                                    }, () => this.clearMessage())
EKSAD's avatar
EKSAD committed
778 779 780 781 782 783 784 785 786
                                                    : newInputValue.type_item_report_name === 'Formula - Summary' ?
                                                    this.setState({
                                                        disabledFormula: false,
                                                        disabledCondt: true,
                                                        disabledValue: true,
                                                        formula: '',
                                                        condition: '',
                                                        realVal: ''
                                                    }, () => this.clearMessage())
787 788 789 790 791 792 793 794 795
                                                    : this.setState({
                                                        disabledFormula: true,
                                                        disabledCondt: true,
                                                        disabledValue: true,
                                                        formula: '',
                                                        condition: '',
                                                        realVal: ''
                                                    }, () => this.clearMessage())
                                    )}
EKSAD's avatar
EKSAD committed
796
                                    debug
797 798
                                    renderInput={(params) =>
                                        <TextField {...params}
799
                                            label="Data Type"
800 801
                                            error={this.state.errorTipeData}
                                            helperText={this.state.msgErrorTipeData}
EKSAD's avatar
EKSAD committed
802 803 804 805 806 807 808
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
809 810
                                            error={this.state.errorTipeData}
                                            helperText={this.state.msgErrorTipeData}
EKSAD's avatar
EKSAD committed
811
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
812
                                        />}
EKSAD's avatar
EKSAD committed
813
                                    value={this.state.InputType}
EKSAD's avatar
EKSAD committed
814
                                />
EKSAD's avatar
EKSAD committed
815
                            </div>
EKSAD's avatar
EKSAD committed
816 817
                        </div>
                        <div className="column-2">
818
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
819 820
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
821 822 823 824 825 826 827
                                    id="formula"
                                    label="Formula"
                                    name="formula"
                                    disabled={this.state.disabledFormula}
                                    value={this.state.formula}
                                    error={this.state.errorFormula}
                                    helperText={this.state.msgErrorFormula}
EKSAD's avatar
EKSAD committed
828
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
845 846 847 848 849
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
850
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
851 852
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
853
                                    id="realVal"
854
                                    label="True Value"
EKSAD's avatar
EKSAD committed
855 856 857 858 859
                                    name="realVal"
                                    disabled={this.state.disabledValue}
                                    value={this.state.realVal}
                                    error={this.state.errorRV}
                                    helperText={this.state.msgErrorRV}
EKSAD's avatar
EKSAD committed
860
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
861 862 863 864 865 866 867 868 869 870 871 872 873
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
                                        }
                                    }}
EKSAD's avatar
EKSAD committed
874
                                />
EKSAD's avatar
EKSAD committed
875
                            </div>
EKSAD's avatar
EKSAD committed
876 877
                        </div>
                        <div className="column-2">
878 879
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <Autocomplete
EKSAD's avatar
EKSAD committed
880
                                    value={this.state.condition}
EKSAD's avatar
EKSAD committed
881
                                    id="isWrongCondition"
EKSAD's avatar
EKSAD committed
882
                                    disabled={this.state.disabledCondt}
EKSAD's avatar
EKSAD committed
883
                                    onChange={(event, newValue) => {
884
                                        this.setState({ condition: newValue }, () => this.clearMessage());
EKSAD's avatar
EKSAD committed
885
                                    }}
EKSAD's avatar
EKSAD committed
886
                                    options={this.state.options}
887 888 889 890
                                    renderInput={(params) =>
                                        <TextField {...params}
                                            error={this.state.errorCondition}
                                            helperText={this.state.msgErrorCondition}
891
                                            label="False Condition"
EKSAD's avatar
EKSAD committed
892 893 894 895 896 897 898
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
899
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
900 901
                                        />}
                                />
EKSAD's avatar
EKSAD committed
902
                            </div>
EKSAD's avatar
EKSAD committed
903 904 905
                        </div>
                    </div>

a.bairuha's avatar
a.bairuha committed
906
                    {this.state.reportType !== null && (
907 908 909 910 911 912 913 914 915 916
                        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.kpiTypeValue}
                                            id="kpiType"
                                            onChange={(event, newValue) => {
                                                this.setState({ kpiTypeValue: newValue }, () => this.clearMessage());
a.bairuha's avatar
a.bairuha committed
917
                                            }}
918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941
                                            disabled={this.state.kpiDisable}
                                            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({ maxAchValue: newValue }, () => this.clearMessage());
a.bairuha's avatar
a.bairuha committed
942
                                            }}
943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958
                                            disabled={this.state.maxAchDisable}
                                            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
959
                            </div>
960
                        ))}
a.bairuha's avatar
a.bairuha committed
961 962

                    {this.state.reportType !== null && (
963 964 965 966 967 968 969 970 971
                        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.formulaYTDValue}
                                            id="formulaYTD"
                                            onChange={(event, newValue) => {
                                                this.setState({ formulaYTDValue: newValue }, () => this.clearMessage());
a.bairuha's avatar
a.bairuha committed
972
                                            }}
973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988
                                            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
989
                            </div>
990
                        ))}
a.bairuha's avatar
a.bairuha committed
991

EKSAD's avatar
EKSAD committed
992 993
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
994 995 996 997
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <DatePicker
                                    margin="normal"
                                    id="startDate"
998
                                    label="Valid From"
EKSAD's avatar
EKSAD committed
999
                                    format="dd-MM-yyyy"
1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
                                    value={this.state.startDate == "" ? null : this.state.startDate}
                                    error={this.state.errorStartDate}
                                    helperText={this.state.msgErrorSD}
                                    onChange={(e) => this.handleChange(e, 'start_date')}
                                    KeyboardButtonProps={{
                                        'aria-label': 'change date',
                                    }}
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}

                                    style={{ padding: 0, margin: 0, width: '100%' }}
EKSAD's avatar
EKSAD committed
1022 1023 1024 1025
                                />
                            </div>
                        </div>
                        <div className="column-2">
1026 1027 1028 1029
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <DatePicker
                                    margin="normal"
                                    id="endDate"
1030
                                    label="Valid To"
EKSAD's avatar
EKSAD committed
1031
                                    format="dd-MM-yyyy"
1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054
                                    value={this.state.endDate == "" ? null : this.state.endDate}
                                    error={this.state.errorEndDate}
                                    helperText={this.state.msgErrorED}
                                    onChange={(e) => this.handleChange(e, 'end_date')}
                                    minDate={this.state.startDate}
                                    KeyboardButtonProps={{
                                        'aria-label': 'change date',
                                    }}
                                    inputProps={{
                                        style: {
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
                                            color: '#7e8085',
                                            fontFamily: 'Nunito Sans, sans-serif',
                                        }
                                    }}

                                    style={{ padding: 0, margin: 0, width: '100%' }}
EKSAD's avatar
EKSAD committed
1055
                                />
EKSAD's avatar
EKSAD committed
1056 1057
                            </div>
                        </div>
EKSAD's avatar
EKSAD committed
1058
                    </div>
EKSAD's avatar
EKSAD committed
1059

EKSAD's avatar
EKSAD committed
1060 1061
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <Autocomplete
                                    debug
                                    id="tipe"
                                    options={this.state.listConvert}
                                    getOptionLabel={(option) => option.value}
                                    onChange={(event, newInputValue) => this.setState({ convertible: newInputValue }, () => this.clearMessage())}
                                    renderInput={(params) =>
                                        <TextField
                                            {...params}
                                            label="Convertible"
                                            margin="normal"
                                            style={{ marginTop: 7 }}
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11 } }}
                                            InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }}
                                        />
                                    }

                                />
                            </div>
                        </div>
                        <div className="column-2" style={{ marginTop: 7}}>
1084
                            <div className="margin-top-10px" style={{ backgroundColor: '#e8e8e8', padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
1085 1086
                                <TextField
                                    style={{ width: '100%' }}
1087
                                    defaultValue={"active"}
EKSAD's avatar
EKSAD committed
1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107
                                    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>
1108

1109
                    <div className="margin-top-10px" style={{ paddingTop: 10, paddingBottom: 30, paddingRight: 30, paddingLeft: 30 }}>
EKSAD's avatar
EKSAD committed
1110
                        <div style={{ display: 'flex' }}>
a.bairuha's avatar
a.bairuha committed
1111 1112
                            <Typography style={{ fontSize: 11, width: '13%' }}>Created By :</Typography>
                            {/* <Typography style={{ fontSize: 11 }}>: </Typography> */}
EKSAD's avatar
EKSAD committed
1113 1114
                        </div>
                        <div style={{ display: 'flex' }}>
a.bairuha's avatar
a.bairuha committed
1115 1116
                            <Typography style={{ fontSize: 11, width: '13%' }}>Updated By :</Typography>
                            {/* <Typography style={{ fontSize: 11 }}>: </Typography> */}
EKSAD's avatar
EKSAD committed
1117
                        </div>
EKSAD's avatar
EKSAD committed
1118 1119 1120 1121 1122 1123 1124 1125 1126
                    </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' }}>
1127
                                    <span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
EKSAD's avatar
EKSAD committed
1128 1129 1130
                                </div>
                            </button>
                        </div>
1131 1132
                        <div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
                            <button
EKSAD's avatar
EKSAD committed
1133 1134 1135 1136
                                type="button"
                                onClick={() => this.validasi()}
                            >
                                <div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
1137
                                    <span style={{ color: '#fff', fontSize: 11 }}>Save</span>
EKSAD's avatar
EKSAD committed
1138
                                </div>
EKSAD's avatar
EKSAD committed
1139
                            </button>
EKSAD's avatar
EKSAD committed
1140 1141 1142 1143 1144 1145 1146
                        </div>
                    </div>
                </div>
            </div>
        )
    }
}