| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633 | 
							- import React, { Component } from "react";
 
- import { Card, CardBody, TabContent, TabPane, Nav, NavItem, NavLink, Button, Row, Col, FormGroup } 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";
 
- import { getAutoSave, inputAutoSave } from "@/actions/autosave";
 
- import swal from "sweetalert2";
 
- import { getCsrf } from "../../../actions/security";
 
- import ComponentToPrint from "../../../components/Sanksi/SuratBA_A";
 
- import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
 
- import { updatePddikti } from "../../../actions/sanksi";
 
- import { ENV } from "../../../env";
 
- import Swal from "sweetalert2";
 
- import Redudansi from "../../../components/Sanksi/Redudansi";
 
- import { createLog } from "../../../actions/log";
 
- const stepNavitemStyle = {
 
- 	backgroundColor: "#fcfcfc",
 
- };
 
- class ProsesSanksi extends Component {
 
- 	// dataUpload = {};
 
- 	constructor(props) {
 
- 		super(props);
 
- 		this.state = {
 
- 			activeStep: "1",
 
- 			dataUpload: null,
 
- 			dataSuratBA: null,
 
- 			dataPelanggaran: {},
 
- 			pelaporan: {},
 
- 			listSanksi: [],
 
- 			loading: false,
 
- 			localSuccess: false
 
- 		};
 
- 	}
 
- 	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)
 
- 		const getDataSave = await getAutoSave({ id, laporan: true });
 
- 		const autoSaveDataPelanggaran = getDataSave.data?.PenetapanSanksi?.dataPelanggaran;
 
- 		const activeStep = getDataSave.data?.PenetapanSanksi?.activeStep
 
- 		this.setState({ pelaporan, listSanksi, activeStep: activeStep || "1" });
 
- 		this.setState({ dataPelanggaran: autoSaveDataPelanggaran })
 
- 	};
 
- 	handleAutoSave = async (data, activeStep) => {
 
- 		if (this.props?.user?.role.id === 2024) {
 
- 			""
 
- 		} else {
 
- 			const { query, token } = this.props;
 
- 			const { id } = query;
 
- 			const { dataSuratBA, dataUpload } = this.state
 
- 			await inputAutoSave({ data: { PenetapanSanksi: { dataSuratBA, dataUpload, dataPelanggaran: data, activeStep } }, token, id, laporan: true })
 
- 		}
 
- 	}
 
- 	done = async () => {
 
- 		if (this.props?.user?.role.id === 2024) {
 
- 			Swal.fire({
 
- 				icon: 'error',
 
- 				title: 'Oops...',
 
- 				html: 'Maaf anda tidak memiliki akses untuk menyelesaikan<p> proses ini.</p>',
 
- 				confirmButtonColor: "#3e3a8e",
 
- 				confirmButtonText: 'Oke'
 
- 			})
 
- 		} else {
 
- 			this.setState({
 
- 				loading: true
 
- 			})
 
- 			const sanksi = await this.tambahSanksi()
 
- 			if (sanksi && ENV === "production") {
 
- 				await this.updatePddikti(sanksi.data._id)  //kirim sanksiID ke function updatePDDIKTI
 
- 			}
 
- 			await Router.push({
 
- 				pathname: "/app/sanksi",
 
- 			});
 
- 		}
 
- 	};
 
- 	updatePddikti = async (sanksiId) => {
 
- 		const getToken = await getCsrf();
 
- 		const _csrf2 = getToken.token;
 
- 		const toastPddikti = toast.loading("Updating pddikti...");
 
- 		try {
 
- 			const { query, token } = this.props;
 
- 			const { id } = query;
 
- 			await updatePddikti(token, sanksiId, _csrf2)
 
- 			toast.update(toastPddikti, { render: "Berhasil Update PDDIKTI", type: "success", isLoading: false, autoClose: true, closeButton: true });
 
- 		}
 
- 		catch (error) {
 
- 			toast.update(toastPddikti, { render: ("Gagal Update PDDIKTI"), type: "error", isLoading: false, autoClose: true, closeButton: true });
 
- 		}
 
- 	}
 
- 	tambahSanksi = async () => {
 
- 		const getToken = await getCsrf();
 
- 		const _csrf = getToken.token;
 
- 		const dataUpload = this.state.dataUpload
 
- 		const toastid = toast.loading("Please wait...");
 
- 		if (dataUpload.tidakPerluTMTCheck === true || dataUpload?.awalTMT === undefined || dataUpload?.awalTMT === "" ||
 
- 			dataUpload?.akhirTMT === undefined || dataUpload?.akhirTMT === "") {
 
- 			try {
 
- 				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("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.filesTandaTerimaSS && this.state.dataUpload.filesTandaTerimaSS.length > 0) {
 
- 					this.state.dataUpload.filesTandaTerimaSS.forEach((e) => {
 
- 						formdata.append("dokumen_terima_sanksi", e);
 
- 					});
 
- 				}
 
- 				const sanksi = await createSanksi(token, id, formdata, _csrf)
 
- 				toast.update(toastid, { render: "Berhasil membuat sanksi", type: "success", isLoading: false, autoClose: true, closeButton: true });
 
- 				return sanksi
 
- 			}
 
- 			catch (error) {
 
- 				toast.update(toastid, { render: error.response.data.message || error.message, type: "error", isLoading: false, autoClose: true, closeButton: true });
 
- 				return null
 
- 			}
 
- 		} else {
 
- 			try {
 
- 				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.awalTMT);
 
- 				formdata.append("to_date", this.state.dataUpload.akhirTMT);
 
- 				formdata.append("tanggal_terima_sanksi", this.state.dataUpload.terimaSuratSanksi);
 
- 				formdata.append("tanggal_akhir_keberatan", this.state.dataUpload.tglAkhirKeberatan);
 
- 				formdata.append("sanksi", JSON.stringify(this.state.dataUpload.listSanksi.map((e) => ({ label: e.value.split(";")[0], description: e.value.split(";")[1], level: e.value.split(";")[2] }))));
 
- 				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.filesTandaTerimaSS && this.state.dataUpload.filesTandaTerimaSS.length > 0) {
 
- 					this.state.dataUpload.filesTandaTerimaSS.forEach((e) => {
 
- 						formdata.append("dokumen_terima_sanksi", e);
 
- 					});
 
- 				}
 
- 				const sanksi = await createSanksi(token, id, formdata, _csrf)
 
- 				toast.update(toastid, { render: "Berhasil membuat sanksi", type: "success", isLoading: false, autoClose: true, closeButton: true });
 
- 				return sanksi
 
- 			}
 
- 			catch (error) {
 
- 				toast.update(toastid, { render: error.response.data.message || error.message, type: "error", isLoading: false, autoClose: true, closeButton: true });
 
- 				return null
 
- 			}
 
- 		}
 
- 	}
 
- 	logdelegasi = async () => {
 
- 		const getToken = await getCsrf();
 
- 		const _csrf = getToken.token;
 
- 		const { token, query } = this.props;
 
- 		const { id } = query;
 
- 		await createLog(token, { aktivitas: `Berhasil Delegasi Laporan, id: ${id}`, _csrf: _csrf, menu: "Sanksi" });
 
- 	}
 
- 	handleDelegasi = async (data) => {
 
- 		if (this.props?.user?.role.id === 2024) {
 
- 			Swal.fire({
 
- 				icon: 'error',
 
- 				title: 'Oops...',
 
- 				html: 'Maaf anda tidak memiliki akses untuk menyelesaikan<p> proses ini.</p>',
 
- 				confirmButtonColor: "#3e3a8e",
 
- 				confirmButtonText: 'Oke'
 
- 				// footer: '<a href="">Why do I have this issue?</a>'
 
- 			})
 
- 		} else {
 
- 			const getToken = await getCsrf();
 
- 			const _csrf = getToken.token;
 
- 			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, _csrf);
 
- 			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 });
 
- 				await this.logdelegasi()
 
- 				Router.push("/app/sanksi");
 
- 			}
 
- 		}
 
- 	};
 
- 	toggleStep = (activeStep) => () => {
 
- 		if (this.state.activeStep !== activeStep) {
 
- 			this.setState({
 
- 				activeStep: activeStep
 
- 			});
 
- 			this.handleAutoSave(this.state.dataPelanggaran, activeStep)// parameter 1 untuk data pelanggaran 1 untuk activestep
 
- 			// this.state.activeStep = activeStep;
 
- 		}
 
- 	};
 
- 	setCheckedData = async (data) => {
 
- 		if (data.length === 0) {
 
- 			this.handleAutoSave("null")
 
- 			this.setState({ dataPelanggaran: "null" })
 
- 		}
 
- 		else {
 
- 			const { token } = this.props;
 
- 			const result = await getPelanggaran(token, { id: data.join(",") });
 
- 			this.setState({ dataPelanggaran: result });
 
- 			this.handleAutoSave(result)
 
- 		}
 
- 	};
 
- 	setUploadSuratSanksi = (data) => {
 
- 		this.setState({ dataUpload: data });
 
- 	};
 
- 	setDataSuratBA = (data) => {
 
- 		this.setState({ dataSuratBA: data });
 
- 	};
 
- 	setDataStatusLaporan = async (data) => {
 
- 		await this.setState({ dataStatusLaporan: data });
 
- 		const thisclose = data.selectedOption.value
 
- 		this.setState({ thisclose })
 
- 	};
 
- 	validation = (activeStep) => {
 
- 		const dataUpload = this.state.dataUpload
 
- 		const dataPelanggaran = this.state.dataPelanggaran
 
- 		if (dataUpload?.tidakPerluTMTCheck === true || dataUpload?.awalTMT === undefined || dataUpload?.awalTMT === "" ||
 
- 			dataUpload?.akhirTMT === undefined || dataUpload?.akhirTMT === "") {
 
- 			if (
 
- 				dataUpload?.nomorSanksi === undefined || dataUpload?.nomorSanksi === "" ||
 
- 				dataUpload?.keterangan === undefined || dataUpload?.keterangan === "" ||
 
- 				// dataUpload?.awalsanksi === undefined || dataUpload?.awalsanksi === "" ||
 
- 				dataUpload?.listSanksi === undefined || dataUpload?.listSanksi === null ||
 
- 				dataUpload?.files === undefined || dataUpload?.files.length === 0 || dataUpload?.files === null ||
 
- 				// dataUpload?.terimaSuratSanksi === undefined || dataUpload?.terimaSuratSanksi === "" ||
 
- 				// dataUpload?.tglAkhirKeberatan === undefined || dataUpload?.tglAkhirKeberatanbe === "" ||
 
- 				dataUpload?.filesTandaTerimaSS === undefined || dataUpload?.filesTandaTerimaSS.length === 0 || dataUpload?.filesTandaTerimaSS === null ||
 
- 				dataPelanggaran?.data === undefined
 
- 			) {
 
- 				swal.fire({
 
- 					title: "Form Wajib Diisi",
 
- 					icon: "error",
 
- 					confirmButtonColor: "#3e3a8e",
 
- 				});
 
- 			} else {
 
- 				this.setState({
 
- 					activeStep: "7"
 
- 				});
 
- 			}
 
- 		} else {
 
- 			if (
 
- 				dataUpload?.nomorSanksi === undefined || dataUpload?.nomorSanksi === "" ||
 
- 				dataUpload?.keterangan === undefined || dataUpload?.keterangan === "" ||
 
- 				dataUpload?.awalTMT === undefined || dataUpload?.awalTMT === "" ||
 
- 				dataUpload?.akhirTMT === undefined || dataUpload?.akhirTMT === "" ||
 
- 				dataUpload?.listSanksi === undefined || dataUpload?.listSanksi === null ||
 
- 				dataUpload?.files === undefined || dataUpload?.files.length === 0 || dataUpload?.files === null ||
 
- 				dataUpload?.terimaSuratSanksi === undefined || dataUpload?.terimaSuratSanksi === "" ||
 
- 				dataUpload?.tglAkhirKeberatan === undefined || dataUpload?.tglAkhirKeberatan === "" ||
 
- 				dataUpload?.filesTandaTerimaSS === undefined || dataUpload?.filesTandaTerimaSS.length === 0 || dataUpload?.filesTandaTerimaSS === null ||
 
- 				dataPelanggaran?.data === undefined
 
- 			) {
 
- 				swal.fire({
 
- 					title: "Form Wajib Diisi",
 
- 					icon: "error",
 
- 					confirmButtonColor: "#3e3a8e",
 
- 				});
 
- 			} else {
 
- 				this.setState({
 
- 					activeStep: "7"
 
- 				});
 
- 			}
 
- 		}
 
- 	}
 
- 	handleOpenAlert = () => {
 
- 		Swal.fire({
 
- 			icon: 'error',
 
- 			title: 'Oops...',
 
- 			html: 'Maaf anda tidak memiliki akses untuk menyelesaikan<p> proses ini.</p>',
 
- 			confirmButtonColor: "#3e3a8e",
 
- 			confirmButtonText: 'Oke'
 
- 		})
 
- 	};
 
- 	render() {
 
- 		const { dataUpload, dataPelanggaran, pelaporan, dataSuratBA, thisclose } = this.state
 
- 		return (
 
- 			<ContentWrapper unwrap>
 
- 				{/* <Header /> */}
 
- 				<div className="p-3">
 
- 					<div className="content-heading">
 
- 						<span className="font-color-white">Penetapan Sanksi</span>
 
- 						<div className="ml-auto">
 
- 							<Link href="/app/sanksi">
 
- 								<Button className="color-3e3a8e" color>
 
- 									<span className="font-color-white">< Kembali</span>
 
- 								</Button>
 
- 							</Link>
 
- 						</div>
 
- 					</div>
 
- 					<Card className="card-default">
 
- 						<CardBody>
 
- 							<Row>
 
- 								<Col xs="4">
 
- 									<Nav pills vertical={true} className="cursor-pointer">
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "1",
 
- 												})}
 
- 												onClick={this.toggleStep("1")}
 
- 											>
 
- 												<h4 className="text-left my-3">1. Detail Laporan</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "2",
 
- 												})}
 
- 												onClick={this.toggleStep("2")}
 
- 											>
 
- 												<h4 className="text-left my-3">2. Status Laporan</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "3",
 
- 												})}
 
- 												onClick={this.toggleStep("3")}
 
- 												disabled={thisclose === "Ditutup"}
 
- 											>
 
- 												<h4 className="text-left my-3">3. Hasil Evaluasi</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "4",
 
- 												})}
 
- 												onClick={this.toggleStep("4")}
 
- 												disabled={thisclose === "Ditutup"}
 
- 											>
 
- 												<h4 className="text-left my-3">4. Penetapan Jenis Pelanggaran</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "5",
 
- 												})}
 
- 												onClick={this.toggleStep("5")}
 
- 												disabled={thisclose === "Ditutup"}
 
- 											>
 
- 												<h4 className="text-left my-3">5. Berita Acara Pleno</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "6",
 
- 												})}
 
- 												onClick={this.toggleStep("6")}
 
- 												disabled={thisclose === "Ditutup"}
 
- 											>
 
- 												<h4 className="text-left my-3">6. Penetapan Sanksi</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 										<NavItem style={stepNavitemStyle}>
 
- 											<NavLink
 
- 												tag="div"
 
- 												className={classnames({
 
- 													active: this.state.activeStep === "7",
 
- 												})}
 
- 												onClick={this.validation}
 
- 												disabled={thisclose === "Ditutup"}
 
- 											// onClick={this.toggleStep("6")}
 
- 											>
 
- 												<h4 className="text-left my-3">7. Ringkasan</h4>
 
- 											</NavLink>
 
- 										</NavItem>
 
- 									</Nav>
 
- 								</Col>
 
- 								<Col xs="8">
 
- 									<TabContent activeTab={this.state.activeStep} className="border-0">
 
- 										<TabPane tabId="1">
 
- 											<div className="pt-3 mb-3">
 
- 												<h2>Detail Laporan</h2>
 
- 												{pelaporan.data ? <DetailLaporan noTitle data={pelaporan.data} /> : <Loader />}
 
- 											</div>
 
- 											<hr />
 
- 											<div className="d-flex">
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("2")}>
 
- 													<span className="font-color-white">Next</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 										<TabPane tabId="2">
 
- 											<div className="pt-3 mb-3">
 
- 												<h2>Status Laporan</h2>
 
- 												<Card className="card-default">
 
- 													<CardBody>
 
- 														<Redudansi setDataStatusLaporan={this.setDataStatusLaporan} id={pelaporan.data?._id} role={this.props?.user?.role.id} />
 
- 													</CardBody>
 
- 												</Card>
 
- 											</div>
 
- 											<hr />
 
- 											<div className="d-flex">
 
- 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("1")}>
 
- 													<span className="font-color-white">Previous</span>
 
- 												</Button>
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("3")} disabled={thisclose === "Ditutup"}>
 
- 													<span className="font-color-white">Next</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 										<TabPane tabId="3">
 
- 											<div className="pt-3 mb-3">
 
- 												<h2>Hasil Evaluasi</h2>
 
- 												<Card className="card-default">
 
- 													{pelaporan.data ? (
 
- 														<CardBody>
 
- 															<TableRiwayat data={pelaporan.data} />
 
- 														</CardBody>
 
- 													) : (
 
- 														<Loader />
 
- 													)}
 
- 												</Card>
 
- 											</div>
 
- 											<hr />
 
- 											<div className="d-flex">
 
- 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("2")}>
 
- 													<span className="font-color-white">Previous</span>
 
- 												</Button>
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("4")}>
 
- 													<span className="font-color-white">Next</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 										<TabPane tabId="4">
 
- 											<div className="pt-3 mb-3">
 
- 												<h2>Penetapan Jenis Pelanggaran</h2>
 
- 												<TablePenetapanSanksi query={this.props.query} handleDelegasi={this.handleDelegasi} handleAutoSave={this.handleAutoSave} setCheckedData={this.setCheckedData} dataPelanggaran={dataPelanggaran} />
 
- 											</div>
 
- 											<hr />
 
- 											<div className="d-flex">
 
- 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("3")}>
 
- 													<span className="font-color-white">Previous</span>
 
- 												</Button>
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("5")}>
 
- 													<span className="font-color-white">Next</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 										<TabPane tabId="5">
 
- 											<Card>
 
- 												<BeritaAcara query={this.props.query} handleAutoSave={this.handleAutoSave} dataPelanggaran={this.state.dataPelanggaran} setDataSuratBA={this.setDataSuratBA} dataLaporan={pelaporan} dataSuratBA={dataSuratBA} role={this.props?.user?.role.id} />
 
- 											</Card>
 
- 											<div className="d-flex">
 
- 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("4")}>
 
- 													<span className="font-color-white">Previous</span>
 
- 												</Button>
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("6")}>
 
- 													<span className="font-color-white">Next</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 										<TabPane tabId="6">
 
- 											<div className="pt-3 mb-3">
 
- 												<h2>Penetapan Sanksi</h2>
 
- 												{this.state.listSanksi && <UploadSurat setUploadSuratSanksi={this.setUploadSuratSanksi} listSanksi={this.state.listSanksi} query={this.props.query} handleAutoSave={this.handleAutoSave} dataPelanggaran={this.state.dataPelanggaran} dataSuratBA={dataSuratBA} />}
 
- 											</div>
 
- 											<FormGroup row className="mt-3">
 
- 												<label className="col-md-4 col-form-label">
 
- 													Dokumen Laporan Evaluasi dan Pembahasan
 
- 												</label>
 
- 												<div className="col-md-8">
 
- 													<div style={{ display: "none" }}>
 
- 														<ComponentToPrint ref={el => (this.componentRef = el)} query={this.props.query} handleAutoSave={this.handleAutoSave} dataPelanggaran={this.state.dataPelanggaran} setDataSuratBA={this.setDataSuratBA} dataLaporan={pelaporan} dataSuratBA={dataSuratBA} />
 
- 													</div>
 
- 													{this.props?.user?.role.id === 2024 ?
 
- 														<Button color className="btn-labeled-4 mt-0" onClick={this.handleOpenAlert}>
 
- 															<h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>
 
- 														</Button>
 
- 														:
 
- 														<ReactToPrint
 
- 															trigger={() => {
 
- 																return <span>
 
- 																	<Button color className="btn-labeled-4 mt-0">
 
- 																		<h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>
 
- 																	</Button>
 
- 																</span>
 
- 															}}
 
- 															content={() => this.componentRef}
 
- 														/>
 
- 													}
 
- 												</div>
 
- 											</FormGroup>
 
- 											<hr />
 
- 											<div className="d-flex">
 
- 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("5")}>
 
- 													<span className="font-color-white">Previous</span>
 
- 												</Button>
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={() => { this.validation() }}>
 
- 													<span className="font-color-white">Next</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 										<TabPane tabId="7">
 
- 											<div className="pt-3 mb-3">
 
- 												<h2>Ringkasan</h2>
 
- 												{pelaporan.data ? <Ringkasan dataSuratBA={dataSuratBA} query={this.props.query} dataLaporan={pelaporan.data} dataPelanggaran={dataPelanggaran?.data} dataPelanggaranBA={this.state.dataPelanggaran} dataUpload={dataUpload} /> : <Loader />}
 
- 												<FormGroup row>
 
- 													<Col md="4">Surat Berita Acara:</Col>
 
- 													<Col md="8">
 
- 														{this.props.user?.role?.id === 2024 ?
 
- 															<Button color className="btn-labeled-4 mt-0" onClick={this.handleOpenAlert}>
 
- 																<h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>
 
- 															</Button>
 
- 															:
 
- 															<ReactToPrint
 
- 																trigger={() => {
 
- 																	return <span>
 
- 																		<Button color className="btn-labeled-4 mt-0">
 
- 																			<h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>
 
- 																		</Button>
 
- 																	</span>
 
- 																}}
 
- 																content={() => this.componentRef}
 
- 															/>
 
- 														}
 
- 														<div style={{ display: "none" }}>
 
- 															<ComponentToPrint ref={el => (this.componentRef = el)} query={this.props.query} handleAutoSave={this.handleAutoSave} dataPelanggaran={this.state.dataPelanggaran} setDataSuratBA={this.setDataSuratBA} dataLaporan={pelaporan} dataSuratBA={dataSuratBA} />
 
- 														</div>
 
- 													</Col>
 
- 												</FormGroup>
 
- 											</div>
 
- 											<hr />
 
- 											<div className="d-flex">
 
- 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("6")}>
 
- 													<span className="font-color-white">Previous</span>
 
- 												</Button>
 
- 												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.done}
 
- 													disabled={this.state.loading}
 
- 												>
 
- 													<span className="font-color-white">Done</span>
 
- 												</Button>
 
- 											</div>
 
- 										</TabPane>
 
- 									</TabContent>
 
- 								</Col>
 
- 							</Row>
 
- 						</CardBody>
 
- 					</Card>
 
- 				</div>
 
- 			</ContentWrapper>
 
- 		);
 
- 	}
 
- }
 
- const mapStateToProps = (state) => ({ user: state.user, token: state.token });
 
- export default connect(mapStateToProps)(ProsesSanksi);
 
 
  |