From 04961a55929017f77ee6801d2b7ada4c05689821 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Thu, 31 Jul 2025 15:55:05 +0700
Subject: fix repeat order
---
src/lib/quotation/components/Quotationheader.jsx | 2 +-
.../components/TransactionStatusBadge.jsx | 4 +-
src/lib/transaction/components/Transactions.jsx | 461 ++++++++++++---------
src/lib/treckingAwb/component/Manifest.jsx | 76 ----
4 files changed, 261 insertions(+), 282 deletions(-)
(limited to 'src/lib')
diff --git a/src/lib/quotation/components/Quotationheader.jsx b/src/lib/quotation/components/Quotationheader.jsx
index 6551296a..a035edc7 100644
--- a/src/lib/quotation/components/Quotationheader.jsx
+++ b/src/lib/quotation/components/Quotationheader.jsx
@@ -243,7 +243,7 @@ const Quotationheader = (quotationCount) => {
Status :
- Pesanan Diterima
+ Pesanan Diproses
diff --git a/src/lib/transaction/components/TransactionStatusBadge.jsx b/src/lib/transaction/components/TransactionStatusBadge.jsx
index e061587c..cb8cbcd9 100644
--- a/src/lib/transaction/components/TransactionStatusBadge.jsx
+++ b/src/lib/transaction/components/TransactionStatusBadge.jsx
@@ -14,11 +14,11 @@ const TransactionStatusBadge = ({ status }) => {
break
case 'waiting':
badgeProps.className.push('badge-yellow')
- badgeProps.text = 'Pesanan Diterima'
+ badgeProps.text = 'Pesanan Diproses'
break
case 'sale':
badgeProps.className.push('badge-yellow')
- badgeProps.text = 'Pesanan Diproses'
+ badgeProps.text = 'Pesanan Dikemas'
break
case 'shipping':
badgeProps.className.push('badge-green')
diff --git a/src/lib/transaction/components/Transactions.jsx b/src/lib/transaction/components/Transactions.jsx
index c4651119..acb925da 100644
--- a/src/lib/transaction/components/Transactions.jsx
+++ b/src/lib/transaction/components/Transactions.jsx
@@ -1,5 +1,5 @@
import { useRouter } from 'next/router';
-import { useEffect, useState } from 'react';
+import { useEffect, useState, useRef } from 'react';
import { toast } from 'react-hot-toast';
import {
EllipsisVerticalIcon,
@@ -34,7 +34,10 @@ import Image from '@/core/components/elements/Image/Image';
import { upsertUserCart } from '~/services/cart';
import { useProductCartContext } from '@/contexts/ProductCartContext';
import { Swiper, SwiperSlide } from 'swiper/react';
+import { Navigation } from 'swiper';
import 'swiper/css';
+import 'swiper/css/navigation';
+import { Calendar } from 'lucide-react';
import DatePicker from 'react-datepicker';
import 'react-datepicker/dist/react-datepicker.css';
import { DateRangePicker } from 'react-date-range';
@@ -45,6 +48,7 @@ import { Popover } from '@headlessui/react';
const Transactions = ({ context = '' }) => {
const auth = useAuth();
const router = useRouter();
+ const swiperRef = useRef(null);
const {
q = '',
page = 1,
@@ -80,11 +84,12 @@ const Transactions = ({ context = '' }) => {
const [isOpenCalender, setIsOpenCalender] = useState(false);
const [cachedAllData, setCachedAllData] = useState(null); // Simpan data "All"
const [currentData, setCurrentData] = useState([]); // Data yang ditampilkan
+ const calendarRef = useRef(null);
+ const [isDateSelected, setIsDateSelected] = useState(false);
const parseDate = (date) => {
- if (null || 'null') return null;
- if (!date) return null;
- if (date instanceof Date) return date; // Jika sudah Date, langsung return
+ if (!date || date === 'null') return null;
+ if (date instanceof Date) return date;
const [day, month, year] = date.split('/').map(Number);
return new Date(year, month - 1, day);
};
@@ -106,7 +111,7 @@ const Transactions = ({ context = '' }) => {
sort: sortNew,
startDate: state[0].startDate
? state[0].startDate.toLocaleDateString('id-ID')
- : state[0].startDate,
+ : null,
endDate: state[0]?.endDate?.toLocaleDateString('id-ID'),
site:
siteFilter || (auth?.webRole === null && auth?.site ? auth.site : null),
@@ -114,8 +119,9 @@ const Transactions = ({ context = '' }) => {
const statuses = [
{ id: 'all', label: 'Semua' },
{ id: 'quotation', label: 'Pending Quotation' },
- { id: 'diterima', label: 'Pesanan Diterima' },
{ id: 'diproses', label: 'Pesanan Diproses' },
+ { id: 'dikemas', label: 'Pesanan Dikemas' },
+ { id: 'partial', label: 'Dikirim Sebagian' },
{ id: 'dikirim', label: 'Pesanan Dikirim' },
{ id: 'selesai', label: 'Pesanan Selesai' },
{ id: 'cancel', label: 'Pesanan Dibatalkan' },
@@ -302,6 +308,22 @@ const Transactions = ({ context = '' }) => {
}
};
+ useEffect(() => {
+ const handleClickOutside = (event) => {
+ if (
+ calendarRef.current &&
+ !calendarRef.current.contains(event.target)
+ ) {
+ setIsOpenCalender(false);
+ }
+ };
+
+ document.addEventListener("mousedown", handleClickOutside);
+ return () => {
+ document.removeEventListener("mousedown", handleClickOutside);
+ };
+ }, []);
+
const startItem = 1 + (pageNew - 1) * limitNew;
const endItem = Math.min(
limitNew * pageNew,
@@ -438,82 +460,82 @@ const Transactions = ({ context = '' }) => {
))}
-
-
setIsOpenCalender(true)}
- >
-
- {state[0]?.startDate
- ? `${state[0].startDate.toLocaleDateString()} - ${state[0].endDate.toLocaleDateString()}`
- : 'Semua Tanggal'}
-
-
-
- {isOpenCalender && (
-
-
-
setState([item.selection])}
- showSelectionPreview={true}
- maxDate={new Date()}
- moveRangeOnFirstSelection={false}
- months={1}
- ranges={state}
- direction='horizontal'
- className='w-full'
- />
-
-
-
-
-
+
+
+ {isOpenCalender && (
+
+ {/* Tombol silang di sudut kanan atas */}
+
+
setState([item.selection])}
+ showSelectionPreview={false}
+ maxDate={new Date()}
+ moveRangeOnFirstSelection={false}
+ months={1}
+ ranges={state}
+ className='w-full'
+ />
+
+
+
- )}
-
+ )}
+
{/*
e.target === document}
@@ -643,7 +665,7 @@ const Transactions = ({ context = '' }) => {
{saleOrder.products?.length > 1 && (
{saleOrder.products
- .slice(1, 6)
+ .slice(1, 4)
.map((product, index) => (
{
className='object-contain object-center border border-gray_r-6 h-8 w-8 rounded-md'
/>
))}
-
- {saleOrder.products?.length > 6
- ? 'Lihat ' +
- (saleOrder.products?.length - 6) +
- ' produk lainnya'
- : 'Lihat semua produk'}
-
+ {saleOrder.products.length > 4 ? (
+
+ +{saleOrder.products.length - 4} lihat semua produk
+
+ ) : (
+
+ Lihat semua produk
+
+ )}
)}
@@ -880,33 +907,60 @@ const Transactions = ({ context = '' }) => {
-
+
Status
-
- {statuses.map((status) => (
-
-
@@ -944,86 +998,6 @@ const Transactions = ({ context = '' }) => {
-
-
setIsOpenCalender(true)}
- >
-
- {state[0]?.startDate
- ? `${state[0].startDate.toLocaleDateString()} - ${state[0].endDate.toLocaleDateString()}`
- : 'Filter By Tanggal'}
-
-
- {isOpenCalender && (
-
- {/* Tombol silang di sudut kanan atas */}
-
setIsOpenCalender(false)}
- className='absolute top-2 right-2 text-gray-600 hover:text-black text-xl font-bold'
- >
- ×
-
-
setState([item.selection])}
- showSelectionPreview={true}
- maxDate={new Date()}
- moveRangeOnFirstSelection={false}
- months={1}
- ranges={state}
- className='w-full'
- />
-
-
- setIsOpenCalender(false)}
- >
- Done
-
-
- Reset
-
-
-
- )}
-
Menampilkan {startItem}-
@@ -1050,6 +1024,82 @@ const Transactions = ({ context = '' }) => {
+
+
setIsOpenCalender((prev) => !prev)}
+ >
+
+ {state[0]?.startDate ? (
+ `${state[0].startDate.toLocaleDateString()} - ${state[0].endDate.toLocaleDateString()}`
+ ) : (
+
+ )}
+
+
+ {isOpenCalender && (
+
+ {/* Tombol silang di sudut kanan atas */}
+
setIsOpenCalender(false)}
+ className='absolute top-2 right-2 text-gray-600 hover:text-black text-xl font-bold'
+ >
+ ×
+
+
setState([item.selection])}
+ showSelectionPreview={false}
+ maxDate={new Date()}
+ moveRangeOnFirstSelection={false}
+ months={1}
+ ranges={state}
+ className='w-full'
+ />
+
+
+
+ Reset
+
+
+
+ )}
+
@@ -1140,7 +1190,7 @@ const Transactions = ({ context = '' }) => {
{saleOrder.products?.length > 1 && (
{saleOrder.products
- .slice(1, 6)
+ .slice(1, 4)
.map((product, index) => (
{
className='object-contain object-center border border-gray_r-6 h-16 w-16 rounded-md'
/>
))}
-
- {saleOrder.products?.length > 6
- ? 'Lihat ' +
- (saleOrder.products?.length - 6) +
- ' produk lainnya'
- : 'Lihat semua produk'}
-
+ {saleOrder.products.length > 4 ? (
+
+ +{saleOrder.products.length - 4} lihat semua produk
+
+ ) : (
+
+ Lihat semua produk
+
+ )}
)}
diff --git a/src/lib/treckingAwb/component/Manifest.jsx b/src/lib/treckingAwb/component/Manifest.jsx
index 5b456ccf..acb86f57 100644
--- a/src/lib/treckingAwb/component/Manifest.jsx
+++ b/src/lib/treckingAwb/component/Manifest.jsx
@@ -135,82 +135,6 @@ const Manifest = ({ idAWB, closePopup }) => {
)}
-<<<<<<< HEAD
-
-
- Estimasi tiba pada{' '}
- ({manifests?.eta})
-
-
- Dikirim Menggunakan{' '}
-
- {manifests?.deliveryOrder.carrier}
-
-
- {manifests?.waybillNumber && (
-
-
No. Resi
-
-
{manifests?.waybillNumber}
-
handleCopyClick()}
- >
-
-
-
-
- )}
-
-
-
-
- {manifests?.manifests?.map((manifest, index) => (
- <>
- -
- {manifests.delivered == true && index == 0 ? (
-
-
-
- ) : (
-
- )}
- {manifests.delivered != true && (
-
- )}
-=======
->>>>>>> new-release
--
cgit v1.2.3