Parcourir la source

Perubahan Menu PT, sub menu keberatan, banding

andi il y a 2 ans
Parent
commit
ceeb777551

+ 19 - 19
components/Layout/MenuPT.js

@@ -15,25 +15,25 @@ const MenuPT = [
 		icon: "icon-social-steam",
 		translate: "sidebar.nav.PT_PEMANTAUAN",
 	},
-	{
-		name: "Pengajuan Keberatan",
-		icon: "icon-hourglass",
-		translate: "sidebar.nav.PENGAJUAN_KEBERATAN",
-		submenu: [
-			{
-				name: "a. Permohonan Keberatan",
-				path: "/pt/keberatan",
-			},
-			{
-				name: "b. Jawaban keberatan",
-				path: "/pt/jawaban-keberatan",
-			},
-			{
-				name: "c. Jawaban banding",
-				path: "/pt/jawaban-banding",
-			},
-		],
-	},
+	// {
+	// 	name: "Pengajuan Keberatan",
+	// 	icon: "icon-hourglass",
+	// 	translate: "sidebar.nav.PENGAJUAN_KEBERATAN",
+	// 	submenu: [
+	// 		{
+	// 			name: "a. Permohonan Keberatan",
+	// 			path: "/pt/keberatan",
+	// 		},
+	// 		{
+	// 			name: "b. Jawaban keberatan",
+	// 			path: "/pt/jawaban-keberatan",
+	// 		},
+	// 		{
+	// 			name: "c. Jawaban banding",
+	// 			path: "/pt/jawaban-banding",
+	// 		},
+	// 	],
+	// },
 	{
 		name: "Dokumen Perbaikan",
 		path: "/pt/dokumen-perbaikan",

+ 4 - 2
components/PT/JawabanKeberatan/ModalPermohonan.js

@@ -112,13 +112,15 @@ export class ModalPermohonan extends Component {
 		const toastid = toast.loading("Please wait...");
 		const added = await addBanding(token, id, formdata);
 		await updatePT(token, query.id, { is_pengajuan_banding: true })
-
+		Router.push({
+			pathname: "/pt/jawaban-banding/detail", query: { id: id }
+		});
 		if (!added) {
 			toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
 		} else {
 			toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
 			Router.push({
-				pathname: "/pt/jawaban-banding",
+				pathname: "/pt/jawaban-banding/detail", query: { id: id }
 			});
 		}
 	};

+ 12 - 3
components/PT/Keberatan/ModalPermohonan.js

@@ -6,6 +6,7 @@ import { connect } from "react-redux";
 import { toast } from "react-toastify";
 import { Formik, Form, Field, ErrorMessage } from "formik";
 import * as Yup from "yup";
+import Link from "next/link";
 
 let Dropzone = null;
 class DropzoneWrapper extends Component {
@@ -111,19 +112,22 @@ export class ModalPermohonan extends Component {
 
 		const tostid = toast.loading("Please wait...");
 		const success = await addKeberatan(token, id, formdata);
-
+		Router.push({
+			pathname: "/pt/jawaban-keberatan/detail", query: { id: id }
+		});
 		if (!success) {
 			toast.update(tostid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
 		} else {
 			toast.update(tostid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
 			Router.push({
-				pathname: "/pt/jawaban-keberatan",
+				pathname: "/pt/jawaban-keberatan/detail", query: { id: id }
 			});
 		}
 	};
 
 	render() {
 		const { files } = this.state;
+		const { sanksi } = this.props
 
 		const removeFile = file => () => {
 			const newFiles = [...files]
@@ -142,14 +146,17 @@ export class ModalPermohonan extends Component {
 			<>
 				<Modal isOpen={this.props.modal} toggle={this.props.toggleModal}>
 					<ModalBody>Apakah anda akan mengajukan permohonan keberatan atas pengenaan sanksi?</ModalBody>
+
 					<ModalFooter>
+
 						<Button color className="btn-login" onClick={this.toggleModal1}>
 							<span className="font-color-white">Ya</span>
-						</Button>{" "}
+						</Button>
 						<Button color className="btn-v2" onClick={this.props.toggleModal}>
 							Tidak
 						</Button>
 					</ModalFooter>
+
 				</Modal>
 				<Modal isOpen={this.state.modal1} toggle={this.toggleModal1}>
 					<ModalHeader toggle={this.toggleModal1}>Unggah Dokumen Permohonan Keberatan</ModalHeader>
@@ -222,9 +229,11 @@ export class ModalPermohonan extends Component {
 								</FormGroup>
 							</ModalBody>
 							<ModalFooter>
+
 								<Button color className="btn-login" type="submit">
 									<span className="font-color-white">Kirim</span>
 								</Button>
+
 							</ModalFooter>
 						</Form>
 					</Formik>

+ 12 - 2
components/PT/Sanksi/TableSanksi.js

@@ -2,7 +2,7 @@ import moment from "moment";
 import { Button, Table } from "reactstrap";
 import Link from "next/link";
 
-function TableSanksi({ listData, to, linkName }) {
+function TableSanksi({ listData, to, linkName, toKeberatan }) {
 	return (
 		<div className="card b">
 			<div className="card-body card-over">
@@ -44,7 +44,14 @@ function TableSanksi({ listData, to, linkName }) {
 									</td>
 									{/* <td>{moment(data.createdAt).format("DD MMMM YYYY")}</td> */}
 									<td>{data.is_pengajuan_keberatan === true || data.is_pengajuan_keberatan === false ? <div className="badge badge-green">Sudah Diperiksa</div> : <div className="badge badge-red">Belum Diperiksa</div>}</td>
-									<td>
+									<td>{data.pengajuan?.keberatan ?
+										<Link href={{ pathname: toKeberatan, query: { id: data._id } }}>
+											<Button className="btn-login" color >
+												<span className="font-color-white">
+													{linkName}
+												</span>
+											</Button>
+										</Link> :
 										<Link href={{ pathname: to, query: { id: data._id } }}>
 											<Button className="btn-login" color >
 												<span className="font-color-white">
@@ -52,6 +59,9 @@ function TableSanksi({ listData, to, linkName }) {
 												</span>
 											</Button>
 										</Link>
+
+									}
+
 									</td>
 								</tr>
 							);

+ 29 - 6
pages/pt/jawaban-banding/detail.js

@@ -54,12 +54,20 @@ class JawabanBanding extends Component {
 							<Col xl="9">
 								<Card className="card-default">
 									<CardBody>
-										<Row>
-											<Col lg={12}>
-												<DetailSanksi data={sanksi.data} />
-												<DetailJawaban data={sanksi.data.jawaban.banding} sanksiId={sanksi.data._id} />
-											</Col>
-										</Row>
+										{sanksi.data.jawaban?.banding ? (
+											<Row>
+												<Col lg={12}>
+													<DetailSanksi data={sanksi.data} />
+													<DetailJawaban data={sanksi.data.jawaban.banding} sanksiId={sanksi.data._id} />
+												</Col>
+											</Row>)
+											: (
+												<Col lg={12}>
+													<h3 className=" font-weight-bold">Menunggu Jawaban Permohonan Banding</h3>
+													<div className=" tengah"><img className=" tengah" src="/static/img/Wait-Jawaban.png" alt="gambar" /></div>
+												</Col>
+											)}
+
 									</CardBody>
 								</Card>
 							</Col>
@@ -68,6 +76,21 @@ class JawabanBanding extends Component {
 						)}
 						<Col xl="3">{pt && <DetailPT data={pt} />}</Col>
 					</Row>
+					{sanksi.data ? (
+
+						<Col xl="9">
+							<p className="pb-5">
+								<Link href={{ pathname: "/pt/jawaban-keberatan/detail", query: { id: sanksi.data._id } }}>
+									<span className="btn-radius float-left">
+										<Button color="" className="btn-labeled-3-notHover" >
+											<h4 className=" mt-1 mb-md-2 text-center">Previous</h4>
+										</Button>
+									</span>
+								</Link>
+
+							</p>
+						</Col>
+					) : ("")}
 				</div>
 			</ContentWrapper>
 		);

+ 81 - 43
pages/pt/jawaban-keberatan/detail.js

@@ -41,7 +41,7 @@ class JawabanKeberatan extends Component {
 		}
 	};
 	toPerbaikan = () => {
-		Router.push("/pt/keberatan");
+		Router.push("/pt/dokumen-perbaikan");
 	}
 
 	render() {
@@ -71,49 +71,57 @@ class JawabanKeberatan extends Component {
 								<Card className="card-default">
 									<CardBody>
 										<Row>
-											<Col lg={12}>
-												<DetailSanksi data={sanksi.data} />
-												<DetailJawaban data={sanksi.data.jawaban.keberatan} />
-												{sanksi.data.jawaban.keberatan.status !== "Membatalkan Keputusan" &&
-													(new Date(sanksi.data.batas_waktu.banding).getTime() > Date.now() ? (
-														<>
-															<p style={{ fontSize: '1vw' }}>
-																<strong>
-																	Setelah membaca surat keputusan sanksi tersebut, Apakah Perguruan Tinggi bermaksud mengajukan permohonan banding?
-																</strong>
-															</p>
-															<p style={{ fontSize: '0.8vw' }}>
-																Pengajuan dilakukan paling lambat tanggal {moment(sanksi.data.batas_waktu.banding).locale("id").format("DD MMMM YYYY")}
-															</p>
-															<p className="lead">
-																<span className="btn-radius">
-																	<Button color="" disabled={sanksi.data.pengajuan.banding || false} className="btn-labeled-notHover" onClick={this.toggleModal}>
-																		<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Ya</h4>
-																	</Button>
-																</span>
-																<span className="btn-radius">
-																	<Button disabled={sanksi.data.pengajuan.banding || false} color className="btn-labeled-3-notHover" onClick={async () => {
+											{sanksi.data.jawaban?.keberatan ? (
+												<Col lg={12}>
+													<DetailSanksi data={sanksi.data} />
+													<DetailJawaban data={sanksi.data.jawaban.keberatan} />
+													{sanksi.data.jawaban?.keberatan?.status !== "Membatalkan Keputusan" &&
+														(new Date(sanksi.data.batas_waktu.banding).getTime() > Date.now() ? (
+															<>
+																<p style={{ fontSize: '1vw' }}>
+																	<strong>
+																		Setelah membaca surat keputusan sanksi tersebut, Apakah Perguruan Tinggi bermaksud mengajukan permohonan banding?
+																	</strong>
+																</p>
+																<p style={{ fontSize: '0.8vw' }}>
+																	Pengajuan dilakukan paling lambat tanggal {moment(sanksi.data.batas_waktu.banding).locale("id").format("DD MMMM YYYY")}
+																</p>
+																<p className="lead">
+																	<span className="btn-radius">
+																		<Button color="" disabled={sanksi.data.pengajuan.banding || false} className="btn-labeled-notHover" onClick={this.toggleModal}>
+																			<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Ya</h4>
+																		</Button>
+																	</span>
+																	<span className="btn-radius">
+																		<Button disabled={sanksi.data.pengajuan.banding || false} color className="btn-labeled-3-notHover" onClick={async () => {
 
-																		const toastid = toast.loading("Please wait...");
-																		try {
-																			const { token, query } = this.props;
-																			await updatePT(token, query.id, { is_pengajuan_keberatan: false })
-																			toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
-																			Router.push("/pt/dokumen-perbaikan");
-																		} catch (error) {
-																			toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
+																			const toastid = toast.loading("Please wait...");
+																			try {
+																				const { token, query } = this.props;
+																				await updatePT(token, query.id, { is_pengajuan_keberatan: false })
+																				toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
+																				Router.push("/pt/dokumen-perbaikan");
+																			} catch (error) {
+																				toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
+																			}
 																		}
-																	}
-																	}>
-																		<h4 className=" mt-1 mb-md-2 text-center">Tidak</h4>
-																	</Button>
-																</span>
-															</p>
-														</>
-													) : (
-														<p>Pengajuan ditutup</p>
-													))}
-											</Col>
+																		}>
+																			<h4 className=" mt-1 mb-md-2 text-center">Tidak</h4>
+																		</Button>
+																	</span>
+																</p>
+															</>
+														) : (
+															<p>Pengajuan ditutup</p>
+														))}
+
+
+												</Col>) : (
+												<Col lg={12}>
+													<h3 className=" font-weight-bold">Menunggu Jawaban Permohonan Keberatan</h3>
+													<div className=" tengah"><img className=" tengah" src="/static/img/Wait-Jawaban.png" alt="gambar" /></div>
+												</Col>
+											)}
 										</Row>
 									</CardBody>
 								</Card>
@@ -123,9 +131,39 @@ class JawabanKeberatan extends Component {
 						)}
 						<Col xl="3">{pt && <DetailPT data={pt} />}</Col>
 					</Row>
+					{sanksi.data ? (
+
+						<Col xl="9">
+							<p className="pb-5">
+								<Link href={{ pathname: "/pt/keberatan/detail", query: { id: sanksi.data._id } }}>
+									<span className="btn-radius float-left">
+										<Button color="" className="btn-labeled-3-notHover" >
+											<h4 className=" mt-1 mb-md-2 text-center">Previous</h4>
+										</Button>
+									</span>
+								</Link>
+								{sanksi.data.pengajuan?.banding ? (
+									<Link href={{ pathname: "/pt/jawaban-banding/detail", query: { id: sanksi.data._id } }}>
+										<span className="btn-radius float-rigt">
+											<Button color="" className="btn-labeled-notHover" >
+												<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Next</h4>
+											</Button>
+										</span>
+									</Link>
+								) : (
+									<span className="btn-radius float-rigt">
+										<Button color="" className="btn-labeled-notHover" disabled={true} >
+											<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Next</h4>
+										</Button>
+									</span>
+								)}
+
+							</p>
+						</Col>
+					) : ("")}
 					{sanksi.data && (
 						<Row>
-							<Col>{sanksi.data.jawaban.keberatan.status !== "Membatalkan Keputusan" && <Riwayat data={sanksi.data.pengajuan?.banding ? sanksi.data.pengajuan.banding : null} />}</Col>
+							<Col>{sanksi.data.jawaban?.keberatan?.status !== "Membatalkan Keputusan" && <Riwayat data={sanksi.data.pengajuan?.banding ? sanksi.data.pengajuan.banding : null} />}</Col>
 						</Row>
 					)}
 				</div>

+ 22 - 2
pages/pt/keberatan/detail.js

@@ -49,9 +49,11 @@ class Keberatan extends Component {
 		const { sanksi, pt } = this.state;
 		return (
 			<ContentWrapper unwrap>
+
 				<Modal isOpen={this.state.modalTidak} >
 					<ModalBody>Apakah anda ingin membatalkan permohonan keberatan atas pengenaan sanksi?</ModalBody>
 					<ModalFooter>
+
 						<Button color className="btn-login" onClick={async () => {
 							const toastid = toast.loading("Please wait...");
 							try {
@@ -71,7 +73,7 @@ class Keberatan extends Component {
 						</Button>
 					</ModalFooter>
 				</Modal>
-				{sanksi.data && <ModalPermohonan toggleModal={this.toggleModal} modal={this.state.modal} query={this.props.query} data={sanksi.data} />}
+				{sanksi.data && <ModalPermohonan toggleModal={this.toggleModal} modal={this.state.modal} query={this.props.query} data={sanksi.data} sanksi={sanksi} />}
 				{pt && <Header data={pt} />}
 				<div className="p-3">
 					<div className="content-heading">
@@ -112,7 +114,7 @@ class Keberatan extends Component {
 															</span>
 															<span className="btn-radius">
 																<Button disabled={sanksi.data.pengajuan?.keberatan || false} color className="btn-labeled-3-notHover" onClick={this.setModalTidak} >
-																	<h4 className=" mt-1 mb-md-2 text-center">Batalkan Permohonan Keberatan</h4>
+																	<h4 className=" mt-1 mb-md-2 text-center">Batalkan Pengajuan Permohonan Keberatan</h4>
 																</Button>
 															</span>
 														</p>
@@ -130,6 +132,24 @@ class Keberatan extends Component {
 						)}
 						<Col xl="3">{pt && <DetailPT data={pt} />}</Col>
 					</Row>
+					{sanksi.data && (
+						<Row>
+							{sanksi.data.pengajuan?.keberatan ? (
+								<Col xl="9">
+									<p className=" lead float-right">
+										<Link href={{ pathname: "/pt/jawaban-keberatan/detail", query: { id: sanksi.data._id } }}>
+											<span className="btn-radius">
+												<Button color="" className="btn-labeled-notHover" >
+													<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Next</h4>
+												</Button>
+											</span>
+										</Link>
+
+									</p>
+								</Col>
+							) : ("")}
+
+						</Row>)}
 					{sanksi.data && (
 						<Row>
 							<Col>

+ 18 - 17
pages/pt/sanksi/detail.js

@@ -97,23 +97,24 @@ class Sanksi extends Component {
 															Pengajuan dilakukan paling lambat tanggal {moment(sanksi.data.batas_waktu.keberatan).locale("id").format("DD MMMM YYYY")}
 														</p>
 														<p className="lead">
-															<span className="btn-radius">
-																<Button color="" disabled={sanksi.data.is_pengajuan_keberatan === true || sanksi.data.is_pengajuan_keberatan === false} className="btn-labeled-notHover" onClick={async () => {
-																	const toastid = toast.loading("Please wait...");
-																	try {
-																		const { token, query } = this.props;
-																		await updatePT(token, query.id, { is_pengajuan_keberatan: true })
-																		toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
-																		Router.push("/pt/keberatan");
-																	} catch (error) {
-																		toast.update(toastid, { render: "All is not good", type: "error", isLoading: false, autoClose: true, closeButton: true });
+															<Link href={{ pathname: "/pt/keberatan/detail", query: { id: sanksi.data._id } }}>
+																<span className="btn-radius">
+																	<Button color="" disabled={sanksi.data.is_pengajuan_keberatan === true || sanksi.data.is_pengajuan_keberatan === false} className="btn-labeled-notHover" onClick={async () => {
+																		// const toastid = toast.loading("Please wait...");
+																		try {
+																			const { token, query } = this.props;
+																			await updatePT(token, query.id, { is_pengajuan_keberatan: true })
+																			// toast.update(toastid, { render: "Berhasil", type: "success", isLoading: false, autoClose: true, closeButton: true });
+																		} catch (error) {
+																			// toast.update(toastid, { render: "Gagal", type: "error", isLoading: false, autoClose: true, closeButton: true });
+																		}
 																	}
-																}
 
-																}>
-																	<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Ya</h4>
-																</Button>
-															</span>
+																	}>
+																		<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3">Ya</h4>
+																	</Button>
+																</span>
+															</Link>
 															<span className="btn-radius">
 																<Button disabled={sanksi.data.is_pengajuan_keberatan === true || sanksi.data.is_pengajuan_keberatan === false} color className="btn-labeled-3-notHover" onClick={this.setModal} >
 																	<h4 className=" mt-1 mb-md-2 text-center">Tidak</h4>
@@ -134,13 +135,13 @@ class Sanksi extends Component {
 						)}
 						<Col xl="3">{pt && <DetailPT data={pt} />}</Col>
 					</Row>
-					{sanksi.data && (
+					{/* {sanksi.data && (
 						<Row>
 							<Col>
 								<Riwayat data={sanksi.data?.pengajuan?.keberatan ? sanksi.data.pengajuan.keberatan : null} />
 							</Col>
 						</Row>
-					)}
+					)} */}
 				</div>
 			</ContentWrapper >
 		);

+ 1 - 1
pages/pt/sanksi/index.js

@@ -28,7 +28,7 @@ class Sanksi extends Component {
 						Sanksi
 					</span></div>
 				<Row>
-					<Col lg={12}>{sanksi.data?.length ? <TableSanksi listData={sanksi.data} to="/pt/sanksi/detail" linkName="Detail" /> : sanksi.data ? "Tidak ada Sanksi" : <Loader />}</Col>
+					<Col lg={12}>{sanksi.data?.length ? <TableSanksi listData={sanksi.data} to="/pt/sanksi/detail" toKeberatan="/pt/keberatan/detail" linkName="Detail" /> : sanksi.data ? "Tidak ada Sanksi" : <Loader />}</Col>
 				</Row>
 			</ContentWrapper>
 		);

BIN
public/static/img/Wait-Jawaban.png