import odooApi from '@/core/api/odooApi'; import BottomPopup from '@/core/components/elements/Popup/BottomPopup'; import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner'; import { getAuth } from '@/core/utils/auth'; import { useEffect, useState } from 'react'; import { toast } from 'react-hot-toast'; import ImageNext from 'next/image'; import { list } from 'postcss'; import InformationSection from './InformationSection'; function capitalizeFirstLetter(str) { return str.charAt(0).toUpperCase() + str.slice(1); } function capitalizeWords(str) { return str .split(' ') .map((word) => capitalizeFirstLetter(word)) .join(' '); } const Manifest = ({ idAWB, closePopup }) => { const [manifests, setManifests] = useState(null); const [isLoading, setIsLoading] = useState(false); const formatCustomDate = (date) => { const months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ]; const parts = date.split(' '); // Pisahkan tanggal dan waktu const [datePart, timePart] = parts; const [yyyy, mm, dd] = datePart.split('-'); const [hh, min] = timePart.split(':'); const monthAbbreviation = months[parseInt(mm, 10) - 1]; return `${dd} ${monthAbbreviation} ${hh}:${min}`; }; const getManifest = async () => { setIsLoading(true); const auth = getAuth(); let list; if (auth) { list = await odooApi( 'GET', `/api/v1/partner/${auth.partnerId}/stock-picking/${idAWB}/tracking` ); } else { list = await odooApi('GET', `/api/v1/stock-picking/${idAWB}/tracking`); } setManifests(list); setIsLoading(false); }; console.log(manifests); useEffect(() => { if (idAWB) { getManifest(); } else { setManifests(null); } }, [idAWB]); return ( <> {isLoading && ( Mohon Tunggu )} {!isLoading && ( Status Pesanan {manifests?.status === 'completed' && ( Pesanan Tiba )} {manifests?.status === 'shipment' && ( Sedang Dikirim )} {manifests?.status === 'cancelled' && ( Di Batalkan )} {manifests?.status === 'on_hold' && ( Ditunda Sementara )} {manifests?.status === 'pending' && ( Pending )} {manifests?.isDelay && ( Pesanan anda mungkin mengalami keterlambatan tiba )} {manifests?.manifests?.map((manifest, index) => { const isFirst = index === 0; const isDelivered = manifests.delivered === true; const isBiteship = manifests.isBiteship === true; const statusTitle = isDelivered && isFirst && !isBiteship ? 'Pesanan sampai' : isBiteship ? capitalizeWords(manifest.status) : ''; return ( {/* Kolom 1: Tanggal + Jam */} {formatCustomDate(manifest.datetime)} {/* Kolom 2: Bullet/Poin */} {/* Kolom 3: Status dan Deskripsi */} {manifests?.deliveryOrder.carrier != 'Self Pick Up' ? capitalizeWords(manifest.status) : ''} ); })} )} > ); }; export default Manifest;
Pesanan Tiba
Sedang Dikirim
Di Batalkan
Ditunda Sementara
Pending
{manifests?.deliveryOrder.carrier != 'Self Pick Up' ? capitalizeWords(manifest.status) : ''}