import { useRouter } from 'next/router' import { useState } from 'react' import { toast } from 'react-hot-toast' import { EllipsisVerticalIcon, MagnifyingGlassIcon } from '@heroicons/react/24/outline' import { downloadPurchaseOrder, downloadQuotation } from '../utils/transactions' import useTransactions from '../hooks/useTransactions' import currencyFormat from '@/core/utils/currencyFormat' import cancelTransactionApi from '../api/cancelTransactionApi' import TransactionStatusBadge from './TransactionStatusBadge' import Spinner from '@/core/components/elements/Spinner/Spinner' import Link from '@/core/components/elements/Link/Link' import BottomPopup from '@/core/components/elements/Popup/BottomPopup' import Pagination from '@/core/components/elements/Pagination/Pagination' import { toQuery } from 'lodash-contrib' import _ from 'lodash' import Alert from '@/core/components/elements/Alert/Alert' const Transactions = () => { const router = useRouter() const { q = '', page = 1 } = router.query const limit = 10 const query = { name: q, offset: (page - 1) * limit, limit } const { transactions } = useTransactions({ query }) const [inputQuery, setInputQuery] = useState(q) const [toOthers, setToOthers] = useState(null) const [toCancel, setToCancel] = useState(null) const submitCancelTransaction = async () => { const isCancelled = await cancelTransactionApi({ transaction: toCancel }) if (isCancelled) { toast.success('Berhasil batalkan transaksi') transactions.refetch() } setToCancel(null) } const pageCount = Math.ceil(transactions?.data?.saleOrderTotal / limit) let pageQuery = _.omit(query, ['limit', 'offset']) pageQuery = _.pickBy(pageQuery, _.identity) pageQuery = toQuery(pageQuery) const handleSubmit = (e) => { e.preventDefault() router.push(`/my/transactions?q=${inputQuery}`) } return (
setInputQuery(e.target.value)} />
{transactions.isLoading && (
)} {!transactions.isLoading && transactions.data?.saleOrders?.length === 0 && ( Tidak ada data transaksi )} {transactions.data?.saleOrders?.map((saleOrder, index) => (
No. Transaksi

{saleOrder.name}

setToOthers(saleOrder)} />
No. Purchase Order

{saleOrder.purchaseOrderName || '-'}

Total Invoice

{saleOrder.invoiceCount} Invoice

Sales

{saleOrder.sales}

Total Harga

{currencyFormat(saleOrder.amountTotal)}

))} setToOthers(null)} >
setToCancel(null)} title='Batalkan Transaksi' >
Apakah anda yakin membatalkan transaksi{' '} {toCancel?.name}?
) } export default Transactions