import React, { useRef, Component } from 'react'; import { useReactToPrint } from "react-to-print"; import { Row, Col, Button, Popover, PopoverHeader, PopoverBody, } from "reactstrap"; import Head from 'next/head' import SignatureCanvas from 'react-signature-canvas' import ComponentToPrint from "./SuratBA"; import ReactToPrint, { PrintContextConsumer } from 'react-to-print'; import { getOneLaporan, updateLaporan } from "@/actions/pelaporan"; import DatePicker from "react-datepicker"; import "react-datepicker/dist/react-datepicker.css"; import id from 'date-fns/locale/id'; import CopyToClipboard from "react-copy-to-clipboard"; import { getAutoSave } from "@/actions/autosave"; class BeritaAcara extends Component { constructor(props) { super(props); this.state = { isEditTempat: false, tempat: "[Mohon Diisi]", isEditTanggal: false, tanggal: "", setTanggal: false, namaPeserta: [], isEditNamaPeserta: false, simpulan: "", rekomendasi: "", isEditTemuanLain: false, temuanLain: [], memberatkan: [], isEditKeberatan: false, isEditMeringankan: false, meringankan: [], sanksi: "[Mohon Diisi]", isEditSanksi: false, copied: false, setmeState: true, }; } static getInitialProps = async ({ query }) => { return { query }; }; componentDidMount = async () => { const { query, token } = this.props; const { id } = query; const getDataSave = await getAutoSave({ id, laporan: true }); const autoSaveDataSuratBA = getDataSave.data?.PenetapanSanksi?.dataSuratBA; const autoSaveDataPelanggaran = getDataSave.data?.PenetapanSanksi?.dataPelanggaran?.data; this.setState({ autoSaveDataPelanggaran, autoSaveDataSuratBA }); }; setDataSuratBA = () => { this.props.setDataSuratBA(this.state); } handleAutoSave = () => { this.props.handleAutoSave() } isEditTempat = () => { this.setState({ isEditTempat: !this.state.isEditTempat, }, this.setDataSuratBA, this.handleAutoSave()) } isEditTanggal = () => { this.setState({ isEditTanggal: !this.state.isEditTanggal, }, this.setDataSuratBA, this.handleAutoSave()) } isEditTemuanLain = () => { this.setState({ isEditTemuanLain: !this.state.isEditTemuanLain, }, this.setDataSuratBA, this.handleAutoSave()) } isEditKeberatan = () => { this.setState({ isEditKeberatan: !this.state.isEditKeberatan, }, this.setDataSuratBA, this.handleAutoSave()) } isEditMeringankan = () => { this.setState({ isEditMeringankan: !this.state.isEditMeringankan, }, this.setDataSuratBA, this.handleAutoSave()) } isEditSanksi = () => { this.setState({ isEditSanksi: !this.state.isEditSanksi, }, this.setDataSuratBA, this.handleAutoSave()) } updateValueTemuanLain = () => { const addTemuanLain = this.refs.inputTemuan.value this.state.temuanLain.push(addTemuanLain) this.setDataSuratBA(this.state) this.handleAutoSave() // this.setState({ // temuanLain: [...this.state.temuanLain, addTemuanLain] // }, this.setDataSuratBA, this.handleAutoSave()) } updateValueMemringankan = () => { const addMeringankan = this.refs.inputMeringankan.value this.state.meringankan.push(addMeringankan) this.setDataSuratBA(this.state) this.handleAutoSave() // this.setState({ // meringankan: [...this.state.meringankan, addMeringankan] // }, this.setDataSuratBA, this.handleAutoSave()) } updateValueMemberatkan = () => { const addKeberatan = this.refs.inputMemberatkan.value this.state.memberatkan.push(addKeberatan) this.setDataSuratBA(this.state) this.handleAutoSave() } Copied = () => this.setState({ copied: !this.state.copied }) CloseCopied = () => { setTimeout(() => { this.setState({ copied: !this.state.copied }); }, 1000); } render() { const { dataPelanggaran, dataLaporan, dataSuratBA } = this.props const { isEditTempat, tempat, isEditTanggal, tanggal, setTanggal, isEditTemuanLain, isEditKeberatan, isEditMeringankan, isEditSanksi, autoSaveDataSuratBA, autoSaveDataPelanggaran } = this.state return (
{ // NOTE: could just as easily return . Do NOT pass an `onClick` prop // to the root node of the returned component as it will be overwritten. return }} content={() => this.componentRef} />
(this.componentRef = el)} query={this.props.query} dataPelanggaran={this.props.dataPelanggaran} dataSuratBA={this.props.dataSuratBA} />
logo

LAPORAN HASIL EVALUASI DAN PEMBAHASAN

{dataLaporan.data && (

{dataLaporan.data.pt.nama}

)}

Pada hari ini {isEditTanggal && { this.setState({ tanggal, setTanggal: true }, this.setDataSuratBA) }} dateFormat="dd/MM/yyyy" placeholderText="Isi Tanggal" locale={id} className="form-control bg-white" />

Berdasarkan rapat evaluasi dan pembahasan dugaan pelanggaran penyelenggaraan oleh perguruan tinggi dan/atau badan penyelenggara {dataLaporan.data && ({dataLaporan.data.pt.nama})}, disampaikan sebagai berikut:

  1. Telah dibacakan Berita Acara Evaluasi Kinerja Perguruan Tinggi {dataLaporan.data && ({dataLaporan.data.pt.nama})}, tanggal {setTanggal === true || autoSaveDataSuratBA?.setTanggal === true ?  {moment(tanggal || autoSaveDataSuratBA?.tanggal).format("DD-MM-YYYY")} :  .......   }
  2. Telah dilakukan pembahasan rekomendasi mengenai fakta-fakta yang ditemukan Tim EKPT Ditjen Diktiristek, dengan temuan sebagai berikut:
  3. {dataPelanggaran?.map((e, i) => ( {dataLaporan.data && ()} )) || autoSaveDataPelanggaran?.map((e, i) => ( {dataLaporan.data && ()} ))}
    NO NAMA DAN IZIN PRODI PELANGGARAN TERHADAP PERMENDIKBUD NO.7 TAHUN 2020 SIMPULAN REKOMENDASI
    PASAL BUTIR PELANGGARAN DESKRIPSI PELANGGARAN
    {++i}{dataLaporan.data.pt.nama}{e.pasal} {e.butir_pelanggaran} {e.pelanggaran} [Mohon Diisi] [Mohon Diisi]
    {++i}{dataLaporan.data.pt.nama}{e.pasal} {e.butir_pelanggaran} {e.pelanggaran} [Mohon Diisi] [Mohon Diisi]
  4. Temuan Lain: {isEditTemuanLain ? }
      {dataSuratBA?.temuanLain.map((value) =>
    1. {value}
    2. ) || autoSaveDataSuratBA?.temuanLain.map((value) =>
    3. {value}
    4. )}
  5. Hal-hal yang memberatkan, sebagai berikut: {isEditKeberatan ? }
      {dataSuratBA?.memberatkan.map((value) =>
    1. {value}
    2. ) || autoSaveDataSuratBA?.memberatkan.map((value) =>
    3. {value}
    4. )}
  6. hal-hal yang meringankan, sebagai berikut: {isEditMeringankan ? }
      {dataSuratBA?.meringankan.map((value) =>
    1. {value}
    2. ) || autoSaveDataSuratBA?.meringankan.map((value) =>
    3. {value}
    4. )}
  7. Berdasarkan pembahasan yang dilakukan, disepakati untuk merekomendasikan “Sanksi Administratif berupa {isEditSanksi && { this.setState({ sanksi: this.refs.inputsanksi.value }, this.setDataSuratBA) }} />

Demikian Laporan Evaluasi dan Pembahasan ini dibuat dengan sesungguhnya dan telah dibaca dan dicermati oleh peserta rapat yang hadir.

Link Berhasil Disalin

{dataLaporan ? dataLaporan.data?.peserta_penetapan_sanksi?.map((value, index) => ( )) : ""}
PESERTA RAPAT PENYUSUNAN REKOMENDASI
No Nama Tanda Tangan
{index + 1} {value.nama}
{/*
PESERTA RAPAT PENYUSUNAN REKOMENDASI
{dataLaporan ? dataLaporan.data?.peserta_penetapan_sanksi?.map((value) => (
{value.nama}
)) : ""}
*/}
); } } export default BeritaAcara