import React, { Component } from "react"; import ContentWrapper from "@/components/Layout/ContentWrapper"; import { Row, Col, Button } from "reactstrap"; import { getPelaporan } from "@/actions/pelaporan"; import { getGraph, getExcel } from "@/actions/graph"; import CaseProgress from "@/components/Delegasi/CaseProgress"; import TableLaporan from "@/components/Main/TableLaporan"; import { connect } from "react-redux"; import Loader from "@/components/Common/Loader"; import Router from "next/router"; import { createLog } from "@/actions/log"; import swal from "sweetalert2"; import { getCsrf } from "../../../actions/security"; class Pelaporan extends Component { constructor(props) { super(props); this.state = { pelaporan: {}, graph: {}, tahun: new Date().getFullYear(), }; } componentDidMount = async () => { const { token } = this.props; const getTokenCsrf = await getCsrf(); const _csrf = getTokenCsrf.token; await createLog(token, { aktivitas: "Mengakses halaman Laporan Delegasi", menu: "Laporan Delegasi", _csrf: _csrf }); const pelaporan = await getPelaporan(this.props.token, { delegasi: true }); const graph = await getGraph(this.props.token, { jumlahLaporan: true }); this.setState({ pelaporan, graph }); }; nextButton = async () => { const tahun = this.state.tahun + 1; const graph = await getGraph(this.props.token, { jumlahLaporan: true, tahun }); this.setState({ graph, tahun }); }; prevButton = async () => { const tahun = this.state.tahun - 1; const graph = await getGraph(this.props.token, { jumlahLaporan: true, tahun }); this.setState({ graph, tahun }); }; shouldComponentUpdate = (prevProps, prevState) => { if (prevState.graph !== this.state.graph) return true; }; excel = () => { const url = getExcel(this.props.token, "Laporan Delegasi", { tahun: this.state.tahun }); Router.push(url); }; excelMenu = () => { const url = getExcel(this.props.token, "Laporan", { tahun: this.state.tahun, pelaporan: true, }); if (this.state.graph.data.jumlah_laporan.dikti && this.state.graph.data.jumlah_laporan.ditutup && this.state.graph.data.jumlah_laporan.lldikti) { Router.push(url); } else { swal.fire({ title: "Data Kosong", icon: "error", confirmButtonColor: "#3e3a8e", }); } }; excelSemua = () => { const url = getExcel(this.props.token, "Laporan", { tahun: this.state.tahun, pelaporan: true, penjadwalan: true, pemeriksaan: true, sanksi: true, }); if (this.state.graph.data.jumlah_laporan.dikti && this.state.graph.data.jumlah_laporan.ditutup && this.state.graph.data.jumlah_laporan.lldikti) { Router.push(url); } else { swal.fire({ title: "Data Kosong", icon: "error", confirmButtonColor: "#3e3a8e", }); } }; render() { const { pelaporan, graph } = this.state; return (
Laporan Delegasi
{graph?.data ? : } {pelaporan?.data ? : }
); } } const mapStateToProps = (state) => ({ user: state.user, token: state.token }); export default connect(mapStateToProps)(Pelaporan);