2026-03-11 15:35:19 +05:30
|
|
|
import { useCallback, useEffect, useRef, useState, lazy } from 'react';
|
2026-01-27 18:27:29 +05:30
|
|
|
import { useDispatch, useSelector } from 'react-redux';
|
|
|
|
|
import { useNavigate } from 'react-router-dom';
|
2026-02-23 09:39:46 +05:30
|
|
|
import { Badge, Popconfirm, Popover, Tooltip } from 'antd';
|
2026-01-27 18:27:29 +05:30
|
|
|
import {
|
|
|
|
|
GlobalBookingType,
|
|
|
|
|
GlobalBookingTypeBoth,
|
|
|
|
|
PreferenceData,
|
|
|
|
|
GlobalCombosearch,
|
|
|
|
|
getPreferenceData,
|
|
|
|
|
changeEstimateBooking,
|
|
|
|
|
GlobalOrderStatus,
|
|
|
|
|
GlobalEstimateBooking,
|
|
|
|
|
changeSelectedOption,
|
|
|
|
|
changealldata,
|
|
|
|
|
changeCustomerID,
|
|
|
|
|
changeSelectedCustId,
|
|
|
|
|
GlobalOrderType,
|
|
|
|
|
Changedragging,
|
|
|
|
|
changeBtoBQuickProductTransfer,
|
|
|
|
|
GlobalBtoBQuickProductTransfer,
|
|
|
|
|
changeOrderCardDetails,
|
|
|
|
|
GlobalFeatAddOnData,
|
|
|
|
|
GlobalOtherSevices,
|
|
|
|
|
changeOtherServices,
|
|
|
|
|
GlobalComboRedirectionToDefaultLayoutForParking,
|
|
|
|
|
changeComboRedirectionToDefaultLayoutForParking,
|
|
|
|
|
GlobalCommonPaymentOptions,
|
|
|
|
|
GlobalSelCustId,
|
2026-02-23 09:39:46 +05:30
|
|
|
} from '../../../../Features/BookingScreen/BookingData/BookingData.js';
|
|
|
|
|
// js Files
|
2026-01-27 18:27:29 +05:30
|
|
|
import {
|
|
|
|
|
GlobalPreOrderPendingCount,
|
|
|
|
|
PreOrderGet,
|
|
|
|
|
changePreOrderPendingCount,
|
|
|
|
|
changepreOrder,
|
|
|
|
|
changePreOrderAdditem,
|
|
|
|
|
changepreOrderList,
|
|
|
|
|
} from '../../../../Features/BookingScreen/PreOrder/PreOrder.js';
|
2026-02-23 09:39:46 +05:30
|
|
|
import {
|
|
|
|
|
ApplicationPreferences,
|
|
|
|
|
GenerateLogout,
|
|
|
|
|
GlobalCompBranchData,
|
|
|
|
|
getCompBranchData,
|
|
|
|
|
} from '../../../../Features/BrachLogin/BranchLogin.js';
|
2026-01-27 18:27:29 +05:30
|
|
|
import { getCustomerDisplayWindow } from '../../../../Features/customerDisplayWindow/customerDisplayWindow.js';
|
|
|
|
|
import { Global_OfferStatus } from '../../../../Features/Offer/Offer.js';
|
|
|
|
|
import {
|
|
|
|
|
getTemplate,
|
|
|
|
|
getTemplateData,
|
|
|
|
|
StoredSessionData,
|
|
|
|
|
} from '../../../../Features/ThemeChange/ThemeChange.js';
|
|
|
|
|
import { GlobalBookingStatus } from '../../../../Features/Payment/PaymentReceivedRetail/PaymentReceivedRetail.js';
|
|
|
|
|
import { getEmpAccess } from '../../../../Features/AppPage/CenterPage.js';
|
|
|
|
|
import {
|
|
|
|
|
getUserProfile,
|
|
|
|
|
userDataByUserId,
|
|
|
|
|
} from '../../../../Features/UserAccount/userData.js';
|
2026-02-23 09:39:46 +05:30
|
|
|
import { OtherServicesCardlistdata } from '../../../../Features/OtherServices/OtherServices.js';
|
|
|
|
|
import { clearSession, sessionStore } from '../../../../Services/Others.js';
|
|
|
|
|
import { setCustomerDisplayWindow } from '../../../../Features/customerDisplayWindow/customerDisplayWindow.js';
|
|
|
|
|
import BSMobilePrintSettings from '../UtillComponents/BSMobilePrintSettings.jsx';
|
|
|
|
|
|
|
|
|
|
// Jsx Files
|
|
|
|
|
const BSNavBarOffer = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarOffer/BSNavBarOffer.jsx')
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const BSNavBarPreOrder = lazy(
|
|
|
|
|
() => import('../../Components/UtillComponents/BSNavBarPreOrder.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarEstimate = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarEst.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSCustomerSelect = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSSelectCustomer.jsx')
|
|
|
|
|
);
|
|
|
|
|
const TimerClock = lazy(() => import('../BSCombo/BSTimer.jsx'));
|
|
|
|
|
const BSPrinterSetting = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSPrinterSetting.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarComboSearch = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarComboSearch.jsx')
|
|
|
|
|
);
|
|
|
|
|
const PaymentFailedSales = lazy(
|
|
|
|
|
() => import('../../../Payment/PaymentFailedDetails/PaymentFailedSales.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarWholeSale = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarWholeSale.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSScanTemplate = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSScanTemplate.jsx')
|
|
|
|
|
);
|
|
|
|
|
const VerfiedProducts = lazy(
|
|
|
|
|
() => import('./verfiedProduct/VerfiedProducts.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSMembership = lazy(() => import('../UtillComponents/BSMembership.jsx'));
|
|
|
|
|
const BranchName = lazy(() => import('../../Template/BranchName.jsx'));
|
|
|
|
|
const MultipleSearch = lazy(
|
|
|
|
|
() => import('../UtillComponents/MultipleSearch.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarDragItems = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarDragItems.jsx')
|
|
|
|
|
);
|
|
|
|
|
const UserRelieveManager = lazy(
|
|
|
|
|
() => import('../../Template/RealivingUser.jsx')
|
|
|
|
|
);
|
|
|
|
|
const FeaturesFunctionalities = lazy(
|
|
|
|
|
() => import('../BookingFunctionality/FeaturesFunctionalities.jsx')
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
import { useAuth } from '../../../../AuthContext.jsx';
|
|
|
|
|
const BSNavBarAddons = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarAddons.jsx')
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const BSNavBarQuickAdd = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarQuickAdd.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarAddUser = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarAddUser.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarSearch = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarSearch.jsx')
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
const BSNavBarWeightScale = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarWeightScale.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarFavItems = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarFavItems.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarHand = lazy(() => import('../UtillComponents/BSNavBarHand.jsx'));
|
|
|
|
|
const BSNavBarTable = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarTable.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavBarHandbag = lazy(
|
|
|
|
|
() => import('../UtillComponents/BSNavBarHandbag.jsx')
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// Icon Files
|
|
|
|
|
|
|
|
|
|
import PozoHomeIcon from '../UtillComponents/Pozo retail icons/PozoHomeIcon';
|
|
|
|
|
import PozoPreOrderIcon from '../UtillComponents/Pozo retail icons/PozoPreOrderIcon.jsx';
|
|
|
|
|
import PozoUserIcon from '../UtillComponents/Pozo retail icons/PozoUserIcon';
|
|
|
|
|
import PozoAddCustomerIcon from '../UtillComponents/Pozo retail icons/PozoAddCustomerIcon.jsx';
|
|
|
|
|
import CustomerDisplayicon from '../UtillComponents/Pozo retail icons/PozoCustomerDisplayicon.jsx';
|
|
|
|
|
import PozoPaymentFailesIcon from '../UtillComponents/Pozo retail icons/PozoFailedPaymentsIcon.jsx';
|
|
|
|
|
import PozoMenuIcon from '../UtillComponents/Pozo retail icons/PozoMenuIcon.jsx';
|
|
|
|
|
import TooltipWrapper from '../../../../Components/Tooltip/Tooltip';
|
|
|
|
|
import { IoMdClose } from 'react-icons/io';
|
2026-02-26 17:47:48 +05:30
|
|
|
import { TbSettingsSearch } from 'react-icons/tb';
|
2026-01-27 18:27:29 +05:30
|
|
|
import BSNavBarUserInfo from './BSNavBarUserInfo';
|
|
|
|
|
import { FaParking } from 'react-icons/fa';
|
2026-02-23 09:39:46 +05:30
|
|
|
import { isMobile } from 'react-device-detect';
|
2026-01-28 17:34:28 +05:30
|
|
|
import { DefaultModal } from '../../../../Components/Modal/DefaultModal.jsx';
|
2026-02-23 09:39:46 +05:30
|
|
|
import '../../../../Styles/BookingScreen/Components/BSNavbar/BSNavbar1.scss';
|
2026-03-03 18:27:39 +05:30
|
|
|
import { RiFullscreenExitFill, RiFullscreenFill } from 'react-icons/ri';
|
2026-03-11 15:35:19 +05:30
|
|
|
import { LuSearch } from 'react-icons/lu';
|
2026-01-27 18:27:29 +05:30
|
|
|
|
|
|
|
|
const subDirectory = import.meta.env.ENV_BASE_URL;
|
|
|
|
|
const commonUrl = import.meta.env.ENV_COMMON_BASE_URL;
|
|
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
const BSNavbar1 = (props, BookingNavbar) => {
|
|
|
|
|
const { connectingState = null, setConnectingState = () => {} } = props;
|
|
|
|
|
console.log(props?.BookingNavbar, 'propsopsprops');
|
2026-01-27 18:27:29 +05:30
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
const navigate = useNavigate();
|
|
|
|
|
const [Navmenu, setNavmenu] = useState(false);
|
|
|
|
|
const [isAccOpen, setAccIsOpen] = useState(false);
|
|
|
|
|
const [formattedDate, setFormattedDate] = useState('');
|
2026-02-12 11:52:39 +05:30
|
|
|
|
2026-01-27 18:27:29 +05:30
|
|
|
const [paymentfeataddon, setpaymentfeataddon] = useState(false);
|
|
|
|
|
const [addcustomer, setAddCustomer] = useState(false);
|
|
|
|
|
const [hold, setHold] = useState(false);
|
2026-01-28 17:34:28 +05:30
|
|
|
const [multiple, setMultiple] = useState(false);
|
2026-01-27 18:27:29 +05:30
|
|
|
const BSLayout1Data = useSelector(getTemplateData);
|
|
|
|
|
const navbarOptions = BSLayout1Data?.BookingNavbar?.[1];
|
|
|
|
|
const PreferenceDatas = useSelector(PreferenceData);
|
|
|
|
|
const OrderOfferStatus = useSelector(Global_OfferStatus);
|
|
|
|
|
const { action, selectedProducts } = useSelector(
|
|
|
|
|
GlobalBtoBQuickProductTransfer
|
|
|
|
|
);
|
|
|
|
|
const GlobaluseOptions = useSelector(GlobalCommonPaymentOptions);
|
|
|
|
|
const SelCustId = useSelector(GlobalSelCustId);
|
|
|
|
|
console.log(GlobaluseOptions, 'GlobaluseOptions');
|
|
|
|
|
const CompBranchData = useSelector(GlobalCompBranchData);
|
|
|
|
|
const tableData = useSelector(GlobalOrderStatus);
|
|
|
|
|
const BookingType = useSelector(GlobalBookingType);
|
|
|
|
|
const BookingTypeBoth = useSelector(GlobalBookingTypeBoth);
|
|
|
|
|
const FeatureAddonData = useSelector(GlobalFeatAddOnData);
|
|
|
|
|
const Estimation = PreferenceDatas?.[0]?.SettingDtlDetails?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'Estimation'
|
|
|
|
|
);
|
|
|
|
|
const SalesMode = PreferenceDatas?.[0]?.SettingDtlDetails?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'Sales Mode'
|
|
|
|
|
);
|
|
|
|
|
const ScanLayoutScreen = PreferenceDatas?.[0]?.SettingDtlDetails?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'ScanLayout'
|
|
|
|
|
);
|
|
|
|
|
const VerifyTheProducts = PreferenceDatas?.[0]?.SettingDtlDetails?.find(
|
|
|
|
|
(item) =>
|
|
|
|
|
item.SettingIdName === 'VerifyProduct' && item?.SettingValue === 'Y'
|
|
|
|
|
);
|
|
|
|
|
const Comboglobal = useSelector(GlobalCombosearch);
|
|
|
|
|
const OtherServicesglobal = useSelector(GlobalOtherSevices);
|
|
|
|
|
|
|
|
|
|
// const [ComboDropDown, setComboDropDown] = useState(true);
|
|
|
|
|
const [preOrderOpen, setPreOrderOpen] = useState(false);
|
|
|
|
|
const [isHoldEnable, setisisHoldEnable] = useState(false);
|
|
|
|
|
const [preOrderhiseandShow, setpreOrderhiseandShow] = useState(false);
|
|
|
|
|
const userProfileData = useSelector(userDataByUserId);
|
|
|
|
|
const [open, setOpen] = useState(false);
|
|
|
|
|
const preOrderPendingCount = useSelector(GlobalPreOrderPendingCount);
|
|
|
|
|
const [OpenFailData, SetOpenFailData] = useState(false);
|
|
|
|
|
const OrderType = useSelector(GlobalOrderType);
|
|
|
|
|
const GlobEstBooking = useSelector(GlobalEstimateBooking);
|
|
|
|
|
const SessionData = useSelector(StoredSessionData);
|
|
|
|
|
const AppId = SessionData?.AppId;
|
|
|
|
|
const CompId = SessionData?.CompId;
|
|
|
|
|
const BranchId = SessionData?.BranchId;
|
|
|
|
|
const UserId = SessionData?.UserId;
|
|
|
|
|
const UserType = SessionData?.UserType;
|
|
|
|
|
const appPreferences = useSelector(ApplicationPreferences);
|
|
|
|
|
const commonModulePreference = appPreferences?.find(
|
|
|
|
|
(preference) => preference?.PreferredCatName === 'Common Module'
|
|
|
|
|
)?.PreferenceCatDetails;
|
|
|
|
|
const sportsAppPreference = commonModulePreference?.find(
|
|
|
|
|
(preference) =>
|
|
|
|
|
preference?.PreferredSubCatName === 'SportsApp' &&
|
|
|
|
|
preference?.PreferredStatus === 'Y'
|
|
|
|
|
);
|
|
|
|
|
const bookingTypePreference = appPreferences?.find(
|
|
|
|
|
(preference) => preference?.PreferredCatName === 'Booking Type'
|
|
|
|
|
)?.PreferenceCatDetails;
|
|
|
|
|
const dinePreference = bookingTypePreference?.find(
|
|
|
|
|
(type) =>
|
|
|
|
|
type?.PreferredSubCatName?.toLowerCase() === 'dine in' &&
|
|
|
|
|
type?.PreferredStatus === 'Y'
|
|
|
|
|
);
|
|
|
|
|
const takeAwayPreference = bookingTypePreference?.find(
|
|
|
|
|
(type) =>
|
|
|
|
|
type?.PreferredSubCatName?.toLowerCase() === 'take away' &&
|
|
|
|
|
type?.PreferredStatus === 'Y'
|
|
|
|
|
);
|
|
|
|
|
const BookingStatus = useSelector(GlobalBookingStatus);
|
|
|
|
|
const [OtherServiceStatus, setOtherServiceStatus] = useState(false);
|
|
|
|
|
const CheckBookingStatus =
|
|
|
|
|
BookingStatus?.find((item) => item.ScreenType === 'Booking')
|
|
|
|
|
?.ScreenStatus ?? 'Open';
|
|
|
|
|
const [empData, setEmpData] = useState();
|
|
|
|
|
const [addnewAccess, setaddnewAccess] = useState(true);
|
|
|
|
|
const { SadminuserAccess } = useAuth();
|
|
|
|
|
let SAAccessCommonMaster = SadminuserAccess?.find(
|
|
|
|
|
(e) => e?.MenuName === 'Sales'
|
|
|
|
|
);
|
|
|
|
|
const comboRedirectionToDefaultLayoutForParking = useSelector(
|
|
|
|
|
GlobalComboRedirectionToDefaultLayoutForParking
|
|
|
|
|
);
|
2026-02-23 09:39:46 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
const [isFullscreen, setIsFullscreen] = useState(false);
|
|
|
|
|
const handleFullscreen = useCallback(async () => {
|
|
|
|
|
if (!isFullscreen) {
|
|
|
|
|
try {
|
|
|
|
|
await document.documentElement.requestFullscreen();
|
|
|
|
|
setIsFullscreen(true);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('Fullscreen error:', error);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
try {
|
|
|
|
|
if (document.fullscreenElement) {
|
|
|
|
|
await document.exitFullscreen();
|
|
|
|
|
}
|
|
|
|
|
setIsFullscreen(false);
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('Exit fullscreen error:', error);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}, [isFullscreen]);
|
|
|
|
|
|
2026-01-27 18:27:29 +05:30
|
|
|
const divRef = useRef(null);
|
|
|
|
|
const handleClickOutside = (event) => {
|
|
|
|
|
if (divRef.current && !divRef.current.contains(event.target)) {
|
|
|
|
|
setAccIsOpen(false);
|
|
|
|
|
}
|
|
|
|
|
};
|
2026-03-03 18:27:39 +05:30
|
|
|
|
2026-02-23 09:39:46 +05:30
|
|
|
useEffect(() => {
|
|
|
|
|
if (!FeatureAddonData?.FeatureDtls?.length) return;
|
|
|
|
|
|
|
|
|
|
const preorderFeature = FeatureAddonData.FeatureDtls.find(
|
|
|
|
|
(item) => item?.FeatureAddonName?.toLowerCase() === 'preorder'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (preorderFeature) {
|
|
|
|
|
BadgePendingApi();
|
|
|
|
|
}
|
|
|
|
|
}, [FeatureAddonData]);
|
2026-01-27 18:27:29 +05:30
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
handleOtherData();
|
2026-02-23 09:39:46 +05:30
|
|
|
|
2026-01-27 18:27:29 +05:30
|
|
|
document.addEventListener('click', handleClickOutside, true);
|
|
|
|
|
return () => {
|
|
|
|
|
document.removeEventListener('click', handleClickOutside, true);
|
|
|
|
|
};
|
|
|
|
|
}, []);
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
getPaymentOptionFeature();
|
|
|
|
|
}, [GlobaluseOptions, SelCustId]);
|
|
|
|
|
const getPaymentOptionFeature = async () => {
|
|
|
|
|
const filterSalesPayment = GlobaluseOptions?.filter(
|
|
|
|
|
(item) => item?.FlowName?.toLowerCase() === 'sales'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let filterPayCounter = filterSalesPayment?.[0]?.OptionDetails?.filter(
|
|
|
|
|
(item) => item?.OptionName?.toLowerCase() === 'pay at the counter'
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// If customer NOT selected → remove credit mode
|
|
|
|
|
if (!SelCustId) {
|
|
|
|
|
filterPayCounter = filterPayCounter?.map((option) => ({
|
|
|
|
|
...option,
|
|
|
|
|
ModeDetails: option?.ModeDetails?.filter(
|
|
|
|
|
(mode) => mode?.ModeName?.toLowerCase() !== 'credit'
|
|
|
|
|
),
|
|
|
|
|
}));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setisisHoldEnable(filterPayCounter?.[0]?.ModeDetails?.length > 0);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (UserType === 'Employee') {
|
|
|
|
|
fetchApi();
|
|
|
|
|
}
|
|
|
|
|
}, [UserType]);
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
let hasAccess = false;
|
|
|
|
|
|
|
|
|
|
if (UserType === 'Admin' || UserType === 'Super Admin') {
|
|
|
|
|
hasAccess = true;
|
|
|
|
|
} else if (UserType === 'Employee') {
|
|
|
|
|
hasAccess = empData?.AddAccess === 'Y';
|
|
|
|
|
} else if (UserType === 'Super Admin User') {
|
|
|
|
|
hasAccess = SAAccessCommonMaster?.AddAccess === 'Y';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setaddnewAccess(!hasAccess);
|
|
|
|
|
}, [empData, SAAccessCommonMaster, UserType]);
|
|
|
|
|
const fetchApi = async () => {
|
|
|
|
|
let data = {
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
EmpId: UserId,
|
|
|
|
|
};
|
|
|
|
|
let response = await dispatch(getEmpAccess(data)).unwrap();
|
|
|
|
|
let datas = response?.data?.data?.[0]?.EmpAccessDetails?.filter(
|
|
|
|
|
(item) => item.ConfigName === 'Sales'
|
|
|
|
|
);
|
|
|
|
|
setEmpData(datas?.[0]);
|
|
|
|
|
};
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
const d = new Date();
|
|
|
|
|
const formatted = new Intl.DateTimeFormat('en-GB', {
|
|
|
|
|
day: 'numeric',
|
|
|
|
|
month: 'short',
|
|
|
|
|
year: 'numeric',
|
|
|
|
|
}).format(d);
|
|
|
|
|
setFormattedDate(formatted);
|
|
|
|
|
dispatch(
|
2026-03-19 15:50:18 +05:30
|
|
|
getPreferenceData({
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
UserId: UserId,
|
|
|
|
|
})
|
2026-01-27 18:27:29 +05:30
|
|
|
);
|
|
|
|
|
dispatch(getUserProfile({ UserId: UserId, ActiveStatus: 'A' })).unwrap();
|
|
|
|
|
fetchBranchData();
|
|
|
|
|
}, [UserId]);
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (UserType !== 'Super Admin' && UserType !== 'Super Admin User') {
|
|
|
|
|
getFeatureAddonData();
|
|
|
|
|
}
|
|
|
|
|
}, [FeatureAddonData]);
|
|
|
|
|
|
|
|
|
|
const fetchBranchData = async () => {
|
|
|
|
|
if (UserType === 'Super Admin' || UserType === 'Super Admin User') {
|
|
|
|
|
await dispatch(
|
|
|
|
|
getCompBranchData({ CompId: CompId, AppId: AppId })
|
|
|
|
|
).unwrap();
|
|
|
|
|
} else if (UserType === 'Admin' || UserType === 'Admin User') {
|
|
|
|
|
await dispatch(
|
|
|
|
|
getCompBranchData({ AppId: AppId, UserId: UserId, CompId: CompId })
|
|
|
|
|
).unwrap();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const getFeatureAddonData = async () => {
|
|
|
|
|
const hasPaymentFeatures = FeatureAddonData?.FeatureDtls.some(
|
|
|
|
|
(item) =>
|
|
|
|
|
item.FeatureAddonName === 'Payment Gateway' ||
|
|
|
|
|
item.FeatureAddonName === 'Payment Device'
|
|
|
|
|
);
|
|
|
|
|
setpaymentfeataddon(hasPaymentFeatures);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleOtherData = async (e) => {
|
|
|
|
|
let data = {
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
};
|
|
|
|
|
let response = await dispatch(OtherServicesCardlistdata(data)).unwrap();
|
|
|
|
|
if (response?.data?.statusCode === 1) {
|
|
|
|
|
setOtherServiceStatus(true);
|
|
|
|
|
} else {
|
|
|
|
|
setOtherServiceStatus(false);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const NavmenuOpenClose = () => {
|
|
|
|
|
setNavmenu(!Navmenu);
|
2026-03-11 15:35:19 +05:30
|
|
|
setConnectingState((prev) => ({
|
|
|
|
|
...prev,
|
|
|
|
|
positionChange: !prev?.positionChange,
|
|
|
|
|
}));
|
2026-01-27 18:27:29 +05:30
|
|
|
};
|
|
|
|
|
const UserAcc = useCallback(() => {
|
|
|
|
|
setAccIsOpen((prev) => !prev);
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
const background = '#ffff';
|
|
|
|
|
|
|
|
|
|
const handleHome = () => {
|
2026-03-19 15:50:18 +05:30
|
|
|
if (document.fullscreenElement) {
|
|
|
|
|
document.exitFullscreen().catch(() => {});
|
|
|
|
|
}
|
2026-01-27 18:27:29 +05:30
|
|
|
navigate(`${subDirectory}app-page/home`);
|
|
|
|
|
dispatch(Changedragging(false));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleAddCustomerCancel = () => {
|
|
|
|
|
setAddCustomer(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleHoldCancel = () => {
|
|
|
|
|
setHold(false);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const BacktoLogin = () => {
|
|
|
|
|
clearSession('BranchId');
|
|
|
|
|
navigate(`${subDirectory}app-page/branch-login`);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
//mohan
|
|
|
|
|
const Logout = async () => {
|
|
|
|
|
const status = 'N'; // replace with your actual status
|
|
|
|
|
const res = await dispatch(GenerateLogout({ UserId, status })).unwrap();
|
|
|
|
|
if (res?.data?.statusCode === 1) {
|
|
|
|
|
clearSession();
|
|
|
|
|
await sessionStore('Mode', 'Logout');
|
|
|
|
|
window.location.replace(commonUrl);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const openNewTab = async () => {
|
|
|
|
|
const initialData = { Paymentgateway: false };
|
|
|
|
|
let screenDetails;
|
|
|
|
|
|
|
|
|
|
if ('getScreenDetails' in window) {
|
|
|
|
|
try {
|
|
|
|
|
screenDetails = await window.getScreenDetails();
|
|
|
|
|
} catch (error) {
|
|
|
|
|
console.error('Error accessing screen details:', error);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Select second monitor if available, otherwise use primary screen
|
|
|
|
|
const secondScreen = screenDetails?.screens.find(
|
|
|
|
|
(screen) => screen !== screenDetails.currentScreen
|
|
|
|
|
);
|
|
|
|
|
const targetScreen = secondScreen || window.screen;
|
|
|
|
|
|
|
|
|
|
const customerDisplayWindow = window.open(
|
|
|
|
|
`${subDirectory}customer-display`,
|
|
|
|
|
'CustomerDisplayWindow',
|
|
|
|
|
`width=${targetScreen.width},height=${targetScreen.height},left=${targetScreen.left || 0},top=${targetScreen.top || 0},scrollbars=yes,resizable=yes`
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
if (customerDisplayWindow && !customerDisplayWindow.closed) {
|
|
|
|
|
setCustomerDisplayWindow(customerDisplayWindow);
|
|
|
|
|
|
|
|
|
|
customerDisplayWindow.onload = () => {
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
customerDisplayWindow.moveTo(
|
|
|
|
|
targetScreen.left || 0,
|
|
|
|
|
targetScreen.top || 0
|
|
|
|
|
);
|
|
|
|
|
customerDisplayWindow.resizeTo(
|
|
|
|
|
targetScreen.width,
|
|
|
|
|
targetScreen.height
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
customerDisplayWindow.document.documentElement.requestFullscreen();
|
|
|
|
|
} catch (err) {
|
|
|
|
|
console.warn('Fullscreen request failed:', err);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
customerDisplayWindow.postMessage(initialData, '*');
|
|
|
|
|
}, 500);
|
|
|
|
|
};
|
|
|
|
|
} else {
|
|
|
|
|
console.error('Customer display window failed to open.');
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const openPreOrder = async (e) => {
|
|
|
|
|
if (e == 'small-screen') {
|
|
|
|
|
setPreOrderOpen(true);
|
|
|
|
|
if (!preOrderhiseandShow) {
|
|
|
|
|
setpreOrderhiseandShow(true);
|
|
|
|
|
} else {
|
|
|
|
|
setpreOrderhiseandShow(false);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
setPreOrderOpen((prevState) => !prevState);
|
|
|
|
|
if (preOrderOpen) {
|
|
|
|
|
const customerDisplayWindow = getCustomerDisplayWindow();
|
|
|
|
|
if (customerDisplayWindow && !customerDisplayWindow.closed) {
|
|
|
|
|
const updatedRemovedData = {
|
|
|
|
|
userData: [],
|
|
|
|
|
ExtraCharges: [],
|
|
|
|
|
paymentMethod: 'Cash',
|
|
|
|
|
type: 'remove',
|
|
|
|
|
keyValue: 'customer',
|
|
|
|
|
};
|
|
|
|
|
customerDisplayWindow.postMessage(updatedRemovedData, '*');
|
|
|
|
|
} else {
|
|
|
|
|
console.error(
|
|
|
|
|
'Customer display window is not available or has been closed.'
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
await dispatch(changepreOrder(false));
|
|
|
|
|
await dispatch(changeEstimateBooking('Sales'));
|
|
|
|
|
await dispatch(changePreOrderAdditem('AddDetails'));
|
|
|
|
|
await dispatch(changealldata(null));
|
|
|
|
|
await dispatch(changepreOrderList(null));
|
|
|
|
|
await dispatch(changeCustomerID(null));
|
|
|
|
|
await dispatch(changeSelectedCustId(null));
|
|
|
|
|
await dispatch(changeSelectedOption(null));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const BadgePendingApi = async () => {
|
|
|
|
|
let Data = {
|
|
|
|
|
compId: CompId,
|
|
|
|
|
branchId: BranchId,
|
|
|
|
|
appId: AppId,
|
|
|
|
|
deliveryStatus: 'P',
|
|
|
|
|
};
|
|
|
|
|
let PendingResponse = await dispatch(PreOrderGet(Data)).unwrap();
|
|
|
|
|
if (PendingResponse?.data?.statusCode === 1) {
|
|
|
|
|
await dispatch(
|
|
|
|
|
changePreOrderPendingCount(PendingResponse?.data?.data?.length)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const handleOpenChange = () => {
|
|
|
|
|
setOpen(!open);
|
|
|
|
|
};
|
|
|
|
|
const preOrderHandleclose = async () => {
|
|
|
|
|
setPreOrderOpen(false);
|
|
|
|
|
await dispatch(changepreOrder(false));
|
|
|
|
|
setpreOrderhiseandShow(false);
|
|
|
|
|
};
|
|
|
|
|
const handlepreOrderhiseandShow = async () => {
|
|
|
|
|
setpreOrderhiseandShow(!preOrderhiseandShow);
|
|
|
|
|
};
|
|
|
|
|
const paymentFailedStatusFun = async () => {
|
|
|
|
|
SetOpenFailData(!OpenFailData);
|
|
|
|
|
};
|
|
|
|
|
const showModal = () => {
|
|
|
|
|
dispatch(changeOrderCardDetails([]));
|
|
|
|
|
dispatch(
|
|
|
|
|
changeBtoBQuickProductTransfer({
|
|
|
|
|
selectedProducts: [],
|
|
|
|
|
action: !action,
|
|
|
|
|
})
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleEditProfile = async () => {
|
|
|
|
|
navigate(`${subDirectory}app-page/redirect-userprofile`);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// --------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
const handleotherservices = async () => {
|
|
|
|
|
if (OtherServicesglobal && comboRedirectionToDefaultLayoutForParking) {
|
|
|
|
|
dispatch(changeComboRedirectionToDefaultLayoutForParking(false));
|
|
|
|
|
await dispatch(getTemplate({ CompId, BranchId, AppId })).unwrap();
|
|
|
|
|
}
|
|
|
|
|
dispatch(changeOrderCardDetails([]));
|
|
|
|
|
dispatch(changeOtherServices(!OtherServicesglobal));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return (
|
2026-02-25 16:24:29 +05:30
|
|
|
<div
|
2026-03-11 15:35:19 +05:30
|
|
|
className={
|
|
|
|
|
props?.BookingNavbar === 'Navbar1'
|
|
|
|
|
? 'BSBillingNavBar1'
|
|
|
|
|
: props?.BookingNavbar === 'Navbar2'
|
|
|
|
|
? 'BSBillingNavBar2'
|
|
|
|
|
: 'BSBillingNavBar3'
|
|
|
|
|
}
|
2026-02-25 16:24:29 +05:30
|
|
|
>
|
|
|
|
|
<Popconfirm
|
|
|
|
|
title="Are you sure you want to go home?"
|
|
|
|
|
onConfirm={handleHome}
|
|
|
|
|
okText="Yes"
|
|
|
|
|
cancelText="No"
|
2026-02-17 16:50:59 +05:30
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<div>
|
|
|
|
|
<TooltipWrapper
|
|
|
|
|
title="Back to Home"
|
|
|
|
|
placement="right"
|
|
|
|
|
isMobile={isMobile}
|
|
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<PozoHomeIcon className={'BSNavbarHomeIcon'} />
|
2026-02-25 16:24:29 +05:30
|
|
|
</TooltipWrapper>
|
|
|
|
|
</div>
|
|
|
|
|
</Popconfirm>
|
2026-03-11 15:35:19 +05:30
|
|
|
|
2026-02-25 16:24:29 +05:30
|
|
|
{(addcustomer || hold) && (
|
|
|
|
|
<FeaturesFunctionalities
|
|
|
|
|
handleAddCustomerCancel={handleAddCustomerCancel}
|
|
|
|
|
addcustomer={addcustomer}
|
|
|
|
|
handleHoldCancel={handleHoldCancel}
|
|
|
|
|
modalOpen={hold}
|
|
|
|
|
/>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* Store name */}
|
|
|
|
|
<div className="salesStoreName">
|
|
|
|
|
<BranchName />
|
|
|
|
|
</div>
|
|
|
|
|
{/* Parking Other Service */}
|
|
|
|
|
<div className="OtherServiceParking">
|
|
|
|
|
{OtherServiceStatus && (
|
|
|
|
|
<TooltipWrapper title="Other Services" isMobile={isMobile}>
|
|
|
|
|
<div
|
|
|
|
|
onClick={handleotherservices}
|
|
|
|
|
style={{
|
|
|
|
|
width: '1.49rem',
|
|
|
|
|
margin: '0',
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
cursor: 'pointer',
|
|
|
|
|
display: 'flex',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<FaParking
|
|
|
|
|
size={24}
|
|
|
|
|
display={'flex'}
|
|
|
|
|
className={
|
|
|
|
|
OtherServicesglobal === true
|
|
|
|
|
? 'ParkingIconActive'
|
|
|
|
|
: 'ParkingIconDea'
|
|
|
|
|
}
|
|
|
|
|
// fill={OtherServicesglobal === true ? '#52C41A' : '#1292EE'}
|
|
|
|
|
/>
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
2026-03-11 15:35:19 +05:30
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
2026-03-30 18:00:14 +05:30
|
|
|
</div>
|
2026-03-30 18:40:34 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
<div className="BSBillingNav1div2">
|
2026-02-25 16:24:29 +05:30
|
|
|
<div className="NavbarDivForSearch">
|
|
|
|
|
{/* Multiple search */}
|
|
|
|
|
<Tooltip title={'Multiple Search'}>
|
|
|
|
|
<div className="MultiSearchIconDiv">
|
2026-02-26 17:47:48 +05:30
|
|
|
<TbSettingsSearch onClick={() => setMultiple(true)} />
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
|
|
|
|
</Tooltip>
|
2026-01-28 17:34:28 +05:30
|
|
|
|
2026-01-27 18:27:29 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
2026-02-25 16:24:29 +05:30
|
|
|
{navbarOptions?.map((item) => (
|
2026-01-27 18:27:29 +05:30
|
|
|
<>
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName == 'Search' &&
|
|
|
|
|
Comboglobal === false &&
|
|
|
|
|
!sportsAppPreference && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
2026-03-11 15:35:19 +05:30
|
|
|
className="BSBillingNavBar1-Inputsearch-container NavbarSearchModified"
|
2026-01-27 18:27:29 +05:30
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<LuSearch className="bothnbavbarIcon" />
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSNavBarSearch nosearch={true} OrderType={OrderType} />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
2026-02-25 16:24:29 +05:30
|
|
|
)}
|
2026-01-27 18:27:29 +05:30
|
|
|
</>
|
2026-02-25 16:24:29 +05:30
|
|
|
))}
|
|
|
|
|
{Comboglobal === true && (
|
|
|
|
|
<div className="Navbar1SearchCombo">
|
|
|
|
|
<BSNavBarComboSearch SessionData={SessionData} />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
2026-03-30 18:40:34 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
|
|
|
|
{FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) =>
|
|
|
|
|
item?.FeatureAddonName?.toLowerCase() === 'weight scale'
|
|
|
|
|
) && (
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSNavBarWeightScale />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
|
|
|
|
{OpenFailData && (
|
|
|
|
|
<PaymentFailedSales
|
|
|
|
|
paymentFailedStatusFun={paymentFailedStatusFun}
|
|
|
|
|
OpenFailData={OpenFailData}
|
|
|
|
|
/>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
<div className="BsNavbar-IconSections">
|
2026-02-25 16:24:29 +05:30
|
|
|
{navbarOptions?.map((item) => (
|
|
|
|
|
<>
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* Reprint */}
|
2026-02-25 16:24:29 +05:30
|
|
|
<>
|
|
|
|
|
{item?.OptionName == 'RePrint' && !OtherServicesglobal && (
|
|
|
|
|
<TooltipWrapper title="Reprint (Alt+R)" isMobile={isMobile}>
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSPrinterSetting />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
2026-03-11 15:35:19 +05:30
|
|
|
|
2026-02-25 16:24:29 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
2026-03-11 15:35:19 +05:30
|
|
|
{item?.OptionName == 'QuickAdd' && (
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSNavBarQuickAdd />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName == 'Hold' &&
|
|
|
|
|
OrderType != 'Failed' &&
|
|
|
|
|
OrderType != 'Reorder' &&
|
|
|
|
|
CheckBookingStatus != 'Close' &&
|
|
|
|
|
isHoldEnable &&
|
|
|
|
|
!addnewAccess && (
|
|
|
|
|
<div className="BSBillingNavBar1-hand">
|
|
|
|
|
<BSNavBarHand />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName == 'DineIn' &&
|
|
|
|
|
dinePreference &&
|
|
|
|
|
PreferenceDatas?.[0]?.['SettingDtlDetails']?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'DineIn'
|
|
|
|
|
)?.SettingValue === 'Y' && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
2026-02-25 16:24:29 +05:30
|
|
|
OrderType === 'Failed' || addnewAccess
|
|
|
|
|
? 'none'
|
|
|
|
|
: 'auto',
|
2026-01-27 18:27:29 +05:30
|
|
|
}}
|
|
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSNavBarTable />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName == 'TakeAway' && takeAwayPreference && (
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSNavBarHandbag />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2026-01-27 18:27:29 +05:30
|
|
|
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName === 'Offer' &&
|
|
|
|
|
GlobEstBooking !== 'OvrAllEst' &&
|
|
|
|
|
GlobEstBooking !== 'ParEst' &&
|
|
|
|
|
GlobEstBooking === 'Sales' &&
|
|
|
|
|
PreferenceDatas?.[0]?.['SettingDtlDetails']?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'Offer'
|
|
|
|
|
)?.SettingValue === 'Y' && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSNavBarOffer />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName == 'ExtraCharge' && (
|
|
|
|
|
// CartOrderDetails?.length > 0 &&
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSNavBarAddons />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
{item?.OptionName == 'AddCustomer' && !preOrderOpen && (
|
2026-03-11 15:35:19 +05:30
|
|
|
<div className="NavbarCus-Add">
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSCustomerSelect TopName={'navbar-top'} />
|
|
|
|
|
<BSNavBarAddUser />
|
2026-03-11 15:35:19 +05:30
|
|
|
</div>
|
2026-02-25 16:24:29 +05:30
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
))}
|
|
|
|
|
|
|
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
2026-03-30 18:40:34 +05:30
|
|
|
|
2026-02-25 16:24:29 +05:30
|
|
|
{FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) => item?.FeatureAddonName?.toLowerCase() === 'preorder'
|
|
|
|
|
) && (
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
tableData || OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
opacity: tableData ? 0.5 : 1,
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<TooltipWrapper title={'Pre Booking'} isMobile={isMobile}>
|
|
|
|
|
<Badge
|
|
|
|
|
count={preOrderPendingCount}
|
|
|
|
|
offset={[-5, 10]}
|
|
|
|
|
size="small"
|
|
|
|
|
>
|
|
|
|
|
<PozoPreOrderIcon
|
|
|
|
|
className="BSBillingNav-icon"
|
|
|
|
|
fill={preOrderOpen ? '#52C41A' : '#1292EE'}
|
|
|
|
|
onClick={() => {
|
|
|
|
|
openPreOrder();
|
|
|
|
|
}}
|
|
|
|
|
HandleClose={preOrderHandleclose}
|
|
|
|
|
/>
|
|
|
|
|
</Badge>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
{preOrderOpen && (
|
|
|
|
|
<BSNavBarPreOrder HandleClose={preOrderHandleclose} />
|
|
|
|
|
)}
|
|
|
|
|
{sportsAppPreference && <BSMembership />}
|
|
|
|
|
{Estimation?.SettingValue === 'Y' &&
|
|
|
|
|
BookingType !== 'Dine In' &&
|
|
|
|
|
!BookingTypeBoth &&
|
|
|
|
|
!OrderOfferStatus && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSNavBarEstimate />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
{/* mohan */}
|
|
|
|
|
{SalesMode?.SettingValue === 'Y' && !OtherServicesglobal && (
|
|
|
|
|
<BSNavBarWholeSale />
|
|
|
|
|
)}
|
|
|
|
|
{!OtherServicesglobal &&
|
|
|
|
|
ScanLayoutScreen?.SettingValue === 'Y' && <BSScanTemplate />}
|
|
|
|
|
{!sportsAppPreference && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<BSNavBarFavItems />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
2026-02-25 16:24:29 +05:30
|
|
|
)}
|
|
|
|
|
<div
|
|
|
|
|
className="favIcon"
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSNavBarDragItems />
|
|
|
|
|
</div>
|
|
|
|
|
{FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) =>
|
|
|
|
|
item?.FeatureAddonName?.toLowerCase() === 'customer display'
|
|
|
|
|
) && (
|
|
|
|
|
<TooltipWrapper title="Customer Display" isMobile={isMobile}>
|
|
|
|
|
{/* <div onClick={openNewTab} style={{ display: "flex", alignItems: "center", cursor: "pointer" }}>
|
2026-01-27 18:27:29 +05:30
|
|
|
<FaDisplay />
|
|
|
|
|
</div> */}
|
2026-02-25 16:24:29 +05:30
|
|
|
<div
|
|
|
|
|
onClick={openNewTab}
|
|
|
|
|
className="BSBillingNavBar1-AllIcons"
|
|
|
|
|
style={{
|
|
|
|
|
width: '1.3rem',
|
|
|
|
|
margin: '10px',
|
|
|
|
|
cursor: 'pointer',
|
|
|
|
|
}}
|
2026-02-23 09:39:46 +05:30
|
|
|
>
|
2026-02-25 16:24:29 +05:30
|
|
|
<CustomerDisplayicon />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
{paymentfeataddon && (
|
|
|
|
|
<TooltipWrapper title="Failed Payment" isMobile={isMobile}>
|
|
|
|
|
{/* <img src={paymentFailure} width={20} height={20} style={{ cursor: "pointer" }} onClick={() => { paymentFailedStatusFun() }}></img> */}
|
|
|
|
|
{/* <MdMoneyOff size={20} style={{ color: "rgb(33, 150, 243)",cursor:"pointer" }} onClick={() => { paymentFailedStatusFun() }} /> */}
|
|
|
|
|
<div
|
|
|
|
|
onClick={() => {
|
|
|
|
|
paymentFailedStatusFun();
|
|
|
|
|
}}
|
|
|
|
|
className="BSBillingNavBar1-AllIcons"
|
|
|
|
|
style={{ width: '1.4rem', cursor: 'pointer' }}
|
|
|
|
|
>
|
|
|
|
|
<PozoPaymentFailesIcon />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
{VerifyTheProducts && (
|
|
|
|
|
<TooltipWrapper title={'Verfied Products'} isMobile={isMobile}>
|
|
|
|
|
<div>
|
|
|
|
|
<VerfiedProducts />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
2026-03-12 18:16:32 +05:30
|
|
|
{isMobile && (
|
2026-03-11 15:35:19 +05:30
|
|
|
<div className="PrinterSettingMB">
|
|
|
|
|
<BSMobilePrintSettings />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
2026-03-11 15:35:19 +05:30
|
|
|
|
2026-02-25 16:24:29 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
|
|
|
|
<div className="BSNavbar1-time-user">
|
2026-03-11 15:35:19 +05:30
|
|
|
{props?.BookingNavbar !== 'Navbar2' && (
|
|
|
|
|
<div
|
|
|
|
|
className="BSBillingNavBar1-SearchBar"
|
|
|
|
|
style={{ color: '#212529', flexDirection: 'column' }}
|
|
|
|
|
>
|
|
|
|
|
<TimerClock />
|
|
|
|
|
{formattedDate}
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
<Tooltip
|
|
|
|
|
title={isFullscreen ? 'Exit Full Screen' : 'Full Screen'}
|
2026-02-25 16:24:29 +05:30
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<div
|
|
|
|
|
className={
|
|
|
|
|
isFullscreen
|
|
|
|
|
? 'BsNavbar1FullScreenExit'
|
|
|
|
|
: 'BsNavbar1FullScreen'
|
|
|
|
|
}
|
|
|
|
|
onClick={handleFullscreen}
|
|
|
|
|
>
|
|
|
|
|
{isFullscreen ? (
|
|
|
|
|
<RiFullscreenExitFill />
|
|
|
|
|
) : (
|
|
|
|
|
<RiFullscreenFill />
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
</Tooltip>
|
2026-03-03 18:27:39 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
<TooltipWrapper title="User Profile" isMobile={isMobile}>
|
|
|
|
|
<div className="UserProfile">
|
|
|
|
|
<PozoUserIcon onClick={UserAcc} />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
2026-03-03 18:27:39 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSNavBarUserInfo
|
|
|
|
|
isOpen={isAccOpen}
|
|
|
|
|
divRef={divRef}
|
|
|
|
|
CompBranchData={CompBranchData}
|
|
|
|
|
BacktoLogin={BacktoLogin}
|
|
|
|
|
userProfileData={userProfileData}
|
|
|
|
|
handleEditProfile={handleEditProfile}
|
|
|
|
|
UserRelieveManager={<UserRelieveManager />}
|
|
|
|
|
Logout={Logout}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2026-02-25 16:24:29 +05:30
|
|
|
</>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
</div>
|
|
|
|
|
<div className="BSBillingnav1-threedots" onClick={NavmenuOpenClose}>
|
|
|
|
|
<PozoMenuIcon size={20} />
|
|
|
|
|
</div>
|
2026-02-23 09:39:46 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* small screen nav bar */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
|
|
|
|
|
{Navmenu && (
|
|
|
|
|
<div className="resNavbarMain">
|
|
|
|
|
<div className="ResBsNavbar-IconSections">
|
|
|
|
|
<div className="resnavbarClose">
|
|
|
|
|
<IoMdClose onClick={NavmenuOpenClose} />
|
|
|
|
|
</div>
|
|
|
|
|
{navbarOptions?.map((item) => (
|
|
|
|
|
<>
|
|
|
|
|
{/* Reprint */}
|
|
|
|
|
<>
|
|
|
|
|
{item?.OptionName == 'RePrint' && !OtherServicesglobal && (
|
|
|
|
|
<TooltipWrapper title="Reprint (Alt+R)" isMobile={isMobile}>
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
2026-03-11 15:35:19 +05:30
|
|
|
className="ReprintIconRes ResNavbarIcons"
|
2026-01-27 18:27:29 +05:30
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSPrinterSetting />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
2026-03-11 15:35:19 +05:30
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
|
|
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
|
|
|
|
{/* Quick Add */}
|
|
|
|
|
{item?.OptionName == 'QuickAdd' && (
|
2026-02-25 16:24:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
2026-03-11 15:35:19 +05:30
|
|
|
className="QuicAddIconRes ResNavbarIcons"
|
2026-02-25 16:24:29 +05:30
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSNavBarQuickAdd />
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* Hold */}
|
|
|
|
|
{item?.OptionName == 'Hold' &&
|
|
|
|
|
OrderType != 'Failed' &&
|
|
|
|
|
OrderType != 'Reorder' &&
|
|
|
|
|
CheckBookingStatus != 'Close' &&
|
|
|
|
|
isHoldEnable &&
|
|
|
|
|
!addnewAccess && (
|
|
|
|
|
<div className="BSBillingNavBar1-hand ResNavbarIcons">
|
|
|
|
|
<BSNavBarHand />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
{item?.OptionName == 'DineIn' &&
|
|
|
|
|
dinePreference &&
|
|
|
|
|
PreferenceDatas?.[0]?.['SettingDtlDetails']?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'DineIn'
|
|
|
|
|
)?.SettingValue === 'Y' && (
|
|
|
|
|
<div
|
|
|
|
|
className="ResNavbarIcons"
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' || addnewAccess
|
|
|
|
|
? 'none'
|
|
|
|
|
: 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSNavBarTable />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
{item?.OptionName == 'TakeAway' && takeAwayPreference && (
|
2026-02-25 16:24:29 +05:30
|
|
|
<div
|
2026-03-11 15:35:19 +05:30
|
|
|
className="ResNavbarIcons"
|
2026-02-25 16:24:29 +05:30
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
2026-03-11 15:35:19 +05:30
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
2026-02-25 16:24:29 +05:30
|
|
|
}}
|
|
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSNavBarHandbag />
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
|
|
|
|
|
{item?.OptionName === 'Offer' &&
|
|
|
|
|
GlobEstBooking !== 'OvrAllEst' &&
|
|
|
|
|
GlobEstBooking !== 'ParEst' &&
|
|
|
|
|
GlobEstBooking === 'Sales' &&
|
|
|
|
|
PreferenceDatas?.[0]?.['SettingDtlDetails']?.find(
|
|
|
|
|
(item) => item.SettingIdName === 'Offer'
|
|
|
|
|
)?.SettingValue === 'Y' && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
2026-03-11 15:35:19 +05:30
|
|
|
className="ResNavbarIcons"
|
2026-01-27 18:27:29 +05:30
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSNavBarOffer />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
{item?.OptionName == 'ExtraCharge' && (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
2026-03-11 15:35:19 +05:30
|
|
|
className="ResNavbarIcons"
|
2026-01-27 18:27:29 +05:30
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSNavBarAddons />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
2026-03-13 16:31:12 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* Customer Add Select */}
|
|
|
|
|
{item?.OptionName == 'AddCustomer' && !preOrderOpen && (
|
|
|
|
|
<div className="NavbarCus-Add">
|
|
|
|
|
<BSCustomerSelect TopName={'navbar-top'} />
|
|
|
|
|
<BSNavBarAddUser />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
2026-02-25 16:24:29 +05:30
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
</>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
))}
|
2026-02-25 16:24:29 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
2026-03-30 18:40:34 +05:30
|
|
|
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* PreOrder */}
|
|
|
|
|
{FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) => item?.FeatureAddonName?.toLowerCase() === 'preorder'
|
|
|
|
|
) && (
|
|
|
|
|
<div
|
|
|
|
|
className="ResNavbarIcons"
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents:
|
|
|
|
|
tableData || OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
opacity: tableData ? 0.5 : 1,
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<TooltipWrapper title={'Pre Booking'} isMobile={isMobile}>
|
|
|
|
|
<Badge
|
|
|
|
|
count={preOrderPendingCount}
|
|
|
|
|
offset={[-5, 10]}
|
|
|
|
|
size="small"
|
|
|
|
|
>
|
|
|
|
|
<PozoPreOrderIcon
|
|
|
|
|
className="BSBillingNav-icon"
|
|
|
|
|
fill={preOrderOpen ? '#52C41A' : '#1292EE'}
|
|
|
|
|
onClick={() => {
|
|
|
|
|
openPreOrder();
|
|
|
|
|
}}
|
|
|
|
|
HandleClose={preOrderHandleclose}
|
|
|
|
|
/>
|
|
|
|
|
</Badge>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
{preOrderOpen && (
|
|
|
|
|
<BSNavBarPreOrder HandleClose={preOrderHandleclose} />
|
|
|
|
|
)}
|
|
|
|
|
{sportsAppPreference && <BSMembership />}
|
|
|
|
|
{Estimation?.SettingValue === 'Y' &&
|
|
|
|
|
BookingType !== 'Dine In' &&
|
|
|
|
|
!BookingTypeBoth &&
|
|
|
|
|
!OrderOfferStatus && (
|
2026-02-25 16:24:29 +05:30
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-03-11 15:35:19 +05:30
|
|
|
<BSNavBarEstimate />
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
2026-03-11 15:35:19 +05:30
|
|
|
)}
|
|
|
|
|
{/* mohan */}
|
|
|
|
|
{SalesMode?.SettingValue === 'Y' && !OtherServicesglobal && (
|
|
|
|
|
<div className="ResNavbarIcons">
|
|
|
|
|
<BSNavBarWholeSale />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
{!OtherServicesglobal &&
|
|
|
|
|
ScanLayoutScreen?.SettingValue === 'Y' && <BSScanTemplate />}
|
|
|
|
|
{/* favourites */}
|
|
|
|
|
{!sportsAppPreference && (
|
|
|
|
|
<div
|
|
|
|
|
className="ResNavbarIcons"
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-03-26 15:04:15 +05:30
|
|
|
<BSNavBarFavItems setNavmenu={setNavmenu} />
|
2026-03-11 15:35:19 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
{/* DragItem */}
|
|
|
|
|
<div
|
|
|
|
|
className="favIcon ResNavbarIcons"
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderType === 'Failed' ? 'none' : 'auto',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<BSNavBarDragItems />
|
|
|
|
|
</div>
|
|
|
|
|
{/* Customer Display */}
|
|
|
|
|
{FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) =>
|
|
|
|
|
item?.FeatureAddonName?.toLowerCase() === 'customer display'
|
|
|
|
|
) && (
|
|
|
|
|
<TooltipWrapper title="Customer Display" isMobile={isMobile}>
|
|
|
|
|
<div
|
|
|
|
|
onClick={openNewTab}
|
|
|
|
|
className="BSBillingNavBar1-AllIcons ResNavbarIcons"
|
|
|
|
|
style={{
|
|
|
|
|
width: '1.3rem',
|
|
|
|
|
margin: '10px',
|
|
|
|
|
cursor: 'pointer',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<CustomerDisplayicon />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
2026-02-25 16:24:29 +05:30
|
|
|
)}
|
2026-03-11 15:35:19 +05:30
|
|
|
{/* Pay,ent Failed */}
|
|
|
|
|
{paymentfeataddon && (
|
|
|
|
|
<TooltipWrapper title="Failed Payment" isMobile={isMobile}>
|
|
|
|
|
<div
|
|
|
|
|
onClick={() => {
|
|
|
|
|
paymentFailedStatusFun();
|
|
|
|
|
}}
|
|
|
|
|
className="BSBillingNavBar1-AllIcons ResNavbarIcons"
|
|
|
|
|
style={{ width: '1.4rem', cursor: 'pointer' }}
|
|
|
|
|
>
|
|
|
|
|
<PozoPaymentFailesIcon />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
{/* VerifyTheProducts */}
|
|
|
|
|
{VerifyTheProducts && (
|
|
|
|
|
<TooltipWrapper
|
|
|
|
|
title={'Verfied Products'}
|
|
|
|
|
isMobile={isMobile}
|
|
|
|
|
>
|
|
|
|
|
<div className="ResNavbarIcons">
|
|
|
|
|
<VerfiedProducts />
|
|
|
|
|
</div>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
2026-03-11 17:13:27 +05:30
|
|
|
{isMobile && (
|
2026-03-11 15:35:19 +05:30
|
|
|
<div className="PrinterSettingMB">
|
|
|
|
|
<BSMobilePrintSettings />
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
2026-03-11 15:35:19 +05:30
|
|
|
)}
|
2026-02-25 16:24:29 +05:30
|
|
|
</div>
|
2026-03-11 15:35:19 +05:30
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* small screen nav bar End*/}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
|
|
|
|
{/* */}
|
2026-02-25 16:24:29 +05:30
|
|
|
|
|
|
|
|
<DefaultModal
|
|
|
|
|
open={multiple}
|
|
|
|
|
title="Multiple Search"
|
|
|
|
|
footer={false}
|
|
|
|
|
width={350}
|
|
|
|
|
handleCancel={() => setMultiple(false)}
|
|
|
|
|
destroyOnClose={true}
|
|
|
|
|
children={
|
|
|
|
|
<>
|
|
|
|
|
<MultipleSearch close={setMultiple} />
|
|
|
|
|
</>
|
|
|
|
|
}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2026-01-27 18:27:29 +05:30
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
export default BSNavbar1;
|