CreateReportItems.js 43.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 11 12
import MuiAlert from '@material-ui/lab/Alert';
const Alert = withStyles({
})((props) => <MuiAlert elevation={6} variant="filled" {...props} />);
EKSAD's avatar
EKSAD committed
13

EKSAD's avatar
EKSAD committed
14
export default class CreateReportItems extends Component {
EKSAD's avatar
EKSAD committed
15 16 17
    constructor(props) {
        super(props)
        this.state = {
EKSAD's avatar
EKSAD committed
18
            InputType: null,
EKSAD's avatar
EKSAD committed
19
            company: null,
EKSAD's avatar
EKSAD committed
20 21 22 23
            parent: null,
            reportType: null,
            startDate: null,
            endDate: null,
EKSAD's avatar
EKSAD committed
24
            order: '',
EKSAD's avatar
EKSAD committed
25 26
            description: '',
            uom: '',
27
            weight: '',
EKSAD's avatar
EKSAD committed
28 29
            formula: '',
            realVal: '',
EKSAD's avatar
EKSAD committed
30
            condition: null,
EKSAD's avatar
EKSAD committed
31 32
            date: new Date(),
            listInputType: null,
EKSAD's avatar
EKSAD committed
33
            listCompany: null,
EKSAD's avatar
EKSAD committed
34 35 36 37 38 39 40 41
            listReportType: null,
            listParent: null,
            errorOrder: false,
            errorDesc: false,
            errorFormula: false,
            errorRV: false,
            errorStartDate: false,
            errorEndDate: false,
42 43
            errorTipeData: false,
            errorCondition: false,
Deni Rinaldi's avatar
Deni Rinaldi committed
44 45 46 47
            errorJenisLaporan: false,
            errorPerusahaan: false,
            msgErrorJenisLaporan: '',
            msgErrorPerusahaan: '',
48 49
            msgErrorTipeData: '',
            msgErrorCondition: '',
EKSAD's avatar
EKSAD committed
50 51 52
            msgErrorOrder: '',
            msgErrorDesc: '',
            msgErrorFormula: '',
EKSAD's avatar
EKSAD committed
53
            msgErrorRV: '',
EKSAD's avatar
EKSAD committed
54 55
            msgErrorSD: '',
            msgErrorED: '',
EKSAD's avatar
EKSAD committed
56 57
            disabledFormula: true,
            disabledCondt: true,
EKSAD's avatar
EKSAD committed
58
            disabledValue: true,
EKSAD's avatar
EKSAD committed
59 60 61 62
            options: ['WARNING', 'STOPPER'],
            alert: false,
            tipeAlert: '',
            messageAlert: ''
EKSAD's avatar
EKSAD committed
63

EKSAD's avatar
EKSAD committed
64 65 66
        }
    }

EKSAD's avatar
EKSAD committed
67
    componentDidMount() {
EKSAD's avatar
EKSAD committed
68
        this.getInputType()
EKSAD's avatar
EKSAD committed
69
        this.getPerusahaan()
EKSAD's avatar
EKSAD committed
70
        this.getReportType()
d.arizona's avatar
d.arizona committed
71
        // this.getParent()
EKSAD's avatar
EKSAD committed
72
        let date = format(new Date, 'yyyy-MM-dd')
73 74 75 76 77
        console.log(date);
        this.setState({
            startDate: date,
            endDate: date
        })
EKSAD's avatar
EKSAD committed
78 79
    }

EKSAD's avatar
EKSAD committed
80

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

    validasi() {
EKSAD's avatar
EKSAD committed
148
        // alert('coba ya')
Deni Rinaldi's avatar
Deni Rinaldi committed
149
        if (R.isNil(this.state.reportType)) {
a.bairuha's avatar
a.bairuha committed
150
            this.setState({errorJenisLaporan: true, msgErrorJenisLaporan: 'Report type is required.'})
Deni Rinaldi's avatar
Deni Rinaldi committed
151
        } else if (R.isNil(this.state.company)){
a.bairuha's avatar
a.bairuha committed
152
            this.setState({ errorPerusahaan: true, msgErrorPerusahaan: 'Company is required.'})
Deni Rinaldi's avatar
Deni Rinaldi committed
153
        } else if (R.isEmpty(this.state.order)) {
a.bairuha's avatar
a.bairuha committed
154
            this.setState({ errorOrder: true, msgErrorOrder: 'Order is required.' })
155
        }
EKSAD's avatar
EKSAD committed
156
        else if (R.isEmpty(this.state.description)) {
a.bairuha's avatar
a.bairuha committed
157
            this.setState({ errorDesc: true, msgErrorDesc: 'Description is required.' })
158 159
        }
        else if (R.isNil(this.state.InputType)) {
a.bairuha's avatar
a.bairuha committed
160
            this.setState({ errorTipeData: true, msgErrorTipeData: 'Data type is required.' })
161
        }
EKSAD's avatar
EKSAD committed
162
        else if (this.state.disabledFormula === false && R.isEmpty(this.state.formula)) {
a.bairuha's avatar
a.bairuha committed
163
            this.setState({ errorFormula: true, msgErrorFormula: 'Formula is required.' })
164
        }
EKSAD's avatar
EKSAD committed
165
        else if (this.state.disabledValue === false && R.isEmpty(this.state.realVal)) {
a.bairuha's avatar
a.bairuha committed
166
            this.setState({ errorRV: true, msgErrorRV: 'True value is required.' })
167 168
        }
        else if (this.state.disabledCondt === false && R.isEmpty(this.state.condition)) {
a.bairuha's avatar
a.bairuha committed
169
            this.setState({ errorCondition: true, msgErrorCondition: 'False condition is required.' })
EKSAD's avatar
EKSAD committed
170 171
        }
        else if (R.isNil(this.state.startDate)) {
a.bairuha's avatar
a.bairuha committed
172
            this.setState({ errorStartDate: true, msgErrorSD: 'Start date is required.' })
173
        }
EKSAD's avatar
EKSAD committed
174
        else if (R.isNil(this.state.endDate)) {
a.bairuha's avatar
a.bairuha committed
175
            this.setState({ errorEndDate: true, msgErrorED: 'End date is required.' })
176
        }
EKSAD's avatar
EKSAD committed
177
        else {
EKSAD's avatar
EKSAD committed
178 179
            this.addReportItems()
        }
EKSAD's avatar
EKSAD committed
180 181
    }

EKSAD's avatar
EKSAD committed
182
    addReportItems() {
EKSAD's avatar
EKSAD committed
183 184 185 186 187 188
        // 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
189
            "parent": this.state.parent === null ? null : this.state.parent.item_report_id,
a.bairuha's avatar
a.bairuha committed
190
            "type_report_id": this.state.InputType.type_item_report_id,
EKSAD's avatar
EKSAD committed
191 192 193 194 195 196 197 198 199
            "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,
            "start_date": this.state.startDate,
            "end_date": this.state.endDate
        }
        console.log(payload)
200
        this.props.createReportItems(payload)
EKSAD's avatar
EKSAD committed
201 202 203 204
    }

    getInputType() {
        api.create().getInputType().then((response) => {
EKSAD's avatar
EKSAD committed
205 206 207 208 209 210 211
            // console.log(response.data)
            if(response.data) {

                if (response.data.status === 'success') {
                    let data = response.data.data
                    let inputData = data.map((item) => {
                        return {
a.bairuha's avatar
a.bairuha committed
212 213
                            type_item_report_id: item.type_item_report_id,
                            type_item_report_name: item.type_item_report_name
EKSAD's avatar
EKSAD committed
214 215 216 217
                        }
                    })
                    let defaultProps = {
                        options: inputData,
a.bairuha's avatar
a.bairuha committed
218
                        getOptionLabel: (option) => titleCase(option.type_item_report_name),
EKSAD's avatar
EKSAD committed
219 220 221 222 223 224
                    };
                    this.setState({ listInputType: defaultProps, inputData: response.data.data })
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' })
                    // alert(response.data.message)
                }
EKSAD's avatar
EKSAD committed
225
            } else {
EKSAD's avatar
EKSAD committed
226
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
227 228 229 230 231
            }
        })
    }

    getPerusahaan() {
EKSAD's avatar
EKSAD committed
232 233
        api.create().getPerusahaanActive().then((response) => {
            // console.log(response)
EKSAD's avatar
EKSAD committed
234 235 236 237 238 239 240 241 242
            if (response.data) {
                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
                        }
                    })
243 244 245 246 247 248 249
                    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,
EKSAD's avatar
EKSAD committed
250
                    };
251
                    this.setState({ listCompany: typeProps, companyData: response.data.data })
EKSAD's avatar
EKSAD committed
252 253 254 255
                } else {
                    this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' })
                    // alert(response.data.message)
                }
EKSAD's avatar
EKSAD committed
256
            } else {
EKSAD's avatar
EKSAD committed
257
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
258 259
            }
        })
EKSAD's avatar
EKSAD committed
260 261
    }

EKSAD's avatar
EKSAD committed
262 263 264
    getReportType() {
        api.create().getReportType().then((response) => {
            // console.log(response)
EKSAD's avatar
EKSAD committed
265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
            if (response.data) {
                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' })
                }
EKSAD's avatar
EKSAD committed
283
            } else {
EKSAD's avatar
EKSAD committed
284
                this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
EKSAD's avatar
EKSAD committed
285 286 287 288 289
            }
        })
    }

    getParent() {
290
        if (this.state.reportType !== null && this.state.company !== null) {
d.arizona's avatar
d.arizona committed
291 292 293
            let payload = {
                "report_id": this.state.reportType.report_id,
                "company_id": this.state.company.company_id
EKSAD's avatar
EKSAD committed
294
            }
d.arizona's avatar
d.arizona committed
295
            api.create().getReportParent(payload).then((response) => {
EKSAD's avatar
EKSAD committed
296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315
                // console.log(response)
                if (response.data) {

                    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' })
                        // alert(response.data.message)
                    }
d.arizona's avatar
d.arizona committed
316
                } else {
EKSAD's avatar
EKSAD committed
317
                    this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' })
d.arizona's avatar
d.arizona committed
318 319 320
                }
            })
        }
EKSAD's avatar
EKSAD committed
321 322
    }

EKSAD's avatar
EKSAD committed
323 324 325 326 327
    handleDate(item) {
        let value = format(item, 'dd MMMM yyyy')
        return value
    }

328 329
    clearMessage() {
        this.setState({
Deni Rinaldi's avatar
Deni Rinaldi committed
330
            errorFormula: false, msgErrorFormula: '',
331 332 333 334
            errorTipeData: false,
            errorCondition: false,
            msgErrorTipeData: '',
            msgErrorCondition: '',
Deni Rinaldi's avatar
Deni Rinaldi committed
335 336 337
            errorRV: false, msgErrorRV: '',
            errorJenisLaporan: false, msgErrorJenisLaporan: '',
            errorPerusahaan: false, msgErrorPerusahaan: ''
338 339 340
        })
    }

a.bairuha's avatar
a.bairuha committed
341 342 343 344
    closeAlert() {
        this.setState({ alert: false })
    }

EKSAD's avatar
EKSAD committed
345
    render() {
EKSAD's avatar
EKSAD committed
346

EKSAD's avatar
EKSAD committed
347 348 349
        return (
            <div className="test app-popup-show">
                <div className="popup-content background-white border-radius" style={{ borderRadius: 8 }}>
EKSAD's avatar
EKSAD committed
350
                    <div className="popup-panel grid grid-2x main-color" style={{ height: 64, borderTopRightRadius: 8, borderTopLeftRadius: 8 }}>
EKSAD's avatar
EKSAD committed
351 352
                        <div className="col-1" style={{ maxWidth: "inherit", display: 'flex', alignItems: 'center' }}>
                            <div className="popup-title">
EKSAD's avatar
EKSAD committed
353
                                <span style={{ color: '#fff', fontSize: 16, fontWeight: 'bold' }}>Create Data</span>
EKSAD's avatar
EKSAD committed
354 355 356 357 358 359 360 361
                            </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()}
                            >
362
                                <img src={Images.close} />
EKSAD's avatar
EKSAD committed
363 364 365
                            </button>
                        </div>
                    </div>
EKSAD's avatar
EKSAD committed
366 367 368 369 370
                    <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
371

EKSAD's avatar
EKSAD committed
372
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
EKSAD's avatar
EKSAD committed
373
                        <div className="column-1">
EKSAD's avatar
EKSAD committed
374
                            <div className="margin-top-10px" style={{ backgroundColor: '#e8e8e8', padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
375 376
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
377
                                    value={'-'}
EKSAD's avatar
EKSAD committed
378
                                    id="ID"
EKSAD's avatar
EKSAD committed
379 380 381 382
                                    label="ID"
                                    disabled
                                    inputProps={{
                                        style: {
EKSAD's avatar
EKSAD committed
383 384
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
385 386 387 388 389
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
390 391
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
EKSAD's avatar
EKSAD committed
392 393 394 395
                                        }
                                    }}
                                />
                            </div>
EKSAD's avatar
EKSAD committed
396 397
                        </div>
                        <div className="column-2">
398
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
399 400 401
                                <Autocomplete
                                    {...this.state.listReportType}
                                    id="reportType"
Deni Rinaldi's avatar
Deni Rinaldi committed
402
                                    onChange={(event, newInputValue) => this.setState({ reportType: newInputValue }, ()=> this.clearMessage())}
EKSAD's avatar
EKSAD committed
403
                                    debug
404 405
                                    renderInput={(params) =>
                                        <TextField {...params}
406
                                            label="Report Type"
EKSAD's avatar
EKSAD committed
407 408 409 410 411 412 413
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
414 415
                                            error={this.state.errorJenisLaporan}
                                            helperText={this.state.msgErrorJenisLaporan}
EKSAD's avatar
EKSAD committed
416
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
417 418 419 420 421 422 423 424 425
                                        />}
                                    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">
426
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }} >
EKSAD's avatar
EKSAD committed
427 428
                                <Autocomplete
                                    {...this.state.listCompany}
EKSAD's avatar
EKSAD committed
429
                                    id="company"
Deni Rinaldi's avatar
Deni Rinaldi committed
430
                                    onChange={(event, newInputValue) => this.setState({ company: newInputValue }, () => this.getParent(), this.clearMessage())}
EKSAD's avatar
EKSAD committed
431
                                    debug
432 433
                                    renderInput={(params) =>
                                        <TextField {...params}
EKSAD's avatar
EKSAD committed
434
                                            label="Company Name"
EKSAD's avatar
EKSAD committed
435 436 437 438 439 440 441
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
442 443
                                            error={this.state.errorPerusahaan}
                                            helperText={this.state.msgErrorPerusahaan}
EKSAD's avatar
EKSAD committed
444
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
445
                                        />}
EKSAD's avatar
EKSAD committed
446 447
                                    value={this.state.company}
                                />
EKSAD's avatar
EKSAD committed
448
                            </div>
EKSAD's avatar
EKSAD committed
449 450
                        </div>
                        <div className="column-2">
451
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
452 453
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
454 455 456
                                    id="orders"
                                    name="order"
                                    label="Order"
457
                                    type="number"
EKSAD's avatar
EKSAD committed
458
                                    onChange={(e) => this.handleChange(e, null)}
EKSAD's avatar
EKSAD committed
459 460 461
                                    value={this.state.order}
                                    error={this.state.errorOrder}
                                    helperText={this.state.msgErrorOrder}
EKSAD's avatar
EKSAD committed
462
                                    inputProps={{
463
                                        min: 0,
EKSAD's avatar
EKSAD committed
464 465 466 467 468 469 470 471 472 473 474 475 476 477 478
                                        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
479 480 481 482 483
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
484
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
485 486
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
487
                                    id="description"
488
                                    label="Description"
EKSAD's avatar
EKSAD committed
489 490 491 492
                                    name="description"
                                    value={this.state.description}
                                    error={this.state.errorDesc}
                                    helperText={this.state.msgErrorDesc}
EKSAD's avatar
EKSAD committed
493
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
494
                                    // value={this.props.data.business_unit_name}
EKSAD's avatar
EKSAD committed
495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510
                                    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
511 512
                        </div>
                        <div className="column-2">
513
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }} >
EKSAD's avatar
EKSAD committed
514
                                <Autocomplete
EKSAD's avatar
EKSAD committed
515 516
                                    {...this.state.listParent}
                                    id="parentId"
517
                                    onChange={(event, newInputValue) => this.setState({ parent: newInputValue })}
EKSAD's avatar
EKSAD committed
518
                                    debug
EKSAD's avatar
EKSAD committed
519
                                    disabled={this.state.reportType == null || this.state.company == null}
520 521 522
                                    renderInput={(params) =>
                                        <TextField {...params}
                                            label="Parent ID"
EKSAD's avatar
EKSAD committed
523 524 525 526 527 528 529
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
EKSAD's avatar
EKSAD committed
530
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
531
                                        />}
EKSAD's avatar
EKSAD committed
532
                                    value={this.state.parent}
EKSAD's avatar
EKSAD committed
533
                                />
EKSAD's avatar
EKSAD committed
534
                            </div>
EKSAD's avatar
EKSAD committed
535 536
                        </div>
                    </div>
EKSAD's avatar
EKSAD committed
537

EKSAD's avatar
EKSAD committed
538 539
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
540
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
541 542
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
543 544 545 546
                                    id="uom"
                                    name="uom"
                                    label="UOM"
                                    value={this.state.uom}
EKSAD's avatar
EKSAD committed
547
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
548 549 550 551 552 553 554 555 556 557 558 559 560
                                    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
561 562
                                >
                                </TextField>
EKSAD's avatar
EKSAD committed
563 564 565
                            </div>
                        </div>
                        <div className="column-2">
566
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
567 568
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
569 570 571 572
                                    id="weight"
                                    label="Weight"
                                    name="weight"
                                    value={this.state.weight}
EKSAD's avatar
EKSAD committed
573
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
574 575
                                    inputProps={{
                                        style: {
EKSAD's avatar
EKSAD committed
576 577
                                            fontSize: 11,
                                            fontFamily: 'Nunito Sans, sans-serif',
EKSAD's avatar
EKSAD committed
578 579 580 581 582
                                        }
                                    }}
                                    InputLabelProps={{
                                        style: {
                                            fontSize: 11,
EKSAD's avatar
EKSAD committed
583 584
                                            fontFamily: 'Nunito Sans, sans-serif',
                                            color: '#7e8085',
EKSAD's avatar
EKSAD committed
585 586 587 588 589
                                        }
                                    }}
                                >
                                </TextField>
                            </div>
EKSAD's avatar
EKSAD committed
590 591 592 593 594
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
595
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
596
                                <Autocomplete
EKSAD's avatar
EKSAD committed
597 598
                                    {...this.state.listInputType}
                                    id="inputType"
599 600
                                    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
601
                                            : newInputValue.type_item_report_name === 'Formula' ?
602 603 604 605 606 607 608 609
                                                this.setState({
                                                    disabledFormula: false,
                                                    disabledCondt: true,
                                                    disabledValue: true,
                                                    formula: '',
                                                    condition: '',
                                                    realVal: ''
                                                }, () => this.clearMessage())
a.bairuha's avatar
a.bairuha committed
610
                                                : newInputValue.type_item_report_name === 'Validation' ?
611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627
                                                    this.setState({
                                                        disabledFormula: false,
                                                        disabledCondt: false,
                                                        disabledValue: false,
                                                        formula: '',
                                                        condition: '',
                                                        realVal: ''
                                                    }, () => this.clearMessage())
                                                    : this.setState({
                                                        disabledFormula: true,
                                                        disabledCondt: true,
                                                        disabledValue: true,
                                                        formula: '',
                                                        condition: '',
                                                        realVal: ''
                                                    }, () => this.clearMessage())
                                    )}
EKSAD's avatar
EKSAD committed
628
                                    debug
629 630
                                    renderInput={(params) =>
                                        <TextField {...params}
631
                                            label="Data Type"
632 633
                                            error={this.state.errorTipeData}
                                            helperText={this.state.msgErrorTipeData}
EKSAD's avatar
EKSAD committed
634 635 636 637 638 639 640
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
Deni Rinaldi's avatar
Deni Rinaldi committed
641 642
                                            error={this.state.errorTipeData}
                                            helperText={this.state.msgErrorTipeData}
EKSAD's avatar
EKSAD committed
643
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
644
                                        />}
EKSAD's avatar
EKSAD committed
645
                                    value={this.state.InputType}
EKSAD's avatar
EKSAD committed
646
                                />
EKSAD's avatar
EKSAD committed
647
                            </div>
EKSAD's avatar
EKSAD committed
648 649
                        </div>
                        <div className="column-2">
650
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
651 652
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
653 654 655 656 657 658 659
                                    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
660
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676
                                    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
677 678 679 680 681
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
682
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
683 684
                                <TextField
                                    style={{ width: '100%' }}
EKSAD's avatar
EKSAD committed
685
                                    id="realVal"
686
                                    label="True Value"
EKSAD's avatar
EKSAD committed
687 688 689 690 691
                                    name="realVal"
                                    disabled={this.state.disabledValue}
                                    value={this.state.realVal}
                                    error={this.state.errorRV}
                                    helperText={this.state.msgErrorRV}
EKSAD's avatar
EKSAD committed
692
                                    onChange={(e) => this.handleChange(e, '')}
EKSAD's avatar
EKSAD committed
693 694 695 696 697 698 699 700 701 702 703 704 705
                                    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
706
                                />
EKSAD's avatar
EKSAD committed
707
                            </div>
EKSAD's avatar
EKSAD committed
708 709
                        </div>
                        <div className="column-2">
710 711
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <Autocomplete
EKSAD's avatar
EKSAD committed
712
                                    value={this.state.condition}
EKSAD's avatar
EKSAD committed
713
                                    id="isWrongCondition"
EKSAD's avatar
EKSAD committed
714
                                    disabled={this.state.disabledCondt}
EKSAD's avatar
EKSAD committed
715
                                    onChange={(event, newValue) => {
716
                                        this.setState({ condition: newValue }, () => this.clearMessage());
EKSAD's avatar
EKSAD committed
717
                                    }}
EKSAD's avatar
EKSAD committed
718
                                    options={this.state.options}
719 720 721 722
                                    renderInput={(params) =>
                                        <TextField {...params}
                                            error={this.state.errorCondition}
                                            helperText={this.state.msgErrorCondition}
723
                                            label="False Condition"
EKSAD's avatar
EKSAD committed
724 725 726 727 728 729 730
                                            InputLabelProps={{
                                                style: {
                                                    fontSize: 11,
                                                    fontFamily: 'Nunito Sans, sans-serif',
                                                    color: '#7e8085'
                                                }
                                            }}
731
                                            InputProps={{ ...params.InputProps, style: { fontSize: 11, fontFamily: 'Nunito Sans, sans-serif' } }}
EKSAD's avatar
EKSAD committed
732 733
                                        />}
                                />
EKSAD's avatar
EKSAD committed
734
                            </div>
EKSAD's avatar
EKSAD committed
735 736 737 738 739
                        </div>
                    </div>

                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
740 741 742 743
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <DatePicker
                                    margin="normal"
                                    id="startDate"
744
                                    label="Valid From"
745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767
                                    format="dd MMMM yyyy"
                                    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
768 769 770 771
                                />
                            </div>
                        </div>
                        <div className="column-2">
772 773 774 775
                            <div className="margin-top-10px" style={{ padding: 10, borderRadius: 5 }}>
                                <DatePicker
                                    margin="normal"
                                    id="endDate"
776
                                    label="Valid To"
777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800
                                    format="dd MMMM yyyy"
                                    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
801
                                />
EKSAD's avatar
EKSAD committed
802 803
                            </div>
                        </div>
EKSAD's avatar
EKSAD committed
804
                    </div>
EKSAD's avatar
EKSAD committed
805

EKSAD's avatar
EKSAD committed
806 807
                    <div className="grid grid-2x grid-mobile-none gap-15px" style={{ paddingLeft: 20, paddingRight: 20 }}>
                        <div className="column-1">
808
                            <div className="margin-top-10px" style={{ backgroundColor: '#e8e8e8', padding: 10, borderRadius: 5 }}>
EKSAD's avatar
EKSAD committed
809 810
                                <TextField
                                    style={{ width: '100%' }}
811
                                    defaultValue={"active"}
EKSAD's avatar
EKSAD committed
812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831
                                    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>
832

EKSAD's avatar
EKSAD committed
833 834 835 836 837 838 839 840
                    <div className="margin-top-10px" style={{ padding: 20}}>
                        <div style={{ display: 'flex' }}>
                            <Typography style={{ fontSize: 11, width: '13%' }}>Created By</Typography>
                            <Typography style={{ fontSize: 11 }}>: </Typography>
                        </div>
                        <div style={{ display: 'flex' }}>
                            <Typography style={{ fontSize: 11, width: '13%' }}>Updated By</Typography>
                            <Typography style={{ fontSize: 11 }}>: </Typography>
EKSAD's avatar
EKSAD committed
841
                        </div>
EKSAD's avatar
EKSAD committed
842 843 844 845 846 847 848 849 850
                    </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' }}>
851
                                    <span style={{ color: '#354960', fontSize: 11 }}>Cancel</span>
EKSAD's avatar
EKSAD committed
852 853 854
                                </div>
                            </button>
                        </div>
855 856
                        <div className="column-2" style={{ display: 'flex', justifyContent: 'flex-end', alignItems: 'center' }}>
                            <button
EKSAD's avatar
EKSAD committed
857 858 859 860
                                type="button"
                                onClick={() => this.validasi()}
                            >
                                <div style={{ width: 102, height: 30, backgroundColor: '#354960', borderRadius: 5, alignItems: 'center', display: 'flex', justifyContent: 'center' }}>
861
                                    <span style={{ color: '#fff', fontSize: 11 }}>Save</span>
EKSAD's avatar
EKSAD committed
862
                                </div>
EKSAD's avatar
EKSAD committed
863
                            </button>
EKSAD's avatar
EKSAD committed
864 865 866 867 868 869 870
                        </div>
                    </div>
                </div>
            </div>
        )
    }
}