kisok quantity constrain

This commit is contained in:
unknown 2026-02-24 14:33:29 +05:30
parent 58e1a5e7a7
commit 70444d3028
11 changed files with 556 additions and 348 deletions

View File

@ -1,6 +1,6 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { Drawer } from 'antd'; import { Drawer, message } from 'antd';
import { DefaultModal } from '../../../Components/Modal/DefaultModal'; import { DefaultModal } from '../../../Components/Modal/DefaultModal';
import { import {
changeKioskPageName, changeKioskPageName,
@ -16,10 +16,12 @@ import {
GlobalBookingTypeKiosk, GlobalBookingTypeKiosk,
} from '../../../Features/BookingScreen/BookingData/KioskBookingData'; } from '../../../Features/BookingScreen/BookingData/KioskBookingData';
import horizontal from '../../../Images/defaultItemImg.png'; import horizontal from '../../../Images/defaultItemImg.png';
import { getConfigType } from '../../../Features/BookingScreen/BookingData/BookingData'; import { getConfigType, PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { calculateOverAllQtyLimit } from '../../../utils/calculations.js';
const CardPage1 = (props) => { const CardPage1 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk); const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk);
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
@ -35,7 +37,13 @@ const CardPage1 = (props) => {
const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter( const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter(
(i) => i.SettingIdName === 'PrintUom' (i) => i.SettingIdName === 'PrintUom'
)?.[0]; )?.[0];
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
useEffect(() => { useEffect(() => {
getBookingTypeId(); getBookingTypeId();
}, []); }, []);
@ -49,6 +57,15 @@ 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) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {

View File

@ -1,6 +1,6 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { Drawer } from 'antd'; import { Drawer, message } from 'antd';
import { DefaultModal } from '../../../Components/Modal/DefaultModal'; import { DefaultModal } from '../../../Components/Modal/DefaultModal';
import { import {
changeKioskPageName, changeKioskPageName,
@ -15,10 +15,12 @@ import {
changeKioskOrderDetails, changeKioskOrderDetails,
} from '../../../Features/BookingScreen/BookingData/KioskBookingData'; } from '../../../Features/BookingScreen/BookingData/KioskBookingData';
import horizontal from '../../../Images/defaultItemImg.png'; import horizontal from '../../../Images/defaultItemImg.png';
import { getConfigType } from '../../../Features/BookingScreen/BookingData/BookingData'; import { getConfigType, PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { calculateOverAllQtyLimit } from '../../../utils/calculations.js';
const CardPage2 = (props) => { const CardPage2 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk); const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk);
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
@ -35,6 +37,13 @@ const CardPage2 = (props) => {
(i) => i.SettingIdName === 'PrintUom' (i) => i.SettingIdName === 'PrintUom'
)?.[0]; )?.[0];
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
useEffect(() => { useEffect(() => {
getBookingTypeId(); getBookingTypeId();
}, []); }, []);
@ -48,6 +57,16 @@ 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) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -81,11 +100,11 @@ const CardPage2 = (props) => {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0] item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
?.InwardDtlId && ?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0] item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
?.SellPrice ?.SellPrice
); );
if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart && Isincart?.StockAvailable === 'Y') {
if (Isincart?.BalanceQty > Isincart?.OrderQty) { if (Isincart?.BalanceQty > Isincart?.OrderQty) {
@ -131,13 +150,13 @@ const CardPage2 = (props) => {
(cartItem) => (cartItem) =>
cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.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
); );
console.log(Isincart, item, KioskOrderDetails, 'IsincartsingleVarient'); console.log(Isincart, item, KioskOrderDetails, 'IsincartsingleVarient');
if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart && Isincart?.StockAvailable === 'Y') {
@ -236,7 +255,7 @@ const CardPage2 = (props) => {
SinglePc: onePcs ? 'Y' : 'N', SinglePc: onePcs ? 'Y' : 'N',
NoOfPcs: onePcs NoOfPcs: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.NoOfPcs ?.StockDetails?.[stockIndex]?.NoOfPcs
: null, : null,
ProdVariantName: ProdVariantName:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
@ -261,14 +280,14 @@ const CardPage2 = (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,
SuppId: SuppId:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SuppId, ?.StockDetails?.[stockIndex]?.SuppId,
@ -312,28 +331,28 @@ const CardPage2 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem.BookingTypeName === item.BookingTypeName cartItem.BookingTypeName === item.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -515,9 +534,9 @@ const CardPage2 = (props) => {
card?.OverAllQty, card?.OverAllQty,
KioskOrderDetails KioskOrderDetails
) > 0) || ) > 0) ||
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
) )
? 'CardPage2-container' ? 'CardPage2-container'
: 'CardPage2-container-dis ' : 'CardPage2-container-dis '
} }
@ -540,9 +559,9 @@ const CardPage2 = (props) => {
card?.OverAllQty, card?.OverAllQty,
KioskOrderDetails KioskOrderDetails
) > 0) || ) > 0) ||
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
) ? ( ) ? (
'' ''
) : ( ) : (
<div <div
@ -560,17 +579,17 @@ const CardPage2 = (props) => {
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
)) && ( )) && (
<p className="CardPage2-container-price"> <p className="CardPage2-container-price">
{' '} {' '}
<span style={{ fontSize: '16px', fontFamily: 'gilroy' }}> <span style={{ fontSize: '16px', fontFamily: 'gilroy' }}>
</span> </span>
{ItemSellingPrice(card)}&nbsp; {ItemSellingPrice(card)}&nbsp;
<span className="BSItemCard-itemCount"> <span className="BSItemCard-itemCount">
({ItemSize(card)} {ItemUomName(card)}) ({ItemSize(card)} {ItemUomName(card)})
</span> </span>
</p> </p>
)} )}
</div> </div>
) )
)} )}
@ -723,7 +742,7 @@ const CardPage2 = (props) => {
KioskOrderDetails, KioskOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) > 0 || ) > 0 ||
qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !== qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !==
'Y' 'Y'
? 'ProVariantCard' ? 'ProVariantCard'
: 'ProVariantCard-dis' : 'ProVariantCard-dis'
@ -739,7 +758,7 @@ const CardPage2 = (props) => {
KioskOrderDetails, KioskOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) > 0 || ) > 0 ||
qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !== qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !==
'Y' ? ( 'Y' ? (
<div> {item?.StockDetails?.[0]?.SellPrice}</div> <div> {item?.StockDetails?.[0]?.SellPrice}</div>
) : ( ) : (

View File

@ -1,5 +1,5 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { Drawer } from 'antd'; import { Drawer, message } from 'antd';
import { IoCheckmarkCircle } from 'react-icons/io5'; import { IoCheckmarkCircle } from 'react-icons/io5';
import { DefaultModal } from '../../../Components/Modal/DefaultModal'; import { DefaultModal } from '../../../Components/Modal/DefaultModal';
import defaultimage from '../../../Images/defaultItemImg.png'; import defaultimage from '../../../Images/defaultItemImg.png';
@ -14,10 +14,12 @@ import {
import { settingDataSelector } from '../../../Features/PreferenceMaster/PreferenceMaster.js'; import { settingDataSelector } from '../../../Features/PreferenceMaster/PreferenceMaster.js';
import horizontal from '../../../Images/defaultItemImg.png'; import horizontal from '../../../Images/defaultItemImg.png';
import { getKioskLightColour } from '../../../Features/Kiosk/kiosk'; import { getKioskLightColour } from '../../../Features/Kiosk/kiosk';
import { getConfigType } from '../../../Features/BookingScreen/BookingData/BookingData'; import { getConfigType, PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { calculateOverAllQtyLimit } from '../../../utils/calculations.js';
const CardPage3 = (props) => { const CardPage3 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk); const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk);
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
console.log(KioskOrderDetails, 'KioskOrderDetailsKioskOrderDetails'); console.log(KioskOrderDetails, 'KioskOrderDetailsKioskOrderDetails');
@ -35,6 +37,13 @@ const CardPage3 = (props) => {
const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter( const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter(
(i) => i.SettingIdName === 'PrintUom' (i) => i.SettingIdName === 'PrintUom'
)?.[0]; )?.[0];
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const onClose = () => { const onClose = () => {
setopenQuantity(false); setopenQuantity(false);
}; };
@ -47,6 +56,15 @@ 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) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -80,11 +98,11 @@ const CardPage3 = (props) => {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0] item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
?.InwardDtlId && ?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0] item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
?.SellPrice ?.SellPrice
); );
if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart && Isincart?.StockAvailable === 'Y') {
if (Isincart?.BalanceQty > Isincart?.OrderQty) { if (Isincart?.BalanceQty > Isincart?.OrderQty) {
@ -131,13 +149,13 @@ const CardPage3 = (props) => {
(cartItem) => (cartItem) =>
cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.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
); );
console.log(Isincart, item, KioskOrderDetails, 'IsincartsingleVarient'); console.log(Isincart, item, KioskOrderDetails, 'IsincartsingleVarient');
if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart && Isincart?.StockAvailable === 'Y') {
@ -234,7 +252,7 @@ const CardPage3 = (props) => {
SinglePc: onePcs ? 'Y' : 'N', SinglePc: onePcs ? 'Y' : 'N',
NoOfPcs: onePcs NoOfPcs: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.NoOfPcs ?.StockDetails?.[stockIndex]?.NoOfPcs
: null, : null,
ProdVariantName: ProdVariantName:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
@ -259,14 +277,14 @@ const CardPage3 = (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,
SuppId: SuppId:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SuppId, ?.StockDetails?.[stockIndex]?.SuppId,
@ -310,28 +328,28 @@ const CardPage3 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem.BookingTypeName === item.BookingTypeName cartItem.BookingTypeName === item.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -516,9 +534,9 @@ const CardPage3 = (props) => {
card?.OverAllQty, card?.OverAllQty,
KioskOrderDetails KioskOrderDetails
) > 0) || ) > 0) ||
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
) )
? 'CardPage3-container' ? 'CardPage3-container'
: 'CardPage3-container-dis' : 'CardPage3-container-dis'
} }
@ -529,10 +547,10 @@ const CardPage3 = (props) => {
{KioskOrderDetails?.some( {KioskOrderDetails?.some(
(item) => item?.ProdName === card?.ProdName (item) => item?.ProdName === card?.ProdName
) && ( ) && (
<div className="CardPage3-check-symbol"> <div className="CardPage3-check-symbol">
<IoCheckmarkCircle /> <IoCheckmarkCircle />
</div> </div>
)} )}
<img <img
src={ src={
card?.ProductDetail?.[0]?.ProdLogo card?.ProductDetail?.[0]?.ProdLogo
@ -548,9 +566,9 @@ const CardPage3 = (props) => {
card?.OverAllQty, card?.OverAllQty,
KioskOrderDetails KioskOrderDetails
) > 0) || ) > 0) ||
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
) ? ( ) ? (
'' ''
) : ( ) : (
<div <div
@ -568,13 +586,13 @@ const CardPage3 = (props) => {
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
)) && ( )) && (
<p className="CardPage3-container-price"> <p className="CardPage3-container-price">
{ItemSellingPrice(card)}&nbsp; {ItemSellingPrice(card)}&nbsp;
<span className="BSItemCard-itemCount"> <span className="BSItemCard-itemCount">
({ItemSize(card)} {ItemUomName(card)}) ({ItemSize(card)} {ItemUomName(card)})
</span> </span>
</p> </p>
)} )}
</div> </div>
) )
)} )}
@ -724,7 +742,7 @@ const CardPage3 = (props) => {
KioskOrderDetails, KioskOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) > 0 || ) > 0 ||
qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !== qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !==
'Y' 'Y'
? 'ProVariantCard' ? 'ProVariantCard'
: 'ProVariantCard-dis' : 'ProVariantCard-dis'
@ -740,7 +758,7 @@ const CardPage3 = (props) => {
KioskOrderDetails, KioskOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) > 0 || ) > 0 ||
qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !== qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !==
'Y' ? ( 'Y' ? (
<div>{item?.StockDetails?.[0]?.SellPrice}</div> <div>{item?.StockDetails?.[0]?.SellPrice}</div>
) : ( ) : (

View File

@ -3,7 +3,7 @@ import { useDispatch, useSelector } from 'react-redux';
import { AiFillPlusCircle, AiFillMinusCircle } from 'react-icons/ai'; import { AiFillPlusCircle, AiFillMinusCircle } from 'react-icons/ai';
import { BsHandbag } from 'react-icons/bs'; import { BsHandbag } from 'react-icons/bs';
import { DefaultModal } from '../../../Components/Modal/DefaultModal'; import { DefaultModal } from '../../../Components/Modal/DefaultModal';
import { Drawer } from 'antd'; import { Drawer, message } from 'antd';
import '../../../Styles/Kiosk/CardPage/CardPage4.scss'; import '../../../Styles/Kiosk/CardPage/CardPage4.scss';
import { import {
GlobalBookingTypeKiosk, GlobalBookingTypeKiosk,
@ -14,10 +14,12 @@ import {
import { settingDataSelector } from '../../../Features/PreferenceMaster/PreferenceMaster.js'; import { settingDataSelector } from '../../../Features/PreferenceMaster/PreferenceMaster.js';
import horizontal from '../../../Images/defaultItemImg.png'; import horizontal from '../../../Images/defaultItemImg.png';
import { getKioskLightColour } from '../../../Features/Kiosk/kiosk'; import { getKioskLightColour } from '../../../Features/Kiosk/kiosk';
import { getConfigType } from '../../../Features/BookingScreen/BookingData/BookingData'; import { getConfigType, PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { calculateOverAllQtyLimit } from '../../../utils/calculations.js';
const CardPage4 = (props) => { const CardPage4 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk); const kioskCategoriesCard = useSelector(GlobalProductCardListKiosk);
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
console.log(KioskOrderDetails, 'KioskOrderDetails'); console.log(KioskOrderDetails, 'KioskOrderDetails');
@ -36,7 +38,13 @@ const CardPage4 = (props) => {
const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter( const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails.filter(
(i) => i.SettingIdName === 'PrintUom' (i) => i.SettingIdName === 'PrintUom'
)?.[0]; )?.[0];
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
useEffect(() => { useEffect(() => {
getBookingTypeId(); getBookingTypeId();
}, []); }, []);
@ -79,6 +87,15 @@ 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) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
setOnePeiceFlow(Parameter === 'OnePeiceProduct'); setOnePeiceFlow(Parameter === 'OnePeiceProduct');
const transformedItem = { const transformedItem = {
@ -112,11 +129,11 @@ const CardPage4 = (props) => {
(cartItem) => (cartItem) =>
cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId && cartItem?.ProdId === item?.ProductDetail?.[0]?.ProdId &&
cartItem?.InwardDtlId === cartItem?.InwardDtlId ===
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0] item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
?.InwardDtlId && ?.InwardDtlId &&
cartItem?.OrderRate === cartItem?.OrderRate ===
item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0] item?.ProductDetail?.[0]?.ProdVariantDetails?.[0]?.StockDetails?.[0]
?.SellPrice ?.SellPrice
); );
if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart && Isincart?.StockAvailable === 'Y') {
if (Isincart?.BalanceQty > Isincart?.OrderQty) { if (Isincart?.BalanceQty > Isincart?.OrderQty) {
@ -162,13 +179,13 @@ const CardPage4 = (props) => {
(cartItem) => (cartItem) =>
cartItem?.ProdId === qtydata?.ProductDetail?.[item?.QtyIndex]?.ProdId && cartItem?.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
); );
if (Isincart && Isincart?.StockAvailable === 'Y') { if (Isincart && Isincart?.StockAvailable === 'Y') {
@ -259,7 +276,7 @@ const CardPage4 = (props) => {
SinglePc: onePcs ? 'Y' : 'N', SinglePc: onePcs ? 'Y' : 'N',
NoOfPcs: onePcs NoOfPcs: onePcs
? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] ? a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.NoOfPcs ?.StockDetails?.[stockIndex]?.NoOfPcs
: null, : null,
ProdVariantName: ProdVariantName:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
@ -284,14 +301,14 @@ const CardPage4 = (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,
SuppId: SuppId:
a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex] a?.ProductDetail?.[QtyIndex]?.ProdVariantDetails?.[VarientIndex]
?.StockDetails?.[stockIndex]?.SuppId, ?.StockDetails?.[stockIndex]?.SuppId,
@ -335,28 +352,28 @@ const CardPage4 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -583,9 +600,9 @@ const CardPage4 = (props) => {
card?.OverAllQty, card?.OverAllQty,
KioskOrderDetails KioskOrderDetails
) > 0) || ) > 0) ||
card?.ProductDetail?.some( card?.ProductDetail?.some(
(item) => item?.StockAvailable !== 'Y' (item) => item?.StockAvailable !== 'Y'
) ? ( ) ? (
<div <div
className="CardPage4-addbutton" className="CardPage4-addbutton"
onClick={() => CardOnClick(card)} onClick={() => CardOnClick(card)}
@ -745,7 +762,7 @@ const CardPage4 = (props) => {
KioskOrderDetails, KioskOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) > 0 || ) > 0 ||
qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !== qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !==
'Y' 'Y'
? 'ProVariantCard' ? 'ProVariantCard'
: 'ProVariantCard-dis' : 'ProVariantCard-dis'
@ -761,7 +778,7 @@ const CardPage4 = (props) => {
KioskOrderDetails, KioskOrderDetails,
item?.ProdVariantName item?.ProdVariantName
) > 0 || ) > 0 ||
qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !== qtydata?.ProductDetail?.[QtyIndex]?.StockAvailable !==
'Y' ? ( 'Y' ? (
<div>{item?.StockDetails?.[0]?.SellPrice} </div> <div>{item?.StockDetails?.[0]?.SellPrice} </div>
) : ( ) : (

View File

@ -1,4 +1,4 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useSelector, useDispatch } from 'react-redux'; import { useSelector, useDispatch } from 'react-redux';
import axios from 'axios'; import axios from 'axios';
import { Skeleton } from 'antd'; import { Skeleton } from 'antd';
@ -70,6 +70,11 @@ const KioskBookingPage = () => {
}, []); }, []);
const fetchData = async () => { const fetchData = async () => {
dispatch(getPreferenceData({
CompId: SessionDtl?.CompId,
BranchId: SessionDtl?.BranchId,
AppId: SessionDtl?.AppId,
})).unwrap();
const queryParams = await getQueryParams(); const queryParams = await getQueryParams();
console.log('queryParams', queryParams); console.log('queryParams', queryParams);
@ -143,7 +148,7 @@ const KioskBookingPage = () => {
responseData?.SessionId != null && responseData?.SessionId != null &&
responseData?.SessionId != undefined && responseData?.SessionId != undefined &&
sessionStore('SessionId', responseData?.SessionId); sessionStore('SessionId', responseData?.SessionId);
responseData?.DeviceAddress != null && responseData?.DeviceAddress != null &&
responseData?.DeviceAddress != undefined && responseData?.DeviceAddress != undefined &&
sessionStore('DeviceAddress', MACAddress); sessionStore('DeviceAddress', MACAddress);
sessionStore('hasRefreshed', true); sessionStore('hasRefreshed', true);
@ -160,10 +165,12 @@ const KioskBookingPage = () => {
AppId: responseData?.AppId, AppId: responseData?.AppId,
DeviceMacAddress: MACAddress DeviceMacAddress: MACAddress
})).unwrap(); })).unwrap();
dispatch(getPreferenceData({ CompId: responseData?.CompId, dispatch(getPreferenceData({
CompId: responseData?.CompId,
BranchId: responseData?.BranchId, BranchId: responseData?.BranchId,
AppId: responseData?.AppId,})).unwrap(); AppId: responseData?.AppId,
})).unwrap();
dispatch( dispatch(
getProductCategories({ getProductCategories({
CompId: responseData?.CompId, CompId: responseData?.CompId,
@ -274,7 +281,7 @@ const KioskBookingPage = () => {
AppId: AppId, AppId: AppId,
}) })
).unwrap(); ).unwrap();
if (Response?.data?.statusCode == 1) { if (Response?.data?.statusCode == 1) {
dispatch( dispatch(
getProductCardListKiosk({ getProductCardListKiosk({

View File

@ -4,9 +4,22 @@ import { changeKioskOrderDetails } from '../../../Features/BookingScreen/Booking
import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import PozoDineInIcon from '../KioskIcons/KioskDineIn';
import TakeAway from '../KioskIcons/KioskTakeAway'; import TakeAway from '../KioskIcons/KioskTakeAway';
import '../../../Styles/Kiosk/OrderCart/OrderCart1.scss'; import '../../../Styles/Kiosk/OrderCart/OrderCart1.scss';
import { useSelector } from 'react-redux';
import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { message } from 'antd';
import { calculateOverAllQtyLimit } from '../../../utils/calculations';
const KisokOrderCart1 = (props) => { const KisokOrderCart1 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const KioskOrderDetails = props?.KioskOrderDetails; const KioskOrderDetails = props?.KioskOrderDetails;
const removeFromCart = async (item) => { const removeFromCart = async (item) => {
await dispatch( await dispatch(
@ -24,6 +37,15 @@ const KisokOrderCart1 = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
await dispatch( await dispatch(
changeKioskOrderDetails( changeKioskOrderDetails(
KioskOrderDetails?.map( KioskOrderDetails?.map(
@ -31,28 +53,28 @@ const KisokOrderCart1 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -76,28 +98,28 @@ const KisokOrderCart1 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty - 1, OrderQty: cartItem.OrderQty - 1,
TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) * ((cartItem.OrderQty - 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )

View File

@ -6,9 +6,22 @@ import '../../../Styles/Kiosk/OrderCart/OrderCart2.scss';
import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import PozoDineInIcon from '../KioskIcons/KioskDineIn';
import TakeAway from '../KioskIcons/KioskTakeAway'; import TakeAway from '../KioskIcons/KioskTakeAway';
import { color } from 'highcharts'; import { color } from 'highcharts';
import { calculateOverAllQtyLimit } from '../../../utils/calculations';
import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { useSelector } from 'react-redux';
import { message } from 'antd';
const KisokOrderCart2 = (props) => { const KisokOrderCart2 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const KioskOrderDetails = props?.KioskOrderDetails; const KioskOrderDetails = props?.KioskOrderDetails;
const removeFromCart = async (item) => { const removeFromCart = async (item) => {
@ -27,6 +40,16 @@ const KisokOrderCart2 = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
await dispatch( await dispatch(
changeKioskOrderDetails( changeKioskOrderDetails(
KioskOrderDetails?.map( KioskOrderDetails?.map(
@ -34,28 +57,28 @@ const KisokOrderCart2 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -79,28 +102,28 @@ const KisokOrderCart2 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem.BookingTypeName === item.BookingTypeName cartItem.BookingTypeName === item.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty - 1, OrderQty: cartItem.OrderQty - 1,
TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) * ((cartItem.OrderQty - 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )

View File

@ -8,10 +8,22 @@ import {
import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import PozoDineInIcon from '../KioskIcons/KioskDineIn';
import TakeAway from '../KioskIcons/KioskTakeAway'; import TakeAway from '../KioskIcons/KioskTakeAway';
import '../../../Styles/Kiosk/OrderCart/OrderCart3.scss'; import '../../../Styles/Kiosk/OrderCart/OrderCart3.scss';
import { calculateOverAllQtyLimit } from '../../../utils/calculations';
import { message } from 'antd';
import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
const KisokOrderCart3 = (props) => { const KisokOrderCart3 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const getKioskDarkColourdata = useSelector(getKioskDarkColour); const getKioskDarkColourdata = useSelector(getKioskDarkColour);
const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const BookingTypeBoth = useSelector(GlobalKioskBookingTypeBoth); const BookingTypeBoth = useSelector(GlobalKioskBookingTypeBoth);
const KioskOrderDetails = props?.KioskOrderDetails; const KioskOrderDetails = props?.KioskOrderDetails;
@ -31,6 +43,15 @@ const KisokOrderCart3 = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
await dispatch( await dispatch(
changeKioskOrderDetails( changeKioskOrderDetails(
KioskOrderDetails?.map( KioskOrderDetails?.map(
@ -38,28 +59,28 @@ const KisokOrderCart3 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -81,28 +102,28 @@ const KisokOrderCart3 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty - 1, OrderQty: cartItem.OrderQty - 1,
TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) * ((cartItem.OrderQty - 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )

View File

@ -16,6 +16,9 @@ import KioskFooter3 from '../Components/KioskFooter3';
import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import PozoDineInIcon from '../KioskIcons/KioskDineIn';
import TakeAway from '../KioskIcons/KioskTakeAway'; import TakeAway from '../KioskIcons/KioskTakeAway';
import '../../../Styles/Kiosk/OrderView/OrderView1.scss'; import '../../../Styles/Kiosk/OrderView/OrderView1.scss';
import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { calculateOverAllQtyLimit } from '../../../utils/calculations';
import { message } from 'antd';
const OrderView1 = (props) => { const OrderView1 = (props) => {
const KioskThemeData = props?.hasOwnProperty('KioskThemeData') const KioskThemeData = props?.hasOwnProperty('KioskThemeData')
@ -24,6 +27,14 @@ const OrderView1 = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const BackToCategory = async () => { const BackToCategory = async () => {
await dispatch(changeKioskPageName('categoryPage')); await dispatch(changeKioskPageName('categoryPage'));
@ -44,6 +55,17 @@ const OrderView1 = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
await dispatch( await dispatch(
changeKioskOrderDetails( changeKioskOrderDetails(
KioskOrderDetails?.map( KioskOrderDetails?.map(
@ -51,28 +73,28 @@ const OrderView1 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -96,28 +118,28 @@ const OrderView1 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty - 1, OrderQty: cartItem.OrderQty - 1,
TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) * ((cartItem.OrderQty - 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )

View File

@ -18,6 +18,9 @@ import { IoMdClose } from 'react-icons/io';
import defaultImg from '../../../Images/defaultItemImg.png'; import defaultImg from '../../../Images/defaultItemImg.png';
import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import PozoDineInIcon from '../KioskIcons/KioskDineIn';
import TakeAway from '../KioskIcons/KioskTakeAway'; import TakeAway from '../KioskIcons/KioskTakeAway';
import { calculateOverAllQtyLimit } from '../../../utils/calculations';
import { message } from 'antd';
import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
const KioskOrderView2 = (props) => { const KioskOrderView2 = (props) => {
console.log(props, 'propsprops'); console.log(props, 'propsprops');
@ -25,6 +28,15 @@ const KioskOrderView2 = (props) => {
? props['KioskThemeData'] ? props['KioskThemeData']
: null; : null;
const dispatch = useDispatch(); const dispatch = useDispatch();
const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
console.log(KioskOrderDetails, 'KioskOrderDetailsh'); console.log(KioskOrderDetails, 'KioskOrderDetailsh');
@ -54,6 +66,15 @@ const KioskOrderView2 = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
await dispatch( await dispatch(
changeKioskOrderDetails( changeKioskOrderDetails(
KioskOrderDetails?.map( KioskOrderDetails?.map(
@ -61,28 +82,28 @@ const KioskOrderView2 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -106,28 +127,28 @@ const KioskOrderView2 = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem.BookingTypeName === item.BookingTypeName cartItem.BookingTypeName === item.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty - 1, OrderQty: cartItem.OrderQty - 1,
TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) * ((cartItem.OrderQty - 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )

View File

@ -18,6 +18,9 @@ import {
import KioskFooter3 from '../Components/KioskFooter3'; import KioskFooter3 from '../Components/KioskFooter3';
import PozoDineInIcon from '../KioskIcons/KioskDineIn'; import PozoDineInIcon from '../KioskIcons/KioskDineIn';
import TakeAway from '../KioskIcons/KioskTakeAway'; import TakeAway from '../KioskIcons/KioskTakeAway';
import { PreferenceData } from '../../../Features/BookingScreen/BookingData/BookingData';
import { calculateOverAllQtyLimit } from '../../../utils/calculations';
import { message } from 'antd';
const KioskOrderView = (props) => { const KioskOrderView = (props) => {
console.log(props, 'propsprops'); console.log(props, 'propsprops');
@ -27,6 +30,14 @@ const KioskOrderView = (props) => {
const dispatch = useDispatch(); const dispatch = useDispatch();
const KioskOrderDetails = useSelector(GlobalKioskOrderDetails); const KioskOrderDetails = useSelector(GlobalKioskOrderDetails);
const getKioskLightColourdata = useSelector(getKioskLightColour); const getKioskLightColourdata = useSelector(getKioskLightColour);
const preferenceDatas = useSelector(PreferenceData);
const overAllLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => (item.SettingIdName?.toLowerCase() === 'overalllimit') && item?.SettingValue === 'Y');
const itemWiseLimitPreferenece =
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
(item) => item.SettingIdName?.toLowerCase() === 'itemwiselimit' && item?.SettingValue === 'Y');
const maxQtyLimit = itemWiseLimitPreferenece?.SettingCount || overAllLimitPreferenece?.SettingCount || null;
const BackToCategory = async () => { const BackToCategory = async () => {
await dispatch(changeKioskPageName('categoryPage')); await dispatch(changeKioskPageName('categoryPage'));
@ -47,6 +58,16 @@ const KioskOrderView = (props) => {
); );
}; };
const increase = async (item) => { const increase = async (item) => {
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
if (overAllLimitPreferenece) {
const calculatedOverAllQty = calculateOverAllQtyLimit(KioskOrderDetails);
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
message.warning(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`)
return;
}
}
}
await dispatch( await dispatch(
changeKioskOrderDetails( changeKioskOrderDetails(
KioskOrderDetails?.map( KioskOrderDetails?.map(
@ -54,28 +75,28 @@ const KioskOrderView = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty + 1, OrderQty: cartItem.OrderQty + 1,
TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty + 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) * ((cartItem.OrderQty + 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty + 1) * cartItem.OrderRate -
(
((cartItem.OrderQty + 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -98,28 +119,28 @@ const KioskOrderView = (props) => {
cartItem // if the item is already in the cart, increase the quantity of the item cartItem // if the item is already in the cart, increase the quantity of the item
) => ) =>
cartItem.ProdId === item.ProdId && cartItem.ProdId === item.ProdId &&
cartItem.InwardDtlId === item.InwardDtlId && cartItem.InwardDtlId === item.InwardDtlId &&
cartItem.OrderRate === item.OrderRate && cartItem.OrderRate === item.OrderRate &&
cartItem?.BookingTypeName === item?.BookingTypeName cartItem?.BookingTypeName === item?.BookingTypeName
? { ? {
...cartItem, ...cartItem,
OrderQty: cartItem.OrderQty - 1, OrderQty: cartItem.OrderQty - 1,
TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate, TotalAmt: (cartItem.OrderQty - 1) * cartItem.OrderRate,
TaxAmt: ( TaxAmt: (
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
WithoutTaxRate:
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) * ((cartItem.OrderQty - 1) *
cartItem.OrderRate * cartItem.OrderRate *
cartItem.TaxPercentage) / cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage) (100 + cartItem.TaxPercentage)
).toFixed(2), ).toFixed(2),
WithoutTaxRate: }
(cartItem.OrderQty - 1) * cartItem.OrderRate -
(
((cartItem.OrderQty - 1) *
cartItem.OrderRate *
cartItem.TaxPercentage) /
(100 + cartItem.TaxPercentage)
).toFixed(2),
}
: cartItem // otherwise, return the cart item : cartItem // otherwise, return the cart item
) )
) )
@ -201,10 +222,10 @@ const KioskOrderView = (props) => {
{!item?.ProdVariantName?.toLowerCase().includes( {!item?.ProdVariantName?.toLowerCase().includes(
'variant' 'variant'
) && ( ) && (
<span style={{ color: 'black' }}> <span style={{ color: 'black' }}>
{item?.ProdVariantName}{' '} {item?.ProdVariantName}{' '}
</span> </span>
)}{' '} )}{' '}
{item?.Size}{' '} {item?.Size}{' '}
{item?.SinglePc == 'Y' ? 'PCS' : item?.UomName} {item?.SinglePc == 'Y' ? 'PCS' : item?.UomName}
</div> </div>