2026-02-23 12:18:31 +05:30
|
|
|
import React, {
|
|
|
|
|
useEffect,
|
|
|
|
|
useState,
|
|
|
|
|
useCallback,
|
|
|
|
|
lazy,
|
|
|
|
|
Suspense,
|
|
|
|
|
useMemo,
|
|
|
|
|
} from 'react';
|
2026-01-27 18:27:29 +05:30
|
|
|
import { useDispatch, useSelector } from 'react-redux';
|
|
|
|
|
import moment from 'moment';
|
|
|
|
|
import { Tooltip, Badge, Popconfirm } from 'antd';
|
|
|
|
|
import { isMobile } from 'react-device-detect';
|
|
|
|
|
import CategoryHorizontal from '../../Components/BSCategories/BSCategoryHorizontal';
|
|
|
|
|
import SubCategoryHorizontal from '../../Components/BSSubCategories/BSSubCategoryHorizontal';
|
|
|
|
|
import BSItemCard from '../../Components/BSItemCards/BSItemCard';
|
|
|
|
|
import BSBillingTable1 from '../../Components/BSBillingTables/BSBillingTable1/BSBTOverall1';
|
|
|
|
|
import BSBillingTable2 from '../../Components/BSBillingTables/BSBillingTable2/BSBillingTable2';
|
|
|
|
|
import BSBillingTable3 from '../../Components/BSBillingTables/BSBillingTable3/BSBillingTable3overall';
|
|
|
|
|
import BSBillingTable4 from '../../Components/BSBillingTables/BSBillingTable4/BSBillingTable4Full';
|
|
|
|
|
import BSBillingTable6 from '../../Components/BSBillingTables/BSBillingTable6/BSBTOverall6';
|
2026-02-23 12:18:31 +05:30
|
|
|
import BSBillingTable5 from '../../Components/BSBillingTables/BSBillingTable5/BSBillingTable5';
|
2026-01-27 18:27:29 +05:30
|
|
|
import BSBillingTable7 from '../../Components/BSBillingTables/BSBillingTable7/BSBillingTable7Overall.jsx';
|
|
|
|
|
import { dynamicComponentProps } from '../DynamicComponentProps.js';
|
|
|
|
|
import {
|
|
|
|
|
getTemplateData,
|
|
|
|
|
GlobalPricingAppPricingName,
|
|
|
|
|
SelectedGlobalBillingColorDetail,
|
|
|
|
|
SelectedGlobalCardColorDetail,
|
|
|
|
|
SelectedGlobalCatgColorDetail,
|
|
|
|
|
SelectedGlobalLayoutColorDetail,
|
|
|
|
|
SelectedGlobalSubCatgColorDetail,
|
|
|
|
|
StoredSessionData,
|
|
|
|
|
} from '../../../../Features/ThemeChange/ThemeChange';
|
|
|
|
|
import {
|
|
|
|
|
GlobalSalesDetailData,
|
|
|
|
|
getSalesDetailData,
|
|
|
|
|
GlobalCombosearch,
|
|
|
|
|
PreferenceData,
|
|
|
|
|
GlobalOrderStatus,
|
|
|
|
|
GlobalAppExpDateData,
|
|
|
|
|
GlobalBtoBQuickProductTransfer,
|
|
|
|
|
GlobalOtherSevices,
|
|
|
|
|
} from '../../../../Features/BookingScreen/BookingData/BookingData.js';
|
|
|
|
|
import { getSession } from '../../../../Services/Others.js';
|
2026-02-23 12:18:31 +05:30
|
|
|
import { PutBookingClose } from '../../../../Features/BookingScreen/RetailBookingClose.js';
|
2026-01-27 18:27:29 +05:30
|
|
|
import {
|
|
|
|
|
getKioskDatas,
|
|
|
|
|
globalKioskSalesCount,
|
|
|
|
|
} from '../../../../Features/Kiosk/kiosk.js';
|
|
|
|
|
import {
|
|
|
|
|
GLobalSadminUserPin,
|
|
|
|
|
putSadminUserExit,
|
|
|
|
|
checkSession,
|
|
|
|
|
ApplicationPreferences,
|
2026-02-23 12:18:31 +05:30
|
|
|
} from '../../../../Features/BrachLogin/BranchLogin.js';
|
|
|
|
|
// Icons
|
|
|
|
|
import PozoKioskIcon from '../../Components/UtillComponents/Pozo retail icons/PozoKioskIcon.jsx';
|
|
|
|
|
import BookingCloseIcon from '../../Components/UtillComponents/BookingCloseIcon.jsx';
|
|
|
|
|
import BSEwayBillicon from '../../Components/UtillComponents/BSEwayBillicon.jsx';
|
2026-01-27 18:27:29 +05:30
|
|
|
import { Messages } from '../../../../Components/Notifications/Messages.jsx';
|
|
|
|
|
import SAdminUserNotification from '../../Components/BookingFunctionality/SAdminUserNotification.jsx';
|
|
|
|
|
import {
|
|
|
|
|
getBookingStatus,
|
|
|
|
|
GlobalBookingStatus,
|
|
|
|
|
} from '../../../../Features/Payment/PaymentReceivedRetail/PaymentReceivedRetail.js';
|
|
|
|
|
import TooltipWrapper from '../../../../Components/Tooltip/Tooltip.jsx';
|
|
|
|
|
import RetailBookingClosing from '../RetailBookingClose.jsx';
|
2026-02-23 12:18:31 +05:30
|
|
|
// Jsx Files
|
|
|
|
|
const SalesCountComponent = lazy(() => import('../SalesCountComponent.jsx'));
|
|
|
|
|
const BSKioskCounterPayment = lazy(
|
|
|
|
|
() => import('../../Components/UtillComponents/BSKioskCounterPayment.jsx')
|
|
|
|
|
);
|
|
|
|
|
const ListOfSalesInvoices = lazy(
|
|
|
|
|
() =>
|
|
|
|
|
import('../../Components/BSBillingTables/ListofInvoices/ListOfSalesInvoices.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSComboItemCard = lazy(
|
|
|
|
|
() => import('../../Components/BSItemCards/BSComboItemCard.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BranchTransferComponent = lazy(
|
|
|
|
|
() =>
|
|
|
|
|
import('../../Components/UtillComponents/BSQuickBranchToBranchTransferComponent.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSExpireProductsList = lazy(
|
|
|
|
|
() => import('../../Components/UtillComponents/BSExpireProductsList.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSOtherServiceItemCard = lazy(
|
|
|
|
|
() => import('../../Components/BSItemCards/BSOtherServiceItemCard.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSOtherServicesHorizontalcat = lazy(
|
|
|
|
|
() => import('../../Components/BSCategories/BSOtherServicesHorizontalcat')
|
|
|
|
|
);
|
|
|
|
|
const BSNavbar3 = lazy(() => import('../../Components/BSNavbar/BSNavbar3.jsx'));
|
|
|
|
|
const SalesCountForStandard = lazy(
|
|
|
|
|
() => import('../SalesCountForStandard.jsx')
|
|
|
|
|
);
|
|
|
|
|
const StandardTable = lazy(
|
|
|
|
|
() =>
|
|
|
|
|
import('../../Components/BSBillingTables/StandardTable/StandardTable.jsx')
|
|
|
|
|
);
|
|
|
|
|
const ComboSalesBillTable = lazy(
|
|
|
|
|
() =>
|
|
|
|
|
import('../../Components/BSBillingTables/ComboSalesBillTable/ComboSalesBillTable.jsx')
|
|
|
|
|
);
|
|
|
|
|
const PlanExpireNotification = lazy(
|
|
|
|
|
() => import('../PlanExpireNotification.jsx')
|
|
|
|
|
);
|
|
|
|
|
const BSNavbar1 = lazy(() => import('../../Components/BSNavbar/BSNavbar1'));
|
|
|
|
|
const BSNavbar2 = lazy(() => import('../../Components/BSNavbar/BSNavbar2'));
|
|
|
|
|
// Scss
|
|
|
|
|
import '../../../../Styles/BookingScreen/Template/BSLayout3/BSLayout3.scss';
|
|
|
|
|
|
2026-01-27 18:27:29 +05:30
|
|
|
const subDirectory = import.meta.env.BASE_URL;
|
|
|
|
|
const commonDirectory = import.meta.env.COMMON_BASE_URL;
|
2026-02-23 12:18:31 +05:30
|
|
|
|
2026-01-27 18:27:29 +05:30
|
|
|
const BSLayout3 = () => {
|
|
|
|
|
const dispatch = useDispatch();
|
|
|
|
|
const { action, selectedProducts } = useSelector(
|
|
|
|
|
GlobalBtoBQuickProductTransfer
|
|
|
|
|
);
|
|
|
|
|
const SettingDataSelector = useSelector(PreferenceData);
|
|
|
|
|
const BSLayout3Data = useSelector(getTemplateData);
|
|
|
|
|
const GlobalLayoutColorDetail = useSelector(SelectedGlobalLayoutColorDetail);
|
|
|
|
|
const GlobalsalesDetailData = useSelector(GlobalSalesDetailData);
|
|
|
|
|
const SelectedCatgColor = useSelector(SelectedGlobalCatgColorDetail);
|
|
|
|
|
const SelectedCardColor = useSelector(SelectedGlobalCardColorDetail);
|
|
|
|
|
const SelectedSubCatgColor = useSelector(SelectedGlobalSubCatgColorDetail);
|
|
|
|
|
const PricingAppPricingName = useSelector(GlobalPricingAppPricingName);
|
|
|
|
|
const OtherServicesglobal = useSelector(GlobalOtherSevices);
|
|
|
|
|
const Comboglobal = useSelector(GlobalCombosearch);
|
|
|
|
|
const badgeCount = useSelector(globalKioskSalesCount);
|
|
|
|
|
const OrderStatus = useSelector(GlobalOrderStatus);
|
|
|
|
|
const SessionData = useSelector(StoredSessionData);
|
|
|
|
|
const [messageType, setMessageType] = useState(null);
|
|
|
|
|
const [messageData, setMessageData] = useState(null);
|
|
|
|
|
const AppExpDate = useSelector(GlobalAppExpDateData);
|
|
|
|
|
// const [AppExpDate, setAppExpDate] = useState(0);
|
|
|
|
|
const [Kioskopen, setKioskopen] = useState(false);
|
|
|
|
|
const BookingStatus = useSelector(GlobalBookingStatus);
|
|
|
|
|
const appPreferences = useSelector(ApplicationPreferences);
|
|
|
|
|
const commonModulePreference = appPreferences?.find(
|
2026-02-23 12:18:31 +05:30
|
|
|
(preference) => preference?.PreferredCatName === 'Common Module'
|
2026-01-27 18:27:29 +05:30
|
|
|
)?.PreferenceCatDetails;
|
|
|
|
|
const sportsAppPreference = commonModulePreference?.find(
|
2026-02-23 12:18:31 +05:30
|
|
|
(preference) =>
|
|
|
|
|
preference?.PreferredSubCatName === 'SportsApp' &&
|
|
|
|
|
preference?.PreferredStatus == 'Y'
|
2026-01-27 18:27:29 +05:30
|
|
|
);
|
|
|
|
|
const CheckBookingStatus =
|
|
|
|
|
BookingStatus?.find((item) => item.ScreenType === 'Booking')
|
|
|
|
|
?.ScreenStatus ?? 'Open';
|
|
|
|
|
const [BookingModalOpen, setBookingModalOpen] = useState(false);
|
|
|
|
|
const [popOverOpen, setPopOverOpen] = useState(false);
|
|
|
|
|
|
|
|
|
|
const SelectedBillColor = useSelector(SelectedGlobalBillingColorDetail);
|
|
|
|
|
|
|
|
|
|
const BookingNavbar = BSLayout3Data?.BookingNavbar?.[0];
|
|
|
|
|
const BookingCategory = BSLayout3Data?.BookingCategory;
|
|
|
|
|
const BookingSubCategory = BSLayout3Data?.BookingSubCategory;
|
|
|
|
|
const BookingCard = BSLayout3Data?.BookingCard;
|
|
|
|
|
const BookingBilling = BSLayout3Data?.BookingBilling?.[0];
|
2026-02-23 12:18:31 +05:30
|
|
|
const animations = ['example1', 'example2', 'example3'];
|
|
|
|
|
let ss = animations[count];
|
|
|
|
|
const DineInAccess = useMemo(() => {
|
|
|
|
|
return SettingDataSelector?.[0]?.SettingDtlDetails.filter(
|
|
|
|
|
(i) => i.SettingIdName === 'DineIn'
|
|
|
|
|
)?.[0];
|
|
|
|
|
}, [SettingDataSelector]);
|
2026-01-27 18:27:29 +05:30
|
|
|
const [ListOfInvoices, setListOfInvoices] = useState(false);
|
|
|
|
|
const AppId = SessionData?.AppId;
|
|
|
|
|
const CompId = SessionData?.CompId;
|
|
|
|
|
const BranchId = SessionData?.BranchId;
|
|
|
|
|
const UserId = SessionData?.UserId;
|
|
|
|
|
const UserType = SessionData?.UserType;
|
|
|
|
|
const currentDateValue = moment().format('YYYY-MM-DD HH:mm:ss');
|
|
|
|
|
let containerHeight = isMobile
|
2026-02-23 12:18:31 +05:30
|
|
|
? AppExpDate?.RemainingDays <= 7 ||
|
|
|
|
|
AppExpDate?.PlanType?.toLowerCase() === 'extend'
|
2026-01-27 18:27:29 +05:30
|
|
|
? '576px'
|
|
|
|
|
: '590px'
|
2026-02-23 12:18:31 +05:30
|
|
|
: (UserType != 'Super Admin' &&
|
|
|
|
|
UserType != 'Super Admin User' &&
|
|
|
|
|
AppExpDate?.RemainingDays <= 7) ||
|
|
|
|
|
AppExpDate?.PlanType?.toLowerCase() === 'extend'
|
2026-01-27 18:27:29 +05:30
|
|
|
? '95vh'
|
|
|
|
|
: '99vh';
|
|
|
|
|
const SAdminuserPin = useSelector(GLobalSadminUserPin);
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
if (AppId && CompId && BranchId && UserId) {
|
|
|
|
|
fetchBookingStatus();
|
|
|
|
|
}
|
|
|
|
|
}, [AppId, CompId, BranchId, UserId]);
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
fetchAmount();
|
|
|
|
|
if (
|
|
|
|
|
SessionData?.FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) => item?.FeatureAddonName?.toLowerCase() === 'kiosk sales'
|
|
|
|
|
)
|
|
|
|
|
) {
|
|
|
|
|
fetchKioskDatas();
|
|
|
|
|
}
|
|
|
|
|
}, [SessionData]);
|
|
|
|
|
|
|
|
|
|
const fetchKioskDatas = async () => {
|
|
|
|
|
let data = {
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
UserId: 0,
|
|
|
|
|
};
|
|
|
|
|
await dispatch(getKioskDatas(data));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const fetchAmount = async () => {
|
|
|
|
|
let data = {
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
UserId: UserId,
|
|
|
|
|
FromDate: currentDateValue,
|
|
|
|
|
ToDate: currentDateValue,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
await dispatch(getSalesDetailData(data)).unwrap();
|
|
|
|
|
};
|
|
|
|
|
const fetchBookingStatus = async () => {
|
|
|
|
|
let data = {
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
UserId: UserId,
|
|
|
|
|
};
|
|
|
|
|
await dispatch(getBookingStatus(data));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const openModalKiosk = () => {
|
|
|
|
|
setKioskopen(true);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const closeModalKiosk = () => {
|
|
|
|
|
setKioskopen(false);
|
|
|
|
|
};
|
|
|
|
|
const handlePopOverOpen = () => {
|
|
|
|
|
setPopOverOpen(!popOverOpen);
|
|
|
|
|
};
|
|
|
|
|
const handleSupportUser = async () => {
|
|
|
|
|
let response = await dispatch(
|
|
|
|
|
putSadminUserExit({
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
UserId: UserId,
|
|
|
|
|
UpdatedBy: UserId,
|
|
|
|
|
})
|
|
|
|
|
).unwrap();
|
|
|
|
|
if (response?.data?.statusCode == 1) {
|
|
|
|
|
setMessageData('success');
|
|
|
|
|
setMessageType(response?.data?.data);
|
|
|
|
|
setPopOverOpen(false);
|
|
|
|
|
const UserId = getSession('UserId');
|
|
|
|
|
const sessionId = getSession('SessionId');
|
|
|
|
|
await dispatch(checkSession({ UserId, sessionId })).unwrap();
|
|
|
|
|
} else {
|
|
|
|
|
setMessageData('error');
|
|
|
|
|
setMessageType(response?.data?.data);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const onComplete = useCallback(() => {
|
|
|
|
|
setMessageData(null);
|
|
|
|
|
setMessageType(null);
|
|
|
|
|
}, []);
|
|
|
|
|
const BookingOpenFun = async (status) => {
|
|
|
|
|
let Postdata = {
|
|
|
|
|
AppId: AppId,
|
|
|
|
|
CompId: CompId,
|
|
|
|
|
BranchId: BranchId,
|
|
|
|
|
UserId: UserId,
|
|
|
|
|
ScreenType: 'Booking',
|
|
|
|
|
ScreenStatus: status,
|
|
|
|
|
CreatedBy: UserId,
|
|
|
|
|
Date: new Date(),
|
|
|
|
|
};
|
|
|
|
|
let Postresponse = await dispatch(PutBookingClose(Postdata)).unwrap();
|
|
|
|
|
if (Postresponse?.data?.statusCode === 1) {
|
|
|
|
|
fetchBookingStatus();
|
|
|
|
|
} else {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
const OpenBookingModal = () => {
|
|
|
|
|
setBookingModalOpen(true);
|
|
|
|
|
};
|
|
|
|
|
const HandleBookingModalClose = () => {
|
|
|
|
|
setBookingModalOpen(false);
|
|
|
|
|
};
|
|
|
|
|
const OpenListOfInvoices = () => {
|
|
|
|
|
setListOfInvoices(true);
|
|
|
|
|
};
|
|
|
|
|
const handleInvoiceClose = () => {
|
|
|
|
|
setListOfInvoices(false);
|
|
|
|
|
};
|
|
|
|
|
return (
|
2026-02-23 12:18:31 +05:30
|
|
|
<Suspense fallback={<div>Suspense Loading...</div>}>
|
|
|
|
|
<>
|
|
|
|
|
<Messages
|
|
|
|
|
messageType={messageType}
|
|
|
|
|
messageData={messageData}
|
|
|
|
|
onComplete={onComplete}
|
|
|
|
|
/>
|
|
|
|
|
{UserType != 'Super Admin' &&
|
|
|
|
|
UserType != 'Super Admin User' &&
|
|
|
|
|
(AppExpDate?.RemainingDays <= 7 ||
|
|
|
|
|
AppExpDate === 'undefined' ||
|
|
|
|
|
AppExpDate?.PlanType?.toLowerCase() === 'extend') && (
|
|
|
|
|
<PlanExpireNotification />
|
|
|
|
|
)}
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
2026-02-23 12:18:31 +05:30
|
|
|
className="BSLayout3-Master"
|
|
|
|
|
style={{ height: containerHeight, overflow: 'hidden' }}
|
2026-01-27 18:27:29 +05:30
|
|
|
>
|
2026-02-23 12:18:31 +05:30
|
|
|
<div className="BSLayout3-NavBar">
|
|
|
|
|
{BookingNavbar == 'Navbar1' && <BSNavbar1 />}
|
|
|
|
|
{BookingNavbar == 'Navbar2' && <BSNavbar2 />}
|
|
|
|
|
{BookingNavbar == 'Navbar3' && <BSNavbar3 />}
|
|
|
|
|
</div>
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
2026-02-23 12:18:31 +05:30
|
|
|
className={
|
|
|
|
|
BookingNavbar != 'Navbar3' ? 'BSLayout3' : 'BSLayout3Standard'
|
|
|
|
|
}
|
2026-01-27 18:27:29 +05:30
|
|
|
style={{
|
|
|
|
|
backgroundColor: GlobalLayoutColorDetail?.OverallBackgroundColor,
|
|
|
|
|
}}
|
|
|
|
|
>
|
2026-02-23 12:18:31 +05:30
|
|
|
{BookingNavbar != 'Navbar3' ? (
|
2026-01-27 18:27:29 +05:30
|
|
|
<div
|
2026-02-23 12:18:31 +05:30
|
|
|
className="Layout-bill-container"
|
|
|
|
|
style={{ marginTop: '9px' }}
|
2026-01-27 18:27:29 +05:30
|
|
|
>
|
2026-02-23 12:18:31 +05:30
|
|
|
<div
|
|
|
|
|
className="Layout-bill-Subcontainer"
|
|
|
|
|
style={{ width: OtherServicesglobal ? '10%' : '100%' }}
|
|
|
|
|
>
|
|
|
|
|
{UserType !== 'Employee' && (
|
|
|
|
|
<div className="pricing-name-details">
|
|
|
|
|
{PricingAppPricingName?.[0]?.PricingName +
|
|
|
|
|
' / ' +
|
|
|
|
|
PricingAppPricingName?.[0]?.Type}
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<SalesCountComponent
|
|
|
|
|
DineInAccess={DineInAccess}
|
|
|
|
|
GlobalsalesDetailData={GlobalsalesDetailData}
|
|
|
|
|
/>
|
|
|
|
|
)}
|
|
|
|
|
{!OtherServicesglobal &&
|
|
|
|
|
SessionData?.FeatureAddonData?.FeatureDtls?.find(
|
|
|
|
|
(item) =>
|
|
|
|
|
item?.FeatureAddonName?.toLowerCase() === 'kiosk sales'
|
|
|
|
|
) &&
|
|
|
|
|
!sportsAppPreference && (
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
pointerEvents: OrderStatus > 0 ? 'none' : 'auto',
|
|
|
|
|
opacity: OrderStatus > 0 ? 0.5 : 1,
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<Tooltip title={'Kiosk Sales'}>
|
|
|
|
|
{''}
|
|
|
|
|
<Badge
|
|
|
|
|
count={badgeCount}
|
|
|
|
|
offset={[-10, 3]}
|
|
|
|
|
size="small"
|
|
|
|
|
>
|
|
|
|
|
<PozoKioskIcon
|
|
|
|
|
onClick={() => openModalKiosk()}
|
|
|
|
|
style={{ cursor: 'pointer', fontSize: '1.5rem' }}
|
|
|
|
|
className="iconsize"
|
|
|
|
|
/>
|
|
|
|
|
</Badge>
|
|
|
|
|
</Tooltip>
|
|
|
|
|
</div>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<TooltipWrapper
|
|
|
|
|
title={'Low Stock Alerts'}
|
|
|
|
|
isMobile={isMobile}
|
|
|
|
|
>
|
|
|
|
|
{' '}
|
|
|
|
|
<BSExpireProductsList />
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
)}
|
|
|
|
|
{!OtherServicesglobal && Kioskopen && (
|
|
|
|
|
<BSKioskCounterPayment
|
|
|
|
|
Kioskopen={Kioskopen}
|
|
|
|
|
closeKioskModal={closeModalKiosk}
|
|
|
|
|
/>
|
|
|
|
|
)}
|
|
|
|
|
{SAdminuserPin?.length > 0 &&
|
|
|
|
|
UserType != 'Super Admin User' && (
|
|
|
|
|
<div>
|
|
|
|
|
<SAdminUserNotification
|
|
|
|
|
SAdminuserPin={SAdminuserPin}
|
|
|
|
|
popOverOpen={popOverOpen}
|
|
|
|
|
handleSupportUser={handleSupportUser}
|
|
|
|
|
handlePopOverOpen={handlePopOverOpen}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
|
|
|
|
|
2026-02-23 12:18:31 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<>
|
|
|
|
|
{' '}
|
|
|
|
|
{CheckBookingStatus == 'Open' ? (
|
|
|
|
|
<div style={{ marginLeft: '10px' }}>
|
|
|
|
|
<TooltipWrapper
|
|
|
|
|
title={'Booking Close'}
|
|
|
|
|
isMobile={isMobile}
|
|
|
|
|
>
|
|
|
|
|
{' '}
|
|
|
|
|
<BookingCloseIcon
|
|
|
|
|
onClick={OpenBookingModal}
|
|
|
|
|
bgFill={'#52c41a'}
|
|
|
|
|
style={{
|
|
|
|
|
fontSize: '16px',
|
|
|
|
|
marginTop: '4px',
|
|
|
|
|
color: '#52c41a',
|
|
|
|
|
cursor: 'pointer',
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
{/* <button className="BookingCloseButton"
|
|
|
|
|
onClick={OpenBookingModal}>Booking Close</button> */}
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
</div>
|
|
|
|
|
) : (
|
|
|
|
|
<div style={{ marginLeft: '10px' }}>
|
|
|
|
|
<TooltipWrapper
|
|
|
|
|
title="Booking Open"
|
|
|
|
|
isMobile={isMobile}
|
|
|
|
|
>
|
|
|
|
|
<Popconfirm
|
|
|
|
|
placement="leftTop"
|
|
|
|
|
title="Booking Open"
|
|
|
|
|
description="Are you sure you want to Open the sales?"
|
|
|
|
|
okText="Yes"
|
|
|
|
|
cancelText="No"
|
|
|
|
|
onConfirm={() => BookingOpenFun('Open')}
|
|
|
|
|
>
|
|
|
|
|
<span>
|
|
|
|
|
<BookingCloseIcon
|
|
|
|
|
bgFill="red"
|
|
|
|
|
style={{
|
|
|
|
|
fontSize: '16px',
|
|
|
|
|
marginTop: '4px',
|
|
|
|
|
color: '#52c41a',
|
|
|
|
|
cursor: 'pointer',
|
|
|
|
|
}}
|
|
|
|
|
/>
|
|
|
|
|
</span>
|
|
|
|
|
</Popconfirm>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
</div>
|
|
|
|
|
)}{' '}
|
|
|
|
|
</>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<div style={{ marginLeft: '10px' }}>
|
|
|
|
|
<TooltipWrapper title={'E-way Bill'} isMobile={isMobile}>
|
|
|
|
|
{''}
|
|
|
|
|
<BSEwayBillicon
|
|
|
|
|
style={{ cursor: 'pointer', marginTop: '5px' }}
|
|
|
|
|
onClick={OpenListOfInvoices}
|
|
|
|
|
/>
|
|
|
|
|
</TooltipWrapper>
|
|
|
|
|
</div>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
) : (
|
|
|
|
|
<>
|
|
|
|
|
<SalesCountForStandard />
|
|
|
|
|
</>
|
|
|
|
|
)}
|
|
|
|
|
<div
|
|
|
|
|
className="BsLayout3-ContentDiv"
|
|
|
|
|
style={{
|
|
|
|
|
backgroundColor:
|
|
|
|
|
GlobalLayoutColorDetail?.OverallBackgroundColor,
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
<div className="BSCategory3-Contentcont">
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
backgroundColor:
|
|
|
|
|
SelectedCatgColor?.['OverallBackgroundColor'],
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{!OtherServicesglobal && (
|
|
|
|
|
<CategoryHorizontal
|
|
|
|
|
categoryFunction={dynamicComponentProps(
|
|
|
|
|
'Category',
|
|
|
|
|
BookingCategory?.[1],
|
|
|
|
|
BookingCategory?.[0]
|
|
|
|
|
)}
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
{OtherServicesglobal && (
|
|
|
|
|
<BSOtherServicesHorizontalcat
|
|
|
|
|
categoryFunction={dynamicComponentProps(
|
|
|
|
|
'Category',
|
|
|
|
|
BookingCategory?.[1],
|
|
|
|
|
BookingCategory?.[0]
|
|
|
|
|
)}
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
style={{
|
|
|
|
|
backgroundColor:
|
|
|
|
|
SelectedSubCatgColor?.['OverallBackgroundColor'],
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{!OtherServicesglobal && Comboglobal === false && (
|
|
|
|
|
<SubCategoryHorizontal
|
|
|
|
|
categoryFunction={dynamicComponentProps(
|
|
|
|
|
'SubCategory',
|
|
|
|
|
BookingSubCategory?.[1],
|
|
|
|
|
BookingSubCategory?.[0]
|
|
|
|
|
)}
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div
|
|
|
|
|
className="BSCategory3-Cardcont"
|
|
|
|
|
style={{
|
|
|
|
|
backgroundColor:
|
|
|
|
|
SelectedCardColor?.['OverallBackgroundColor'],
|
|
|
|
|
display: 'flex',
|
|
|
|
|
}}
|
|
|
|
|
>
|
|
|
|
|
{!OtherServicesglobal && Comboglobal === false && (
|
|
|
|
|
<BSItemCard
|
|
|
|
|
cardFunctionality={dynamicComponentProps(
|
|
|
|
|
'Card',
|
|
|
|
|
BookingCard?.[1],
|
|
|
|
|
BookingCard?.[0]
|
|
|
|
|
)}
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
{!OtherServicesglobal && Comboglobal === true && (
|
|
|
|
|
<BSComboItemCard
|
|
|
|
|
cardFunctionality={dynamicComponentProps(
|
|
|
|
|
'Card',
|
|
|
|
|
BookingCard?.[1],
|
|
|
|
|
BookingCard?.[0]
|
|
|
|
|
)}
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
{OtherServicesglobal && (
|
|
|
|
|
<BSOtherServiceItemCard
|
|
|
|
|
screenHeight={window.innerHeight}
|
|
|
|
|
cardFunctionality={dynamicComponentProps(
|
|
|
|
|
'Card',
|
|
|
|
|
BookingCard?.[1],
|
|
|
|
|
BookingCard?.[0]
|
|
|
|
|
)}
|
|
|
|
|
/>
|
2026-01-27 18:27:29 +05:30
|
|
|
)}
|
2026-02-23 12:18:31 +05:30
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div className="BSCategory3-tablecont">
|
|
|
|
|
{action ? (
|
|
|
|
|
<BranchTransferComponent />
|
|
|
|
|
) : (
|
|
|
|
|
<>
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing1' && (
|
|
|
|
|
<BSBillingTable1 />
|
|
|
|
|
)}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing2' && (
|
|
|
|
|
<BSBillingTable2 />
|
|
|
|
|
)}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing3' && (
|
|
|
|
|
<BSBillingTable3 />
|
|
|
|
|
)}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing4' && (
|
|
|
|
|
<BSBillingTable4 />
|
|
|
|
|
)}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing5' && (
|
|
|
|
|
<BSBillingTable5 />
|
|
|
|
|
)}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing6' && (
|
|
|
|
|
<BSBillingTable6 />
|
|
|
|
|
)}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] == 'Billing7' && (
|
|
|
|
|
<BSBillingTable7 />
|
|
|
|
|
)}
|
|
|
|
|
{BookingBilling == 'Billing8' && <ComboSalesBillTable />}
|
|
|
|
|
{BSLayout3Data?.BookingBilling?.[0] ==
|
|
|
|
|
'StandardBilling' && (
|
|
|
|
|
<div className="BSCategory2New">
|
|
|
|
|
<StandardTable />
|
|
|
|
|
</div>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
2026-01-27 18:27:29 +05:30
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2026-02-23 12:18:31 +05:30
|
|
|
{BookingModalOpen && !OtherServicesglobal && (
|
|
|
|
|
<RetailBookingClosing
|
|
|
|
|
PaymentOpen={BookingModalOpen}
|
|
|
|
|
PaymentClose={HandleBookingModalClose}
|
|
|
|
|
/>
|
|
|
|
|
)}
|
|
|
|
|
{ListOfInvoices && !OtherServicesglobal && (
|
|
|
|
|
<ListOfSalesInvoices
|
|
|
|
|
ListOfInvoicesOpen={ListOfInvoices}
|
|
|
|
|
handleInvoiceClose={handleInvoiceClose}
|
|
|
|
|
/>
|
|
|
|
|
)}
|
|
|
|
|
</>
|
|
|
|
|
</Suspense>
|
2026-01-27 18:27:29 +05:30
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default BSLayout3;
|