import { useCallback, useEffect, useMemo, useState } from 'react'; import { createSlug } from '@/core/utils/slug'; import useAuth from '@/core/hooks/useAuth'; import { useRouter } from 'next/router'; import odooApi from '@/core/api/odooApi'; import { useProductCartContext } from '@/contexts/ProductCartContext'; import Image from '@/core/components/elements/Image/Image'; import whatsappUrl from '@/core/utils/whatsappUrl'; import { AnimatePresence, motion } from 'framer-motion'; import style from '../../../../src-migrate/modules/cart/styles/item-promo.module.css'; import useTransactions from '../../transaction/hooks/useTransactions'; import currencyFormat from '@/core/utils/currencyFormat'; const { DocumentCheckIcon, PhotoIcon } = require('@heroicons/react/24/outline'); const { default: Link } = require('next/link'); const Quotationheader = (quotationCount) => { const auth = useAuth(); const query = { context: 'quotation', site: auth?.webRole === null && auth?.site ? auth.site : null, }; const router = useRouter(); const [subTotal, setSubTotal] = useState(null); const [buttonLoading, SetButtonTerapkan] = useState(false); const itemLoading = [1, 2, 3]; const [countQuotation, setCountQuotation] = useState(null); const { productCart, setProductCart, refreshCart, setRefreshCart, isLoading, setIsloading, productQuotation, setProductQuotation, } = useProductCartContext(); const [isHovered, setIsHovered] = useState(false); const [isTop, setIsTop] = useState(true); const qotation = useMemo(() => { return productQuotation || []; }, [productQuotation]); const handleMouseEnter = () => { setIsHovered(true); getCart(); }; const handleMouseLeave = () => { setIsHovered(false); }; const getCart = () => { if ((productQuotation?.length === 0) && auth) { refreshCartf(); } }; let { transactions } = useTransactions({ query }); const refreshCartf = useCallback(async () => { setIsloading(true); let pendingTransactions = transactions?.data?.saleOrders.filter( (transaction) => transaction.status === 'waiting' ); setProductQuotation(pendingTransactions); setCountQuotation( pendingTransactions?.length ? pendingTransactions?.length : pendingTransactions?.length ); setIsloading(false); }, [setProductQuotation, setIsloading]); useEffect(() => { if (!qotation) return; let calculateTotalDiscountAmount = 0; for (const product of qotation) { // if (qotation.quantity == '') continue calculateTotalDiscountAmount += product.amountUntaxed; } let subTotal = calculateTotalDiscountAmount; setSubTotal(subTotal); }, [qotation]); useEffect(() => { if (refreshCart) { refreshCartf(); } setRefreshCart(false); }, [refreshCartf, setRefreshCart]); useEffect(() => { setCountQuotation(quotationCount.quotationCount); setProductQuotation(quotationCount.data); }, [quotationCount]); useEffect(() => { const handleScroll = () => { setIsTop(window.scrollY === 0); }; window.addEventListener('scroll', handleScroll); return () => { window.removeEventListener('scroll', handleScroll); }; }, []); const handleCheckout = async () => { SetButtonTerapkan(true); let checkoutAll = await odooApi( 'POST', `/api/v1/user/${auth.id}/cart/select-all` ); router.push('/my/transactions'); }; return (
Silahkan{' '} Login {' '} Untuk Melihat Daftar Transaksi Anda
Tidak Ada Transaksi
Sales :{' '}
{product.sales}
Status :
Pesanan Diproses
No. Transaksi
{' '} {product.name}
No. Purchase Order
{' '} {product.purchaseOrderName ? product.purchaseOrderName : '-'}
Total
{currencyFormat(product.amountUntaxed)}