|  | @@ -47,7 +47,7 @@ const checkIfFilesAreCorrectType = (files) => {
 | 
	
		
			
				|  |  |  const rekomendasiSchema = Yup.object().shape({
 | 
	
		
			
				|  |  |      no_sanksi: Yup.string().required("Wajib isi Nomor Sanksi"),
 | 
	
		
			
				|  |  |      keterangan: Yup.string().min(3, "Minimal 3 Huruf").max(200).required("Wajib isi keterangan"),
 | 
	
		
			
				|  |  | -    from_date: Yup.date().required("Wajib diisi"),
 | 
	
		
			
				|  |  | +    from_date: Yup.date().notRequired("Wajib diisi"),
 | 
	
		
			
				|  |  |      to_date: Yup.date().notRequired("Wajib diisi"),
 | 
	
		
			
				|  |  |      sanksi: Yup.array().required("Wajib isi pelanggaran"),
 | 
	
		
			
				|  |  |      dokumen: Yup.array().required("Wajib diisi").test("filesize", "Maksimal ukuran dokumen 15mb", checkIfFilesAreTooBig),
 | 
	
	
		
			
				|  | @@ -84,7 +84,7 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |              sanksi: {},
 | 
	
		
			
				|  |  |              keteranganLaporan: "",
 | 
	
		
			
				|  |  |              tmtCheck: false,
 | 
	
		
			
				|  |  | -            listSanksi: "",
 | 
	
		
			
				|  |  | +            listSanksi: null,
 | 
	
		
			
				|  |  |              selectedFile: {}
 | 
	
		
			
				|  |  |          };
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -109,7 +109,9 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |              dropdownOpen: !this.state.dropdownOpen,
 | 
	
		
			
				|  |  |          });
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    handleChangeListSanksi = (listSanksi) => {
 | 
	
		
			
				|  |  | +        this.setState({ listSanksi }, this.setUploadSuratSanksi);
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  |      onDrop = (selectedFile) => {
 | 
	
		
			
				|  |  |          this.setState({
 | 
	
		
			
				|  |  |              selectedFile: selectedFile.map((file) =>
 | 
	
	
		
			
				|  | @@ -153,8 +155,10 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |      handleTmtCheck = () => {
 | 
	
		
			
				|  |  |          this.setState({ tmtCheck: !this.state.tmtCheck });
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +    handleChangeListSanksi = (listSanksi) => {
 | 
	
		
			
				|  |  | +        this.setState({ listSanksi });
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | + 
 | 
	
		
			
				|  |  |      handelSimpan = async (data) => {
 | 
	
		
			
				|  |  |          if (this.props?.user?.role.id === 2024) {
 | 
	
		
			
				|  |  |              Swal.fire({
 | 
	
	
		
			
				|  | @@ -165,7 +169,32 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                  confirmButtonText: 'Oke'
 | 
	
		
			
				|  |  |              })
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  | -            const getToken = await getCsrf();
 | 
	
		
			
				|  |  | +            if (this.state.tmtCheck === true ||this.state.listSanksi?.find(z => z.label === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.label === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS")) {
 | 
	
		
			
				|  |  | +                const getToken = await getCsrf();
 | 
	
		
			
				|  |  | +                const _csrf = getToken.token;
 | 
	
		
			
				|  |  | +                const { token, query } = this.props;
 | 
	
		
			
				|  |  | +                const { id } = query;
 | 
	
		
			
				|  |  | +                const formdata = new FormData();
 | 
	
		
			
				|  |  | +                formdata.append("no_sanksi", data.no_sanksi);
 | 
	
		
			
				|  |  | +                formdata.append("keterangan", data.keterangan);
 | 
	
		
			
				|  |  | +                // formdata.append("from_date", data.from_date);
 | 
	
		
			
				|  |  | +                // formdata.append("to_date", data.to_date);
 | 
	
		
			
				|  |  | +                // formdata.append("sanksi", JSON.stringify(data.sanksi.map((e) => ({ label: e.value }))));
 | 
	
		
			
				|  |  | +                formdata.append("sanksi", JSON.stringify(data.sanksi.map((e) => ({ label: e.value.split(";")[0], description: e.value.split(";")[1], level: e.value.split(";")[2] }))));
 | 
	
		
			
				|  |  | +    
 | 
	
		
			
				|  |  | +                this.state.files.forEach((e) => {
 | 
	
		
			
				|  |  | +                    formdata.append("dokumen", e);
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +                const toastid = toast.loading("Please wait...");
 | 
	
		
			
				|  |  | +                const added = await update(token, id, formdata, _csrf);
 | 
	
		
			
				|  |  | +                if (!added) {
 | 
	
		
			
				|  |  | +                    toast.update(toastid, { render: "Error", type: "error", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    toast.update(toastid, { render: "Success", type: "success", isLoading: false, autoClose: true, closeButton: true });
 | 
	
		
			
				|  |  | +                    Router.push("/app/naik-sanksi");
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                const getToken = await getCsrf();
 | 
	
		
			
				|  |  |              const _csrf = getToken.token;
 | 
	
		
			
				|  |  |              const { token, query } = this.props;
 | 
	
		
			
				|  |  |              const { id } = query;
 | 
	
	
		
			
				|  | @@ -189,6 +218,8 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                  Router.push("/app/naik-sanksi");
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      };
 | 
	
		
			
				|  |  |      render() {
 | 
	
	
		
			
				|  | @@ -206,7 +237,6 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                  <button className="bg-transparent button-transparent border-0 fas fa-trash text-danger float-right" onClick={removeFile(file)} />
 | 
	
		
			
				|  |  |              </p>
 | 
	
		
			
				|  |  |          ));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          return (
 | 
	
		
			
				|  |  |              <Card className="card-default">
 | 
	
		
			
				|  |  |                  <CardBody>
 | 
	
	
		
			
				|  | @@ -239,16 +269,18 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                          <ErrorMessage name="keterangan" component="div" className="form-text text-danger" />
 | 
	
		
			
				|  |  |                                      </div>
 | 
	
		
			
				|  |  |                                  </FormGroup>
 | 
	
		
			
				|  |  | -                                <FormGroup row>
 | 
	
		
			
				|  |  | -                                    <label className="col-md-2 col-form-label">Tidak Perlu TMT</label>
 | 
	
		
			
				|  |  | -                                    <div className="col-md-10 mt-2">
 | 
	
		
			
				|  |  | -                                        <div className="checkbox c-checkbox">
 | 
	
		
			
				|  |  | -                                            <label>
 | 
	
		
			
				|  |  | -                                                <Input type="checkbox" onChange={this.handleTmtCheck} defaultChecked={this.state.tmtCheck} />
 | 
	
		
			
				|  |  | -                                                <span className="fa fa-check"></span></label>
 | 
	
		
			
				|  |  | +                                {!this.state.listSanksi?.find(z => z.label === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.label === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") &&
 | 
	
		
			
				|  |  | +                                    <FormGroup row>
 | 
	
		
			
				|  |  | +                                        <label className="col-md-2 col-form-label">Tidak Perlu TMT</label>
 | 
	
		
			
				|  |  | +                                        <div className="col-md-10 mt-2">
 | 
	
		
			
				|  |  | +                                            <div className="checkbox c-checkbox">
 | 
	
		
			
				|  |  | +                                                <label>
 | 
	
		
			
				|  |  | +                                                    <Input type="checkbox" onChange={this.handleTmtCheck} defaultChecked={this.state.tmtCheck} />
 | 
	
		
			
				|  |  | +                                                    <span className="fa fa-check"></span></label>
 | 
	
		
			
				|  |  | +                                            </div>
 | 
	
		
			
				|  |  |                                          </div>
 | 
	
		
			
				|  |  | -                                    </div>
 | 
	
		
			
				|  |  | -                                </FormGroup>
 | 
	
		
			
				|  |  | +                                    </FormGroup>
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  |                                  {this.state.tmtCheck && (
 | 
	
		
			
				|  |  |                                      <FormGroup row className="mt-3">
 | 
	
		
			
				|  |  |                                          <label className="col-md-2 col-form-label">Tanggal Penetapan Sanksi</label>
 | 
	
	
		
			
				|  | @@ -256,25 +288,25 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                              <Field name="from_date">
 | 
	
		
			
				|  |  |                                                  {({ field, form }) => (
 | 
	
		
			
				|  |  |                                                      <Datetime
 | 
	
		
			
				|  |  | -                                                    timeFormat={false}
 | 
	
		
			
				|  |  | -                                                    inputProps={{ className: "form-control" }}
 | 
	
		
			
				|  |  | -                                                    value={field.value || "DD/MM/YYYY"}
 | 
	
		
			
				|  |  | -                                                    onChange={(from_date) => {
 | 
	
		
			
				|  |  | -                                                        form.setFieldValue(field.name, from_date);
 | 
	
		
			
				|  |  | -                                                        this.setState({ from_date })
 | 
	
		
			
				|  |  | -                                                    }}
 | 
	
		
			
				|  |  | -                                                    closeOnSelect={true}
 | 
	
		
			
				|  |  | -                                                    isValidDate={(e) => {
 | 
	
		
			
				|  |  | -                                                        return e.isBefore(new Date())
 | 
	
		
			
				|  |  | -                                                    }}
 | 
	
		
			
				|  |  | -                                                />
 | 
	
		
			
				|  |  | +                                                        timeFormat={false}
 | 
	
		
			
				|  |  | +                                                        inputProps={{ className: "form-control" }}
 | 
	
		
			
				|  |  | +                                                        value={field.value || "DD/MM/YYYY"}
 | 
	
		
			
				|  |  | +                                                        onChange={(from_date) => {
 | 
	
		
			
				|  |  | +                                                            form.setFieldValue(field.name, from_date);
 | 
	
		
			
				|  |  | +                                                            this.setState({ from_date })
 | 
	
		
			
				|  |  | +                                                        }}
 | 
	
		
			
				|  |  | +                                                        closeOnSelect={true}
 | 
	
		
			
				|  |  | +                                                        isValidDate={(e) => {
 | 
	
		
			
				|  |  | +                                                            return e.isBefore(new Date())
 | 
	
		
			
				|  |  | +                                                        }}
 | 
	
		
			
				|  |  | +                                                    />
 | 
	
		
			
				|  |  |                                                  )}
 | 
	
		
			
				|  |  |                                              </Field>
 | 
	
		
			
				|  |  |                                              <ErrorMessage name="from_date" component="div" className="form-text text-danger" />
 | 
	
		
			
				|  |  |                                          </span>
 | 
	
		
			
				|  |  |                                      </FormGroup>
 | 
	
		
			
				|  |  |                                  )}
 | 
	
		
			
				|  |  | -                                {!this.state.tmtCheck && (
 | 
	
		
			
				|  |  | +                                {!this.state.tmtCheck && !this.state.listSanksi?.find(z => z.label === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.label === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
 | 
	
		
			
				|  |  |                                      <FormGroup row className="mt-3">
 | 
	
		
			
				|  |  |                                          <label className="col-md-2 col-form-label">Isi TMT :</label>
 | 
	
		
			
				|  |  |                                          <div className="col-md-6">
 | 
	
	
		
			
				|  | @@ -284,18 +316,18 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                                          <Field name="from_date">
 | 
	
		
			
				|  |  |                                                              {({ field, form }) => (
 | 
	
		
			
				|  |  |                                                                  <Datetime
 | 
	
		
			
				|  |  | -                                                                timeFormat={false}
 | 
	
		
			
				|  |  | -                                                                inputProps={{ className: "form-control" }}
 | 
	
		
			
				|  |  | -                                                                value={field.value || "DD/MM/YYYY"}
 | 
	
		
			
				|  |  | -                                                                onChange={(from_date) => {
 | 
	
		
			
				|  |  | -                                                                    form.setFieldValue(field.name, from_date);
 | 
	
		
			
				|  |  | -                                                                    this.setState({ from_date })
 | 
	
		
			
				|  |  | -                                                                }}
 | 
	
		
			
				|  |  | -                                                                closeOnSelect={true}
 | 
	
		
			
				|  |  | -                                                                isValidDate={(e) => {
 | 
	
		
			
				|  |  | -                                                                    return e.isBefore(new Date())
 | 
	
		
			
				|  |  | -                                                                }}
 | 
	
		
			
				|  |  | -                                                            />
 | 
	
		
			
				|  |  | +                                                                    timeFormat={false}
 | 
	
		
			
				|  |  | +                                                                    inputProps={{ className: "form-control" }}
 | 
	
		
			
				|  |  | +                                                                    value={field.value || "DD/MM/YYYY"}
 | 
	
		
			
				|  |  | +                                                                    onChange={(from_date) => {
 | 
	
		
			
				|  |  | +                                                                        form.setFieldValue(field.name, from_date);
 | 
	
		
			
				|  |  | +                                                                        this.setState({ from_date })
 | 
	
		
			
				|  |  | +                                                                    }}
 | 
	
		
			
				|  |  | +                                                                    closeOnSelect={true}
 | 
	
		
			
				|  |  | +                                                                    isValidDate={(e) => {
 | 
	
		
			
				|  |  | +                                                                        return e.isBefore(new Date())
 | 
	
		
			
				|  |  | +                                                                    }}
 | 
	
		
			
				|  |  | +                                                                />
 | 
	
		
			
				|  |  |                                                              )}
 | 
	
		
			
				|  |  |                                                          </Field>
 | 
	
		
			
				|  |  |                                                          <ErrorMessage name="from_date" component="div" className="form-text text-danger" />
 | 
	
	
		
			
				|  | @@ -306,18 +338,18 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                                          <Field name="to_date">
 | 
	
		
			
				|  |  |                                                              {({ field, form }) => (
 | 
	
		
			
				|  |  |                                                                  <Datetime
 | 
	
		
			
				|  |  | -                                                                timeFormat={false}
 | 
	
		
			
				|  |  | -                                                                inputProps={{ className: "form-control" }}
 | 
	
		
			
				|  |  | -                                                                value={field.value || "DD/MM/YYYY"}
 | 
	
		
			
				|  |  | -                                                                onChange={(to_date) => {
 | 
	
		
			
				|  |  | -                                                                    form.setFieldValue(field.name, to_date);
 | 
	
		
			
				|  |  | -                                                                    this.setState({ to_date })
 | 
	
		
			
				|  |  | -                                                                }}
 | 
	
		
			
				|  |  | -                                                                closeOnSelect={true}
 | 
	
		
			
				|  |  | -                                                                isValidDate={(e) => {
 | 
	
		
			
				|  |  | -                                                                    return e.isBefore(addMonths(new Date(this.state.from_date), 6)) && e.isAfter(new Date(this.state.from_date))
 | 
	
		
			
				|  |  | -                                                                }}
 | 
	
		
			
				|  |  | -                                                            />
 | 
	
		
			
				|  |  | +                                                                    timeFormat={false}
 | 
	
		
			
				|  |  | +                                                                    inputProps={{ className: "form-control" }}
 | 
	
		
			
				|  |  | +                                                                    value={field.value || "DD/MM/YYYY"}
 | 
	
		
			
				|  |  | +                                                                    onChange={(to_date) => {
 | 
	
		
			
				|  |  | +                                                                        form.setFieldValue(field.name, to_date);
 | 
	
		
			
				|  |  | +                                                                        this.setState({ to_date })
 | 
	
		
			
				|  |  | +                                                                    }}
 | 
	
		
			
				|  |  | +                                                                    closeOnSelect={true}
 | 
	
		
			
				|  |  | +                                                                    isValidDate={(e) => {
 | 
	
		
			
				|  |  | +                                                                        return e.isBefore(addMonths(new Date(this.state.from_date), 6)) && e.isAfter(new Date(this.state.from_date))
 | 
	
		
			
				|  |  | +                                                                    }}
 | 
	
		
			
				|  |  | +                                                                />
 | 
	
		
			
				|  |  |                                                              )}
 | 
	
		
			
				|  |  |                                                          </Field>
 | 
	
		
			
				|  |  |                                                          <ErrorMessage name="to_date" component="div" className="form-text text-danger" />
 | 
	
	
		
			
				|  | @@ -327,7 +359,7 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                          </div>
 | 
	
		
			
				|  |  |                                      </FormGroup>
 | 
	
		
			
				|  |  |                                  )}
 | 
	
		
			
				|  |  | -                                {!this.state.tmtCheck && (
 | 
	
		
			
				|  |  | +                                {!this.state.tmtCheck && !this.state.listSanksi?.find(z => z.label === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.label === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
 | 
	
		
			
				|  |  |                                      <FormGroup row className="mt-1">
 | 
	
		
			
				|  |  |                                          <label className="col-md-2 col-form-label">TMT berlaku</label>
 | 
	
		
			
				|  |  |                                          <div className="col-md-10 mt-2">
 | 
	
	
		
			
				|  | @@ -335,7 +367,7 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                          </div>
 | 
	
		
			
				|  |  |                                      </FormGroup>
 | 
	
		
			
				|  |  |                                  )}
 | 
	
		
			
				|  |  | -                                {!this.state.tmtCheck && (
 | 
	
		
			
				|  |  | +                                {!this.state.tmtCheck && !this.state.listSanksi?.find(z => z.label === "Sanksi Administratif Berat - Pencabutan izin Program Studi" || z.label === "Sanksi Administratif Berat - Pembubaran PTN atau pencabutan izin PTS") && (
 | 
	
		
			
				|  |  |                                      <FormGroup row className="mt-1">
 | 
	
		
			
				|  |  |                                          <label className="col-md-2 col-form-label">TMT</label>
 | 
	
		
			
				|  |  |                                          <div className="col-md-10 mt-2">
 | 
	
	
		
			
				|  | @@ -352,6 +384,9 @@ class InputTanggal extends Component {
 | 
	
		
			
				|  |  |                                              isMulti
 | 
	
		
			
				|  |  |                                              onChange={(e) => {
 | 
	
		
			
				|  |  |                                                  form.setFieldValue(field.name, e);
 | 
	
		
			
				|  |  | +                                                this.handleChangeListSanksi(e);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                                              }}
 | 
	
		
			
				|  |  |                                          />}</Field>
 | 
	
		
			
				|  |  |                                          <ErrorMessage name="sanksi" component="div" className="form-text text-danger" />
 |