|
|
@@ -1,17 +1,9 @@
|
|
|
import React, { Component } from "react";
|
|
|
import { Row, Col, Input, FormGroup, Label, Progress, Button } from "reactstrap";
|
|
|
import Select from "react-select";
|
|
|
-import DatePicker from "react-datepicker";
|
|
|
-import "react-datepicker/dist/react-datepicker.css";
|
|
|
-// import "react-datepicker/dist/react-datepicker.css";
|
|
|
-import ms from "ms";
|
|
|
import { addDays, addMonths } from 'date-fns';
|
|
|
-import id from 'date-fns/locale/id';
|
|
|
-// registerLocale('id', id)
|
|
|
-import { getAutoSave, inputAutoSave } from "@/actions/autosave";
|
|
|
-import ComponentToPrint from "./SuratBA_A";
|
|
|
-import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
|
|
|
-import Link from "next/dist/client/link";
|
|
|
+import Datetime from "react-datetime";
|
|
|
+import moment from "moment";
|
|
|
|
|
|
let Dropzone = null;
|
|
|
class DropzoneWrapper extends Component {
|
|
|
@@ -41,7 +33,7 @@ export class UploadSurat extends Component {
|
|
|
files: [],
|
|
|
nomorSanksi: "",
|
|
|
keterangan: "",
|
|
|
- listSanksi: "",
|
|
|
+ listSanksi: null,
|
|
|
startDay: tmt_awal,
|
|
|
maxDay: "",
|
|
|
awalTMT: "",
|
|
|
@@ -151,8 +143,16 @@ export class UploadSurat extends Component {
|
|
|
// this.setState({ tmtCheck: !this.state.tmtCheck }, this.setUploadSuratSanksi);
|
|
|
this.state.tidakPerluTMTCheck = !this.state.tidakPerluTMTCheck
|
|
|
this.setUploadSuratSanksi()
|
|
|
+ if (this.state.tidakPerluTMTCheck) {
|
|
|
+ this.setState({ awalTMT: "", akhirTMT: "", tglAkhirKeberatan: "", terimaSuratSanksi: "" })
|
|
|
+ }
|
|
|
// this.handleAutoSave()
|
|
|
}
|
|
|
+ setsanksi = () => {
|
|
|
+ if (this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS")) {
|
|
|
+ this.setState({ awalTMT: "", akhirTMT: "", tglAkhirKeberatan: "", terimaSuratSanksi: "" })
|
|
|
+ }
|
|
|
+ }
|
|
|
render() {
|
|
|
const { files, terimaSuratSanksi, tglAkhirKeberatan, filesTandaTerimaSS, tidakPerluTMTCheck } = this.state;
|
|
|
const removeFile = file => () => {
|
|
|
@@ -195,32 +195,39 @@ export class UploadSurat extends Component {
|
|
|
<Input type="textarea" value={this.state.keterangan} onChange={(e) => { this.setKeterangan(e) }} required />
|
|
|
</div>
|
|
|
</FormGroup>
|
|
|
- <FormGroup row>
|
|
|
- <label className="col-md-4 col-form-label">Tidak Perlu TMT</label>
|
|
|
- <div className="col-md-8 mt-2">
|
|
|
- <div className="checkbox c-checkbox">
|
|
|
- <label>
|
|
|
- <Input type="checkbox" onChange={() => this.handleTmtCheck()} defaultChecked={this.state.tidakPerluTMTCheck} />
|
|
|
- <span className="fa fa-check"></span></label>
|
|
|
+
|
|
|
+ {!this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") &&
|
|
|
+ <FormGroup row>
|
|
|
+ <label className="col-md-4 col-form-label">Tidak Perlu TMT</label>
|
|
|
+ <div className="col-md-8 mt-2">
|
|
|
+ <div className="checkbox c-checkbox">
|
|
|
+ <label>
|
|
|
+ <Input type="checkbox" onChange={() => this.handleTmtCheck()} defaultChecked={this.state.tidakPerluTMTCheck} />
|
|
|
+ <span className="fa fa-check"></span></label>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </FormGroup>
|
|
|
- {!this.state.tidakPerluTMTCheck && (
|
|
|
+ </FormGroup>
|
|
|
+ }
|
|
|
+
|
|
|
+ {!this.state.tidakPerluTMTCheck && !this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
|
|
|
<FormGroup row className="mt-3">
|
|
|
<label className="col-md-4 col-form-label">Isi TMT</label>
|
|
|
<Col>
|
|
|
<FormGroup>
|
|
|
<span>
|
|
|
- <DatePicker
|
|
|
- selected={this.state.awalTMT ? new Date(this.state.awalTMT) : this.state.awalTMT}
|
|
|
+ <Datetime
|
|
|
+ timeFormat={false}
|
|
|
+ inputProps={{ className: "form-control" }}
|
|
|
+ value={this.state.awalTMT ? new Date(this.state.awalTMT) : this.state.awalTMT}
|
|
|
onChange={(awalTMT) => {
|
|
|
this.setState({ awalTMT }, this.setUploadSuratSanksi)
|
|
|
}}
|
|
|
- dateFormat="dd/MM/yyyy"
|
|
|
- maxDate={new Date(this.state.startDay)}
|
|
|
- placeholderText="Dari Tanggal"
|
|
|
- locale={id}
|
|
|
- className="form-control bg-white"
|
|
|
+ closeOnSelect={true}
|
|
|
+ isValidDate={(e) => {
|
|
|
+ return !this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") ? e.isBefore(new Date())
|
|
|
+ : false
|
|
|
+ }}
|
|
|
+
|
|
|
/>
|
|
|
</span>
|
|
|
|
|
|
@@ -229,15 +236,20 @@ export class UploadSurat extends Component {
|
|
|
<Col>
|
|
|
<FormGroup>
|
|
|
<span >
|
|
|
- <DatePicker
|
|
|
- selected={this.state.akhirTMT ? new Date(this.state.akhirTMT) : this.state.akhirTMT}
|
|
|
- onChange={(akhirTMT) => { this.setAkhirSanksi(akhirTMT) }}
|
|
|
- dateFormat="dd/MM/yyyy"
|
|
|
- minDate={new Date(this.state.awalTMT)}
|
|
|
- maxDate={addMonths(new Date(this.state.awalTMT), 6)}
|
|
|
- placeholderText="Sampai tanggal"
|
|
|
- locale={id}
|
|
|
- className="form-control bg-white"
|
|
|
+ <Datetime
|
|
|
+ timeFormat={false}
|
|
|
+ inputProps={{ className: "form-control" }}
|
|
|
+ value={this.state.akhirTMT ? new Date(this.state.akhirTMT) : this.state.akhirTMT}
|
|
|
+ onChange={(akhirTMT) => {
|
|
|
+ this.setState({ akhirTMT }, this.setUploadSuratSanksi)
|
|
|
+ }}
|
|
|
+ closeOnSelect={true}
|
|
|
+ isValidDate={(e) => {
|
|
|
+ return !this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") ? e.isBefore(addMonths(new Date(this.state.awalTMT), 6)) && e.isAfter(new Date(this.state.awalTMT)) : false
|
|
|
+ }}
|
|
|
+ // isValidDate={(e) => {
|
|
|
+ // return e.isAfter(moment(new Date) && e.isBefore(moment(new Date)))
|
|
|
+ // }}
|
|
|
/>
|
|
|
</span>
|
|
|
</FormGroup>
|
|
|
@@ -245,7 +257,7 @@ export class UploadSurat extends Component {
|
|
|
|
|
|
</FormGroup>
|
|
|
)}
|
|
|
- {!this.state.tidakPerluTMTCheck && (
|
|
|
+ {!this.state.tidakPerluTMTCheck && !this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
|
|
|
<FormGroup row className="mt-1">
|
|
|
<label className="col-md-4 col-form-label">TMT berlaku</label>
|
|
|
<div className="col-md-8 mt-2">
|
|
|
@@ -253,7 +265,7 @@ export class UploadSurat extends Component {
|
|
|
</div>
|
|
|
</FormGroup>
|
|
|
)}
|
|
|
- {!this.state.tidakPerluTMTCheck && (
|
|
|
+ {!this.state.tidakPerluTMTCheck && !this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
|
|
|
<FormGroup row className="mt-1">
|
|
|
<label className="col-md-4 col-form-label">TMT</label>
|
|
|
<div className="col-md-8 mt-2">
|
|
|
@@ -270,6 +282,7 @@ export class UploadSurat extends Component {
|
|
|
formatOptionLabel={formatOptionLabel}
|
|
|
onChange={(e) => {
|
|
|
this.handleChangeListSanksi(e);
|
|
|
+ this.setsanksi(e)
|
|
|
}}
|
|
|
/>
|
|
|
</div>
|
|
|
@@ -317,16 +330,20 @@ export class UploadSurat extends Component {
|
|
|
<FormGroup row className="mt-3">
|
|
|
<label className="col-md-4 col-form-label">Tanggal Terima Surat Sanksi<span className="text-danger">*</span></label>
|
|
|
<span className="col-sm-8 float-left">
|
|
|
- <DatePicker
|
|
|
- selected={this.state.terimaSuratSanksi ? new Date(this.state.terimaSuratSanksi) : this.state.terimaSuratSanksi}
|
|
|
+ <Datetime
|
|
|
+ timeFormat={false}
|
|
|
+ inputProps={{ className: "form-control" }}
|
|
|
+ value={this.state.terimaSuratSanksi ? new Date(this.state.terimaSuratSanksi) : this.state.terimaSuratSanksi}
|
|
|
onChange={(terimaSuratSanksi) => {
|
|
|
this.setState({ terimaSuratSanksi }, this.setUploadSuratSanksi)
|
|
|
}}
|
|
|
- dateFormat="dd/MM/yyyy"
|
|
|
- minDate={new Date(this.state.awalTMT)}
|
|
|
- placeholderText="DD/MM/YYYY"
|
|
|
- locale={id}
|
|
|
- className="form-control bg-white"
|
|
|
+ closeOnSelect={true}
|
|
|
+ isValidDate={(e) => {
|
|
|
+ return e.isAfter(new Date(this.state.awalTMT))
|
|
|
+ }}
|
|
|
+ // isValidDate={(e) => {
|
|
|
+ // return e.isAfter(moment(new Date) && e.isBefore(moment(new Date)))
|
|
|
+ // }}
|
|
|
/>
|
|
|
</span>
|
|
|
</FormGroup>
|
|
|
@@ -370,7 +387,7 @@ export class UploadSurat extends Component {
|
|
|
<p className="mrgn-top-5 font-color-black">Ukuran setiap dokumen maksimal 15mb</p>
|
|
|
</div>
|
|
|
</FormGroup>
|
|
|
- {!this.state.tidakPerluTMTCheck && (
|
|
|
+ {!this.state.tidakPerluTMTCheck && !this.state.listSanksi?.find(z => z.value === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.value === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
|
|
|
<FormGroup row className="mt-3">
|
|
|
<label className="col-md-4 col-form-label">Tanggal Akhir Pengajuan Keberatan<span className="text-danger">*</span>
|
|
|
<p>
|
|
|
@@ -378,16 +395,17 @@ export class UploadSurat extends Component {
|
|
|
</p>
|
|
|
</label>
|
|
|
<span className="col-sm-8 float-left">
|
|
|
- <DatePicker
|
|
|
- selected={this.state.tglAkhirKeberatan ? new Date(this.state.tglAkhirKeberatan) : this.state.tglAkhirKeberatan}
|
|
|
+ <Datetime
|
|
|
+ timeFormat={false}
|
|
|
+ inputProps={{ className: "form-control" }}
|
|
|
+ value={this.state.tglAkhirKeberatan ? new Date(this.state.tglAkhirKeberatan) : this.state.tglAkhirKeberatan}
|
|
|
onChange={(tglAkhirKeberatan) => {
|
|
|
this.setState({ tglAkhirKeberatan }, this.setUploadSuratSanksi)
|
|
|
}}
|
|
|
- dateFormat="dd/MM/yyyy"
|
|
|
- minDate={new Date(terimaSuratSanksi)}
|
|
|
- placeholderText="DD/MM/YYYY "
|
|
|
- locale={id}
|
|
|
- className="form-control bg-white"
|
|
|
+ closeOnSelect={true}
|
|
|
+ isValidDate={(e) => {
|
|
|
+ return e.isAfter(new Date(this.state.terimaSuratSanksi))
|
|
|
+ }}
|
|
|
/>
|
|
|
</span>
|
|
|
</FormGroup>
|