|  | @@ -0,0 +1,129 @@
 | 
	
		
			
				|  |  | +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 DetailSanksi from "@/components/Main/DetailSanksi";
 | 
	
		
			
				|  |  | +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 { getPelaporan } from "@/actions/pelaporan";
 | 
	
		
			
				|  |  | +import { createSanksi } from "@/actions/sanksi";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const stepNavitemStyle = {
 | 
	
		
			
				|  |  | +	backgroundColor: "#fcfcfc",
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +class Detail extends Component {
 | 
	
		
			
				|  |  | +	constructor(props) {
 | 
	
		
			
				|  |  | +		super(props);
 | 
	
		
			
				|  |  | +		this.state = {
 | 
	
		
			
				|  |  | +			activeStep: "1",
 | 
	
		
			
				|  |  | +			checkedData: [],
 | 
	
		
			
				|  |  | +			dataUpload: null,
 | 
	
		
			
				|  |  | +		};
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	static getInitialProps = async ({ query }) => {
 | 
	
		
			
				|  |  | +		const pelaporan = await getPelaporan({ ptId: query.ptId, number: query.number });
 | 
	
		
			
				|  |  | +		return { query, pelaporan };
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	done = async (e) => {
 | 
	
		
			
				|  |  | +		e.preventDefault();
 | 
	
		
			
				|  |  | +		const { ptId, number } = this.props.query;
 | 
	
		
			
				|  |  | +		const formdata = new FormData();
 | 
	
		
			
				|  |  | +		formdata.append("no_sanksi", this.state.dataUpload.nomorSanksi);
 | 
	
		
			
				|  |  | +		formdata.append("description", this.state.dataUpload.keterangan);
 | 
	
		
			
				|  |  | +		formdata.append("pelanggaran", this.state.checkedData.map((e) => e._id).join());
 | 
	
		
			
				|  |  | +		if (this.state.dataUpload.files.length > 0) {
 | 
	
		
			
				|  |  | +			this.state.dataUpload.files.forEach((e) => {
 | 
	
		
			
				|  |  | +				formdata.append("files", e);
 | 
	
		
			
				|  |  | +			});
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		const create = await createSanksi({ ptId, number }, formdata);
 | 
	
		
			
				|  |  | +		// console.log(create);
 | 
	
		
			
				|  |  | +		if (create) {
 | 
	
		
			
				|  |  | +			Router.push({
 | 
	
		
			
				|  |  | +				pathname: "/app/sanksi",
 | 
	
		
			
				|  |  | +			});
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	toggleStep = (activeStep) => () => {
 | 
	
		
			
				|  |  | +		if (this.state.activeStep !== activeStep) {
 | 
	
		
			
				|  |  | +			this.setState({
 | 
	
		
			
				|  |  | +				activeStep,
 | 
	
		
			
				|  |  | +			});
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	setCheckedData = (data) => {
 | 
	
		
			
				|  |  | +		this.setState({ checkedData: data });
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	setUploadSuratSanksi = (data) => {
 | 
	
		
			
				|  |  | +		this.setState({ dataUpload: data });
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	render() {
 | 
	
		
			
				|  |  | +		const { pelaporan } = this.props;
 | 
	
		
			
				|  |  | +		const { checkedData, dataUpload } = this.state;
 | 
	
		
			
				|  |  | +		return (
 | 
	
		
			
				|  |  | +			<ContentWrapper unwrap>
 | 
	
		
			
				|  |  | +				<Header />
 | 
	
		
			
				|  |  | +				<div className="p-3">
 | 
	
		
			
				|  |  | +					<div className="content-heading">
 | 
	
		
			
				|  |  | +						<div>Detail Sanksi</div>
 | 
	
		
			
				|  |  | +						<div className="ml-auto">
 | 
	
		
			
				|  |  | +							<Link href="/app/sanksi">
 | 
	
		
			
				|  |  | +								<button className="btn btn-sm btn-secondary text-sm">< back</button>
 | 
	
		
			
				|  |  | +							</Link>
 | 
	
		
			
				|  |  | +						</div>
 | 
	
		
			
				|  |  | +					</div>
 | 
	
		
			
				|  |  | +					<Card className="card-default">
 | 
	
		
			
				|  |  | +						<CardBody>
 | 
	
		
			
				|  |  | +							<Row>
 | 
	
		
			
				|  |  | +								<Col xs="4">
 | 
	
		
			
				|  |  | +									<Nav pills vertical={true}>
 | 
	
		
			
				|  |  | +										<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 Sanksi</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 Sanksi</h2>
 | 
	
		
			
				|  |  | +												<Row>
 | 
	
		
			
				|  |  | +													<Col>
 | 
	
		
			
				|  |  | +														<DetailSanksi noTitle data={pelaporan.data[0]} />
 | 
	
		
			
				|  |  | +													</Col>
 | 
	
		
			
				|  |  | +												</Row>
 | 
	
		
			
				|  |  | +											</div>
 | 
	
		
			
				|  |  | +											<hr />
 | 
	
		
			
				|  |  | +										</TabPane>
 | 
	
		
			
				|  |  | +									</TabContent>
 | 
	
		
			
				|  |  | +								</Col>
 | 
	
		
			
				|  |  | +							</Row>
 | 
	
		
			
				|  |  | +						</CardBody>
 | 
	
		
			
				|  |  | +					</Card>
 | 
	
		
			
				|  |  | +				</div>
 | 
	
		
			
				|  |  | +			</ContentWrapper>
 | 
	
		
			
				|  |  | +		);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +export default Detail;
 |