import { DatatablePrimeV2 } from '@/components/Datatables-v2' import { Label } from '@/components/Label' import { Belakang } from '@/components/Layouts' import { Judul } from '@/components/TextCustom' import { TagihanDelete, TagihanList } from '@/services/pengajuan-tagihan/tagihan-service' import { JenisTagihanList } from '@/services/referensi/jenisTagihan-service' import { Formik } from 'formik' import moment from 'moment' import Head from 'next/head' import { useRouter } from 'next/router' 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 { Dropdown } from 'primereact/dropdown' import { InputText } from 'primereact/inputtext' import { Toast } from 'primereact/toast' import React, { useEffect, useRef, useState } from 'react' export default function PengajuanTagihan() { const toast = useRef(null) const [data, setData] = useState([]) const [dialogDelete, setDialogDelete] = useState({ visible: false }) const [expandedRows, setExpandedRows] = useState(null) const [ddJenisTagihan, setDdJenisTagihan] = useState([]) const [search, setSearch] = useState({}) const router = useRouter() const [loading, setLoading] = useState(false) const [refresh, setRefresh] = useState(0) // DATATABLE const [sort, setSort] = useState([]) const [orderDir, setOrderDir] = useState('desc') const [orderCol, setOrderCol] = useState(2) const [first, setFirst] = useState(0) const [page, setPage] = useState(0) const [length, setLength] = useState(10) const [totalRecords, setTotalRecords] = useState(0) useEffect(() => { JenisTagihanList().then((res) => setDdJenisTagihan(res.data)) }, []) useEffect(() => { setLoading(true) let params = { draw: page, start: first, length: length, order_col: orderCol, order_dir: orderDir, } const { no_spp, jenis_tagihan, tanggal_input } = search params.no_spp = no_spp ? no_spp : '' params.jenis_tagihan = jenis_tagihan ? jenis_tagihan : '' params.tanggal_input = tanggal_input ? moment(tanggal_input).format('YYYY-MM-DD') : '' TagihanList(params).then((res) => { setData(res.data) setLoading(false) setTotalRecords( res.recordsFiltered === 1 ? 1 : res.recordsFiltered < 1 ? res.recordsFiltered : res.recordsFiltered ) }) }, [page, first, length, orderCol, orderDir, refresh, search]) const editTagihan = (data) => { if (data.tanggal_kirim === '-' && data.detail.length > 0) { router.push({ pathname: '/pengajuan-tagihan/draft/[draft]', query: { draft: data.tagihan_id } }) } else if (data.tanggal_kirim === '-') { router.push({ pathname: '/pengajuan-tagihan/force-close/[force]', query: { force: data.tagihan_id } }) } else { router.push({ pathname: '/pengajuan-tagihan/ditolak/[ditolak]', query: { ditolak: data.tagihan_id } }) } } const deleteTagihan = () => { TagihanDelete({ ref_id: dialogDelete.ref_id }).then((res) => { if (res.status === 'success') { setRefresh(Math.random) setDialogDelete({ visible: false }) toast.current.show({ severity: 'success', detail: res.message, closable: false, }) } else { setDialogDelete({ visible: false }) toast.current.show({ severity: 'error', detail: res.message, closable: false, }) } }) } const actionBodyTemplate = (rowData) => { return (