import React, { Component } from 'react' import { Tabs, Tab, Typography, Paper, withStyles, Snackbar } from '@material-ui/core' import ReactTooltip from 'react-tooltip' import Images from '../../assets/Images' import ManualBookTia from './ManualBookTia' import api from '../../api' import AuditTahunan from './AuditTahunan' import CreateManagementDoc from './CreateManagementDoc' import AllDocument from './AllDocument' import QReview from './QReview' import BOD from './BOD' import ManualBookETMS from './ManualBookETMS' import PopUpKonfirmasi from "./PopUpKonfirmasi"; import Constant from '../../library/Constant' import MuiAlert from '@material-ui/lab/Alert'; const Alert = withStyles({ })((props) => <MuiAlert elevation={6} variant="filled" {...props} />); export default class DocumentManagement extends Component { constructor(props) { super(props) this.state = { tab: 0, listData: [], id: 0, btncreate: false, btnedit: false, btndelete: false, load: false, name: '' } } getPermission() { let payload = { menu: "document management" } api.create().getPermission(payload).then(response => { console.log(response) if (response.data) { if (response.data.status === "success") { this.setState({ btncreate: response.data.data.create, btnedit: response.data.data.edit, btndelete: response.data.data.delete, load: true }) } else { this.setState({ load: true }) } } else { this.setState({ load: true }) } }) } selectTab = (event, newEvent) => { this.setState({ tab: newEvent }) // console.log(this.state.tab) } componentDidMount() { this.getDataDocument() this.getPermission() } getDataDocument(id, name) { // let payload = { // "setting_group_id": 7, // "setting_type_id": 167, // "company_id": 0 // } api.create().getDocumentCategory().then(response => { console.log(response); if (response) { if (response.data.status === "success") { this.setState({ listData: response.data.data, id: id === undefined ? response.data.data[0].setting_id : id, name: name === undefined ? response.data.data[0].value : name, loadTable: true, refresh: id === undefined ? '' : 'create' }) // console.log(this.state.listData) } else { } } else { } }) } createDocument(payload, settingID) { api.create().uploadDocument(payload).then(response => { console.log(response) if (response.data) { if (response.ok) { if (response.data.message === "The Document Already Exists in The System, Do You Want to Overwrite It?") { this.setState({ formData: payload, docId: response.data.data.document_id }, () => { this.setState({ konfirmasi: true }) }) } else if (response.data.message === "Upload Document Success") { this.getDataDocument(settingID) this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'success', settingID, visibleCreate: false }) } else { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => { if (response.data.message.includes("Someone Logged In")) { setTimeout(() => { localStorage.removeItem(Constant.TOKEN) window.location.reload(); }, 1000); } }) } } else { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' }) } } else { this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' }) } }) } createUploadDocument() { const formData = this.state.formData formData.append("documentId", this.state.docId) // const docuID = Object.values(payload) // const formDatas = new FormData(); // formDatas.append("file", this.state.file); // formDatas.append("companyId", this.state.getPerusahaan.company_id); // formDatas.append("settingId", this.state.getDocument.document_category_id); // formDatas.append("documentPeriode", this.state.periode.periode); // formDatas.append("description", this.state.description); // formDatas.append("extension", this.state.fileType); // // formDatas.append("documentId", docuID[0]); // console.log(payload); api.create().updateDocument(formData).then(response => { console.log(response) if (response.data) { if (response.ok) { if (response.data.status === "success") { this.getDataDocument(this.state.settingID) this.setState({ konfirmasi: false, alert: true, messageAlert: response.data.message, tipeAlert: 'success', visibleCreate: false }) } else { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'warning' }, () => { if (response.data.message.includes("Someone Logged In")) { setTimeout(() => { localStorage.removeItem(Constant.TOKEN) window.location.reload(); }, 1000); } }) } } else { this.setState({ alert: true, messageAlert: response.data.message, tipeAlert: 'error' }) } } else { this.setState({ alert: true, messageAlert: response.problem, tipeAlert: 'error' }) } }) } getID(id) { console.log(id); this.setState({ id }) } closeAlert() { this.setState({ alert: false }) } render() { return ( <div style={{ height: this.props.height, backgroundColor: '#f8f8f8' }}> {/* {this.props.load && ()} */} <Snackbar open={this.state.alert} autoHideDuration={6000} onClose={() => this.closeAlert()}> <Alert onClose={() => this.closeAlert()} severity={this.state.tipeAlert}> {this.state.messageAlert} </Alert> </Snackbar> <div className={"main-color"} style={{ height: 78, display: 'flex', alignItems: 'center', paddingLeft: 20 }}> <Typography style={{ fontSize: '16px', color: 'white' }}>Document Management</Typography> </div> <div style={{ padding: 20 }}> <Paper style={{ padding: 20 }}> <div style={{ display: 'flex', justifyContent: 'flex-end' }}> {this.state.btncreate && <span> <a data-tip={'Add'} data-for="add"> <div style={{ display: 'grid', justifyContent: 'flex-end' }}> <button type="button" onClick={() => this.setState({ visibleCreate: true, refresh: '' })} style={{ marginRight: 25, background: 'transparent' }} > <img src={Images.add} /> </button> </div> </a> <ReactTooltip border={true} id="add" place="bottom" type="light" effect="solid" /> </span>} </div> <div style={{ display: 'flex' }}> <Tabs orientation="vertical" variant="scrollable" value={this.state.tab} onChange={this.selectTab} aria-label="simple tabs example" style={{ width: 350 }} > {this.state.listData.map((item, index) => { return ( <Tab onClick={() => this.setState({ name: item.value, id: item.setting_id, refresh: '', loadTable : false }, () => this.setState({loadTable: true}))} label={item.value} /> ) })} </Tabs> {this.state.loadTable && ( <AllDocument data={this.state.listData[this.state.tab]} refresh={this.state.refresh} btnedit={this.state.btnedit} btndelete={this.state.btndelete} load={this.state.load} setId={this.state.id} /> // this.state.id === 68542 ? // <AuditTahunan // data={this.state.listData[this.state.tab]} // refresh={this.state.refresh} // btnedit={this.state.btnedit} // btndelete={this.state.btndelete} // load={this.state.load} // /> // : // this.state.id === 68541 ? // <ManualBookTia // data={this.state.listData[this.state.tab]} // refresh={this.state.refresh} // btnedit={this.state.btnedit} // btndelete={this.state.btndelete} // load={this.state.load} // /> // : // this.state.id === 68544 ? // <QReview // data={this.state.listData[this.state.tab]} // refresh={this.state.refresh} // btnedit={this.state.btnedit} // btndelete={this.state.btndelete} // load={this.state.load} // /> // : // this.state.id === 68543 ? // <BOD // data={this.state.listData[this.state.tab]} // refresh={this.state.refresh} // btnedit={this.state.btnedit} // btndelete={this.state.btndelete} // load={this.state.load} // /> // // : // // this.state.id === 68545 ? // // <ManualBookETMS // // data={this.state.listData[this.state.tab]} // // refresh={this.state.refresh} // // /> // : // <span>Coming Soon</span> )} </div> </Paper> </div> {this.state.konfirmasi && ( <PopUpKonfirmasi onClickClosePopUp={() => this.setState({ konfirmasi: false })} uploadDocId={this.createUploadDocument.bind(this)} /> )} {this.state.visibleCreate && ( <CreateManagementDoc onClickClose={() => this.setState({ visibleCreate: false })} // getDataDocument={this.getDataDocument.bind(this)} createDocument={this.createDocument.bind(this)} setting_id={this.state.id} name={this.state.name} /> )} </div> ) } }