andi 2 年之前
父节点
当前提交
17462a1a04

+ 2 - 2
actions/sanksi.js

@@ -12,7 +12,7 @@ export const getSanksi = async (token, query = {}) => {
 	try {
 		let url = "/sanksi";
 		if (query != {}) {
-			const { keberatan, jawaban, banding, cabutSanksi, perbaikan, aktif, delegasi, turunSanksi, naikSanksi, pengajuan_keberatan } = query;
+			const { keberatan, jawaban, banding, cabutSanksi, perbaikan, aktif, delegasi, turunSanksi, naikSanksi, pengajuan_keberatan, is_pengajuan_keberatan, is_pengajuan_banding } = query;
 			url += "?";
 			const parseURL = [];
 			if (keberatan) parseURL.push(`keberatan=true`);
@@ -24,7 +24,7 @@ export const getSanksi = async (token, query = {}) => {
 			if (turunSanksi) parseURL.push(`turunSanksi=true`);
 			if (naikSanksi) parseURL.push(`naikSanksi=true`);
 			if (aktif === false) parseURL.push(`aktif=false`);
-			if (pengajuan_keberatan) parseURL.push(`pengajuan_keberatan=true`);
+			if (is_pengajuan_keberatan) parseURL.push(`pengajuan_keberatan=true`);
 			url += parseURL.join("&");
 		}
 

+ 1 - 1
components/PT/Sanksi/TableSanksi.js

@@ -43,7 +43,7 @@ function TableSanksi({ listData, to, linkName }) {
 										</div>
 									</td>
 									{/* <td>{moment(data.createdAt).format("DD MMMM YYYY")}</td> */}
-									<td>{data.is_pengajuan === true || data.is_pengajuan === false ? <div className="badge badge-green">Sudah Diperiksa</div> : <div className="badge badge-red">Belum Diperiksa</div>}</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>
 										<Link href={{ pathname: to, query: { id: data._id } }}>
 											<Button className="btn-login" color >

+ 5 - 5
pages/app/banding/detail.js

@@ -10,7 +10,7 @@ import Riwayat from "@/components/Banding/Riwayat";
 import { getOneSanksi } from "@/actions/sanksi";
 import { addJawabanBanding } from "@/actions/banding";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
-import { Row, Col, Card, CardBody, FormGroup, Button, Modal, ModalHeader, ModalBody, ModalFooter } from "reactstrap";
+import { Row, Col, Card, CardBody, FormGroup, Button, Modal, ModalHeader, ModalBody, ModalFooter, Input } from "reactstrap";
 import { getPT } from "@/actions/PT";
 import Loader from "@/components/Common/Loader";
 import { toast } from "react-toastify";
@@ -202,7 +202,7 @@ class JawabanBanding extends Component {
 	}
 
 	render() {
-		const { files, sanksi, pt, fileDocTerimaBanding, tglSuratBanding } = this.state;
+		const { files, sanksi, pt, fileDocTerimaBanding, tglSuratBanding, tglTerimaBanding } = this.state;
 
 		const thumbs = files.map((file, index) => (
 			<div md={3} key={index}>
@@ -294,8 +294,8 @@ class JawabanBanding extends Component {
 															<FormGroup>
 																<label className="row-form-label">Nomor Surat Jawaban Atas Permohonan Banding:</label>
 																<div className="row-md-10">
-																	<Field name="no_Banding">{({ field }) => <Input type="text" {...field} />}</Field>
-																	<ErrorMessage name="no_Banding" component="div" className="form-text text-danger" />
+																	<Field name="no_banding">{({ field }) => <Input type="text" {...field} />}</Field>
+																	<ErrorMessage name="no_banding" component="div" className="form-text text-danger" />
 																</div>
 															</FormGroup>
 															<FormGroup>
@@ -383,7 +383,7 @@ class JawabanBanding extends Component {
 																					form.setFieldValue(field.name, e);
 																					this.setTglSuratBanding(e)
 																				}}
-																				minDate={tglSuratBanding}
+																				minDate={tglTerimaBanding}
 																				dateFormat="dd/MM/yyyy"
 																				placeholderText="Isi Tanggal"
 																				locale={id}

+ 1 - 1
pages/app/keberatan/index.js

@@ -19,7 +19,7 @@ class Keberatan extends Component {
 	componentDidMount = async () => {
 		const { token } = this.props;
 		await createLog(token, { aktivitas: "Mengakses halaman Keberatan", menu: "Keberatan" });
-		const sanksi = await getSanksi(token, { keberatan: true });
+		const sanksi = await getSanksi(token, { is_pengajuan_keberatan: true });
 		this.setState({ sanksi });
 	};
 

+ 1 - 1
pages/pt/jawaban-banding/index.js

@@ -16,7 +16,7 @@ class JawabanKeberatan extends Component {
 
 	componentDidMount = async () => {
 		const { token } = this.props;
-		const sanksi = await getSanksi(token, { banding: true });
+		const sanksi = await getSanksi(token, { is_pengajuan_banding: true });
 		this.setState({ sanksi });
 	};
 

+ 1 - 1
pages/pt/jawaban-keberatan/detail.js

@@ -97,7 +97,7 @@ class JawabanKeberatan extends Component {
 																		const toastid = toast.loading("Please wait...");
 																		try {
 																			const { token, query } = this.props;
-																			await updatePT(token, query.id, { is_pengajuan: false })
+																			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) {

+ 46 - 6
pages/pt/keberatan/detail.js

@@ -1,6 +1,6 @@
 import React, { Component } from "react";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
-import { getOneSanksi } from "@/actions/sanksi";
+import { getOneSanksi, updatePT } from "@/actions/sanksi";
 import Header from "@/components/Main/Header";
 import DetailPT from "@/components/Main/DetailPT";
 import DetailSanksi from "@/components/Main/DetailSanksi";
@@ -8,16 +8,19 @@ import Riwayat from "@/components/PT/Keberatan/Riwayat";
 import ModalPermohonan from "@/components/PT/Keberatan/ModalPermohonan";
 import Link from "next/link";
 import moment from "moment";
-import { Row, Col, Card, CardBody, Button } from "reactstrap";
+import { Row, Col, Card, CardBody, Button, Modal, ModalBody, ModalFooter } from "reactstrap";
 import { connect } from "react-redux";
 import { withRouter } from "next/router";
 import Loader from "@/components/Common/Loader";
+import { ToastContainer, toast } from "react-toastify";
+import Router from "next/router";
 
 class Keberatan extends Component {
 	state = {
 		modal: false,
 		sanksi: {},
 		pt: null,
+		modalTidak: false,
 	};
 
 	static getInitialProps = ({ query }) => ({ query });
@@ -36,10 +39,38 @@ class Keberatan extends Component {
 		}
 	};
 
+	setModalTidak = (modalTidak) => {
+		this.setState({
+			modalTidak: !this.state.modalTidak
+		})
+	}
+
 	render() {
 		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 {
+								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 });
+							}
+						}
+						}>
+							<span className="font-color-white">Ya</span>
+						</Button>
+						<Button color className="btn-v2" onClick={this.setModalTidak}>
+							Tidak
+						</Button>
+					</ModalFooter>
+				</Modal>
 				{sanksi.data && <ModalPermohonan toggleModal={this.toggleModal} modal={this.state.modal} query={this.props.query} data={sanksi.data} />}
 				{pt && <Header data={pt} />}
 				<div className="p-3">
@@ -71,11 +102,20 @@ class Keberatan extends Component {
 															Setelah membaca surat keputusan sanksi tersebut, jika Perguruan Tinggi bermaksud mengajukan permohonan keberatan maka dapat menekan tombol di bawah ini paling lambat{" "}
 															{moment(sanksi.data.batas_waktu.keberatan).format("DD MMMM YYYY")}
 														</p>
-														<Button color className="color-3e3a8e" onClick={this.toggleModal} disabled={sanksi.data.pengajuan?.keberatan || false}>
-															<span className="font-color-white">
-																Ajukan Permohonan Keberatan
+														<p className=" lead">
+															<span className="btn-radius">
+																<Button color className="btn-labeled" onClick={this.toggleModal} disabled={sanksi.data.pengajuan?.keberatan || false}>
+																	<h4 className="mt-2 mb-md-2 text-center font-color-white pl-3 pr-3 ">
+																		Ajukan Permohonan Keberatan
+																	</h4>
+																</Button>
 															</span>
-														</Button>
+															<span className="btn-radius">
+																<Button disabled={sanksi.data.pengajuan?.keberatan || false} color className="btn-labeled-3" onClick={this.setModalTidak} >
+																	<h4 className=" mt-1 mb-md-2 text-center">Batalkan Permohonan Keberatan</h4>
+																</Button>
+															</span>
+														</p>
 													</>
 												) : (
 													<p>Pengajuan ditutup</p>

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

@@ -15,7 +15,7 @@ class Keberatan extends Component {
 
 	componentDidMount = async () => {
 		const { token } = this.props;
-		const sanksi = await getSanksi(token, { pengajuan_keberatan: true });
+		const sanksi = await getSanksi(token, { is_pengajuan_keberatan: true });
 		this.setState({ sanksi });
 	};
 

+ 31 - 15
pages/pt/sanksi/detail.js

@@ -8,7 +8,7 @@ import Riwayat from "@/components/PT/Keberatan/Riwayat";
 import ModalPermohonan from "@/components/PT/Keberatan/ModalPermohonan";
 import Link from "next/link";
 import moment from "moment";
-import { Row, Col, Card, CardBody, Button } from "reactstrap";
+import { Row, Col, Card, CardBody, Button, Modal, ModalBody, ModalFooter } from "reactstrap";
 import { connect } from "react-redux";
 import Router from "next/router";
 import Loader from "@/components/Common/Loader";
@@ -29,12 +29,39 @@ class Sanksi extends Component {
 		updatePT(token, query.id, { is_read: true })
 		this.setState({ sanksi, pt: sanksi.data.laporan.pt });
 	};
+	setModal = (modal) => {
+		this.setState({
+			modal: !this.state.modal
+		})
+	}
 
 	render() {
 		const { sanksi, pt } = this.state;
 		console.log(sanksi)
 		return (
 			<ContentWrapper unwrap>
+				<Modal isOpen={this.state.modal} toggle={this.props.toggleModal}>
+					<ModalBody>Apakah anda akan tidak mengajukan permohonan keberatan atas pengenaan sanksi?</ModalBody>
+					<ModalFooter>
+						<Button color className="btn-login" 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 });
+							}
+						}
+						}>
+							<span className="font-color-white">Ya</span>
+						</Button>
+						<Button color className="btn-v2" onClick={this.setModal}>
+							Tidak
+						</Button>
+					</ModalFooter>
+				</Modal>
 				{pt && <Header data={pt} />}
 				<div className="p-3">
 					<div className="content-heading">
@@ -71,11 +98,11 @@ class Sanksi extends Component {
 														</p>
 														<p className="lead">
 															<span className="btn-radius">
-																<Button color="" disabled={sanksi.data.is_pengajuan === true || sanksi.data.is_pengajuan === false} className="btn-labeled" onClick={async () => {
+																<Button color="" disabled={sanksi.data.is_pengajuan_keberatan === true || sanksi.data.is_pengajuan_keberatan === false} className="btn-labeled" onClick={async () => {
 																	const toastid = toast.loading("Please wait...");
 																	try {
 																		const { token, query } = this.props;
-																		await updatePT(token, query.id, { is_pengajuan: true })
+																		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) {
@@ -88,18 +115,7 @@ class Sanksi extends Component {
 																</Button>
 															</span>
 															<span className="btn-radius">
-																<Button disabled={sanksi.data.is_pengajuan === true || sanksi.data.is_pengajuan === false} color className="btn-labeled-3" onClick={async () => {
-																	const toastid = toast.loading("Please wait...");
-																	try {
-																		const { token, query } = this.props;
-																		await updatePT(token, query.id, { is_pengajuan: 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 });
-																	}
-																}
-																}>
+																<Button disabled={sanksi.data.is_pengajuan_keberatan === true || sanksi.data.is_pengajuan_keberatan === false} color className="btn-labeled-3" onClick={this.setModal} >
 																	<h4 className=" mt-1 mb-md-2 text-center">Tidak</h4>
 																</Button>
 															</span>