From ed950b23d50f9b3993cfd2ac2386a5b3a68d5e57 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Mon, 20 Feb 2023 17:03:28 +0700 Subject: fix --- .../components/TransactionStatusBadge.jsx | 45 +++++++ src/lib/transaction/components/Transactions.jsx | 149 +++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 src/lib/transaction/components/TransactionStatusBadge.jsx create mode 100644 src/lib/transaction/components/Transactions.jsx (limited to 'src/lib/transaction/components') diff --git a/src/lib/transaction/components/TransactionStatusBadge.jsx b/src/lib/transaction/components/TransactionStatusBadge.jsx new file mode 100644 index 00000000..28fe714a --- /dev/null +++ b/src/lib/transaction/components/TransactionStatusBadge.jsx @@ -0,0 +1,45 @@ +const TransactionStatusBadge = ({ status }) => { + let badgeProps = { + className: ['h-fit'], + text: '' + } + switch (status) { + case 'cancel': + badgeProps.className.push('badge-solid-red') + badgeProps.text = 'Pesanan batal' + break + case 'draft': + badgeProps.className.push('badge-red') + badgeProps.text = 'Pending quotation' + break + case 'waiting': + badgeProps.className.push('badge-yellow') + badgeProps.text = 'Pesanan diterima' + break + case 'sale': + badgeProps.className.push('badge-yellow') + badgeProps.text = 'Pesanan diproses' + break + case 'shipping': + badgeProps.className.push('badge-green') + badgeProps.text = 'Pesanan dikirim' + break + case 'partial_shipping': + badgeProps.className.push('badge-green') + badgeProps.text = 'Dikirim sebagian' + break + case 'done': + badgeProps.className.push('badge-solid-green') + badgeProps.text = 'Pesanan selesai' + break + } + badgeProps.className = badgeProps.className.join(' ') + + return ( +
+ { badgeProps.text } +
+ ) +} + +export default TransactionStatusBadge \ No newline at end of file diff --git a/src/lib/transaction/components/Transactions.jsx b/src/lib/transaction/components/Transactions.jsx new file mode 100644 index 00000000..97eb5f91 --- /dev/null +++ b/src/lib/transaction/components/Transactions.jsx @@ -0,0 +1,149 @@ +import { useRouter } from "next/router" +import { getAuth } from "@/core/utils/auth" +import { useState } from "react" +import { toast } from "react-hot-toast" +import { EllipsisVerticalIcon } 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" + +const Transactions = () => { + const auth = getAuth() + const router = useRouter() + const { + q = '', + page = 1 + } = router.query + + const { transactions } = useTransactions({ + partnerId: auth?.partnerId, + query: { + name: q, + limit: 30, + offset: (page - 1) * 30 + } + }) + + const [ toOthers, setToOthers ] = useState(null) + const [ toDelete, setToDelete ] = useState(null) + + const submitCancelTransaction = async () => { + const isCancelled = await cancelTransactionApi({ + partnerId: auth.partnerId, + transaction: toDelete + }) + if (isCancelled) { + toast.success('Berhasil batalkan transaksi') + transactions.refetch() + } + setToDelete(null) + } + + return ( +
+
+ { transactions.isLoading && ( +
+ +
+ ) } + { 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)}> +
+ + + +
+
+ + setToDelete(null)} + title="Batalkan Transaksi" + > +
+ Apakah anda yakin membatalkan transaksi {toDelete?.name}? +
+
+ + +
+
+
+ ) +} + +export default Transactions \ No newline at end of file -- cgit v1.2.3