added item wise qty limit

This commit is contained in:
unknown 2026-03-03 19:23:24 +05:30
parent f82af376d3
commit ac6172cdb4
15 changed files with 1295 additions and 737 deletions

View File

@ -301,7 +301,39 @@ const BsBill2 = () => {
const calculatedOverAllQty = calculateOverAllQtyLimit(CartOrderDetails); const calculatedOverAllQty = calculateOverAllQtyLimit(CartOrderDetails);
if (calculatedOverAllQty + 1 > maxQtyLimit) { if (calculatedOverAllQty + 1 > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`); message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = CartOrderDetails.reduce((acc, curr) => {
const inwardId = curr.InwardDtlId;
const qty = Number(curr.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
message.warning(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
return; return;
} }
} }

View File

@ -198,14 +198,12 @@ import CardPopover from '../StandardTable/Utils/CardPopover.jsx';
import UpiPopover from '../StandardTable/Utils/UpiPopOver.jsx'; import UpiPopover from '../StandardTable/Utils/UpiPopOver.jsx';
import { useDateStore } from '../../../../../Features/BookingScreen/BookingData/DateStore.js'; import { useDateStore } from '../../../../../Features/BookingScreen/BookingData/DateStore.js';
import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx'; import BillingTableSkeleton from '../../../../../Components/Skeleton/BillingTableSkeleton.jsx';
import OtherServiceMobilePrint from '../../BookingFunctionality/OtherServiceMobilePrint.jsx';
// Jsx Files // Jsx Files
const OtherServicePrintStyle1 = lazy( const OtherServicePrintStyle1 = lazy(
() => () =>
import('../../../PrintTemplates/ThermalPrinter/OtherServicePrintStyle1.jsx') import('../../../PrintTemplates/ThermalPrinter/OtherServicePrintStyle1.jsx')
); );
const OtherServiceMobilePrint = lazy(
() => import('../../BookingFunctionality/OtherServiceMobilePrint.jsx')
);
const BSOtherServiceClaim = lazy( const BSOtherServiceClaim = lazy(
() => import('../../UtillComponents/BSOtherServiceClaim.jsx') () => import('../../UtillComponents/BSOtherServiceClaim.jsx')
); );

View File

@ -2161,6 +2161,39 @@ const BsBill = () => {
setMessageType('warning'); setMessageType('warning');
return; return;
} }
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = TableData.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMessageData(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setMessageType('warning');
return;
}
} }
} }
const OtherOrderDatas = TableData?.filter( const OtherOrderDatas = TableData?.filter(

View File

@ -721,7 +721,7 @@ export default function BSC1Search(props) {
WithoutTaxRate: WithoutTaxRate:
availableFreeQty * item.OrderRate - availableFreeQty * item.OrderRate -
(availableFreeQty * item.OrderRate * item.TaxPercentage) / (availableFreeQty * item.OrderRate * item.TaxPercentage) /
100, 100,
Offer: availableFreeQty * item.OrderRate, Offer: availableFreeQty * item.OrderRate,
}; };
@ -770,7 +770,7 @@ export default function BSC1Search(props) {
((existingPaidItem.OrderQty + excessQty) * ((existingPaidItem.OrderQty + excessQty) *
item.OrderRate * item.OrderRate *
item.TaxPercentage) / item.TaxPercentage) /
100, 100,
}; };
ModifiedData.push(mergedPaidItem); ModifiedData.push(mergedPaidItem);
@ -805,7 +805,7 @@ export default function BSC1Search(props) {
data?.InwardDtlId === item?.InwardDtlId && data?.InwardDtlId === item?.InwardDtlId &&
data?.ProdId === item?.ProdId && data?.ProdId === item?.ProdId &&
data?.OfferMessage?.[0]?.OfferId === data?.OfferMessage?.[0]?.OfferId ===
item?.OfferMessage?.[0]?.OfferId item?.OfferMessage?.[0]?.OfferId
); );
if (isAlreadyExists !== -1) { if (isAlreadyExists !== -1) {
@ -825,11 +825,11 @@ export default function BSC1Search(props) {
).toFixed(2), ).toFixed(2),
WithoutTaxRate: WithoutTaxRate:
(ModifiedData[isAlreadyExists].OrderQty + item.OrderQty) * (ModifiedData[isAlreadyExists].OrderQty + item.OrderQty) *
item.OrderRate - item.OrderRate -
((ModifiedData[isAlreadyExists].OrderQty + item.OrderQty) * ((ModifiedData[isAlreadyExists].OrderQty + item.OrderQty) *
item.OrderRate * item.OrderRate *
item.TaxPercentage) / item.TaxPercentage) /
100, 100,
Offer: Offer:
(ModifiedData[isAlreadyExists].OrderQty + item.OrderQty) * (ModifiedData[isAlreadyExists].OrderQty + item.OrderQty) *
item.OrderRate, item.OrderRate,
@ -855,10 +855,10 @@ export default function BSC1Search(props) {
const appliedOfferAlreadyExists = AppliedOffers.findIndex( const appliedOfferAlreadyExists = AppliedOffers.findIndex(
(offer) => (offer) =>
offer?.FreeProductsList?.FreeProdId === offer?.FreeProductsList?.FreeProdId ===
matchingFreeProduct?.FreeProdId && matchingFreeProduct?.FreeProdId &&
offer?.TableName === matchingFreeProduct?.TableName && offer?.TableName === matchingFreeProduct?.TableName &&
offer?.TableUniqueName === offer?.TableUniqueName ===
matchingFreeProduct?.TableUniqueName && matchingFreeProduct?.TableUniqueName &&
offer?.OfferId === matchingFreeProduct?.OfferId && offer?.OfferId === matchingFreeProduct?.OfferId &&
offer?.OfferMode === matchingFreeProduct?.OfferMode && offer?.OfferMode === matchingFreeProduct?.OfferMode &&
offer?.FreeProductsList?.ProdVariantDetails?.[0] offer?.FreeProductsList?.ProdVariantDetails?.[0]
@ -1695,7 +1695,7 @@ export default function BSC1Search(props) {
<span <span
style={ style={
record.StockCount > 0 || record.StockCount > 0 ||
record.StockCount === 'Stock Not Maintained' record.StockCount === 'Stock Not Maintained'
? { color: '#000', cursor: 'pointer' } ? { color: '#000', cursor: 'pointer' }
: { color: '#f49898', cursor: 'not-allowed' } : { color: '#f49898', cursor: 'not-allowed' }
} }
@ -1725,7 +1725,7 @@ export default function BSC1Search(props) {
<span <span
style={ style={
record.StockCount > 0 || record.StockCount > 0 ||
record.StockCount === 'Stock Not Maintained' record.StockCount === 'Stock Not Maintained'
? { color: '#000', cursor: 'pointer' } ? { color: '#000', cursor: 'pointer' }
: { color: '#f49898', cursor: 'not-allowed' } : { color: '#f49898', cursor: 'not-allowed' }
} }
@ -1755,7 +1755,7 @@ export default function BSC1Search(props) {
<span <span
style={ style={
record.StockCount > 0 || record.StockCount > 0 ||
record.StockCount === 'Stock Not Maintained' record.StockCount === 'Stock Not Maintained'
? { color: '#000', cursor: 'pointer' } ? { color: '#000', cursor: 'pointer' }
: { color: '#f49898', cursor: 'not-allowed' } : { color: '#f49898', cursor: 'not-allowed' }
} }
@ -1919,11 +1919,11 @@ export default function BSC1Search(props) {
StockCount: StockCount:
qtydata?.ProductDetail?.[0]?.StockAvailable === 'Y' qtydata?.ProductDetail?.[0]?.StockAvailable === 'Y'
? returnVariantStock( ? returnVariantStock(
qtydata?.ProductDetail?.[QtyIndex]?.ProdId, qtydata?.ProductDetail?.[QtyIndex]?.ProdId,
item?.OverAllQty, item?.OverAllQty,
CartOrderDetails, CartOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) )
: 'Stock Not Maintained', : 'Stock Not Maintained',
}); });
}); });
@ -1939,17 +1939,17 @@ export default function BSC1Search(props) {
'Batch No': item?.BatchRef, 'Batch No': item?.BatchRef,
StockCount: onePeiceFlow StockCount: onePeiceFlow
? returnCountStock( ? returnCountStock(
item?.ProdId, item?.ProdId,
item?.BalanceQty, item?.BalanceQty,
CartOrderDetails, CartOrderDetails,
item?.InwardDtlId item?.InwardDtlId
) * item?.NoOfPcs ) * item?.NoOfPcs
: returnCountStock( : returnCountStock(
item?.ProdId, item?.ProdId,
item?.BalanceQty, item?.BalanceQty,
CartOrderDetails, CartOrderDetails,
item?.InwardDtlId item?.InwardDtlId
), ),
'Stock Date': StockDate(item?.InwardDate), 'Stock Date': StockDate(item?.InwardDate),
Price: onePeiceFlow ? item?.OnePcsPrice : item?.SellPrice, Price: onePeiceFlow ? item?.OnePcsPrice : item?.SellPrice,
ExpDate: ExpDate:
@ -2003,13 +2003,13 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
VarientIndex VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
VarientIndex VarientIndex
]?.StockDetails?.[0]?.SellPrice && ]?.StockDetails?.[0]?.SellPrice &&
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2018,9 +2018,9 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
VarientIndex VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
// (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice)
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2062,11 +2062,11 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[0]?.InwardDtlId && ?.StockDetails?.[0]?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[0]?.SellPrice && ?.StockDetails?.[0]?.SellPrice &&
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2075,9 +2075,9 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
VarientIndex VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
// (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice)
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2155,13 +2155,13 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
index.key index.key
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
index.key index.key
]?.StockDetails?.[0]?.SellPrice && ]?.StockDetails?.[0]?.SellPrice &&
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2169,11 +2169,11 @@ export default function BSC1Search(props) {
let Isincartonepc = CartOrderDetails?.filter( let Isincartonepc = CartOrderDetails?.filter(
(cartItem) => (cartItem) =>
cartItem?.ProdId === cartItem?.ProdId ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdId && qtydata?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
VarientIndex VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
// (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice)
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2237,11 +2237,11 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key] qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key]
?.StockDetails?.[0]?.InwardDtlId && ?.StockDetails?.[0]?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key] qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[index.key]
?.StockDetails?.[0]?.SellPrice && ?.StockDetails?.[0]?.SellPrice &&
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2250,9 +2250,9 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId && cartItem?.ProdId === qtydata?.ProductDetail?.[QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[
VarientIndex VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
// (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice)
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2327,15 +2327,15 @@ export default function BSC1Search(props) {
let Isincart = CartOrderDetails?.find( let Isincart = CartOrderDetails?.find(
(cartItem) => (cartItem) =>
cartItem?.ProdId === cartItem?.ProdId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
item?.VarientIndex item?.VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
item?.VarientIndex item?.VarientIndex
]?.StockDetails?.[0]?.SellPrice && ]?.StockDetails?.[0]?.SellPrice &&
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2343,11 +2343,11 @@ export default function BSC1Search(props) {
let Isincartonepc = CartOrderDetails?.filter( let Isincartonepc = CartOrderDetails?.filter(
(cartItem) => (cartItem) =>
cartItem?.ProdId === cartItem?.ProdId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
item?.VarientIndexs item?.VarientIndexs
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
// (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice)
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2425,15 +2425,15 @@ export default function BSC1Search(props) {
let Isincart = CartOrderDetails?.find( let Isincart = CartOrderDetails?.find(
(cartItem) => (cartItem) =>
cartItem?.ProdId === cartItem?.ProdId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
item?.VarientIndex item?.VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
item?.VarientIndex item?.VarientIndex
]?.StockDetails?.[0]?.SellPrice && ]?.StockDetails?.[0]?.SellPrice &&
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2441,11 +2441,11 @@ export default function BSC1Search(props) {
let Isincartonepc = CartOrderDetails?.filter( let Isincartonepc = CartOrderDetails?.filter(
(cartItem) => (cartItem) =>
cartItem?.ProdId === cartItem?.ProdId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[ qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdVariantDetails?.[
item?.VarientIndex item?.VarientIndex
]?.StockDetails?.[0]?.InwardDtlId && ]?.StockDetails?.[0]?.InwardDtlId &&
// (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice) // (cartItem?.OrderRate === item?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]?.StockDetails?.[0]?.SellPrice)
!cartItem?.SalesId !cartItem?.SalesId
); );
@ -2565,7 +2565,7 @@ export default function BSC1Search(props) {
const isKgsProduct = const isKgsProduct =
(a?.ProductDetail?.[QtyIndex]?.UomName?.toLowerCase() === 'kgs' || (a?.ProductDetail?.[QtyIndex]?.UomName?.toLowerCase() === 'kgs' ||
a?.ProductDetail?.[QtyIndex]?.UomName?.toLowerCase() === a?.ProductDetail?.[QtyIndex]?.UomName?.toLowerCase() ===
'kg'?.toLowerCase()) && 'kg'?.toLowerCase()) &&
a?.ProductDetail?.[QtyIndex]?.Size === '1'; a?.ProductDetail?.[QtyIndex]?.Size === '1';
if ( if (
@ -2578,11 +2578,11 @@ export default function BSC1Search(props) {
parseFloat( parseFloat(
onePcs onePcs
? (a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? (a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.OnePcsPrice / ?.StockDetails?.[stockIndex]?.OnePcsPrice /
1000) * 1000) *
(parseFloat(WeightScaleWeight) * 1000) (parseFloat(WeightScaleWeight) * 1000)
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SellPrice / 1000 ?.StockDetails?.[stockIndex]?.SellPrice / 1000
) * ) *
(parseFloat(WeightScaleWeight) * 1000); (parseFloat(WeightScaleWeight) * 1000);
let data = { let data = {
@ -2638,9 +2638,9 @@ export default function BSC1Search(props) {
?.StockDetails?.[stockIndex]?.InwardId, ?.StockDetails?.[stockIndex]?.InwardId,
MRP: onePcs MRP: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.OnePcsPrice ?.StockDetails?.[stockIndex]?.OnePcsPrice
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.MRP, ?.StockDetails?.[stockIndex]?.MRP,
FullProductIdentifierDtls: FullProductIdentifierDtls:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.ProductIdentifierDtls, ?.StockDetails?.[stockIndex]?.ProductIdentifierDtls,
@ -2748,19 +2748,19 @@ export default function BSC1Search(props) {
?.StockDetails?.[stockIndex]?.InwardId, ?.StockDetails?.[stockIndex]?.InwardId,
MRP: onePcs MRP: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.OnePcsPrice ?.StockDetails?.[stockIndex]?.OnePcsPrice
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.MRP, ?.StockDetails?.[stockIndex]?.MRP,
OrderRate: onePcs OrderRate: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.OnePcsPrice ?.StockDetails?.[stockIndex]?.OnePcsPrice
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SellPrice, ?.StockDetails?.[stockIndex]?.SellPrice,
SellingPrice: onePcs SellingPrice: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.OnePcsPrice ?.StockDetails?.[stockIndex]?.OnePcsPrice
: a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] : a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SellPrice, ?.StockDetails?.[stockIndex]?.SellPrice,
SuppId: SuppId:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SuppId, ?.StockDetails?.[stockIndex]?.SuppId,
@ -2851,6 +2851,40 @@ export default function BSC1Search(props) {
setMessageType('warning'); setMessageType('warning');
return; return;
} }
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = CartOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMessageData(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setMessageType('warning');
return;
}
} }
} }
@ -2944,15 +2978,15 @@ export default function BSC1Search(props) {
const isExistsInFreeProdList = hasOffer const isExistsInFreeProdList = hasOffer
? FreeProdList?.filter( ? FreeProdList?.filter(
(f) => (f) =>
f?.FreeProdId === item?.ProdId && f?.FreeProdId === item?.ProdId &&
f?.ProdVariantDetails?.some((variant) => f?.ProdVariantDetails?.some((variant) =>
variant?.StockDetails?.some( variant?.StockDetails?.some(
(stock) => stock?.FreeInwardDtlId === item?.InwardDtlId (stock) => stock?.FreeInwardDtlId === item?.InwardDtlId
) )
) && ) &&
f?.RemainingQty > 0 f?.RemainingQty > 0
) )
: []; : [];
const calculateTaxAmounts = (qty, rate, taxPercentage) => { const calculateTaxAmounts = (qty, rate, taxPercentage) => {
@ -3019,10 +3053,10 @@ export default function BSC1Search(props) {
((cartItem?.OfferModeType && cartItem?.OfferMode === 'B' ((cartItem?.OfferModeType && cartItem?.OfferMode === 'B'
? true ? true
: cartItem?.OfferMode !== 'B') && : cartItem?.OfferMode !== 'B') &&
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'P' &&
cartItem?.OfferMode !== 'C' && cartItem?.OfferMode !== 'C' &&
cartItem?.OfferMode !== 'O' && cartItem?.OfferMode !== 'O' &&
cartItem?.OfferMode !== 'L' cartItem?.OfferMode !== 'L'
? true ? true
: cartItem?.Offer === 0) : cartItem?.Offer === 0)
); );
@ -3039,10 +3073,10 @@ export default function BSC1Search(props) {
(cartItem) => (cartItem) =>
itemMatchCondition(cartItem) && itemMatchCondition(cartItem) &&
(cartItem?.OfferMode !== 'B' && (cartItem?.OfferMode !== 'B' &&
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'P' &&
cartItem?.OfferMode !== 'C' && cartItem?.OfferMode !== 'C' &&
cartItem?.OfferMode !== 'O' && cartItem?.OfferMode !== 'O' &&
cartItem?.OfferMode !== 'L' cartItem?.OfferMode !== 'L'
? true ? true
: cartItem?.Offer === 0) : cartItem?.Offer === 0)
); );
@ -3056,10 +3090,10 @@ export default function BSC1Search(props) {
((cartItem?.OfferModeType && cartItem?.OfferMode === 'B' ((cartItem?.OfferModeType && cartItem?.OfferMode === 'B'
? true ? true
: cartItem?.OfferMode !== 'B') && : cartItem?.OfferMode !== 'B') &&
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'P' &&
cartItem?.OfferMode !== 'L' && cartItem?.OfferMode !== 'L' &&
cartItem?.OfferMode !== 'C' && cartItem?.OfferMode !== 'C' &&
cartItem?.OfferMode !== 'O' cartItem?.OfferMode !== 'O'
? true ? true
: cartItem?.Offer === 0) : cartItem?.Offer === 0)
) )
@ -3070,10 +3104,10 @@ export default function BSC1Search(props) {
!( !(
itemMatchCondition(cartItem) && itemMatchCondition(cartItem) &&
(cartItem?.OfferMode !== 'B' && (cartItem?.OfferMode !== 'B' &&
cartItem?.OfferMode !== 'P' && cartItem?.OfferMode !== 'P' &&
cartItem?.OfferMode !== 'L' && cartItem?.OfferMode !== 'L' &&
cartItem?.OfferMode !== 'C' && cartItem?.OfferMode !== 'C' &&
cartItem?.OfferMode !== 'O' cartItem?.OfferMode !== 'O'
? true ? true
: cartItem?.Offer === 0) : cartItem?.Offer === 0)
) )
@ -3146,8 +3180,8 @@ export default function BSC1Search(props) {
isItemInCart, isItemInCart,
item?.OtherProduct === 'Others' || item?.ScaleType === 'weight' item?.OtherProduct === 'Others' || item?.ScaleType === 'weight'
? ( ? (
(item?.OrderQty || 0) + parseFloat(isItemInCart?.OrderQty) (item?.OrderQty || 0) + parseFloat(isItemInCart?.OrderQty)
)?.toFixed(3) )?.toFixed(3)
: null : null
); );
const updatedData = addFirst const updatedData = addFirst
@ -3274,9 +3308,9 @@ export default function BSC1Search(props) {
isItemInCartHold, isItemInCartHold,
item?.OtherProduct === 'Others' || item?.ScaleType === 'weight' item?.OtherProduct === 'Others' || item?.ScaleType === 'weight'
? ( ? (
(item?.OrderQty || 0) + (item?.OrderQty || 0) +
parseFloat(isItemInCartHold?.OrderQty) parseFloat(isItemInCartHold?.OrderQty)
)?.toFixed(3) )?.toFixed(3)
: null : null
); );
const updatedData = addFirst const updatedData = addFirst
@ -3528,14 +3562,14 @@ export default function BSC1Search(props) {
updatedCartData = cartData.map((item, idx) => updatedCartData = cartData.map((item, idx) =>
idx === indexToCheck idx === indexToCheck
? { ? {
...item, ...item,
Offer: null, Offer: null,
OfferMessage: undefined, OfferMessage: undefined,
OfferMode: undefined, OfferMode: undefined,
OfferModeType: false, OfferModeType: false,
OfferType: undefined, OfferType: undefined,
OfferValue: null, OfferValue: null,
} }
: item : item
); );
} }
@ -3586,8 +3620,8 @@ export default function BSC1Search(props) {
...item, ...item,
Offer: Offer:
sameProduct || sameProduct ||
bestOffer?.OfferMode === 'I' || bestOffer?.OfferMode === 'I' ||
bestOffer?.OfferMode === 'Q' bestOffer?.OfferMode === 'Q'
? bestOffer?.OfferAmount || item.Offer ? bestOffer?.OfferAmount || item.Offer
: item.Offer || bestOffer?.OfferAmount, : item.Offer || bestOffer?.OfferAmount,
OfferType: item?.OfferType || bestOffer?.OfferType, OfferType: item?.OfferType || bestOffer?.OfferType,
@ -3604,10 +3638,10 @@ export default function BSC1Search(props) {
((c?.OfferModeType && c?.OfferMode === 'B' ((c?.OfferModeType && c?.OfferMode === 'B'
? true ? true
: c?.OfferMode !== 'B') && : c?.OfferMode !== 'B') &&
c?.OfferMode !== 'P' && c?.OfferMode !== 'P' &&
c?.OfferMode !== 'C' && c?.OfferMode !== 'C' &&
c?.OfferMode !== 'O' && c?.OfferMode !== 'O' &&
c?.OfferMode !== 'L' c?.OfferMode !== 'L'
? true ? true
: c?.Offer === 0); : c?.Offer === 0);
@ -3915,10 +3949,10 @@ export default function BSC1Search(props) {
return FreeProdList.map((f, i) => return FreeProdList.map((f, i) =>
i === index i === index
? { ? {
...existing, ...existing,
...newFreeProd, ...newFreeProd,
ProdVariantDetails: existing.ProdVariantDetails, ProdVariantDetails: existing.ProdVariantDetails,
} }
: f : f
); );
} else { } else {
@ -3988,7 +4022,7 @@ export default function BSC1Search(props) {
const cycleSize = buyQty + getQty; const cycleSize = buyQty + getQty;
const fullCycles = Math.floor( const fullCycles = Math.floor(
freeCartItem?.reduce((acc, fc) => acc + (fc?.OrderQty || 0), 0) / freeCartItem?.reduce((acc, fc) => acc + (fc?.OrderQty || 0), 0) /
cycleSize cycleSize
); );
const totalFreeQty = fullCycles * getQty; const totalFreeQty = fullCycles * getQty;
@ -4591,15 +4625,15 @@ export default function BSC1Search(props) {
{option.ProductDetail?.filter( {option.ProductDetail?.filter(
(item) => item.OnePcsAvailable == 'Y' (item) => item.OnePcsAvailable == 'Y'
).length !== 0 && ( ).length !== 0 && (
<GoTriangleRight <GoTriangleRight
style={{ style={{
fontSize: '25px', fontSize: '25px',
}} }}
onClick={() => { onClick={() => {
setOnePeiceFlow(true); setOnePeiceFlow(true);
}} }}
/> />
)} )}
</div> </div>
</div> </div>
), ),
@ -4633,7 +4667,7 @@ export default function BSC1Search(props) {
<FiSearch <FiSearch
className="BSC1Search-searchicon" className="BSC1Search-searchicon"
// onClick={() => OnfocusTrue()} // onClick={() => OnfocusTrue()}
/> />
</div> </div>
{ProductSearch?.length > 5 && {ProductSearch?.length > 5 &&
@ -4724,8 +4758,8 @@ export default function BSC1Search(props) {
<img <img
src={ src={
item?.ProdLogo && item?.ProdLogo &&
item?.ProdLogo != null && item?.ProdLogo != null &&
item?.ProdLogo != undefined item?.ProdLogo != undefined
? item?.ProdLogo ? item?.ProdLogo
: defaultimage : defaultimage
} }

File diff suppressed because it is too large Load Diff

View File

@ -35,6 +35,7 @@ const CardPage1 = (props) => {
const [QtyIndex, setQtyIndex] = useState(0); const [QtyIndex, setQtyIndex] = useState(0);
const [ConfigDataList, setConfigDataList] = useState([]); const [ConfigDataList, setConfigDataList] = useState([]);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const kioskTemplateData = props?.data; const kioskTemplateData = props?.data;
const SettingDataSelector = useSelector(settingDataSelector); const SettingDataSelector = useSelector(settingDataSelector);
const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter( const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter(
@ -60,20 +61,6 @@ const CardPage1 = (props) => {
//Card on click function //Card on click function
const CardOnClick = async (item, Parameter) => { const CardOnClick = async (item, Parameter) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setTimeout(() => {
setMaxLimitExceeded(false);
}, 2000);
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -321,6 +308,61 @@ const CardPage1 = (props) => {
}; };
// add Product in cart state // add Product in cart state
const AddOrderDetails = (item) => { const AddOrderDetails = (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
}
}
const isItemInCart = KioskOrderDetails?.find( const isItemInCart = KioskOrderDetails?.find(
(cartItem) => (cartItem) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
@ -792,7 +834,7 @@ const CardPage1 = (props) => {
/> />
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
</div> </div>

View File

@ -28,6 +28,7 @@ const CardPage2 = (props) => {
const BookingType = useSelector(GlobalBookingTypeKiosk); const BookingType = useSelector(GlobalBookingTypeKiosk);
const kioskTemplateData = props?.data; const kioskTemplateData = props?.data;
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const [openQuantity, setopenQuantity] = useState(false); const [openQuantity, setopenQuantity] = useState(false);
const [VariantOpen, setVariantOpen] = useState(false); const [VariantOpen, setVariantOpen] = useState(false);
const [onePeiceFlow, setOnePeiceFlow] = useState(false); const [onePeiceFlow, setOnePeiceFlow] = useState(false);
@ -59,20 +60,6 @@ const CardPage2 = (props) => {
//Card on click function //Card on click function
const CardOnClick = async (item, Parameter) => { const CardOnClick = async (item, Parameter) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setTimeout(() => {
setMaxLimitExceeded(false);
}, 2000);
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -321,6 +308,61 @@ const CardPage2 = (props) => {
}; };
// add Product in cart state // add Product in cart state
const AddOrderDetails = (item) => { const AddOrderDetails = (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
}
}
const isItemInCart = KioskOrderDetails?.find( const isItemInCart = KioskOrderDetails?.find(
(cartItem) => (cartItem) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
@ -601,7 +643,7 @@ const CardPage2 = (props) => {
)} )}
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
<Drawer <Drawer

View File

@ -27,6 +27,7 @@ const CardPage3 = (props) => {
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
const BookingType = useSelector(GlobalBookingTypeKiosk); const BookingType = useSelector(GlobalBookingTypeKiosk);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const [openQuantity, setopenQuantity] = useState(false); const [openQuantity, setopenQuantity] = useState(false);
const [VariantOpen, setVariantOpen] = useState(false); const [VariantOpen, setVariantOpen] = useState(false);
const [onePeiceFlow, setOnePeiceFlow] = useState(false); const [onePeiceFlow, setOnePeiceFlow] = useState(false);
@ -58,19 +59,6 @@ const CardPage3 = (props) => {
}, []); }, []);
//Card on click function //Card on click function
const CardOnClick = async (item, Parameter) => { const CardOnClick = async (item, Parameter) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setTimeout(() => {
setMaxLimitExceeded(false);
}, 2000);
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -318,6 +306,61 @@ const CardPage3 = (props) => {
}; };
// add Product in cart state // add Product in cart state
const AddOrderDetails = (item) => { const AddOrderDetails = (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
}
}
const isItemInCart = KioskOrderDetails?.find( const isItemInCart = KioskOrderDetails?.find(
(cartItem) => (cartItem) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
@ -604,7 +647,7 @@ const CardPage3 = (props) => {
)} )}
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
<Drawer <Drawer

View File

@ -27,6 +27,7 @@ const CardPage4 = (props) => {
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
const BookingType = useSelector(GlobalBookingTypeKiosk); const BookingType = useSelector(GlobalBookingTypeKiosk);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const [quantities, setQuantities] = useState({}); const [quantities, setQuantities] = useState({});
const [openQuantity, setopenQuantity] = useState(false); const [openQuantity, setopenQuantity] = useState(false);
const [VariantOpen, setVariantOpen] = useState(false); const [VariantOpen, setVariantOpen] = useState(false);
@ -89,19 +90,6 @@ const CardPage4 = (props) => {
//Card on click function //Card on click function
const CardOnClick = async (item, Parameter) => { const CardOnClick = async (item, Parameter) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setTimeout(() => {
setMaxLimitExceeded(false);
}, 2000);
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -342,6 +330,61 @@ const CardPage4 = (props) => {
}; };
// add Product in cart state // add Product in cart state
const AddOrderDetails = (item) => { const AddOrderDetails = (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
}
}
const isItemInCart = KioskOrderDetails?.find( const isItemInCart = KioskOrderDetails?.find(
(cartItem) => (cartItem) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
@ -625,7 +668,7 @@ const CardPage4 = (props) => {
)} )}
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
<Drawer <Drawer

View File

@ -9,9 +9,11 @@ import { PreferenceData } from '../../../Features/BookingScreen/BookingData/Book
import { calculateOverAllQtyLimit } from '../../../utils/calculations'; import { calculateOverAllQtyLimit } from '../../../utils/calculations';
import { IoIosWarning } from 'react-icons/io'; import { IoIosWarning } from 'react-icons/io';
import { useState } from 'react'; import { useState } from 'react';
import { message } from 'antd';
const KisokOrderCart1 = (props) => { const KisokOrderCart1 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const preferenceDatas = useSelector(PreferenceData); const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece = const overAllLimitPreferenece =
@ -45,10 +47,51 @@ const KisokOrderCart1 = (props) => {
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true); setMaxLimitExceeded(true);
// Reset after 3 seconds // Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => { setTimeout(() => {
setMaxLimitExceeded(false); setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000); }, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return; return;
} }
} }
@ -209,13 +252,14 @@ const KisokOrderCart1 = (props) => {
remove remove
</div> </div>
</div> </div>
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached
</p>
</div>
</div> </div>
))} ))}
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p>
<IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p>
</div>
</div> </div>
</div> </div>
); );

View File

@ -17,6 +17,7 @@ const KisokOrderCart2 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData); const preferenceDatas = useSelector(PreferenceData);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const overAllLimitPreferenece = const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find( preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y'); (item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
@ -49,8 +50,50 @@ const KisokOrderCart2 = (props) => {
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true); setMaxLimitExceeded(true);
// Reset after 3 seconds // Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => { setTimeout(() => {
setMaxLimitExceeded(false); setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000); }, 2000);
return; return;
} }
@ -232,7 +275,7 @@ const KisokOrderCart2 = (props) => {
</div> </div>
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
</div> </div>

View File

@ -19,6 +19,7 @@ const KisokOrderCart3 = (props) => {
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const getKioskDarkColourdata = useSelector(getKioskDarkColour); const getKioskDarkColourdata = useSelector(getKioskDarkColour);
const preferenceDatas = useSelector(PreferenceData); const preferenceDatas = useSelector(PreferenceData);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const overAllLimitPreferenece = const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find( preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y'); (item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
@ -52,8 +53,50 @@ const KisokOrderCart3 = (props) => {
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true); setMaxLimitExceeded(true);
// Reset after 3 seconds // Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => { setTimeout(() => {
setMaxLimitExceeded(false); setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000); }, 2000);
return; return;
} }
@ -245,7 +288,7 @@ const KisokOrderCart3 = (props) => {
</div> </div>
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
</div> </div>

View File

@ -27,6 +27,7 @@ const OrderView1 = (props) => {
: null; : null;
const dispatch = useDispatch(); const dispatch = useDispatch();
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
const preferenceDatas = useSelector(PreferenceData); const preferenceDatas = useSelector(PreferenceData);
@ -57,16 +58,56 @@ const OrderView1 = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) { if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) { if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails); const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true); setMaxLimitExceeded(true);
// Reset after 3 seconds // Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => { setTimeout(() => {
setMaxLimitExceeded(false); setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000); }, 2000);
return; return;
} }
@ -258,13 +299,14 @@ const OrderView1 = (props) => {
remove remove
</div> </div>
</div> </div>
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached
</p>
</div>
</div> </div>
))} ))}
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p>
<IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p>
</div>
</div> </div>
</div> </div>
<div <div

View File

@ -29,6 +29,7 @@ const KioskOrderView2 = (props) => {
: null; : null;
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData); const preferenceDatas = useSelector(PreferenceData);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const overAllLimitPreferenece = const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find( preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
@ -73,8 +74,50 @@ const KioskOrderView2 = (props) => {
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true); setMaxLimitExceeded(true);
// Reset after 3 seconds // Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => { setTimeout(() => {
setMaxLimitExceeded(false); setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000); }, 2000);
return; return;
} }
@ -339,7 +382,7 @@ const KioskOrderView2 = (props) => {
</div> </div>
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
</div> </div>

View File

@ -32,6 +32,7 @@ const KioskOrderView = (props) => {
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
const preferenceDatas = useSelector(PreferenceData); const preferenceDatas = useSelector(PreferenceData);
const [maxLimitExceededMessage, setMaxLimitExceededMessage] = useState(null);
const [maxLimitExceeded, setMaxLimitExceeded] = useState(false); const [maxLimitExceeded, setMaxLimitExceeded] = useState(false);
const overAllLimitPreferenece = const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find( preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
@ -60,15 +61,56 @@ const KioskOrderView = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) { if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) { if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails); const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) { if ((calculatedOverAllQty + 1) > maxQtyLimit) {
setMaxLimitExceeded(true); setMaxLimitExceeded(true);
// Reset after 3 seconds // Reset after 3 seconds
setMaxLimitExceededMessage(`Maximum Quantity (${maxQtyLimit}) Reached`);
setTimeout(() => { setTimeout(() => {
setMaxLimitExceeded(false); setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000);
return;
}
} else if (itemWiseLimitPreferenece) {
const inwardQtyMap = KioskOrderDetails.reduce((acc, curr) => {
const inwardId = curr?.InwardDtlId;
const qty = Number(curr?.OrderQty) || 0;
if (acc[inwardId]) {
acc[inwardId] += qty;
} else {
acc[inwardId] = qty;
}
return acc;
}, {});
const currentInwardId = item?.InwardDtlId;
const addQty = 1;
if (inwardQtyMap[currentInwardId]) {
inwardQtyMap[currentInwardId] += addQty;
} else {
inwardQtyMap[currentInwardId] = addQty;
}
console.log("Final InwardDtlId Qty Map:", inwardQtyMap);
const isExceeded = Object.values(inwardQtyMap).some(
(qty) => qty > maxQtyLimit
);
if (isExceeded) {
setMaxLimitExceeded(true);
// Reset after 3 seconds
setMaxLimitExceededMessage(`Item Quantity Limit Exceeds than ${maxQtyLimit}`);
setTimeout(() => {
setMaxLimitExceeded(false);
setMaxLimitExceededMessage(null);
}, 2000); }, 2000);
return; return;
} }
@ -331,7 +373,7 @@ const KioskOrderView = (props) => {
</div> </div>
<div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}> <div className={`Item3Warning ${maxLimitExceeded ? 'showing' : ''}`}>
<p> <p>
<IoIosWarning size={30} color='#b99400' />Maximum Quantity ({maxQtyLimit}) Reached <IoIosWarning size={30} color='#b99400' />{maxLimitExceededMessage}
</p> </p>
</div> </div>
</div> </div>