import React, { useState } from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { MdCurrencyRupee } from 'react-icons/md'; import KioskHeader from '../Components/KioskHeader'; import KioskFooter from '../Components/KioskFooter'; import KioskFooter2 from '../Components/KioskFooter2'; import { changeKioskPageName, getKioskLightColour, } from '../../../Features/Kiosk/kiosk'; import { GlobalKioskOrderDetails, changeKioskOrderDetails, } from '../../../Features/BookingScreen/BookingData/KioskBookingData'; import KioskFooter3 from '../Components/KioskFooter3'; import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import TakeAway from '../KioskIcons/KioskTakeAway'; import '../../../Styles/Kiosk/OrderView/OrderView1.scss'; import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData'; import { calculateOverAllQtyLimit } from '../../../utils/calculations'; import { message } from 'antd'; import { IoIosWarning } from 'react-icons/io'; const OrderView1 = (props) => { const KioskThemeData = props?.hasOwnProperty('KioskThemeData') ? props['KioskThemeData'] : null; const dispatch = useDispatch(); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const getKioskLightColourdata = useSelector(getKioskLightColour); const preferenceDatas = useSelector(PreferenceData); const overAllLimitPreferenece = preferenceDatas?.[0]?.['SettingDtlDetails']?.find( (item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y'); const itemWiseLimitPreferenece = preferenceDatas?.[0]?.['SettingDtlDetails']?.find( (item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y'); const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null; const BackToCategory = async () => { await dispatch(changeKioskPageName('categoryPage')); }; const removeFromCart = async (item) => { await dispatch( changeKioskOrderDetails( KioskOrderDetails?.filter( (cartItem) => !( cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ) ) ) ); }; const increase = async (item) => { if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) { if (overAllLimitPreferenece) { const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails); if ((calculatedOverAllQty + 1) > maxQtyLimit) { setMaxLimitExceeded(true); // Reset after 3 seconds setTimeout(() => { setMaxLimitExceeded(false); }, 2000); return; } } } await dispatch( changeKioskOrderDetails( KioskOrderDetails?.map( ( cartItem // if the item is already in the cart, increase the quantity of the item ) => cartItem.ProdId === item.ProdId && cartItem.InwardDtlId === item.InwardDtlId && cartItem.OrderRate === item.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ? { ...cartItem, OrderQty: cartItem.OrderQty + 1, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TaxAmt: ( ((cartItem.OrderQty + 1) * cartItem.OrderRate * cartItem.TaxPercentage) / (100 + cartItem.TaxPercentage) ).toFixed(2), WithoutTaxRate: (cartItem.OrderQty + 1) * cartItem.OrderRate - ( ((cartItem.OrderQty + 1) * cartItem.OrderRate * cartItem.TaxPercentage) / (100 + cartItem.TaxPercentage) ).toFixed(2), } : cartItem // otherwise, return the cart item ) ) ); }; const decrease = async (item) => { const isItemInCart = KioskOrderDetails?.find( (cartItem) => cartItem.ProdId === item.ProdId && cartItem.InwardDtlId === item.InwardDtlId && cartItem.OrderRate === item.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ); // check if the item is already in the cart console.log(isItemInCart, 'isItemInCart'); if (isItemInCart?.OrderQty > 1) { await dispatch( changeKioskOrderDetails( KioskOrderDetails?.map( ( cartItem // if the item is already in the cart, increase the quantity of the item ) => cartItem.ProdId === item.ProdId && cartItem.InwardDtlId === item.InwardDtlId && cartItem.OrderRate === item.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ? { ...cartItem, OrderQty: cartItem.OrderQty - 1, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TaxAmt: ( ((cartItem.OrderQty - 1) * cartItem.OrderRate * cartItem.TaxPercentage) / (100 + cartItem.TaxPercentage) ).toFixed(2), WithoutTaxRate: (cartItem.OrderQty - 1) * cartItem.OrderRate - ( ((cartItem.OrderQty - 1) * cartItem.OrderRate * cartItem.TaxPercentage) / (100 + cartItem.TaxPercentage) ).toFixed(2), } : cartItem // otherwise, return the cart item ) ) ); } else { await dispatch( changeKioskOrderDetails( KioskOrderDetails?.filter( (cartItem) => !( cartItem.ProdId === item.ProdId && cartItem.InwardDtlId === item.InwardDtlId && cartItem.OrderRate === item.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ) ) ) ); } }; return (
{/* header area */}
{KioskOrderDetails.map((item) => (
{item?.BookingTypeName == 'Dine In' ? ( ) : ( )}

{item?.ProdName}  {' '} {item.BrandName !== null ? item.BrandName : ''}( {!item?.ProdVariantName?.toLowerCase().includes( 'variant' ) && {item?.ProdVariantName} } {item?.Size} {item?.SinglePc == 'Y' ? 'PCS' : item?.UomName} )

{' '} {item?.TotalAmt}
decrease(item)}> -

{item?.OrderQty}

increase(item)} > {' '} +{' '}
removeFromCart(item)}> remove

Maximum Quantity ({maxQtyLimit}) Reached

))}
BackToCategory()} style={{ backgroundColor: getKioskLightColourdata }} > {' '}

Add More +

{props?.Footer === '1' && ( )} {props?.Footer === '2' && ( <>
)} {props?.Footer === '3' && ( <>
)}
); }; export default OrderView1;