constrain Qty
This commit is contained in:
parent
608aa917b3
commit
5f5ca99409
|
|
@ -1,4 +1,4 @@
|
|||
import React, { useEffect, useState } from 'react';
|
||||
import React, { useCallback, useEffect, useState } from 'react';
|
||||
import { shallowEqual, useDispatch, useSelector } from 'react-redux';
|
||||
import { Popconfirm, Tooltip } from 'antd';
|
||||
import { AiOutlineClose, AiFillDelete } from 'react-icons/ai';
|
||||
|
|
@ -79,6 +79,8 @@ import BSEditTotalAmt from '../BSEditTotalAmount/BSEditTotalAmt.jsx';
|
|||
import BSImeiDetails from '../BSImeiDetails/BSImeiDetails.jsx';
|
||||
import { useUtilsComponent } from '../../../../../Services/utils.js';
|
||||
import CustomerPriceHistory from '../../UtillComponents/CustomerPriceHistory.jsx';
|
||||
import { calculateOverAllQtyLimit } from '../../../../../utils/calculations.js';
|
||||
import { Messages } from '../../../../../../ownLib/my-ui-lib.js';
|
||||
|
||||
const BsBill = () => {
|
||||
const { removeExtraCharge } = useUtilsComponent();
|
||||
|
|
@ -108,6 +110,8 @@ const BsBill = () => {
|
|||
setting?.SettingValue === 'Y'
|
||||
);
|
||||
const [count, setCount] = useState(1);
|
||||
const [messageType, setMessageType] = useState(null);
|
||||
const [messageData, setMessageData] = useState(null);
|
||||
const [EditQuantity, setEditQuantity] = useState(false);
|
||||
const [Modaldata, setModaldata] = useState([]);
|
||||
const TableData = useSelector(GlobalOrderCardDetails);
|
||||
|
|
@ -141,6 +145,14 @@ const BsBill = () => {
|
|||
const OrderType = useSelector(GlobalOrderType);
|
||||
const GlobEstBooking = useSelector(GlobalEstimateBooking);
|
||||
const GlobalExtraCharge = useSelector(globalExtraTotalAmount);
|
||||
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 OtherServicesglobal = useSelector(GlobalOtherSevices);
|
||||
|
||||
|
|
@ -2123,8 +2135,22 @@ const BsBill = () => {
|
|||
const handleEditQuantityCancel = () => {
|
||||
setEditQuantity(false);
|
||||
};
|
||||
|
||||
const onComplete = useCallback(() => {
|
||||
setMessageData(null);
|
||||
setMessageType(null);
|
||||
}, []);
|
||||
const increase = async (item) => {
|
||||
|
||||
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
|
||||
if (overAllLimitPreferenece) {
|
||||
const calculatedOverAllQty = calculateOverAllQtyLimit(TableData);
|
||||
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
|
||||
setMessageData(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`);
|
||||
setMessageType('warning');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
const OtherOrderDatas = TableData?.filter(
|
||||
(cartItem) =>
|
||||
!(
|
||||
|
|
@ -3049,6 +3075,11 @@ const BsBill = () => {
|
|||
};
|
||||
return (
|
||||
<div className="BSBillingTable5-billtable">
|
||||
<Messages
|
||||
messageType={messageType}
|
||||
messageData={messageData}
|
||||
onComplete={onComplete}
|
||||
/>
|
||||
<table className="BSBillingTable5-tablediv">
|
||||
<thead className="BSBillingTable5-thead">
|
||||
<tr
|
||||
|
|
|
|||
|
|
@ -65,13 +65,11 @@ const FeaturesFunctionalities = lazy(
|
|||
() => import('../BookingFunctionality/FeaturesFunctionalities')
|
||||
);
|
||||
import { isMobile } from 'react-device-detect';
|
||||
import BarcodeScanner from '../UtillComponents/BarcodeScanner.jsx';
|
||||
import {
|
||||
getTemplateData,
|
||||
StoredSessionData,
|
||||
} from '../../../../Features/ThemeChange/ThemeChange.js';
|
||||
import { v4 as uuidv4 } from 'uuid';
|
||||
import BSNavBarWeightScale from '../UtillComponents/BSNavBarWeightScale.jsx';
|
||||
import {
|
||||
changeFreeProductForLoyalty,
|
||||
ChangeFreeProductList,
|
||||
|
|
@ -89,6 +87,7 @@ import {
|
|||
import { Global_PromoCodeOffers } from '../../../../Features/Offer/Offer.js';
|
||||
import { validateOffers } from '../BSItemCards/ValidateOffer.jsx';
|
||||
import { useSaleswiseOfferWatcher } from '../BSItemCards/SalesWiseOffer.jsx';
|
||||
import { calculateOverAllQtyLimit } from '../../../../utils/calculations.js';
|
||||
const ExpireConfirmModal = lazy(
|
||||
() => import('../BookingFunctionality/ExpireConfirmModal.jsx')
|
||||
);
|
||||
|
|
@ -134,6 +133,13 @@ export default function BSC1Search(props) {
|
|||
const FeatureAddonData = useSelector(GlobalFeatAddOnData);
|
||||
useSaleswiseOfferWatcher();
|
||||
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 preferenceOffer =
|
||||
preferenceDatas?.[0]?.['SettingDtlDetails']?.find(
|
||||
(item) => item.SettingIdName === 'Offer'
|
||||
|
|
@ -1171,7 +1177,7 @@ export default function BSC1Search(props) {
|
|||
|
||||
const getPreferenceStock = async () => {
|
||||
const PreferenceStckDtl = preferenceDatas?.[0]?.SettingDtlDetails;
|
||||
const StockPreference = PreferenceStckDtl.find(
|
||||
const StockPreference = PreferenceStckDtl?.find(
|
||||
(item) => item.SettingIdName === 'StockSelection'
|
||||
);
|
||||
|
||||
|
|
@ -2821,6 +2827,18 @@ export default function BSC1Search(props) {
|
|||
};
|
||||
|
||||
const AddOrderDetails = async (item) => {
|
||||
|
||||
if ((overAllLimitPreferenece || itemWiseLimitPreferenece) && maxQtyLimit) {
|
||||
if (overAllLimitPreferenece) {
|
||||
const calculatedOverAllQty = calculateOverAllQtyLimit(CartOrderDetails);
|
||||
if ((calculatedOverAllQty + 1) > maxQtyLimit) {
|
||||
setMessageData(`Overall Quantity Limit Exceeds than ${maxQtyLimit}`);
|
||||
setMessageType('warning');
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (preOrder) {
|
||||
await handlePreOrder(item);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue