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(
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2100,6 +2100,40 @@ const BSItemCard = (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 = Qty || 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -3693,7 +3727,7 @@ const BSItemCard = (props) => {
|
||||||
parseInt(totalSelectedProductQty || 0) +
|
parseInt(totalSelectedProductQty || 0) +
|
||||||
parseInt(reorderComboConsumed || 0);
|
parseInt(reorderComboConsumed || 0);
|
||||||
}
|
}
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let getCurrentProdDtl = orderDetails?.filter(
|
let getCurrentProdDtl = orderDetails?.filter(
|
||||||
(a) => a?.ProdName === ProdName
|
(a) => a?.ProdName === ProdName
|
||||||
);
|
);
|
||||||
|
|
@ -3894,7 +3928,7 @@ const BSItemCard = (props) => {
|
||||||
parseInt(totalSelectedProductQty || 0) +
|
parseInt(totalSelectedProductQty || 0) +
|
||||||
parseInt(reorderComboConsumed || 0);
|
parseInt(reorderComboConsumed || 0);
|
||||||
}
|
}
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let getCurrentProdDtl = orderDetails?.filter((a) => a?.ProdId === ProdId);
|
let getCurrentProdDtl = orderDetails?.filter((a) => a?.ProdId === ProdId);
|
||||||
let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => {
|
let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => {
|
||||||
return (
|
return (
|
||||||
|
|
@ -3930,7 +3964,7 @@ const BSItemCard = (props) => {
|
||||||
}, 0);
|
}, 0);
|
||||||
totalOrderQty =
|
totalOrderQty =
|
||||||
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
||||||
if (
|
if (
|
||||||
parseInt(ItemQuantity) >
|
parseInt(ItemQuantity) >
|
||||||
|
|
@ -4016,7 +4050,7 @@ const BSItemCard = (props) => {
|
||||||
parseInt(totalSelectedProductQty || 0) +
|
parseInt(totalSelectedProductQty || 0) +
|
||||||
parseInt(reorderComboConsumed || 0);
|
parseInt(reorderComboConsumed || 0);
|
||||||
}
|
}
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let getCurrentProdDtl = orderDetails?.filter((a) => a?.ProdId === ProdId);
|
let getCurrentProdDtl = orderDetails?.filter((a) => a?.ProdId === ProdId);
|
||||||
let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => {
|
let totalOrderQty = getCurrentProdDtl?.reduce((accumulator, card) => {
|
||||||
return (
|
return (
|
||||||
|
|
@ -4055,7 +4089,7 @@ const BSItemCard = (props) => {
|
||||||
}, 0);
|
}, 0);
|
||||||
totalOrderQty =
|
totalOrderQty =
|
||||||
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
||||||
if (
|
if (
|
||||||
parseInt(ItemQuantity) >
|
parseInt(ItemQuantity) >
|
||||||
|
|
@ -4147,7 +4181,7 @@ const BSItemCard = (props) => {
|
||||||
parseInt(totalSelectedProductQty || 0) +
|
parseInt(totalSelectedProductQty || 0) +
|
||||||
parseInt(reorderComboConsumed || 0);
|
parseInt(reorderComboConsumed || 0);
|
||||||
}
|
}
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let getCurrentProdDtl = orderDetails?.filter(
|
let getCurrentProdDtl = orderDetails?.filter(
|
||||||
(a) => a?.ProdId === ProdId && a?.InwardDtlId === InwardDtlId
|
(a) => a?.ProdId === ProdId && a?.InwardDtlId === InwardDtlId
|
||||||
);
|
);
|
||||||
|
|
@ -4190,7 +4224,7 @@ const BSItemCard = (props) => {
|
||||||
}, 0);
|
}, 0);
|
||||||
totalOrderQty =
|
totalOrderQty =
|
||||||
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
|
|
||||||
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
||||||
if (
|
if (
|
||||||
|
|
@ -4274,7 +4308,7 @@ const BSItemCard = (props) => {
|
||||||
parseInt(totalSelectedProductQty || 0) +
|
parseInt(totalSelectedProductQty || 0) +
|
||||||
parseInt(reorderComboConsumed || 0);
|
parseInt(reorderComboConsumed || 0);
|
||||||
}
|
}
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
let getCurrentProdDtl = orderDetails?.filter(
|
let getCurrentProdDtl = orderDetails?.filter(
|
||||||
(a) => a?.ProdId === ProdId && a?.InwardDtlId === InwardDtlId
|
(a) => a?.ProdId === ProdId && a?.InwardDtlId === InwardDtlId
|
||||||
);
|
);
|
||||||
|
|
@ -4321,7 +4355,7 @@ const BSItemCard = (props) => {
|
||||||
}, 0);
|
}, 0);
|
||||||
totalOrderQty =
|
totalOrderQty =
|
||||||
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
parseInt(totalOrderQty || 0) + parseInt(comboConsumed || 0);
|
||||||
} catch (_) {}
|
} catch (_) { }
|
||||||
|
|
||||||
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
let OverallProdQty = totalOrderQty - totalSelectedProductQty;
|
||||||
if (
|
if (
|
||||||
|
|
|
||||||
|
|
@ -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