import React, { Component } from "react"; import { Card, CardBody, TabContent, TabPane, Nav, NavItem, NavLink, Button, Row, Col } from "reactstrap"; import Router from "next/router"; import classnames from "classnames"; import ContentWrapper from "@/components/Layout/ContentWrapper"; import DetailLaporan from "@/components/Main/DetailLaporan"; import Header from "@/components/Main/Header"; import TableRiwayat from "@/components/Pemeriksaan/TableRiwayat"; import UploadSurat from "@/components/Sanksi/UploadSurat"; import Ringkasan from "@/components/Sanksi/Ringkasan"; import TablePenetapanSanksi from "@/components/Sanksi/TablePenetapanSanksi"; import Link from "next/link"; import { getOneLaporan, updateLaporan } from "@/actions/pelaporan"; import { createSanksi } from "@/actions/sanksi"; import { getPelanggaran, getPelanggaranSanksi } from "@/actions/pelanggaran"; import { connect } from "react-redux"; import Loader from "@/components/Common/Loader"; import { ToastContainer, toast } from "react-toastify"; import BeritaAcara from "@/components/Sanksi/BeritaAcara_A"; import { autosave } from "@/actions/autosave"; const stepNavitemStyle = { backgroundColor: "#fcfcfc", }; class ProsesSanksi extends Component { dataUpload = {}; constructor(props) { super(props); this.state = { activeStep: "1", dataUpload: null, dataPelanggaran: {}, pelaporan: {}, listSanksi: [], dataSave: {} }; } static getInitialProps = async ({ query }) => { return { query }; }; componentDidMount = async () => { const { query, token } = this.props; const { id } = query; const pelaporan = await getOneLaporan(token, id); const { data: listSanksi } = await getPelanggaranSanksi(token) this.setState({ pelaporan, listSanksi }); }; done = async (e) => { const toastid = toast.loading("Please wait..."); try { e.preventDefault(); const { query, token } = this.props; const { id } = query; const formdata = new FormData(); formdata.append("no_sanksi", this.state.dataUpload.nomorSanksi); formdata.append("keterangan", this.state.dataUpload.keterangan); formdata.append("from_date", this.state.dataUpload.awalsanksi); formdata.append("to_date", this.state.dataUpload.akhirsanksi); formdata.append("tanggal_terima_sanksi", this.state.dataUpload.terimaSuratSanksi); formdata.append("tanggal_akhir_keberatan", this.state.dataUpload.tglAkhirKeberatan); formdata.append("pelanggaran_id", this.state.dataPelanggaran.data.map((e) => e._id).join()); if (this.state.dataUpload.files && this.state.dataUpload.files.length > 0) { this.state.dataUpload.files.forEach((e) => { formdata.append("dokumen", e); }); } if (this.state.dataUpload.filesBeritaAcara && this.state.dataUpload.filesBeritaAcara.length > 0) { this.state.dataUpload.filesBeritaAcara.forEach((e) => { formdata.append("berita_acara", e); }); } if (this.state.dataUpload.fileTandaTerimaSS && this.state.dataUpload.fileTandaTerimaSS.length > 0) { this.state.dataUpload.fileTandaTerimaSS.forEach((e) => { formdata.append("dokumen_terima_sanksi", e); }); } await createSanksi(token, id, formdata); toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true }); Router.push({ pathname: "/app/sanksi", }); } catch (error) { toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true }); } }; handleDelegasi = async (data) => { const { token, query } = this.props; const { id } = query; let update = null; const toastid = toast.loading("Please wait..."); data.change_role = "true"; data.keterangan = "delegasi ke DIKTI" update = await updateLaporan(token, id, data); if (!update) { toast.update(toastid, { render: "Laporan gagal didelegasi", type: "error", isLoading: false, autoClose: true, closeButton: true }); } else { toast.update(toastid, { render: "Laporan berhasil didelegasi", type: "success", isLoading: false, autoClose: true, closeButton: true }); Router.push("/app/sanksi"); } }; toggleStep = (activeStep) => () => { if (this.state.activeStep !== activeStep) { this.setState({ activeStep, }); } }; setCheckedData = async (data) => { const { token } = this.props; const result = await getPelanggaran(token, { id: data.join(",") }); this.setState({ dataPelanggaran: result }); }; setUploadSuratSanksi = (data) => { this.setState({ dataUpload: data }); }; render() { const { dataUpload, dataPelanggaran, pelaporan } = this.state; return ( {/*
*/}
Penetapan Sanksi

Detail Laporan

{pelaporan.data ? : }

Hasil Evaluasi

{pelaporan.data ? ( ) : ( )}

Penetapan Jenis Pelanggaran


Penetapan Sanksi

{this.state.listSanksi && }

Ringkasan

{pelaporan.data ? : }

); } } const mapStateToProps = (state) => ({ user: state.user, token: state.token }); export default connect(mapStateToProps)(ProsesSanksi);