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 { clearSession, getSession } from './Services/Others.js';
const KisokSelBooking = lazy(() => import('./Pages/SelfBooking/KisokSelBooking'));
const IndividualBooking = lazy(() => import('./Pages/SelfBooking/IndividualBooking'));
const KisokSelBooking = lazy(
() => import('./Pages/SelfBooking/KisokSelBooking')
);
const IndividualBooking = lazy(
() => import('./Pages/SelfBooking/IndividualBooking')
);
const commonSubDir = import.meta.env.ENV_COMMON_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 ExtendSubscriptionModal from './Pages/ExtentedModal/ExtendSubscriptionModal.jsx';
const isCapacitor = () => !!(window.Capacitor?.isNativePlatform?.());
const isCapacitor = () => !!window.Capacitor?.isNativePlatform?.();
// Define your home/exit pages here
const HOME_PAGES = [
'/landing-page/home',
'/home/landing-page/home',
'app-page/home', // android minimize
'app-page/home', // android minimize
];
const LOGIN_PAGES = ['signin', 'login', 'auth'];
@ -37,7 +41,14 @@ const LOGIN_PAGES = ['signin', 'login', 'auth'];
const AppRoutes = () => {
const ItemCard = useSelector(GlobalItemCard);
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 navigate = useNavigate();
@ -56,7 +67,7 @@ const AppRoutes = () => {
const path = location.pathname + (location.search || '');
// 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');
let stack = raw ? JSON.parse(raw) : [];
@ -78,7 +89,7 @@ const AppRoutes = () => {
const currentPath = location.pathname;
// 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
return;
}
@ -104,77 +115,77 @@ const AppRoutes = () => {
useEffect(() => {
if (!isMobile && !isIOS && !isCapacitor()) return;
const handler = async () => {
let backButtonListener;
const setupBackButton = async () => {
try {
const currentPath = location.pathname + (location.search || '');
console.log('🔙 Back pressed:', currentPath);
backButtonListener = await CapacitorApp.addListener(
'backButton',
async () => {
try {
const currentPath = location.pathname + (location.search || '');
console.log('🔙 Back pressed:', currentPath);
// On home page
if (HOME_PAGES.some(p => currentPath.includes(p))) {
if (isCapacitor()) {
console.log('📱 Minimizing app');
await CapacitorApp.minimizeApp(); // minimize not exit
// 🏠 Home page minimize
if (HOME_PAGES.some((p) => currentPath.includes(p))) {
if (isCapacitor()) {
await CapacitorApp.minimizeApp();
}
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;
}
// 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');
);
} catch (err) {
console.error('Listener error:', err);
}
};
let listener;
try {
listener = CapacitorApp.addListener('backButton', handler);
} catch (e) {}
setupBackButton();
return () => {
try {
if (listener?.remove) listener.remove();
} catch (e) {}
backButtonListener?.remove();
} catch (err) {}
};
}, [navigate, location.pathname, location.search]);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,5 @@
import React, {
lazy,
Suspense,
useCallback,
useEffect,
useRef,
@ -11,13 +10,9 @@ import { useDispatch, useSelector } from 'react-redux';
import { useNavigate } from 'react-router-dom';
import { TiLocation } from 'react-icons/ti';
import { BsFillPersonFill } from 'react-icons/bs';
import { PiStorefrontFill } from 'react-icons/pi';
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 { MdTableChart } from 'react-icons/md';
import { MdEdit } from 'react-icons/md';
import MyTime, { DateDisplay, TimeDisplay } from './BSTimer.jsx';
import '../../../../Styles/BookingScreen/Template/BSLayout7/BSC1NavBar.scss';
import {
@ -31,7 +26,6 @@ import {
sessionStore,
} from '../../../../Services/Others';
import PozoHomeIcon from '../UtillComponents/Pozo retail icons/PozoHomeIcon.jsx';
import { GlobalCompBranchData } from '../../../../Features/BrachLogin/BranchLogin.js';
import { isMobile } from 'react-device-detect';
import { FaDisplay } from 'react-icons/fa6';
import {
@ -233,166 +227,161 @@ const BSC1NavBar = () => {
}
}, [isFullscreen]);
return (
<Suspense fallback={<div>Loading...</div>}>
<>
<div
className="BSC1NavBar-Container"
style={{
// backgroundColor:
// BSComboData?.BookingLayout?.[0] === 'Combo1'
// ? '#645CAA'
// : '#08A7B8',
background: 'linear-gradient(to bottom right, #1e2536, #2a3447)',
}}
>
<div className="BSC1NavBar-div1">
<div className="BSC1NavBar-manu">
<Popconfirm
title="Are you sure you want to go to home?"
onConfirm={handleHome}
okText="Yes"
cancelText="No"
>
<PozoHomeIcon
style={{ color: '#1292EE', fontSize: '30px' }}
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}
<>
<div
className="BSC1NavBar-Container"
style={{
// backgroundColor:
// BSComboData?.BookingLayout?.[0] === 'Combo1'
// ? '#645CAA'
// : '#08A7B8',
background: 'linear-gradient(to bottom right, #1e2536, #2a3447)',
}}
>
<div className="BSC1NavBar-div1">
<div className="BSC1NavBar-manu">
<Popconfirm
title="Are you sure you want to go to home?"
onConfirm={handleHome}
okText="Yes"
cancelText="No"
>
<PozoHomeIcon
style={{ color: '#1292EE', fontSize: '30px' }}
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">
<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>
</>
</Suspense>
<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}
/>
)}
</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 { FaUserLarge } from 'react-icons/fa6';
import { BiSolidPhoneCall } from 'react-icons/bi';
@ -39,67 +39,65 @@ const BSNavBarUserInfo = ({
navigate(`${subDirectory}app-page/branch-login`);
};
return (
<Suspense fallback={<NavbarSkeleton />}>
<div ref={divRef} className="BSNavBar1-Accmenu">
<div className="BSNavBar1-Acc-menu">
{CompBranchData?.length > 1 && (
<div onClick={BacktoLogin}>
<p className="BSNavBar1-Acc-menu-list">Back to Signin</p>
</div>
)}
<div className="salesUserProfile" style={{ position: 'relative' }}>
<div
<div ref={divRef} className="BSNavBar1-Accmenu">
<div className="BSNavBar1-Acc-menu">
{CompBranchData?.length > 1 && (
<div onClick={BacktoLogin}>
<p className="BSNavBar1-Acc-menu-list">Back to Signin</p>
</div>
)}
<div className="salesUserProfile" style={{ position: 'relative' }}>
<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={{
position: 'absolute',
top: '5px',
right: '5px',
cursor: 'pointer',
display: 'flex',
justifyContent: 'flex-end',
gap: '1rem',
fontSize: '12px',
textTransform: 'uppercase',
color: '#0b53b3',
fontWeight: '500',
}}
>
{/* {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={{
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} />
({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>
</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 moment from 'moment';
const OtherServiceMobilePrint = async (PrintDetails, Mode, Preference, Token) => {
console.log(PrintDetails, Mode, Preference, Token, PrintDetails?.[0]?.OtherServicesTicketDetails,'PrintDetails, UpiId, Mode, Preference, Token');
const OtherServiceMobilePrint = async (
PrintDetails,
Mode,
Preference,
Token
) => {
console.log(
PrintDetails,
Mode,
Preference,
Token,
PrintDetails?.[0]?.OtherServicesTicketDetails,
'PrintDetails, UpiId, Mode, Preference, Token'
);
let Otherservicesdetails = PrintDetails?.[0]?.OtherServicesTicketDetails;
let Otherservicesdetails1 = PrintDetails;
let UpiId = PrintDetails?.[0]?.TicketNo;
let Otherservicesdetails = PrintDetails?.[0]?.OtherServicesTicketDetails;
let Otherservicesdetails1 = PrintDetails;
let UpiId = PrintDetails?.[0]?.TicketNo;
let PrintDetail;
let PaymentDetail;
let PrintLogo = Preference?.[0]?.SettingDtlDetails?.filter((i) => i.SettingIdName === 'PrintLogo' )?.[0];
let PrintGreeting = Preference?.[0]?.SettingDtlDetails?.filter((i) => i.SettingIdName === 'PrintGreetings' )?.[0];
let PrintLogo = Preference?.[0]?.SettingDtlDetails?.filter(
(i) => i.SettingIdName === 'PrintLogo'
)?.[0];
let PrintGreeting = Preference?.[0]?.SettingDtlDetails?.filter(
(i) => i.SettingIdName === 'PrintGreetings'
)?.[0];
if (Mode === 'Reprint') {
PrintDetail = PrintDetails?.[0]?.OtherServicesTicketDetails;
PaymentDetail = PrintDetails?.[0]?.OtherServicesTicketDetails;
@ -31,12 +46,12 @@ let UpiId = PrintDetails?.[0]?.TicketNo;
let FooterPrint = '';
let OrderId;
let receiptTextest = '';
let totalAmt = PrintDetail?.[0]?.NetAmount
// let totalestAmt = PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount
// ? PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount
// : '';
OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
let totalAmt = PrintDetail?.[0]?.NetAmount;
// let totalestAmt = PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount
// ? PrintDetail?.find((a) => a.OrderType === 'E')?.NetAmount
// : '';
OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
? extractLastNumber(PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId)
: '';
const aggregatedPayments = PaymentDetail?.reduce((acc, paymentdata) => {
@ -133,7 +148,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
} else {
TokenDataSales = [false];
}
if (Mode !== 'TableBooking' && Token !== 'WithOutToken') {
let TokenData2 = []; // Array to store final grouped data
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'
// );
let Takeawaydata = PrintDetails;
console.log(Takeawaydata, 'TakeawaydataTakeawaydata');
console.log(Takeawaydata, 'TakeawaydataTakeawaydata');
let Dineindata = PrintDetails?.productDetails?.filter(
(item) => item?.BookingTypeName?.toLowerCase() === 'dine in'
@ -265,7 +280,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
}
let fulltakeawaydata;
let fulldineindata;
if (Otherservicesdetails?.length > 0) {
// Check if TakeawayTotalOfferAmt is greater than zero
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 rateSpacing = Math.max(0, 6 - String(data?.Rate).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 =
' '.repeat(snoSpacing) +
parseInt(index + 1) +
' ' +
(
data?.ServiceName + ' '.repeat(20)
).substring(0, 20) +
(data?.ServiceName + ' '.repeat(20)).substring(0, 20) +
' ' +
' '.repeat(qtySpacing) +
String(data?.Qty);
@ -294,7 +309,6 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
' '.repeat(rateSpacing) +
String(data?.Rate) +
' ' +
' '.repeat(totalAmtSpacing) +
String(data?.TotalAmount) +
' ' +
@ -337,10 +351,10 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
'S.No' +
' ' +
' Name ' +
(' ') +
' ' +
' ' +
'Qty ' +
('') + // Add Disc column conditionally
'' + // Add Disc column conditionally
' ' +
'Rate ' +
' ' +
@ -357,44 +371,43 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
} else {
fulltakeawaydata = '';
}
// PAYEMENT TYPE NAME
// PAYEMENT TYPE NAME
let PaymentType;
PaymentType =
'[C]<b><u>' +
Otherservicesdetails1?.[0]?.PaymentTypeName +
' ' +
'Bill' +
'</u></b>\n';
// BRANCJ DETAILS
PaymentType =
'[C]<b><u>' +
Otherservicesdetails1?.[0]?.PaymentTypeName +
' ' +
'Bill' +
'</u></b>\n';
// BRANCJ DETAILS
let BranchAddress;
// if (Otherservicesdetails1) {
if (
Otherservicesdetails1?.[0]?.Address1 !== null &&
Otherservicesdetails1?.[0]?.Address1 !== undefined &&
Otherservicesdetails1?.[0]?.City !== null &&
Otherservicesdetails1?.[0]?.City !== undefined
) {
BranchAddress =
'[C]' +
Otherservicesdetails1?.[0]?.Address1 +
',\n' +
'[C]' +
Otherservicesdetails1?.[0]?.City +
'-' +
Otherservicesdetails1?.[0]?.Zip +
'\n';
} else if (
Otherservicesdetails1?.[0]?.Address1 !== null &&
Otherservicesdetails1?.[0]?.Address1 !== undefined
) {
BranchAddress =
'[C]' + Otherservicesdetails1?.[0]?.Address1 + '\n';
} else {
BranchAddress = '';
}
if (
Otherservicesdetails1?.[0]?.Address1 !== null &&
Otherservicesdetails1?.[0]?.Address1 !== undefined &&
Otherservicesdetails1?.[0]?.City !== null &&
Otherservicesdetails1?.[0]?.City !== undefined
) {
BranchAddress =
'[C]' +
Otherservicesdetails1?.[0]?.Address1 +
',\n' +
'[C]' +
Otherservicesdetails1?.[0]?.City +
'-' +
Otherservicesdetails1?.[0]?.Zip +
'\n';
} else if (
Otherservicesdetails1?.[0]?.Address1 !== null &&
Otherservicesdetails1?.[0]?.Address1 !== undefined
) {
BranchAddress = '[C]' + Otherservicesdetails1?.[0]?.Address1 + '\n';
} else {
BranchAddress = '';
}
// } else {
// BranchAddress = '';
// }
@ -405,7 +418,8 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
Otherservicesdetails1?.[0]?.BrMobile !== undefined &&
Otherservicesdetails1?.[0]?.BrMobile !== ''
) {
MobileNumber = '[C]<b>Ph:' + Otherservicesdetails1?.[0]?.BrMobileNo + '</b>\n';
MobileNumber =
'[C]<b>Ph:' + Otherservicesdetails1?.[0]?.BrMobileNo + '</b>\n';
} else {
MobileNumber = '';
}
@ -436,9 +450,9 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
"[C]<b><font size='big'>" +
Otherservicesdetails1?.[0]?.BranchName +
'</font></b>\n' +
// AppSpecificName +
// AppSpecificName +
BranchAddress +
// GST +
// GST +
MobileNumber +
'[C]\n' +
PaymentType +
@ -448,27 +462,27 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
OrderDate +
'</b>\n' +
fulltakeawaydata +
// fulldineindata +
// finalinfo +
// fulldineindata +
// finalinfo +
'\n' +
// '[C]------------------------------------------------\n' +
// Gstdetails +
// GstHeader +
// GstBreakup.join('') +
// IGstHeader +
// IGstBreakup.join('') +
// VATHeader +
// VATBreakup.join('') +
// GstdetailsLines +
"[C]<b><font size='normal'>" +
// Gstdetails +
// GstHeader +
// GstBreakup.join('') +
// IGstHeader +
// IGstBreakup.join('') +
// VATHeader +
// VATBreakup.join('') +
// GstdetailsLines +
"[C]<b><font size='normal'>" +
'Bill Amt: ' +
parseFloat(Otherservicesdetails1?.[0]?.BillAmount).toFixed(2) +
'</font></b>\n' +
"[C]<b><font size='normal'>" +
"[C]<b><font size='normal'>" +
'Tax: ' +
parseFloat(Otherservicesdetails1?.[0]?.TaxAmount).toFixed(2) +
'</font></b>\n' +
"[C]<b><font size='normal'>" +
'</font></b>\n' +
"[C]<b><font size='normal'>" +
'Amount: ' +
parseFloat(Otherservicesdetails1?.[0]?.NetAmount).toFixed(2) +
'</font></b>\n' +
@ -478,17 +492,17 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
parseFloat(Otherservicesdetails1?.[0]?.NetAmount).toFixed(2) +
'</font></b>\n' +
'[L]<b>------------------------------------------------</b>\n' +
// SplitPayment +
// CashierName +
// CustName +
// waiterName +
// SplitPayment +
// CashierName +
// CustName +
// waiterName +
"[C]<font size='normal'>YOUR ORDER NO:" +
SalesId +
'</font>\n\n';
// +
// thankyou
console.log(receiptText, 'receiptTextreceiptTextreceiptTextreceiptText');
console.log(receiptText, 'receiptTextreceiptTextreceiptTextreceiptText');
// "[C]"+"Thank You ! Visit Again"+"\n"
@ -519,7 +533,7 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
'ImgE' +
TypeCheck +
'OthTypS' +
"OtherService" +
'OtherService' +
'OthTypE' +
'OthqrS' +
UpiId +
@ -547,6 +561,5 @@ OrderIdSales = PrintDetail?.find((a) => a.OrderType === 'S')?.OrderId
'HasFooterTextE' +
';end;';
}
};
export default OtherServiceMobilePrint;
export default OtherServiceMobilePrint;

View File

@ -1,11 +1,4 @@
import {
useEffect,
useRef,
useState,
useCallback,
lazy,
Suspense,
} from 'react';
import { useEffect, useRef, useState, useCallback, lazy } from 'react';
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
import moment from 'moment';
import { Form, Radio } from 'antd';
@ -2173,200 +2166,198 @@ const SplitPayment = (props) => {
}
return (
<Suspense fallback={<div>Loading...</div>}>
<>
<Messages messageType={messageType} messageData={messageData} />
<div className="splitmodal">
<DefaultModal
open={Splitpayment}
title="Split Payment"
handleCancel={() => {
SplitSelPayMode[`PaymentStatus-0`] !== 'S' && HandleModalClose();
}}
footer={false}
width={1000}
className={'splitpaymentModal'}
children={
<div className="splitpaymentModal-content">
<p>Total Amount : {safeRound(TotalAmount)}</p>
<p>
Remaining Balance :{' '}
{TotalAmount -
(isNaN(TotalSplitAmount) ? 0 : TotalSplitAmount)}{' '}
</p>
<>
<Messages messageType={messageType} messageData={messageData} />
<div className="splitmodal">
<DefaultModal
open={Splitpayment}
title="Split Payment"
handleCancel={() => {
SplitSelPayMode[`PaymentStatus-0`] !== 'S' && HandleModalClose();
}}
footer={false}
width={1000}
className={'splitpaymentModal'}
children={
<div className="splitpaymentModal-content">
<p>Total Amount : {safeRound(TotalAmount)}</p>
<p>
Remaining Balance :{' '}
{TotalAmount -
(isNaN(TotalSplitAmount) ? 0 : TotalSplitAmount)}{' '}
</p>
<>{calculateField()}</>
{TotalAmount > TotalSplitAmount &&
SplitSelPayMode[`PaymentStatus-${count}`] === 'S' && (
<Form.Item>
<div
<>{calculateField()}</>
{TotalAmount > TotalSplitAmount &&
SplitSelPayMode[`PaymentStatus-${count}`] === 'S' && (
<Form.Item>
<div
style={{
display: 'flex',
justifyContent: 'flex-end',
}}
>
<PlusOutlined
style={{
display: 'flex',
justifyContent: 'flex-end',
backgroundColor: '#37943C',
color: 'white',
borderRadius: '50px',
padding: '5px',
}}
>
<PlusOutlined
style={{
backgroundColor: '#37943C',
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}`}
/>
onClick={() => setCount(count + 1)}
/>
</div>
</Form.Item>
)}
</div>
)}
{PaymentUpiOptions?.length > 0 && OrderId && (
}
/>
</div>
{TotalAmount == 0 && Success && (
<div>
<QrComponent com={`WelcomeScreen**${branchName}`} />
</div>
)}
{TotalAmount > 0 &&
qrCode &&
PaymentUpiOptions?.length > 0 &&
SelUpiId && (
<div>
<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>
)}
{PrintOrderDetails?.length > 0 &&
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
<div style={{ display: 'none' }}>
<PaymentPdfBooking
index={index}
table2Data={orderDetail}
singleData2={orderDetail?.productDetails}
orderId={
orderDetail?.OrderId &&
extractLastNumberOrderId(
orderDetail?.OrderId,
orderDetail?.FYStatus
)
}
CreatedDate={orderDetail?.CreatedDate}
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
Preference={SettingDataSelector}
printDatas={printDatas}
/>
</div>
))}
{CreditCustomer && (
{PaymentUpiOptions?.length > 0 && OrderId && (
<div>
<QrComponent
com={`DisplaySuccessQRCodeScreen**...**${extractLastNumberOrderId(OrderId, PrintOrderDetails?.[0]?.OrderDetails?.[0]?.FYStatus)}**${Todaydate}`}
/>
</div>
)}
{PrintOrderDetails?.length > 0 &&
PrintOrderDetails?.[0]?.OrderDetails?.map((orderDetail, index) => (
<div style={{ display: 'none' }}>
<BsBillingCreditCustomer
ModalCreditCustomer={CreditCustomer}
handlemodalclose={() => {
handleCreditCustomer('Cancel');
}}
handleOk={() => {
handleCreditCustomer('Submit');
}}
SplitPayAmount={SplitSelPayMode[`PayAmount-${count}`]}
<PaymentPdfBooking
index={index}
table2Data={orderDetail}
singleData2={orderDetail?.productDetails}
orderId={
orderDetail?.OrderId &&
extractLastNumberOrderId(
orderDetail?.OrderId,
orderDetail?.FYStatus
)
}
CreatedDate={orderDetail?.CreatedDate}
PaymentStatus={PrintOrderDetails?.[0]?.PaymentOrderDtl}
Preference={SettingDataSelector}
printDatas={printDatas}
/>
</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');
))}
{CreditCustomer && (
<div style={{ display: 'none' }}>
<BsBillingCreditCustomer
ModalCreditCustomer={CreditCustomer}
handlemodalclose={() => {
handleCreditCustomer('Cancel');
}}
footer={false}
children={
<div style={{ overflow: 'scroll' }}>
handleOk={() => {
handleCreditCustomer('Submit');
}}
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
style={{
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-evenly',
alignItems: 'center',
flexDirection: 'row-reverse',
width: '100px',
}}
>
<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
style={{
display: 'flex',
flexDirection: 'row-reverse',
width: '100px',
<Buttons
buttonText="OK"
color="901D77"
icon={<ArrowRightOutlined />}
handleSubmit={() => {
Upimodel('Submit');
}}
>
<Buttons
buttonText="OK"
color="901D77"
icon={<ArrowRightOutlined />}
handleSubmit={() => {
Upimodel('Submit');
}}
/>
</div>
/>
</div>
</div>
}
/>
)}
{addcustomer && (
<FeaturesFunctionalities
handleAddCustomerCancel={handleAddCustomerCancel}
addcustomer={addcustomer}
/>
)}
</>
</Suspense>
</div>
}
/>
)}
{addcustomer && (
<FeaturesFunctionalities
handleAddCustomerCancel={handleAddCustomerCancel}
addcustomer={addcustomer}
/>
)}
</>
);
};
export default SplitPayment;

View File

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

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,20 @@
import {
useCallback,
useEffect,
useRef,
useState,
lazy,
Suspense,
} from 'react';
import { useCallback, useEffect, useRef, useState, lazy } from 'react';
import { useNavigate, useOutletContext } from 'react-router-dom';
import { shallowEqual, useDispatch } from 'react-redux';
import { useSelector } from 'react-redux';
import { DatePicker, Tooltip } from 'antd';
import dayjs from 'dayjs';
import '../../Styles/DashBoard/RetailDashBoard.scss';
const GraphChart = lazy(() => import('./Chart/GraphChart'));
const TopSellingProductsChart = lazy(
() => import('./TopSellingProductsChart.jsx')
);
import sandClock from '../../Images/sandClock.webp';
import Add from '../../Images/dashboard/Add.webp';
import AddPurchase from '../../Images/dashboard/AddPurchase.webp';
import invoice from '../../Images/dashboard/invoice.webp';
import user from '../../Images/dashboard/user.webp';
import report from '../../Images/dashboard/report.webp';
import {
GlobalPricingAppPricingName,
StoredSessionData,
@ -78,13 +66,11 @@ const DefaultModal = lazy(() =>
default: m.DefaultModal,
}))
);
const RadioGrpButton = lazy(() =>
import('../../Components/Forms/RadioGroup.jsx').then((m) => ({
default: m.RadioGrpButton,
}))
);
const DropDowns = lazy(() =>
import('../../Components/Forms/DropDown.jsx').then((m) => ({
default: m.DropDowns,
@ -1436,18 +1422,16 @@ const RetailDashboard = () => {
?.toUpperCase()}
</div>
{userprofile && (
<Suspense fallback={null}>
<BSNavBarUserInfo
isOpen={userprofile}
divRef={userProfileRef}
userProfileData={{
UserImage: user,
UserName: AppDetails?.[0]?.UserName,
MobileNo: AppDetails?.[0]?.MobileNo,
}}
Logout={Logout}
/>
</Suspense>
<BSNavBarUserInfo
isOpen={userprofile}
divRef={userProfileRef}
userProfileData={{
UserImage: user,
UserName: AppDetails?.[0]?.UserName,
MobileNo: AppDetails?.[0]?.MobileNo,
}}
Logout={Logout}
/>
)}
</div>
</div>
@ -1464,22 +1448,20 @@ const RetailDashboard = () => {
{/* Branch Filter Dropdown */}
{CompBranchData?.length > 1 && selection !== 'top-selling-products' && (
<div className="branch-filter-dropdown">
<Suspense fallback={<div>Loading...</div>}>
<DropDowns
options={[
{ value: 'all', label: 'All Branches' },
...CompBranchData?.map((option) => ({
value: option.BrId,
label: option.BrName,
})),
]}
className="branch-filter-select"
onChangeFunction={onChangeBranchFilter}
valueData={selectedBranchForFilter}
defaultValue="all"
placeholder="All Branches"
/>
</Suspense>
<DropDowns
options={[
{ value: 'all', label: 'All Branches' },
...CompBranchData?.map((option) => ({
value: option.BrId,
label: option.BrName,
})),
]}
className="branch-filter-select"
onChangeFunction={onChangeBranchFilter}
valueData={selectedBranchForFilter}
defaultValue="all"
placeholder="All Branches"
/>
</div>
)}
@ -1500,9 +1482,7 @@ const RetailDashboard = () => {
<div className="TotalRevenue">
<div className="tlxHeader"></div>
<div className="TotalRevenue-Graph">
<Suspense fallback={<Loader />}>
<GraphChart datasets={datasets} />
</Suspense>
<GraphChart datasets={datasets} />
</div>
</div>
@ -2375,110 +2355,104 @@ const RetailDashboard = () => {
</>
) : (
<>
<Suspense fallback={<Loader />}>
<TopSellingProductsChart
dates={dates}
products={products}
loading={loading}
totalPages={totalPages}
page={page}
setPage={setPage}
fetchProducts={fetchProducts}
initialDate={initialDate}
/>
</Suspense>
<TopSellingProductsChart
dates={dates}
products={products}
loading={loading}
totalPages={totalPages}
page={page}
setPage={setPage}
fetchProducts={fetchProducts}
initialDate={initialDate}
/>
</>
)}
<Suspense fallback={null}>
<DefaultModal
open={modal}
title="Authentication"
width={500}
footer={false}
handleCancel={handlePageChange}
>
<>
<div className="modalContentsadminuser">
<DropDowns
options={userDropDown?.map((option) => ({
value: option?.UserId,
label: option?.UserName,
}))}
label={<label className="required">User Name</label>}
className="field-DropDown"
onChangeFunction={(e) => UserDropDownChange(e)}
isOnchanges={selectedUserData ? true : false}
valueData={selectedUserData}
disabled={disabled}
/>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div className="RadioButton">
<Suspense fallback={<div>Loading...</div>}>
<RadioGrpButton
content={[
{ value: 'O', label: 'OTP' },
{ value: 'P', label: 'PIN' },
]}
fieldState={true}
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>
<DefaultModal
open={modal}
title="Authentication"
width={500}
footer={false}
handleCancel={handlePageChange}
>
<>
<div className="modalContentsadminuser">
<DropDowns
options={userDropDown?.map((option) => ({
value: option?.UserId,
label: option?.UserName,
}))}
label={<label className="required">User Name</label>}
className="field-DropDown"
onChangeFunction={(e) => UserDropDownChange(e)}
isOnchanges={selectedUserData ? true : false}
valueData={selectedUserData}
disabled={disabled}
/>
<div style={{ display: 'flex', justifyContent: 'space-between' }}>
<div className="RadioButton">
<RadioGrpButton
content={[
{ value: 'O', label: 'OTP' },
{ value: 'P', label: 'PIN' },
]}
fieldState={true}
defaultSelect={SelectType}
onSelectFuntion={(e) => ChangeMethod(e)}
/>
</div>
</div>
</>
</DefaultModal>
</Suspense>
{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>
</>
</DefaultModal>
</div>
);
};

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -69,7 +69,7 @@ input::-webkit-inner-spin-button {
.price-button {
border-radius: 8px;
border: 0px solid none;
border: none;
font-size: 24px;
font-weight: 600;
background-color: var(--SELECTED_COLOR);
@ -78,6 +78,7 @@ input::-webkit-inner-spin-button {
width: max-content;
padding: 0px 12px;
cursor: pointer;
height: 40px;
}
.price-button-disabled {
@ -143,7 +144,7 @@ input::-webkit-inner-spin-button {
justify-content: center;
gap: 0.2rem;
background-color: #dbdbdb;
font-family: 'Poppins', sans-serif;
font-family: "Poppins", sans-serif;
}
.payment-div-0-userplus {
@ -238,3 +239,38 @@ input::-webkit-inner-spin-button {
.ChairClrGreen {
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 {
border-spacing: 0;
text-align: center;
font-size: 16px;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
@ -277,6 +277,8 @@
background: var(--SELECTED_COLOR);
text-align: center;
border: 0;
color: #fff;
cursor: pointer;
}
.Table4-Btn-final-price-disabled {

View File

@ -5,24 +5,12 @@
background-color: #fff;
width: inherit;
overflow: auto;
// height: clamp(70vh, 50vh, 40vh);
// height: 85vh;
//vm
height: 80vh;
}
.BSBillingTable5-table-master-div-6 {
//vm
height: 70vh;
}
// .BSLayout5-Master .BSBillingTable5-table-master-div {
// height: 91vh !important;
// }
// .BSLayout5-Master .BSBilling4TableCont-default {
// height: 93vh;
// }
.BSLayout5-Master .AddFavList {
left: 0;
height: 95vh;
@ -46,11 +34,6 @@
justify-items: center;
}
.BSBillingTable5-billtable {
// height:100Vh;
// overflow: auto;
}
.BSC1-Master .BSBillingTable5-billtable {
height: 100%;
overflow: auto;
@ -66,7 +49,6 @@
display: flex;
align-items: center;
gap: 1rem;
// margin-bottom: 10px;
}
.BSBillingTable-title {
@ -108,7 +90,6 @@
}
.BSBillingTable5-table-td {
// border: 1px solid #dddddd;
border-bottom: 1.9px dashed #000;
text-align: left;
padding: 8px;
@ -119,7 +100,6 @@
}
.BSBillingTable5-table-th {
// border: 1px solid #dddddd;
border-bottom: 1.9px solid #000;
padding: 10px;
text-align: center;
@ -130,25 +110,23 @@
}
.BSBillingTable5-table-notes {
font-size: '14px';
font-size: "14px";
font-weight: 500;
}
.BSBillingTable5-table-cont {
text-align: left;
line-height: 1.5;
font-size: 15px;
font-size: 14px;
}
.BSBillingTable5-table-sub-td {
// display: flex;
font-size: 14px;
font-weight: 500;
color: #52c41a;
}
.BSBillingTable5-table-tr:nth-child(even) {
// background-color: #dddddd;
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) {
.BSBillingTable-oCbtn {
position: fixed !important;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,8 +1,4 @@
.BSC1Search-container {
// display: flex;
// flex-direction: row;
// padding: 0.5rem 0 0 1.5rem;
// gap: 0.5rem;
width: 100%;
display: flex;
flex-direction: row;
@ -143,7 +139,6 @@
scrollbar-width: thin;
}
.ItemQtyCard {
display: flex;
justify-content: center;
@ -159,11 +154,11 @@
display: flex;
justify-content: center;
flex-direction: column;
justify-content: center;
justify-content: center;
border: solid 1px #e4e4e4;
background-color: #f3f3f3;
transition-duration: 0.3s;
border-radius: 6px;
transition-duration: 0.3s;
border-radius: 6px;
opacity: 0.5;
pointer-events: none;
}
@ -194,4 +189,55 @@
display: flex;
flex-direction: column;
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;
justify-content: center;
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 {
width: 32px;
@ -704,23 +720,35 @@
}
}
.MultiSearchIconDiv3 {
background-color: #ffffff;
color: #1292ee !important;
.MultiSearchIconDiv {
background-color: #1292ee;
color: #fff !important;
border-radius: 4px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
width: 32px !important;
height: 32px;
padding: 4px;
width: 35px !important;
height: 33px;
padding: 6px;
svg {
font-size: 22px;
width: 32px !important;
height: 32px;
width: 35px !important;
height: 35px;
display: flex;
}
}
.AsAmtCombo {
svg {
height: 25px;
}
}
.SearchNavMutiple {
display: flex;
align-items: center;
gap: 0;
width: inherit;
}

View File

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