added item wise qty limit
This commit is contained in:
parent
f82af376d3
commit
ac6172cdb4
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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')
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue