import { CheckIcon, ClockIcon, EllipsisVerticalIcon, MagnifyingGlassIcon } from '@heroicons/react/24/outline' import { toQuery } from 'lodash-contrib' import _ from 'lodash' import { useRouter } from 'next/router' import { useState } from 'react' import useInvoices from '../hooks/useInvoices' import Spinner from '@/core/components/elements/Spinner/Spinner' import Alert from '@/core/components/elements/Alert/Alert' import Pagination from '@/core/components/elements/Pagination/Pagination' import Link from '@/core/components/elements/Link/Link' import currencyFormat from '@/core/utils/currencyFormat' import BottomPopup from '@/core/components/elements/Popup/BottomPopup' import { downloadInvoice, downloadTaxInvoice } from '../utils/invoices' import MobileView from '@/core/components/views/MobileView' import DesktopView from '@/core/components/views/DesktopView' import Menu from '@/lib/auth/components/Menu' const Invoices = () => { const router = useRouter() const { q = '', page = 1 } = router.query const limit = 15 const query = { name: q, offset: (page - 1) * limit, limit } const { invoices } = useInvoices({ query }) const [inputQuery, setInputQuery] = useState(q) const [toOthers, setToOthers] = useState(null) const pageCount = Math.ceil(invoices?.data?.invoiceTotal / limit) let pageQuery = _.omit(query, ['limit', 'offset']) pageQuery = _.pickBy(pageQuery, _.identity) pageQuery = toQuery(pageQuery) const handleSubmit = (e) => { e.preventDefault() router.push(`/my/invoices?q=${inputQuery}`) } return ( <>
setInputQuery(e.target.value)} />
{invoices.isLoading && (
)} {!invoices.isLoading && invoices.data?.invoices?.length === 0 && ( Tidak ada invoice )} {invoices.data?.invoices?.map((invoice, index) => (
No. Invoice

{invoice.name}

{invoice.amountResidual > 0 ? (
Belum Lunas
) : (
Lunas
)} setToOthers(invoice)} />

{invoice.invoiceDate}

{invoice.paymentTerm}


No. Purchase Order

{invoice.purchaseOrderName || '-'}

Total Invoice

{currencyFormat(invoice.amountTotal)}

{invoice.efaktur ? (
Faktur Pajak
) : (
Faktur Pajak
)}
))} setToOthers(null)}>

Invoice & Faktur Pajak{' '} {invoices?.data?.invoices ? `(${invoices?.data?.invoices.length})` : ''}

setInputQuery(e.target.value)} />
{invoices.isLoading && ( )} {!invoices.isLoading && (!invoices?.data?.invoices || invoices?.data?.invoices?.length == 0) && ( )} {invoices.data?.invoices?.map((invoice) => ( ))}
No. Invoice No. PO Tanggal Salesperson Status Total
Tidak ada invoice
{invoice.name} {invoice.purchaseOrderName || '-'} {invoice.invoiceDate} {invoice.sales} {invoice.amountResidual > 0 ? (
Belum Lunas
) : (
Lunas
)}
{currencyFormat(invoice.amountTotal)}
) } export default Invoices