Solved Issue

This commit is contained in:
Your Name 2026-02-25 16:24:29 +05:30
parent 60ce7114d2
commit 76c6d44ef3
41 changed files with 7585 additions and 7787 deletions

View File

@ -10,8 +10,12 @@ import { routesConfig } from './routesConfig';
import { GlobalItemCard } from './Features/BookingScreen/BookingData/BookingData.js'; import { GlobalItemCard } from './Features/BookingScreen/BookingData/BookingData.js';
import { clearSession, getSession } from './Services/Others.js'; import { clearSession, getSession } from './Services/Others.js';
const KisokSelBooking = lazy(() => import('./Pages/SelfBooking/KisokSelBooking')); const KisokSelBooking = lazy(
const IndividualBooking = lazy(() => import('./Pages/SelfBooking/IndividualBooking')); () => import('./Pages/SelfBooking/KisokSelBooking')
);
const IndividualBooking = lazy(
() => import('./Pages/SelfBooking/IndividualBooking')
);
const commonSubDir = import.meta.env.ENV_COMMON_BASE_URL; const commonSubDir = import.meta.env.ENV_COMMON_BASE_URL;
const subDirectory = import.meta.env.ENV_BASE_URL; const subDirectory = import.meta.env.ENV_BASE_URL;
@ -23,13 +27,13 @@ import useSubscriptionManager from './useSubscriptionManager.js';
import useSessionManager from './useSessionManager.js'; import useSessionManager from './useSessionManager.js';
import ExtendSubscriptionModal from './Pages/ExtentedModal/ExtendSubscriptionModal.jsx'; import ExtendSubscriptionModal from './Pages/ExtentedModal/ExtendSubscriptionModal.jsx';
const isCapacitor = () => !!(window.Capacitor?.isNativePlatform?.()); const isCapacitor = () => !!window.Capacitor?.isNativePlatform?.();
// Define your home/exit pages here // Define your home/exit pages here
const HOME_PAGES = [ const HOME_PAGES = [
'/landing-page/home', '/landing-page/home',
'/home/landing-page/home', '/home/landing-page/home',
'app-page/home', // android minimize 'app-page/home', // android minimize
]; ];
const LOGIN_PAGES = ['signin', 'login', 'auth']; const LOGIN_PAGES = ['signin', 'login', 'auth'];
@ -37,7 +41,14 @@ const LOGIN_PAGES = ['signin', 'login', 'auth'];
const AppRoutes = () => { const AppRoutes = () => {
const ItemCard = useSelector(GlobalItemCard); const ItemCard = useSelector(GlobalItemCard);
const { sessionData, logout } = useSessionManager(ItemCard); const { sessionData, logout } = useSessionManager(ItemCard);
const { remainingDays, handleCancel, freeExtend, extendModel,handlePay, setExtendModel } = useSubscriptionManager(sessionData, logout); const {
remainingDays,
handleCancel,
freeExtend,
extendModel,
handlePay,
setExtendModel,
} = useSubscriptionManager(sessionData, logout);
const location = useLocation(); const location = useLocation();
const navigate = useNavigate(); const navigate = useNavigate();
@ -56,7 +67,7 @@ const AppRoutes = () => {
const path = location.pathname + (location.search || ''); const path = location.pathname + (location.search || '');
// Don't track login pages // Don't track login pages
if (LOGIN_PAGES.some(p => path.includes(p))) return; if (LOGIN_PAGES.some((p) => path.includes(p))) return;
const raw = sessionStorage.getItem('navStack'); const raw = sessionStorage.getItem('navStack');
let stack = raw ? JSON.parse(raw) : []; let stack = raw ? JSON.parse(raw) : [];
@ -78,7 +89,7 @@ const AppRoutes = () => {
const currentPath = location.pathname; const currentPath = location.pathname;
// On home page just stay, don't redirect // On home page just stay, don't redirect
if (HOME_PAGES.some(p => currentPath.includes(p))) { if (HOME_PAGES.some((p) => currentPath.includes(p))) {
window.history.go(1); // stay here window.history.go(1); // stay here
return; return;
} }
@ -104,77 +115,77 @@ const AppRoutes = () => {
useEffect(() => { useEffect(() => {
if (!isMobile && !isIOS && !isCapacitor()) return; if (!isMobile && !isIOS && !isCapacitor()) return;
const handler = async () => { let backButtonListener;
const setupBackButton = async () => {
try { try {
const currentPath = location.pathname + (location.search || ''); backButtonListener = await CapacitorApp.addListener(
console.log('🔙 Back pressed:', currentPath); 'backButton',
async () => {
try {
const currentPath = location.pathname + (location.search || '');
console.log('🔙 Back pressed:', currentPath);
// On home page // 🏠 Home page minimize
if (HOME_PAGES.some(p => currentPath.includes(p))) { if (HOME_PAGES.some((p) => currentPath.includes(p))) {
if (isCapacitor()) { if (isCapacitor()) {
console.log('📱 Minimizing app'); await CapacitorApp.minimizeApp();
await CapacitorApp.minimizeApp(); // minimize not exit }
return;
}
// 🚪 Login page exit
if (LOGIN_PAGES.some((p) => currentPath.includes(p))) {
if (isCapacitor()) {
await CapacitorApp.exitApp();
}
return;
}
const raw = sessionStorage.getItem('navStack');
let stack = raw ? JSON.parse(raw) : [];
while (stack.length && stack[stack.length - 1] === currentPath) {
stack.pop();
}
if (stack.length) {
const previous = stack[stack.length - 1];
if (LOGIN_PAGES.some((p) => previous.includes(p))) {
const home = '/landing-page/home';
sessionStorage.setItem('navStack', JSON.stringify([home]));
isBackNav.current = true;
navigate(home);
return;
}
sessionStorage.setItem('navStack', JSON.stringify(stack));
isBackNav.current = true;
navigate(previous);
} else {
const home = '/landing-page/home';
sessionStorage.setItem('navStack', JSON.stringify([home]));
isBackNav.current = true;
navigate(home);
}
} catch (err) {
console.error('Back handler error:', err);
navigate('/landing-page/home');
}
} }
return; );
} } catch (err) {
console.error('Listener error:', err);
// On login page exit app
if (LOGIN_PAGES.some(p => currentPath.includes(p))) {
console.log('🚪 Exiting app');
if (isCapacitor()) await CapacitorApp.exitApp();
return;
}
// Get stack and go back one by one
const raw = sessionStorage.getItem('navStack');
let stack = raw ? JSON.parse(raw) : [];
// Remove current path from top
while (stack.length > 0 && stack[stack.length - 1] === currentPath) {
stack.pop();
}
if (stack.length > 0) {
const previous = stack[stack.length - 1];
// If previous is login go to home instead
if (LOGIN_PAGES.some(p => previous.includes(p))) {
console.log('⬅️ Previous was login → going home');
const home = '/landing-page/home';
sessionStorage.setItem('navStack', JSON.stringify([home]));
isBackNav.current = true;
navigate(home);
return;
}
console.log('⬅️ Back to:', previous);
sessionStorage.setItem('navStack', JSON.stringify(stack));
isBackNav.current = true; // Prevent loop
navigate(previous);
} else {
// Stack empty go home
const home = '/landing-page/home';
console.log('📭 Stack empty → home');
sessionStorage.setItem('navStack', JSON.stringify([home]));
isBackNav.current = true;
navigate(home);
}
} catch (e) {
console.error('Back error:', e);
navigate('/landing-page/home');
} }
}; };
let listener; setupBackButton();
try {
listener = CapacitorApp.addListener('backButton', handler);
} catch (e) {}
return () => { return () => {
try { try {
if (listener?.remove) listener.remove(); backButtonListener?.remove();
} catch (e) {} } catch (err) {}
}; };
}, [navigate, location.pathname, location.search]); }, [navigate, location.pathname, location.search]);

View File

@ -156,8 +156,8 @@ const BSBillingTable1 = () => {
OrderType === 'Hold' OrderType === 'Hold'
? tableData?.filter((a, b) => a.BookingTypeName === 'TakeAway') ? tableData?.filter((a, b) => a.BookingTypeName === 'TakeAway')
: tableData?.filter( : tableData?.filter(
(a, b) => a.BookingTypeName === 'TakeAway' && !a?.SalesId (a, b) => a.BookingTypeName === 'TakeAway' && !a?.SalesId
); );
const OldtableDataDinein = tableData?.filter( const OldtableDataDinein = tableData?.filter(
(a, b) => a.BookingTypeName === 'Dine In' && a?.SalesId (a, b) => a.BookingTypeName === 'Dine In' && a?.SalesId
@ -165,8 +165,8 @@ const BSBillingTable1 = () => {
const OldtableDataTakeAway = const OldtableDataTakeAway =
OrderType != 'Hold' OrderType != 'Hold'
? tableData?.filter( ? tableData?.filter(
(a, b) => a.BookingTypeName === 'TakeAway' && a?.SalesId (a, b) => a.BookingTypeName === 'TakeAway' && a?.SalesId
) )
: []; : [];
const [OpenEditTotalAmt, setOpenEditTotalAmt] = useState(false); const [OpenEditTotalAmt, setOpenEditTotalAmt] = useState(false);
const [OpenImeiDetail, setOpenImeiDetail] = useState(false); const [OpenImeiDetail, setOpenImeiDetail] = useState(false);
@ -1115,9 +1115,9 @@ const BSBillingTable1 = () => {
)?.map((item, idx) => )?.map((item, idx) =>
idx === 0 idx === 0
? { ? {
...item, ...item,
FreeQty, FreeQty,
} }
: item : item
), ),
}; };
@ -1470,7 +1470,7 @@ const BSBillingTable1 = () => {
OrderQty: isPaidproduct?.OrderQty, OrderQty: isPaidproduct?.OrderQty,
CompleteRemove: true, CompleteRemove: true,
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
OrderRate:item?.OrderRate, OrderRate: item?.OrderRate,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
}); });
@ -1506,7 +1506,7 @@ const BSBillingTable1 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate:item?.OrderRate, OrderRate: item?.OrderRate,
}); });
await ChangeOfferAppliedProdsFn({ await ChangeOfferAppliedProdsFn({
inwardDtlId: item?.InwardDtlId, inwardDtlId: item?.InwardDtlId,
@ -1536,7 +1536,7 @@ const BSBillingTable1 = () => {
OrderQty: isPaidProductAvailableInCart?.OrderQty, OrderQty: isPaidProductAvailableInCart?.OrderQty,
CompleteRemove: true, CompleteRemove: true,
InwardDtlId: isPaidProductAvailableInCart?.InwardDtlId, InwardDtlId: isPaidProductAvailableInCart?.InwardDtlId,
OrderRate:isPaidProductAvailableInCart?.OrderRate, OrderRate: isPaidProductAvailableInCart?.OrderRate,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: 0, Offer: 0,
}); });
@ -1622,7 +1622,7 @@ const BSBillingTable1 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate:item?.OrderRate, OrderRate: item?.OrderRate,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
OverAllFreeQty: freeProdList?.OverAllFreeQty, OverAllFreeQty: freeProdList?.OverAllFreeQty,
@ -1649,7 +1649,7 @@ const BSBillingTable1 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate:item?.OrderRate, OrderRate: item?.OrderRate,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
OverAllFreeQty: freeProdList?.OverAllFreeQty, OverAllFreeQty: freeProdList?.OverAllFreeQty,
@ -1982,7 +1982,7 @@ const BSBillingTable1 = () => {
CompleteRemove: true, CompleteRemove: true,
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: item?.InwardDtlId, BuyInwardDtlId: item?.InwardDtlId,
OrderRate:item?.OrderRate, OrderRate: item?.OrderRate,
Offer: item?.Offer, Offer: item?.Offer,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
@ -2001,7 +2001,7 @@ const BSBillingTable1 = () => {
CompleteRemove: true, CompleteRemove: true,
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: item?.InwardDtlId, BuyInwardDtlId: item?.InwardDtlId,
OrderRate:item?.OrderRate, OrderRate: item?.OrderRate,
Offer: item?.Offer, Offer: item?.Offer,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
@ -2144,7 +2144,7 @@ const BSBillingTable1 = () => {
OpenEditTotalAmount(); OpenEditTotalAmount();
} }
}} }}
// onClick={tableData?.length>0? OpenEditTotalAmount :""} // onClick={tableData?.length>0? OpenEditTotalAmount :""}
> >
{!isMobile ? ( {!isMobile ? (
<Tooltip title="Quantity">Qty</Tooltip> <Tooltip title="Quantity">Qty</Tooltip>
@ -2252,10 +2252,11 @@ const BSBillingTable1 = () => {
{OldtableDataTakeAway?.map((item, index) => ( {OldtableDataTakeAway?.map((item, index) => (
<tr <tr
key={index} key={index}
className={`${item?.SalesId && OrderType !== 'Hold' className={`${
? 'Billing-Table1-row-disabled' item?.SalesId && OrderType !== 'Hold'
: 'Billing-Table1-row' ? 'Billing-Table1-row-disabled'
} : 'Billing-Table1-row'
}
`} `}
style={{ style={{
@ -2266,17 +2267,17 @@ const BSBillingTable1 = () => {
? item?.SalesId && OrderType !== 'Hold' ? item?.SalesId && OrderType !== 'Hold'
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: triggerAnimation && : triggerAnimation &&
index === 0 && index === 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataTakeAway?.length >= tableDataTakeAway?.length >=
PreviousdataLength PreviousdataLength
? 'wheat' ? 'wheat'
: triggerAnimation && : triggerAnimation &&
index === 0 && index === 0 &&
tableDataTakeAway?.length >= tableDataTakeAway?.length >=
PreviousdataLength && PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
!UnpaidData !UnpaidData
? 'wheat' ? 'wheat'
: 'inherit' : 'inherit'
: 'none', : 'none',
@ -2284,18 +2285,18 @@ const BSBillingTable1 = () => {
item?.SalesId && OrderType !== 'Hold' item?.SalesId && OrderType !== 'Hold'
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + item?.InwardDtlId +
' ' + ' ' +
item?.BookingTypeName item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: index % 2 === 0 : index % 2 === 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.[ ? SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
: '#d6d6d6', : '#d6d6d6',
animation: animation:
BillOrderPre === 'Y' && !BookingTypeBoth BillOrderPre === 'Y' && !BookingTypeBoth
@ -2348,7 +2349,7 @@ const BSBillingTable1 = () => {
}} }}
onClick={() => onClick={() =>
item.FullProductIdentifierDtls?.length > 0 || item.FullProductIdentifierDtls?.length > 0 ||
item.ProductIdentifierDtls?.length > 0 item.ProductIdentifierDtls?.length > 0
? handleImeiDetails(item) ? handleImeiDetails(item)
: editField && handleEditQuantity(item) : editField && handleEditQuantity(item)
} }
@ -2399,21 +2400,21 @@ const BSBillingTable1 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -2508,11 +2509,11 @@ const BSBillingTable1 = () => {
> >
{allowDecimal {allowDecimal
? Number( ? Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
).toFixed(2) ).toFixed(2)
: Number( : Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
)} )}
</td> </td>
)} )}
@ -2547,10 +2548,11 @@ const BSBillingTable1 = () => {
{OldtableDataDinein?.map((item, index) => ( {OldtableDataDinein?.map((item, index) => (
<tr <tr
key={OldtableDataTakeAway?.length + index} key={OldtableDataTakeAway?.length + index}
className={`${item?.SalesId className={`${
? 'Billing-Table1-row-disabled' item?.SalesId
: 'Billing-Table1-row' ? 'Billing-Table1-row-disabled'
} : 'Billing-Table1-row'
}
`} `}
style={{ style={{
@ -2561,28 +2563,28 @@ const BSBillingTable1 = () => {
? item?.SalesId ? item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: BookingType === 'Dine In' && : BookingType === 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataTakeAway?.length + index === 0 && OldtableDataTakeAway?.length + index === 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataDinein?.length >= PreviousdataLength tableDataDinein?.length >= PreviousdataLength
? 'wheat' ? 'wheat'
: BookingType !== 'Dine In' && : BookingType !== 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataTakeAway?.length + index === OldtableDataTakeAway?.length + index ===
0 && 0 &&
tableDataDinein?.length >= tableDataDinein?.length >=
PreviousdataLength && PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
!UnpaidData !UnpaidData
? 'wheat' ? 'wheat'
: 'inherit' : 'inherit'
: 'none', : 'none',
background: item?.SalesId background: item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + ' ' + item?.BookingTypeName item?.InwardDtlId + ' ' + item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: (OldtableDataTakeAway?.length + index) % 2 === 0 : (OldtableDataTakeAway?.length + index) % 2 === 0
? 'white' ? 'white'
@ -2690,21 +2692,21 @@ const BSBillingTable1 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -2799,11 +2801,11 @@ const BSBillingTable1 = () => {
> >
{allowDecimal {allowDecimal
? Number( ? Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
).toFixed(2) ).toFixed(2)
: Number( : Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
)} )}
</td> </td>
)} )}
@ -2843,10 +2845,11 @@ const BSBillingTable1 = () => {
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index index
} }
className={`${BookingType === 'Dine In' && item?.SalesId className={`${
? 'Billing-Table1-row-disabled' BookingType === 'Dine In' && item?.SalesId
: 'Billing-Table1-row' ? 'Billing-Table1-row-disabled'
} : 'Billing-Table1-row'
}
`} `}
style={{ style={{
@ -2857,44 +2860,44 @@ const BSBillingTable1 = () => {
? BookingType === 'Dine In' && item?.SalesId ? BookingType === 'Dine In' && item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: BookingType === 'Dine In' && : BookingType === 'Dine In' &&
triggerAnimation &&
OldtableDataDinein?.length +
OldtableDataTakeAway?.length +
index ===
0 &&
!item?.SalesId &&
tableDataTakeAway?.length >=
PreviousdataLength
? 'wheat'
: BookingType !== 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataDinein?.length + OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index === index ===
0 && 0 &&
!item?.SalesId &&
tableDataTakeAway?.length >= tableDataTakeAway?.length >=
PreviousdataLength && PreviousdataLength
!HoldOrderDtl && ? 'wheat'
!UnpaidData : BookingType !== 'Dine In' &&
triggerAnimation &&
OldtableDataDinein?.length +
OldtableDataTakeAway?.length +
index ===
0 &&
tableDataTakeAway?.length >=
PreviousdataLength &&
!HoldOrderDtl &&
!UnpaidData
? 'wheat' ? 'wheat'
: (OldtableDataDinein?.length + : (OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.[ : SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
? SelectedBillColor?.[ ? SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
: '#d6d6d6' : '#d6d6d6'
: (OldtableDataDinein?.length + : (OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.['OverallBackgroundColor'] ? SelectedBillColor?.['OverallBackgroundColor']
@ -2903,30 +2906,30 @@ const BSBillingTable1 = () => {
BookingType === 'Dine In' && item?.SalesId BookingType === 'Dine In' && item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + item?.InwardDtlId +
' ' + ' ' +
item?.BookingTypeName item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: (OldtableDataDinein?.length + : (OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.[ ? SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
: '#d6d6d6', : '#d6d6d6',
animation: animation:
BillOrderPre === 'Y' && !BookingTypeBoth BillOrderPre === 'Y' && !BookingTypeBoth
? triggerAnimation && ? triggerAnimation &&
OldtableDataDinein?.length + OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index === index ===
0 && 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataTakeAway?.length >= PreviousdataLength && tableDataTakeAway?.length >= PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
@ -2977,7 +2980,7 @@ const BSBillingTable1 = () => {
}} }}
onClick={() => onClick={() =>
item.FullProductIdentifierDtls?.length > 0 || item.FullProductIdentifierDtls?.length > 0 ||
item.ProductIdentifierDtls?.length > 0 item.ProductIdentifierDtls?.length > 0
? handleImeiDetails(item) ? handleImeiDetails(item)
: editField && handleEditQuantity(item) : editField && handleEditQuantity(item)
} }
@ -2998,8 +3001,8 @@ const BSBillingTable1 = () => {
{!item?.ProdVariantName?.toLowerCase()?.includes( {!item?.ProdVariantName?.toLowerCase()?.includes(
'variant' 'variant'
) && ( ) && (
<span>{item?.ProdVariantName} </span> <span>{item?.ProdVariantName} </span>
)} )}
{item?.Size} {item?.Size}
{item?.SinglePc == 'Y' {item?.SinglePc == 'Y'
? 'PCS' ? 'PCS'
@ -3034,21 +3037,21 @@ const BSBillingTable1 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -3143,11 +3146,11 @@ const BSBillingTable1 = () => {
> >
{allowDecimal {allowDecimal
? Number( ? Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
).toFixed(2) ).toFixed(2)
: Number( : Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
)} )}
</td> </td>
)} )}
@ -3188,10 +3191,11 @@ const BSBillingTable1 = () => {
tableDataTakeAway?.length + tableDataTakeAway?.length +
index index
} }
className={`${BookingType === 'Dine In' && item?.SalesId className={`${
? 'Billing-Table1-row-disabled' BookingType === 'Dine In' && item?.SalesId
: 'Billing-Table1-row' ? 'Billing-Table1-row-disabled'
} : 'Billing-Table1-row'
}
`} `}
style={{ style={{
@ -3204,61 +3208,61 @@ const BSBillingTable1 = () => {
!BookingTypeBoth !BookingTypeBoth
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: BookingType === 'Dine In' && : BookingType === 'Dine In' &&
triggerAnimation &&
OldtableDataTakeAway?.length +
OldtableDataDinein?.length +
tableDataTakeAway?.length +
index ===
0 &&
!item?.SalesId &&
tableDataDinein?.length >= PreviousdataLength
? 'wheat'
: BookingType !== 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
OldtableDataDinein?.length + OldtableDataDinein?.length +
tableDataTakeAway?.length + tableDataTakeAway?.length +
index === index ===
0 && 0 &&
tableDataDinein?.length >= !item?.SalesId &&
PreviousdataLength && tableDataDinein?.length >= PreviousdataLength
!HoldOrderDtl && ? 'wheat'
!UnpaidData : BookingType !== 'Dine In' &&
triggerAnimation &&
OldtableDataTakeAway?.length +
OldtableDataDinein?.length +
tableDataTakeAway?.length +
index ===
0 &&
tableDataDinein?.length >=
PreviousdataLength &&
!HoldOrderDtl &&
!UnpaidData
? 'wheat' ? 'wheat'
: 'inherit' : 'inherit'
: 'none', : 'none',
background: background:
BookingType === 'Dine In' && BookingType === 'Dine In' &&
item?.SalesId && item?.SalesId &&
!BookingTypeBoth !BookingTypeBoth
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + item?.InwardDtlId +
' ' + ' ' +
item?.BookingTypeName item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: (OldtableDataTakeAway?.length + : (OldtableDataTakeAway?.length +
OldtableDataDinein?.length + OldtableDataDinein?.length +
tableDataTakeAway?.length + tableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.[ ? SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
: '#d6d6d6', : '#d6d6d6',
animation: animation:
BillOrderPre === 'Y' && !BookingTypeBoth BillOrderPre === 'Y' && !BookingTypeBoth
? triggerAnimation && ? triggerAnimation &&
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
OldtableDataDinein?.length + OldtableDataDinein?.length +
tableDataTakeAway?.length + tableDataTakeAway?.length +
index === index ===
0 && 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataDinein?.length >= PreviousdataLength && tableDataDinein?.length >= PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
@ -3360,21 +3364,21 @@ const BSBillingTable1 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -3469,11 +3473,11 @@ const BSBillingTable1 = () => {
> >
{allowDecimal {allowDecimal
? Number( ? Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
).toFixed(2) ).toFixed(2)
: Number( : Number(
item?.TotalAmt - (item?.Offer || 0) || 0 item?.TotalAmt - (item?.Offer || 0) || 0
)} )}
</td> </td>
)} )}

View File

@ -130,14 +130,24 @@ const BsBill2 = () => {
const productBasedExtraCharges = GlobalExtraCharge.filter( const productBasedExtraCharges = GlobalExtraCharge.filter(
(obj) => 'ProdName' in obj (obj) => 'ProdName' in obj
); );
const overAllLimitPreferenece = const overAllLimitPreferenece = preferenceDatas?.[0]?.[
preferenceDatas?.[0]?.['SettingDtlDetails']?.find( 'SettingDtlDetails'
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y'); ]?.find(
const itemWiseLimitPreferenece = (item) =>
preferenceDatas?.[0]?.['SettingDtlDetails']?.find( item.SettingIdName?.toLowerCase() === 'overalllimit' &&
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y'); item?.SettingValue === 'Y'
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null; );
const itemWiseLimitPreferenece = preferenceDatas?.[0]?.[
'SettingDtlDetails'
]?.find(
(item) =>
item.SettingIdName?.toLowerCase() === 'itemwiselimit' &&
item?.SettingValue === 'Y'
);
const maxQtyLimit =
itemWiseLimitPreferenece?.SettingCount ||
overAllLimitPreferenece?.SettingCount ||
null;
const tableDataDinein = CartOrderDetails?.filter( const tableDataDinein = CartOrderDetails?.filter(
(a, b) => a.BookingTypeName === 'Dine In' && !a?.SalesId (a, b) => a.BookingTypeName === 'Dine In' && !a?.SalesId
@ -283,8 +293,8 @@ const BsBill2 = () => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) { if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) { if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(CartOrderDetails); const calculatedOverAllQty = calculateOverAllQtyLimit(CartOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if (calculatedOverAllQty + 1 > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`) message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`);
return; return;
} }
@ -1463,31 +1473,23 @@ const BsBill2 = () => {
<div className="summary-listedit-div"> <div className="summary-listedit-div">
<div className="items-editables"> <div className="items-editables">
{/* <MinusOutlined onClick={() => decline(item)} /> */} <MinusOutlined onClick={() => decline(item)} />
<Suspense fallback={<span>Loading...</span>}>
<MinusOutlined onClick={() => decline(item)} />
</Suspense>
<Badge count={item?.OrderQty} overflowCount={10000}> <Badge count={item?.OrderQty} overflowCount={10000}>
{' '} {' '}
</Badge> </Badge>
{item?.StockAvailable === 'Y' ? ( {item?.StockAvailable === 'Y' ? (
returnCount(item) > 0 && ( returnCount(item) > 0 && (
<Suspense fallback={<span>Loading...</span>}> <PlusOutlined onClick={() => increase(item)} />
<PlusOutlined onClick={() => increase(item)} />
</Suspense>
) )
) : ( ) : (
<Suspense fallback={<span>Loading...</span>}> <PlusOutlined onClick={() => increase(item)} />
<PlusOutlined onClick={() => increase(item)} />
</Suspense>
)} )}
<Suspense fallback={<span>Loading Edit...</span>}> <EditOutlined
<EditOutlined style={{ fontSize: '14px' }}
style={{ fontSize: '14px' }} onClick={() => handleEditQuantity(item)}
onClick={() => handleEditQuantity(item)} />
/>
</Suspense>
</div> </div>
</div> </div>
</div> </div>
@ -1688,30 +1690,22 @@ const BsBill2 = () => {
<div className="items-editables"> <div className="items-editables">
{/* <MinusOutlined onClick={() => decline(item)} /> {/* <MinusOutlined onClick={() => decline(item)} />
*/} */}
<Suspense fallback={<span>Loading...</span>}> <MinusOutlined onClick={() => decline(item)} />
<MinusOutlined onClick={() => decline(item)} />
</Suspense>
<Badge count={item?.OrderQty} overflowCount={10000}> <Badge count={item?.OrderQty} overflowCount={10000}>
{' '} {' '}
</Badge> </Badge>
{item?.StockAvailable === 'Y' ? ( {item?.StockAvailable === 'Y' ? (
returnCount(item) > 0 && ( returnCount(item) > 0 && (
<Suspense fallback={<span>Loading...</span>}> <PlusOutlined onClick={() => increase(item)} />
<PlusOutlined onClick={() => increase(item)} />
</Suspense>
) )
) : ( ) : (
<Suspense fallback={<span>Loading...</span>}> <PlusOutlined onClick={() => increase(item)} />
<PlusOutlined onClick={() => increase(item)} />
</Suspense>
)} )}
<Suspense fallback={<span>Loading Edit...</span>}> <EditOutlined
<EditOutlined style={{ fontSize: '14px' }}
style={{ fontSize: '14px' }} onClick={() => handleEditQuantity(item)}
onClick={() => handleEditQuantity(item)} />
/>
</Suspense>
</div> </div>
</div> </div>
</div> </div>
@ -1946,28 +1940,12 @@ const BsBill2 = () => {
<div className="summary-listedit-div"> <div className="summary-listedit-div">
<div className="items-editables"> <div className="items-editables">
<Suspense fallback={<span>Loading...</span>}> <MinusOutlined onClick={() => decline(item)} />
<MinusOutlined onClick={() => decline(item)} />
</Suspense>
<Badge count={item?.OrderQty} overflowCount={10000}> <Badge count={item?.OrderQty} overflowCount={10000}>
{' '} {' '}
</Badge> </Badge>
{item?.StockAvailable === 'Y' ? ( {item?.StockAvailable === 'Y' ? (
returnCount(item) > 0 && ( returnCount(item) > 0 && (
<Suspense fallback={<span>Loading...</span>}>
<PlusOutlined
onClick={() =>
item.Type == 'P' || item.Type == 'C'
? increase(item)
: item.ServiceType == 'G'
? increase(item)
: ''
}
/>
</Suspense>
)
) : (
<Suspense fallback={<span>Loading...</span>}>
<PlusOutlined <PlusOutlined
onClick={() => onClick={() =>
item.Type == 'P' || item.Type == 'C' item.Type == 'P' || item.Type == 'C'
@ -1977,15 +1955,23 @@ const BsBill2 = () => {
: '' : ''
} }
/> />
</Suspense> )
) : (
<PlusOutlined
onClick={() =>
item.Type == 'P' || item.Type == 'C'
? increase(item)
: item.ServiceType == 'G'
? increase(item)
: ''
}
/>
)} )}
<Suspense fallback={<span>Loading Edit...</span>}> <EditOutlined
<EditOutlined style={{ fontSize: '14px' }}
style={{ fontSize: '14px' }} onClick={() => handleEditQuantity(item)}
onClick={() => handleEditQuantity(item)} />
/>
</Suspense>
</div> </div>
</div> </div>
</div> </div>
@ -2205,30 +2191,22 @@ const BsBill2 = () => {
<div className="summary-listedit-div"> <div className="summary-listedit-div">
<div className="items-editables"> <div className="items-editables">
<Suspense fallback={<span>Loading...</span>}> <MinusOutlined onClick={() => decline(item)} />
<MinusOutlined onClick={() => decline(item)} />
</Suspense>
<Badge count={item?.OrderQty} overflowCount={10000}> <Badge count={item?.OrderQty} overflowCount={10000}>
{' '} {' '}
</Badge> </Badge>
{item?.StockAvailable === 'Y' ? ( {item?.StockAvailable === 'Y' ? (
returnCount(item) > 0 && ( returnCount(item) > 0 && (
<Suspense fallback={<span>Loading...</span>}> <PlusOutlined onClick={() => increase(item)} />
<PlusOutlined onClick={() => increase(item)} />
</Suspense>
) )
) : ( ) : (
<Suspense fallback={<span>Loading...</span>}> <PlusOutlined onClick={() => increase(item)} />
<PlusOutlined onClick={() => increase(item)} />
</Suspense>
)} )}
<Suspense fallback={<span>Loading Edit...</span>}> <EditOutlined
<EditOutlined style={{ fontSize: '14px' }}
style={{ fontSize: '14px' }} onClick={() => handleEditQuantity(item)}
onClick={() => handleEditQuantity(item)} />
/>
</Suspense>
</div> </div>
</div> </div>
</div> </div>

View File

@ -14,6 +14,7 @@ import defaultupi from '../../../../../Images/defaultupi.png';
import pozologoimg from '../../../../../Images/pozologoimg.png'; import pozologoimg from '../../../../../Images/pozologoimg.png';
import paydevice from '../../../../../Images/paydevice.png'; import paydevice from '../../../../../Images/paydevice.png';
import '../../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTable5/BSBillingTable15.scss'; import '../../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTable5/BSBillingTable15.scss';
import '../../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTables3/BSBillingTable3.scss';
import { isMobile } from 'react-device-detect'; import { isMobile } from 'react-device-detect';
import { import {
GlobalSelectedFont, GlobalSelectedFont,

View File

@ -139,16 +139,16 @@ const BSBillingTable7 = () => {
OrderType === 'Hold' OrderType === 'Hold'
? tableData?.filter((a, b) => a.BookingTypeName === 'TakeAway') ? tableData?.filter((a, b) => a.BookingTypeName === 'TakeAway')
: tableData?.filter( : tableData?.filter(
(a, b) => a.BookingTypeName === 'TakeAway' && !a?.SalesId (a, b) => a.BookingTypeName === 'TakeAway' && !a?.SalesId
); );
const OldtableDataDinein = tableData?.filter( const OldtableDataDinein = tableData?.filter(
(a, b) => a.BookingTypeName === 'Dine In' && a?.SalesId (a, b) => a.BookingTypeName === 'Dine In' && a?.SalesId
); );
const OldtableDataTakeAway = const OldtableDataTakeAway =
OrderType != 'Hold' OrderType != 'Hold'
? tableData?.filter( ? tableData?.filter(
(a, b) => a.BookingTypeName === 'TakeAway' && a?.SalesId (a, b) => a.BookingTypeName === 'TakeAway' && a?.SalesId
) )
: []; : [];
const productBasedExtraCharges = GlobalExtraCharge.filter( const productBasedExtraCharges = GlobalExtraCharge.filter(
(obj) => 'ProdName' in obj (obj) => 'ProdName' in obj
@ -941,9 +941,9 @@ const BSBillingTable7 = () => {
)?.map((item, idx) => )?.map((item, idx) =>
idx === 0 idx === 0
? { ? {
...item, ...item,
FreeQty, FreeQty,
} }
: item : item
), ),
}; };
@ -1044,7 +1044,7 @@ const BSBillingTable7 = () => {
InwardDtlId: isPaidproduct?.InwardDtlId, InwardDtlId: isPaidproduct?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: 0, Offer: 0,
OrderRate: isPaidproduct?.OrderRate OrderRate: isPaidproduct?.OrderRate,
}); });
} else if (isPaidproduct?.OrderQty > item?.OrderQty) { } else if (isPaidproduct?.OrderQty > item?.OrderQty) {
// Just Decrease Paid Qty // Just Decrease Paid Qty
@ -1218,7 +1218,7 @@ const BSBillingTable7 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate: item?.OrderRate OrderRate: item?.OrderRate,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
OverAllFreeQty: isCheckFreeProduct?.OverAllFreeQty, OverAllFreeQty: isCheckFreeProduct?.OverAllFreeQty,
@ -1329,7 +1329,7 @@ const BSBillingTable7 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate: item?.OrderRate OrderRate: item?.OrderRate,
}); });
await ChangeOfferAppliedProdsFn({ await ChangeOfferAppliedProdsFn({
inwardDtlId: item?.InwardDtlId, inwardDtlId: item?.InwardDtlId,
@ -1361,7 +1361,7 @@ const BSBillingTable7 = () => {
InwardDtlId: isPaidProductAvailableInCart?.InwardDtlId, InwardDtlId: isPaidProductAvailableInCart?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: 0, Offer: 0,
OrderRate: isPaidProductAvailableInCart?.OrderRate OrderRate: isPaidProductAvailableInCart?.OrderRate,
}); });
} else if ( } else if (
isPaidProductAvailableInCart?.OrderQty > item?.OrderQty isPaidProductAvailableInCart?.OrderQty > item?.OrderQty
@ -1445,7 +1445,7 @@ const BSBillingTable7 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate: item?.OrderRate OrderRate: item?.OrderRate,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
OverAllFreeQty: freeProdList?.OverAllFreeQty, OverAllFreeQty: freeProdList?.OverAllFreeQty,
@ -1472,7 +1472,7 @@ const BSBillingTable7 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: null, BuyInwardDtlId: null,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate: item?.OrderRate OrderRate: item?.OrderRate,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
OverAllFreeQty: freeProdList?.OverAllFreeQty, OverAllFreeQty: freeProdList?.OverAllFreeQty,
@ -1819,7 +1819,7 @@ const BSBillingTable7 = () => {
InwardDtlId: item?.InwardDtlId, InwardDtlId: item?.InwardDtlId,
BuyInwardDtlId: item?.InwardDtlId, BuyInwardDtlId: item?.InwardDtlId,
Offer: item?.Offer, Offer: item?.Offer,
OrderRate: item?.OrderRate OrderRate: item?.OrderRate,
}); });
await ChangeFreeprodlistFn({ await ChangeFreeprodlistFn({
OverAllFreeQty: item?.OrderQty, OverAllFreeQty: item?.OrderQty,
@ -1998,7 +1998,7 @@ const BSBillingTable7 = () => {
fontFamily: SelectedFont, fontFamily: SelectedFont,
fontWeight: '600', fontWeight: '600',
padding: '8px', padding: '8px',
fontSize: '16px', fontSize: '14px',
width: '10px', width: '10px',
}} }}
> >
@ -2017,7 +2017,7 @@ const BSBillingTable7 = () => {
fontFamily: SelectedFont, fontFamily: SelectedFont,
fontWeight: '600', fontWeight: '600',
padding: '8px', padding: '8px',
fontSize: '16px', fontSize: '14px',
}} }}
> >
{!isMobile ? ( {!isMobile ? (
@ -2033,7 +2033,7 @@ const BSBillingTable7 = () => {
style={{ style={{
fontFamily: SelectedFont, fontFamily: SelectedFont,
padding: '8px', padding: '8px',
fontSize: '16px', fontSize: '14px',
width: '5%', width: '5%',
}} }}
> >
@ -2051,7 +2051,7 @@ const BSBillingTable7 = () => {
fontFamily: SelectedFont, fontFamily: SelectedFont,
fontWeight: '600', fontWeight: '600',
padding: '8px', padding: '8px',
fontSize: '16px', fontSize: '14px',
width: '5%', width: '5%',
}} }}
> >
@ -2068,7 +2068,7 @@ const BSBillingTable7 = () => {
style={{ style={{
fontFamily: SelectedFont, fontFamily: SelectedFont,
fontWeight: '600', fontWeight: '600',
fontSize: '16px', fontSize: '14px',
padding: '8px', padding: '8px',
width: '5%', width: '5%',
}} }}
@ -2092,7 +2092,7 @@ const BSBillingTable7 = () => {
style={{ style={{
fontFamily: SelectedFont, fontFamily: SelectedFont,
fontWeight: '600', fontWeight: '600',
fontSize: '16px', fontSize: '14px',
width: '5%', width: '5%',
padding: '8px', padding: '8px',
}} }}
@ -2110,7 +2110,7 @@ const BSBillingTable7 = () => {
style={{ style={{
fontFamily: SelectedFont, fontFamily: SelectedFont,
fontWeight: '600', fontWeight: '600',
fontSize: '16px', fontSize: '14px',
width: '5%', width: '5%',
padding: '8px', padding: '8px',
}} }}
@ -2139,16 +2139,16 @@ const BSBillingTable7 = () => {
? item?.SalesId && OrderType !== 'Hold' ? item?.SalesId && OrderType !== 'Hold'
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: triggerAnimation && : triggerAnimation &&
index === 0 && index === 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataTakeAway?.length >= PreviousdataLength tableDataTakeAway?.length >= PreviousdataLength
? 'wheat' ? 'wheat'
: triggerAnimation && : triggerAnimation &&
index === 0 && index === 0 &&
tableDataTakeAway?.length >= tableDataTakeAway?.length >=
PreviousdataLength && PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
!UnpaidData !UnpaidData
? 'wheat' ? 'wheat'
: 'inherit' : 'inherit'
: 'none', : 'none',
@ -2156,9 +2156,9 @@ const BSBillingTable7 = () => {
item?.SalesId && OrderType !== 'Hold' item?.SalesId && OrderType !== 'Hold'
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + ' ' + item?.BookingTypeName item?.InwardDtlId + ' ' + item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: index % 2 === 0 : index % 2 === 0
? 'white' ? 'white'
@ -2183,14 +2183,15 @@ const BSBillingTable7 = () => {
? () => handleEditQuantity(item) ? () => handleEditQuantity(item)
: editdelete === 'Delete' : editdelete === 'Delete'
? () => removeFromCart(item) ? () => removeFromCart(item)
: () => { } : () => {}
} }
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""} // onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
className={`${item?.SalesId && OrderType !== 'Hold' className={`${
? 'BSBill-Table7-content-disabled' item?.SalesId && OrderType !== 'Hold'
: 'BSBill-Table7-content' ? 'BSBill-Table7-content-disabled'
} : 'BSBill-Table7-content'
}
`} `}
> >
@ -2274,21 +2275,21 @@ const BSBillingTable7 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -2367,27 +2368,27 @@ const BSBillingTable7 = () => {
? item?.SalesId ? item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: BookingType === 'Dine In' && : BookingType === 'Dine In' &&
triggerAnimation &&
OldtableDataTakeAway?.length + index === 0 &&
!item?.SalesId &&
tableDataDinein?.length >= PreviousdataLength
? 'wheat'
: BookingType !== 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataTakeAway?.length + index === 0 && OldtableDataTakeAway?.length + index === 0 &&
tableDataDinein?.length >= !item?.SalesId &&
PreviousdataLength && tableDataDinein?.length >= PreviousdataLength
!HoldOrderDtl && ? 'wheat'
!UnpaidData : BookingType !== 'Dine In' &&
triggerAnimation &&
OldtableDataTakeAway?.length + index === 0 &&
tableDataDinein?.length >=
PreviousdataLength &&
!HoldOrderDtl &&
!UnpaidData
? 'wheat' ? 'wheat'
: 'inherit' : 'inherit'
: 'none', : 'none',
background: item?.SalesId background: item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + ' ' + item?.BookingTypeName item?.InwardDtlId + ' ' + item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: (OldtableDataTakeAway?.length + index) % 2 === 0 : (OldtableDataTakeAway?.length + index) % 2 === 0
? 'white' ? 'white'
@ -2412,14 +2413,15 @@ const BSBillingTable7 = () => {
? () => handleEditQuantity(item) ? () => handleEditQuantity(item)
: editdelete === 'Delete' : editdelete === 'Delete'
? () => removeFromCart(item) ? () => removeFromCart(item)
: () => { } : () => {}
} }
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""} // onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
className={`${item?.SalesId className={`${
? 'BSBill-Table7-content-disabled' item?.SalesId
: 'BSBill-Table7-content' ? 'BSBill-Table7-content-disabled'
} : 'BSBill-Table7-content'
}
`} `}
> >
@ -2499,21 +2501,21 @@ const BSBillingTable7 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -2592,43 +2594,43 @@ const BSBillingTable7 = () => {
? BookingType === 'Dine In' && item?.SalesId ? BookingType === 'Dine In' && item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: BookingType === 'Dine In' && : BookingType === 'Dine In' &&
triggerAnimation &&
OldtableDataDinein?.length +
OldtableDataTakeAway?.length +
index ===
0 &&
!item?.SalesId &&
tableDataTakeAway?.length >= PreviousdataLength
? 'wheat'
: BookingType !== 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataDinein?.length + OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index === index ===
0 && 0 &&
tableDataTakeAway?.length >= !item?.SalesId &&
PreviousdataLength && tableDataTakeAway?.length >= PreviousdataLength
!HoldOrderDtl && ? 'wheat'
!UnpaidData : BookingType !== 'Dine In' &&
triggerAnimation &&
OldtableDataDinein?.length +
OldtableDataTakeAway?.length +
index ===
0 &&
tableDataTakeAway?.length >=
PreviousdataLength &&
!HoldOrderDtl &&
!UnpaidData
? 'wheat' ? 'wheat'
: (OldtableDataDinein?.length + : (OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.[ : SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
? SelectedBillColor?.[ ? SelectedBillColor?.[
'OverallBackgroundColor' 'OverallBackgroundColor'
] ]
: '#d6d6d6' : '#d6d6d6'
: (OldtableDataDinein?.length + : (OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.['OverallBackgroundColor'] ? SelectedBillColor?.['OverallBackgroundColor']
@ -2637,15 +2639,15 @@ const BSBillingTable7 = () => {
BookingType === 'Dine In' && item?.SalesId BookingType === 'Dine In' && item?.SalesId
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + ' ' + item?.BookingTypeName item?.InwardDtlId + ' ' + item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: (OldtableDataDinein?.length + : (OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.['OverallBackgroundColor'] ? SelectedBillColor?.['OverallBackgroundColor']
@ -2654,9 +2656,9 @@ const BSBillingTable7 = () => {
BillOrderPre === 'Y' && !BookingTypeBoth BillOrderPre === 'Y' && !BookingTypeBoth
? triggerAnimation && ? triggerAnimation &&
OldtableDataDinein?.length + OldtableDataDinein?.length +
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
index === index ===
0 && 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataTakeAway?.length >= PreviousdataLength && tableDataTakeAway?.length >= PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
@ -2673,21 +2675,22 @@ const BSBillingTable7 = () => {
onClick={ onClick={
editdelete === 'Edit' editdelete === 'Edit'
? () => ? () =>
item.Type == 'P' || item.Type == 'C' item.Type == 'P' || item.Type == 'C'
? handleEditQuantity(item)
: item.ServiceType == 'G'
? handleEditQuantity(item) ? handleEditQuantity(item)
: '' : item.ServiceType == 'G'
? handleEditQuantity(item)
: ''
: editdelete === 'Delete' : editdelete === 'Delete'
? () => removeFromCart(item) ? () => removeFromCart(item)
: () => { } : () => {}
} }
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""} // onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
className={`${BookingType === 'Dine In' && item?.SalesId className={`${
? 'BSBill-Table7-content-disabled' BookingType === 'Dine In' && item?.SalesId
: 'BSBill-Table7-content' ? 'BSBill-Table7-content-disabled'
} : 'BSBill-Table7-content'
}
`} `}
> >
@ -2747,8 +2750,8 @@ const BSBillingTable7 = () => {
{!item?.ProdVariantName?.toLowerCase()?.includes( {!item?.ProdVariantName?.toLowerCase()?.includes(
'variant' 'variant'
) && ( ) && (
<span>{item?.ProdVariantName} </span> <span>{item?.ProdVariantName} </span>
)} )}
{item?.Size} {item?.Size}
{item?.SinglePc == 'Y' {item?.SinglePc == 'Y'
? 'PCS' ? 'PCS'
@ -2782,21 +2785,21 @@ const BSBillingTable7 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (
@ -2877,45 +2880,45 @@ const BSBillingTable7 = () => {
!BookingTypeBoth !BookingTypeBoth
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: BookingType === 'Dine In' && : BookingType === 'Dine In' &&
triggerAnimation &&
OldtableDataTakeAway?.length +
OldtableDataDinein?.length +
tableDataTakeAway?.length +
index ===
0 &&
!item?.SalesId &&
tableDataDinein?.length >= PreviousdataLength
? 'wheat'
: BookingType !== 'Dine In' &&
triggerAnimation && triggerAnimation &&
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
OldtableDataDinein?.length + OldtableDataDinein?.length +
tableDataTakeAway?.length + tableDataTakeAway?.length +
index === index ===
0 && 0 &&
tableDataDinein?.length >= !item?.SalesId &&
PreviousdataLength && tableDataDinein?.length >= PreviousdataLength
!HoldOrderDtl && ? 'wheat'
!UnpaidData : BookingType !== 'Dine In' &&
triggerAnimation &&
OldtableDataTakeAway?.length +
OldtableDataDinein?.length +
tableDataTakeAway?.length +
index ===
0 &&
tableDataDinein?.length >=
PreviousdataLength &&
!HoldOrderDtl &&
!UnpaidData
? 'wheat' ? 'wheat'
: 'inherit' : 'inherit'
: 'none', : 'none',
background: background:
BookingType === 'Dine In' && BookingType === 'Dine In' &&
item?.SalesId && item?.SalesId &&
!BookingTypeBoth !BookingTypeBoth
? 'rgb(243, 248, 213)' ? 'rgb(243, 248, 213)'
: GlobEstBooking === 'ParEst' && : GlobEstBooking === 'ParEst' &&
GlobProdwisedata?.includes( GlobProdwisedata?.includes(
item?.InwardDtlId + ' ' + item?.BookingTypeName item?.InwardDtlId + ' ' + item?.BookingTypeName
) )
? '#b2d1f7' ? '#b2d1f7'
: (OldtableDataTakeAway?.length + : (OldtableDataTakeAway?.length +
OldtableDataDinein?.length + OldtableDataDinein?.length +
tableDataTakeAway?.length + tableDataTakeAway?.length +
index) % index) %
2 === 2 ===
0 0
? 'white' ? 'white'
: SelectedBillColor?.['OverallBackgroundColor'] : SelectedBillColor?.['OverallBackgroundColor']
? SelectedBillColor?.['OverallBackgroundColor'] ? SelectedBillColor?.['OverallBackgroundColor']
@ -2924,10 +2927,10 @@ const BSBillingTable7 = () => {
BillOrderPre === 'Y' && !BookingTypeBoth BillOrderPre === 'Y' && !BookingTypeBoth
? triggerAnimation && ? triggerAnimation &&
OldtableDataTakeAway?.length + OldtableDataTakeAway?.length +
OldtableDataDinein?.length + OldtableDataDinein?.length +
tableDataTakeAway?.length + tableDataTakeAway?.length +
index === index ===
0 && 0 &&
!item?.SalesId && !item?.SalesId &&
tableDataDinein?.length >= PreviousdataLength && tableDataDinein?.length >= PreviousdataLength &&
!HoldOrderDtl && !HoldOrderDtl &&
@ -2947,14 +2950,15 @@ const BSBillingTable7 = () => {
? () => handleEditQuantity(item) ? () => handleEditQuantity(item)
: editdelete === 'Delete' : editdelete === 'Delete'
? () => removeFromCart(item) ? () => removeFromCart(item)
: () => { } : () => {}
} }
// onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""} // onClick={editdelete === "Edit" ? () => handleEditQuantity(item) : editdelete === "Delete" ? () => removeFromCart(item) : ""}
className={`${BookingType === 'Dine In' && item?.SalesId className={`${
? 'BSBill-Table7-content-disabled' BookingType === 'Dine In' && item?.SalesId
: 'BSBill-Table7-content' ? 'BSBill-Table7-content-disabled'
} : 'BSBill-Table7-content'
}
`} `}
> >
@ -3038,21 +3042,21 @@ const BSBillingTable7 = () => {
{productBasedExtraCharges?.find( {productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
) !== undefined && ( ) !== undefined && (
<div <div
style={{ style={{
fontSize: '10px', fontSize: '10px',
fontWeight: '500', fontWeight: '500',
whiteSpace: 'nowrap', whiteSpace: 'nowrap',
}} }}
> >
Extra Charges :{' '} Extra Charges :{' '}
{ {
productBasedExtraCharges?.find( productBasedExtraCharges?.find(
(find) => find.ProdId === item.ProdId (find) => find.ProdId === item.ProdId
)?.TotalAmt )?.TotalAmt
} }
</div> </div>
)} )}
</td> </td>
)} )}
{tableitem.OptionName == 'MRP' && ( {tableitem.OptionName == 'MRP' && (

View File

@ -205,9 +205,8 @@ const OtherServicePrintStyle1 = lazy(
() => () =>
import('../../../PrintTemplates/ThermalPrinter/OtherServicePrintStyle1.jsx') import('../../../PrintTemplates/ThermalPrinter/OtherServicePrintStyle1.jsx')
); );
const OtherServiceMobilePrint = lazy( import OtherServiceMobilePrint from '../../BookingFunctionality/OtherServiceMobilePrint.jsx';
() => import('../../BookingFunctionality/OtherServiceMobilePrint.jsx')
);
const QrinScreen = lazy( const QrinScreen = lazy(
() => import('../../BookingFunctionality/DynamicScreenQr.jsx') () => import('../../BookingFunctionality/DynamicScreenQr.jsx')
); );
@ -3605,13 +3604,6 @@ const StandardTablePayment = () => {
title="Share on WhatsApp" title="Share on WhatsApp"
/> />
)} )}
{/* <FaPrint
size={32}
color="#1292EE"
style={{ cursor: 'pointer' }}
onClick={handlePrintOrToken}
title="Print"
/> */}
{(filteredSettingNames?.includes('Print') || {(filteredSettingNames?.includes('Print') ||
!MobileNoWhatsApp || !MobileNoWhatsApp ||
@ -4196,30 +4188,27 @@ const StandardTablePayment = () => {
} }
/> />
)} )}
{ {OtherServicesPrintDetails?.length > 0 && (
OtherServicesPrintDetails?.length > 0 && ( // PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
// PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => ( <div style={{ display: 'none' }}>
<div style={{ display: 'none' }}> <OtherServicePrintStyle1
<OtherServicePrintStyle1 // index={index}
// index={index} table2Data={OtherServicesPrintDetails}
table2Data={OtherServicesPrintDetails} singleData2={OtherServicesPrintDetails?.productDetails}
singleData2={OtherServicesPrintDetails?.productDetails} orderId={
orderId={ OtherServicesPrintDetails?.OrderId &&
OtherServicesPrintDetails?.OrderId && extractLastNumberOrderId(
extractLastNumberOrderId( OtherServicesPrintDetails?.OrderId,
OtherServicesPrintDetails?.OrderId, OtherServicesPrintDetails?.FYStatus
OtherServicesPrintDetails?.FYStatus )
) }
} CreatedDate={OtherServicesPrintDetails?.CreatedDate}
CreatedDate={OtherServicesPrintDetails?.CreatedDate} PaymentStatus={OtherServicesPrintDetails?.[0]?.PaymentOrderDtl}
PaymentStatus={OtherServicesPrintDetails?.[0]?.PaymentOrderDtl} Preference={preferenceDatas}
Preference={preferenceDatas} printDatas={printDatas}
printDatas={printDatas} />
/> </div>
</div> )}
)
// ))
}
</div> </div>
</Suspense> </Suspense>
); );

View File

@ -1,6 +1,5 @@
import React, { import React, {
lazy, lazy,
Suspense,
useCallback, useCallback,
useEffect, useEffect,
useRef, useRef,
@ -11,13 +10,9 @@ import { useDispatch, useSelector } from 'react-redux';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { TiLocation } from 'react-icons/ti'; import { TiLocation } from 'react-icons/ti';
import { BsFillPersonFill } from 'react-icons/bs'; import { BsFillPersonFill } from 'react-icons/bs';
import { PiStorefrontFill } from 'react-icons/pi';
import { BiSolidDashboard, BiSolidReport } from 'react-icons/bi'; import { BiSolidDashboard, BiSolidReport } from 'react-icons/bi';
import { FaUserLarge } from 'react-icons/fa6';
import { BiSolidPhoneCall } from 'react-icons/bi';
import { CgMenuGridR } from 'react-icons/cg'; import { CgMenuGridR } from 'react-icons/cg';
import { MdTableChart } from 'react-icons/md'; import { MdTableChart } from 'react-icons/md';
import { MdEdit } from 'react-icons/md';
import MyTime, { DateDisplay, TimeDisplay } from './BSTimer.jsx'; import MyTime, { DateDisplay, TimeDisplay } from './BSTimer.jsx';
import '../../../../Styles/BookingScreen/Template/BSLayout7/BSC1NavBar.scss'; import '../../../../Styles/BookingScreen/Template/BSLayout7/BSC1NavBar.scss';
import { import {
@ -31,7 +26,6 @@ import {
sessionStore, sessionStore,
} from '../../../../Services/Others'; } from '../../../../Services/Others';
import PozoHomeIcon from '../UtillComponents/Pozo retail icons/PozoHomeIcon.jsx'; import PozoHomeIcon from '../UtillComponents/Pozo retail icons/PozoHomeIcon.jsx';
import { GlobalCompBranchData } from '../../../../Features/BrachLogin/BranchLogin.js';
import { isMobile } from 'react-device-detect'; import { isMobile } from 'react-device-detect';
import { FaDisplay } from 'react-icons/fa6'; import { FaDisplay } from 'react-icons/fa6';
import { import {
@ -233,166 +227,161 @@ const BSC1NavBar = () => {
} }
}, [isFullscreen]); }, [isFullscreen]);
return ( return (
<Suspense fallback={<div>Loading...</div>}> <>
<> <div
<div className="BSC1NavBar-Container"
className="BSC1NavBar-Container" style={{
style={{ // backgroundColor:
// backgroundColor: // BSComboData?.BookingLayout?.[0] === 'Combo1'
// BSComboData?.BookingLayout?.[0] === 'Combo1' // ? '#645CAA'
// ? '#645CAA' // : '#08A7B8',
// : '#08A7B8', background: 'linear-gradient(to bottom right, #1e2536, #2a3447)',
background: 'linear-gradient(to bottom right, #1e2536, #2a3447)', }}
}} >
> <div className="BSC1NavBar-div1">
<div className="BSC1NavBar-div1"> <div className="BSC1NavBar-manu">
<div className="BSC1NavBar-manu"> <Popconfirm
<Popconfirm title="Are you sure you want to go to home?"
title="Are you sure you want to go to home?" onConfirm={handleHome}
onConfirm={handleHome} okText="Yes"
okText="Yes" cancelText="No"
cancelText="No" >
> <PozoHomeIcon
<PozoHomeIcon style={{ color: '#1292EE', fontSize: '30px' }}
style={{ color: '#1292EE', fontSize: '30px' }} className="BSC1NavBar-manu-icon"
className="BSC1NavBar-manu-icon"
/>
</Popconfirm>{' '}
<div
className={`BSC1NavBar-manu-content ${menu ? 'BSC1NavBar-manu-menu' : ''}`}
>
<div className="BSC1NavBar-manu-div">
<TooltipWrapper
placement="right"
title="DashBoard"
isMobile={isMobile}
>
<BiSolidDashboard className="BSC1Nav-menu-icon" />
</TooltipWrapper>
<TooltipWrapper
placement="right"
title="Booking / Sale"
isMobile={isMobile}
>
<CgMenuGridR className="BSC1Nav-menu-icon" />
</TooltipWrapper>
<TooltipWrapper
placement="right"
title="TableBooking"
isMobile={isMobile}
>
<MdTableChart className="BSC1Nav-menu-icon" />
</TooltipWrapper>
<TooltipWrapper
placement="right"
title="Report"
isMobile={isMobile}
>
<BiSolidReport className="BSC1Nav-menu-icon" />
</TooltipWrapper>
</div>
</div>
</div>
<div className="BSC1NavBar-name">
{/* <PiStorefrontFill className="BSC1NavBar-name-icon" /> */}
<TooltipWrapper placement="bottom" title={branchData.branchName}>
<span className="BSC1NavBar-ellipsisname">
{branchData.branchName}
</span>{' '}
</TooltipWrapper>
{branchData.city && (
<span className="BSC1NavBar-location">
{' '}
<MemoTiLocation />
<span className="BSC1NavBar-name-ellipsis">
{branchData.city}
</span>{' '}
</span>
)}
</div>
<div className="BSC1NavBar-name">
{ScanLayoutScreen?.SettingValue === 'Y' && (
<span className="BSC1NavBarlocation">
<BSScanTemplate />
</span>
)}
</div>
<div></div>
</div>
<div className="BSC1NavBar-div2">
<div className="BSC1NavBar-date">
{/* {formattedDate} */}
<TimeDisplay />
<DateDisplay />
</div>
<Tooltip title={isFullscreen ? 'Exit Full Screen' : 'Full Screen'}>
<div
className={
isFullscreen
? 'BsNavbar1FullScreenExit'
: 'BsNavbar1FullScreen'
}
onClick={handleFullscreen}
>
{isFullscreen ? <RiFullscreenExitFill /> : <RiFullscreenFill />}
</div>
</Tooltip>
{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',
}}
>
<FaDisplay color="#1292ee" size={18} />
</div>
</TooltipWrapper>
)}
{!isMobile && (
<div className="comboPrinterIcon">
<BSPrinterSetting />
</div>
)}
<div className="BSC1NavBar-person" onClick={UserAcc}>
<TooltipWrapper title="Account " isMobile={isMobile}>
<div className="myProfileIconDrDown">
<BsFillPersonFill className="BSC1NavBar-person-icon" />
<FaCaretDown />
</div>
</TooltipWrapper>
</div>
{isAccOpen && (
<BSNavBarUserInfo
isOpen={isAccOpen}
divRef={divRef}
BacktoLogin={BacktoLogin}
userProfileData={userProfileData}
handleEditProfile={handleEditProfile}
UserRelieveManager={<UserRelieveManager />}
Logout={Logout}
/> />
</Popconfirm>{' '}
<div
className={`BSC1NavBar-manu-content ${menu ? 'BSC1NavBar-manu-menu' : ''}`}
>
<div className="BSC1NavBar-manu-div">
<TooltipWrapper
placement="right"
title="DashBoard"
isMobile={isMobile}
>
<BiSolidDashboard className="BSC1Nav-menu-icon" />
</TooltipWrapper>
<TooltipWrapper
placement="right"
title="Booking / Sale"
isMobile={isMobile}
>
<CgMenuGridR className="BSC1Nav-menu-icon" />
</TooltipWrapper>
<TooltipWrapper
placement="right"
title="TableBooking"
isMobile={isMobile}
>
<MdTableChart className="BSC1Nav-menu-icon" />
</TooltipWrapper>
<TooltipWrapper
placement="right"
title="Report"
isMobile={isMobile}
>
<BiSolidReport className="BSC1Nav-menu-icon" />
</TooltipWrapper>
</div>
</div>
</div>
<div className="BSC1NavBar-name">
<TooltipWrapper placement="bottom" title={branchData.branchName}>
<span className="BSC1NavBar-ellipsisname">
{branchData.branchName}
</span>{' '}
</TooltipWrapper>
{branchData.city && (
<span className="BSC1NavBar-location">
{' '}
<MemoTiLocation />
<span className="BSC1NavBar-name-ellipsis">
{branchData.city}
</span>{' '}
</span>
)} )}
</div> </div>
<div className="BSC1NavBar-name">
{ScanLayoutScreen?.SettingValue === 'Y' && (
<span className="BSC1NavBarlocation">
<BSScanTemplate />
</span>
)}
</div>
<div></div>
</div> </div>
</> <div className="BSC1NavBar-div2">
</Suspense> <div className="BSC1NavBar-date">
{/* {formattedDate} */}
<TimeDisplay />
<DateDisplay />
</div>
<Tooltip title={isFullscreen ? 'Exit Full Screen' : 'Full Screen'}>
<div
className={
isFullscreen ? 'BsNavbar1FullScreenExit' : 'BsNavbar1FullScreen'
}
onClick={handleFullscreen}
>
{isFullscreen ? <RiFullscreenExitFill /> : <RiFullscreenFill />}
</div>
</Tooltip>
{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',
}}
>
<FaDisplay color="#1292ee" size={18} />
</div>
</TooltipWrapper>
)}
{!isMobile && (
<div className="comboPrinterIcon">
<BSPrinterSetting />
</div>
)}
<div className="BSC1NavBar-person" onClick={UserAcc}>
<TooltipWrapper title="Account " isMobile={isMobile}>
<div className="myProfileIconDrDown">
<BsFillPersonFill className="BSC1NavBar-person-icon" />
<FaCaretDown />
</div>
</TooltipWrapper>
</div>
{isAccOpen && (
<BSNavBarUserInfo
isOpen={isAccOpen}
divRef={divRef}
BacktoLogin={BacktoLogin}
userProfileData={userProfileData}
handleEditProfile={handleEditProfile}
UserRelieveManager={<UserRelieveManager />}
Logout={Logout}
/>
)}
</div>
</div>
</>
); );
}; };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
import React, { lazy, Suspense } from 'react'; import React, { lazy } from 'react';
import { MdEdit } from 'react-icons/md'; import { MdEdit } from 'react-icons/md';
import { FaUserLarge } from 'react-icons/fa6'; import { FaUserLarge } from 'react-icons/fa6';
import { BiSolidPhoneCall } from 'react-icons/bi'; import { BiSolidPhoneCall } from 'react-icons/bi';
@ -39,67 +39,65 @@ const BSNavBarUserInfo = ({
navigate(`${subDirectory}app-page/branch-login`); navigate(`${subDirectory}app-page/branch-login`);
}; };
return ( return (
<Suspense fallback={<NavbarSkeleton />}> <div ref={divRef} className="BSNavBar1-Accmenu">
<div ref={divRef} className="BSNavBar1-Accmenu"> <div className="BSNavBar1-Acc-menu">
<div className="BSNavBar1-Acc-menu"> {CompBranchData?.length > 1 && (
{CompBranchData?.length > 1 && ( <div onClick={BacktoLogin}>
<div onClick={BacktoLogin}> <p className="BSNavBar1-Acc-menu-list">Back to Signin</p>
<p className="BSNavBar1-Acc-menu-list">Back to Signin</p> </div>
</div> )}
)} <div className="salesUserProfile" style={{ position: 'relative' }}>
<div className="salesUserProfile" style={{ position: 'relative' }}> <div
<div style={{
position: 'absolute',
top: '5px',
right: '5px',
cursor: 'pointer',
display: 'flex',
justifyContent: 'flex-end',
gap: '1rem',
}}
>
{/* {UserType != 'Employee' && */}
<MdEdit size={16} onClick={handleEditProfile} />
{/* } */}
<UserRelieveManager />
</div>
<img
src={
userProfileData?.UserImage && userProfileData.UserImage !== ''
? userProfileData.UserImage
: user
}
alt={userProfileData?.UserName || 'User'}
onError={(e) => {
e.target.onerror = null;
e.target.src = user;
}}
/>
<div>
<FaUserLarge size={14} /> {userProfileData?.UserName || 'Name'}
<p
style={{ style={{
position: 'absolute', fontSize: '12px',
top: '5px', textTransform: 'uppercase',
right: '5px', color: '#0b53b3',
cursor: 'pointer', fontWeight: '500',
display: 'flex',
justifyContent: 'flex-end',
gap: '1rem',
}} }}
> >
{/* {UserType != 'Employee' && */} ({UserType})
<MdEdit size={16} onClick={handleEditProfile} />
{/* } */}
<UserRelieveManager />
</div>
<img
src={
userProfileData?.UserImage && userProfileData.UserImage !== ''
? userProfileData.UserImage
: user
}
alt={userProfileData?.UserName || 'User'}
onError={(e) => {
e.target.onerror = null;
e.target.src = user;
}}
/>
<div>
<FaUserLarge size={14} /> {userProfileData?.UserName || 'Name'}
<p
style={{
fontSize: '12px',
textTransform: 'uppercase',
color: '#0b53b3',
fontWeight: '500',
}}
>
({UserType})
</p>
</div>
<div>
<BiSolidPhoneCall size={16} />{' '}
{userProfileData?.MobileNo || 'Number'}
</div>
<p className="BSNavBar1-Acc-menu-list" onClick={Logout}>
Sign Out <PiSignOutLight size={16} strokeWidth={10} />
</p> </p>
</div> </div>
<div>
<BiSolidPhoneCall size={16} />{' '}
{userProfileData?.MobileNo || 'Number'}
</div>
<p className="BSNavBar1-Acc-menu-list" onClick={Logout}>
Sign Out <PiSignOutLight size={16} strokeWidth={10} />
</p>
</div> </div>
</div> </div>
</Suspense> </div>
); );
}; };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,19 +1,34 @@
import { extractLastNumber, getSession } from '../../../../Services/Others'; import { extractLastNumber, getSession } from '../../../../Services/Others';
import moment from 'moment'; import moment from 'moment';
const OtherServiceMobilePrint = async (PrintDetails, Mode, Preference, Token) => { const OtherServiceMobilePrint = async (
PrintDetails,
console.log(PrintDetails, Mode, Preference, Token, PrintDetails?.[0]?.OtherServicesTicketDetails,'PrintDetails, UpiId, Mode, Preference, Token'); Mode,
Preference,
Token
) => {
console.log(
PrintDetails,
Mode,
Preference,
Token,
PrintDetails?.[0]?.OtherServicesTicketDetails,
'PrintDetails, UpiId, Mode, Preference, Token'
);
let Otherservicesdetails = PrintDetails?.[0]?.OtherServicesTicketDetails; let Otherservicesdetails = PrintDetails?.[0]?.OtherServicesTicketDetails;
let Otherservicesdetails1 = PrintDetails; let Otherservicesdetails1 = PrintDetails;
let UpiId = PrintDetails?.[0]?.TicketNo; let UpiId = PrintDetails?.[0]?.TicketNo;
let PrintDetail; let PrintDetail;
let PaymentDetail; let PaymentDetail;
let PrintLogo = Preference?.[0]?.SettingDtlDetails?.filter((i) => i.SettingIdName === 'PrintLogo' )?.[0]; let PrintLogo = Preference?.[0]?.SettingDtlDetails?.filter(
let PrintGreeting = Preference?.[0]?.SettingDtlDetails?.filter((i) => i.SettingIdName === 'PrintGreetings' )?.[0]; (i) => i.SettingIdName === 'PrintLogo'
)?.[0];
let PrintGreeting = Preference?.[0]?.SettingDtlDetails?.filter(
(i) => i.SettingIdName === 'PrintGreetings'
)?.[0];
if (Mode === 'Reprint') { if (Mode === 'Reprint') {
PrintDetail = PrintDetails?.[0]?.OtherServicesTicketDetails; PrintDetail = PrintDetails?.[0]?.OtherServicesTicketDetails;
PaymentDetail = PrintDetails?.[0]?.OtherServicesTicketDetails; PaymentDetail = PrintDetails?.[0]?.OtherServicesTicketDetails;
@ -31,12 +46,12 @@ let UpiId = PrintDetails?.[0]?.TicketNo;
let FooterPrint = ''; let FooterPrint = '';
let OrderId; let OrderId;
let receiptTextest = ''; let receiptTextest = '';
let totalAmt = PrintDetail?.[0]?.NetAmount let totalAmt = PrintDetail?.[0]?.NetAmount;
// let totalestAmt = PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount // let totalestAmt = PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount
// ? PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount // ? PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount
// : ''; // : '';
OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
? extractLastNumber(PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId) ? extractLastNumber(PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId)
: ''; : '';
const aggregatedPayments = PaymentDetail?.reduce((acc, paymentdata) => { const aggregatedPayments = PaymentDetail?.reduce((acc, paymentdata) => {
@ -133,7 +148,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
} else { } else {
TokenDataSales = [false]; TokenDataSales = [false];
} }
if (Mode !== 'TableBooking' && Token !== 'WithOutToken') { if (Mode !== 'TableBooking' && Token !== 'WithOutToken') {
let TokenData2 = []; // Array to store final grouped data let TokenData2 = []; // Array to store final grouped data
let groups = {}; // Temporary object to group products by their counter let groups = {}; // Temporary object to group products by their counter
@ -217,7 +232,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
// (item) => item?.BookingTypeName?.toLowerCase() === 'takeaway' // (item) => item?.BookingTypeName?.toLowerCase() === 'takeaway'
// ); // );
let Takeawaydata = PrintDetails; let Takeawaydata = PrintDetails;
console.log(Takeawaydata, 'TakeawaydataTakeawaydata'); console.log(Takeawaydata, 'TakeawaydataTakeawaydata');
let Dineindata = PrintDetails?.productDetails?.filter( let Dineindata = PrintDetails?.productDetails?.filter(
(item) => item?.BookingTypeName?.toLowerCase() === 'dine in' (item) => item?.BookingTypeName?.toLowerCase() === 'dine in'
@ -265,7 +280,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
} }
let fulltakeawaydata; let fulltakeawaydata;
let fulldineindata; let fulldineindata;
if (Otherservicesdetails?.length > 0) { if (Otherservicesdetails?.length > 0) {
// Check if TakeawayTotalOfferAmt is greater than zero // Check if TakeawayTotalOfferAmt is greater than zero
const isDiscountApplicable = 0; const isDiscountApplicable = 0;
@ -274,15 +289,15 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
const snoSpacing = Math.max(0, 3 - String(index + 1).length); const snoSpacing = Math.max(0, 3 - String(index + 1).length);
const rateSpacing = Math.max(0, 6 - String(data?.Rate).length); const rateSpacing = Math.max(0, 6 - String(data?.Rate).length);
const qtySpacing = Math.max(0, 3 - String(data?.Qty).length); const qtySpacing = Math.max(0, 3 - String(data?.Qty).length);
const totalAmtSpacing = Math.max(0,1 - String(data?.TotalAmount).length); const totalAmtSpacing = Math.max(
0,
1 - String(data?.TotalAmount).length
);
let formattedString = let formattedString =
' '.repeat(snoSpacing) + ' '.repeat(snoSpacing) +
parseInt(index + 1) + parseInt(index + 1) +
' ' + ' ' +
(data?.ServiceName + ' '.repeat(20)).substring(0, 20) +
(
data?.ServiceName + ' '.repeat(20)
).substring(0, 20) +
' ' + ' ' +
' '.repeat(qtySpacing) + ' '.repeat(qtySpacing) +
String(data?.Qty); String(data?.Qty);
@ -294,7 +309,6 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
' '.repeat(rateSpacing) + ' '.repeat(rateSpacing) +
String(data?.Rate) + String(data?.Rate) +
' ' + ' ' +
' '.repeat(totalAmtSpacing) + ' '.repeat(totalAmtSpacing) +
String(data?.TotalAmount) + String(data?.TotalAmount) +
' ' + ' ' +
@ -337,10 +351,10 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
'S.No' + 'S.No' +
' ' + ' ' +
' Name ' + ' Name ' +
(' ') + ' ' +
' ' + ' ' +
'Qty ' + 'Qty ' +
('') + // Add Disc column conditionally '' + // Add Disc column conditionally
' ' + ' ' +
'Rate ' + 'Rate ' +
' ' + ' ' +
@ -357,44 +371,43 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
} else { } else {
fulltakeawaydata = ''; fulltakeawaydata = '';
} }
// PAYEMENT TYPE NAME // PAYEMENT TYPE NAME
let PaymentType; let PaymentType;
PaymentType = PaymentType =
'[C]<b><u>' + '[C]<b><u>' +
Otherservicesdetails1?.[0]?.PaymentTypeName + Otherservicesdetails1?.[0]?.PaymentTypeName +
' ' + ' ' +
'Bill' + 'Bill' +
'</u></b>\n'; '</u></b>\n';
// BRANCJ DETAILS // BRANCJ DETAILS
let BranchAddress; let BranchAddress;
// if (Otherservicesdetails1) { // if (Otherservicesdetails1) {
if ( if (
Otherservicesdetails1?.[0]?.Address1 !== null && Otherservicesdetails1?.[0]?.Address1 !== null &&
Otherservicesdetails1?.[0]?.Address1 !== undefined && Otherservicesdetails1?.[0]?.Address1 !== undefined &&
Otherservicesdetails1?.[0]?.City !== null && Otherservicesdetails1?.[0]?.City !== null &&
Otherservicesdetails1?.[0]?.City !== undefined Otherservicesdetails1?.[0]?.City !== undefined
) { ) {
BranchAddress = BranchAddress =
'[C]' + '[C]' +
Otherservicesdetails1?.[0]?.Address1 + Otherservicesdetails1?.[0]?.Address1 +
',\n' + ',\n' +
'[C]' + '[C]' +
Otherservicesdetails1?.[0]?.City + Otherservicesdetails1?.[0]?.City +
'-' + '-' +
Otherservicesdetails1?.[0]?.Zip + Otherservicesdetails1?.[0]?.Zip +
'\n'; '\n';
} else if ( } else if (
Otherservicesdetails1?.[0]?.Address1 !== null && Otherservicesdetails1?.[0]?.Address1 !== null &&
Otherservicesdetails1?.[0]?.Address1 !== undefined Otherservicesdetails1?.[0]?.Address1 !== undefined
) { ) {
BranchAddress = BranchAddress = '[C]' + Otherservicesdetails1?.[0]?.Address1 + '\n';
'[C]' + Otherservicesdetails1?.[0]?.Address1 + '\n'; } else {
} else { BranchAddress = '';
BranchAddress = ''; }
}
// } else { // } else {
// BranchAddress = ''; // BranchAddress = '';
// } // }
@ -405,7 +418,8 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
Otherservicesdetails1?.[0]?.BrMobile !== undefined && Otherservicesdetails1?.[0]?.BrMobile !== undefined &&
Otherservicesdetails1?.[0]?.BrMobile !== '' Otherservicesdetails1?.[0]?.BrMobile !== ''
) { ) {
MobileNumber = '[C]<b>Ph:' + Otherservicesdetails1?.[0]?.BrMobileNo + '</b>\n'; MobileNumber =
'[C]<b>Ph:' + Otherservicesdetails1?.[0]?.BrMobileNo + '</b>\n';
} else { } else {
MobileNumber = ''; MobileNumber = '';
} }
@ -436,9 +450,9 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
"[C]<b><font size='big'>" + "[C]<b><font size='big'>" +
Otherservicesdetails1?.[0]?.BranchName + Otherservicesdetails1?.[0]?.BranchName +
'</font></b>\n' + '</font></b>\n' +
// AppSpecificName + // AppSpecificName +
BranchAddress + BranchAddress +
// GST + // GST +
MobileNumber + MobileNumber +
'[C]\n' + '[C]\n' +
PaymentType + PaymentType +
@ -448,27 +462,27 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
OrderDate + OrderDate +
'</b>\n' + '</b>\n' +
fulltakeawaydata + fulltakeawaydata +
// fulldineindata + // fulldineindata +
// finalinfo + // finalinfo +
'\n' + '\n' +
// '[C]------------------------------------------------\n' + // '[C]------------------------------------------------\n' +
// Gstdetails + // Gstdetails +
// GstHeader + // GstHeader +
// GstBreakup.join('') + // GstBreakup.join('') +
// IGstHeader + // IGstHeader +
// IGstBreakup.join('') + // IGstBreakup.join('') +
// VATHeader + // VATHeader +
// VATBreakup.join('') + // VATBreakup.join('') +
// GstdetailsLines + // GstdetailsLines +
"[C]<b><font size='normal'>" + "[C]<b><font size='normal'>" +
'Bill Amt: ' + 'Bill Amt: ' +
parseFloat(Otherservicesdetails1?.[0]?.BillAmount).toFixed(2) + parseFloat(Otherservicesdetails1?.[0]?.BillAmount).toFixed(2) +
'</font></b>\n' + '</font></b>\n' +
"[C]<b><font size='normal'>" + "[C]<b><font size='normal'>" +
'Tax: ' + 'Tax: ' +
parseFloat(Otherservicesdetails1?.[0]?.TaxAmount).toFixed(2) + parseFloat(Otherservicesdetails1?.[0]?.TaxAmount).toFixed(2) +
'</font></b>\n' + '</font></b>\n' +
"[C]<b><font size='normal'>" + "[C]<b><font size='normal'>" +
'Amount: ' + 'Amount: ' +
parseFloat(Otherservicesdetails1?.[0]?.NetAmount).toFixed(2) + parseFloat(Otherservicesdetails1?.[0]?.NetAmount).toFixed(2) +
'</font></b>\n' + '</font></b>\n' +
@ -478,17 +492,17 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
parseFloat(Otherservicesdetails1?.[0]?.NetAmount).toFixed(2) + parseFloat(Otherservicesdetails1?.[0]?.NetAmount).toFixed(2) +
'</font></b>\n' + '</font></b>\n' +
'[L]<b>------------------------------------------------</b>\n' + '[L]<b>------------------------------------------------</b>\n' +
// SplitPayment + // SplitPayment +
// CashierName + // CashierName +
// CustName + // CustName +
// waiterName + // waiterName +
"[C]<font size='normal'>YOUR ORDER NO:" + "[C]<font size='normal'>YOUR ORDER NO:" +
SalesId + SalesId +
'</font>\n\n'; '</font>\n\n';
// + // +
// thankyou // thankyou
console.log(receiptText, 'receiptTextreceiptTextreceiptTextreceiptText'); console.log(receiptText, 'receiptTextreceiptTextreceiptTextreceiptText');
// "[C]"+"Thank You ! Visit Again"+"\n" // "[C]"+"Thank You ! Visit Again"+"\n"
@ -519,7 +533,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
'ImgE' + 'ImgE' +
TypeCheck + TypeCheck +
'OthTypS' + 'OthTypS' +
"OtherService" + 'OtherService' +
'OthTypE' + 'OthTypE' +
'OthqrS' + 'OthqrS' +
UpiId + UpiId +
@ -547,6 +561,5 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
'HasFooterTextE' + 'HasFooterTextE' +
';end;'; ';end;';
} }
}; };
export default OtherServiceMobilePrint; export default OtherServiceMobilePrint;

View File

@ -1,11 +1,4 @@
import { import { useEffect, useRef, useState, useCallback, lazy } from 'react';
useEffect,
useRef,
useState,
useCallback,
lazy,
Suspense,
} from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux'; import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import moment from 'moment'; import moment from 'moment';
import { Form, Radio } from 'antd'; import { Form, Radio } from 'antd';
@ -2173,200 +2166,198 @@ const SplitPayment = (props) => {
} }
return ( return (
<Suspense fallback={<div>Loading...</div>}> <>
<> <Messages messageType={messageType} messageData={messageData} />
<Messages messageType={messageType} messageData={messageData} /> <div className="splitmodal">
<div className="splitmodal"> <DefaultModal
<DefaultModal open={Splitpayment}
open={Splitpayment} title="Split Payment"
title="Split Payment" handleCancel={() => {
handleCancel={() => { SplitSelPayMode[`PaymentStatus-0`] !== 'S' && HandleModalClose();
SplitSelPayMode[`PaymentStatus-0`] !== 'S' && HandleModalClose(); }}
}} footer={false}
footer={false} width={1000}
width={1000} className={'splitpaymentModal'}
className={'splitpaymentModal'} children={
children={ <div className="splitpaymentModal-content">
<div className="splitpaymentModal-content"> <p>Total Amount : {safeRound(TotalAmount)}</p>
<p>Total Amount : {safeRound(TotalAmount)}</p> <p>
<p> Remaining Balance :{' '}
Remaining Balance :{' '} {TotalAmount -
{TotalAmount - (isNaN(TotalSplitAmount) ? 0 : TotalSplitAmount)}{' '}
(isNaN(TotalSplitAmount) ? 0 : TotalSplitAmount)}{' '} </p>
</p>
<>{calculateField()}</> <>{calculateField()}</>
{TotalAmount > TotalSplitAmount && {TotalAmount > TotalSplitAmount &&
SplitSelPayMode[`PaymentStatus-${count}`] === 'S' && ( SplitSelPayMode[`PaymentStatus-${count}`] === 'S' && (
<Form.Item> <Form.Item>
<div <div
style={{
display: 'flex',
justifyContent: 'flex-end',
}}
>
<PlusOutlined
style={{ style={{
display: 'flex', backgroundColor: '#37943C',
justifyContent: 'flex-end', color: 'white',
borderRadius: '50px',
padding: '5px',
}} }}
> onClick={() => setCount(count + 1)}
<PlusOutlined />
style={{ </div>
backgroundColor: '#37943C', </Form.Item>
color: 'white', )}
borderRadius: '50px',
padding: '5px',
}}
onClick={() => setCount(count + 1)}
/>
</div>
</Form.Item>
)}
</div>
}
/>
</div>
{TotalAmount == 0 && Success && (
<div>
<QrComponent com={`WelcomeScreen**${branchName}`} />
</div>
)}
{TotalAmount > 0 &&
qrCode &&
PaymentUpiOptions?.length > 0 &&
SelUpiId && (
<div>
<QrComponent
com={`DisplayQRCodeScreen**upi://pay?pa=${SelUpiId}&pn=Bonrix&cu=INR&am=${TotalAmount}&pn=Bonrix%20Software%20Systems**${TotalAmount}**${SelUpiId}`}
/>
</div> </div>
)} }
/>
{PaymentUpiOptions?.length > 0 && OrderId && ( </div>
{TotalAmount == 0 && Success && (
<div>
<QrComponent com={`WelcomeScreen**${branchName}`} />
</div>
)}
{TotalAmount > 0 &&
qrCode &&
PaymentUpiOptions?.length > 0 &&
SelUpiId && (
<div> <div>
<QrComponent <QrComponent
com={`DisplaySuccessQRCodeScreen**...**${extractLastNumberOrderId(OrderId, PrintOrderDetails?.[0]?.OrderDetails?.[0]?.FYStatus)}**${Todaydate}`} com={`DisplayQRCodeScreen**upi://pay?pa=${SelUpiId}&pn=Bonrix&cu=INR&am=${TotalAmount}&pn=Bonrix%20Software%20Systems**${TotalAmount}**${SelUpiId}`}
/> />
</div> </div>
)} )}
{PrintOrderDetails?.length > 0 &&
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => ( {PaymentUpiOptions?.length > 0 && OrderId && (
<div style={{ display: 'none' }}> <div>
<PaymentPdfBooking <QrComponent
index={index} com={`DisplaySuccessQRCodeScreen**...**${extractLastNumberOrderId(OrderId, PrintOrderDetails?.[0]?.OrderDetails?.[0]?.FYStatus)}**${Todaydate}`}
table2Data={orderDetail} />
singleData2={orderDetail?.productDetails} </div>
orderId={ )}
orderDetail?.OrderId && {PrintOrderDetails?.length > 0 &&
extractLastNumberOrderId( PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
orderDetail?.OrderId,
orderDetail?.FYStatus
)
}
CreatedDate={orderDetail?.CreatedDate}
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
Preference={SettingDataSelector}
printDatas={printDatas}
/>
</div>
))}
{CreditCustomer && (
<div style={{ display: 'none' }}> <div style={{ display: 'none' }}>
<BsBillingCreditCustomer <PaymentPdfBooking
ModalCreditCustomer={CreditCustomer} index={index}
handlemodalclose={() => { table2Data={orderDetail}
handleCreditCustomer('Cancel'); singleData2={orderDetail?.productDetails}
}} orderId={
handleOk={() => { orderDetail?.OrderId &&
handleCreditCustomer('Submit'); extractLastNumberOrderId(
}} orderDetail?.OrderId,
SplitPayAmount={SplitSelPayMode[`PayAmount-${count}`]} orderDetail?.FYStatus
)
}
CreatedDate={orderDetail?.CreatedDate}
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
Preference={SettingDataSelector}
printDatas={printDatas}
/> />
</div> </div>
)} ))}
{PrintOrderDetails?.length > 0 && {CreditCustomer && (
(TokenOnly?.SettingValue === 'Y' || <div style={{ display: 'none' }}>
IndividualToken?.SettingValue === 'Y') && <BsBillingCreditCustomer
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => ( ModalCreditCustomer={CreditCustomer}
<div style={{ display: 'none' }}> handlemodalclose={() => {
<TokensinglePrint handleCreditCustomer('Cancel');
index={index}
table2Data={orderDetail}
singleData2={orderDetail?.productDetails}
orderId={
orderDetail?.OrderId &&
extractLastNumberOrderId(
orderDetail?.OrderId,
orderDetail?.FYStatus
)
}
CreatedDate={orderDetail?.CreatedDate}
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
/>
</div>
))}
{UpiOpen && (
<DefaultModal
open={UpiOpen}
title="UPI PAYMENT"
width={500}
handleCancel={() => {
Upimodel('Cancel');
}} }}
footer={false} handleOk={() => {
children={ handleCreditCustomer('Submit');
<div style={{ overflow: 'scroll' }}> }}
SplitPayAmount={SplitSelPayMode[`PayAmount-${count}`]}
/>
</div>
)}
{PrintOrderDetails?.length > 0 &&
(TokenOnly?.SettingValue === 'Y' ||
IndividualToken?.SettingValue === 'Y') &&
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
<div style={{ display: 'none' }}>
<TokensinglePrint
index={index}
table2Data={orderDetail}
singleData2={orderDetail?.productDetails}
orderId={
orderDetail?.OrderId &&
extractLastNumberOrderId(
orderDetail?.OrderId,
orderDetail?.FYStatus
)
}
CreatedDate={orderDetail?.CreatedDate}
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
/>
</div>
))}
{UpiOpen && (
<DefaultModal
open={UpiOpen}
title="UPI PAYMENT"
width={500}
handleCancel={() => {
Upimodel('Cancel');
}}
footer={false}
children={
<div style={{ overflow: 'scroll' }}>
<div
style={{
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-evenly',
alignItems: 'center',
}}
>
<div>
<QrinScreen Amount={CurrentPayAmount} UpiId={SelUpiId} />
</div>
<div>
<h1> RS :{CurrentPayAmount} </h1>
</div>
</div>
<div className="sentok">
{(selOption || SelCustId) && (
<div className="sentLink" onClick={onFinalSubmit}>
Sent Payment Link
<img
src={WpIcon}
alt="Your Alt Text"
style={{ width: '30px', height: '30px' }}
/>
</div>
)}
<div <div
style={{ style={{
display: 'flex', display: 'flex',
flexDirection: 'column', flexDirection: 'row-reverse',
justifyContent: 'space-evenly', width: '100px',
alignItems: 'center',
}} }}
> >
<div> <Buttons
<QrinScreen Amount={CurrentPayAmount} UpiId={SelUpiId} /> buttonText="OK"
</div> color="901D77"
icon={<ArrowRightOutlined />}
<div> handleSubmit={() => {
<h1> RS :{CurrentPayAmount} </h1> Upimodel('Submit');
</div>
</div>
<div className="sentok">
{(selOption || SelCustId) && (
<div className="sentLink" onClick={onFinalSubmit}>
Sent Payment Link
<img
src={WpIcon}
alt="Your Alt Text"
style={{ width: '30px', height: '30px' }}
/>
</div>
)}
<div
style={{
display: 'flex',
flexDirection: 'row-reverse',
width: '100px',
}} }}
> />
<Buttons
buttonText="OK"
color="901D77"
icon={<ArrowRightOutlined />}
handleSubmit={() => {
Upimodel('Submit');
}}
/>
</div>
</div> </div>
</div> </div>
} </div>
/> }
)} />
{addcustomer && ( )}
<FeaturesFunctionalities {addcustomer && (
handleAddCustomerCancel={handleAddCustomerCancel} <FeaturesFunctionalities
addcustomer={addcustomer} handleAddCustomerCancel={handleAddCustomerCancel}
/> addcustomer={addcustomer}
)} />
</> )}
</Suspense> </>
); );
}; };
export default SplitPayment; export default SplitPayment;

View File

@ -20,6 +20,7 @@ const AllSalesPageSettings = () => {
<> <>
<TooltipWrapper> <TooltipWrapper>
<div <div
className="allpageSettingIcon"
onClick={() => setsettingModal(true)} onClick={() => setsettingModal(true)}
style={{ style={{
cursor: 'pointer', cursor: 'pointer',
@ -61,7 +62,7 @@ const AllSalesPageSettings = () => {
<div className="SettingsComponentDiv"> <div className="SettingsComponentDiv">
{selectedComponent == 'Payment' && ( {selectedComponent == 'Payment' && (
<div> <div>
<PaymentOptions setModalOpen={setsettingModal}/> <PaymentOptions setModalOpen={setsettingModal} />
</div> </div>
)} )}

View File

@ -356,7 +356,7 @@ const BSLayout1 = () => {
{BookingNavbar != 'Navbar3' ? ( {BookingNavbar != 'Navbar3' ? (
<div <div
className="Layout-bill-container" className="Layout-bill-container"
style={{ marginTop: '9px' }} style={{ marginTop: '12px' }}
> >
<div <div
className="Layout-bill-Subcontainer" className="Layout-bill-Subcontainer"

View File

@ -342,9 +342,7 @@ const BSLayout2 = () => {
(AppExpDate?.RemainingDays <= 7 || (AppExpDate?.RemainingDays <= 7 ||
AppExpDate === 'undefined' || AppExpDate === 'undefined' ||
AppExpDate?.PlanType?.toLowerCase() === 'extend') && ( AppExpDate?.PlanType?.toLowerCase() === 'extend') && (
<Suspense fallback={<NavbarSkeleton />}> <PlanExpireNotification />
<PlanExpireNotification />
</Suspense>
)} )}
<div <div
className="BSLayout2-Master" className="BSLayout2-Master"

View File

@ -75,6 +75,7 @@ import {
StoredSessionData, StoredSessionData,
} from '../../../../Features/ThemeChange/ThemeChange.js'; } from '../../../../Features/ThemeChange/ThemeChange.js';
import './../../../../Styles/BookingScreen/Template/BSLayout7/Combo1.scss'; import './../../../../Styles/BookingScreen/Template/BSLayout7/Combo1.scss';
import '../../../../Styles/BookingScreen/Components/BSBillingTables/BSBillingTable6/BST6Payment.scss';
import { import {
GLobalSadminUserPin, GLobalSadminUserPin,
putSadminUserExit, putSadminUserExit,
@ -124,6 +125,7 @@ const VerfiedProducts = lazy(
); );
import ShortcutKeyHelper from '../../Components/UtillComponents/ShortcutKeyHelper.jsx'; import ShortcutKeyHelper from '../../Components/UtillComponents/ShortcutKeyHelper.jsx';
import PlanExpireNotification from '../PlanExpireNotification.jsx'; import PlanExpireNotification from '../PlanExpireNotification.jsx';
import CardSkeleton from '../../../../Components/Skeleton/CardSkeleton.jsx';
const subDirectory = import.meta.env.BASE_URL; const subDirectory = import.meta.env.BASE_URL;
const commonDirectory = import.meta.env.COMMON_BASE_URL; const commonDirectory = import.meta.env.COMMON_BASE_URL;
@ -361,7 +363,7 @@ export default function BSCombo1() {
handleClick(); handleClick();
}, []); }, []);
return ( return (
<Suspense fallback={<div>Loading...</div>}> <Suspense fallback={<CardSkeleton />}>
<> <>
<Messages <Messages
messageType={messageType} messageType={messageType}
@ -379,43 +381,45 @@ export default function BSCombo1() {
{/* Combo Container */} {/* Combo Container */}
<div className="overall-bscombo-container"> <div className="overall-bscombo-container">
<div className="SearchSubnavbar-combo"> <div className="SearchSubnavbar-combo">
<BSC1NavBar /> <BSC1NavBar />
<div className="comboNavbarSubMain"> <div className="comboNavbarSubMain">
{/* Multiple search */} <div className="SearchNavMutiple">
<Tooltip title={'Multiple Search'}> {/* Multiple search */}
<div className="MultiSearchIconDiv"> <Tooltip title={'Multiple Search'}>
<CgSearchLoading onClick={() => setMultiple(true)} /> <div className="MultiSearchIconDiv">
</div> <CgSearchLoading onClick={() => setMultiple(true)} />
</Tooltip>
{Comboglobal === false && (
<Tooltip
placement="bottom"
trigger={[]}
title="SHIFT + S"
open={isAltPressed}
>
<BSC1Search
data={BSComboData?.BookingLayout[0]}
OrderType={OrderType}
/>
</Tooltip>
)}
{Comboglobal === true && (
<Tooltip
placement="bottom"
trigger={[]}
title="SHIFT + S"
open={isAltPressed}
>
<div style={{ padding: '4px' }} className="CombomainSearch">
<div className="M">
<div className="BSC1Search-div1">
<BSNavBarComboSearch SessionData={SessionData} />
</div>
</div>
</div> </div>
</Tooltip> </Tooltip>
)} {Comboglobal === false && (
<Tooltip
placement="bottom"
trigger={[]}
title="SHIFT + S"
open={isAltPressed}
>
<BSC1Search
data={BSComboData?.BookingLayout[0]}
OrderType={OrderType}
/>
</Tooltip>
)}
{Comboglobal === true && (
<Tooltip
placement="bottom"
trigger={[]}
title="SHIFT + S"
open={isAltPressed}
>
<div style={{ padding: '4px' }} className="CombomainSearch">
<div className="M">
<div className="BSC1Search-div1">
<BSNavBarComboSearch SessionData={SessionData} />
</div>
</div>
</div>
</Tooltip>
)}
</div>
{/* <div className="Layout-bill-container" style={{ margin: '0' }}> */} {/* <div className="Layout-bill-container" style={{ margin: '0' }}> */}
<div className="Layout-bill-Subcontainer ComboSubNavbar"> <div className="Layout-bill-Subcontainer ComboSubNavbar">
@ -576,24 +580,17 @@ export default function BSCombo1() {
</div> </div>
)} )}
</div> </div>
{/* {preferenceshortcutkey && (
<div className="keyboardShortcut">
<ShortcutKeyHelper />
</div>)} */}
</div> </div>
</div> </div>
{/* </div> */}
</div> </div>
</div> </div>
<div <div
// className="BSC1-Master" comment by sree here this class name issues
className="ComboScreenPageTable" className="ComboScreenPageTable"
style={{ style={{
height: isMobile ? '56vh' : '70vh', height: isMobile ? '56vh' : '70vh',
overflow: 'hidden', overflow: 'hidden',
}} }}
> >
{/* <div className="BS1ComboTable"> */}
<div <div
className={ className={
ComboSalesBillTable ComboSalesBillTable

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,20 @@
import { import { useCallback, useEffect, useRef, useState, lazy } from 'react';
useCallback,
useEffect,
useRef,
useState,
lazy,
Suspense,
} from 'react';
import { useNavigate, useOutletContext } from 'react-router-dom'; import { useNavigate, useOutletContext } from 'react-router-dom';
import { shallowEqual, useDispatch } from 'react-redux'; import { shallowEqual, useDispatch } from 'react-redux';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { DatePicker, Tooltip } from 'antd'; import { DatePicker, Tooltip } from 'antd';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import '../../Styles/DashBoard/RetailDashBoard.scss'; import '../../Styles/DashBoard/RetailDashBoard.scss';
const GraphChart = lazy(() => import('./Chart/GraphChart')); const GraphChart = lazy(() => import('./Chart/GraphChart'));
const TopSellingProductsChart = lazy( const TopSellingProductsChart = lazy(
() => import('./TopSellingProductsChart.jsx') () => import('./TopSellingProductsChart.jsx')
); );
import sandClock from '../../Images/sandClock.webp'; import sandClock from '../../Images/sandClock.webp';
import Add from '../../Images/dashboard/Add.webp'; import Add from '../../Images/dashboard/Add.webp';
import AddPurchase from '../../Images/dashboard/AddPurchase.webp'; import AddPurchase from '../../Images/dashboard/AddPurchase.webp';
import invoice from '../../Images/dashboard/invoice.webp'; import invoice from '../../Images/dashboard/invoice.webp';
import user from '../../Images/dashboard/user.webp'; import user from '../../Images/dashboard/user.webp';
import report from '../../Images/dashboard/report.webp'; import report from '../../Images/dashboard/report.webp';
import { import {
GlobalPricingAppPricingName, GlobalPricingAppPricingName,
StoredSessionData, StoredSessionData,
@ -78,13 +66,11 @@ const DefaultModal = lazy(() =>
default: m.DefaultModal, default: m.DefaultModal,
})) }))
); );
const RadioGrpButton = lazy(() => const RadioGrpButton = lazy(() =>
import('../../Components/Forms/RadioGroup.jsx').then((m) => ({ import('../../Components/Forms/RadioGroup.jsx').then((m) => ({
default: m.RadioGrpButton, default: m.RadioGrpButton,
})) }))
); );
const DropDowns = lazy(() => const DropDowns = lazy(() =>
import('../../Components/Forms/DropDown.jsx').then((m) => ({ import('../../Components/Forms/DropDown.jsx').then((m) => ({
default: m.DropDowns, default: m.DropDowns,
@ -1436,18 +1422,16 @@ const RetailDashboard = () => {
?.toUpperCase()} ?.toUpperCase()}
</div> </div>
{userprofile && ( {userprofile && (
<Suspense fallback={null}> <BSNavBarUserInfo
<BSNavBarUserInfo isOpen={userprofile}
isOpen={userprofile} divRef={userProfileRef}
divRef={userProfileRef} userProfileData={{
userProfileData={{ UserImage: user,
UserImage: user, UserName: AppDetails?.[0]?.UserName,
UserName: AppDetails?.[0]?.UserName, MobileNo: AppDetails?.[0]?.MobileNo,
MobileNo: AppDetails?.[0]?.MobileNo, }}
}} Logout={Logout}
Logout={Logout} />
/>
</Suspense>
)} )}
</div> </div>
</div> </div>
@ -1464,22 +1448,20 @@ const RetailDashboard = () => {
{/* Branch Filter Dropdown */} {/* Branch Filter Dropdown */}
{CompBranchData?.length > 1 && selection !== 'top-selling-products' && ( {CompBranchData?.length > 1 && selection !== 'top-selling-products' && (
<div className="branch-filter-dropdown"> <div className="branch-filter-dropdown">
<Suspense fallback={<div>Loading...</div>}> <DropDowns
<DropDowns options={[
options={[ { value: 'all', label: 'All Branches' },
{ value: 'all', label: 'All Branches' }, ...CompBranchData?.map((option) => ({
...CompBranchData?.map((option) => ({ value: option.BrId,
value: option.BrId, label: option.BrName,
label: option.BrName, })),
})), ]}
]} className="branch-filter-select"
className="branch-filter-select" onChangeFunction={onChangeBranchFilter}
onChangeFunction={onChangeBranchFilter} valueData={selectedBranchForFilter}
valueData={selectedBranchForFilter} defaultValue="all"
defaultValue="all" placeholder="All Branches"
placeholder="All Branches" />
/>
</Suspense>
</div> </div>
)} )}
@ -1500,9 +1482,7 @@ const RetailDashboard = () => {
<div className="TotalRevenue"> <div className="TotalRevenue">
<div className="tlxHeader"></div> <div className="tlxHeader"></div>
<div className="TotalRevenue-Graph"> <div className="TotalRevenue-Graph">
<Suspense fallback={<Loader />}> <GraphChart datasets={datasets} />
<GraphChart datasets={datasets} />
</Suspense>
</div> </div>
</div> </div>
@ -2375,110 +2355,104 @@ const RetailDashboard = () => {
</> </>
) : ( ) : (
<> <>
<Suspense fallback={<Loader />}> <TopSellingProductsChart
<TopSellingProductsChart dates={dates}
dates={dates} products={products}
products={products} loading={loading}
loading={loading} totalPages={totalPages}
totalPages={totalPages} page={page}
page={page} setPage={setPage}
setPage={setPage} fetchProducts={fetchProducts}
fetchProducts={fetchProducts} initialDate={initialDate}
initialDate={initialDate} />
/>
</Suspense>
</> </>
)} )}
<Suspense fallback={null}> <DefaultModal
<DefaultModal open={modal}
open={modal} title="Authentication"
title="Authentication" width={500}
width={500} footer={false}
footer={false} handleCancel={handlePageChange}
handleCancel={handlePageChange} >
> <>
<> <div className="modalContentsadminuser">
<div className="modalContentsadminuser"> <DropDowns
<DropDowns options={userDropDown?.map((option) => ({
options={userDropDown?.map((option) => ({ value: option?.UserId,
value: option?.UserId, label: option?.UserName,
label: option?.UserName, }))}
}))} label={<label className="required">User Name</label>}
label={<label className="required">User Name</label>} className="field-DropDown"
className="field-DropDown" onChangeFunction={(e) => UserDropDownChange(e)}
onChangeFunction={(e) => UserDropDownChange(e)} isOnchanges={selectedUserData ? true : false}
isOnchanges={selectedUserData ? true : false} valueData={selectedUserData}
valueData={selectedUserData} disabled={disabled}
disabled={disabled} />
/> <div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div style={{ display: 'flex', justifyContent: 'space-between' }}> <div className="RadioButton">
<div className="RadioButton"> <RadioGrpButton
<Suspense fallback={<div>Loading...</div>}> content={[
<RadioGrpButton { value: 'O', label: 'OTP' },
content={[ { value: 'P', label: 'PIN' },
{ value: 'O', label: 'OTP' }, ]}
{ value: 'P', label: 'PIN' }, fieldState={true}
]} defaultSelect={SelectType}
fieldState={true} onSelectFuntion={(e) => ChangeMethod(e)}
defaultSelect={SelectType} />
onSelectFuntion={(e) => ChangeMethod(e)}
/>
</Suspense>
</div>
</div>
{pinInput && (
<div className="otpInputsadminuser">
{[0, 1, 2, 3].map((i) => (
<input
key={i}
ref={(el) => (inputRefs.current[i] = el)}
className="inputNumber"
type="text"
inputMode="numeric"
pattern="[0-9]"
maxLength={1}
onChange={(e) => handleChange(i, e)}
onKeyDown={(e) => handleKeyDown(i, e)}
style={{
textAlign: 'center',
width: '40px',
fontSize: '20px',
}}
/>
))}
</div>
)}
<div
style={{
width: '100%',
display: 'flex',
justifyContent: 'flex-end',
}}
>
<button
className="size-save-button-retail"
onClick={handleClick}
disabled={disabled}
>
{SelectTypeName === 'OTP'
? !FirstTimeOtp
? `send ${SelectTypeName.toLocaleLowerCase()}`
: `resend ${SelectTypeName.toLocaleLowerCase()}${
seconds > 0 ? ` in ${seconds}s` : ''
}`
: !FirstTimePin
? `send ${SelectTypeName.toLocaleLowerCase()}`
: `resend ${SelectTypeName.toLocaleLowerCase()}${
seconds > 0 ? ` in ${seconds}s` : ''
}`}
</button>
</div> </div>
</div> </div>
</>
</DefaultModal> {pinInput && (
</Suspense> <div className="otpInputsadminuser">
{[0, 1, 2, 3].map((i) => (
<input
key={i}
ref={(el) => (inputRefs.current[i] = el)}
className="inputNumber"
type="text"
inputMode="numeric"
pattern="[0-9]"
maxLength={1}
onChange={(e) => handleChange(i, e)}
onKeyDown={(e) => handleKeyDown(i, e)}
style={{
textAlign: 'center',
width: '40px',
fontSize: '20px',
}}
/>
))}
</div>
)}
<div
style={{
width: '100%',
display: 'flex',
justifyContent: 'flex-end',
}}
>
<button
className="size-save-button-retail"
onClick={handleClick}
disabled={disabled}
>
{SelectTypeName === 'OTP'
? !FirstTimeOtp
? `send ${SelectTypeName.toLocaleLowerCase()}`
: `resend ${SelectTypeName.toLocaleLowerCase()}${
seconds > 0 ? ` in ${seconds}s` : ''
}`
: !FirstTimePin
? `send ${SelectTypeName.toLocaleLowerCase()}`
: `resend ${SelectTypeName.toLocaleLowerCase()}${
seconds > 0 ? ` in ${seconds}s` : ''
}`}
</button>
</div>
</div>
</>
</DefaultModal>
</div> </div>
); );
}; };

View File

@ -340,8 +340,7 @@ const TopSellingProducts = ({
Pie Chart Pie Chart
</div> </div>
</div> </div>
<Suspense fallback={<div>Loading...</div>}>
<DropDowns <DropDowns
className={'item-range-dropdown'} className={'item-range-dropdown'}
valueData={page} valueData={page}
@ -363,8 +362,7 @@ const TopSellingProducts = ({
}); });
}} }}
isOnchanges={page ? true : false} isOnchanges={page ? true : false}
/> />
</Suspense>
</div> </div>
</div> </div>

File diff suppressed because it is too large Load Diff

View File

@ -3,11 +3,10 @@
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
gap: 0.5rem; gap: 0.5rem;
font-family: 'Poppins'; font-family: "Poppins";
.ant-form{ .ant-form {
line-height: 2.3 !important; line-height: 2.3 !important;
} }
} }
.EditQuantity-Itemname { .EditQuantity-Itemname {
display: flex; display: flex;
@ -21,14 +20,11 @@
.EditQuantity-headingname { .EditQuantity-headingname {
display: flex; display: flex;
align-items: center; align-items: center;
// width: 20rem;
} }
.EditQuantity-headingproductname { .EditQuantity-headingproductname {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 14px; font-size: 14px;
// padding: 1rem;
// width: 25rem;
} }
.EditQuantity-title { .EditQuantity-title {
.formHeader { .formHeader {
@ -52,7 +48,6 @@
} }
.gridEQitem { .gridEQitem {
background-color: rgba(255, 255, 255, 0.8); background-color: rgba(255, 255, 255, 0.8);
// border: 1px solid rgba(0, 0, 0, 0.8);
padding: 5px; padding: 5px;
font-size: 30px; font-size: 30px;
text-align: center; text-align: center;
@ -70,13 +65,11 @@
.grid-item-add { .grid-item-add {
background-color: var(--SELECTED_COLOR); background-color: var(--SELECTED_COLOR);
color: #e1eef1; color: #e1eef1;
// border: 1px solid rgba(0, 0, 0, 0.8);
padding: 8px 5px 5px 5px; padding: 8px 5px 5px 5px;
font-size: 23px; font-size: 23px;
text-align: center; text-align: center;
border-radius: 25px; border-radius: 25px;
margin: 6px; margin: 6px;
// margin-left: 10px;
} }
.EditQuantity-mealicon { .EditQuantity-mealicon {
color: #0268ba; color: #0268ba;
@ -195,7 +188,7 @@
border-radius: 4.982px; border-radius: 4.982px;
padding: 5px 6px; padding: 5px 6px;
height: 2rem; height: 2rem;
font-family: 'Poppins'; font-family: "Poppins";
} }
.SelecBtn { .SelecBtn {
background-color: var(--SELECTED_COLOR); background-color: var(--SELECTED_COLOR);
@ -210,7 +203,7 @@
border-radius: 4.982px; border-radius: 4.982px;
padding: 5px 6px; padding: 5px 6px;
height: 2rem; height: 2rem;
font-family: 'Poppins'; font-family: "Poppins";
} }
.RadioButtons { .RadioButtons {
display: flex; display: flex;

View File

@ -69,7 +69,7 @@ input::-webkit-inner-spin-button {
.price-button { .price-button {
border-radius: 8px; border-radius: 8px;
border: 0px solid none; border: none;
font-size: 24px; font-size: 24px;
font-weight: 600; font-weight: 600;
background-color: var(--SELECTED_COLOR); background-color: var(--SELECTED_COLOR);
@ -78,6 +78,7 @@ input::-webkit-inner-spin-button {
width: max-content; width: max-content;
padding: 0px 12px; padding: 0px 12px;
cursor: pointer; cursor: pointer;
height: 40px;
} }
.price-button-disabled { .price-button-disabled {
@ -143,7 +144,7 @@ input::-webkit-inner-spin-button {
justify-content: center; justify-content: center;
gap: 0.2rem; gap: 0.2rem;
background-color: #dbdbdb; background-color: #dbdbdb;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
} }
.payment-div-0-userplus { .payment-div-0-userplus {
@ -238,3 +239,38 @@ input::-webkit-inner-spin-button {
.ChairClrGreen { .ChairClrGreen {
color: var(--SELECTED_COLOR); color: var(--SELECTED_COLOR);
} }
.Btn-payment-mode-sel {
background-color: var(--DEFAULT_SELECTED_COLOR);
font-size: 14px;
font-weight: 500;
height: 40px;
width: 75px;
border-radius: 7.2px;
color: #fff;
padding: 3px;
display: flex;
gap: 0.2rem;
align-items: center;
font-family: "Poppins";
justify-content: center;
cursor: pointer;
text-transform: capitalize;
}
.Btn-payment-mode {
background-color: var(--SELECTED_COLOR);
font-size: 14px;
font-weight: 500;
height: 40px;
width: 75px;
border-radius: 7.2px;
color: #fff;
padding: 3px;
display: flex;
gap: 0.2rem;
align-items: center;
font-family: "Poppins";
justify-content: center;
cursor: pointer;
text-transform: capitalize;
}

View File

@ -89,7 +89,7 @@
.BSBill-Table4 th { .BSBill-Table4 th {
border-spacing: 0; border-spacing: 0;
text-align: center; text-align: center;
font-size: 16px; font-size: 14px;
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
line-height: normal; line-height: normal;
@ -277,6 +277,8 @@
background: var(--SELECTED_COLOR); background: var(--SELECTED_COLOR);
text-align: center; text-align: center;
border: 0; border: 0;
color: #fff;
cursor: pointer;
} }
.Table4-Btn-final-price-disabled { .Table4-Btn-final-price-disabled {

View File

@ -5,24 +5,12 @@
background-color: #fff; background-color: #fff;
width: inherit; width: inherit;
overflow: auto; overflow: auto;
// height: clamp(70vh, 50vh, 40vh);
// height: 85vh;
//vm
height: 80vh; height: 80vh;
} }
.BSBillingTable5-table-master-div-6 { .BSBillingTable5-table-master-div-6 {
//vm
height: 70vh; height: 70vh;
} }
// .BSLayout5-Master .BSBillingTable5-table-master-div {
// height: 91vh !important;
// }
// .BSLayout5-Master .BSBilling4TableCont-default {
// height: 93vh;
// }
.BSLayout5-Master .AddFavList { .BSLayout5-Master .AddFavList {
left: 0; left: 0;
height: 95vh; height: 95vh;
@ -46,11 +34,6 @@
justify-items: center; justify-items: center;
} }
.BSBillingTable5-billtable {
// height:100Vh;
// overflow: auto;
}
.BSC1-Master .BSBillingTable5-billtable { .BSC1-Master .BSBillingTable5-billtable {
height: 100%; height: 100%;
overflow: auto; overflow: auto;
@ -66,7 +49,6 @@
display: flex; display: flex;
align-items: center; align-items: center;
gap: 1rem; gap: 1rem;
// margin-bottom: 10px;
} }
.BSBillingTable-title { .BSBillingTable-title {
@ -108,7 +90,6 @@
} }
.BSBillingTable5-table-td { .BSBillingTable5-table-td {
// border: 1px solid #dddddd;
border-bottom: 1.9px dashed #000; border-bottom: 1.9px dashed #000;
text-align: left; text-align: left;
padding: 8px; padding: 8px;
@ -119,7 +100,6 @@
} }
.BSBillingTable5-table-th { .BSBillingTable5-table-th {
// border: 1px solid #dddddd;
border-bottom: 1.9px solid #000; border-bottom: 1.9px solid #000;
padding: 10px; padding: 10px;
text-align: center; text-align: center;
@ -130,25 +110,23 @@
} }
.BSBillingTable5-table-notes { .BSBillingTable5-table-notes {
font-size: '14px'; font-size: "14px";
font-weight: 500; font-weight: 500;
} }
.BSBillingTable5-table-cont { .BSBillingTable5-table-cont {
text-align: left; text-align: left;
line-height: 1.5; line-height: 1.5;
font-size: 15px; font-size: 14px;
} }
.BSBillingTable5-table-sub-td { .BSBillingTable5-table-sub-td {
// display: flex;
font-size: 14px; font-size: 14px;
font-weight: 500; font-weight: 500;
color: #52c41a; color: #52c41a;
} }
.BSBillingTable5-table-tr:nth-child(even) { .BSBillingTable5-table-tr:nth-child(even) {
// background-color: #dddddd;
text-align: center; text-align: center;
} }
@ -751,32 +729,6 @@ select:focus-visible {
} }
} }
/* For screens between 768px and 991px (e.g., tablets) */
// @media (min-width: 768px) and (max-width: 991px) {
// .BSBillingTable-oCbtn {
// position: fixed !important;
// z-index: 1;
// }
// .BSBillingTable5-billtable,{
// display: none !important;
// }
// .BSLayout2-bSlayer {
// position: fixed;
// right: 0;
// }
// .BSBIllingTable5-mobscrn {
// position: fixed;
// bottom: 0;
// height: 6rem;
// // width: 100%;
// background-color: #fff;
// }
// }
/* For screens larger than 992px (e.g., desktops) */
@media (min-width: 991px) and (max-width: 1364px) { @media (min-width: 991px) and (max-width: 1364px) {
.BSBillingTable-oCbtn { .BSBillingTable-oCbtn {
position: fixed !important; position: fixed !important;

View File

@ -15,7 +15,7 @@ input::-webkit-inner-spin-button {
letter-spacing: 0em; letter-spacing: 0em;
text-align: center; text-align: center;
border: none; border: none;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
} }
.BST6Payment-Button-pay { .BST6Payment-Button-pay {
@ -29,7 +29,7 @@ input::-webkit-inner-spin-button {
text-align: center; text-align: center;
border: none; border: none;
cursor: pointer; cursor: pointer;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
} }
.BST6Payment-Button-pay-disabled { .BST6Payment-Button-pay-disabled {
@ -43,7 +43,7 @@ input::-webkit-inner-spin-button {
text-align: center; text-align: center;
border: none; border: none;
cursor: pointer; cursor: pointer;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
pointer-events: none; pointer-events: none;
opacity: 0.5; opacity: 0.5;
} }
@ -64,7 +64,7 @@ input::-webkit-inner-spin-button {
font-weight: 600; font-weight: 600;
color: #fff; color: #fff;
cursor: pointer; cursor: pointer;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
} }
.BST6Payment-Button-RECIEVED { .BST6Payment-Button-RECIEVED {
@ -73,7 +73,7 @@ input::-webkit-inner-spin-button {
border-radius: 8.3px; border-radius: 8.3px;
border: 0.83px solid #8e8e8e; border: 0.83px solid #8e8e8e;
font-size: 12px; font-size: 12px;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
text-align: center; text-align: center;
} }
@ -83,7 +83,7 @@ input::-webkit-inner-spin-button {
border-radius: 8.3px; border-radius: 8.3px;
border: 0.83px solid #ff4d4f; border: 0.83px solid #ff4d4f;
font-size: 12px; font-size: 12px;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
text-align: center; text-align: center;
} }
@ -97,7 +97,7 @@ input::-webkit-inner-spin-button {
border-radius: 8.3px; border-radius: 8.3px;
border: 0.83px solid #8e8e8e; border: 0.83px solid #8e8e8e;
font-size: 12px; font-size: 12px;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
text-align: center; text-align: center;
} }
@ -123,9 +123,6 @@ input::-webkit-inner-spin-button {
flex-direction: row; flex-direction: row;
gap: 2rem; gap: 2rem;
align-items: center; align-items: center;
// margin-bottom: 15px;
// padding-right: 10px;
// align-items: center;
} }
.BST6Payment-Paydiv { .BST6Payment-Paydiv {
@ -176,7 +173,7 @@ input::-webkit-inner-spin-button {
display: flex; display: flex;
gap: 0.2rem; gap: 0.2rem;
align-items: center; align-items: center;
font-family: 'Poppins'; font-family: "Poppins";
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
text-transform: capitalize; text-transform: capitalize;
@ -207,19 +204,22 @@ input::-webkit-inner-spin-button {
.Btn-payment-mode { .Btn-payment-mode {
background-color: var(--SELECTED_COLOR); background-color: var(--SELECTED_COLOR);
font-size: 14px; font-size: 13px !important;
font-weight: 500; font-weight: 500;
height: 40px; height: 40px;
width: 100px; flex-grow: 1;
flex: 1;
width: max-content !important;
border-radius: 7.2px; border-radius: 7.2px;
color: #fff; color: #fff;
padding: 3px; padding: 3px;
display: flex; display: flex;
gap: 0.2rem; gap: 0.2rem;
align-items: center; align-items: center;
font-family: 'Poppins'; font-family: "Poppins";
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
border: none;
text-transform: capitalize; text-transform: capitalize;
@media (max-width: 992px) { @media (max-width: 992px) {
font-size: 11px; font-size: 11px;
@ -240,20 +240,23 @@ input::-webkit-inner-spin-button {
.Btn-payment-mode-sel { .Btn-payment-mode-sel {
background-color: var(--DEFAULT_SELECTED_COLOR); background-color: var(--DEFAULT_SELECTED_COLOR);
font-size: 14px; font-size: 13px !important;
font-weight: 500; font-weight: 500;
height: 40px; height: 40px;
width: 100px; width: max-content !important;
flex: 1;
flex-grow: 1;
border-radius: 7.2px; border-radius: 7.2px;
color: #fff; color: #fff;
padding: 3px; padding: 3px;
display: flex; display: flex;
gap: 0.2rem; gap: 0.2rem;
align-items: center; align-items: center;
font-family: 'Poppins'; font-family: "Poppins";
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
text-transform: capitalize; text-transform: capitalize;
border: none;
@media (max-width: 992px) { @media (max-width: 992px) {
font-size: 11px; font-size: 11px;
height: 35px; height: 35px;

View File

@ -13,7 +13,7 @@
// height: 90%; // height: 90%;
} }
.BSTable3_overall-6 { .BSTable3_overall-6 {
height: 71vh ; height: 71vh;
} }
.BSBill-Table7 { .BSBill-Table7 {
@ -45,11 +45,8 @@
.BSBill-Table7 th { .BSBill-Table7 th {
position: sticky; position: sticky;
border-spacing: 0; border-spacing: 0;
// color: black;
text-align: center; text-align: center;
font-size: 16px; font-size: 16px;
font-style: normal; font-style: normal;
font-weight: 600; font-weight: 600;
@ -59,10 +56,9 @@
.BSBill-Table7-content { .BSBill-Table7-content {
background-color: rgba(235, 235, 236, 1); background-color: rgba(235, 235, 236, 1);
height: 3rem; height: 3rem;
font-size: 13px;
font-size: 14px;
font-style: normal; font-style: normal;
font-weight: 600; font-weight: 500;
} }
.BSBill-Table7-content-disabled { .BSBill-Table7-content-disabled {
@ -164,9 +160,7 @@
margin: 10px 10px; margin: 10px 10px;
} }
.Table7-customer .Table7-customer .ant-select-single:not(.ant-select-customize-input) .ant-select-selector {
.ant-select-single:not(.ant-select-customize-input)
.ant-select-selector {
width: 10rem; width: 10rem;
height: 3rem; height: 3rem;
text-align: center; text-align: center;
@ -178,9 +172,7 @@
font-weight: 600; font-weight: 600;
} }
.Table7-customer .Table7-customer .ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder {
.ant-select-single.ant-select-show-arrow
.ant-select-selection-placeholder {
color: #000; color: #000;
padding-inline-end: 0px !important; padding-inline-end: 0px !important;
} }
@ -274,14 +266,12 @@
} }
.BSBill-Table7 th { .BSBill-Table7 th {
// font-weight: 400 !important;
padding: 2px; padding: 2px;
} }
.BSBill-Table7-content { .BSBill-Table7-content {
font-size: 14px; font-size: 14px;
font-style: normal; font-style: normal;
// font-weight: 400;
} }
.Table7-items { .Table7-items {
@ -327,7 +317,7 @@
.Table7-rate { .Table7-rate {
display: flex; display: flex;
font-family: 'Poppins', sans-serif; font-family: "Poppins", sans-serif;
font-size: 32.203px; font-size: 32.203px;
font-style: normal; font-style: normal;
font-weight: bold; font-weight: bold;
@ -347,7 +337,6 @@
.icon-button { .icon-button {
height: 30px; height: 30px;
// width:30px;
border-radius: 30px; border-radius: 30px;
padding: 0px; padding: 0px;
margin: 6px 6px; margin: 6px 6px;
@ -401,12 +390,12 @@
.BSBilling7-icon-flex { .BSBilling7-icon-flex {
display: flex; display: flex;
align-items: center; align-items: center;
div{ div {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
svg{ svg {
margin-top: -7px; margin-top: -7px;
} }
} }
} }
@ -419,13 +408,9 @@
.BSBilling7-vertical-line { .BSBilling7-vertical-line {
width: 1px; width: 1px;
/* Adjust the width as needed */
height: 100%; height: 100%;
/* This will make the line span the entire height of its container */
background-color: #000; background-color: #000;
/* Change the background color to your desired color */
margin: 0 10px; margin: 0 10px;
/* Adjust margin as needed to position the line */
} }
hr.Table7-Dotted-Line1 { hr.Table7-Dotted-Line1 {
@ -478,7 +463,6 @@ hr.Table7-Dotted-Line1 {
} }
.edit-btn-table:focus { .edit-btn-table:focus {
// background-color: #ffdb3a;
background-color: #fff; background-color: #fff;
color: var(--SELECTED_COLOR) !important; color: var(--SELECTED_COLOR) !important;
border: solid 1px var(--SELECTED_COLOR); border: solid 1px var(--SELECTED_COLOR);
@ -514,10 +498,6 @@ hr.Table7-Dotted-Line1 {
justify-content: flex-end; justify-content: flex-end;
} }
.radio-button-group .item {
// width: 100%;
}
.radio-button-group .radio-button { .radio-button-group .radio-button {
position: absolute; position: absolute;
width: 1px; width: 1px;
@ -528,16 +508,14 @@ hr.Table7-Dotted-Line1 {
.radio-button-group .radio-button + label { .radio-button-group .radio-button + label {
padding: 4px 10px; padding: 4px 10px;
cursor: pointer; cursor: pointer;
// border: 1px solid #CCC;
border: none; border: none;
margin-right: -2px; margin-right: -2px;
color: #ffffff; color: #ffffff;
background-color: var(--DEFAULT_SELECTED_COLOR); background-color: var(--DEFAULT_SELECTED_COLOR);
font-family: 'gilroy'; font-family: "gilroy";
font-size: 13px; font-size: 13px;
font-weight: 600; font-weight: 600;
display: block; display: block;
// text-transform: uppercase;
text-align: center; text-align: center;
} }

View File

@ -123,6 +123,8 @@
align-items: center; align-items: center;
border: none; border: none;
column-gap: 0rem; column-gap: 0rem;
width: max-content;
height: 2rem;
border-radius: 4.982px; border-radius: 4.982px;
padding: 5px 6px; padding: 5px 6px;
height: 2rem; height: 2rem;

View File

@ -37,7 +37,6 @@
text-align: center; text-align: center;
} }
.BSItemCard-master-container { .BSItemCard-master-container {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -83,30 +82,30 @@
background-color: rgba(255, 255, 255, 0.8); background-color: rgba(255, 255, 255, 0.8);
position: absolute; position: absolute;
display: flex; display: flex;
column-gap: 0.5rem; column-gap: 0.5rem;
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
bottom: 0px; bottom: 0px;
left: 0; left: 0;
right: 0; right: 0;
} }
.BSItemCard-itemName { .BSItemCard-itemName {
text-align: center; text-align: center;
font-size: 12px; font-size: 12px;
font-weight: 500; font-weight: 500;
max-width: 130px; max-width: 130px;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.BSItemCard-itemPrice { .BSItemCard-itemPrice {
color: #52c41a; color: #52c41a;
font-size: 14px; font-size: 14px;
font-weight: 600; font-weight: 600;
font-family: "Gilroy"; font-family: "Gilroy";
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
width: 105px; width: 105px;
@ -120,7 +119,7 @@
.BSItemCard-badge-withoutimage { .BSItemCard-badge-withoutimage {
position: absolute; position: absolute;
top: 0px; top: 0px;
right: 0; right: 0;
} }
@ -145,7 +144,7 @@
.BSItemCard-content-smallimage { .BSItemCard-content-smallimage {
width: max-content; width: max-content;
padding: 5px 0; padding: 5px 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
column-gap: 0.5rem; column-gap: 0.5rem;
justify-content: center; justify-content: center;
@ -163,8 +162,7 @@
column-gap: 0.3rem; column-gap: 0.3rem;
row-gap: 0.5rem; row-gap: 0.5rem;
cursor: pointer; cursor: pointer;
// vicky justify-content: space-around;
justify-content: space-around;
} }
.BSItemCard-containers-smallimage-mobile { .BSItemCard-containers-smallimage-mobile {
@ -174,7 +172,7 @@
flex-direction: row; flex-direction: row;
column-gap: 0.4rem; column-gap: 0.4rem;
row-gap: 0.5rem; row-gap: 0.5rem;
cursor: pointer; cursor: pointer;
} }
.BSItemCard-content-small-screem { .BSItemCard-content-small-screem {
@ -199,7 +197,7 @@
@media (min-width: 280px) and (max-width: 499px) { @media (min-width: 280px) and (max-width: 499px) {
.ItemWiseReport-heading { .ItemWiseReport-heading {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
align-items: center; align-items: center;
} }
@ -215,7 +213,7 @@
tr, tr,
td { td {
font-size: 14px !important; font-size: 14px !important;
} }
.other-submitbtn { .other-submitbtn {
justify-content: flex-start !important; justify-content: flex-start !important;
@ -240,7 +238,6 @@
.configMsrSubDiv { .configMsrSubDiv {
column-gap: 0.5rem !important; column-gap: 0.5rem !important;
} }
.ant-modal .ant-modal-content { .ant-modal .ant-modal-content {
padding: 1rem !important; padding: 1rem !important;
@ -269,12 +266,9 @@
.BSItemCard-itemPrice { .BSItemCard-itemPrice {
font-size: 9px !important; font-size: 9px !important;
//nk
width: 60px !important; width: 60px !important;
//
} }
//nk
.qtyUomName-itemCard { .qtyUomName-itemCard {
width: 78px !important; width: 78px !important;
} }
@ -315,9 +309,7 @@
.BSItemCard-master-container { .BSItemCard-master-container {
padding: 0px 0px; padding: 0px 0px;
justify-content: center !important; justify-content: center !important;
// padding-bottom: 10rem !important;
padding-bottom: 1rem !important; padding-bottom: 1rem !important;
// column-gap: 0.1rem !important;
} }
.BSItemCard-container { .BSItemCard-container {
@ -328,11 +320,11 @@
.BSItemCard-containers-mobile { .BSItemCard-containers-mobile {
width: 6rem !important; width: 6rem !important;
} }
.BSItemCard-content-small-screem { .BSItemCard-content-small-screem {
width: 8rem !important; width: 8rem !important;
height: 6rem !important; height: 6rem !important;
} }
.BSItemCard-itemName { .BSItemCard-itemName {
width: 60px !important; width: 60px !important;
font-size: 10px; font-size: 10px;
@ -340,15 +332,13 @@
text-align: center !important; text-align: center !important;
} }
.bs-item-card-masterdiv { .bs-item-card-masterdiv {
height: inherit; height: inherit;
} }
} }
@media (min-width: 500px) and (max-width: 767px) { @media (min-width: 500px) and (max-width: 767px) {
.bs-item-card-masterdiv { .bs-item-card-masterdiv {
// height: 77vh !important;
height: inherit; height: inherit;
} }
@ -362,7 +352,6 @@
@media (min-width: 280px) and (max-width: 499px) { @media (min-width: 280px) and (max-width: 499px) {
.bs-item-card-masterdiv { .bs-item-card-masterdiv {
// height: 60vh !important;
height: inherit; height: inherit;
} }
@ -372,7 +361,6 @@
margin-top: 3px; margin-top: 3px;
} }
} }
.QRStockchange-table thead { .QRStockchange-table thead {
position: sticky; position: sticky;
@ -405,9 +393,7 @@
} }
.BkPrdCardDeActive { .BkPrdCardDeActive {
// pointer-events: none;
border: 1px solid #f10000; border: 1px solid #f10000;
// border-radius: 8px;
.BSItemCard-container-smallimage { .BSItemCard-container-smallimage {
width: 10.9rem; width: 10.9rem;
} }
@ -424,23 +410,23 @@
z-index: 1; z-index: 1;
} }
.Card-modal-table { .Card-modal-table {
height: 59vh; height: 59vh;
overflow: auto; overflow: auto;
justify-content: flex-start; justify-content: flex-start;
padding: 1.8rem 0.5rem; padding: 1.8rem 0.5rem;
column-gap: 0.5rem; column-gap: 0.5rem;
row-gap: 1rem; row-gap: 1rem;
} }
.Brand-Card-modal-table { .Brand-Card-modal-table {
height: 43vh; height: 43vh;
overflow: auto; overflow: auto;
justify-content: flex-start; justify-content: flex-start;
padding: 1.8rem 0.5rem; padding: 1.8rem 0.5rem;
column-gap: 0.5rem; column-gap: 0.5rem;
row-gap: 1rem; row-gap: 1rem;
} }
.Brand-Card-modal-table::-webkit-scrollbar { .Brand-Card-modal-table::-webkit-scrollbar {
width: 10px !important; width: 10px !important;
@ -510,7 +496,6 @@
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
column-gap: 0.1rem; column-gap: 0.1rem;
border-radius: 2px; border-radius: 2px;
} }
@ -520,19 +505,6 @@
font-family: "Gilroy"; font-family: "Gilroy";
text-align: center; text-align: center;
} }
//nk
.qtyUomName-itemCard {
font-size: 15px;
font-weight: 600;
font-family: "Gilroy";
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 105px;
}
.qtyprice { .qtyprice {
font-size: 16px; font-size: 16px;
background-color: var(--DEFAULT_SELECTED_COLOR); background-color: var(--DEFAULT_SELECTED_COLOR);
@ -547,6 +519,18 @@
border-bottom-right-radius: 6px; border-bottom-right-radius: 6px;
} }
//nk
.qtyUomName-itemCard {
font-size: 15px;
font-weight: 600;
font-family: "Gilroy";
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 105px;
}
.Card-modal-table .ant-pagination { .Card-modal-table .ant-pagination {
position: sticky; position: sticky;
bottom: 0; bottom: 0;
@ -816,7 +800,6 @@
.Payment-loader1 { .Payment-loader1 {
.Payment-loader { .Payment-loader {
// column-gap: 1rem;
.contener_mixte { .contener_mixte {
top: 5px; top: 5px;
right: 12rem; right: 12rem;
@ -827,28 +810,26 @@
.EditQuantity-Master { .EditQuantity-Master {
.Re-Print-table { .Re-Print-table {
width: 100% !important; width: 100% !important;
scrollbar-width: none;
}
.ant-table-thead tr {
background-color: #1292ee !important;
} }
} }
.webkit-ul { .webkit-ul {
height: 35vh; height: 35vh;
overflow-y: auto; overflow-y: auto;
/* Firefox */
scrollbar-width: thin; scrollbar-width: thin;
/* Options: auto | thin | none */
scrollbar-color: #c1c1c1 transparent; scrollbar-color: #c1c1c1 transparent;
} }
/* WebKit Browsers: Chrome, Edge, Safari */
.webkit-ul::-webkit-scrollbar { .webkit-ul::-webkit-scrollbar {
width: 25px; width: 25px;
/* Adjust width as needed */
} }
.webkit-ul::-webkit-scrollbar-track { .webkit-ul::-webkit-scrollbar-track {
background: #f0f0f0; background: #f0f0f0;
/* Optional: add contrast to track */
border-radius: 10px; border-radius: 10px;
} }
@ -856,7 +837,6 @@
background-color: #c1c1c1; background-color: #c1c1c1;
border-radius: 10px; border-radius: 10px;
border: 6px solid transparent; border: 6px solid transparent;
/* Adjust for padding inside thumb */
background-clip: content-box; background-clip: content-box;
transition: background-color 0.3s ease; transition: background-color 0.3s ease;
} }
@ -1108,21 +1088,12 @@
} }
.booked-text { .booked-text {
// color: #070;
color: rgb(241, 16, 16); color: rgb(241, 16, 16);
font-weight: 600; font-weight: 600;
cursor: not-allowed !important; cursor: not-allowed !important;
margin-top: 4px; margin-top: 4px;
} }
// .Available-text{
// color: rgb(41, 201, 41);
// font-weight: 600;
// cursor: not-allowed !important;
// margin-top: 4px;
// }
.slot-btn.incart { .slot-btn.incart {
background: #ffe066; background: #ffe066;
color: #222; color: #222;
@ -1139,7 +1110,7 @@
flex-wrap: wrap; flex-wrap: wrap;
flex-direction: row; flex-direction: row;
column-gap: 1rem; column-gap: 1rem;
row-gap: 0.5rem; row-gap: 0.5rem;
font-family: "Poppins"; font-family: "Poppins";
font-size: 14px; font-size: 14px;
color: #000; color: #000;
@ -1687,10 +1658,6 @@
color: #ffffff; color: #ffffff;
border-color: #31a0f0; border-color: #31a0f0;
cursor: not-allowed; cursor: not-allowed;
// &:hover{
// color:#148498;
// background-color: #fff;
// }
} }
&.selected { &.selected {
@ -2254,11 +2221,9 @@
cursor: pointer; cursor: pointer;
height: 270px; height: 270px;
width: 195px; width: 195px;
// background-color: #fff;
border-radius: 0.75rem; border-radius: 0.75rem;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
// justify-content: space-between;
margin-top: 10px; margin-top: 10px;
position: relative; position: relative;
border: 2px solid rgba(0, 0, 0, 0.3); border: 2px solid rgba(0, 0, 0, 0.3);
@ -2266,7 +2231,6 @@
.voiceToTextIcon { .voiceToTextIcon {
position: fixed; position: fixed;
// width: max-content;
top: 7px; top: 7px;
left: 10px; left: 10px;
display: flex; display: flex;

View File

@ -9,6 +9,10 @@
.RiVerifiedBadgeFill { .RiVerifiedBadgeFill {
color: #1292ee !important; color: #1292ee !important;
} }
.FaparkingIcon {
width: 32px !important;
height: 32px !important;
}
} }
.BSBillingNav2div2 { .BSBillingNav2div2 {

View File

@ -305,6 +305,7 @@
.BSBillingNav-icon { .BSBillingNav-icon {
color: #ffffff !important; color: #ffffff !important;
transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
width: 30px !important;
&:hover { &:hover {
color: #1292ee !important; color: #1292ee !important;
} }

View File

@ -25,11 +25,11 @@
height: 100%; height: 100%;
@media (max-width: 768px) { @media (max-width: 768px) {
top: 2rem; top: 3.5rem;
} }
@media (max-width: 500px) { @media (max-width: 500px) {
top: 2rem; top: 3rem;
} }
} }

View File

@ -1,8 +1,4 @@
.BSC1Search-container { .BSC1Search-container {
// display: flex;
// flex-direction: row;
// padding: 0.5rem 0 0 1.5rem;
// gap: 0.5rem;
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -143,7 +139,6 @@
scrollbar-width: thin; scrollbar-width: thin;
} }
.ItemQtyCard { .ItemQtyCard {
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -159,11 +154,11 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
border: solid 1px #e4e4e4; border: solid 1px #e4e4e4;
background-color: #f3f3f3; background-color: #f3f3f3;
transition-duration: 0.3s; transition-duration: 0.3s;
border-radius: 6px; border-radius: 6px;
opacity: 0.5; opacity: 0.5;
pointer-events: none; pointer-events: none;
} }
@ -194,4 +189,55 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
row-gap: 1rem; row-gap: 1rem;
} }
.qtyDetail {
display: flex;
flex-direction: column;
justify-content: center;
column-gap: 0.1rem;
border-radius: 2px;
}
.qtyUomName {
font-size: 15px;
font-weight: 600;
font-family: "Gilroy";
text-align: center;
}
.qtyprice {
font-size: 16px;
background-color: var(--DEFAULT_SELECTED_COLOR);
color: #fff;
width: 105px;
display: flex;
font-family: var(--PARA_FONT_FAMILY);
justify-content: center;
text-align: center;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
}
.ItemQtyImgCard {
display: flex;
align-items: center;
justify-content: center;
}
.EditQuantity-heading {
display: flex;
align-items: center;
width: 25rem;
}
.EditQuantity-headingname {
display: flex;
align-items: center;
// width: 20rem;
}
.EditQuantity-headingproductname {
display: flex;
align-items: center;
font-size: 14px;
// padding: 1rem;
// width: 25rem;
}

View File

@ -630,6 +630,22 @@
align-items: center; align-items: center;
justify-content: center; justify-content: center;
gap: 10px; gap: 10px;
.allpageSettingIcon {
width: 32px;
height: 32px;
background-color: #1292ee !important;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
padding: 5px !important;
color: #fff;
font-size: 25px !important;
svg {
height: 30px !important;
width: 30px !important;
}
}
.comboPrichangeBTN { .comboPrichangeBTN {
width: 32px; width: 32px;
@ -704,23 +720,35 @@
} }
} }
.MultiSearchIconDiv3 { .MultiSearchIconDiv {
background-color: #ffffff; background-color: #1292ee;
color: #1292ee !important; color: #fff !important;
border-radius: 4px; border-radius: 4px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
cursor: pointer; cursor: pointer;
width: 32px !important; width: 35px !important;
height: 32px; height: 33px;
padding: 4px; padding: 6px;
svg { svg {
font-size: 22px; font-size: 22px;
width: 32px !important; width: 35px !important;
height: 32px; height: 35px;
display: flex; display: flex;
} }
} }
.AsAmtCombo {
svg {
height: 25px;
}
}
.SearchNavMutiple {
display: flex;
align-items: center;
gap: 0;
width: inherit;
}

View File

@ -2,8 +2,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: flex-start; align-items: flex-start;
// border: 0.3px solid black; width: 100%;
width: 95%;
} }
.product-qty-info { .product-qty-info {
@ -60,9 +59,6 @@
align-items: center; align-items: center;
} }
// .Product-table .ant-table{
// width:90%;
// }
.supplierInfo { .supplierInfo {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -70,12 +66,13 @@
padding: 0.8rem; padding: 0.8rem;
gap: 10px; gap: 10px;
width: 100%; width: 100%;
border-radius: 6px;
} }
.supplierInfo1 { .supplierInfo1 {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
width: 80% !important; width: 100% !important;
gap: 1rem; gap: 1rem;
align-items: flex-start; align-items: flex-start;
@ -133,7 +130,6 @@
.extractor-table { .extractor-table {
overflow: auto; overflow: auto;
scrollbar-width: thin; scrollbar-width: thin;
} }
.extractor-table-red .ant-table-thead { .extractor-table-red .ant-table-thead {
@ -171,21 +167,19 @@
&:hover { &:hover {
background-color: #ff4d4f !important; background-color: #ff4d4f !important;
} }
} }
&.added { &.added {
background-color: #52c41a; background-color: #52c41a;
} }
} }
.product-legend { .product-legend {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 10px; gap: 10px;
font-family: 'Poppins'; font-family: "Poppins";
margin-bottom: 10px; margin-bottom: 10px;
.legend-item { .legend-item {
@ -209,40 +203,6 @@
} }
} }
// .supplierInfo .ant-select-selector
// {
// width:15rem !important;
// height:3rem !important;
// }
// .supplierInfo :where(.css-dev-only-do-not-override-2i2tap).ant-select.ant-select-in-form-item
// {
// width:15rem !important;
// height:3rem !important;
// }
// .supplierInfo .ant-input{
// width:15rem !important;
// height:3rem !important;
// }
// .invoiceDetails .ant-input{
// width:15rem !important;
// height:3rem !important;
// }
// .invoiceDetails .example{
// width: 15rem ;
// }
// .invoiceDetails .ant-select-selector
// {
// width:15rem !important;
// height:3rem !important;
// }
// .invoiceDetails :where(.css-dev-only-do-not-override-2i2tap).ant-select.ant-select-in-form-item
// {
// width:15rem !important;
// height:3rem !important;
// }
.stockDiv { .stockDiv {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -282,10 +242,6 @@
display: flex; display: flex;
} }
// .formHeader {
// width: -webkit-fill-available;
// }
.header-buttons { .header-buttons {
display: flex; display: flex;
align-items: center; align-items: center;
@ -395,7 +351,6 @@
&:hover { &:hover {
background-color: #ffffff !important; background-color: #ffffff !important;
// font-size: 16px;
height: max-content !important; height: max-content !important;
} }
@ -468,14 +423,6 @@
} }
} }
// .stockDiv {
// .ant-select-arrow {
// top: 70% !important;
// z-index: 2000 !important;
// cursor: pointer !important;
// }
// }
.product-scan { .product-scan {
position: relative; position: relative;
@ -613,7 +560,6 @@
} }
.stock-input { .stock-input {
// width: 100vw;
width: 100%; width: 100%;
} }
} }
@ -900,6 +846,9 @@
.ant-form-item { .ant-form-item {
margin-bottom: 0 !important; margin-bottom: 0 !important;
} }
.float-label {
margin-bottom: 0;
}
} }
@media (max-width: 400px) { @media (max-width: 400px) {
@ -909,3 +858,6 @@
padding-bottom: 8px !important; padding-bottom: 8px !important;
} }
} }
.inputFormSTOCKFORM {
width: 100%;
}

View File

@ -10,12 +10,6 @@ import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
const queryClient = new QueryClient(); const queryClient = new QueryClient();
// Un Command This line when deployed in App Server
window.addEventListener('beforeunload', (e) => {
e.preventDefault();
e.returnValue = '';
});
ReactDOM.createRoot(document.getElementById('root')).render( ReactDOM.createRoot(document.getElementById('root')).render(
<QueryClientProvider client={queryClient}> <QueryClientProvider client={queryClient}>
<Provider store={store}> <Provider store={store}>