|  | @@ -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>
 |