import React, { Component } from 'react'; import { TextField, Typography, withStyles, Snackbar } from '@material-ui/core'; import * as R from 'ramda' import { DateTimePicker, KeyboardDatePicker, DatePicker } from "@material-ui/pickers"; import format from "date-fns/format"; import Images from '../../../assets/Images'; import api from '../../../api'; import MuiAlert from '@material-ui/lab/Alert'; import Constant from '../../../library/Constant'; const Alert = withStyles({ })((props) => ); export default class CreateUnitBisnis extends Component { constructor(props) { super(props) this.state = { id: '', status: "", name: '', startDate: '', endDate: '', errorName: false, errorStartDate: false, errorEndDate: false, msgErrorName: "", msgErrorStartDate: "", msgErrorEndDate: "", alert: false, tipeAlert: '', messageAlert: '', } } render() { let { type } = this.props return type === 'edit' ? this.renderEdit() : this.renderCreate() } componentDidMount() { if (this.props.type === 'edit') { this.getDetailUnitBisnis() // console.log(this.props.data); // this.setState({ // id: data[0], // name: data[1], // startDate: data[2], // endDate: data[3] // }) } else { let date = format(new Date, 'yyyy-MM-dd') // console.log(date); this.setState({ startDate: date, endDate: date }) } } getDetailUnitBisnis() { api.create().getDetailUnitBisnis(this.props.data[1]).then(response => { // console.log(response) if (response.data) { if (response.ok) { if (response.data.status === "success") { let data = response.data.data this.setState({ id: data.business_unit_id, name: data.business_unit_name, startDate: data.start_date, endDate: data.end_date, status: data.status, created: data.created, updated: data.updated === null ? "" : data.updated }) } else { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => { if (response.data.message.includes("Someone Logged In") || response.data.message.includes("Token Expired")) { setTimeout(() => { localStorage.removeItem(Constant.TOKEN) window.location.reload(); }, 1000); } }) } } else { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' }) } } else { this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' }) } }) } handleChange(e, type) { let data = this.state let isDate = type !== '' ? true : false if (isDate && type == 'start_date') { this.setState({ startDate: format(e, 'yyyy-MM-dd'), endDate: null }, () => { this.clearError() // console.log(this.state.startDate) }) } else if (isDate && type == 'end_date') { this.setState({ endDate: format(e, 'yyyy-MM-dd') }, () => { this.clearError() // console.log(this.state.endDate) }) } else { // this.setState({...data, tempData: {...this.state.tempData, [e.target.name] : e.target.value}}) } } clearError() { this.setState({ errorName: false, errorStartDate: false, errorEndDate: false, msgErrorName: "", msgErrorStartDate: "", msgErrorEndDate: "" }) } validasi() { if (R.isEmpty(this.state.name)) { this.setState({ errorName: true, msgErrorName: 'Business Unit Cannot be Empty' }) } else if (R.isEmpty(this.state.startDate)) { this.setState({ errorStartDate: true, msgErrorStartDate: 'Valid From Cannot be Empty' }) } else if (R.isEmpty(this.state.endDate) || this.state.endDate === null) { this.setState({ errorEndDate: true, msgErrorEndDate: 'Valid To Cannot be Empty' }) } else { let payload = { "business_unit_id": this.state.id, "business_unit_name": this.state.name, "start_date": this.state.startDate, "end_date": this.state.endDate } this.props.updateUnitBisnis(payload) } } validasiCreate() { if (R.isEmpty(this.state.name)) { this.setState({ errorName: true, msgErrorName: 'Business Unit Cannot be Empty' }) } else if (R.isNil(this.state.startDate)) { this.setState({ errorStartDate: true, msgErrorStartDate: 'Valid From Cannot be Empty' }) } else if (R.isNil(this.state.endDate)) { this.setState({ errorEndDate: true, msgErrorEndDate: 'Valid To Cannot be Empty' }) } else { let payload = { "business_unit_name": this.state.name, "start_date": this.state.startDate, "end_date": this.state.endDate } this.props.createUnitBisnis(payload) } } closeAlert() { this.setState({ alert: false }) } renderEdit() { return (
this.closeAlert()}> this.closeAlert()} severity={this.state.tipeAlert}> {this.state.messageAlert}
Edit Data
this.handleChange(e, 'start_date')} KeyboardButtonProps={{ 'aria-label': 'change date', }} inputProps={{ style: { fontSize: 11 } }} InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }} error={this.state.errorStartDate} helperText={this.state.msgErrorStartDate} style={{ padding: 0, margin: 0, width: '100%' }} />
this.setState({ name: e.target.value }, () => this.clearError())} >
this.handleChange(e, 'end_date')} KeyboardButtonProps={{ 'aria-label': 'change date', }} inputProps={{ style: { fontSize: 11 } }} InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }} style={{ padding: 0, margin: 0, width: '100%' }} />
Created By : {this.state.created}
Updated By : {this.state.updated}
) } renderCreate() { return (
Create Data
this.handleChange(e, 'start_date')} KeyboardButtonProps={{ 'aria-label': 'change date', }} inputProps={{ style: { fontSize: 11 } }} InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }} error={this.state.errorStartDate} helperText={this.state.msgErrorStartDate} style={{ padding: 0, margin: 0, width: '100%' }} />
Created By : Updated By :
this.setState({ name: e.target.value }, () => this.clearError())} >
this.handleChange(e, 'end_date')} KeyboardButtonProps={{ 'aria-label': 'change date', }} inputProps={{ style: { fontSize: 11 } }} InputLabelProps={{ style: { fontSize: 11, color: '#7e8085' } }} style={{ padding: 0, margin: 0, width: '100%' }} />
); } }