summaryrefslogtreecommitdiff
path: root/src/pages/my/transactions
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-01-26 17:02:02 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-01-26 17:02:02 +0700
commit902e5dabbb1ab0612764983c094af398e5f636ee (patch)
treeb1b33fed082204be057c50053aee15eede6cce25 /src/pages/my/transactions
parente340f5c4f4c47cde90e7676fcf71b55ef50e7c23 (diff)
Invoice and invoice detail
Diffstat (limited to 'src/pages/my/transactions')
-rw-r--r--src/pages/my/transactions/[id].js89
-rw-r--r--src/pages/my/transactions/index.js128
2 files changed, 0 insertions, 217 deletions
diff --git a/src/pages/my/transactions/[id].js b/src/pages/my/transactions/[id].js
deleted file mode 100644
index 110915cf..00000000
--- a/src/pages/my/transactions/[id].js
+++ /dev/null
@@ -1,89 +0,0 @@
-import AppBar from "@/components/layouts/AppBar";
-import Layout from "@/components/layouts/Layout";
-import LineDivider from "@/components/elements/LineDivider";
-import WithAuth from "@/components/auth/WithAuth";
-import { useEffect, useState } from "react";
-import apiOdoo from "@/core/utils/apiOdoo";
-import { useRouter } from "next/router";
-import { useAuth } from "@/core/utils/auth";
-import VariantCard from "@/components/variants/VariantCard";
-import currencyFormat from "@/core/utils/currencyFormat";
-import Disclosure from "@/components/elements/Disclosure";
-import DescriptionRow from "@/components/elements/DescriptionRow";
-import { TransactionDetailAddress } from "@/components/transactions/TransactionDetail";
-import { SkeletonList } from "@/components/elements/Skeleton";
-
-export default function DetailTransactions() {
- const router = useRouter();
- const { id } = router.query;
- const [ auth ] = useAuth();
- const [ transaction, setTransaction ] = useState(null);
-
- useEffect(() => {
- if (auth) {
- const loadTransaction = async () => {
- const dataTransaction = await apiOdoo('GET', `/api/v1/partner/${auth?.partner_id}/sale_order/${id}`);
- setTransaction(dataTransaction);
- }
- loadTransaction();
- }
- }, [ auth, id ]);
-
- return (
- <WithAuth>
- <Layout className="pb-4">
- <AppBar title="Detail Transaksi" />
-
- { transaction ? (
- <>
- <div className="p-4 flex flex-col gap-y-4">
- <DescriptionRow label="Status Transaksi">
- <span className="badge-green">Pending Quotation</span>
- </DescriptionRow>
- <DescriptionRow label="No Transaksi">
- { transaction?.name }
- </DescriptionRow>
- <DescriptionRow label="Purchase Order">
- { transaction?.po_name || '-' }
- </DescriptionRow>
- <DescriptionRow label="Ketentuan Pembayaran">
- { transaction?.payment_term }
- </DescriptionRow>
- <DescriptionRow label="Nama Sales">
- { transaction?.sales }
- </DescriptionRow>
- <DescriptionRow label="Waktu Transaksi">
- { transaction?.date_order }
- </DescriptionRow>
- </div>
-
- <LineDivider />
-
- <Disclosure
- label="Detail Produk"
- />
-
- <div className="mt-2 p-4 pt-0 flex flex-col gap-y-3">
- { transaction?.products?.map((product, index) => (
- <VariantCard
- key={index}
- data={product}
- />
- )) }
- <div className="flex justify-between mt-3 font-medium">
- <p>Total Belanja</p>
- <p>{ currencyFormat(transaction?.amount_total || 0) }</p>
- </div>
- </div>
-
- <TransactionDetailAddress transaction={transaction} />
- </>
- ) : (
- <div className="p-4 py-6">
- <SkeletonList number={12} />
- </div>
- ) }
- </Layout>
- </WithAuth>
- );
-} \ No newline at end of file
diff --git a/src/pages/my/transactions/index.js b/src/pages/my/transactions/index.js
deleted file mode 100644
index c31336f2..00000000
--- a/src/pages/my/transactions/index.js
+++ /dev/null
@@ -1,128 +0,0 @@
-import { useRouter } from "next/router";
-import AppBar from "@/components/layouts/AppBar";
-import BottomPopup from "@/components/elements/BottomPopup";
-import Layout from "@/components/layouts/Layout";
-import WithAuth from "@/components/auth/WithAuth";
-import { useEffect, useRef, useState } from "react";
-import { useAuth } from "@/core/utils/auth";
-import apiOdoo from "@/core/utils/apiOdoo";
-import currencyFormat from "@/core/utils/currencyFormat";
-import { EllipsisVerticalIcon, MagnifyingGlassIcon } from "@heroicons/react/24/outline";
-import Link from "@/components/elements/Link";
-import Pagination from "@/components/elements/Pagination";
-import Alert from "@/components/elements/Alert";
-
-export default function Transactions() {
- const [ auth ] = useAuth();
- const router = useRouter();
- const {
- q,
- page = 1
- } = router.query;
-
- const [ transactions, setTransactions ] = useState([]);
- const [ activePopupId, setActivePopupId ] = useState(null);
-
- const [ pageCount, setPageCount ] = useState(0);
- const [ isLoading, setIsLoading ] = useState(true);
-
- const searchQueryRef = useRef();
-
- useEffect(() => {
- const loadTransactions = async () => {
- if (auth) {
- const limit = 10;
- let offset = (page - 1) * 10;
- let queryParams = [`limit=${limit}`, `offset=${offset}`];
- if (q) queryParams.push(`name=${q}`);
- queryParams = queryParams.join('&');
- queryParams = queryParams ? '?' + queryParams : '';
-
- const dataTransactions = await apiOdoo('GET', `/api/v1/partner/${auth.partner_id}/sale_order${queryParams}`);
- setTransactions(dataTransactions);
- setPageCount(Math.ceil(dataTransactions.sale_order_total / limit));
- setIsLoading(false);
- };
- }
- loadTransactions();
- }, [ auth, q, page ]);
-
- const actionSearch = (e) => {
- e.preventDefault();
- let queryParams = [];
- if (searchQueryRef.current.value) queryParams.push(`q=${searchQueryRef.current.value}`);
- queryParams = queryParams.join('&');
- queryParams = queryParams ? `?${queryParams}` : '';
- router.push(`/my/transactions${queryParams}`);
- };
-
- return (
- <WithAuth>
- <Layout>
- <AppBar title="Transaksi" />
-
- <form onSubmit={actionSearch} className="p-4 pb-0 flex gap-x-4">
- <input
- type="text"
- className="form-input"
- placeholder="Cari Transaksi"
- ref={searchQueryRef}
- defaultValue={q}
- />
- <button type="submit" className="border border-gray_r-7 rounded px-3">
- <MagnifyingGlassIcon className="w-5"/>
- </button>
- </form>
-
- <div className="p-4 flex flex-col gap-y-5">
- { transactions?.sale_order_total === 0 && !isLoading && (
- <Alert type="info" className="text-center">
- Transaksi tidak ditemukan
- </Alert>
- ) }
- { transactions?.sale_orders?.map((transaction, index) => (
- <div className="p-4 border border-gray_r-7 rounded-md" key={index}>
- <div className="grid grid-cols-2">
- <Link href={`/my/transactions/${transaction.id}`}>
- <span className="text-caption-2 text-gray_r-11">No. Transaksi</span>
- <h2 className="text-red_r-11 mt-1">{ transaction.name }</h2>
- </Link>
- <div className="flex gap-x-1 justify-end">
- <div className="badge-green h-fit">Pending</div>
- <EllipsisVerticalIcon className="w-5 h-5" onClick={() => setActivePopupId(transaction.id)} />
- </div>
- </div>
- <Link href={`/my/transactions/${transaction.id}`} className="grid grid-cols-2 mt-3">
- <div>
- <span className="text-caption-2 text-gray_r-11">Dilayani Oleh</span>
- <p className="mt-1 font-medium text-gray_r-12">{ transaction.sales }</p>
- </div>
- <div className="text-right">
- <span className="text-caption-2 text-gray_r-11">Total Harga</span>
- <p className="mt-1 font-medium text-gray_r-12">{ currencyFormat(transaction.amount_total) }</p>
- </div>
- </Link>
- </div>
- )) }
- </div>
-
- <div className="pb-6">
- <Pagination currentPage={page} pageCount={pageCount} url={`/my/transactions${q ? `?q=${q}` : ''}`} />
- </div>
-
- { transactions?.sale_orders?.length > 0 && (
- <BottomPopup
- title="Lainnya"
- active={activePopupId}
- closePopup={() => setActivePopupId(null)}
- >
- <div className="flex flex-col gap-y-4">
- <p>Download Quotation</p>
- <p>Batalkan Transaksi</p>
- </div>
- </BottomPopup>
- ) }
- </Layout>
- </WithAuth>
- );
-}; \ No newline at end of file