Jelajahi Sumber

Bagian tanggal berita acara pleno di menu BA diisi manual saja
env "development"
create api update PDDIKTI in action
2 step create sanksi dan update pddikti dengan masing" toast

andi 2 tahun lalu
induk
melakukan
84abe9b4cf

+ 3 - 3
components/Pemeriksaan/InputEvaluasi.js

@@ -168,13 +168,13 @@ class InputEvaluasi extends Component {
 			await toast.promise(insertPemeriksaan(token, id, formdata, _csrf), {
 				pending: "Loading",
 				success: {
-					render:"jajajjaj",
+					render: "success",
 					autoClose: 1000
 				},
 				error: "Error",
-				autoClose: 1000
+
 			});
-			// Router.push("/app/pemeriksaan");
+			Router.push("/app/pemeriksaan");
 		}
 		this.setState({ files: [] });
 		resetForm();

+ 35 - 2
components/Sanksi/BeritaAcara.js

@@ -22,8 +22,11 @@ class BeritaAcara extends Component {
             isEditTempat: false,
             tempat: "",
             isEditTanggal: false,
+            isEditTanggal_2: false,
             tanggal: "",
+            tanggal_2: "",
             setTanggal: false,
+            setTanggal_2: false,
             isEditNamaPeserta: false,
             isEditTemuanLain: false,
             temuanLain: [],
@@ -121,6 +124,15 @@ class BeritaAcara extends Component {
         //     isEditTanggal: !this.state.isEditTanggal,
         // }, this.setDataSuratBA, this.handleAutoSave())
 
+    }
+    isEditTanggal_2 = () => {
+        this.state.isEditTanggal_2 = !this.state.isEditTanggal_2
+        this.setDataSuratBA()
+        this.handleAutoSave()
+        // this.setState({
+        //     isEditTanggal: !this.state.isEditTanggal,
+        // }, this.setDataSuratBA, this.handleAutoSave())
+
     }
 
     isEditTemuanLain = () => {
@@ -234,7 +246,7 @@ class BeritaAcara extends Component {
     }
     render() {
         const { dataLaporan, dataSuratBA, dataPelanggaran } = this.props
-        const { descPelanggaran, tanggal, setTanggal, temuanLain } = this.state
+        const { descPelanggaran, tanggal, setTanggal, setTanggal_2, tanggal_2, temuanLain } = this.state
         return (
             <div>
                 <Modal isOpen={this.state.modalRemovePeserta} >
@@ -359,10 +371,31 @@ class BeritaAcara extends Component {
 
                             <ol className='mt-3'>
                                 <li>Telah dibacakan Berita Acara Evaluasi Kinerja Perguruan Tinggi  {dataLaporan.data && (<span>{dataLaporan.data.pt.nama}</span>)}, tanggal
-                                    {setTanggal === true || this.state?.setTanggal === true ?
+                                    {/* {setTanggal === true || this.state?.setTanggal === true ?
                                         <span> &nbsp;{moment(tanggal || this.state?.tanggal).format("DD-MM-YYYY")}</span>
                                         :
                                         <span> &nbsp;....... &nbsp;</span>
+                                    } */}
+                                    {dataSuratBA?.isEditTanggal_2 &&
+                                        <span style={{ textIndent: "0rem" }}>
+                                            <DatePicker
+                                                selected={tanggal_2 ? new Date(tanggal_2) : tanggal_2}
+                                                onChange={(tanggal_2) => {
+                                                    this.setState({ tanggal_2, setTanggal_2: true }, this.setDataSuratBA)
+                                                }}
+                                                dateFormat="dd/MM/yyyy"
+                                                placeholderText="Isi Tanggal"
+                                                locale={id}
+                                                className="form-control bg-white"
+                                            />
+                                            <button className='bg-transparent button-transparent border-0 fas fa-times-circle text-danger' onClick={this.isEditTanggal_2} />
+                                            <button className='bg-transparent button-transparent border-0 fas fa-check-circle text-success' onClick={this.isEditTanggal_2}
+                                            />
+                                        </span>
+                                    }
+                                    {setTanggal_2 === true || this.state?.setTanggal_2 === true ?
+                                        <span onClick={this.isEditTanggal_2}> {moment(tanggal_2 || this.state?.tanggal_2).locale("id").format("dddd")}, tanggal&nbsp;{moment(tanggal_2 || this.state?.tanggal_2).format("D")}&nbsp; bulan &nbsp;{moment(tanggal_2 || this.state?.tanggal_2).format("MMMM")} tahun &nbsp;{moment(tanggal_2 || this.state?.tanggal_2).format("YYYY")},</span> :
+                                        <span onClick={this.isEditTanggal_2}><strong>&nbsp;[Mohon Diisi] &nbsp;</strong></span>
                                     }
                                 </li>
                                 <li>Telah dilakukan pembahasan rekomendasi mengenai fakta-fakta yang ditemukan Tim EKPT Ditjen Diktiristek, dengan temuan sebagai berikut:</li>

+ 14 - 4
components/Sanksi/SuratBA _detail.js

@@ -84,11 +84,21 @@ class ComponentBA extends React.Component {
 
                         <ol className='mt-3'>
                             <li>Telah dibacakan Berita Acara Evaluasi Kinerja Perguruan Tinggi  {this.state.dataSanksi.data && (<span>{this.state.dataSanksi.data.laporan.pt.nama}</span>)}, tanggal
-                                {this.state?.setTanggal === true ?
-                                    <span> &nbsp;{moment(this.state?.tanggal).format("DD-MM-YYYY")}</span>
-                                    :
-                                    <span> &nbsp;....... &nbsp;</span>
+                                {this.state?.setTanggal_2 === true ? (
+
+                                    this.state?.setTanggal_2 === true ?
+                                        <span> &nbsp;{moment(this.state?.tanggal_2).format("DD-MM-YYYY")}</span>
+                                        :
+                                        <span> &nbsp;....... &nbsp;</span>
+                                )
+                                    : (
+                                        this.state?.setTanggal === true ?
+                                            <span> &nbsp;{moment(this.state?.tanggal).format("DD-MM-YYYY")}</span>
+                                            :
+                                            <span> &nbsp;....... &nbsp;</span>
+                                    )
                                 }
+
                             </li>
                             <li>Telah dilakukan pembahasan rekomendasi mengenai fakta-fakta yang ditemukan Tim EKPT Ditjen Diktiristek, dengan temuan sebagai berikut:</li>
                         </ol>

+ 2 - 2
components/Sanksi/SuratBA_A.js

@@ -75,8 +75,8 @@ class ComponentToPrint extends React.Component {
 
                         <ol className='mt-3'>
                             <li>Telah dibacakan Berita Acara Evaluasi Kinerja Perguruan Tinggi  {dataLaporan.data && (<span>{dataLaporan.data.pt.nama}</span>)}, tanggal
-                                {dataSuratBA?.setTanggal === true || this.state?.setTanggal === true ?
-                                    <span> &nbsp;{moment(dataSuratBA?.tanggal || this.state?.tanggal).format("DD-MM-YYYY")}</span>
+                                {dataSuratBA?.setTanggal_2 === true || this.state?.setTanggal_2 === true ?
+                                    <span> &nbsp;{moment(dataSuratBA?.tanggal_2 || this.state?.tanggal_2).format("DD-MM-YYYY")}</span>
                                     :
                                     <span> &nbsp;....... &nbsp;</span>
                                 }

+ 1 - 0
env.js

@@ -1,3 +1,4 @@
 // export const TOKEN=77aecfec-10ac-3b4f-ab59-3fbfbeed6324
 export const API_URL = "http://localhost:5000/v1";
+export const ENV = "development"
 //export const API_URL = "https://dev.api.sidali.kemdikbud.go.id/v1";

+ 71 - 50
pages/app/sanksi/proses.js

@@ -23,6 +23,7 @@ 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";
 
 
 
@@ -42,6 +43,7 @@ class ProsesSanksi extends Component {
 			pelaporan: {},
 			listSanksi: [],
 			loading: false,
+			localSuccess: false
 		};
 	}
 
@@ -69,61 +71,78 @@ class ProsesSanksi extends Component {
 		const { dataSuratBA, dataUpload } = this.state
 		await inputAutoSave({ data: { PenetapanSanksi: { dataSuratBA, dataUpload, dataPelanggaran: data, activeStep } }, token, id, laporan: true })
 	}
-	done = async (e) => {
-		const getToken = await getCsrf();
-		const _csrf = getToken.token;
-		const toastid = toast.loading("Please wait...");
+
+	done = async () => {
 		this.setState({
 			loading: true
 		})
-		// 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);
-			});
+		const sanksi = await this.tambahSanksi()
+		if (sanksi && ENV === "production") {
+			await this.updatePddikti(sanksi.data._id)  //kirim sanksiID ke function updatePDDIKTI
 		}
-		if (this.state.dataUpload.filesTandaTerimaSS && this.state.dataUpload.filesTandaTerimaSS.length > 0) {
-			this.state.dataUpload.filesTandaTerimaSS.forEach((e) => {
-				formdata.append("dokumen_terima_sanksi", e);
-			});
+
+		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: "Success Updating PDDIKTI", type: "success", isLoading: false, autoClose: true, closeButton: true });
+
 		}
-		// if (this.state.dataUpload.filesBeritaAcara && this.state.dataUpload.filesBeritaAcara.length > 0) {
-		// 	this.state.dataUpload.filesBeritaAcara.forEach((e) => {
-		// 		formdata.append("berita_acara", e);
-		// 	});
-		// }
-
-		const sanksi = await createSanksi(token, id, formdata, _csrf);
-		if (!sanksi) {
-			toast.update(toastid, { render: "Error", type: "error", isLoading: false, autoClose: true, closeButton: true });
-		} else {
-			toast.update(toastid, { render: "Success", type: "success", isLoading: false, autoClose: true, closeButton: true });
-			// Router.push("/app/perpanjangan-sanksi");
+
+		catch (error) {
+			toast.update(toastPddikti, { render: ("Error Updating PDDIKTI"), type: "error", isLoading: false, autoClose: true, closeButton: true });
 		}
-		const getToken2 = await getCsrf();
-		const _csrf2 = getToken2.token;
-		await updatePddikti(token, sanksi.data._id, _csrf2)
-		// 	toast.update(toastid, { render: "All is good", type: "success", isLoading: false, autoClose: true, closeButton: true });
-		// 	console.log("Oncreate")
-
-		// 	Router.push({
-		// 		pathname: "/app/sanksi",
-		// 	});
-		// } catch (error) {
-		// 	toast.update(toastid, { render: (error.request.message), type: "error", isLoading: false, autoClose: true, closeButton: true });
-		// }
-	};
+
+	}
+	tambahSanksi = async () => {
+		const getToken = await getCsrf();
+		const _csrf = getToken.token;
+		const toastid = toast.loading("Please wait...");
+		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.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.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: "Success Updating Local", 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
+		}
+
+	}
+
 
 
 	handleDelegasi = async (data) => {
@@ -429,7 +448,9 @@ class ProsesSanksi extends Component {
 												<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.done} disabled={this.state.loading}>
+												<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>