Search issue fixing

This commit is contained in:
Srinath 2026-03-25 09:23:39 +05:30
parent 383106d3ed
commit 602dfa2ffb
1 changed files with 22 additions and 331 deletions

View File

@ -35,23 +35,17 @@ const RevenueItemWiseReport = () => {
const formattedToday = today.toISOString()?.split('T')[0];
const dispatch = useDispatch();
const formRef = useRef();
// const [filteredInfo, setFilteredInfo] = useState({});
const [sortedInfo, setSortedInfo] = useState({});
// const [sortedInfo2, setSortedInfo2] = useState({});
const [searchedText, setSearchedText] = useState('');
// const [searchedText2, setSearchedText2] = useState("");
const [OrderFromDate, setOrderFromDate] = useState(formattedToday);
const [OrderToDate, setOrderToDate] = useState(formattedToday);
const [RevenueData, setRevenueData] = useState();
// const [CateWiseData, setCateWiseData] = useState();
const [userDropDown, setuserDropDown] = useState([]);
// const [chartData, setchartdata] = useState([]);
const [apiCall, setapiCall] = useState(false);
const [chart, setchart] = useState(false);
const [selectedUserData, setSelectedUserData] = useState(null);
const [receiptTextItemWise, setreceiptTextItemWise] = useState();
// const [receiptTextCatWise, setreceiptTextCatWise] = useState()
const SettingDataSelector = useSelector(PreferenceData);
const UomPrint = SettingDataSelector?.[0]?.SettingDtlDetails?.filter(
@ -174,32 +168,11 @@ const RevenueItemWiseReport = () => {
fetchInitialData();
}, []);
// useEffect(() => {
// setchart(false)
// }, [apiCall]);
useEffect(() => {
if (UserRole != 'Employee') {
userDropData();
}
}, []);
// useEffect(() => {
// if (apiCall) {
// setSelectedUserData(0);
// fetchCatData();
// }
// else {
// setSelectedUserData(0);
// fetchInitialData();
// }
// }, [apiCall]);
// useEffect(() => {
// if (UserId==0){
// onFinish();
// }
// }, []);
function safeRound(amountStr) {
if (amountStr == null) return allowDecimal ? '0.00' : '0';
@ -211,28 +184,6 @@ const RevenueItemWiseReport = () => {
return allowDecimal ? num.toFixed(2) : Math.round(num).toString();
}
// const fetchCatData = async () => {
// let data1 = {
// CompId: CompId,
// BranchId: BranchId,
// AppId: AppId,
// OrderFromDate: OrderFromDate?.split("T")?.[0],
// OrderToDate: OrderToDate?.split("T")?.[0],
// UserId: 0,
// type: 'PE'
// };
// let response = await dispatch(getEstimateCatItemWiseReport(data1)).unwrap();
// if (response?.data?.statusCode == 1) {
// setCateWiseData(response?.data?.data)
// }
// else {
// setCateWiseData();
// }
// }
const userDropData = async () => {
const gettinguserDropDown = await dispatch(
UserDataBasedOnBranchId(BranchId)
@ -268,27 +219,14 @@ const RevenueItemWiseReport = () => {
setFilteredInfo(filters);
setSortedInfo(sorter);
};
// const handleChange2 = (pagination, filters, sorter) => {
// setSortedInfo2(sorter);
// };
// const onComplete = useCallback(() => {
// setMessageData(null);
// setMessageType(null);
// }, [])
const onSearch = (value) => {
setSearchedText(value);
setSearchedText(typeof value === "string" ? value : "");
};
const onSearchChange = (e) => {
setSearchedText(e?.target?.value);
setSearchedText(e?.target?.value || "");
};
// const onSearch2 = (value) => {
// setSearchedText2(value);
// };
// const onSearchChange2 = (e) => {
// setSearchedText2(e?.target?.value);
// };
const Print = async () => {
if (isMobile) {
if (MobileA4Print) {
@ -426,45 +364,7 @@ const RevenueItemWiseReport = () => {
},
},
];
// const columns2 = [
// {
// title: "SI NO",
// dataIndex: "SINO",
// key: "SINO",
// align: "center",
// render: (text, object, index) => <a style={{ color: "black" }}>{index + 1}</a>,
// },
// {
// title: "Category",
// dataIndex: "ProdCatName",
// key: "Category",
// filteredValue: [searchedText2],
// onFilter: (value, record) => {
// return String(record.ProdCatName)
// ?.toLowerCase()
// ?.includes(value?.toLowerCase());
// },
// sorter: (a, b) => a?.ProdCatName?.localeCompare(b?.ProdCatName),
// sortOrder: sortedInfo2.columnKey === "ItemName" ? sortedInfo2.order : null,
// ellipsis: true,
// },
// {
// title: "Qty",
// dataIndex: "SalesQty",
// key: "Qty",
// align: "right",
// },
// {
// title: "Amount",
// dataIndex: "TotalAmt",
// key: "Amount",
// align: "right",
// render : (text)=> (
// <span style={{ color: "black" }}>{safeRound(text)}</span>
// )
// }
// ];
const DateWisTableData = RevenueData?.map((item, index) => ({
SINO: index + 1,
ItemName:
@ -511,40 +411,16 @@ const RevenueItemWiseReport = () => {
UserId: UserId,
type: 'E',
};
// let data1 = {
// CompId: CompId,
// BranchId: BranchId,
// AppId: AppId,
// OrderFromDate: OrderFromDate?.split("T")?.[0],
// OrderToDate: OrderToDate?.split("T")?.[0],
// UserId: UserId,
// type: 'E'
// };
if (!apiCall) {
let Response = await dispatch(getRevenueItemWiseReport(data)).unwrap();
setRevenueData(Response?.data?.data);
}
// else {
// let response = await dispatch(getEstimateCatItemWiseReport(data1)).unwrap();
// if (response?.data?.statusCode === 1) {
// setCateWiseData(response?.data?.data)
// } else {
// // setMessageType("warning");
// // setMessageData("No Data Found");
// setCateWiseData();
// }
// }
} catch (error) {
console.error('An error occurred:', error);
}
};
// let filterRate1 = CateWiseData?.map((item) => item.TotalAmt);
// const TotalAmount2 = filterRate1?.reduce(
// (accumulator, currentValue) => accumulator + currentValue,
// 0
// );
let filterPurchaseRate = RevenueData?.map((item) => item.ProductPurchaseRate);
const PurchaseRate = filterPurchaseRate?.reduce(
@ -562,10 +438,6 @@ const RevenueItemWiseReport = () => {
const TotalSalesAmt = salesRate - PurchaseRate;
// const onChange = (checked) => {
// setapiCall(checked);
// };
const reprintDate = (date) => {
const salesDate = new Date(date);
const formattedDate = salesDate.toLocaleDateString('en-GB', {
@ -582,58 +454,6 @@ const RevenueItemWiseReport = () => {
}
}, [itemData]);
// useEffect(() => {
// if (CateWiseData?.length > 0) {
// mobileCatWisePrintFun(CateWiseData)
// }
// }, [CateWiseData])
// const mobileCatWisePrintFun = async (printdata) => {
// let Tabledata = printdata?.map((data, index) => {
// const snoSpacing = Math.max(0, 3 - String(index + 1).length);
// // Calculate dynamic spacing for Rate
// const QtySpacing = Math.max(0, 5 - String(data?.SalesQty).length);
// const rateSpacing = Math.max(0, 7 - String(data?.TotalAmt).length);
// // Calculate dynamic spacing for TotalAmt
// // Generate formatted string with dynamic spacings
// const formattedString =
// " ".repeat(snoSpacing) +
// parseInt(index + 1) +
// " " +
// (data?.ProdCatName + " ".repeat(20)).substring(0, 20) +
// " " +
// " ".repeat(QtySpacing) + String(data?.SalesQty) +
// " " +
// " ".repeat(rateSpacing) + String(data?.TotalAmt) +
// " " + "\n";
// return formattedString;
// });
// var receiptTextdata =
// "[C]<b><font size='big'>" + "Category Wise Sales" + "</font></b>\n" +
// "[L]<b>From Date :" + reprintDate(OrderFromDate) +
// "[L]<b>" + " " + "To Date :" + reprintDate(OrderToDate) +
// "</b>\n" +
// "[C]------------------------------------------------\n" +
// "[L]<b>" + "" + "S.No" + " " + " Category " + " " + "Quantity " + " " + "Amount " + "" + "</b>" +
// "[L]\n" +
// "[C]------------------------------------------------\n" +
// Tabledata.join("") +
// "[C]<b>------------------------------------------------</b>\n" +
// "[R]<b>" + "TotalAmount:" + parseFloat(TotalAmount).toFixed(2) + "</b>\n" +
// "[L]<b>------------------------------------------------</b>\n"
// setreceiptTextCatWise(receiptTextdata)
// }
const mobileItemWisePrintFun = async (printdata) => {
let Tabledata = printdata?.map((data, index) => {
@ -721,12 +541,6 @@ const RevenueItemWiseReport = () => {
TotalSalesAmt={TotalSalesAmt}
RevenueData={RevenueData}
/>
{/* <CategoryWiseReportPdf
OrderFromDate={OrderFromDate?.split("T")?.[0]}
OrderToDate={OrderToDate?.split("T")?.[0]}
TotalAmount={TotalAmount2}
itemData={CateWiseData}
/> */}
</div>
<div style={{ overflow: "auto" }}>
@ -735,57 +549,6 @@ const RevenueItemWiseReport = () => {
<p className="ItemWiseReport-heading">Gross Margin</p>
<div className="ItemWiseReport-dateaAnd-buttons">
<div className="ItemWiseReport-Date-picker">
{/* <div className="ItemWiseReport-DateFrom">
<div className="ItemWiseReport-Date">
<p className="ItemWiseReport-Date-from-heading required">
From Date
</p>
</div>
<Form.Item
name="Fromdate"
rules={[
{
required: true,
pattern: /^(?!\s*$).+/,
message: 'Please Enter the From Date ',
},
]}
>
<DatePicProd
onChange={OrderFromDatefetch}
// style={{ width: "24vw", height: "2.6rem" }}
valueData={OrderFromDate}
canSelectPast={true}
cancelFuture={true}
/>
</Form.Item>
</div>
<div className="ItemWiseReport-DateTo">
<div className="ItemWiseReport-Date">
<p className="required">To Date</p>
</div>
<Form.Item
name="Todate"
rules={[
{
required: true,
pattern: /^(?!\s*$).+/,
message: 'Please Enter the To Date ',
},
]}
>
<DatePicProd
onChange={OrderToDatefetch}
// style={{ width: "24vw", height: "2.6rem" }}
valueData={OrderToDate}
canSelectPast={true}
cancelFuture={true}
minDate={OrderFromDate}
/>
</Form.Item>
</div> */}
<Form.Item
name="dateRange"
>
@ -863,59 +626,20 @@ const RevenueItemWiseReport = () => {
/>
</Tooltip>
</div>
{/* <div className="ItemWiseReport-PrinterIcon-Container">
<Tooltip title="Print">
{!apiCall ? <BiSolidPrinter
onClick={Print}
className={
itemData?.length > 0
? "ItemWiseReport-printerIcon"
: "ItemWiseReport-printerIcon-disabled"
}
/> :
<BiSolidPrinter
onClick={Print2}
className={
CateWiseData?.length > 0
? "ItemWiseReport-printerIcon"
: "ItemWiseReport-printerIcon-disabled"
}
/>}
</Tooltip>
</div> */}
<div className="ItemWiseReport-search">
{!apiCall ? (
<Search
placeholder="Search by Item Name"
onSearch={onSearch}
onSearchChange={onSearchChange}
/>
) : !chart ? (
<Search
placeholder="Search"
onSearch={onSearch2}
onSearchChange={onSearchChange2}
/>
) : (
''
)}
</div>
</div>
</div>
</div>
</div>
{/* {apiCall && <div className="toggle">
<p> PieChart</p>&nbsp; <Switch onChange={openChart} /> &nbsp; <p> TableData</p>
</div>} */}
<div className="ItemWiseReport-table1">
{/* <Tables
columns={columns}
data={itemData}
dataSource={itemData}
onChange={handleChange}
/> */}
<table className="custom-table">
<thead>
<tr>
@ -929,16 +653,17 @@ const RevenueItemWiseReport = () => {
</thead>
<tbody>
{itemData &&
itemData
.filter(
(row) =>
!searchedText ||
(itemData || [])
.filter((row) => {
const search = (searchedText || "").toLowerCase();
return (
!search ||
(row.ItemName &&
row.ItemName?.toLowerCase()?.includes(
searchedText?.toLowerCase()
))
)
.sort((a, b) => {
row.ItemName.toLowerCase().includes(search))
);
})
?.sort((a, b) => {
if (sortedInfo.columnKey === 'ItemName') {
return sortedInfo.order === 'ascend'
? a.ItemName?.localeCompare(b.ItemName)
@ -946,7 +671,7 @@ const RevenueItemWiseReport = () => {
}
return 0;
})
.map((row, idx) => (
?.map((row, idx) => (
<tr key={idx}>
<td style={{ textAlign: 'center' }}>{idx + 1}</td>
<td style={{ textAlign: 'left' }}>{row.ItemName}</td>
@ -994,30 +719,10 @@ const RevenueItemWiseReport = () => {
</tbody>
</table>
</div>
{/* <div className="ItemWiseReport-table">
{!apiCall ? <Tables
columns={columns}
data={itemData}
// dataSource={itemData}
onChange={handleChange}
/> : !chart ? (<Tables
columns={columns2}
data={chartData}
// dataSource={itemData}
onChange={handleChange2}
/>
) : (<DynamicPieChart chartData={chartData} />)
}
</div> */}
<div
className="ItemWiseReport-netAmount"
style={{ margin: '2rem 1.5rem' }}
>
{/* {apiCall && chart ? null : (
<h3> Net Amount: {!apiCall ? TotalAmount : (!chart ? TotalAmount2 : "")}</h3>
)} */}
{!apiCall ? (
<div className="ItemWiseReport-Amount-Collected-table">
<table className="ItemWiseReport-Amount-Collected-table-div">
@ -1030,15 +735,6 @@ const RevenueItemWiseReport = () => {
<td>Sales Rate</td>
<td>{safeRound(salesRate)}</td>
</tr>
{/* {RevenueData?.[0]?.OverallDisc > 0 && <tr>
<td>Discount Amount</td>
<td>{RevenueData?.[0]?.OverallDisc}</td>
</tr>}
{RevenueData?.[0]?.TaxAmt > 0 && <tr>
<td>Total Tax</td>
<td>{RevenueData?.[0]?.TaxAmt}</td>
</tr>} */}
<p className="ItemWiseReport-border-dashed"></p>
<tr>
<th className="ItemWiseReport-netAmount">
@ -1093,11 +789,6 @@ const RevenueItemWiseReport = () => {
)
)}
</div>
{/* <div className="ItemWiseReport-netAmount">
{apiCall && chart ? null : (
<h3> Net Amount: {!apiCall ? TotalAmount : (!chart ? TotalAmount2 : "")}</h3>
)}
</div> */}
</Form>
</div>
</div>