| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- import Scrollable from "@/components/Common/Scrollable";
- import moment from "moment";
- import { Col, FormGroup, Table, Button } from "reactstrap";
- import { API_URL } from "@/env";
- import React, { Component } from "react";
- import { getOneSanksi } from "../../actions/sanksi";
- import ReactToPrint, { PrintContextConsumer } from 'react-to-print';
- import ComponentBA from "../Sanksi/SuratBA _detail";
- import Link from "next/dist/client/link";
- class DetailSanksi extends Component {
- constructor(props) {
- super(props);
- this.state = {
- sanksi: {},
- };
- }
- static getInitialProps = async ({ query }) => {
- return { query };
- };
- componentDidMount = async () => {
- const { query, token } = this.props;
- const sanksi = await getOneSanksi(token, query.id);
- this.setState({ sanksi });
- };
- render() {
- const { sanksi } = this.state
- return (
- <>
- <p className="lead bb">Detail Sanksi</p>
- {sanksi.data &&
- <form className="form-horizontal">
- <FormGroup row>
- <Col md="4">Nomor Sanksi:</Col>
- <Col md="8">
- <strong>{sanksi.data.no_sanksi}</strong>
- </Col>
- </FormGroup>
- <FormGroup row>
- <Col md="4">Nama Perguruan Tinggi:</Col>
- <Col md="8">
- <strong>{sanksi.data.laporan.pt.nama}</strong>
- </Col>
- </FormGroup>
- <FormGroup row>
- <Col md="4">Keterangan:</Col>
- <Col md="8">
- <Scrollable height="100px" className="list-group">
- <p>{sanksi.data.keterangan}</p>
- </Scrollable>
- </Col>
- </FormGroup>
- <FormGroup row>
- <Col md="4">Tanggal Penetapan Sanksi:</Col>
- <Col md="8">
- <strong>{moment(sanksi.data.masa_berlaku?.from_date).locale("id").format("D MMMM YYYY")}</strong>
- </Col>
- </FormGroup>
- {
- sanksi.data.tanggal_akhir_keberatan &&
- <FormGroup row>
- <Col md="4">Tanggal Akhir Pengajuan Keberatan</Col>
- <Col md="8">
- <strong>{moment(sanksi.data.tanggal_akhir_keberatan).locale("id").format("D MMMM YYYY")}</strong>
- </Col>
- </FormGroup>
- }
- {
- sanksi.data.jawaban?.keberatan?.tanggal_akhir_banding &&
- <FormGroup row>
- <Col md="4">Tanggal Akhir Pengajuan Banding:</Col>
- <Col md="8">
- <strong>{moment(sanksi.data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>
- </Col>
- </FormGroup>
- }
- <FormGroup row>
- <Col md="4">Dokumen Sanksi:</Col>
- <Col md="8">
- <Scrollable height="120px" className="list-group">
- <table className="table table-bordered bg-transparent">
- <tbody>
- {sanksi.data.dokumen.map((e) => (
- <tr>
- <td style={{ width: "30px" }}>
- <em className="fa-lg far fa-file-code"></em>
- </td>
- <td>
- <a className="text-muted" href={e.path} target="_blank" download={e.judul}>
- {e.judul}
- </a>
- </td>
- </tr>
- ))}
- </tbody>
- </table>
- </Scrollable>
- </Col>
- </FormGroup>
- <FormGroup row>
- <Col md="4">Dokumen Acara Pleno:</Col>
- <Col md="8">
- <div>
- <ReactToPrint
- trigger={() => {
- return <span>
- <Link
- href={{
- pathname: "/app/sanksi/detail",
- query: { id: this.props.query.id },
- }}>
- <Button color className="btn-labeled-4 mt-0">
- <h5 className="p-0 mt-2"><em className="fas fa-download mr-2" />Print dan Download</h5>
- </Button>
- </Link>
- </span>
- }}
- content={() => this.componentRef}
- />
- <div style={{ display: "none" }}>
- <ComponentBA ref={el => (this.componentRef = el)} query={this.props.query} />
- </div>
- </div>{/* <BeritaAcara
- query={this.props.query}
- /> */}
- </Col>
- </FormGroup>
- <FormGroup row>
- <Col md={12}>
- <div className="card b">
- <div className="card-body bb">
- <Table responsive>
- <thead>
- <tr>
- <th>Jenis Pelanggaran</th>
- <th>Sanksi</th>
- </tr>
- </thead>
- <tbody>
- {sanksi.data.pelanggaran.map((jp, index) => (
- <tr key={jp._id}>
- <td width={50}>
- <div className="media align-items-center">
- <div className="media-body d-flex">
- <div>
- <p>{jp.pelanggaran}</p>
- <p>TMT : {jp.tmt_bulan} Bulan</p>
- <p>Jenis Sanksi Administratif : {jp.label_sanksi}</p>
- </div>
- </div>
- </div>
- </td>
- <td width={50}>
- <div className="media align-items-center">
- <div className="media-body d-flex">
- <div>
- <p>{jp.sanksi}</p>
- <p>Keterangan : {jp.keterangan_sanksi}</p>
- </div>
- </div>
- </div>
- </td>
- </tr>
- ))}
- </tbody>
- </Table>
- </div>
- </div>
- </Col>
- </FormGroup>
- </form>
- }
- </>
- )
- }
- }
- // function DetailSanksi({ data, noTitle = false, query }) {
- // return (
- // <>
- // {noTitle ? "" : <p className="lead bb">Detail Sanksi</p>}
- // <form className="form-horizontal">
- // <FormGroup row>
- // <Col md="4">Nomor Sanksi:</Col>
- // <Col md="8">
- // <strong>{data.no_sanksi}</strong>
- // </Col>
- // </FormGroup>
- // <FormGroup row>
- // <Col md="4">Nama Perguruan Tinggi:</Col>
- // <Col md="8">
- // <strong>{data.laporan.pt.nama}</strong>
- // </Col>
- // </FormGroup>
- // <FormGroup row>
- // <Col md="4">Keterangan:</Col>
- // <Col md="8">
- // <Scrollable height="100px" className="list-group">
- // <p>{data.keterangan}</p>
- // </Scrollable>
- // </Col>
- // </FormGroup>
- // <FormGroup row>
- // <Col md="4">Tanggal Penetapan Sanksi:</Col>
- // <Col md="8">
- // <strong>{moment(data.masa_berlaku?.from_date).locale("id").format("D MMMM YYYY")}</strong>
- // </Col>
- // </FormGroup>
- // {
- // data.tanggal_akhir_keberatan &&
- // <FormGroup row>
- // <Col md="4">Tanggal Akhir Pengajuan 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 Pengajuan Banding:</Col>
- // <Col md="8">
- // <strong>{moment(data.jawaban?.keberatan?.tanggal_akhir_banding).locale("id").format("D MMMM YYYY")}</strong>
- // </Col>
- // </FormGroup>
- // }
- // <FormGroup row>
- // <Col md="4">Dokumen Sanksi:</Col>
- // <Col md="8">
- // <Scrollable height="120px" className="list-group">
- // <table className="table table-bordered bg-transparent">
- // <tbody>
- // {data.dokumen.map((e) => (
- // <tr>
- // <td style={{ width: "30px" }}>
- // <em className="fa-lg far fa-file-code"></em>
- // </td>
- // <td>
- // <a className="text-muted" href={e.path} target="_blank" download={e.judul}>
- // {e.judul}
- // </a>
- // </td>
- // </tr>
- // ))}
- // </tbody>
- // </table>
- // </Scrollable>
- // </Col>
- // </FormGroup>
- // <FormGroup row>
- // <Col md="4">Dokumen Acara Pleno:</Col>
- // <Col md="8">
- // <BeritaAcara
- // query={query}
- // />
- // </Col>
- // </FormGroup>
- // <FormGroup row>
- // <Col md={12}>
- // <div className="card b">
- // <div className="card-body bb">
- // <Table responsive>
- // <thead>
- // <tr>
- // <th>Jenis Pelanggaran</th>
- // <th>Sanksi</th>
- // </tr>
- // </thead>
- // <tbody>
- // {data.pelanggaran.map((jp, index) => (
- // <tr key={jp._id}>
- // <td width={50}>
- // <div className="media align-items-center">
- // <div className="media-body d-flex">
- // <div>
- // <p>{jp.pelanggaran}</p>
- // <p>TMT : {jp.tmt_bulan} Bulan</p>
- // <p>Jenis Sanksi Administratif : {jp.label_sanksi}</p>
- // </div>
- // </div>
- // </div>
- // </td>
- // <td width={50}>
- // <div className="media align-items-center">
- // <div className="media-body d-flex">
- // <div>
- // <p>{jp.sanksi}</p>
- // <p>Keterangan : {jp.keterangan_sanksi}</p>
- // </div>
- // </div>
- // </div>
- // </td>
- // </tr>
- // ))}
- // </tbody>
- // </Table>
- // </div>
- // </div>
- // </Col>
- // </FormGroup>
- // </form>
- // </>
- // );
- // }
- export default DetailSanksi;
|