import { DatatablePrimeV2 } from '@/components/Datatables-v2' import { Belakang } from '@/components/Layouts' import { Judul } from '@/components/TextCustom' import { SPMList } from '@/services/otorisasi/spm-service' import { Formik } from 'formik' import moment from 'moment' import Head from 'next/head' import Link from 'next/link' import { Button } from 'primereact/button' import { Calendar } from 'primereact/calendar' import { Card } from 'primereact/card' import { Column } from 'primereact/column' import { DataTable } from 'primereact/datatable' import { InputText } from 'primereact/inputtext' import { Tag } from 'primereact/tag' import { Toast } from 'primereact/toast' import React, { useEffect, useRef, useState } from 'react' export default function Ppspm() { const toast = useRef(null) const [data, setData] = useState([]) const [loading, setLoading] = useState(false) const [search, setSearch] = useState({}) // DATATABLE const [first, setFirst] = useState(0) const [page, setPage] = useState(1) const [length, setLength] = useState(10) const [totalRecords, setTotalRecords] = useState(0) const [orderDir, setOrderDir] = useState('desc') const [orderCol, setOrderCol] = useState(2) const [sort, setSort] = useState([]) const [expandedRows, setExpandedRows] = useState(null) useEffect(() => { setLoading(true) let params = { draw: page, start: first, length: length, order_col: orderCol, order_dir: orderDir, } const { no_spp, tanggal_input } = search params.no_spp = no_spp ? no_spp : '' params.tanggal_input = tanggal_input ? moment(tanggal_input).format('YYYY-MM-DD') : '' SPMList(params).then((res) => { setData(res.data) setLoading(false) setTotalRecords( res.recordsFiltered === 1 ? 1 : res.recordsFiltered < 1 ? res.recordsFiltered : res.recordsFiltered ) }) }, [page, first, length, search, orderCol, orderDir]) const actionBodyTemplate = (rowData) => { let all_spp_exist = 'all_spp_exist' in rowData ? rowData.all_spp_exist : true if (all_spp_exist) { if (rowData.detail.length > 1) { if (rowData.nama_tagihan === 'LS') { return (
{rowData.status === 6 ? ( ) : (
) } else { return '' } } else { return (
{rowData.status === 6 ? ( ) : (
) } } else { return '' } } const actionBodyTemplate2 = (rowData, belomSPM, all_spp_exist) => { return ( rowData && (
{rowData.status === 6 ? ( ) : rowData.status < 5 ? ( ) : belomSPM || !all_spp_exist ? ( ) : (
) ) } const datatableDetail = (data, all_spp_exist) => { let cekStatus = [] data.map((val) => { cekStatus.push(val.status) }) let belomSPM = cekStatus.find((val) => val < 5) return ( actionBodyTemplate2(e, belomSPM, all_spp_exist)} exportable={false} > ) } const allowExpansion = (rowData) => { return rowData.detail.length > 0 && rowData.nama_tagihan === 'GUP' } const expandRow = { expandedRows: expandedRows, onRowToggle: (e) => setExpandedRows(e.data), responsiveLayout: 'scroll', rowExpansionTemplate: (e) => { let all_spp_exist = 'all_spp_exist' in e ? e.all_spp_exist : true return datatableDetail(e.detail, all_spp_exist) }, dataKey: 'no_spp', } const Pencarian = ( { const tempTanggalInput = values.tanggal_input values.tanggal_input && Object.assign(values, { tanggal_input: moment(values.tanggal_input).format('YYYY-MM-D') }) setSearch(values) values.tanggal_input = tempTanggalInput }} > {({ values, handleChange, handleSubmit }) => { return (
) }}
) const bodyTanggal = (rowData) => { return rowData.tanggal_kirim === '-' ? rowData.tanggal_kirim : moment(rowData.tanggal_kirim).format('DD MMMM YYYY') } return ( <> PPSPM PPSPM {Pencarian} { setSort(e.multiSortMeta) if (e.multiSortMeta.length > 0) { switch (e.multiSortMeta[0].field) { case 'no_spp': setOrderCol(0) break case 'tanggal': setOrderCol(3) break } switch (e.multiSortMeta[0].order) { case -1: setOrderDir('desc') break case 1: setOrderDir('asc') break } } }} expandRow={expandRow} > ) }