diff --git a/src/Features/PurchaseOrder/PurchaseOrder.js b/src/Features/PurchaseOrder/PurchaseOrder.js index 127732b..b1b0994 100644 --- a/src/Features/PurchaseOrder/PurchaseOrder.js +++ b/src/Features/PurchaseOrder/PurchaseOrder.js @@ -101,7 +101,7 @@ export const getPurProdvaraiantdata = createAsyncThunk( data?.prodName !== undefined ) { return await axiosRetailInstanceData.get( - `/ProductCardList?CompId=${data?.CompId}&BranchId=${data?.BranchId}&AppId=${data?.AppId}&prodName=${encodeURIComponent(data?.prodName)}` + `/ProductCardList?CompId=${data?.CompId}&BranchId=${data?.BranchId}&AppId=${data?.AppId}&prodName=${encodeURIComponent(data?.prodName)}&type=S` ); } } diff --git a/src/Pages/BookingScreen/Components/BSCombo/BSC1Payment.jsx b/src/Pages/BookingScreen/Components/BSCombo/BSC1Payment.jsx index 30d3c65..5a06ee1 100644 --- a/src/Pages/BookingScreen/Components/BSCombo/BSC1Payment.jsx +++ b/src/Pages/BookingScreen/Components/BSCombo/BSC1Payment.jsx @@ -327,7 +327,10 @@ const BSC1Payment = (props) => { )?.PreferenceCatDetails; const sportsAppPreference = commonModulePreference?.find( (preference) => preference?.PreferredSubCatName === 'SportsApp' + && + preference?.PreferredStatus == 'Y' ); + console.log(sportsAppPreference,commonModulePreference,"sportsAppPreference") const bookingTypePreference = appPreferences?.find( (preference) => preference?.PreferredCatName === 'Booking Type' )?.PreferenceCatDetails; diff --git a/src/Pages/BookingScreen/Components/UtillComponents/ProductPriceChange.jsx b/src/Pages/BookingScreen/Components/UtillComponents/ProductPriceChange.jsx index c9f35a6..d55a9eb 100644 --- a/src/Pages/BookingScreen/Components/UtillComponents/ProductPriceChange.jsx +++ b/src/Pages/BookingScreen/Components/UtillComponents/ProductPriceChange.jsx @@ -1,449 +1,517 @@ -import { shallowEqual, useSelector } from "react-redux"; -import { GlobalAccessForOthers, GlobalCardAccess, GlobalCombosearch, GlobalItemCard, GlobalProductCategorie, GlobalSelectedDatas, GlobalWithoutSubCatItemCard, triggerProductCard } from "../../../../Features/BookingScreen/BookingData/BookingData"; -import { DefaultModal } from "../../../../Components/Modal/DefaultModal"; -import { useCallback, useEffect, useRef, useState } from "react"; -import { Tables } from "../../../../Components/Tables/Table"; -import { InputField } from "../../../../Components/Forms/InputField"; -import { Form, Pagination, Tooltip } from "antd"; -import { getSession } from "../../../../Services/Others"; -import { Messages } from "../../../../Components/Notifications/Messages"; -import { useDispatch } from "react-redux"; -import { PutStockPrice } from "../../../../Features/StockPriceUpdate/StockPriceUpdateMaster"; -import PriceChange from "../../../../Images/PayOptImgs/PriceChange.svg" +import { shallowEqual, useSelector } from 'react-redux'; +import { + GlobalAccessForOthers, + GlobalCardAccess, + GlobalCombosearch, + GlobalItemCard, + GlobalProductCategorie, + GlobalSelectedDatas, + GlobalWithoutSubCatItemCard, + triggerProductCard, +} from '../../../../Features/BookingScreen/BookingData/BookingData'; +import { DefaultModal } from '../../../../Components/Modal/DefaultModal'; +import { useCallback, useEffect, useRef, useState } from 'react'; +import { Tables } from '../../../../Components/Tables/Table'; +import { InputField } from '../../../../Components/Forms/InputField'; +import { Form, Pagination, Tooltip } from 'antd'; +import { getSession } from '../../../../Services/Others'; +import { Messages } from '../../../../Components/Notifications/Messages'; +import { useDispatch } from 'react-redux'; +import { PutStockPrice } from '../../../../Features/StockPriceUpdate/StockPriceUpdateMaster'; +import PriceChange from '../../../../Images/PayOptImgs/PriceChange.svg'; -const ProductPriceChange = ({ showButton = true, priceChangeProduct = null, productPriceChange = false, setProductPriceChange = () => { }, setPriceChangeProduct = () => { } }) => { +const ProductPriceChange = ({ + showButton = true, + priceChangeProduct = [], + productPriceChange = false, + setProductPriceChange = () => {}, + setPriceChangeProduct = () => {}, +}) => { + const formRef = useRef(null); + const dispatch = useDispatch(); - const formRef = useRef(null); - const dispatch = useDispatch(); + const AppId = getSession('AppId'); + const CompId = getSession('CompId'); + const BranchId = getSession('BranchId'); + const UserId = getSession('UserId'); - const AppId = getSession('AppId'); - const CompId = getSession('CompId'); - const BranchId = getSession('BranchId'); - const UserId = getSession('UserId'); + const [messageData, setMessageData] = useState(null); + const [messageType, setMessageType] = useState(null); + const [currentPage, setCurrentPage] = useState(1); + const [pageSize] = useState(10); - const [messageData, setMessageData] = useState(null); - const [messageType, setMessageType] = useState(null); - const [currentPage, setCurrentPage] = useState(1); - const [pageSize] = useState(10); + const [noSubcatCardData, setNoSubcatCardData] = useState(); + const [priceChangeModal, setPriceChangeModal] = useState(false); - const [noSubcatCardData, setNoSubcatCardData] = useState(); - const [priceChangeModal, setPriceChangeModal] = useState(false); + const comboSearch = useSelector(GlobalCombosearch); + const ProdCat = useSelector(GlobalProductCategorie, shallowEqual); + const ItemCard = useSelector(GlobalItemCard, shallowEqual); + const withoutSubCatItemCard = useSelector( + GlobalWithoutSubCatItemCard, + shallowEqual + ); + const CardAccess = useSelector(GlobalCardAccess, shallowEqual); + const globalAccessForOthers = useSelector( + GlobalAccessForOthers, + shallowEqual + ); + const SelectedDatas = useSelector(GlobalSelectedDatas, shallowEqual); + const [tableData, setTableData] = useState([]); + const [editingKey, setEditingKey] = useState(null); + const [priceChangedProducts, setPriceChangedProducts] = useState([]); + console.log(comboSearch, 'comboSearch'); - const comboSearch = useSelector(GlobalCombosearch); - const ProdCat = useSelector(GlobalProductCategorie, shallowEqual); - const ItemCard = useSelector(GlobalItemCard, shallowEqual); - const withoutSubCatItemCard = useSelector(GlobalWithoutSubCatItemCard, shallowEqual); - const CardAccess = useSelector(GlobalCardAccess, shallowEqual); - const globalAccessForOthers = useSelector(GlobalAccessForOthers, shallowEqual); - const SelectedDatas = useSelector(GlobalSelectedDatas, shallowEqual); - const [tableData, setTableData] = useState([]); - const [editingKey, setEditingKey] = useState(null); - const [priceChangedProducts, setPriceChangedProducts] = useState([]); - console.log(comboSearch, "comboSearch") + // console.log(noSubcatCardData, "noSubcatCardData") - // console.log(noSubcatCardData, "noSubcatCardData") + useEffect(() => { + if ( + ProdCat && + (ItemCard || withoutSubCatItemCard) && + (!noSubcatCardData || noSubcatCardData?.length === 0) + ) { + setNoSubcatCardData( + ItemCard?.length === 0 ? withoutSubCatItemCard : ItemCard + ); + } + }, [ProdCat, ItemCard, withoutSubCatItemCard, noSubcatCardData]); - useEffect(() => { - if (ProdCat && (ItemCard || withoutSubCatItemCard) && (!noSubcatCardData || noSubcatCardData?.length === 0)) { - setNoSubcatCardData(ItemCard?.length === 0 ? withoutSubCatItemCard : ItemCard); - } - }, [ProdCat, ItemCard, withoutSubCatItemCard, noSubcatCardData]); + const priceChangeColumns = [ + { + title: 'S.No', + dataIndex: 'SlNo', + key: 'SlNo', + width: '60px', + align: 'center', + render: (text, record, index) => ( +
{(currentPage - 1) * pageSize + index + 1}
+ ), + }, + { + title: 'Product Name', + dataIndex: 'ProdName', + key: 'ProdName', + }, + { + title: 'Old MRP', + dataIndex: 'MRP', + key: 'MRP', + width: '100px', + align: 'right', + }, + { + title: 'New MRP (Optional)', + dataIndex: 'NewMRP', + key: 'NewMRP', + width: '100px', + align: 'right', + render: (text, record, index) => { + // if (index === editingKey) { - const priceChangeColumns = [ - { - title: 'S.No', - dataIndex: 'SlNo', - key: 'SlNo', - width: '60px', - align: 'center', - render: (text, record, index) =>
{(currentPage - 1) * pageSize + index + 1}
- }, - { - title: 'Product Name', - dataIndex: 'ProdName', - key: 'ProdName', - }, - { - title: 'Old MRP', - dataIndex: 'MRP', - key: 'MRP', - width: '100px', - align: 'right', - }, - { - title: 'New MRP (Optional)', - dataIndex: 'NewMRP', - key: 'NewMRP', - width: '100px', - align: 'right', - render: (text, record, index) => { - // if (index === editingKey) { + // } + // return
{text ? text : 'Enter New MRP'}
+ return ( + { + if (value === '') { + return Promise.resolve(); + } else if (parseFloat(value) < 1) { + return Promise.reject(`MRP should be greater than 0`); + } + return Promise.resolve(); + }, + }, + ]} + > + handleNewMRPChange(e?.target?.value, index)} + inputMode="decimal" + onInput={(e) => { + let cleanedValue = e.target.value.replace(/[^0-9.]/g, ''); // Remove invalid characters + const parts = cleanedValue.split('.'); - // } - // return
{text ? text : 'Enter New MRP'}
- return ( - { - if (value === '') { - return Promise.resolve(); - } else if (parseFloat(value) < 1) { - return Promise.reject(`MRP should be greater than 0`) - } - return Promise.resolve(); - }, - }, - ]}> - handleNewMRPChange(e?.target?.value, index)} - inputMode="decimal" - onInput={(e) => { - let cleanedValue = e.target.value.replace( - /[^0-9.]/g, - '' - ); // Remove invalid characters - const parts = cleanedValue.split('.'); + if (cleanedValue.startsWith('.')) { + cleanedValue = '0' + cleanedValue; + } - if (cleanedValue.startsWith('.')) { - cleanedValue = '0' + cleanedValue; - } + e.target.value = + parts.length > 2 + ? `${parts[0]}.${parts.slice(1).join('')}` + : cleanedValue; + }} + /> + + ); + }, + }, + { + title: 'Old Sell Price', + dataIndex: 'SellPrice', + key: 'SellPrice', + width: '120px', + align: 'right', + }, + { + title: 'New Sell Price', + dataIndex: 'NewSellPrice', + key: 'NewSellPrice', + width: '160px', + align: 'right', + render: (text, record, index) => { + // if (index === editingKey) { - e.target.value = - parts.length > 2 - ? `${parts[0]}.${parts.slice(1).join('')}` - : cleanedValue; - }} - /> -
- ); - }, - }, - { - title: 'Old Sell Price', - dataIndex: 'SellPrice', - key: 'SellPrice', - width: '120px', - align: 'right', - }, - { - title: 'New Sell Price', - dataIndex: 'NewSellPrice', - key: 'NewSellPrice', - width: '160px', - align: 'right', - render: (text, record, index) => { - // if (index === editingKey) { + // } + // return
{text ? text : 'Enter New Sell Price'}
+ return ( + { + if (value === '') { + return Promise.resolve(); + } else if (parseFloat(value) < 1) { + return Promise.reject( + `Sell Price should be greater than 0` + ); + } + return Promise.resolve(); + }, + }, + ]} + > + + handleNewSellPriceChange(e?.target?.value, index) + } + inputMode="decimal" + onInput={(e) => { + let cleanedValue = e.target.value.replace(/[^0-9.]/g, ''); // Remove invalid characters + const parts = cleanedValue.split('.'); - // } - // return
{text ? text : 'Enter New Sell Price'}
- return ( - { - if (value === '') { - return Promise.resolve(); - } else if (parseFloat(value) < 1) { - return Promise.reject(`Sell Price should be greater than 0`) - } - return Promise.resolve(); - }, - }, - ]} - > - handleNewSellPriceChange(e?.target?.value, index)} - inputMode="decimal" - onInput={(e) => { - let cleanedValue = e.target.value.replace( - /[^0-9.]/g, - '' - ); // Remove invalid characters - const parts = cleanedValue.split('.'); + if (cleanedValue.startsWith('.')) { + cleanedValue = '0' + cleanedValue; + } - if (cleanedValue.startsWith('.')) { - cleanedValue = '0' + cleanedValue; - } + e.target.value = + parts.length > 2 + ? `${parts[0]}.${parts.slice(1).join('')}` + : cleanedValue; + }} + /> + + ); + }, + }, + ]; - e.target.value = - parts.length > 2 - ? `${parts[0]}.${parts.slice(1).join('')}` - : cleanedValue; - }} - /> -
- ); - }, - }, - ]; + const cardData = !globalAccessForOthers + ? CardAccess + ? SelectedDatas?.length > 1 + ? SelectedDatas + : SelectedDatas?.[0]?.AppId === 0 && SelectedDatas?.[0]?.CompId === 0 + ? [] + : SelectedDatas + : ItemCard?.length === 0 || + (ItemCard?.[0]?.AppId === 0 && ItemCard?.[0]?.CompId === 0) + ? noSubcatCardData + : ItemCard + : []; - const cardData = !globalAccessForOthers - ? CardAccess - ? SelectedDatas?.length > 1 - ? SelectedDatas - : SelectedDatas?.[0]?.AppId === 0 && SelectedDatas?.[0]?.CompId === 0 - ? [] - : SelectedDatas - : ItemCard?.length === 0 || (ItemCard?.[0]?.AppId === 0 && ItemCard?.[0]?.CompId === 0) - ? noSubcatCardData - : ItemCard - : ''; + console.log(cardData, 'noSubcatCardDatanoSubcatCardData', ItemCard); - console.log(cardData, "noSubcatCardDatanoSubcatCardData", ItemCard) + useEffect(() => { + + const extractStockDtls = (data) => { + if (data?.length === 0 || !data) return []; - useEffect(() => { - const extractStockDtls = (data) => { - if (data?.length === 0) return []; + let stockDtls = [];git - let stockDtls = []; + data?.forEach((item) => { + let products = item?.ProductDetail?.flatMap((product) => product); - data?.forEach(item => { - let products = item?.ProductDetail?.flatMap(product => product); + let variants = products?.flatMap( + (product) => product?.ProdVariantDetails + ); + const filteredVariants = variants?.filter( + (variant) => variant?.StockDetails?.length > 0 + ); + const stocks = filteredVariants?.flatMap((variant) => + variant?.StockDetails?.map((stock) => ({ + ...stock, + ProdName: + products?.[0]?.ProdName + + (variant?.ProdVariantName + ? ` (${variant?.ProdVariantName})` + : ''), + StockAvailable: products?.[0]?.StockAvailable, + ProdVariantName: variant?.ProdVariantName, + })) + ); - let variants = products?.flatMap(product => product?.ProdVariantDetails); - const filteredVariants = variants?.filter(variant => variant?.StockDetails?.length > 0); - const stocks = filteredVariants?.flatMap(variant => - variant?.StockDetails?.map(stock => ({ - ...stock, - ProdName: products?.[0]?.ProdName + (variant?.ProdVariantName ? ` (${variant?.ProdVariantName})` : ''), - StockAvailable: products?.[0]?.StockAvailable, - ProdVariantName: variant?.ProdVariantName - })) - ); + stockDtls.push( + ...stocks?.filter((stock) => + stock?.StockAvailable === 'Y' ? stock?.BatchRef : true + ) + ); + }); + console.log('extractStockDtls', stockDtls); + return stockDtls; + }; + setTableData(extractStockDtls(priceChangeProduct || cardData || [])); + setCurrentPage(1); + }, [cardData, priceChangeProduct]); - stockDtls.push(...stocks?.filter(stock => - stock?.StockAvailable === 'Y' - ? stock?.BatchRef - : true - )); + const handleNewMRPChange = (value, index) => { + const updatedTableData = [...tableData]; + updatedTableData[index].NewMRP = value; + setTableData(updatedTableData); + updatedTableData[index].NewSellPrice = null; + formRef.current.setFieldsValue({ + [`NewMRP${index}`]: value, + [`NewSellPrice${index}`]: null, + }); - }); - console.log("extractStockDtls", stockDtls); - return stockDtls; - } - setTableData(extractStockDtls(priceChangeProduct || cardData)) - setCurrentPage(1) - }, [cardData, priceChangeProduct]) + const priceChangedProdList = [...priceChangedProducts]; + const prodIndex = priceChangedProdList?.findIndex( + (prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId + ); + if (prodIndex !== -1) { + priceChangedProdList[prodIndex] = { + ...priceChangedProdList?.[prodIndex], + NewMRP: value, + NewSellPrice: null, + }; + } + setPriceChangedProducts(priceChangedProdList); + }; - const handleNewMRPChange = (value, index) => { - - const updatedTableData = [...tableData]; - updatedTableData[index].NewMRP = value; - setTableData(updatedTableData); + const handleNewSellPriceChange = (value, index) => { + const updatedTableData = [...tableData]; + if (updatedTableData[index]?.NewMRP) { + if (parseFloat(value) > parseFloat(updatedTableData[index]?.NewMRP)) { + setMessageType('error'); + setMessageData('New Sell Price cannot be greater than New MRP'); + formRef.current.setFieldsValue({ + [`NewSellPrice${index}`]: null, + }); updatedTableData[index].NewSellPrice = null; - formRef.current.setFieldsValue({ - [`NewMRP${index}`]: value, - [`NewSellPrice${index}`]: null, - }); - - const priceChangedProdList = [...priceChangedProducts]; - const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId); - if (prodIndex !== -1) { - priceChangedProdList[prodIndex] = { - ...priceChangedProdList?.[prodIndex], - NewMRP: value, - NewSellPrice: null, - }; - } - setPriceChangedProducts(priceChangedProdList); - } - - const handleNewSellPriceChange = (value, index) => { - const updatedTableData = [...tableData]; - if (updatedTableData[index]?.NewMRP) { - if (parseFloat(value) > parseFloat(updatedTableData[index]?.NewMRP)) { - setMessageType('error'); - setMessageData('New Sell Price cannot be greater than New MRP'); - formRef.current.setFieldsValue({ - [`NewSellPrice${index}`]: null, - }); - updatedTableData[index].NewSellPrice = null; - setTableData(updatedTableData); - const priceChangedProdList = [...priceChangedProducts]; - const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId); - - if (prodIndex !== -1) { - priceChangedProdList.splice(prodIndex, 1); - } - setPriceChangedProducts(priceChangedProdList); - return; - } - } - if (!updatedTableData[index]?.NewMRP && updatedTableData[index]?.MRP) { - if (parseFloat(value) > parseFloat(updatedTableData[index]?.MRP)) { - setMessageType('error'); - setMessageData('New Sell Price cannot be greater than MRP'); - formRef.current.setFieldsValue({ - [`NewSellPrice${index}`]: null, - }); - updatedTableData[index].NewSellPrice = null; - setTableData(updatedTableData); - const priceChangedProdList = [...priceChangedProducts]; - const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId); - - if (prodIndex !== -1) { - priceChangedProdList.splice(prodIndex, 1); - } - setPriceChangedProducts(priceChangedProdList); - return; - } - } - updatedTableData[index].NewSellPrice = value; setTableData(updatedTableData); - formRef.current.setFieldsValue({ - [`NewSellPrice${index}`]: value, - }); - const priceChangedProdList = [...priceChangedProducts]; - const prodIndex = priceChangedProdList?.findIndex(prod => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId); + const prodIndex = priceChangedProdList?.findIndex( + (prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId + ); if (prodIndex !== -1) { - priceChangedProdList[prodIndex] = { - ...priceChangedProdList[prodIndex], - SellPrice: String(value) - }; - } else { - priceChangedProdList.push({ - ProdId: updatedTableData[index]?.ProdId, - ProdName: updatedTableData[index]?.ProdName, - MRP: String(updatedTableData[index]?.NewMRP || updatedTableData[index]?.MRP), - SellPrice: String(value), - AdjComment: "string", - InwardDtlId: updatedTableData[index]?.InwardDtlId - }); + priceChangedProdList.splice(prodIndex, 1); } - setPriceChangedProducts(priceChangedProdList); + return; + } } + if (!updatedTableData[index]?.NewMRP && updatedTableData[index]?.MRP) { + if (parseFloat(value) > parseFloat(updatedTableData[index]?.MRP)) { + setMessageType('error'); + setMessageData('New Sell Price cannot be greater than MRP'); + formRef.current.setFieldsValue({ + [`NewSellPrice${index}`]: null, + }); + updatedTableData[index].NewSellPrice = null; + setTableData(updatedTableData); + const priceChangedProdList = [...priceChangedProducts]; + const prodIndex = priceChangedProdList?.findIndex( + (prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId + ); - const edit = (record, index) => { - console.log("edit", record, index); - setEditingKey(index); - } - - const handleSubmit = async () => { - console.log("submit"); - - if (priceChangedProducts?.length > 0) { - console.log("priceChangedProducts", priceChangedProducts); - const validation = priceChangedProducts?.every((prod) => { - if (parseFloat(prod?.MRP) < parseFloat(prod?.SellPrice)) { - setMessageType('error'); - setMessageData(`${prod?.ProdName}: MRP cannot be less than Sell Price`); - return false; - } - if (!parseFloat(prod?.SellPrice) || !parseFloat(prod?.MRP)) { - setMessageType('error'); - setMessageData(`${prod?.ProdName}: Please give Sell Price or MRP`); - return false; - } - return true; - }); - if (!validation) return; - - const data = { - AppId: AppId, - CompId: CompId, - BranchId: BranchId, - ProductDetails: priceChangedProducts, - UpdatedBy: UserId, - } - - const res = await dispatch(PutStockPrice(data))?.unwrap(); - if (res?.data?.statusCode === 1) { - setMessageData('Price Changed Successfully'); - setMessageType('success'); - setPriceChangeModal(false); - setProductPriceChange(false); - setEditingKey(null); - setPriceChangedProducts([]); - setTableData([]); - dispatch(triggerProductCard()) - setPriceChangeProduct(null); - formRef.current.resetFields(); - } else { - setMessageData('Error Updating Product Price') - setMessageType('error'); - } - } else { - setMessageType('error'); - setMessageData('No changes made / No sell price entered'); + if (prodIndex !== -1) { + priceChangedProdList.splice(prodIndex, 1); } + setPriceChangedProducts(priceChangedProdList); + return; + } + } + updatedTableData[index].NewSellPrice = value; + setTableData(updatedTableData); + formRef.current.setFieldsValue({ + [`NewSellPrice${index}`]: value, + }); + const priceChangedProdList = [...priceChangedProducts]; + const prodIndex = priceChangedProdList?.findIndex( + (prod) => prod?.InwardDtlId === updatedTableData[index]?.InwardDtlId + ); + + if (prodIndex !== -1) { + priceChangedProdList[prodIndex] = { + ...priceChangedProdList[prodIndex], + SellPrice: String(value), + }; + } else { + priceChangedProdList.push({ + ProdId: updatedTableData[index]?.ProdId, + ProdName: updatedTableData[index]?.ProdName, + MRP: String( + updatedTableData[index]?.NewMRP || updatedTableData[index]?.MRP + ), + SellPrice: String(value), + AdjComment: 'string', + InwardDtlId: updatedTableData[index]?.InwardDtlId, + }); } - const onComplete = useCallback(() => { - setMessageData(null); - setMessageType(null); - }, []) + setPriceChangedProducts(priceChangedProdList); + }; - return ( - <> + const edit = (record, index) => { + console.log('edit', record, index); + setEditingKey(index); + }; - - {showButton ? - - : <>} - { - setPriceChangeModal(false); - setProductPriceChange(false); - setEditingKey(null); - setPriceChangedProducts([]); - formRef?.current?.resetFields(); - setPriceChangeProduct(null); - }} - handleSubmit={handleSubmit} + const handleSubmit = async () => { + console.log('submit'); + + if (priceChangedProducts?.length > 0) { + console.log('priceChangedProducts', priceChangedProducts); + const validation = priceChangedProducts?.every((prod) => { + if (parseFloat(prod?.MRP) < parseFloat(prod?.SellPrice)) { + setMessageType('error'); + setMessageData( + `${prod?.ProdName}: MRP cannot be less than Sell Price` + ); + return false; + } + if (!parseFloat(prod?.SellPrice) || !parseFloat(prod?.MRP)) { + setMessageType('error'); + setMessageData(`${prod?.ProdName}: Please give Sell Price or MRP`); + return false; + } + return true; + }); + if (!validation) return; + + const data = { + AppId: AppId, + CompId: CompId, + BranchId: BranchId, + ProductDetails: priceChangedProducts, + UpdatedBy: UserId, + }; + + const res = await dispatch(PutStockPrice(data))?.unwrap(); + if (res?.data?.statusCode === 1) { + setMessageData('Price Changed Successfully'); + setMessageType('success'); + setPriceChangeModal(false); + setProductPriceChange(false); + setEditingKey(null); + setPriceChangedProducts([]); + setTableData([]); + dispatch(triggerProductCard()); + setPriceChangeProduct(null); + formRef.current.resetFields(); + } else { + setMessageData('Error Updating Product Price'); + setMessageType('error'); + } + } else { + setMessageType('error'); + setMessageData('No changes made / No sell price entered'); + } + }; + + const onComplete = useCallback(() => { + setMessageData(null); + setMessageType(null); + }, []); + + return ( + <> + + {showButton ? ( + + + + ) : ( + <> + )} + { + setPriceChangeModal(false); + setProductPriceChange(false); + setEditingKey(null); + setPriceChangedProducts([]); + formRef?.current?.resetFields(); + setPriceChangeProduct(null); + }} + handleSubmit={handleSubmit} + > +
+ {/*
Note : Click on a row to edit/modify
*/} +
+ ({ + onClick: () => { + edit(record, index); + }, + })} + /> +
-
- {/*
Note : Click on a row to edit/modify
*/} - - ({ - onClick: () => { - edit(record, index); - }, - })} - /> -
- setCurrentPage(page)} - showSizeChanger={false} - showTotal={(total, range) => `${range[0]}-${range[1]} of ${total} items`} - /> -
- -
- - - ) -} + setCurrentPage(page)} + showSizeChanger={false} + showTotal={(total, range) => + `${range[0]}-${range[1]} of ${total} items` + } + /> +
+ +
+
+ + ); +}; -export default ProductPriceChange; \ No newline at end of file +export default ProductPriceChange;