From 0d28dc8ff5fb8c5399e356ed6ecae4fce2019ca6 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Sat, 31 May 2025 08:55:43 +0700 Subject: fix repeat-order --- .../components/elements/Navbar/NavbarDesktop.jsx | 2 +- .../elements/Navbar/NavbarUserDropdown.jsx | 1 - src/core/components/layouts/BasicLayout.jsx | 2 + src/lib/auth/components/Menu.jsx | 14 --- src/lib/quotation/components/Quotationheader.jsx | 23 ++-- src/lib/transaction/components/Transactions.jsx | 124 ++++++++++++++++++--- src/pages/my/transactions/index.jsx | 4 +- 7 files changed, 127 insertions(+), 43 deletions(-) diff --git a/src/core/components/elements/Navbar/NavbarDesktop.jsx b/src/core/components/elements/Navbar/NavbarDesktop.jsx index 03d7fa0c..db4fcbb8 100644 --- a/src/core/components/elements/Navbar/NavbarDesktop.jsx +++ b/src/core/components/elements/Navbar/NavbarDesktop.jsx @@ -51,7 +51,7 @@ const NavbarDesktop = () => { const { transactions } = useTransactions({ query }); const data = transactions?.data?.saleOrders.filter( - (transaction) => transaction.status === 'draft' + (transaction) => transaction.status === 'waiting' ); const [showPopup, setShowPopup] = useState(false); diff --git a/src/core/components/elements/Navbar/NavbarUserDropdown.jsx b/src/core/components/elements/Navbar/NavbarUserDropdown.jsx index b2ad6309..5fe0cfa7 100644 --- a/src/core/components/elements/Navbar/NavbarUserDropdown.jsx +++ b/src/core/components/elements/Navbar/NavbarUserDropdown.jsx @@ -16,7 +16,6 @@ const NavbarUserDropdown = () => {
Profil Saya - Daftar Quotation Daftar Transaksi Daftar Pengiriman Invoice & Faktur Pajak diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 2998fa63..81f8b41f 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -54,6 +54,8 @@ const BasicLayout = ({ children }) => { useEffect(() => { const handleMouseOut = (event) => { + + if (!buttonRef.current) return; const rect = buttonRef.current.getBoundingClientRect(); if (event.clientY <= 0) { setButtonPosition(rect); diff --git a/src/lib/auth/components/Menu.jsx b/src/lib/auth/components/Menu.jsx index df33314c..20bc54fd 100644 --- a/src/lib/auth/components/Menu.jsx +++ b/src/lib/auth/components/Menu.jsx @@ -84,20 +84,6 @@ const Menu = () => {
Menu
- -
- -

Daftar Quotation

-
-
{ }; const getCart = () => { - if (!productQuotation && auth) { + if ((productQuotation?.length === 0) && auth) { refreshCartf(); } }; @@ -62,7 +62,7 @@ const Quotationheader = (quotationCount) => { const refreshCartf = useCallback(async () => { setIsloading(true); let pendingTransactions = transactions?.data?.saleOrders.filter( - (transaction) => transaction.status === 'draft' + (transaction) => transaction.status === 'waiting' ); setProductQuotation(pendingTransactions); setCountQuotation( @@ -107,20 +107,21 @@ const Quotationheader = (quotationCount) => { }; }, []); + const handleCheckout = async () => { SetButtonTerapkan(true); let checkoutAll = await odooApi( 'POST', `/api/v1/user/${auth.id}/cart/select-all` ); - router.push('/my/quotations'); + router.push('/my/transactions'); }; return (
{ List
- Quotation + Transactions
@@ -168,7 +169,7 @@ const Quotationheader = (quotationCount) => { >
- Daftar Quotation + Daftar Transaksi

@@ -183,7 +184,7 @@ const Quotationheader = (quotationCount) => { > Login {' '} - Untuk Melihat Daftar Quotation Anda + Untuk Melihat Daftar Transaksi Anda

)} @@ -209,7 +210,7 @@ const Quotationheader = (quotationCount) => { {auth && qotation.length === 0 && !isLoading && (

- Tidak Ada Quotation + Tidak Ada Transaksi

)} @@ -225,7 +226,7 @@ const Quotationheader = (quotationCount) => {
  • @@ -241,8 +242,8 @@ const Quotationheader = (quotationCount) => {

    Status :

    -

    - Pending Quotation +

    + Pesanan Diterima

    diff --git a/src/lib/transaction/components/Transactions.jsx b/src/lib/transaction/components/Transactions.jsx index 45821901..c4651119 100644 --- a/src/lib/transaction/components/Transactions.jsx +++ b/src/lib/transaction/components/Transactions.jsx @@ -78,6 +78,8 @@ const Transactions = ({ context = '' }) => { const [dateRange, setDateRange] = useState([null, null]); // const [startDate, endDate] = dateRange; const [isOpenCalender, setIsOpenCalender] = useState(false); + const [cachedAllData, setCachedAllData] = useState(null); // Simpan data "All" + const [currentData, setCurrentData] = useState([]); // Data yang ditampilkan const parseDate = (date) => { if (null || 'null') return null; @@ -263,7 +265,16 @@ const Transactions = ({ context = '' }) => { const getAllData = async () => { const query = { name: q, - context, + offset: (pageNew - 1) * limitNew, + limit: limitNew, + context: contextMap[statusNew], // gunakan contextMap + sort: sortNew, + startDate: state[0]?.startDate + ? state[0].startDate.toLocaleDateString('id-ID') + : null, + endDate: state[0]?.endDate + ? state[0].endDate.toLocaleDateString('id-ID') + : null, site: siteFilter || (auth?.webRole === null && auth?.site ? auth.site : null), }; @@ -345,22 +356,29 @@ const Transactions = ({ context = '' }) => { } }; - const handleStatusChange = (status) => { + + const handleStatusChange = async (status) => { setStatusNew(status); + setPageNew(1); - if (['quotation', 'cancel', 'diterima', ''].includes(status)) { - setcontextNew('quotation'); - } else { - setcontextNew(''); + if (status === 'all' && cachedAllData) { + setCurrentData(cachedAllData); + return; } - + const data = await fetchSite(status, 1); + if (status === 'all') { - router.push(`${router.pathname}`); - } else { - setPageNew(1); + setCachedAllData(data); } + + setCurrentData(data); }; + useEffect(() => { + setCachedAllData([]); + }, []); + + const handleReset = () => { setState([ { @@ -857,9 +875,7 @@ const Transactions = ({ context = '' }) => {

    Info Transaksi

    - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed - do eiusmod tempor incididunt ut labore et dolore magna - aliqua. + Gunakan filter status untuk mempermudah pencarian transaksi anda di Daftar Transaksi
  • @@ -928,6 +944,86 @@ const Transactions = ({ context = '' }) => {
    +
    + + {isOpenCalender && ( +
    + {/* Tombol silang di sudut kanan atas */} + + setState([item.selection])} + showSelectionPreview={true} + maxDate={new Date()} + moveRangeOnFirstSelection={false} + months={1} + ranges={state} + className='w-full' + /> + +
    + + +
    +
    + )} +

    Menampilkan {startItem}- @@ -980,7 +1076,7 @@ const Transactions = ({ context = '' }) => { {transactions.data.saleOrders.map((saleOrder, index) => (

    - + - + -- cgit v1.2.3