yazid138 hace 3 años
padre
commit
d716104b58

+ 0 - 4
actions/pelaporan.js

@@ -5,10 +5,6 @@ export const getPelaporan = async (query = {}) => {
 		let url = "http://localhost:5000/pelaporan";
 		if (query.ptId && query.number) {
 			url += `?number=${query.number}&ptId=${query.ptId}`;
-		} else if (query.penjadwalan) {
-			url += "?penjadwalan=true";
-		} else if (query.pemeriksaan) {
-			url += "?pemeriksaan=true";
 		}
 		const res = await fetch(url);
 		return await res.json();

+ 4 - 4
actions/pemeriksaan.js

@@ -1,19 +1,19 @@
 import { addLog } from "./log";
 
-export const insertPemeriksaan = async ({ number, ptId }, data) => {
+export const insertPemeriksaan = async (data) => {
 	try {
 		const requestOptions = {
 			method: "POST",
 			body: data,
 		};
 
-		const res = await fetch(`http://localhost:5000/pelaporan/pemeriksaan/create?number=${number}&ptId=${ptId}`, requestOptions);
+		const res = await fetch(`http://localhost:5000/pelaporan/pemeriksaan/create`, requestOptions);
 		const result = await res.json();
-		addLog({ status: "SUCCESS", action: "ADD", from: { id: result.added._id, data: "pemeriksaan" }, description: "menambah evaluasi" });
+		// addLog({ status: "SUCCESS", action: "ADD", from: { id: result.added._id, data: "pemeriksaan" }, description: "menambah evaluasi" });
 		return result;
 	} catch (error) {
 		console.log("error", error);
-		addLog({ status: "FAIL", action: "ADD", from: { data: "pemeriksaan" }, description: error.message || "menambah evaluasi" });
+		// addLog({ status: "FAIL", action: "ADD", from: { data: "pemeriksaan" }, description: error.message || "menambah evaluasi" });
 		return false;
 	}
 };

+ 40 - 3
actions/penjadwalan.js

@@ -1,6 +1,6 @@
 import { addLog } from "./log";
 
-export const updateJadwal = async ({ number, ptId }, data) => {
+export const updateJadwal = async (data) => {
 	try {
 		const myHeaders = new Headers();
 		myHeaders.append("Content-Type", "application/json");
@@ -13,9 +13,9 @@ export const updateJadwal = async ({ number, ptId }, data) => {
 			headers: myHeaders,
 		};
 
-		const updated = await fetch(`http://localhost:5000/pelaporan/jadwal/add?number=${number}&ptId=${ptId}`, requestOptions);
+		const updated = await fetch(`http://localhost:5000/pelaporan/jadwal/add`, requestOptions);
 		const result = await updated.json();
-		addLog({ status: "SUCCESS", action: "UPDATE", from: { id: result.added._id, data: "penjadwalan" }, description: "mengubah jadwal pemeriksaan" });
+		// addLog({ status: "SUCCESS", action: "UPDATE", from: { id: result.added._id, data: "penjadwalan" }, description: "mengubah jadwal pemeriksaan" });
 		return result;
 	} catch (error) {
 		console.log("error", error);
@@ -23,3 +23,40 @@ export const updateJadwal = async ({ number, ptId }, data) => {
 		return false;
 	}
 };
+
+export const updateJadwal2 = async (id, data) => {
+	try {
+		const myHeaders = new Headers();
+		myHeaders.append("Content-Type", "application/json");
+
+		const raw = JSON.stringify(data);
+
+		const requestOptions = {
+			method: "POST",
+			body: raw,
+			headers: myHeaders,
+		};
+
+		const updated = await fetch(`http://localhost:5000/pelaporan/jadwal/add/${id}`, requestOptions);
+		const result = await updated.json();
+		// addLog({ status: "SUCCESS", action: "UPDATE", from: { id: result.added._id, data: "penjadwalan" }, description: "mengubah jadwal pemeriksaan" });
+		return result;
+	} catch (error) {
+		console.log("error", error);
+		addLog({ status: "FAIL", action: "UPDATE", from: { data: "penjadwalan" }, description: error.message || "mengubah jadwal pemeriksaan" });
+		return false;
+	}
+};
+
+export const getJadwal = async () => {
+	try {
+		const updated = await fetch(`http://localhost:5000/pelaporan/jadwal`);
+		const result = await updated.json();
+		// addLog({ status: "SUCCESS", action: "UPDATE", from: { id: result.added._id, data: "penjadwalan" }, description: "mengubah jadwal pemeriksaan" });
+		return result;
+	} catch (error) {
+		console.log("error", error);
+		// addLog({ status: "FAIL", action: "UPDATE", from: { data: "penjadwalan" }, description: error.message || "mengubah jadwal pemeriksaan" });
+		return false;
+	}
+};

+ 11 - 5
components/Extras/calendar.view.js

@@ -2,7 +2,7 @@ import React, { Component } from "react";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
 import { Card, CardBody, CardHeader, CardTitle } from "reactstrap";
 import { getPelaporan } from "@/actions/pelaporan";
-import { updateJadwal } from "@/actions/penjadwalan";
+import { updateJadwal, updateJadwal2 } from "@/actions/penjadwalan";
 import DetailLaporan from "@/components/Penjadwalan/DetailLaporan";
 import Link from "next/link";
 import FullCalendar from "@fullcalendar/react";
@@ -96,16 +96,22 @@ class Calendar extends Component {
 	};
 
 	handleEventCalendar = async ({ event }) => {
-		const number = this.props.query.number;
-		const ptId = this.props.query.ptId;
 		const data = {
+			pelaporan: this.state.laporan._id,
 			title: event.title,
 			from_date: event.start,
 			to_date: event.end || event.start,
 			background_color: event.backgroundColor,
 		};
-
-		const update = await updateJadwal({ number, ptId }, data);
+		if (this.state.laporan.penjadwalan) {
+			const update = await updateJadwal2(this.state.laporan.penjadwalan._id, data);
+			console.log(update);
+		} else {
+			const update = await updateJadwal(data);
+			const tes = await getPelaporan({ number: this.props.query.number, ptId: this.props.query.ptId });
+			this.setState({ laporan: tes.data[0] });
+			console.log(update);
+		}
 	};
 
 	handleChangeSelect = (selectedOption) => {

+ 104 - 31
components/Main/TableLaporan.js

@@ -4,6 +4,7 @@ import Link from "next/link";
 import moment from "moment";
 
 function TableLaporan({ listData, to, linkName, status = false }) {
+	const data = listData;
 	return (
 		<div className="card b">
 			<div className="card-body">
@@ -19,39 +20,111 @@ function TableLaporan({ listData, to, linkName, status = false }) {
 							</tr>
 						</thead>
 						<tbody>
-							{listData.map((data) => {
-								return (
-									<tr key={data._id}>
-										<td>{data._number}</td>
-										<td className="text-nowrap">
-											<div className="media align-items-center">
-												<div className="media-body d-flex">
-													<div>
-														<h4 className="m-0">Universitas Satyagama</h4>
-														<p>{data.description}</p>
-													</div>
+							{Array.isArray(listData) ? (
+								listData.length ? (
+									listData.map((data) => {
+										if (data.pelaporan) {
+											return (
+												<tr key={data.pelaporan._id}>
+													<td>{data.pelaporan._number}</td>
+													<td className="text-nowrap">
+														<div className="media align-items-center">
+															<div className="media-body d-flex">
+																<div>
+																	<h4 className="m-0">Universitas Satyagama</h4>
+																	<p>{data.pelaporan.description}</p>
+																</div>
+															</div>
+														</div>
+													</td>
+													{status ? <td>{data.pelaporan.status}</td> : ""}
+													<td>{moment(data.pelaporan.createdAt).fromNow()}</td>
+													<td>
+														<div className="ml-auto">
+															<Link
+																href={{
+																	pathname: to,
+																	query: { ptId: data.pelaporan.pt_id, number: data.pelaporan._number },
+																}}
+															>
+																<Button color="primary" size="sm">
+																	{linkName}
+																</Button>
+															</Link>
+														</div>
+													</td>
+												</tr>
+											);
+										} else {
+											return (
+												<tr key={data._id}>
+													<td>{data._number}</td>
+													<td className="text-nowrap">
+														<div className="media align-items-center">
+															<div className="media-body d-flex">
+																<div>
+																	<h4 className="m-0">Universitas Satyagama</h4>
+																	<p>{data.description}</p>
+																</div>
+															</div>
+														</div>
+													</td>
+													{status ? <td>{data.status}</td> : ""}
+													<td>{moment(data.createdAt).fromNow()}</td>
+													<td>
+														<div className="ml-auto">
+															<Link
+																href={{
+																	pathname: to,
+																	query: { ptId: data.pt_id, number: data._number },
+																}}
+															>
+																<Button color="primary" size="sm">
+																	{linkName}
+																</Button>
+															</Link>
+														</div>
+													</td>
+												</tr>
+											);
+										}
+									})
+								) : (
+									""
+								)
+							) : listData ? (
+								<tr key={listData._id}>
+									<td>{listData._number}</td>
+									<td className="text-nowrap">
+										<div className="media align-items-center">
+											<div className="media-body d-flex">
+												<div>
+													<h4 className="m-0">Universitas Satyagama</h4>
+													<p>{listData.description}</p>
 												</div>
 											</div>
-										</td>
-										{status ? <td>{data.status}</td> : ""}
-										<td>{moment(data.createdAt).fromNow()}</td>
-										<td>
-											<div className="ml-auto">
-												<Link
-													href={{
-														pathname: to,
-														query: { ptId: data.pt_id, number: data._number },
-													}}
-												>
-													<Button color="primary" size="sm">
-														{linkName}
-													</Button>
-												</Link>
-											</div>
-										</td>
-									</tr>
-								);
-							})}
+										</div>
+									</td>
+									{status ? <td>{listData.status}</td> : ""}
+									<td>{moment(listData.createdAt).fromNow()}</td>
+									<td>
+										<div className="ml-auto">
+											<Link
+												href={{
+													pathname: to,
+													query: { ptId: listData.pt_id, number: listData._number },
+												}}
+											>
+												<Button color="primary" size="sm">
+													{linkName}
+												</Button>
+											</Link>
+										</div>
+									</td>
+								</tr>
+							) : (
+								""
+							)}
 						</tbody>
 					</table>
 				</Datatable>

+ 2 - 2
components/Pemeriksaan/InputEvaluasi.js

@@ -85,8 +85,8 @@ export default class InputEvaluasi extends Component {
 
 	onSubmit = async (e) => {
 		e.preventDefault();
-		const { number, ptId } = this.props.query;
 		const formdata = new FormData();
+		formdata.append("penjadwalan", this.props.id);
 		formdata.append("title", this.state.judulEvaluasi);
 		formdata.append("date", this.state.tanggal);
 		if (this.state.files.length > 0) {
@@ -95,7 +95,7 @@ export default class InputEvaluasi extends Component {
 			});
 		}
 
-		const inserted = await insertPemeriksaan({ number, ptId }, formdata);
+		const inserted = await insertPemeriksaan(formdata);
 		if (inserted) {
 			Router.push({
 				pathname: "/app/pemeriksaan",

+ 5 - 5
pages/app/pemeriksaan/index.js

@@ -1,7 +1,7 @@
 import React, { Component } from "react";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
 import { Row, Col } from "reactstrap";
-import { getPelaporan } from "@/actions/pelaporan";
+import { getJadwal } from "@/actions/penjadwalan";
 import CaseProgress from "@/components/Main/CaseProgress";
 import TableLaporan from "@/components/Main/TableLaporan";
 
@@ -11,12 +11,12 @@ class Pemeriksaan extends Component {
 	}
 
 	static getInitialProps = async () => {
-		const pelaporan = await getPelaporan({ penjadwalan: true });
-		return { pelaporan };
+		const jadwal = await getJadwal();
+		return { jadwal };
 	};
 
 	render() {
-		const { pelaporan } = this.props;
+		const { jadwal } = this.props;
 		return (
 			<ContentWrapper>
 				<div className="content-heading">Evaluasi</div>
@@ -25,7 +25,7 @@ class Pemeriksaan extends Component {
 						<CaseProgress />
 					</Col>
 					<Col lg="8">
-						<TableLaporan listData={pelaporan.data} to="/app/pemeriksaan/new" linkName="Detail" status />
+						<TableLaporan listData={jadwal.data} to="/app/pemeriksaan/new" linkName="Detail" status/>
 					</Col>
 				</Row>
 			</ContentWrapper>

+ 1 - 1
pages/app/pemeriksaan/new.js

@@ -37,7 +37,7 @@ class PemeriksaanNew extends Component {
 									<Row>
 										<Col lg={12}>
 											<DetailLaporan data={pelaporan.data[0]} />
-											<InputEvaluasi query={query} />
+											<InputEvaluasi query={query} id={pelaporan.data[0].penjadwalan._id} />
 										</Col>
 									</Row>
 								</CardBody>

+ 5 - 5
pages/app/sanksi/index.js

@@ -1,7 +1,7 @@
 import React, { Component } from "react";
 import ContentWrapper from "@/components/Layout/ContentWrapper";
 import { Row, Col } from "reactstrap";
-import { getPelaporan } from "@/actions/pelaporan";
+import { getJadwal } from "@/actions/penjadwalan";
 import CaseProgress from "@/components/Main/CaseProgress";
 import TableLaporan from "@/components/Sanksi/TableLaporan";
 
@@ -11,12 +11,12 @@ class Sanksi extends Component {
 	}
 
 	static getInitialProps = async () => {
-		const pelaporan = await getPelaporan({ pemeriksaan: true });
-		return { pelaporan };
+		const jadwal = await getJadwal();
+		return { jadwal };
 	};
 
 	render() {
-		const { pelaporan } = this.props;
+		const { jadwal } = this.props;
 		return (
 			<ContentWrapper>
 				<div className="content-heading">Sanksi</div>
@@ -25,7 +25,7 @@ class Sanksi extends Component {
 						<CaseProgress />
 					</Col>
 					<Col lg="8">
-						<TableLaporan listData={pelaporan.data} />
+						<TableLaporan listData={jadwal.data} linkName="Detail" />
 					</Col>
 				</Row>
 			</ContentWrapper>