Эх сурвалжийг харах

Meeting DIKTI 31/05/2023
1. Hasil update status ke PDDikti : ✅
Done - 10 Mei 2023. tidak ada perubahan di UI, proses dilakukan pada saat sanksi disimpan. pending release

2. Mesti simulasi di dev untuk penetapan sanksi dan hasil nya di lihat di pddikti (UAT) hasil baru release production

3.* Follow up issue universitas Tanggerang ✅

4.* Bug and issue finding by Ismi (on progress)

5. Issue 19 May 2023 : Dev Disk space 100% usage, Pengajuan penambahan disk space & ram
Action Taken :
5.1. Cleaning up from repository by Rizky, current usage 60%, rollback version in 1 month period (approximate 10 version)
5.2. Checking on production 38%
5.3. Capacity Planning Disk : 1 version build = 1 GB for front end, total size needed for 6 month rollback version (approximate 50 version) 50 GB needed

6. BA Diluar Modul Sanksi : masih menunggu data dari bang ipul...untuk sanksi2 lama

7. WA reminder, masa berlaku sanksi akan habis di production. Pengajuan baru untuk kebutuhan ini

8. edit isian di BA pleno no. 3,4,5, urgent pake tombol hapus ✅

9. Terhitung Mulai Tanggal = TMT, masa berlaku sanksi, 7 hari sebelum masa habis

10. Tanggal Terima Surat Sanksi <=> pengaruh ke keberatan

11. Untuk issue Univ Tangerang via database, langsung ke dokumen perbaikan (sudah di tambahin field Dan sudah di fixing ke semua laporan dengan manggil API nya pakai nodered #yazid)

12. Menghapus menu dokumen perbaikan dan menggabungkan proses itu kepada menu sanksi, bisa dihilangkan dengan action tambahan sbb :
1. Kolom Keterangan Sanksi dihilangkan✅
2. diksi Nomor Sanksi menjadi Nomor Surat Sanksi✅
3. Ditambahkan keterangan di bawah status, yang menerangkan arti dari status✅

---------------------------- Terlampir ------------------------------------

3. Follow up issue universitas Tanggerang
Case: nomor sanksi 0052/E/DT.03.09/2023 Universitas Tanggerang
Laporan: data terkunci di permohonan keberatan

Perbaikan:
1. Dokumentasi setiap tanggal yang ada pada penetapan sanksi
• "Tanggal Dibuat Laporan" : tanggal saat dibuatnya laporan✅
• "Tanggal Penetapan Sanksi" : tanggal saat sanksi ditetapkan / dikirim kepada PT✅
• "Tanggal Akhir Pengajuan Keberatan" : tanggal hari terakhir PT dapat mengajukan permohonan keberatan✅
• "Tanggal Akhir Pengajuan Banding" : tanggal hari terakhir PT dapat mengajukan permohonan banding✅
2. Akhir permohonan keberatan wajib diisi (ada notifikasi jika tidak diisi) ✅
3. Mencantumkan tanggal akhir permohonan keberatan pada detail sanksi✅
4. Tanggal penetapan sanksi tetep ada walaupun TMT diisi✅
5. Tambahkan keterangan per tanggal berapa ia berakhir ✅
6. Jika sudah hangus masa permohonan (keberatan / banding) maka statusnya 'dokumen perbaikan'✅
7. Diksi menu 'Sanksi' diganti jadi 'Proses Sanksi' (khusus LOGIN PT) ✅
---- Saran & Waiting Approval DIKTI----
1. Menghapus menu dokumen perbaikan dan menggabungkan proses itu kepada menu sanksi APPROVED

4. Bug and issue finding by Ismi
1. Posisi "Tanggal Laporan" ada diatas "Nomor Laporan" biar informasinya berurutan ✅
2. Keterangan di notifikasinya gagal, tapi laporan masuk ✅
3. Jika gagal kirim laporan dan publik tidak mengisi no telp, maka keterangan pada notifikasinya "laporan tidak terkirim" ✅
4. Indikator loading saat proses mengirim laporan✅
5. Button 'Delegasi ke LLDIKTI' tidak ada, padahal sanksi berat tidak ada yg di ceklis ✅
6. Jika mengisi TMT maka 'tanggal dari - tanggal sampai' wajib diisi keduanya, kondisi sekarang salah satu bisa diisi dan bisa melanjutkan ke tahap selanjutnya✅

Revisi 08/06/2023
1. Diksi form "Akhir Permohonan Keberatan Sanksi" menjadi "Tanggal Akhir Pengajuan Keberatan"✅
2. Diksi form "Akhir Permohonan Banding" menjadi "Tanggal Akhir Pengajuan Banding"✅

andi 2 жил өмнө
parent
commit
31d0ada5de

+ 6 - 6
components/Delegasi/DetailLaporan.js

@@ -79,6 +79,12 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
                 </div>
                 </div>
             )}
             )}
             <form className="form-horizontal">
             <form className="form-horizontal">
+                <FormGroup row>
+                    <Col md="4">Tanggal Dibuat Laporan:</Col>
+                    <Col md="8">
+                        <strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+                    </Col>
+                </FormGroup>
                 <FormGroup row>
                 <FormGroup row>
                     <Col md="4">Nomor Laporan:</Col>
                     <Col md="4">Nomor Laporan:</Col>
                     <Col md="8">
                     <Col md="8">
@@ -111,12 +117,6 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
                         </Scrollable>
                         </Scrollable>
                     </Col>
                     </Col>
                 </FormGroup>
                 </FormGroup>
-                <FormGroup row>
-                    <Col md="4">Dibuat Pada:</Col>
-                    <Col md="8">
-                        <strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
-                    </Col>
-                </FormGroup>
                 {!noStatus && data.aktif ? (
                 {!noStatus && data.aktif ? (
                     <FormGroup row>
                     <FormGroup row>
                         <Col md="4">Status:</Col>
                         <Col md="4">Status:</Col>

+ 1 - 1
components/Layout/Footer.js

@@ -7,7 +7,7 @@ class Footer extends Component {
         return (
         return (
             <footer className="footer-container">
             <footer className="footer-container">
                 <span>Sidali Dikti &copy; {year}</span>
                 <span>Sidali Dikti &copy; {year}</span>
-                <span className=' float-right'>Version 2.20 ~ 2.21</span>
+                <span className=' float-right'>Version 2.24 ~ 2.21</span>
             </footer>
             </footer>
         );
         );
     }
     }

+ 7 - 6
components/Main/DetailLaporan.js

@@ -79,6 +79,12 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 				</div>
 				</div>
 			)}
 			)}
 			<form className="form-horizontal">
 			<form className="form-horizontal">
+				<FormGroup row>
+					<Col md="4">Tanggal Dibuat Laporan:</Col>
+					<Col md="8">
+						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+					</Col>
+				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="8">
 					<Col md="8">
@@ -111,12 +117,7 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 						</Scrollable>
 						</Scrollable>
 					</Col>
 					</Col>
 				</FormGroup>
 				</FormGroup>
-				<FormGroup row>
-					<Col md="4">Tanggal Laporan:</Col>
-					<Col md="8">
-						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
-					</Col>
-				</FormGroup>
+
 				{!noStatus && data.aktif ? (
 				{!noStatus && data.aktif ? (
 					<FormGroup row>
 					<FormGroup row>
 						<Col md="4">Status:</Col>
 						<Col md="4">Status:</Col>

+ 2 - 2
components/Main/DetailSanksi.js

@@ -38,7 +38,7 @@ function DetailSanksi({ data, noTitle = false }) {
 				{
 				{
 					data.tanggal_akhir_keberatan &&
 					data.tanggal_akhir_keberatan &&
 					<FormGroup row>
 					<FormGroup row>
-						<Col md="4">Tanggal Akhir keberatan:</Col>
+						<Col md="4">Tanggal Akhir Pengajuan Keberatan</Col>
 						<Col md="8">
 						<Col md="8">
 							<strong>{moment(data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>
 							<strong>{moment(data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>
 						</Col>
 						</Col>
@@ -47,7 +47,7 @@ function DetailSanksi({ data, noTitle = false }) {
 				{
 				{
 					data.jawaban?.keberatan?.tanggal_akhir_banding &&
 					data.jawaban?.keberatan?.tanggal_akhir_banding &&
 					<FormGroup row>
 					<FormGroup row>
-						<Col md="4">Tanggal Akhir Banding:</Col>
+						<Col md="4">Tanggal Akhir Pengajuan Banding:</Col>
 						<Col md="8">
 						<Col md="8">
 							<strong>{moment(data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>
 							<strong>{moment(data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>
 						</Col>
 						</Col>

+ 5 - 22
components/PT/Sanksi/TableSanksi.js

@@ -9,8 +9,8 @@ function TableSanksi({ listData, to, linkName, toKeberatan, toJwbBanding, toJwbK
 				<Table className="table w-100">
 				<Table className="table w-100">
 					<thead>
 					<thead>
 						<tr>
 						<tr>
-							<th>Nomor Sanksi</th>
-							<th>Keterangan Sanksi</th>
+							<th>Nomor Surat Sanksi</th>
+							{/* <th>Keterangan Sanksi</th> */}
 							{/* <th>Created</th> */}
 							{/* <th>Created</th> */}
 							<th>Status</th>
 							<th>Status</th>
 						</tr>
 						</tr>
@@ -30,7 +30,7 @@ function TableSanksi({ listData, to, linkName, toKeberatan, toJwbBanding, toJwbK
 											</div>
 											</div>
 										</div>
 										</div>
 									</td>
 									</td>
-									<td>
+									{/* <td>
 										<div className="table-desc">
 										<div className="table-desc">
 											<div className="media align-items-center">
 											<div className="media align-items-center">
 												<div className="media-body d-flex">
 												<div className="media-body d-flex">
@@ -41,26 +41,9 @@ function TableSanksi({ listData, to, linkName, toKeberatan, toJwbBanding, toJwbK
 												</div>
 												</div>
 											</div>
 											</div>
 										</div>
 										</div>
-									</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">{data.last_step}</div> : <div className="badge badge-red">Belum Diperiksa</div>}</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">
-													{linkName}
-												</span>
-											</Button>
-										</Link>
-									}
 									</td> */}
 									</td> */}
+									<td>{data.is_pengajuan_keberatan === true || data.is_pengajuan_keberatan === false ? <div className="badge badge-green">{data.last_step}</div> : <div className="badge badge-red">Belum Diperiksa</div>}</td>
+
 									{new Date(data.tanggal_akhir_keberatan).getTime() + 86400000 > Date.now() ? (
 									{new Date(data.tanggal_akhir_keberatan).getTime() + 86400000 > Date.now() ? (
 										<td>
 										<td>
 											{data.last_step === "Permohonan Keberatan" && (
 											{data.last_step === "Permohonan Keberatan" && (

+ 2 - 16
components/PT/TableSanksi.js

@@ -9,8 +9,8 @@ function TableSanksi({ listData, to, linkName }) {
 				<Table className="table w-100">
 				<Table className="table w-100">
 					<thead>
 					<thead>
 						<tr>
 						<tr>
-							<th>Nomor Sanksi</th>
-							<th>Keterangan Sanksi</th>
+							<th>Nomor Surat Sanksi</th>
+							{/* <th>Keterangan Sanksi</th> */}
 							{/* <th>Created</th> */}
 							{/* <th>Created</th> */}
 							<th>Status</th>
 							<th>Status</th>
 						</tr>
 						</tr>
@@ -30,20 +30,6 @@ function TableSanksi({ listData, to, linkName }) {
 											</div>
 											</div>
 										</div>
 										</div>
 									</td>
 									</td>
-									<td>
-										<div className="table-desc">
-											<div className="media align-items-center">
-												<div className="media-body d-flex">
-													<div>
-														{/* <h4 className="m-0">{data.laporan.pt.nama}</h4> */}
-														<h4 className="m-0">{data.laporan.pt.nama.length > 64 ? data.laporan.pt.nama.substring(0, 64) + "..." : data.laporan.pt.nama}</h4>
-														{/* <p className="w-105">{data.keterangan.length > 100 ? data.keterangan.substring(0, 100) + "..." : data.keterangan}</p> */}
-														<p className="w-105">{data.keterangan}</p>
-													</div>
-												</div>
-											</div>
-										</div>
-									</td>
 									{/* <td>{moment(data.createdAt).format("DD MMMM YYYY")}</td> */}
 									{/* <td>{moment(data.createdAt).format("DD MMMM YYYY")}</td> */}
 									<td>
 									<td>
 										<Link href={{ pathname: to, query: { id: data._id } }}>
 										<Link href={{ pathname: to, query: { id: data._id } }}>

+ 6 - 6
components/PelaporanTuntas/DetailLaporan.js

@@ -79,6 +79,12 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 				</div>
 				</div>
 			)}
 			)}
 			<form className="form-horizontal">
 			<form className="form-horizontal">
+				<FormGroup row>
+					<Col md="4">Tanggal Dibuat Laporan:</Col>
+					<Col md="8">
+						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+					</Col>
+				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="8">
 					<Col md="8">
@@ -111,12 +117,6 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 						</Scrollable>
 						</Scrollable>
 					</Col>
 					</Col>
 				</FormGroup>
 				</FormGroup>
-				<FormGroup row>
-					<Col md="4">Dibuat Pada:</Col>
-					<Col md="8">
-						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
-					</Col>
-				</FormGroup>
 				{!noStatus && data.aktif ? (
 				{!noStatus && data.aktif ? (
 					<FormGroup row>
 					<FormGroup row>
 						<Col md="4">Status:</Col>
 						<Col md="4">Status:</Col>

+ 6 - 6
components/Pemeriksaan/DetailLaporan.js

@@ -79,6 +79,12 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 				</div>
 				</div>
 			)}
 			)}
 			<form className="form-horizontal">
 			<form className="form-horizontal">
+				<FormGroup row>
+					<Col md="4">Tanggal Dibuat Laporan:</Col>
+					<Col md="8">
+						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+					</Col>
+				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="8">
 					<Col md="8">
@@ -111,12 +117,6 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 						</Scrollable>
 						</Scrollable>
 					</Col>
 					</Col>
 				</FormGroup>
 				</FormGroup>
-				<FormGroup row>
-					<Col md="4">Dibuat Pada:</Col>
-					<Col md="8">
-						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
-					</Col>
-				</FormGroup>
 				{!noStatus && data.aktif ? (
 				{!noStatus && data.aktif ? (
 					<FormGroup row>
 					<FormGroup row>
 						<Col md="4">Status:</Col>
 						<Col md="4">Status:</Col>

+ 6 - 6
components/Penjadwalan/DetailLaporan.js

@@ -79,6 +79,12 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 				</div>
 				</div>
 			)}
 			)}
 			<form className="form-horizontal">
 			<form className="form-horizontal">
+				<FormGroup row>
+					<Col md="4">Tanggal Dibuat Laporan:</Col>
+					<Col md="8">
+						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+					</Col>
+				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="4">Nomor Laporan:</Col>
 					<Col md="8">
 					<Col md="8">
@@ -111,12 +117,6 @@ function DetailLaporan({ data, noTitle = false, noStatus = false }) {
 						</Scrollable>
 						</Scrollable>
 					</Col>
 					</Col>
 				</FormGroup>
 				</FormGroup>
-				<FormGroup row>
-					<Col md="4">Dibuat Pada:</Col>
-					<Col md="8">
-						<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
-					</Col>
-				</FormGroup>
 				{noStatus && data.aktif ? (
 				{noStatus && data.aktif ? (
 					<FormGroup row>
 					<FormGroup row>
 						<Col md="4">Status:</Col>
 						<Col md="4">Status:</Col>

+ 20 - 2
components/PerpanjanganSanksi/DetailSanksi.js

@@ -32,11 +32,29 @@ function DetailSanksi({ data, noTitle = false }) {
 						</Col>
 						</Col>
 					</FormGroup>
 					</FormGroup>
 					<FormGroup row>
 					<FormGroup row>
-						<Col md="4">Dibuat Pada:</Col>
+						<Col md="4">Tanggal Penetapan Sanksi:</Col>
 						<Col md="8">
 						<Col md="8">
-							<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+							<strong>{moment(data.masa_berlaku?.from_date).locale("id").format("D MMMM YYYY")}</strong>
 						</Col>
 						</Col>
 					</FormGroup>
 					</FormGroup>
+					{
+						data.tanggal_akhir_keberatan &&
+						<FormGroup row>
+							<Col md="4">Tanggal Akhir keberatan:</Col>
+							<Col md="8">
+								<strong>{moment(data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>
+							</Col>
+						</FormGroup>
+					}
+					{
+						data.jawaban?.keberatan?.tanggal_akhir_banding &&
+						<FormGroup row>
+							<Col md="4">Tanggal Akhir Banding:</Col>
+							<Col md="8">
+								<strong>{moment(data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>
+							</Col>
+						</FormGroup>
+					}
 					<FormGroup row>
 					<FormGroup row>
 						<Col md={12}>
 						<Col md={12}>
 							<div className="card b">
 							<div className="card b">

+ 20 - 2
components/RekomendasiDelegasi/DetailSanksi.js

@@ -33,11 +33,29 @@ function DetailSanksi({ data, noTitle = false }) {
 						</Col>
 						</Col>
 					</FormGroup>
 					</FormGroup>
 					<FormGroup row>
 					<FormGroup row>
-						<Col md="4">Dibuat Pada:</Col>
+						<Col md="4">Tanggal Penetapan Sanksi:</Col>
 						<Col md="8">
 						<Col md="8">
-							<strong>{moment(data.createdAt).format("D MMMM YYYY")}</strong>
+							<strong>{moment(data.masa_berlaku?.from_date).locale("id").format("D MMMM YYYY")}</strong>
 						</Col>
 						</Col>
 					</FormGroup>
 					</FormGroup>
+					{
+						data.tanggal_akhir_keberatan &&
+						<FormGroup row>
+							<Col md="4">Tanggal Akhir keberatan:</Col>
+							<Col md="8">
+								<strong>{moment(data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>
+							</Col>
+						</FormGroup>
+					}
+					{
+						data.jawaban?.keberatan?.tanggal_akhir_banding &&
+						<FormGroup row>
+							<Col md="4">Tanggal Akhir Banding:</Col>
+							<Col md="8">
+								<strong>{moment(data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>
+							</Col>
+						</FormGroup>
+					}
 					<FormGroup row>
 					<FormGroup row>
 						<Col md="4">Dokumen Sanksi:</Col>
 						<Col md="4">Dokumen Sanksi:</Col>
 						<Col md="8">
 						<Col md="8">

+ 80 - 5
components/Sanksi/BeritaAcara.js

@@ -197,10 +197,43 @@ class BeritaAcara extends Component {
             modalRemovePeserta: !this.state.modalRemovePeserta
             modalRemovePeserta: !this.state.modalRemovePeserta
         })
         })
     }
     }
+    removeTemuanLain = index => () => {
+        const temuanLain = this.state.temuanLain
+        const data = [...temuanLain]
+        data.splice(index, 1);
 
 
+        this.setState({
+            temuanLain: data,
+        }, this.setDataSuratBA()
+        );
+
+
+    }
+    removeMemberatkan = index => () => {
+        const memberatkan = this.state.memberatkan
+        const data = [...memberatkan]
+        data.splice(index, 1);
+
+        this.setState({
+            memberatkan: data,
+        }, this.setDataSuratBA()
+        );
+
+    }
+    removeMeringankan = index => () => {
+        const meringankan = this.state.meringankan
+        const data = [...meringankan]
+        data.splice(index, 1);
+
+        this.setState({
+            meringankan: data,
+        }, this.setDataSuratBA()
+        );
+
+    }
     render() {
     render() {
         const { dataLaporan, dataSuratBA, dataPelanggaran } = this.props
         const { dataLaporan, dataSuratBA, dataPelanggaran } = this.props
-        const { descPelanggaran, tanggal, setTanggal } = this.state
+        const { descPelanggaran, tanggal, setTanggal, temuanLain } = this.state
         return (
         return (
             <div>
             <div>
                 <Modal isOpen={this.state.modalRemovePeserta} >
                 <Modal isOpen={this.state.modalRemovePeserta} >
@@ -259,7 +292,7 @@ class BeritaAcara extends Component {
                         <p>
                         <p>
                             Pada hari ini
                             Pada hari ini
                             {dataSuratBA?.isEditTanggal &&
                             {dataSuratBA?.isEditTanggal &&
-                                <span style={{ textIndent:"0rem"}}>
+                                <span style={{ textIndent: "0rem" }}>
                                     <DatePicker
                                     <DatePicker
                                         selected={tanggal ? new Date(tanggal) : tanggal}
                                         selected={tanggal ? new Date(tanggal) : tanggal}
                                         onChange={(tanggal) => {
                                         onChange={(tanggal) => {
@@ -399,7 +432,21 @@ class BeritaAcara extends Component {
 
 
                                         : <Button onClick={this.isEditTemuanLain} className=" p-0 m-0" color="success">Input Data</Button>}
                                         : <Button onClick={this.isEditTemuanLain} className=" p-0 m-0" color="success">Input Data</Button>}
                                     <ol type="a">
                                     <ol type="a">
-                                        {dataSuratBA?.temuanLain?.map((value) => <li>{value}</li>) || this.state?.temuanLain?.map((value) => <li>{value}</li>)}
+                                        {
+                                            // dataSuratBA?.temuanLain?.map((value, index) =>
+                                            //     <li>
+                                            //         {value}
+                                            //         <button onClick={removeTemuanLain(index)} className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right"
+                                            //         />
+                                            //     </li>) ||
+                                            this.state?.temuanLain?.map((value, index) =>
+                                                <li>
+                                                    {value}
+                                                    <button onClick={
+                                                        this.removeTemuanLain(index)
+                                                    } className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right"
+                                                    />
+                                                </li>)}
                                     </ol>
                                     </ol>
                                 </li>
                                 </li>
                                 <li>Hal-hal yang memberatkan, sebagai berikut:
                                 <li>Hal-hal yang memberatkan, sebagai berikut:
@@ -412,7 +459,21 @@ class BeritaAcara extends Component {
 
 
                                         : <Button onClick={this.isEditKeberatan} className=" p-0 m-0" color="success">Input Data</Button>}
                                         : <Button onClick={this.isEditKeberatan} className=" p-0 m-0" color="success">Input Data</Button>}
                                     <ol type="a">
                                     <ol type="a">
-                                        {dataSuratBA?.memberatkan?.map((value) => <li>{value}</li>) || this.state?.memberatkan?.map((value) => <li>{value}</li>)}
+                                        {
+                                            // dataSuratBA?.memberatkan?.map((value) =>
+                                            //     <li>
+                                            //         {value}
+                                            //     </li>)
+                                            //     ||
+                                            this.state?.memberatkan?.map((value, index) =>
+                                                <li>
+                                                    {value}
+                                                    <button onClick={
+                                                        this.removeMemberatkan(index)
+                                                    } className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right"
+                                                    />
+                                                </li>
+                                            )}
                                     </ol>
                                     </ol>
                                 </li>
                                 </li>
                                 <li>hal-hal yang meringankan, sebagai berikut:
                                 <li>hal-hal yang meringankan, sebagai berikut:
@@ -425,7 +486,21 @@ class BeritaAcara extends Component {
 
 
                                         : <Button onClick={this.isEditMeringankan} className=" p-0 m-0" color="success">Input Data</Button>}
                                         : <Button onClick={this.isEditMeringankan} className=" p-0 m-0" color="success">Input Data</Button>}
                                     <ol type="a">
                                     <ol type="a">
-                                        {dataSuratBA?.meringankan?.map((value) => <li>{value}</li>) || this.state?.meringankan?.map((value) => <li>{value}</li>)}
+                                        {
+                                            // dataSuratBA?.meringankan?.map((value) =>
+                                            //     <li>
+                                            //         {value}
+                                            //     </li>)
+                                            //     ||
+                                            this.state?.meringankan?.map((value, index) =>
+                                                <li>
+                                                    {value}
+                                                    <button onClick={
+                                                        this.removeMeringankan(index)
+                                                    } className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right"
+                                                    />
+                                                </li>
+                                            )}
                                     </ol>
                                     </ol>
                                 </li>
                                 </li>
                                 <li>
                                 <li>

+ 0 - 1
components/Sanksi/Ringkasan.js

@@ -30,7 +30,6 @@ export class Ringkasan extends Component {
 
 
 	render() {
 	render() {
 		const { dataLaporan, dataPelanggaran, dataUpload } = this.props
 		const { dataLaporan, dataPelanggaran, dataUpload } = this.props
-		console.log(this.props)
 		return (
 		return (
 			<>
 			<>
 				<Row>
 				<Row>

+ 13 - 0
components/Sanksi/TablePenetapanSanksi.js

@@ -123,10 +123,23 @@ export class TablePenetapanSanksi extends Component {
 								)
 								)
 								}
 								}
 							</tbody>
 							</tbody>
+
 						</table>
 						</table>
 
 
+
 					</Datatable>
 					</Datatable>
+
 					}
 					}
+						{this.props.user?.role.id === 2020 ? (
+							labelSanksi.length && labelSanksi.filter((e) => e.labelSanksi === "Ringan" || e.labelSanksi === "Sedang").length === labelSanksi.length ? (
+								<Button className="btn-login float-right" color onClick={this.ondelegasi} >
+									<span className="font-color-white">
+										Delegasi ke LLDIKTI
+									</span>
+								</Button>
+							) : ("")
+						) : ("")
+						}
 
 
 				</div>
 				</div>
 			</div>
 			</div>

+ 63 - 89
components/Sanksi/UploadSurat.js

@@ -25,50 +25,13 @@ class DropzoneWrapper extends Component {
 		return Dropzone ? <Dropzone {...this.props}>{this.props.children}</Dropzone> : null;
 		return Dropzone ? <Dropzone {...this.props}>{this.props.children}</Dropzone> : null;
 	}
 	}
 }
 }
-
-const data = [
-	{
-		value: "Sanksi Administratif Sedang",
-		// label_sanksi: "- Sanksi Administratif ringan"
-	},
-	{
-		sanksi: "Penghentian Pembinaan PT",
-		value: "Penghentian Pembinaan PT",
-		label_sanksi: "- Sanksi Administratif Berat",
-	},
-	{
-		sanksi: "Pencabutan Izin Perguruan Tinggi Swasta",
-		value: "Pencabutan Izin Perguruan Tinggi Swasta",
-		label_sanksi: "- Sanksi Administratif Berat",
-	},
-	{
-		sanksi: "Penghentian Pembinaan Program Studi",
-		value: "Penghentian Pembinaan Program Studi",
-		label_sanksi: "- Sanksi Administratif Berat",
-	},
-	{
-		sanksi: "Pencabutan Izin Program Studi",
-		value: "Pencabutan Izin Program Studi",
-		label_sanksi: "- Sanksi Administratif Berat",
-	},
-	{
-		sanksi: "Pembubaran Perguruan Tinggi Negeri",
-		value: "Pembubaran Perguruan Tinggi Negeri",
-		label_sanksi: "- Sanksi Administratif Berat",
-	},
-];
-
-// const listSanksi = data.map((d) => ({
-// 	value: d.value,
-// 	label: d.sanksi,
-// 	label_sanksi: d.label_sanksi,
-// }));
 const formatOptionLabel = ({ value, sanksi, label_sanksi }) => (
 const formatOptionLabel = ({ value, sanksi, label_sanksi }) => (
 	<div style={{ display: "flex" }}>
 	<div style={{ display: "flex" }}>
 		<span className="">{value}</span>
 		<span className="">{value}</span>
 		<div style={{ marginLeft: "10px", color: "#adaca8" }}>{label_sanksi}</div>
 		<div style={{ marginLeft: "10px", color: "#adaca8" }}>{label_sanksi}</div>
 	</div>
 	</div>
 );
 );
+
 export class UploadSurat extends Component {
 export class UploadSurat extends Component {
 	constructor(props) {
 	constructor(props) {
 		super(props);
 		super(props);
@@ -84,7 +47,6 @@ export class UploadSurat extends Component {
 			awalsanksi: "",
 			awalsanksi: "",
 			akhirsanksi: "",
 			akhirsanksi: "",
 			tmtCheck: false,
 			tmtCheck: false,
-			saveData: [],
 			terimaSuratSanksi: "",
 			terimaSuratSanksi: "",
 			tglAkhirKeberatan: "",
 			tglAkhirKeberatan: "",
 			filesTandaTerimaSS: [],
 			filesTandaTerimaSS: [],
@@ -110,7 +72,7 @@ export class UploadSurat extends Component {
 					preview: URL.createObjectURL(file),
 					preview: URL.createObjectURL(file),
 				})
 				})
 			),
 			),
-			stat: "Added " + filesTandaTerimaSS.length + " file(s)",
+			stat: "file tanda terima sanksi " + filesTandaTerimaSS.length + " file",
 		});
 		});
 		this.props.setUploadSuratSanksi(this.state);
 		this.props.setUploadSuratSanksi(this.state);
 	};
 	};
@@ -118,19 +80,11 @@ export class UploadSurat extends Component {
 	componentDidMount = async () => {
 	componentDidMount = async () => {
 		const { query, token } = this.props;
 		const { query, token } = this.props;
 		const { id } = query;
 		const { id } = query;
-		const getDataSave = await getAutoSave({ token, id, laporan: true });
-		const saveData = getDataSave.data?.penetapanSanksi;
-		this.setState(saveData)
+		// const getDataSave = await getAutoSave({ id, laporan: true });
+		// const autosaveDataUpload = getDataSave.data?.PenetapanSanksi?.dataUpload;
+		// this.setState(autosaveDataUpload)
 	}
 	}
 
 
-	// handleAutoSave = async () => {
-	// 	const { query, token } = this.props;
-	// 	const { id } = query;
-	// 	const { nomorSanksi, keterangan } = this.state
-	// 	const saveData = await inputAutoSave({ data: { penetapanSanksi: { nomorSanksi, keterangan } }, token, id, laporan: true })
-
-	// }
-
 	uploadFiles = (e) => {
 	uploadFiles = (e) => {
 		e.preventDefault();
 		e.preventDefault();
 		e.stopPropagation();
 		e.stopPropagation();
@@ -145,11 +99,9 @@ export class UploadSurat extends Component {
 		e.stopPropagation();
 		e.stopPropagation();
 		this.setState({
 		this.setState({
 			stat: this.state.files.length ? this.state.files.length + " file(s) cleared." : "No files to clear.",
 			stat: this.state.files.length ? this.state.files.length + " file(s) cleared." : "No files to clear.",
-			stat: this.state.filesBeritaAcara.length ? this.state.filesBeritaAcara.length + " file(s) cleared." : "No files to clear.",
 		});
 		});
 		this.setState({
 		this.setState({
 			files: [],
 			files: [],
-			filesBeritaAcara: [],
 		});
 		});
 		this.props.setUploadSuratSanksi(this.state);
 		this.props.setUploadSuratSanksi(this.state);
 	};
 	};
@@ -165,29 +117,49 @@ export class UploadSurat extends Component {
 		this.props.setUploadSuratSanksi(this.state);
 		this.props.setUploadSuratSanksi(this.state);
 	};
 	};
 
 
-	toRingkasan = () => {
+	// handleAutoSave = () => {
+	// 	this.props.handleAutoSave()
+	// }
+
+	setUploadSuratSanksi = () => {
 		this.props.setUploadSuratSanksi(this.state);
 		this.props.setUploadSuratSanksi(this.state);
 	};
 	};
 
 
 	setNomorSanksi = (e) => {
 	setNomorSanksi = (e) => {
-		this.setState({ nomorSanksi: e.target.value }, this.toRingkasan);
+		// this.setState({ nomorSanksi: e.target.value }, this.setUploadSuratSanksi);
+		this.state.nomorSanksi = e.target.value
+		this.setUploadSuratSanksi()
+		// this.handleAutoSave()
+
 	};
 	};
 
 
 	setKeterangan = (e) => {
 	setKeterangan = (e) => {
-		this.setState({ keterangan: e.target.value }, this.toRingkasan);
+		// this.setState({ keterangan: e.target.value }, this.setUploadSuratSanksi);
+		this.state.keterangan = e.target.value
+		this.setUploadSuratSanksi()
+		// this.handleAutoSave()
+	};
+	setAkhirSanksi = (akhirsanksi) => {
+		// this.setState({ keterangan: e.target.value }, this.setUploadSuratSanksi);
+		this.state.akhirsanksi = akhirsanksi
+		this.setUploadSuratSanksi()
+		// this.handleAutoSave()
 	};
 	};
 
 
 	setListSanksi = (ls) => {
 	setListSanksi = (ls) => {
-		this.setState({ listSanksi: ls.target.value }, this.toRingkasan);
+		this.setState({ listSanksi: ls.target.value }, this.setUploadSuratSanksi);
 	};
 	};
 	handleChangeListSanksi = (listSanksi) => {
 	handleChangeListSanksi = (listSanksi) => {
-		this.setState({ listSanksi }, this.toRingkasan);
+		this.setState({ listSanksi }, this.setUploadSuratSanksi);
 	};
 	};
 	handleTmtCheck = () => {
 	handleTmtCheck = () => {
-		this.setState({ tmtCheck: !this.state.tmtCheck }, this.toRingkasan);
+		// this.setState({ tmtCheck: !this.state.tmtCheck }, this.setUploadSuratSanksi);
+		this.state.tmtCheck = !this.state.tmtCheck
+		this.setUploadSuratSanksi()
+		// this.handleAutoSave()
 	}
 	}
 	render() {
 	render() {
-		const { files, filesBeritaAcara, terimaSuratSanksi, tglAkhirKeberatan, filesTandaTerimaSS, tmtCheck } = this.state;
+		const { files, terimaSuratSanksi, tglAkhirKeberatan, filesTandaTerimaSS, tmtCheck } = this.state;
 		const removeFile = file => () => {
 		const removeFile = file => () => {
 			const newFiles = [...files]
 			const newFiles = [...files]
 			newFiles.splice(newFiles.indexOf(file), 1)
 			newFiles.splice(newFiles.indexOf(file), 1)
@@ -217,15 +189,15 @@ export class UploadSurat extends Component {
 		return (
 		return (
 			<form className="form-horizontal" method="get" action="/" onSubmit={this.onSubmit}>
 			<form className="form-horizontal" method="get" action="/" onSubmit={this.onSubmit}>
 				<FormGroup row>
 				<FormGroup row>
-					<label className="col-md-2 col-form-label">Nomor Surat:</label>
+					<label className="col-md-2 col-form-label">Nomor Surat<span className="text-danger">*</span></label>
 					<div className="col-md-10">
 					<div className="col-md-10">
-						<Input type="text" value={this.state.nomorSanksi} onChange={(e) => { this.setNomorSanksi(e); this.props.handleAutoSave() }} />
+						<Input type="text" value={this.state.nomorSanksi} onChange={(e) => { this.setNomorSanksi(e) }} />
 					</div>
 					</div>
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row className="mt-3">
 				<FormGroup row className="mt-3">
-					<label className="col-md-2 col-form-label">Keterangan</label>
+					<label className="col-md-2 col-form-label">Keterangan<span className="text-danger">*</span></label>
 					<div className="col-md-10">
 					<div className="col-md-10">
-						<Input type="textarea" value={this.state.keterangan} onChange={(e) => { this.setKeterangan(e); this.props.handleAutoSave() }} required />
+						<Input type="textarea" value={this.state.keterangan} onChange={(e) => { this.setKeterangan(e) }} required />
 					</div>
 					</div>
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
@@ -233,7 +205,7 @@ export class UploadSurat extends Component {
 					<div className="col-md-10 mt-2">
 					<div className="col-md-10 mt-2">
 						<div className="checkbox c-checkbox">
 						<div className="checkbox c-checkbox">
 							<label>
 							<label>
-								<Input type="checkbox" onChange={this.handleTmtCheck} defaultChecked={this.state.tmtCheck} />
+								<Input type="checkbox" onChange={() => this.handleTmtCheck()} defaultChecked={this.state.tmtCheck} />
 								<span className="fa fa-check"></span></label>
 								<span className="fa fa-check"></span></label>
 						</div>
 						</div>
 					</div>
 					</div>
@@ -243,12 +215,12 @@ export class UploadSurat extends Component {
 						<label className="col-md-2 col-form-label">Tanggal Penetapan Sanksi</label>
 						<label className="col-md-2 col-form-label">Tanggal Penetapan Sanksi</label>
 						<span className="col-sm-3 float-left">
 						<span className="col-sm-3 float-left">
 							<DatePicker
 							<DatePicker
-								selected={this.state.awalsanksi}
+								selected={this.state.awalsanksi ? new Date(this.state.awalsanksi) : this.state.awalsanksi}
 								onChange={(awalsanksi) => {
 								onChange={(awalsanksi) => {
-									this.setState({ awalsanksi }, this.toRingkasan)
+									this.setState({ awalsanksi }, this.setUploadSuratSanksi)
 								}}
 								}}
 								dateFormat="dd/MM/yyyy"
 								dateFormat="dd/MM/yyyy"
-								maxDate={this.state.startDay}
+								maxDate={new Date(this.state.startDay)}
 								placeholderText="Isi Tanggal"
 								placeholderText="Isi Tanggal"
 								locale={id}
 								locale={id}
 								className="form-control bg-white"
 								className="form-control bg-white"
@@ -264,12 +236,12 @@ export class UploadSurat extends Component {
 								<FormGroup>
 								<FormGroup>
 									<span className="ml-3">
 									<span className="ml-3">
 										<DatePicker
 										<DatePicker
-											selected={this.state.awalsanksi}
+											selected={this.state.awalsanksi ? new Date(this.state.awalsanksi) : this.state.awalsanksi}
 											onChange={(awalsanksi) => {
 											onChange={(awalsanksi) => {
-												this.setState({ awalsanksi }, this.toRingkasan)
+												this.setState({ awalsanksi }, this.setUploadSuratSanksi)
 											}}
 											}}
 											dateFormat="dd/MM/yyyy"
 											dateFormat="dd/MM/yyyy"
-											maxDate={this.state.startDay}
+											maxDate={new Date(this.state.startDay)}
 											placeholderText="Dari Tanggal"
 											placeholderText="Dari Tanggal"
 											locale={id}
 											locale={id}
 											className="form-control bg-white"
 											className="form-control bg-white"
@@ -282,12 +254,13 @@ export class UploadSurat extends Component {
 								<FormGroup>
 								<FormGroup>
 									<span className="ml-3">
 									<span className="ml-3">
 										<DatePicker
 										<DatePicker
-											selected={this.state.akhirsanksi}
-											onChange={(akhirsanksi) => {
-												this.setState({ akhirsanksi }, this.toRingkasan)
-											}}
+											selected={this.state.akhirsanksi ? new Date(this.state.akhirsanksi) : this.state.akhirsanksi}
+											// onChange={(akhirsanksi, e) => {
+											// 	this.setState({ akhirsanksi }, this.setUploadSuratSanksi(e), this.props.handleAutoSave(e))
+											// }}
+											onChange={(akhirsanksi) => { this.setAkhirSanksi(akhirsanksi) }}
 											dateFormat="dd/MM/yyyy"
 											dateFormat="dd/MM/yyyy"
-											minDate={this.state.awalsanksi}
+											minDate={new Date(this.state.awalsanksi)}
 											maxDate={addMonths(new Date(this.state.awalsanksi), 6)}
 											maxDate={addMonths(new Date(this.state.awalsanksi), 6)}
 											placeholderText="Sampai tanggal"
 											placeholderText="Sampai tanggal"
 											locale={id}
 											locale={id}
@@ -320,8 +293,8 @@ export class UploadSurat extends Component {
 					<div className="col-md-10">
 					<div className="col-md-10">
 						<Select
 						<Select
 							options={this.props.listSanksi.map(e => ({ value: `Sanksi Administratif ${e.split(";")[0]} - ${e.split(";")[1]}` }))}
 							options={this.props.listSanksi.map(e => ({ value: `Sanksi Administratif ${e.split(";")[0]} - ${e.split(";")[1]}` }))}
-							formatOptionLabel={formatOptionLabel}
 							isMulti
 							isMulti
+							formatOptionLabel={formatOptionLabel}
 							onChange={(e) => {
 							onChange={(e) => {
 								this.handleChangeListSanksi(e);
 								this.handleChangeListSanksi(e);
 							}}
 							}}
@@ -330,7 +303,7 @@ export class UploadSurat extends Component {
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<label className="col-md-2 col-form-label">
 					<label className="col-md-2 col-form-label">
-						Dokumen Surat Sanksi<span>: &nbsp;</span><span className="text-danger">*</span>
+						Dokumen Surat Sanksi<span className="text-danger">*</span>
 					</label>
 					</label>
 					<div className="col-md-10">
 					<div className="col-md-10">
 						<DropzoneWrapper className="" onDrop={this.onDrop}>
 						<DropzoneWrapper className="" onDrop={this.onDrop}>
@@ -370,7 +343,7 @@ export class UploadSurat extends Component {
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<label className="col-md-2 col-form-label">
 					<label className="col-md-2 col-form-label">
-						Dokumen Laporan Evaluasi dan Pembahasan<span>: &nbsp;</span>
+						Dokumen Laporan Evaluasi dan Pembahasan
 					</label>
 					</label>
 					<div className="col-md-10">
 					<div className="col-md-10">
 
 
@@ -390,15 +363,15 @@ export class UploadSurat extends Component {
 					</div>
 					</div>
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row className="mt-3">
 				<FormGroup row className="mt-3">
-					<label className="col-md-2 col-form-label">Tanggal Terima Surat Sanksi</label>
+					<label className="col-md-2 col-form-label">Tanggal Terima Surat Sanksi<span className="text-danger">*</span></label>
 					<span className="col-sm-3 float-left">
 					<span className="col-sm-3 float-left">
 						<DatePicker
 						<DatePicker
-							selected={terimaSuratSanksi}
+							selected={this.state.terimaSuratSanksi ? new Date(this.state.terimaSuratSanksi) : this.state.terimaSuratSanksi}
 							onChange={(terimaSuratSanksi) => {
 							onChange={(terimaSuratSanksi) => {
-								this.setState({ terimaSuratSanksi }, this.toRingkasan)
+								this.setState({ terimaSuratSanksi }, this.setUploadSuratSanksi)
 							}}
 							}}
 							dateFormat="dd/MM/yyyy"
 							dateFormat="dd/MM/yyyy"
-							minDate={this.state.awalsanksi}
+							minDate={new Date(this.state.awalsanksi)}
 							placeholderText="Isi Tanggal"
 							placeholderText="Isi Tanggal"
 							locale={id}
 							locale={id}
 							className="form-control bg-white"
 							className="form-control bg-white"
@@ -407,7 +380,7 @@ export class UploadSurat extends Component {
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row>
 				<FormGroup row>
 					<label className="col-md-2 col-form-label">
 					<label className="col-md-2 col-form-label">
-						Dokumen Tanda Terima Surat Sanksi<span>: &nbsp;</span><span className="text-danger">*</span>
+						Dokumen Tanda Terima Surat Sanksi<span className="text-danger">*</span>
 					</label>
 					</label>
 					<div className="col-md-10">
 					<div className="col-md-10">
 						<DropzoneWrapper className="" onDrop={this.onDropTandaTerimaSS}>
 						<DropzoneWrapper className="" onDrop={this.onDropTandaTerimaSS}>
@@ -446,18 +419,19 @@ export class UploadSurat extends Component {
 					</div>
 					</div>
 				</FormGroup>
 				</FormGroup>
 				<FormGroup row className="mt-3">
 				<FormGroup row className="mt-3">
-					<label className="col-md-2 col-form-label">Akhir Permohonan Keberatan Sanksi
+					<label className="col-md-2 col-form-label">Tanggal Akhir Pengajuan Keberatan<span className="text-danger">*</span>
 						<p>
 						<p>
-							Note : 21 hari kerja						</p>
+							Note : 21 hari kerja
+						</p>
 					</label>
 					</label>
 					<span className="col-sm-3 float-left">
 					<span className="col-sm-3 float-left">
 						<DatePicker
 						<DatePicker
-							selected={tglAkhirKeberatan}
+							selected={this.state.tglAkhirKeberatan ? new Date(this.state.tglAkhirKeberatan) : this.state.tglAkhirKeberatan}
 							onChange={(tglAkhirKeberatan) => {
 							onChange={(tglAkhirKeberatan) => {
-								this.setState({ tglAkhirKeberatan }, this.toRingkasan)
+								this.setState({ tglAkhirKeberatan }, this.setUploadSuratSanksi)
 							}}
 							}}
 							dateFormat="dd/MM/yyyy"
 							dateFormat="dd/MM/yyyy"
-							minDate={terimaSuratSanksi}
+							minDate={new Date(terimaSuratSanksi)}
 							placeholderText="Isi Tanggal"
 							placeholderText="Isi Tanggal"
 							locale={id}
 							locale={id}
 							className="form-control bg-white"
 							className="form-control bg-white"

+ 1 - 1
pages/app/index.js

@@ -120,7 +120,7 @@ class App extends Component {
               </Col>
               </Col>
             </Row>
             </Row>
           </Jumbotron>
           </Jumbotron>
-          <span>Version 2.20 ~ 2.21</span>
+          <span>Version 2.24 ~ 2.21</span>
         </ContentWrapper>
         </ContentWrapper>
       </div>
       </div>
     );
     );

+ 8 - 8
pages/app/keberatan/detail.js

@@ -272,7 +272,7 @@ class DetailKeberatan extends Component {
 													{() => (
 													{() => (
 														<Form className="form-horizontal">
 														<Form className="form-horizontal">
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Status:</label>
+																<label className="row-form-label">Status :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="status">
 																	<Field name="status">
 																		{({ field, form, meta }) => (
 																		{({ field, form, meta }) => (
@@ -295,7 +295,7 @@ class DetailKeberatan extends Component {
 																</div>
 																</div>
 															</FormGroup>
 															</FormGroup>
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Keterangan:</label>
+																<label className="row-form-label">Keterangan :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="keterangan">{({ field }) => <Input type="textarea" {...field} />}</Field>
 																	<Field name="keterangan">{({ field }) => <Input type="textarea" {...field} />}</Field>
 																	<ErrorMessage name="keterangan" component="div" className="form-text text-danger" />
 																	<ErrorMessage name="keterangan" component="div" className="form-text text-danger" />
@@ -303,14 +303,14 @@ class DetailKeberatan extends Component {
 																</div>
 																</div>
 															</FormGroup>
 															</FormGroup>
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Nomor Surat Jawaban Atas Permohonan Keberatan:</label>
+																<label className="row-form-label">Nomor Surat Jawaban Atas Permohonan Keberatan :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="no_keberatan">{({ field }) => <Input type="text" {...field} />}</Field>
 																	<Field name="no_keberatan">{({ field }) => <Input type="text" {...field} />}</Field>
 																	<ErrorMessage name="no_keberatan" component="div" className="form-text text-danger" />
 																	<ErrorMessage name="no_keberatan" component="div" className="form-text text-danger" />
 																</div>
 																</div>
 															</FormGroup>
 															</FormGroup>
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Tanggal Surat Jawaban Atas Permohonan Keberatan :</label>
+																<label className="row-form-label">Tanggal Surat Jawaban Atas Permohonan Keberatan :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="tanggal_surat_keberatan">
 																	<Field name="tanggal_surat_keberatan">
 																		{({ field, form }) => (
 																		{({ field, form }) => (
@@ -332,7 +332,7 @@ class DetailKeberatan extends Component {
 																</div>
 																</div>
 															</FormGroup>
 															</FormGroup>
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Dokumen Jawaban Atas Permohonan Keberatan:</label>
+																<label className="row-form-label">Dokumen Jawaban Atas Permohonan Keberatan :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="dokumen">
 																	<Field name="dokumen">
 																		{({ field, form }) => (
 																		{({ field, form }) => (
@@ -383,7 +383,7 @@ class DetailKeberatan extends Component {
 															</FormGroup>
 															</FormGroup>
 
 
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Tanda Terima Surat Jawaban Permohonan Keberatan :</label>
+																<label className="row-form-label">Tanda Terima Surat Jawaban Permohonan Keberatan :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="tanggal_terima_keberatan">
 																	<Field name="tanggal_terima_keberatan">
 																		{({ field, form }) => (
 																		{({ field, form }) => (
@@ -407,7 +407,7 @@ class DetailKeberatan extends Component {
 															</FormGroup>
 															</FormGroup>
 
 
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Dokumen Tanda Terima Surat Jawaban Permohonan Keberatan:</label>
+																<label className="row-form-label">Dokumen Tanda Terima Surat Jawaban Permohonan Keberatan :<span className="text-danger">*</span></label>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="dokumen_terima_keberatan">
 																	<Field name="dokumen_terima_keberatan">
 																		{({ field, form }) => (
 																		{({ field, form }) => (
@@ -457,7 +457,7 @@ class DetailKeberatan extends Component {
 																</div>
 																</div>
 															</FormGroup>
 															</FormGroup>
 															<FormGroup>
 															<FormGroup>
-																<label className="row-form-label">Akhir Permohonan Banding : </label>
+																<label className="row-form-label">Tanggal Akhir Pengajuan Keberatan :<span className="text-danger">*</span> </label>
 																<p>Note : 21 hari kerja</p>
 																<p>Note : 21 hari kerja</p>
 																<div className="row-md-10">
 																<div className="row-md-10">
 																	<Field name="tanggal_akhir_banding">
 																	<Field name="tanggal_akhir_banding">

+ 33 - 4
pages/app/sanksi/proses.js

@@ -18,6 +18,7 @@ import Loader from "@/components/Common/Loader";
 import { ToastContainer, toast } from "react-toastify";
 import { ToastContainer, toast } from "react-toastify";
 import BeritaAcara from "@/components/Sanksi/BeritaAcara";
 import BeritaAcara from "@/components/Sanksi/BeritaAcara";
 import { getAutoSave, inputAutoSave } from "@/actions/autosave";
 import { getAutoSave, inputAutoSave } from "@/actions/autosave";
+import swal from "sweetalert2";
 
 
 
 
 
 
@@ -83,8 +84,8 @@ class ProsesSanksi extends Component {
 					formdata.append("dokumen", e);
 					formdata.append("dokumen", e);
 				});
 				});
 			}
 			}
-			if (this.state.dataUpload.fileTandaTerimaSS && this.state.dataUpload.fileTandaTerimaSS.length > 0) {
-				this.state.dataUpload.fileTandaTerimaSS.forEach((e) => {
+			if (this.state.dataUpload.filesTandaTerimaSS && this.state.dataUpload.filesTandaTerimaSS.length > 0) {
+				this.state.dataUpload.filesTandaTerimaSS.forEach((e) => {
 					formdata.append("dokumen_terima_sanksi", e);
 					formdata.append("dokumen_terima_sanksi", e);
 				});
 				});
 			}
 			}
@@ -137,14 +138,41 @@ class ProsesSanksi extends Component {
 	setUploadSuratSanksi = (data) => {
 	setUploadSuratSanksi = (data) => {
 		this.setState({ dataUpload: data });
 		this.setState({ dataUpload: data });
 
 
+
 	};
 	};
 	setDataSuratBA = (data) => {
 	setDataSuratBA = (data) => {
 		this.setState({ dataSuratBA: data });
 		this.setState({ dataSuratBA: data });
 
 
 	};
 	};
+	validation = (activeStep) => {
+		const dataUpload = this.state.dataUpload
+		if (
+			dataUpload?.nomorSanksi === undefined || dataUpload?.nomorSanksi === "" ||
+			dataUpload?.keterangan === undefined || dataUpload?.keterangan === "" ||
+			dataUpload?.awalsanksi === undefined || dataUpload?.awalsanksi === "" ||
+			dataUpload?.listSanksi === undefined || dataUpload?.listSanksi === null ||
+			dataUpload?.files === undefined || dataUpload?.files.length === 0 || dataUpload?.files === null ||
+			dataUpload?.terimaSuratSanksi === undefined || dataUpload?.terimaSuratSanksi === "" ||
+			dataUpload?.tglAkhirKeberatan === undefined || dataUpload?.tglAkhirKeberatan === "" ||
+			dataUpload?.filesTandaTerimaSS === undefined || dataUpload?.filesTandaTerimaSS.length === 0 || dataUpload?.filesTandaTerimaSS === null
+		) {
+			swal.fire({
+				title: "Form Wajib Diisi",
+				icon: "error",
+				confirmButtonColor: "#3e3a8e",
+			});
+		} else {
+			this.setState({
+				activeStep: "6"
+			});
+		}
+
+
+	}
 
 
 	render() {
 	render() {
 		const { dataUpload, dataPelanggaran, pelaporan, dataSuratBA } = this.state
 		const { dataUpload, dataPelanggaran, pelaporan, dataSuratBA } = this.state
+		console.log(dataUpload)
 		return (
 		return (
 			<ContentWrapper unwrap>
 			<ContentWrapper unwrap>
 				{/* <Header /> */}
 				{/* <Header /> */}
@@ -225,7 +253,8 @@ class ProsesSanksi extends Component {
 												className={classnames({
 												className={classnames({
 													active: this.state.activeStep === "6",
 													active: this.state.activeStep === "6",
 												})}
 												})}
-												onClick={this.toggleStep("6")}
+												onClick={this.validation}
+											// onClick={this.toggleStep("6")}
 											>
 											>
 												<h4 className="text-left my-3">6. Ringkasan</h4>
 												<h4 className="text-left my-3">6. Ringkasan</h4>
 											</NavLink>
 											</NavLink>
@@ -307,7 +336,7 @@ class ProsesSanksi extends Component {
 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("4")}>
 												<Button color className="btn-login color-3e3a8e" onClick={this.toggleStep("4")}>
 													<span className="font-color-white">Previous</span>
 													<span className="font-color-white">Previous</span>
 												</Button>
 												</Button>
-												<Button className="ml-auto btn-login color-3e3a8e" color onClick={this.toggleStep("6")}>
+												<Button className="ml-auto btn-login color-3e3a8e" color onClick={() => { this.validation() }}>
 													<span className="font-color-white">Next</span>
 													<span className="font-color-white">Next</span>
 												</Button>
 												</Button>
 											</div>
 											</div>

+ 34 - 6
pages/laporan/new/index.js

@@ -755,7 +755,21 @@ class App extends Component {
                     this.setState({ disablekirim3: false, disablecancel: false })
                     this.setState({ disablekirim3: false, disablecancel: false })
                   }}
                   }}
                 >
                 >
-                  <span className="font-color-white">Kirim</span>
+                  {this.state.loading ?
+                    (
+                      <div class="d-flex justify-content-center">
+                        <span
+                          class="spinner-border spinner-border-sm text-white"
+                          role="status"
+                        ></span>
+                        <span className="font-color-white">
+                          &nbsp; Diproses...
+                        </span>
+                      </div>
+                    ) : (
+                      <span className="font-color-white">Kirim</span>
+                    )}
+
                 </Button>
                 </Button>
               </ModalFooter>
               </ModalFooter>
             </form>
             </form>
@@ -805,19 +819,33 @@ class App extends Component {
                   <span className="font-color-white">Cancel</span>
                   <span className="font-color-white">Cancel</span>
                 </Button>
                 </Button>
                 <Button
                 <Button
-                  className="btn-login bg-success"
+                  className="bg-success float-lg-right"
                   color
                   color
                   disabled={this.state.disablekirim}
                   disabled={this.state.disablekirim}
                   onClick={async () => {
                   onClick={async () => {
-                    this.setState({ disablecancel: true })
+                    this.setState({ disablecancel: true, loading2: true })
                     await this.createLaporan(this.state.token);
                     await this.createLaporan(this.state.token);
                     this.setState({ disablecancel: false })
                     this.setState({ disablecancel: false })
 
 
                   }}
                   }}
                 >
                 >
-                  <span className="font-color-white">
-                    Kirim
-                  </span>
+                  {this.state.loading2 ?
+                    (
+                      <div class="d-flex justify-content-center">
+                        <span
+                          class="spinner-border spinner-border-sm text-white"
+                          role="status"
+                        ></span>
+                        <span className="font-color-white">
+                          &nbsp; Diproses...
+                        </span>
+                      </div>
+                    ) : (
+                      <span className="font-color-white">
+                        Kirim
+                      </span>
+                    )}
+
                 </Button>
                 </Button>
               </ModalFooter>
               </ModalFooter>
             </form>
             </form>

+ 0 - 1
pages/pt/sanksi/detail.js

@@ -37,7 +37,6 @@ class Sanksi extends Component {
 
 
 	render() {
 	render() {
 		const { sanksi, pt } = this.state;
 		const { sanksi, pt } = this.state;
-		console.log(sanksi)
 		return (
 		return (
 			<ContentWrapper unwrap>
 			<ContentWrapper unwrap>
 				<Modal isOpen={this.state.modal} toggle={this.props.toggleModal}>
 				<Modal isOpen={this.state.modal} toggle={this.props.toggleModal}>