import React, { useCallback, useEffect, useState } from 'react'; import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import moment from 'moment'; import { Badge, Modal, Tooltip } from 'antd'; import { GoTriangleRight } from 'react-icons/go'; import { ExclamationCircleOutlined } from '@ant-design/icons'; import defaultimage from '../../../../Images/defaultItemImg.png'; import FormHeader from '../../../PageComponents/FormHeader'; import { SelectedGlobalCardColorDetail, SelectedGlobalCardFont, StoredSessionData, getTemplateData, } from '../../../../Features/ThemeChange/ThemeChange'; import { Tables } from '../../../../Components/Tables/Table'; import { GlobalProductSubCategorie, GlobalItemCard, getLayoutproductCard, GlobalOrderCardDetails, changeOrderCardDetails, changeSearchedData, ChangeAllItemData, GlobalAllItemData, GlobalCardAccess, getSelectedFavItems, GlobalSelectedDatas, GlobalEditfavItems, getEditFavItems, GlobalAccessForOthers, GlobalAlldat, Globalothersdata, GlobalProductCategorie, getCardDataWithoutSub, changeothersdata, ChangeNewQrProduct, GlobalWSProduct, GlobalNewQrProduct, GlobalBookingType, GlobalSearchData, getCardDataWithoutSubmodule, getPreferenceData, changePreviousOrderLength, changeHoldOrderDtl, GlobalReorderHoldDetails, GlobalUnpaidData, GlobalWeightScalePort, GlobalWeightScaleWeight, changeWeightScaleWeight, GlobalExpDateforHeight, GlobalBookingTypeBoth, GlobalOrderType, GlobalReorderProductDetails, getConfigType, GlobalPayementloader, GlobalPaymentTransactionNumber, GlobalSelOption, PreferenceData, changeCardData, GlobaldraggingComponent, GlobalCombocarddata, GlobalGetmultipleSearchDatas, getmultipleSearch, } from '../../../../Features/BookingScreen/BookingData/BookingData'; import { GlobalPreOrderAdditem, GlobalPreOrderList, GlobalpreOrderOpen, changepreOrderList, } from '../../../../Features/BookingScreen/PreOrder/PreOrder'; import { DefaultModal } from '../../../../Components/Modal/DefaultModal'; import { Messages } from '../../../../Components/Notifications/Messages'; import '../../../../Styles/BookingScreen/Components/BSItemCards/BSItemCard.scss'; import WebFont from 'webfontloader'; import FeaturesFunctionalities from '../BookingFunctionality/FeaturesFunctionalities'; import { isMobile } from 'react-device-detect'; import { Global_OfferStatus } from '../../../../Features/Offer/Offer'; import { useApplyOfferto_CardDetail, } from '../UtillComponents/BSNavBarOffer/BSNavBarOffer_CustomHooks.jsx'; import { GlobalAddCustomerDetails } from '../../../../Features/BookingScreen/Customer/addCustomer.js'; import { DndContext, useSensor, useSensors, PointerSensor, closestCenter, } from '@dnd-kit/core'; import { SortableContext, arrayMove, rectSortingStrategy, } from '@dnd-kit/sortable'; import { useSortable } from '@dnd-kit/sortable'; import { v4 as uuidv4 } from "uuid"; import { CSS } from '@dnd-kit/utilities'; import { getCombolist } from '../../../../Features/ComboMaster/ComboMaster.js'; // const BSComboItemCard = () => { // const dispatch = useDispatch(); // const SessionData = useSelector(StoredSessionData, shallowEqual); // const AppId = SessionData?.AppId; // const CompId = SessionData?.CompId; // const BranchId = SessionData?.BranchId; // const [ComboCardata,setCombocardata] = useState([]); // useEffect(()=>{ // Combocarddata(); // },[]) // const Combocarddata = async () => { // let data = { // CompId: CompId, // BranchId: BranchId, // AppId : AppId, // ActiveStatus: 'A', // }; // let response = await dispatch(getCombolist(data)).unwrap(); // if (response?.data?.statusCode == 1) { // setCombocardata(response?.data?.data); // } // }; // return ( //
BSComboItemCard
// ) // } // export default BSComboItemCard export function SortableCard({ id, children, item }) { const { attributes, listeners, setNodeRef, transform, transition, isDragging, } = useSortable({ id }); const style = { transform: CSS.Transform.toString(transform), transition, opacity: isDragging ? 0.5 : 1, }; const draggingComponent = useSelector(GlobaldraggingComponent); const allowDrag = draggingComponent === 'card'; return (
{children}
); } const BSComboItemCard = (props) => { const cardFunction = props.cardFunctionality; const applyOffer = useApplyOfferto_CardDetail(); const preferenceDatas = useSelector(PreferenceData, shallowEqual); const preferenceOffer = preferenceDatas?.[0]?.['SettingDtlDetails']?.find( (item) => item.SettingIdName === 'Offer' )?.SettingValue === 'Y'; const AddCustomerDetails = useSelector( GlobalAddCustomerDetails, shallowEqual ); const SelectedCust = useSelector(GlobalSelOption, shallowEqual); const CustDetails = SelectedCust ? SelectedCust : AddCustomerDetails?.[0]; const GPreOrderList = useSelector(GlobalPreOrderList, shallowEqual); const [modelQty, setModelQty] = useState(false); const [modelstock, setModelstock] = useState(false); const [ModalVarient, setModalVarient] = useState(false); const [QtyIndex, setQtyIndex] = useState(0); const [VarientIndex, setVarientIndex] = useState(0); const [expModel, setexpModel] = useState(false); const [prodexpir, setProdexpir] = useState(false); const [expVarModel, setexpVarModel] = useState(false); const [expStockModel, setexpStockModel] = useState(false); const [initialRun, setInitialRun] = useState(false); const [Item, setItem] = useState(); const [VarItem, setVarItem] = useState(0); const [StockItem, setStockItem] = useState(); const [noSubcatCardData, setNoSubcatCardData] = useState(); const [qtydata, setQtydata] = useState(); const PreOrderAdditem = useSelector(GlobalPreOrderAdditem, shallowEqual); const OrderType = useSelector(GlobalOrderType, shallowEqual); const ProdSubCat = useSelector(GlobalProductSubCategorie); const ItemCard = useSelector(GlobalItemCard, shallowEqual); const globaldata = useSelector(GlobalAlldat, shallowEqual); const preOrder = useSelector(GlobalpreOrderOpen, shallowEqual); const templateData = useSelector(getTemplateData, shallowEqual); const temp5 = templateData?.BookingLayout?.[0] === 'Layout5'; const OfferCheckedInSetup = templateData?.BookingNavbar?.[1].some( (item) => item?.OptionName == 'Offer' ); const globalAllItemdata = useSelector(GlobalAllItemData); const EditfavItems = useSelector(GlobalEditfavItems); const BookingType = useSelector(GlobalBookingType); const ProductSearch = useSelector(GlobalSearchData); const [SelectedProdNames, setSelectedProdNames] = useState(EditfavItems); const [PreOrderSelectedProdNames, setPreOrderSelectedProdNames] = useState( [] ); const OrderOfferStatus = useSelector(Global_OfferStatus); const CardAccess = useSelector(GlobalCardAccess, shallowEqual); const globalAccessForOthers = useSelector( GlobalAccessForOthers, shallowEqual ); const SelectedCardColor = useSelector( SelectedGlobalCardColorDetail, shallowEqual ); const GetmultipleSearchDatas = useSelector(GlobalGetmultipleSearchDatas, shallowEqual) const SelectedCardFont = useSelector(SelectedGlobalCardFont, shallowEqual); const CartOrderDetails = useSelector(GlobalOrderCardDetails, shallowEqual); const SelectedDatas = useSelector(GlobalSelectedDatas, shallowEqual); const otherscarddata = useSelector(Globalothersdata, shallowEqual); const WSProductdata = useSelector(GlobalWSProduct, shallowEqual); const NewQrProductData = useSelector(GlobalNewQrProduct, shallowEqual); const ReportholdData = useSelector(GlobalReorderHoldDetails, shallowEqual); const ReorderProductData = useSelector( GlobalReorderProductDetails, shallowEqual ); const WeightScalePort = useSelector(GlobalWeightScalePort, shallowEqual); const WeightScaleWeight = useSelector(GlobalWeightScaleWeight, shallowEqual); const PaymentTransactionNumber = useSelector( GlobalPaymentTransactionNumber, shallowEqual ); const ProdCat = useSelector(GlobalProductCategorie, shallowEqual); const paymentloader = useSelector(GlobalPayementloader, shallowEqual); const SessionData = useSelector(StoredSessionData, shallowEqual); const GlobalCombocarddatas = useSelector(GlobalCombocarddata); console.log(GlobalCombocarddatas, 'GlobalCombocarddatas combo card'); const [messageType, setMessageType] = useState(null); const [messageData, setMessageData] = useState(null); const [repeatedModel, setRepeatedModel] = useState(false); const [StockPreferenceDetail, setStockPreferenceDetail] = useState(); const [QuickAdd, setQuickAdd] = useState(true); const [onePeiceFlow, setOnePeiceFlow] = useState(false); const [BillOrderPre, setBillOrderPre] = useState(); const [expQtyModel, setExpQtyModel] = useState(false); const [qtyExpData, setQtyExpData] = useState(); const [screenWidth, setScreenWidth] = useState(window.innerWidth); const [screenHeight, setScreenHeight] = useState(window.innerHeight); // const [ComboCardata, setCombocardata] = useState([]); const [ExpiredProduct, setExpiredProduct] = useState() const AppId = SessionData?.AppId; const CompId = SessionData?.CompId; const BranchId = SessionData?.BranchId; const dispatch = useDispatch(); useEffect(() => { if (SelectedCardFont) { WebFont.load({ google: { families: [SelectedCardFont], // Load the selected font }, }); } }, [SelectedCardFont]); //mohan 18-04-2025 const cardData = !globalAccessForOthers ? CardAccess ? SelectedDatas?.length > 1 ? SelectedDatas : SelectedDatas?.[0]?.AppId === 0 && SelectedDatas?.[0]?.CompId === 0 ? [] : SelectedDatas : GlobalCombocarddatas?.length == 0 || (GlobalCombocarddatas?.[0]?.AppId === 0 && GlobalCombocarddatas?.[0]?.CompId === 0) ? noSubcatCardData : GlobalCombocarddatas : ''; const cardDataForNewPrd = !globalAccessForOthers ? CardAccess ? SelectedDatas : GlobalCombocarddatas?.length == 0 ? noSubcatCardData : GlobalCombocarddatas : ''; // console.log(cardData, 'cardData combo card'); useEffect(() => { // fetchedit(); getPreferenceStock(); // dispatch(changepreOrder(false)); Commented to Add Normal Produts After Adding the Combo Pack !!!!!! Dont Touch Without Shifayath Permission }, [preferenceDatas]); useEffect(() => { if (AppId && CompId && BranchId) { fetchedit(); GetmultipleSearchData() } // dispatch(changepreOrder(false)); Commented to Add Normal Produts After Adding the Combo Pack !!!!!! Dont Touch Without Shifayath Permission }, [AppId, CompId, BranchId]); const GetmultipleSearchData = async () => { const data = { AppId, CompId, BranchId, }; try { const response = await dispatch(getmultipleSearch(data)) } catch (error) { console.error("Get Search Terms Error:", error); } }; useEffect(() => { setPreOrderSelectedProdNames([]); // dispatch(changePreOrderAdditem(null)); }, [preOrder]); // useEffect(() => { // if (ProdCat && ProdSubCat !== NaN) { // // if (ProdCat && !isNaN(ProdSubCat)) { // productCardList(); // } // }, [ProdSubCat]); useEffect(() => { if (noSubcatCardData) { setNoSubcatCardData(); } if (ProductSearch?.length > 5 && GetmultipleSearchDatas.some( e => e.toLowerCase() === "qrcode" )) { setQuickAdd(true); } }, [ProductSearch,GetmultipleSearchDatas]); // useEffect(() => { // if ( // !initialRun && // (!ProdSubCat || ProdSubCat != NaN || ProdSubCat === 'NaN') && // ProdCat // ) { // // if (!initialRun && (!ProdSubCat || !isNaN(ProdSubCat)) && ProdCat) { // setInitialRun(true); // productCardList(); // } // }, [ProdCat, initialRun]); const productCardList = async () => { //condition if ( templateData?.BookingLayout?.[1]?.some( (item) => item?.OptionName === 'SubCategory' ) && ProdSubCat && ProdCat ) { let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, ProdSubCat: ProdSubCat, }; //mohan let response = await dispatch(getLayoutproductCard(data)).unwrap(); if (response?.data?.statusCode == 1) { setNoSubcatCardData(response?.data?.data); } } else if ( !templateData?.BookingLayout?.[1]?.some( (item) => item?.OptionName === 'SubCategory' ) && ProdCat ) { let data = { compId: CompId, branchId: BranchId, appId: AppId, prodCat: ProdCat, }; let response = await dispatch(getCardDataWithoutSubmodule(data)).unwrap(); if (response?.data?.statusCode == 1) { setNoSubcatCardData(response?.data?.data); } } else if ( templateData?.BookingLayout?.[1]?.some( (item) => item?.OptionName === 'SubCategory' ) && !ProdSubCat && ProdCat && ProdSubCat != 'NaN' ) { let data = { compId: CompId, branchId: BranchId, appId: AppId, prodCat: ProdCat, }; let response = await dispatch(getCardDataWithoutSub(data)).unwrap(); if (response?.data?.statusCode == 1) { setNoSubcatCardData(response?.data?.data); } } }; const fetchedit = async () => { let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, }; let res = await dispatch(getEditFavItems(data)).unwrap(); if (res?.data?.statusCode == 1) { setSelectedProdNames(res?.data?.data); } else { setSelectedProdNames([]); } }; useEffect(() => { Combocarddata(); }, []); const Combocarddata = async () => { let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, ActiveStatus: 'A', }; let response = await dispatch(getCombolist(data)).unwrap(); // if (response?.data?.statusCode === 1) { // let Data = response?.data?.data; // let comboList = Data?.map((item, index) => ({ // ...item, // id: `${item.ComboName || 'Combo'}-${index}`, // ProdName: item?.ComboName, // OverAllQty: item?.OverallQuantity, // StockAvailable: 'Y', // })); // setCombocardata(comboList); // if (!GlobalCombocarddatas || !Array.isArray(GlobalCombocarddatas)) return; // const comboList = await GlobalCombocarddatas.map((item, index) => ({ // ...item, // id: `${item.ComboName || 'Combo'}-${index}`, // ProdName: item?.ComboName, // OverAllQty: item?.OverallQuantity, // })); // setCombocardata(comboList); // } }; const processGlobalComboData = () => { if (!GlobalCombocarddatas || !Array.isArray(GlobalCombocarddatas)) return; let comboList = GlobalCombocarddatas.map((item, index) => ({ ...item, id: `${item.ComboName || 'Combo'}-${index}`, ProdName: item?.ComboName, OverAllQty: item?.OverallQuantity, StockAvailable: 'Y', })); return comboList; }; const comboList = processGlobalComboData() || []; useEffect(() => { DispatchData(); }, [SelectedProdNames]); const DispatchData = async () => { await dispatch(ChangeAllItemData(SelectedProdNames)); }; useEffect(() => { if (Object.keys(WSProductdata)?.length > 0) { AddOrderDetails(WSProductdata); } }, [WSProductdata]); useEffect(() => { if (ItemCard?.[0]?.QrBasedSearch === 'Y') { if (ItemCard?.[0]?.OverAllExpStatus == 'Y' && ExpiredProduct) { setexpModel(true); setItem(ItemCard?.[0]); } else { setQtydata(ItemCard?.[0]); SingleQuantity(ItemCard?.[0], false); } } else if (ItemCard?.[0]?.OnePcQRBased === 'Y') { if (ItemCard?.[0]?.OverAllExpStatus == 'Y' && ExpiredProduct) { setexpModel(true); setItem(ItemCard?.[0]); setOnePeiceFlow(true); } else { setQtydata(ItemCard?.[0]); SingleQuantity(ItemCard?.[0], true); } } }, [ItemCard]); useEffect(() => { if (Object.keys(otherscarddata)?.length > 0) { let data = { Type: otherscarddata?.Type ? otherscarddata?.Type : 'P', OverallQuantity: otherscarddata?.OverAllQty, ActiveStatus: otherscarddata?.ActiveStatus, AvailableFrom: otherscarddata?.AvailableFrom, AvailableTo: otherscarddata?.AvailableTo, Cess: otherscarddata?.Cess, ExpDate: otherscarddata?.ExpDate, HSNCode: otherscarddata?.HSNCode, ManufDate: otherscarddata?.ManufDate, OpeningQty: otherscarddata?.OpeningQty, ProdType: otherscarddata?.ProdType, PartNumber: otherscarddata?.PartNumber, ProdId: otherscarddata?.ProdId, ProdLogo: otherscarddata?.ProdLogo, ProdName: otherscarddata?.ProdName, QRCode: otherscarddata?.QRCode, QtyBasedPrice: otherscarddata?.QtyBasedPrice, Rack: otherscarddata?.Rack, Size: otherscarddata?.Size, StockAvailable: otherscarddata?.StockAvailable, TaxId: otherscarddata?.TaxId, TaxPercentage: otherscarddata?.TaxPercentage, TaxName: otherscarddata?.TaxIdName, UniqueId: otherscarddata?.UniqueId, UomName: otherscarddata?.UomName, ProdVariantName: otherscarddata?.ProdVariantName, //sri BalanceQty: otherscarddata?.BalanceQty, BatchRef: otherscarddata?.BatchRef, ModelNumber: otherscarddata?.ModelNumber, //sri FullProductIdentifierDtls: otherscarddata?.FullProductIdentifierDtls, //sri InwardDate: otherscarddata?.InwardDate, InwardDtlId: otherscarddata?.InwardDtlId, InwardId: otherscarddata?.InwardId, MRP: otherscarddata?.MRP, Offer: otherscarddata?.OfferPrice, OrderRate: otherscarddata?.SellPrice, SellingPrice: otherscarddata?.SellPrice, // edit srii SuppId: otherscarddata?.SuppId, SuppName: otherscarddata?.SuppName, OrderQty: otherscarddata?.Quantity, OtherProduct: otherscarddata?.OtherProduct, // 'ProdVariantName': otherscarddata?.ProdVariantName, BookingTypeName: BookingType, CounterName: '', //sri }; AddOrderDetails(data); } // data["OrderRate"] = otherscarddata?.SellPrice }, [otherscarddata]); useEffect(() => { if (Object.keys(NewQrProductData)?.length > 0) { let addQrProductData = { ...NewQrProductData }; addQrProductData['OrderRate'] = addQrProductData['SellPrice']; addQrProductData['OrderQty'] = addQrProductData['Quantity']; addQrProductData['SellingPrice'] = addQrProductData['SellPrice']; addQrProductData['BookingTypeName'] = BookingType; AddOrderDetails(addQrProductData); } }, [NewQrProductData]); const getPreferenceStock = async () => { const PreferenceStckDtl = preferenceDatas?.[0]?.SettingDtlDetails; const StockPreference = PreferenceStckDtl?.find( (item) => item.SettingIdName === 'StockSelection' ); setStockPreferenceDetail(StockPreference); const BillOrder = PreferenceStckDtl?.find( (item) => item.SettingIdName === 'BillItemsOrder' ); setBillOrderPre(BillOrder?.SettingValue); const expiredDate = PreferenceStckDtl?.find( (item) => item.SettingIdName === 'ExpiredSelection' )?.SettingValue === 'Y'; setExpiredProduct(expiredDate) }; const CloseModal = () => { setModelQty(false); setRepeatedModel(false); setProdexpir(false); setOnePeiceFlow(false); }; const CloseVarientModal = () => { setModalVarient(false); setRepeatedModel(false); setProdexpir(false); setOnePeiceFlow(false); }; const Quantity = () => { setModelQty(true); }; const SingleQuantity = (item, onePcs) => { let count = item?.ProductDetail?.[0]?.ProdVariantDetails?.length; if (count > 1) { setModalVarient(true); } else { setVarientIndex(0); SingleStockfun(item, onePcs); } }; const SingleStockfun = (item, onePcs) => { let count = item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.length; if ( StockPreferenceDetail?.SettingValue === 'Y' && item?.ProductDetail?.[QtyIndex]?.StockAvailable == 'Y' ) { if (count > 1) { setModelstock(true); } else { let Isincart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ VarientIndex ]?.StockDetails?.[0]?.SellPrice && !cartItem?.SalesId ); if (onePcs) { let Isincartonepc = CartOrderDetails?.filter( (cartItem) => cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) !cartItem?.SalesId ); let totalOrderQty = Isincartonepc?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0); if (Isincartonepc && Isincartonepc?.[0]?.StockAvailable === 'Y') { if (Isincartonepc?.[0]?.OverAllPcs > totalOrderQty) { dataTransfer(item, 0, 0, 0, onePcs); } else { dataTransfer(item, 0, 0, 1, onePcs); } } else { dataTransfer(item, 0, 0, 0, onePcs); } } else { if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart?.BalanceQty > Isincart?.OrderQty) { dataTransfer(item, 0, 0, 0, onePcs); } else { dataTransfer(item, 0, 0, 1, onePcs); } } else { dataTransfer(item, 0, 0, 0, onePcs); } } } } else { let Isincart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[0]?.InwardDtlId && cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[0]?.SellPrice && !cartItem?.SalesId ); if (onePcs) { let Isincartonepc = CartOrderDetails?.filter( (cartItem) => cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) !cartItem?.SalesId ); let totalOrderQty = Isincartonepc?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * (card.NoOfPcs ? card.NoOfPcs : 1) : card.OrderQty : 0 ) ); }, 0); if (Isincartonepc && Isincartonepc?.[0]?.StockAvailable === 'Y') { if (Isincartonepc?.[0]?.OverAllPcs > totalOrderQty) { dataTransfer(item, 0, 0, 0, onePcs); } else { dataTransfer(item, 0, 0, 1, onePcs); } } else { dataTransfer(item, 0, 0, 0, onePcs); } } else { if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart?.BalanceQty > Isincart?.OrderQty) { dataTransfer(item, 0, 0, 0, onePcs); } else { dataTransfer(item, 0, 0, 1, onePcs); } } else { dataTransfer(item, 0, 0, 0, onePcs); } } } }; const Stockfun = (index) => { setVarientIndex(index.key); const variantDetails = qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key] || {}; const overallExpStatus = variantDetails.OverAllExpStatus; const count = variantDetails.StockDetails?.length || 0; if ( StockPreferenceDetail?.SettingValue === 'Y' && qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable == 'Y' ) { if (count > 1) { if ( overallExpStatus === 'N' || // (overallExpStatus === 'Y' && prodexpir) (overallExpStatus === 'Y') ) { setModalVarient(false); setModelstock(true); setVarItem(index.key); if (overallExpStatus === 'Y' && prodexpir) { setRepeatedModel(true); } } else if (overallExpStatus === 'Y' && ExpiredProduct) { setVarItem(index.key); setexpVarModel(true); } } else { if ( overallExpStatus === 'N' || (overallExpStatus === 'Y' && prodexpir) ) { let Isincart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ index.key ]?.StockDetails?.[0]?.InwardDtlId && cartItem?.OrderRate === qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ index.key ]?.StockDetails?.[0]?.SellPrice && !cartItem?.SalesId ); if (onePeiceFlow) { let Isincartonepc = CartOrderDetails?.filter( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ index.key ]?.StockDetails?.[0]?.InwardDtlId && // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) !cartItem?.SalesId ); let totalOrderQty = Isincartonepc?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * (card.NoOfPcs ? card.NoOfPcs : 1) : card.OrderQty : 0 ) ); }, 0); if (Isincartonepc && Isincartonepc?.[0]?.StockAvailable === 'Y') { if (Isincartonepc?.[0]?.OverAllPcs > totalOrderQty) { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } else { dataTransfer(qtydata, QtyIndex, index.key, 1, onePeiceFlow); } } else { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } } else { if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart?.BalanceQty > Isincart?.OrderQty) { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } else { dataTransfer(qtydata, QtyIndex, index.key, 1, onePeiceFlow); } } else { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } } setModelQty(false); setVarItem(index.key); if (overallExpStatus === 'Y' && prodexpir) { setProdexpir(false); setRepeatedModel(true); } } else if (overallExpStatus === 'Y' && ExpiredProduct) { setVarItem(index.key); setexpVarModel(true); } } } else { if ( overallExpStatus === 'N' || (overallExpStatus === 'Y' && prodexpir) ) { setModalVarient(false); setModelstock(true); setVarItem(index.key); if (overallExpStatus === 'Y' && prodexpir) { setRepeatedModel(true); } return } else if (overallExpStatus === 'Y' && ExpiredProduct) { setVarItem(index.key); setexpVarModel(true); return } let Isincart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key] ?.StockDetails?.[0]?.InwardDtlId && cartItem?.OrderRate === qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key] ?.StockDetails?.[0]?.SellPrice && !cartItem?.SalesId ); if (onePeiceFlow) { let Isincartonepc = CartOrderDetails?.filter( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ index.key ]?.StockDetails?.[0]?.InwardDtlId && // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) !cartItem?.SalesId ); let totalOrderQty = Isincartonepc?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * (card.NoOfPcs ? card.NoOfPcs : 1) : card.OrderQty : 0 ) ); }, 0); if (Isincartonepc && Isincartonepc?.[0]?.StockAvailable === 'Y') { if (Isincartonepc?.[0]?.OverAllPcs > totalOrderQty) { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } else { dataTransfer(qtydata, QtyIndex, index.key, 1, onePeiceFlow); } } else { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } } else { if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart?.BalanceQty > Isincart?.OrderQty) { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } else { dataTransfer(qtydata, QtyIndex, index.key, 1, onePeiceFlow); } } else { dataTransfer(qtydata, QtyIndex, index.key, 0, onePeiceFlow); } } setModelQty(false); } }; const VarientFun = (index) => { const QtyExpire = index?.ProdVariantDetails.every( (item) => item.OverAllExpStatus === 'Y' ); if (QtyExpire && ExpiredProduct) { setExpQtyModel(true); setQtyExpData(index); } else { const selectedProIndex = qtydata?.ProductDetail?.findIndex( (item) => item?.ProdId === index?.ProdId && item?.Size === index?.Size && item?.UomName === index?.UomName && item?.Brand === index?.Brand ); if (selectedProIndex !== -1) { const count = qtydata?.ProductDetail[selectedProIndex]?.ProdVariantDetails ?.length || 0; if (count > 1) { setModelQty(false); setModalVarient(true); } else { const item = { QtyIndex: selectedProIndex, VarientIndex: 0 }; singleVarient(item); setModelQty(false); } } setQtyIndex(selectedProIndex); setVarientIndex(0); setRepeatedModel(false); } }; const singleVarient = (item) => { let count = qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.length; if ( StockPreferenceDetail?.SettingValue === 'Y' && qtydata?.ProductDetail?.[item?.QtyIndex]?.StockAvailable == 'Y' ) { if (count > 1) { setModalVarient(false); setModelstock(true); // setVarientIndex(index.key) } else { let Isincart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && cartItem?.OrderRate === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.[0]?.SellPrice && !cartItem?.SalesId ); if (onePeiceFlow) { let Isincartonepc = CartOrderDetails?.filter( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) !cartItem?.SalesId ); let totalOrderQty = Isincartonepc?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0); if (Isincartonepc && Isincartonepc?.[0]?.StockAvailable === 'Y') { if (Isincartonepc?.[0]?.OverAllPcs > totalOrderQty) { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 1, onePeiceFlow ); } } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } } else { if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart?.BalanceQty > Isincart?.OrderQty) { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 1, onePeiceFlow ); } } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } } setModelQty(false); } } else { let Isincart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && cartItem?.OrderRate === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.[0]?.SellPrice && !cartItem?.SalesId ); if (onePeiceFlow) { let Isincartonepc = CartOrderDetails?.filter( (cartItem) => cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.InwardDtlId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ item?.VarientIndex ]?.StockDetails?.[0]?.InwardDtlId && // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) !cartItem?.SalesId ); let totalOrderQty = Isincartonepc?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0); if (Isincartonepc && Isincartonepc?.[0]?.StockAvailable === 'Y') { if (Isincartonepc?.[0]?.OverAllPcs > totalOrderQty) { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 1, onePeiceFlow ); } } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } } else { if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart?.BalanceQty > Isincart?.OrderQty) { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 1, onePeiceFlow ); } } else { dataTransfer( qtydata, item?.QtyIndex, item?.VarientIndex, 0, onePeiceFlow ); } } setModelQty(false); } }; const StockDate = (date) => { let dateVal = moment(date, ['YYYY-MM-DDTHH:mm:ss']).format('DD-MM-YYYY'); return dateVal; }; const returnOnepcCount = (ProdName, currentQty, orderDetails, overallpcs) => { let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdName === ProdName ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0 ); let getCurrentProdDtl = orderDetails?.filter( (a) => a?.ProdName === ProdName ); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0); let OverallProdQty = totalOrderQty - totalSelectedProductQty; if ( parseInt(currentQty) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(currentQty) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ); return parseInt(count); } else { let count = 0; return count; } }; const returnQtyCount = (ProdId, item, orderDetails) => { if (onePeiceFlow) { let ItemQuantity = item?.ProdVariantDetails?.reduce( (accumulator, card) => { return accumulator + parseInt(card.OverAllPcs || 0); }, 0 ); let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdId === ProdId ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0 ); let getCurrentProdDtl = orderDetails?.filter((a) => a?.ProdId === ProdId); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0); let OverallProdQty = totalOrderQty - totalSelectedProductQty; if ( parseInt(ItemQuantity) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(ItemQuantity) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ); return parseInt(count); } else { let count = 0; return count; } } else { let ItemQuantity = item?.ProdVariantDetails?.reduce( (accumulator, card) => { return accumulator + parseInt(card.OverAllQty || 0); }, 0 ); let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdId === ProdId ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty : card.OverAllPcs % card.NoOfPcs >= card.OrderQty ? 0 : card.OrderQty % card.NoOfPcs === 0 ? Math.floor(card.OrderQty / card.NoOfPcs) : Math.floor(card.OrderQty / card.NoOfPcs) + 1 : 0 ) ); }, 0 ); let getCurrentProdDtl = orderDetails?.filter((a) => a?.ProdId === ProdId); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty : card.OverAllPcs % card.NoOfPcs >= card.OrderQty ? 0 : card.OrderQty % card.NoOfPcs === 0 ? Math.floor(card.OrderQty / card.NoOfPcs) : Math.floor(card.OrderQty / card.NoOfPcs) + 1 : 0 ) ); }, 0); let OverallProdQty = totalOrderQty - totalSelectedProductQty; if ( parseInt(ItemQuantity) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(ItemQuantity) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ); return parseInt(count); } else { let count = 0; return count; } } }; const returnVariantStock = ( ProdId, currentQty, orderDetails, ProdVariantName ) => { // let ReorderProdetails = BookingType === "Dine In" && !UnpaidData ? ReportholdData?.OrderDtlDetails // : BookingType === "Dine In" && UnpaidData ? ReportholdData?.productDetails // : ReportholdData?.productDetails if (onePeiceFlow) { let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdId === ProdId && a?.ProdVariantName === ProdVariantName ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0 ); let getCurrentProdDtl = orderDetails?.filter( (a) => a?.ProdId === ProdId && a?.ProdVariantName === ProdVariantName ); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty * card.NoOfPcs : card.OrderQty : 0 ) ); }, 0); if ( parseInt(currentQty) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? totalOrderQty - totalSelectedProductQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(currentQty) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? totalOrderQty - totalSelectedProductQty : getCurrentProdDtl ? totalOrderQty : 0 ); return parseInt(count); } else { let count = 0; return count; } } else { let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdId === ProdId && a?.ProdVariantName === ProdVariantName ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty : card.OverAllPcs % card.NoOfPcs >= card.OrderQty ? 0 : card.OrderQty % card.NoOfPcs === 0 ? Math.floor(card.OrderQty / card.NoOfPcs) : Math.floor(card.OrderQty / card.NoOfPcs) + 1 : 0 ) ); }, 0 ); let getCurrentProdDtl = orderDetails?.filter( (a) => a?.ProdId === ProdId && a?.ProdVariantName === ProdVariantName ); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty : card.OverAllPcs % card.NoOfPcs >= card.OrderQty ? 0 : card.OrderQty % card.NoOfPcs === 0 ? Math.floor(card.OrderQty / card.NoOfPcs) : Math.floor(card.OrderQty / card.NoOfPcs) + 1 : 0 ) ); }, 0); if ( parseInt(currentQty) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? totalOrderQty - totalSelectedProductQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(currentQty) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? totalOrderQty - totalSelectedProductQty : getCurrentProdDtl ? totalOrderQty : 0 ); return parseInt(count); } else { let count = 0; return count; } } }; const varientcolumns = [ { title: 'Variant Name', dataIndex: 'VarientName', key: 'VarientName', align: 'left', render: (_, record, index) => ( 0 || record.StockCount === 'Stock Not Maintained' ? { color: '#000', cursor: 'pointer' } : { color: '#f49898', cursor: 'not-allowed' } } > {record.VarientName} ), onCell: (record) => { return { onClick: () => { if ( record.StockCount > 0 || record.StockCount === 'Stock Not Maintained' ) { Stockfun(record); } }, }; }, }, { title: 'Stock Count', dataIndex: 'StockCount', key: 'StockCount', align: 'Right', render: (_, record, index) => ( 0 || record.StockCount === 'Stock Not Maintained' ? { color: '#000', cursor: 'pointer' } : { color: '#f49898', cursor: 'not-allowed' } } > {record.StockCount} ), onCell: (record) => { return { onClick: () => { if ( record.StockCount > 0 || record.StockCount === 'Stock Not Maintained' ) { Stockfun(record); } }, }; }, }, { title: 'Amount', dataIndex: 'Amount', key: 'Amount', align: 'right', render: (_, record, index) => ( 0 || record.StockCount === 'Stock Not Maintained' ? { color: '#000', cursor: 'pointer' } : { color: '#f49898', cursor: 'not-allowed' } } > {record.Amount} ), onCell: (record) => { return { onClick: () => { if ( record.StockCount > 0 || record.StockCount === 'Stock Not Maintained' ) { Stockfun(record); } }, }; }, }, ]; const qtydataSource = []; qtydata?.ProductDetail?.map((item, index) => { qtydataSource.push({ key: index, Quantity: item?.Size + ' ' + item?.UomName, Amount: item?.ProdVariantDetails?.[0]?.StockDetails?.[0]?.SellPrice, }); }); const varientdataSource = []; qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.map((item, index) => { varientdataSource.push({ key: index, VarientName: item?.ProdVariantName, Amount: onePeiceFlow ? item?.StockDetails?.[0]?.OnePcsPrice : item?.StockDetails?.[0]?.SellPrice, StockCount: qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable === 'Y' ? onePeiceFlow ? returnVariantStock( qtydata?.ProductDetail?.[QtyIndex]?.ProdId, item?.OverAllPcs, CartOrderDetails, item?.ProdVariantName ) : returnVariantStock( qtydata?.ProductDetail?.[QtyIndex]?.ProdId, item?.OverAllQty, CartOrderDetails, item?.ProdVariantName ) : 'Stock Not Maintained', }); }); const dataTransfer = (a, QtyIndex, VarientIndex, stockIndex, onePcs) => { if (WeightScalePort === true) { if ( (a?.ProductDetail?.[QtyIndex]?.UomName?.toLowerCase() === 'KGS'?.toLowerCase() || a?.ProductDetail?.[QtyIndex]?.UomName?.toLowerCase() === 'KG'?.toLowerCase()) && a?.ProductDetail?.[QtyIndex]?.Size == '1' ) { if (WeightScaleWeight > 0 && WeightScaleWeight !== null) { let TotalOrderRate = parseFloat( onePcs ? (a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ VarientIndex ]?.StockDetails?.[stockIndex]?.OnePcsPrice / 1000) * (parseFloat(WeightScaleWeight) * 1000) : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ VarientIndex ]?.StockDetails?.[stockIndex]?.SellPrice / 1000 ) * (parseFloat(WeightScaleWeight) * 1000); let data = { ProdCat: a?.ProdCat, Type: a?.Type, OverallQuantity: a?.OverAllQty, ActiveStatus: a?.ProductDetail?.[QtyIndex]?.ActiveStatus, AvailableFrom: a?.ProductDetail?.[QtyIndex]?.AvailableFrom, AvailableTo: a?.ProductDetail?.[QtyIndex]?.AvailableTo, Cess: a?.ProductDetail?.[QtyIndex]?.Cess, HSNCode: a?.ProductDetail?.[QtyIndex]?.HSNCode, BrandName: a?.ProductDetail?.[QtyIndex]?.BrandName, // 'ManufDate': a?.ProductDetail?.[QtyIndex]?.ManufDate, OpeningQty: a?.ProductDetail?.[QtyIndex]?.OpeningQty, PartNumber: a?.ProductDetail?.[QtyIndex]?.PartNumber, ProdId: a?.ProductDetail?.[QtyIndex]?.ProdId, ProdLogo: a?.ProductDetail?.[QtyIndex]?.ProdLogo, ProdName: a?.ProductDetail?.[QtyIndex]?.ProdName, QRCode: a?.ProductDetail?.[QtyIndex]?.QRCode, QtyBasedPrice: a?.ProductDetail?.[QtyIndex]?.QtyBasedPrice, Rack: a?.ProductDetail?.[QtyIndex]?.Rack, Size: parseFloat(WeightScaleWeight), StockAvailable: a?.ProductDetail?.[QtyIndex]?.StockAvailable, TokenAvailable: a?.ProductDetail?.[QtyIndex]?.TokenAvailable, TaxId: a?.ProductDetail?.[QtyIndex]?.TaxId, TaxPercentage: a?.ProductDetail?.[QtyIndex]?.TaxPercentage, TaxName: a?.ProductDetail?.[QtyIndex]?.TaxIdName, UniqueId: a?.ProductDetail?.[QtyIndex]?.UniqueId, UomName: onePcs ? 'PCS' : a?.ProductDetail?.[QtyIndex]?.UomName, SinglePc: onePcs ? 'Y' : 'N', FullProductIdentifierDtls: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.ProductIdentifierDtls, NoOfPcs: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.NoOfPcs, ProdVariantName: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.ProdVariantName, BalanceQty: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.BalanceQty, BatchRef: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.BatchRef, ModelNumber: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.ModelNumber, InwardDate: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.InwardDate, InwardDtlId: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.InwardDtlId, ExpDate: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.ExpDate, InwardId: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.InwardId, MRP: onePcs ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OnePcsPrice : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.MRP, OrderRate: parseFloat(TotalOrderRate).toFixed(2), SellingPrice: parseFloat(TotalOrderRate).toFixed(2), SuppId: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.SuppId, SuppName: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.SuppName, OverAllPcs: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OverAllPcs, Offer: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OfferPrice, BookingTypeName: BookingType, CounterName: a?.CounterName, }; setModelQty(false); setModalVarient(false); setModelstock(false); setQtyIndex(0); setVarientIndex(0); setVarItem(0); setItem(), setStockItem(); dispatch(changeSearchedData('')); AddOrderDetails(data); dispatch(changeWeightScaleWeight(null)); setRepeatedModel(false); setProdexpir(false); setOnePeiceFlow(false); } else { setMessageType('error'); setMessageData('Please Connect WeightScale'); } } else { setMessageType('error'); setMessageData('Please Select 1Kg Product'); } } else { if ( (onePcs && a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.NoOfPcs > 0 && a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OnePcsPrice > 0) || !onePcs || (a?.ProductDetail?.[QtyIndex]?.StockAvailable !== 'Y' && onePcs && a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OnePcsPrice > 0) ) { let data = { ProdCat: a?.ProdCat, Type: a?.Type, OverallQuantity: a?.OverAllQty, ActiveStatus: a?.ProductDetail?.[QtyIndex]?.ActiveStatus, AvailableFrom: a?.ProductDetail?.[QtyIndex]?.AvailableFrom, AvailableTo: a?.ProductDetail?.[QtyIndex]?.AvailableTo, Cess: a?.ProductDetail?.[QtyIndex]?.Cess, HSNCode: a?.ProductDetail?.[QtyIndex]?.HSNCode, BrandName: a?.ProductDetail?.[QtyIndex]?.BrandName, // 'ManufDate': a?.ProductDetail?.[QtyIndex]?.ManufDate, OpeningQty: a?.ProductDetail?.[QtyIndex]?.OpeningQty, PartNumber: a?.ProductDetail?.[QtyIndex]?.PartNumber, ProdId: a?.ProductDetail?.[QtyIndex]?.ProdId, ProdLogo: a?.ProductDetail?.[QtyIndex]?.ProdLogo, ProdName: a?.ProductDetail?.[QtyIndex]?.ProdName, QRCode: a?.ProductDetail?.[QtyIndex]?.QRCode, QtyBasedPrice: a?.ProductDetail?.[QtyIndex]?.QtyBasedPrice, Rack: a?.ProductDetail?.[QtyIndex]?.Rack, Size: onePcs ? '1' : a?.ProductDetail?.[QtyIndex]?.Size, StockAvailable: a?.ProductDetail?.[QtyIndex]?.StockAvailable, TokenAvailable: a?.ProductDetail?.[QtyIndex]?.TokenAvailable, TaxId: a?.ProductDetail?.[QtyIndex]?.TaxId, TaxPercentage: a?.ProductDetail?.[QtyIndex]?.TaxPercentage, TaxName: a?.ProductDetail?.[QtyIndex]?.TaxIdName, UniqueId: a?.ProductDetail?.[QtyIndex]?.UniqueId, UomName: a?.ProductDetail?.[QtyIndex]?.UomName, SinglePc: onePcs ? 'Y' : 'N', NoOfPcs: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.NoOfPcs, ProdVariantName: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.ProdVariantName, BalanceQty: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.BalanceQty, BatchRef: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.BatchRef, ModelNumber: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.ModelNumber, FullProductIdentifierDtls: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.ProductIdentifierDtls, InwardDate: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.InwardDate, InwardDtlId: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.InwardDtlId, ExpDate: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.ExpDate, InwardId: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.InwardId, MRP: onePcs ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OnePcsPrice : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.MRP, OrderRate: onePcs ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OnePcsPrice : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.SellPrice, SellingPrice: onePcs ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OnePcsPrice : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.SellPrice, SuppId: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.SuppId, OverAllPcs: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OverAllPcs, SuppName: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.SuppName, Offer: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ?.StockDetails?.[stockIndex]?.OfferPrice, BookingTypeName: BookingType, CounterName: a?.CounterName, }; setModelQty(false); setModalVarient(false); setModelstock(false); setQtyIndex(0); setVarientIndex(0); setVarItem(0); setItem(), setStockItem(); dispatch(changeSearchedData('')); AddOrderDetails(data); setOnePeiceFlow(false); } else { setMessageType('error'); setMessageData( 'Please add No.of pieces Inside the box in Product master' ); setModelQty(false); setModalVarient(false); setModelstock(false); setQtyIndex(0); setVarientIndex(0); setVarItem(0); setItem(), setStockItem(); dispatch(changeSearchedData('')); setOnePeiceFlow(false); } } }; useEffect(() => { setPreOrderSelectedProdNames(GPreOrderList); }, [GPreOrderList]); const pickData = (e, item) => { if (e.target.checked === true) { setSelectedProdNames([ ...globalAllItemdata, { ProdName: item.ProdName, ProdId: item.ProductDetail?.[0]?.ProdId, ProdCat: item.ProdCat, ProdCatName: item.ProdCatName, }, ]); } else { setSelectedProdNames( SelectedProdNames?.filter( (data) => !(data?.ProdName == item.ProdName && data?.ProdCat == item.ProdCat) ) ); } }; const handleQuickCancel = async () => { setQuickAdd(false); dispatch(changeSearchedData('')); let data = { CompId: CompId, BranchId: BranchId, AppId: AppId, }; await dispatch(getSelectedFavItems(data)).unwrap(); let data1 = { CompId: CompId, BranchId: BranchId, AppId: AppId, ProdSubCat: ProdSubCat, }; let data2 = { compId: CompId, branchId: BranchId, appId: AppId, prodCat: ProdCat, }; if ( templateData?.BookingLayout?.[1]?.some( (item) => item?.OptionName === 'SubCategory' ) && ProdSubCat ) { await dispatch(getLayoutproductCard(data1)).unwrap(); } else if ( !templateData?.BookingLayout?.[1]?.some( (item) => item?.OptionName === 'SubCategory' ) ) { await dispatch(getCardDataWithoutSubmodule(data2)).unwrap(); } else { await dispatch(getCardDataWithoutSub(data2)).unwrap(); } }; let brandMapping = {}; // Group product details by Brand ID qtydata?.ProductDetail?.forEach((item) => { const brandId = item?.BrandName; if (!brandMapping[brandId]) { brandMapping[brandId] = []; } brandMapping[brandId].push(item); }); const ItemSellingPrice = (item) => { // const variantWithDetails = item?.ProductDetail?.find((variant) => variant?.ProdVariantDetails?.length > 0); const variantWithDetails = item?.ComboInwardDetails?.find( (variant) => variant?.TotalSellPrice ); if (variantWithDetails) { // Access the details of the first variant with ProdVariantDetails const firstVariantDetails = variantWithDetails?.ProdVariantDetails?.[0]?.StockDetails?.[0] ?.TotalSellPrice; return firstVariantDetails; } else { // Handle the case where no variant satisfies the condition return null; // or any other value you want to return } }; const ItemSize = (item) => { const variantWithDetails = item?.ProductDetail?.find( (variant) => variant?.ProdVariantDetails?.length > 0 ); if (variantWithDetails) { // Access the details of the first variant with ProdVariantDetails const firstVariantDetails = variantWithDetails?.Size; return firstVariantDetails; } else { // Handle the case where no variant satisfies the condition return null; // or any other value you want to return } }; const ItemUomName = (item) => { const variantWithDetails = item?.ProductDetail?.find( (variant) => variant?.ProdVariantDetails?.length > 0 ); if (variantWithDetails) { // Access the details of the first variant with ProdVariantDetails const firstVariantDetails = variantWithDetails?.UomName; return firstVariantDetails; } else { // Handle the case where no variant satisfies the condition return null; // or any other value you want to return } }; const expQtyFun = (index) => { const selectedProIndex = qtydata?.ProductDetail?.findIndex( (item) => item?.ProdId === index?.ProdId && item?.Size === index?.Size && item?.UomName === index?.UomName && item?.Brand === index?.Brand ); if (selectedProIndex !== -1) { const count = qtydata?.ProductDetail[selectedProIndex]?.ProdVariantDetails?.length || 0; if (count > 1) { setModelQty(false); setModalVarient(true); } else { const item = { QtyIndex: selectedProIndex, VarientIndex: 0 }; singleVarient(item); setModelQty(false); } } setQtyIndex(selectedProIndex); setRepeatedModel(true); setExpQtyModel(false); }; const expVerFun = (item) => { let count = qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[item] ?.StockDetails?.length; if (count > 1) { setRepeatedModel(true); setModalVarient(false); setModelstock(true); } else { setRepeatedModel(true); dataTransfer(qtydata, QtyIndex, item, 0, onePeiceFlow); setModelQty(false); } setexpVarModel(false); }; const expStockFun = (item) => { dataTransfer(qtydata, QtyIndex, VarientIndex, item, onePeiceFlow); setexpStockModel(false); }; const getMaxBrandWidth = () => { let maxBrandDataLength = 0; // Iterate through each brand and find the maximum length of the specified key Object.values(brandMapping).forEach((brand) => { const keyDataLength = brand.length; if (keyDataLength > maxBrandDataLength) { maxBrandDataLength = keyDataLength; } }); // Set your width logic here based on the maxBrandDataLength const maxWidth = maxBrandDataLength >= 5 ? 750 : 'max-content'; return maxWidth; }; useEffect(() => { function handleResize() { setScreenWidth(window.innerWidth); } window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, []); useEffect(() => { function handleResize() { setScreenHeight(window.innerHeight); } window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, []); // Example usage for checking the length of 'ProdVariantDetails' const widthBasedOnProdVariantDetails = getMaxBrandWidth(); const ExpDate = useSelector(GlobalExpDateforHeight); let containerHeight = ''; if (templateData?.BookingLayout?.[0] === 'Layout1') { if (templateData?.BookingBilling?.[0] == 'Billing1') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 310}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 320}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing2') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 300}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 310}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing3') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 340}px` : '63vh' : screenWidth < 600 ? `${props?.screenHeight - 350}px` : '62vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing4') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 300}px` : '63vh' : screenWidth < 600 ? `${props?.screenHeight - 310}px` : '62vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing5') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 300}px` : '60vh' : screenWidth < 600 ? `${props?.screenHeight - 310}px` : '59vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing6') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 300}px` : '60vh' : screenWidth < 600 ? `${props?.screenHeight - 310}px` : '59vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing7') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 300}px` : '60vh' : screenWidth < 600 ? `${props?.screenHeight - 310}px` : '59vh' : '76vh'; } } else if (templateData?.BookingLayout?.[0] === 'Layout2') { if (templateData?.BookingBilling?.[0] == 'Billing1') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 310}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 320}px` : '60vh' : '74vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing2') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '60vh' : '74vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing3') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '63vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '62vh' : '74vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing4') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '63vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '62vh' : '74vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing5') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '60vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '61vh' : '74vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing6') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '60vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '59vh' : '74vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing7') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 310}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 320}px` : '60vh' : '75vh'; } } else if (templateData?.BookingLayout?.[0] === 'Layout3') { if (templateData?.BookingBilling?.[0] == 'Billing1') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 390}px` : '58vh' : screenWidth < 600 ? `${props?.screenHeight - 400}px` : '57vh' : '73vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing2') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 390}px` : '57vh' : screenWidth < 600 ? `${props?.screenHeight - 400}px` : '56vh' : '73vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing3') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 395}px` : '57vh' : screenWidth < 600 ? `${props?.screenHeight - 400}px` : '56vh' : '73vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing4') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 390}px` : '57vh' : screenWidth < 600 ? `${props?.screenHeight - 400}px` : '56vh' : '75vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing5') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 385}px` : '57vh' : screenWidth < 600 ? `${props?.screenHeight - 395}px` : '56vh' : '72vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing6') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 385}px` : '57vh' : screenWidth < 600 ? `${props?.screenHeight - 395}px` : '56vh' : '72vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing7') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 390}px` : '57vh' : screenWidth < 600 ? `${props?.screenHeight - 400}px` : '56vh' : '72vh'; } } else if (templateData?.BookingLayout?.[0] === 'Layout4') { if (templateData?.BookingBilling?.[0] == 'Billing1') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing2') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 220}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 230}px` : '72vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing3') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing4') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 230}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 240}px` : '72vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing5') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 230}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 240}px` : '72vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing6') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing7') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '73vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : '88vh'; } } else if (templateData?.BookingLayout?.[0] === 'Layout5') { if (templateData?.BookingBilling?.[0] == 'Billing1') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 280}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 290}px` : '70vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing2') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '70vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing3') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 280}px` : '70vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing4') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 280}px` : '70vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing5') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '70vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing6') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 270}px` : '70vh' : '88vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing7') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 270}px` : '72vh' : screenWidth < 600 ? `${props?.screenHeight - 280}px` : '70vh' : '88vh'; } } else if (templateData?.BookingLayout?.[0] === 'Layout6') { if (templateData?.BookingBilling?.[0] == 'Billing1') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 330}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 340}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing2') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 260}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 370}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing3') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing4') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 320}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing5') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 290}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 300}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing6') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 320}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 330}px` : '60vh' : '76vh'; } else if (templateData?.BookingBilling?.[0] == 'Billing7') { containerHeight = isMobile ? ExpDate >= 7 ? screenWidth < 600 ? `${props?.screenHeight - 280}px` : '61vh' : screenWidth < 600 ? `${props?.screenHeight - 290}px` : '60vh' : '76vh'; } } const [draggableCardData, setDraggableCardData] = useState([]); useEffect(() => { if (Array.isArray(cardData)) { const withIds = cardData.map((item, idx) => ({ ...item, id: item?.ProductDetail?.[0]?.ProdName + '-' + idx, })); setDraggableCardData(withIds); } }, [cardData]); const sensors = useSensors( useSensor(PointerSensor, { activationConstraint: { distance: 8, // <- number of pixels the pointer must move before activating drag }, }) ); const handleDragEnd = (event) => { const { active, over } = event; // Ensure `over` is not null if (!over) return; if (active.id !== over.id) { const oldIndex = draggableCardData.findIndex((i) => i.id === active.id); const newIndex = draggableCardData.findIndex((i) => i.id === over.id); const updatedData = arrayMove(draggableCardData, oldIndex, newIndex); setDraggableCardData(updatedData); dispatch(changeCardData(updatedData)); } }; // ---------------------------------------------------BS COMBO ITEM CARD--------------------------------------------------------------------------------------------------------- const onComplete = useCallback(() => { setMessageData(null); setMessageType(null); }, []); const updateScreenSize = () => { setScreenWidth(window.innerWidth); }; useEffect(() => { // Set initial screen size updateScreenSize(); // Add event listener to track changes in screen size window.addEventListener('resize', updateScreenSize); // Clean up the event listener on component unmount return () => { window.removeEventListener('resize', updateScreenSize); }; }, []); //dhana useEffect(() => { const handleKeyPress = (event) => { if (event.shiftKey && event.code === 'KeyS') { if ( document.activeElement.tagName !== 'INPUT' && document.activeElement.tagName !== 'TEXTAREA' ) { event.preventDefault(); // Stops "S" from being typed // searchInputRef?.current?.focus(); } } }; const handleClickOutside = (event) => { // searchInputRef?.current?.blur(); }; window.addEventListener('keydown', handleKeyPress); window.addEventListener('mousedown', handleClickOutside); return () => { window.removeEventListener('keydown', handleKeyPress); window.removeEventListener('mousedown', handleClickOutside); }; }, []); //dhana const stockcolumns = [ { title: 'Batch No', dataIndex: 'ComboInwardDtlId', key: 'ComboInwardDtlId', align: 'center', render: (text, record, index) => ( 0 ? { color: '#000', cursor: 'pointer' } : { color: '#f49898', cursor: 'not-allowed' } } > {record?.['ComboInwardDtlId']} ), onCell: (record) => { return { onClick: () => { if (record.StockCount > 0) { StockSelected(record); } }, }; }, }, { title: 'Stock Count', dataIndex: 'StockCount', key: 'StockCount', align: 'center', render: (_, record, index) => ( 0 ? { color: '#000', cursor: 'pointer' } : { color: '#f49898', cursor: 'not-allowed' } } > {record.StockCount} ), onCell: (record) => { return { onClick: () => { if (record.StockCount > 0) { StockSelected(record); } }, }; }, }, { title: 'Price', dataIndex: 'Price', key: 'Price', align: 'center', render: (_, record, index) => ( 0 ? { color: '#000', cursor: 'pointer' } : { color: '#f49898', cursor: 'not-allowed' } } > {record.Price} ), onCell: (record) => { return { onClick: () => { if (record.StockCount > 0) { StockSelected(record); } }, }; }, }, ]; const Prodcolumns = [ { title: 'Product Name', dataIndex: 'ProdName', key: 'ProdName', align: 'center', render: (text) => {text}, }, { title: 'Size', dataIndex: 'Size', key: 'Size', align: 'center', render: (text) => {text}, }, { title: 'UomName', dataIndex: 'UomName', key: 'UomName', align: 'center', render: (text) => {text}, }, { title: 'ExpDate', dataIndex: 'ExpDate', key: 'ExpDate', align: 'center', render: (text) => {text}, }, ]; useEffect(() => { setPreOrderSelectedProdNames(GPreOrderList); }, [GPreOrderList]); useEffect(() => { setPreOrderSelectedProdNames([]); // dispatch(changePreOrderAdditem(null)); }, [preOrder]); const CardOnclick = async (selectedOption, item) => { let count = selectedOption?.[0]?.ComboInwardDetails?.length; setQtydata(selectedOption); let alreadyOrdercount = await returnCount( selectedOption?.ComboName, selectedOption?.OverallQuantity, CartOrderDetails ); if (alreadyOrdercount <= 0 && selectedOption?.SetCount > 0) { setMessageType('error'); setMessageData('Stock Not Available'); } else if (count > 1) { setModelstock(true); // form.resetFields(['ProdName']); } else { onAutocompleteChange(selectedOption); // form.resetFields(['ProdName']); } }; const returnCount = ( ProdName, currentQty, orderDetails, comboItem // pass the full combo item object here if available ) => { // --- Combo SetCount==0 logic --- if ( comboItem && comboItem.SetCount === 0 && ( Array.isArray(comboItem.ComboInwardDetails?.[0]?.ComboDetails) || Array.isArray(comboItem.ProdDetail) ) ) { const insideProducts = comboItem.ComboInwardDetails?.[0]?.ComboDetails || comboItem.ProdDetail; const comboOrderQty = parseInt(currentQty) || 1; const combosInCart = orderDetails?.filter( (a) => a?.ProdId === comboItem.ComboId || a?.ProdId === comboItem.ProdId ) || []; const combosInCartQty = combosInCart.reduce( (sum, c) => sum + (parseInt(c.OrderQty) || 0), 0 ); // Include reorder combos (SetCount == 0) for the same combo id const reorderCombos = (ReorderProductData || []).filter( (a) => a?.Type === 'C' && (a?.ProdId === comboItem.ComboId || a?.ProdId === comboItem.ProdId) ); const reorderCombosQty = reorderCombos.reduce((sum, c) => { const setZero = c?.SetCount === 0 || c?.SetCount === '0'; return setZero ? sum + (parseInt(c?.OrderQty) || 0) : sum; }, 0); // Ignore reorder combos when validating availability const combosInCartQtyNet = Math.max(0, (parseInt(combosInCartQty) || 0) - (parseInt(reorderCombosQty) || 0)); // Collect out-of-stock product names const outOfStockProducts = insideProducts .filter((prod) => { if (prod.StockAvailable === 'Y') { // Find all cart items for this inside product const cartQty = orderDetails ?.filter((cartItem) => cartItem.ProdId === prod.ProdId) ?.reduce((sum, cartItem) => sum + (parseInt(cartItem.OrderQty) || 0), 0) || 0; // How many combos are being added now const comboOrderQty = parseInt(currentQty) || 1; const combosInCart = orderDetails?.filter( (a) => a?.ProdId === comboItem.ComboId || a?.ProdId === comboItem.ProdId ) || []; const combosInCartQty = combosInCart.reduce( (sum, c) => sum + (parseInt(c.OrderQty) || 0), 0 ); // Include reorder combos (SetCount == 0) for the same combo id const reorderCombos = (ReorderProductData || []).filter( (a) => a?.Type === 'C' && (a?.ProdId === comboItem.ComboId || a?.ProdId === comboItem.ProdId) ); const reorderCombosQty = reorderCombos.reduce((sum, c) => { const setZero = c?.SetCount === 0 || c?.SetCount === '0'; return setZero ? sum + (parseInt(c?.OrderQty) || 0) : sum; }, 0); const combosInCartQtyNet = Math.max(0, (parseInt(combosInCartQty) || 0) - (parseInt(reorderCombosQty) || 0)); // Total required for this inside product: (combos in cart (excluding reorder) + this add) * ProductQty + single product in cart const requiredQtyFromCombos = (comboOrderQty + combosInCartQtyNet) * (parseInt(prod.ProductQty) || 1); const totalRequiredQty = requiredQtyFromCombos + cartQty; const availableQty = (prod.StockDetails || []).reduce( (sum, stock) => sum + (parseInt(stock.BalanceQty) || 0), 0 ); return totalRequiredQty > availableQty; } return false; }) .map((prod) => prod.ProdName); if (outOfStockProducts.length > 0) { return { count: 0, outOfStockProducts }; } return { count: 1, outOfStockProducts: [] }; } // --- Original logic for normal products --- // (keep your original logic, but return {count, outOfStockProducts: []}) let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdName === ProdName ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty : card.OverAllPcs % card.NoOfPcs >= card.OrderQty ? 0 : card.OrderQty % card.NoOfPcs === 0 ? Math.floor(card.OrderQty / card.NoOfPcs) : Math.floor(card.OrderQty / card.NoOfPcs) + 1 : 0 ) ); }, 0 ); let getCurrentProdDtl = orderDetails?.filter( (a) => a?.ProdName === ProdName ); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return ( accumulator + parseInt( card?.StockAvailable === 'Y' ? card.SinglePc !== 'Y' ? card.OrderQty : card.OverAllPcs % card.NoOfPcs >= card.OrderQty ? 0 : card.OrderQty % card.NoOfPcs === 0 ? Math.floor(card.OrderQty / card.NoOfPcs) : Math.floor(card.OrderQty / card.NoOfPcs) + 1 : 0 ) ); }, 0); let OverallProdQty = totalOrderQty - totalSelectedProductQty; if ( parseInt(currentQty) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(currentQty) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ); return { count: parseInt(count), outOfStockProducts: [] }; } else { return { count: 0, outOfStockProducts: [] }; } }; const onAutocompleteChange = async (selectedOption) => { let OrderRate = selectedOption?.ComboInwardDetails?.[0]?.TotalSellPrice; let data = { Type: 'C', OverallQuantity: selectedOption?.OverallQuantity, ActiveStatus: selectedOption?.ActiveStatus, AvailableFrom: selectedOption?.ValidFrom, AvailableTo: selectedOption?.ValidTo, ProdId: selectedOption?.ComboId, ProdDetail: selectedOption?.ComboInwardDetails?.[0]?.ComboDetails, ProdName: selectedOption?.ComboName, QRCode: selectedOption?.ComboInwardDetails?.[0]?.QRCode, StockAvailable: 'Y', BalanceQty: selectedOption?.ComboInwardDetails?.[0]?.BalanceQty, InwardDtlId: selectedOption?.ComboInwardDetails?.[0]?.ComboInwardDtlId, MRP: selectedOption?.ComboInwardDetails?.[0]?.TotalSellPrice, OrderRate: selectedOption?.ComboInwardDetails?.[0]?.TotalSellPrice, SellingPrice: selectedOption?.ComboInwardDetails?.[0]?.TotalSellPrice, BookingTypeName: BookingType, TaxPercentage: 0, Size: 1, UomName: 'PCS', OfferType: selectedOption?.ComboInwardDetails?.[0]?.OfferType, OfferPrice: selectedOption?.ComboInwardDetails?.[0]?.OfferPrice, OfferValue: selectedOption?.ComboInwardDetails?.[0]?.OfferType === 'F' ? selectedOption?.ComboInwardDetails?.[0]?.OfferPrice : (OrderRate * selectedOption?.ComboInwardDetails?.[0]?.OfferPrice) / 100, SinglePc: 'N', SetCount: selectedOption?.SetCount, }; await AddOrderDetails(data); }; const calculateTaxAmounts = (item) => { // Calculate TotalAmt considering OfferPrice and OfferType const offerValue = item?.OfferPrice > 0 ? item?.OrderRate - (item?.OfferType === 'F' ? item?.OfferPrice : (item?.OrderRate * item?.OfferPrice) / 100) : item?.OrderRate; const taxAmount = ((item?.OrderRate * item?.TaxPercentage) / (100 + item?.TaxPercentage)).toFixed(2); const withoutTaxRate = ( item?.OrderRate - (item?.OrderRate * item?.TaxPercentage) / (100 + item?.TaxPercentage) ).toFixed(2); return { TotalAmt: offerValue, TaxAmt: parseFloat(taxAmount), WithoutTaxRate: parseFloat(withoutTaxRate), }; }; const createNewCartItem = (item) => { const taxAmounts = calculateTaxAmounts(item); return { ...item, OrderQty: 1, OfferPrice: item?.OfferPrice, ...taxAmounts, localId: uuidv4(), }; }; const AddOrderDetails = async (item) => { if (preOrder) { let Response = await dispatch( getConfigType({ TypeName: 'Booking Type' }) ).unwrap(); let BookingTypeID; if (Response?.data?.statusCode == 1) { BookingTypeID = Response?.data?.data?.find( (item) => item?.ConfigName === 'Dine In' )?.ConfigId; } let Condition = PreOrderSelectedProdNames?.some( (obj) => obj?.InwardDtlId === item?.InwardDtlId && obj?.SinglePc === item?.SinglePc ); if (Condition !== undefined && Condition === true) { setMessageData('Dublicate Data'); setMessageType('error'); } else { let OfferPri = item?.OfferType === 'F' ? item?.OfferPrice : (item?.OrderRate * item?.OfferPrice) / 100; const SelectedProduct = { ProdId: item?.ProdId, InwardDtlId: item?.InwardDtlId, ProdNameQty: item?.Type != 'C' ? item?.ProdName + ' ' + item?.Size + ' ' + item?.UomName : `${item?.ProdName} (1 Combo)`, ProdName: item?.ProdName, ProdDetail: item.ProdDetail, OrderQty: 1, OrderRate: item?.OrderRate, SellingPrice: item?.SellingPrice, TotalAmt: item?.OrderRate - OfferPri, Image: null, Description: null, Type: item?.Type, TaxAmt: 0, RefundQty: 0, TaxId: item?.TaxId, OrderStatus: 'O', OrderType: 'PRE', SinglePc: item?.SinglePc, BookingType: BookingTypeID, TaxPercentage: 0, Size: 1, UomName: 'Combo', OfferType: item?.OfferType, OfferValue: item?.OfferPrice, OfferAmt: OfferPri, WithoutTaxRate: 1 * item?.OrderRate - ( (1 * item?.OrderRate * item?.TaxPercentage) / (100 + item?.TaxPercentage) ).toFixed(2), }; let Data = [SelectedProduct]; if (PreOrderSelectedProdNames?.length > 0) { for (let i = 0; i < PreOrderSelectedProdNames?.length; i++) { Data.push(PreOrderSelectedProdNames[i]); } } if (GPreOrderList) { let updatedGPreOrderList = [...GPreOrderList]; Data?.forEach((product) => { const exists = updatedGPreOrderList.some( (gProduct) => gProduct.InwardDtlId === product.InwardDtlId ); // && gProduct.SinglePc === product.SinglePc if (!exists) { updatedGPreOrderList.push(product); } }); setPreOrderSelectedProdNames(Data); dispatch(changepreOrderList(updatedGPreOrderList)); } else { setPreOrderSelectedProdNames(Data); dispatch(changepreOrderList(Data)); } } } else { dispatch(changeHoldOrderDtl(false)); dispatch(changePreviousOrderLength(CartOrderDetails?.length)); const OtherOrderDatas = CartOrderDetails?.filter( (cartItem) => !( cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ) && !cartItem?.SalesId ); const OtherOrderDatawithsales = CartOrderDetails?.filter( (cartItem) => cartItem?.SalesId ); const OtherorderDataforNormal = CartOrderDetails?.filter( (cartItem) => !( cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName && !cartItem?.SalesId ) ); const isItemInCart = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName && !cartItem?.SalesId ); // check if the item is already in the cart const isItemNotInDine = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName && !cartItem?.SalesId ); // check if the item is already in the cart const isItemInCartSalesId = CartOrderDetails?.find( (cartItem) => cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName && cartItem?.SalesId ); // check if the item is already in the cart const isItemInCartHold = CartOrderDetails?.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 const OtherorderDataforNormalWithoutSalesId = CartOrderDetails?.filter( (cartItem) => !( cartItem?.ProdId === item?.ProdId && cartItem?.InwardDtlId === item?.InwardDtlId && cartItem?.OrderRate === item?.OrderRate && cartItem?.BookingTypeName === item?.BookingTypeName ) ); const BookingTypeProd = item?.BookingTypeName; if (isItemInCart && BookingTypeProd != 'Dine In' && OrderType != 'Hold') { if (BillOrderPre === 'Y') { const UpdatedCartItem = // if the item is already in the cart, increase the quantity of the item { ...isItemInCart, OrderQty: isItemInCart?.OrderQty + 1, TotalAmt: isItemInCart?.OfferPrice > 0 ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - (isItemInCart?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100) : (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate, // TotalAmt: ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate), OfferValue: item?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100)?.toFixed(2), TaxAmt: ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), }; dispatch( changeOrderCardDetails([ UpdatedCartItem, ...OtherorderDataforNormal, ]) ); } else { const UpdatedCartItem = // if the item is already in the cart, increase the quantity of the item { ...isItemInCart, OrderQty: isItemInCart?.OrderQty + 1, TotalAmt: isItemInCart?.OfferPrice > 0 ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - (isItemInCart?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100) : (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate), TaxAmt: ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), }; dispatch( changeOrderCardDetails([ ...OtherorderDataforNormal, UpdatedCartItem, ]) ); } } //mohan for both else if ( isItemInCart && BookingTypeProd === 'Dine In' && OrderType != 'Hold' ) { if (BillOrderPre === 'Y') { const UpdatedCartItem = // if the item is already in the cart, increase the quantity of the item { ...isItemInCart, OrderQty: isItemInCart?.OrderQty + 1, TotalAmt: isItemInCart?.OfferPrice > 0 ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - (isItemInCart?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100) : (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate), TaxAmt: ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), }; dispatch( changeOrderCardDetails([ UpdatedCartItem, ...OtherorderDataforNormal, ]) ); } else { const UpdatedCartItem = // if the item is already in the cart, increase the quantity of the item { ...isItemInCart, OrderQty: isItemInCart?.OrderQty + 1, TotalAmt: isItemInCart?.OfferPrice > 0 ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - (isItemInCart?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100) : (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate), TaxAmt: ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate - ( ((isItemInCart?.OrderQty + 1) * isItemInCart?.OrderRate * isItemInCart?.TaxPercentage) / (100 + isItemInCart?.TaxPercentage) ).toFixed(2), }; dispatch( changeOrderCardDetails([ ...OtherorderDataforNormal, UpdatedCartItem, ]) ); } } else if (isItemInCartHold && OrderType === 'Hold') { if (BillOrderPre === 'Y') { const UpdatedCartItem = // if the item is already in the cart, increase the quantity of the item { ...isItemInCartHold, OrderQty: isItemInCartHold?.OrderQty + 1, TotalAmt: isItemInCartHold?.OfferPrice > 0 ? (isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate - (isItemInCartHold?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.OfferPrice) / 100) : (isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate), TaxAmt: ( ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.TaxPercentage) / (100 + isItemInCartHold?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate - ( ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.TaxPercentage) / (100 + isItemInCartHold?.TaxPercentage) ).toFixed(2), }; dispatch( changeOrderCardDetails([ UpdatedCartItem, ...OtherorderDataforNormalWithoutSalesId, ]) ); } else { const UpdatedCartItem = // if the item is already in the cart, increase the quantity of the item { ...isItemInCartHold, OrderQty: isItemInCartHold?.OrderQty + 1, TotalAmt: isItemInCartHold?.OfferPrice > 0 ? (isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate - (isItemInCartHold?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.OfferPrice) / 100) : (isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemInCartHold?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate), TaxAmt: ( ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.TaxPercentage) / (100 + isItemInCartHold?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate - ( ((isItemInCartHold?.OrderQty + 1) * isItemInCartHold?.OrderRate * isItemInCartHold?.TaxPercentage) / (100 + isItemInCartHold?.TaxPercentage) ).toFixed(2), }; dispatch( changeOrderCardDetails([ ...OtherorderDataforNormalWithoutSalesId, UpdatedCartItem, ]) ); } } else if ( isItemNotInDine && BookingTypeProd == 'Dine In' && OrderType != 'Hold' ) { if (BillOrderPre === 'Y') { const UpdatedCartItem = { ...isItemNotInDine, OrderQty: isItemNotInDine?.OrderQty + 1, TotalAmt: isItemNotInDine?.OfferPrice > 0 ? (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate - (isItemNotInDine?.OfferType === 'F' ? (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OfferPrice : ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.OfferPrice) / 100) : (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OfferPrice : (((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate), TaxAmt: ( ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.TaxPercentage) / (100 + isItemNotInDine?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate - ( ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.TaxPercentage) / (100 + isItemNotInDine?.TaxPercentage) ).toFixed(2), }; // otherwise, return the cart item dispatch( changeOrderCardDetails([ UpdatedCartItem, ...OtherOrderDatas, ...OtherOrderDatawithsales, ]) ); } else { const UpdatedCartItem = { ...isItemNotInDine, OrderQty: isItemNotInDine?.OrderQty + 1, TotalAmt: isItemNotInDine?.OfferPrice > 0 ? (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate - (isItemNotInDine?.OfferType === 'F' ? (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OfferPrice : ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.OfferPrice) / 100) : (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate, OfferValue: item?.OfferType === 'F' ? (isItemInCart?.OrderQty + 1) * isItemInCart?.OfferPrice : (((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.OfferPrice) / 100)?.toFixed(2), // TotalAmt: ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate), TaxAmt: ( ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.TaxPercentage) / (100 + isItemNotInDine?.TaxPercentage) ).toFixed(2), WithoutTaxRate: (isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate - ( ((isItemNotInDine?.OrderQty + 1) * isItemNotInDine?.OrderRate * isItemNotInDine?.TaxPercentage) / (100 + isItemNotInDine?.TaxPercentage) ).toFixed(2), }; // otherwise, return the cart item dispatch( changeOrderCardDetails([ ...OtherOrderDatawithsales, ...OtherOrderDatas, UpdatedCartItem, ]) ); } } else { if (item?.OtherProduct === 'Others') { // BillOrderPre === 'Y' // ? const newCartItem = createNewCartItem(item, item.OrderQty); const updatedData = BillOrderPre === 'Y' ? [newCartItem, ...CartOrderDetails] : [...CartOrderDetails, newCartItem]; dispatch(changeOrderCardDetails(updatedData)); // dispatch( // changeOrderCardDetails([ // { // ...item, // // TotalAmt: (((item?.OrderQty + 1) * item?.OrderRate)- (item?.OfferType === "F" ?item?.OfferPrice :(((item?.OrderQty + 1) * item?.OrderRate) * item?.OfferPrice)/100)), // TotalAmt: item?.OrderQty * item?.OrderRate, // TaxAmt: ( // (item?.OrderQty * item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // WithoutTaxRate: ( // item?.OrderQty * item?.OrderRate - // (item?.OrderQty * item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // }, // ...CartOrderDetails, // ]) // ) // if the item is not in the cart, add the item to the cart // : dispatch( // changeOrderCardDetails([ // ...CartOrderDetails, // { // ...item, // TotalAmt: item?.OrderQty * item?.OrderRate, // // TotalAmt: (((item?.OrderQty + 1) * item?.OrderRate)- (item?.OfferType === "F" ?item?.OfferPrice :(((item?.OrderQty + 1) * item?.OrderRate) * item?.OfferPrice)/100)), // TaxAmt: ( // (item?.OrderQty * item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // WithoutTaxRate: ( // item?.OrderQty * item?.OrderRate - // (item?.OrderQty * item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // }, // ]) // ); } else { const newCartItem = createNewCartItem(item, 1); const updatedData = (BillOrderPre === 'Y') ? [newCartItem, ...CartOrderDetails] : [...CartOrderDetails, newCartItem]; dispatch(changeOrderCardDetails(updatedData)); // BillOrderPre === 'Y' // ? dispatch( // changeOrderCardDetails([ // { // ...item, // OrderQty: 1, // // TotalAmt: (((item?.OrderQty + 1) * item?.OrderRate)- (item?.OfferType === "F" ?item?.OfferPrice :(((item?.OrderQty + 1) * item?.OrderRate) * item?.OfferPrice)/100)), // OfferPrice: item?.OfferPrice, // TotalAmt: // item?.OfferPrice > 0 // ? item?.OrderRate - // (item?.OfferType === 'F' // ? item?.OfferPrice // : (item?.OrderRate * item?.OfferPrice) / 100) // : item?.OrderRate, // TaxAmt: ( // (item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // WithoutTaxRate: ( // item?.OrderRate - // (item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // }, // ...CartOrderDetails, // ]) // ) // if the item is not in the cart, add the item to the cart // : dispatch( // changeOrderCardDetails([ // ...CartOrderDetails, // { // ...item, // OrderQty: 1, // // TotalAmt: (((item?.OrderQty + 1) * item?.OrderRate)- (item?.OfferType === "F" ?item?.OfferPrice :(((item?.OrderQty + 1) * item?.OrderRate) * item?.OfferPrice)/100)), // OfferPrice: item?.OfferPrice, // TotalAmt: // item?.OfferPrice > 0 // ? item?.OrderRate - // (item?.OfferType === 'F' // ? item?.OfferPrice // : (item?.OrderRate * item?.OfferPrice) / 100) // : item?.OrderRate, // TaxAmt: ( // (item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // WithoutTaxRate: ( // item?.OrderRate - // (item?.OrderRate * item?.TaxPercentage) / // (100 + item?.TaxPercentage) // ).toFixed(2), // }, // ]) // ); } } dispatch(changeothersdata({})); dispatch(ChangeNewQrProduct({})); } }; const CloseModal1 = () => { setModelstock(false); }; const returnCountStock = (ProdId, currentQty, orderDetails, InwardDtlId) => { let SelectedProduct = ReorderProductData?.filter( (a) => a?.ProdId === ProdId && a?.InwardDtlId === InwardDtlId ); let totalSelectedProductQty = SelectedProduct?.reduce( (accumulator, card) => { return accumulator + parseInt(card.OrderQty || 0); }, 0 ); let getCurrentProdDtl = orderDetails?.filter( (a) => a?.ProdId === ProdId && a?.InwardDtlId === InwardDtlId ); let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => { return accumulator + parseInt(card.OrderQty || 0); }, 0); let OverallProdQty = totalOrderQty - totalSelectedProductQty; if ( parseInt(currentQty) > parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ) ) { let count = parseInt(currentQty) - parseInt( Object.keys(ReportholdData)?.length > 0 && totalOrderQty ? OverallProdQty : getCurrentProdDtl ? totalOrderQty : 0 ); return parseInt(count); } else { let count = 0; return count; } }; const stockdataSource = []; let ProdId = qtydata?.[0]?.ComboId; qtydata?.[0]?.ComboInwardDetails?.map((item, index) => { stockdataSource.push({ key: index, ComboInwardDtlId: item.ComboInwardDtlId, StockCount: returnCountStock( ProdId, item.BalanceQty, CartOrderDetails, item?.ComboInwardDtlId ), Price: item.TotalSellPrice, }); }); const StockSelected = (item) => { let Expdates = qtydata?.[0]?.ComboInwardDetails?.filter( (a) => a.ComboInwardDtlId === item.ComboInwardDtlId )?.[0]?.ComboDetails.map((detail) => detail.ExpDate); let Combodata = qtydata?.[0]?.ComboInwardDetails?.filter( (a) => a.ComboInwardDtlId === item.ComboInwardDtlId )?.[0]?.ComboDetails; let Cartdata = qtydata?.[0]?.ComboInwardDetails?.filter( (a) => a.ComboInwardDtlId === item.ComboInwardDtlId ); const today = new Date(); const matchingProducts = Combodata?.filter((detail) => { if (detail.ExpDate != null) { const expDate = new Date(detail.ExpDate); return Expdates.includes(detail.ExpDate) && expDate < today; } else { return false; } })?.map((detail) => ({ ProdName: detail?.ProdName, Size: detail?.Size, UomName: detail?.UomName, ExpDate: detail?.ExpDate, })); let data = { Type: 'C', OverallQuantity: qtydata?.[0]?.OverallQuantity, ActiveStatus: qtydata?.[0]?.ActiveStatus, AvailableFrom: qtydata?.[0]?.ValidFrom, AvailableTo: qtydata?.[0]?.ValidTo, ProdId: qtydata?.[0]?.ComboId, ProdDetail: Combodata, ProdName: qtydata?.[0]?.ComboName, QRCode: qtydata?.[0]?.ComboInwardDetails?.[0]?.QRCode, StockAvailable: 'Y', BalanceQty: qtydata?.[0]?.ComboInwardDetails?.[0]?.BalanceQty, InwardDtlId: Cartdata?.[0]?.ComboInwardDtlId, MRP: qtydata?.[0]?.ComboInwardDetails?.[0]?.TotalSellPrice, OrderRate: qtydata?.[0]?.ComboInwardDetails?.[0]?.TotalSellPrice, SellingPrice: qtydata?.[0]?.ComboInwardDetails?.[0]?.TotalSellPrice, BookingTypeName: BookingType, TaxPercentage: 0, Size: 1, UomName: 'Combo', OfferType: Cartdata?.[0]?.OfferType, OfferValue: Cartdata?.[0]?.OfferType === 'F' ? Cartdata?.[0]?.OfferPrice : (qtydata?.[0]?.ComboInwardDetails?.[0]?.TotalSellPrice * Cartdata?.[0]?.OfferPrice) / 100, OfferPrice: Cartdata?.[0]?.OfferPrice, SinglePc: 'N', }; setExpdata(data); setExpProd(matchingProducts); if (matchingProducts?.length > 0) { setexpModel(true); } else if (expModel === false) { AddOrderDetails(data); } else { onAutocompleteChange(Combodata); } setModelstock(false); }; const expFun = (item) => { AddOrderDetails(Expdata); setexpModel(false); setModelstock(false); }; const handleSearch = async (value) => { if (value === '') { setDropDown(); } // Call onChangeprodFunction if the value is not empty and doesn't include '@' if (value && !value.includes('@')) { await onChangeprodFunction(value); } // setOptions(() => { // if (!value || value.includes('@')) { // return []; // } return DropDown && Array.isArray(DropDown) ? DropDown.map((item) => ({ label: `${item.ComboName}`, // Display the combo name value: `${item.ComboId}`, // Use combo ID as the value })) : []; // }); }; const stopScannerFromParent = () => { if (scannerRef.current) { scannerRef.current.stopScanner(); // Call stopScanner from the child component } }; const handleQrcode = () => { setOpenScanner((prev) => !prev); if (!openScanner && scannerRef.current) { scannerRef.current.reinitializeCamera(); // Call the function to reinitialize the camera } }; const handleQrData = (decodedText) => { onChangeprodFunction(decodedText); setOpenScanner(false); // Close the modal after scanning stopScannerFromParent(); }; function encrypt(code, key) { let encrypted = ( <>
{messageType && messageData && ( )}
{/*
*/} {cardData?.length > 0 ? ( <> item.id)} strategy={rectSortingStrategy} >
{comboList?.map((item) => { const stockResult = returnCount( item?.ComboName, item?.OverallQuantity, CartOrderDetails, item ); return ( {templateData?.BookingCard?.[0] != 'Card4' ?
0) || item?.StockAvailable !== 'Y' ? 'BkPrdCardActive' : 'BkPrdCardDeActive' } > {!isMobile ? (
{ if ( !( item?.OverallQuantity !== undefined && stockResult.count > 0 ) ) { setMessageType && setMessageType('error'); setMessageData && setMessageData('Stock Not Available'); e.stopPropagation(); } else { CardOnclick(item); } }} data-aos="zoom-in" data-aos-duration="600" > {(cardFunction?.BigImage || cardFunction?.SmallImage) && ( )}

{/* {item?.ComboName} {(item?.OverallQuantity !== undefined && returnCount(item?.ComboName, item?.OverallQuantity, CartOrderDetails) > 0) || item?.OverallQuantity > 0 ? '' :

No Stock

} */} {item?.ProdName}{' '} {(item?.OverallQuantity !== undefined && stockResult.count > 0) ? ( '' ) : (

No Stock {stockResult.outOfStockProducts && stockResult.outOfStockProducts.length > 0 && ( <>: {stockResult.outOfStockProducts.join(', ')} )}

)}

{cardFunction?.Price && (((item?.OverallQuantity !== undefined && item?.OverallQuantity !== 0 && item?.OverallQuantity !== null) || item?.ProductDetail?.some( (item) => item?.StockAvailable !== 'Y' )) || stockResult.count > 0) && (

₹{' '} { item?.ComboInwardDetails?.[0] ?.TotalSellPrice }   {/* {item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]?.SellPrice}  */} {/* {ItemSellingPrice(item)} */} {'(1 Combo Pack)'}

)}
{cardFunction?.StockCount && item?.OverallQuantity !== undefined && item?.OverallQuantity !== 0 && (
{item?.OverallQuantity !== null && ( )}
)}
) : ( <> {globaldata && ( pickData(e, item)} style={{ position: 'absolute', zIndex: 1, transform: 'scale(1.5)', cursor: 'pointer', }} checked={( globalAllItemdata || EditfavItems )?.some( // (a) => a?.ProdName === item?.ProdName (a) => a?.ProdName === item?.ProdName && a?.ProdCat === item?.ProdCat )} /> )}
{ if ( !( item?.OverallQuantity !== undefined && stockResult.count > 0 ) ) { e.stopPropagation(); } else { CardOnclick(item); } }} // data-aos="zoom-in" data-aos-duration="600" > {(cardFunction?.BigImage || cardFunction?.SmallImage) && ( )}

{item?.ProdName}{' '} {(item?.OverallQuantity !== undefined && stockResult.count > 0) || item?.OverallQuantity > 0 || item?.SetCount == 0 ? ( '' ) : (

No Stock

)}

{cardFunction?.Price && ((item?.OverallQuantity !== undefined && item?.OverallQuantity !== 0 && item?.OverallQuantity !== null) || item?.ProductDetail?.some( (item) => item?.StockAvailable !== 'Y' )) || item?.SetCount == 0 && (

₹ { item?.ComboInwardDetails?.[0] ?.TotalSellPrice }  {/* {item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]?.SellPrice}  */} {/* {ItemSellingPrice(item)} */} {'(1 Combo Pack)'}

)}
{cardFunction?.StockCount && item?.OverallQuantity !== undefined && item?.OverallQuantity !== 0 && (
{item?.OverallQuantity !== null && ( )}
)}
)}
:
0) || item?.StockAvailable !== 'Y' ? 'card4Main card4Main-active' : 'card4Main card4Main-deactive' } onClick={(e) => { if ( !( (item?.OverAllQty !== undefined && stockResult.count > 0) ) ) { e.stopPropagation(); // Prevent event bubbling if no stock or condition isn't met } else { // Ensure this only runs if the "One Piece" condition isn't triggered if (!e.target.closest('.card4Main-onepiece')) { CardOnclick(item); // This will trigger if you're clicking outside the "One Piece" button } } }} > {/* Global Data Checkbox */} {globaldata && ( pickData(e, item)} style={{ position: 'absolute', zIndex: 1, transform: 'scale(1.5)', cursor: 'pointer', }} checked={( globalAllItemdata || EditfavItems )?.some( (a) => a?.ProdName === item?.ProdName && a?.ProdCat === item?.ProdCat )} /> )} {/* Tooltip for Product Name */}
{item?.ProdName} {(item?.OverallQuantity !== undefined && stockResult.count > 0) ? ( '' ) : (

No Stock

)}
₹ { item?.ComboInwardDetails?.[0] ?.TotalSellPrice } 
{'(1 Combo Pack)'}
{/* Stock Count Badge */} {cardFunction?.StockCount && item?.OverallQuantity !== undefined && item?.OverallQuantity !== 0 && (
{item?.OverallQuantity !== null && ( )}
)}
}
) })}
) : ProductSearch?.length > 5 && GetmultipleSearchDatas.some( e => e.toLowerCase() === "qrcode" ) && (cardData?.length == 0 || cardData == undefined) ? (
{/* cardData mohan 18-04-2025 */}
) : ( <>
 
 
 
 
)} {paymentloader === true && (
 
 
 
 

{' '} Please wait while we process your payment

{PaymentTransactionNumber != null && (

Transaction Number : {PaymentTransactionNumber}

)}
)}
{expModel && (

Product Expires

} open={expModel} onOk={() => expFun(Item)} onCancel={() => setexpModel(false)} okText="Submit" cancelText="Don't Submit" maskTransitionName="" // Remove animation for the mask transitionName="" > )} {expQtyModel && (

Quantity Expires

} open={expQtyModel} onOk={() => expQtyFun(qtyExpData)} onCancel={() => { setRepeatedModel(false), setProdexpir(false), setExpQtyModel(false); }} okText="Submit" cancelText="Don't Submit" maskTransitionName="" transitionName="" >
)} {expVarModel && (

Variant Expires

} open={expVarModel} onOk={() => expVerFun(VarItem)} onCancel={() => { setexpVarModel(false), setRepeatedModel(false), setProdexpir(false); }} okText="Submit" cancelText="Don't Submit" maskTransitionName="" transitionName="" >
)} {expStockModel && (

Stock Expires

} open={expStockModel} onOk={() => expStockFun(StockItem)} onCancel={() => { setexpStockModel(false), setRepeatedModel(false), setProdexpir(false); }} okText="Submit" cancelText="Don't Submit" maskTransitionName="" transitionName="" >
)} {modelQty && ( } open={modelQty} width={widthBasedOnProdVariantDetails} handleCancel={CloseModal} footer={null} maskTransitionName="" transitionName="" children={

Item Name:

{qtydata?.ProdName}

{Object.keys(brandMapping).map((brandId) => { const brandName = brandId !== 'null' && brandId !== 'undefined' ? brandId : ''; const brandItems = brandMapping[brandId] || []; return (
{brandName && (

{brandName}

)}
{brandItems.map((item, index) => { const qtyCount = returnQtyCount( item?.ProdId, item, CartOrderDetails ); const isAvailable = item?.StockAvailable !== 'Y'; const isDisabled = qtyCount > 0 || isAvailable; return (
VarientFun(item)} >
{`Product

{item?.Size + ' ' + item?.UomName}

{isDisabled && (

  { item?.ProdVariantDetails?.[0] ?.StockDetails?.[0]?.SellPrice }

)}
); })}
); })} {Object.keys(brandMapping).length === 0 && (

No product details available

)}
} /> )} {modelstock && ( } open={modelstock} // width={500} footer={null} top={0} handleCancel={CloseModal1} maskTransitionName="" transitionName="" children={

Item Name:

{qtydata?.ProdName}{' '} {!qtydata?.ProductDetail?.[ QtyIndex ]?.ProdVariantDetails?.[ VarientIndex ]?.ProdVariantName?.toLowerCase()?.includes( 'variant' ) && ( ( { qtydata?.ProductDetail?.[QtyIndex] ?.ProdVariantDetails?.[VarientIndex] ?.ProdVariantName } ){' '} )}

Item Quantity:

{qtydata?.ProductDetail?.[QtyIndex]?.Size}{' '} {onePeiceFlow ? 'PCS' : qtydata?.ProductDetail?.[QtyIndex]?.UomName}

} /> )} {ModalVarient && ( } open={ModalVarient} width={500} top={0} footer={null} handleCancel={CloseVarientModal} maskTransitionName="" transitionName="" children={

Item Name:

{qtydata?.ProdName}

Item Quantity:

{qtydata?.ProductDetail?.[QtyIndex]?.Size}{' '} {onePeiceFlow ? 'PCS' : qtydata?.ProductDetail?.[QtyIndex]?.UomName}

} /> )} ); for (let i = 0; i < code?.length; i++) { encrypted += String.fromCharCode( code.charCodeAt(i) ^ key.charCodeAt(i % key.length) ); } return encrypted; } function decrypt(encrypted, key) { // Implement decryption logic let decrypted = encrypt(); for (let i = 0; i < encrypted?.length; i++) { decrypted += String.fromCharCode( encrypted.charCodeAt(i) ^ key.charCodeAt(i % key.length) ); } return decrypted; } const encryptedCode = encrypt(); // Encrypted React component code const decryptionKey = decrypt(); // Decryption key (keep it secure) const decryptedCode = decrypt(encryptedCode, decryptionKey); return <>{encrypt()}; }; export default React.memo(BSComboItemCard);