Correction in logic for ExpenseStatus to Expense.

This commit is contained in:
Kartik Sharma 2025-11-08 12:18:20 +05:30
parent 8e38f52e72
commit e1455c9ef8
3 changed files with 118 additions and 106 deletions

View File

@ -1,9 +1,15 @@
import React, { useMemo } from "react";
const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
// Build chips from filters
const filterChips = useMemo(() => {
if (!filterData?.projects?.length) return [];
const chips = [];
const projectExists = filters.projectIds?.every((pid) =>
filterData.projects.some((p) => p.id === pid)
);
if (!projectExists) return [];
const buildGroup = (ids, list, label, key) => {
if (!ids?.length) return;
@ -49,10 +55,7 @@ const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
className="d-flex align-items-center flex-wrap px-2 py-1"
style={{ fontSize: "0.9rem", maxWidth: "100%" }}
>
{/* Chip Label */}
<span className="fw-semibold me-2">{chip.label}:</span>
{/* Chip Items */}
<div className="d-flex flex-wrap align-items-center gap-1">
{chip.items.map((item) => (
<span
@ -78,12 +81,10 @@ const ExpenseFilterChips = ({ filters, filterData, removeFilterChip }) => {
</div>
</div>
</div>
);
};
export default ExpenseFilterChips;

View File

@ -121,10 +121,19 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
useEffect(() => {
if (!status || !data) return;
const projectExists = selectedProjectId
? data?.projects?.some((p) => p.id === selectedProjectId)
: false;
if (!projectExists) {
console.warn("Project not found, skipping ExpenseStatus filter.");
return; // stop processing
}
if (status !== appliedStatusId) {
const filterWithStatus = {
...dynamicDefaultFilter,
projectIds: selectedProjectId ? [selectedProjectId] : dynamicDefaultFilter.projectIds || [],
projectIds: [selectedProjectId],
startDate: dynamicDefaultFilter.startDate
? moment.utc(dynamicDefaultFilter.startDate, "DD-MM-YYYY").toISOString()
: undefined,
@ -148,6 +157,8 @@ const ExpenseFilterPanel = forwardRef(({ onApply, handleGroupBy, setFilterdata }
selectedProjectId,
]);
if (isLoading || isFetching) return <ExpenseFilterSkeleton />;
if (isError && isFetched)
return <div>Something went wrong Here- {error.message} </div>;

View File

@ -98,9 +98,9 @@ const router = createBrowserRouter(
{ path: "/activities/task", element: <TaskPlannng /> },
{ path: "/activities/reports", element: <Reports /> },
{ path: "/gallary", element: <ComingSoonPage /> },
{ path: "/expenses", element: <ExpensePage /> },
{ path: "/expenses/:status?/:project?", element: <ExpensePage /> },
{ path: "/collection", element: <CollectionPage /> },
{ path: "/expenses", element: <ExpensePage /> },
{ path: "/payment-request", element: <PaymentRequestPage /> },
{ path: "/advance-payment", element: <AdvancePaymentPage /> },
{ path: "/recurring-payment", element: <RecurringExpensePage /> },