From 10ff3ecd2fc1b8b1e5c80376af026ddf8779dc41 Mon Sep 17 00:00:00 2001 From: "pramod.mahajan" Date: Tue, 4 Nov 2025 15:30:44 +0530 Subject: [PATCH 1/2] fixed permission for update Payement request and expense --- src/components/Dashboard/ExpenseByProject.jsx | 4 +- src/components/Expenses/ExpenseStatusLogs.jsx | 28 +- .../PaymentRequest/ManagePaymentRequest.jsx | 6 +- .../PaymentRequest/PaymentRequestList.jsx | 133 ++-- .../PaymentRequest/ViewPaymentRequest.jsx | 664 +++++++++--------- src/components/common/Error.jsx | 94 ++- src/components/common/TimeLine.jsx | 40 +- src/utils/constants.jsx | 2 +- 8 files changed, 533 insertions(+), 438 deletions(-) diff --git a/src/components/Dashboard/ExpenseByProject.jsx b/src/components/Dashboard/ExpenseByProject.jsx index 6078b52b..d59c9522 100644 --- a/src/components/Dashboard/ExpenseByProject.jsx +++ b/src/components/Dashboard/ExpenseByProject.jsx @@ -13,7 +13,7 @@ const ExpenseByProject = () => { const [viewMode, setViewMode] = useState("Category"); const [chartData, setChartData] = useState({ categories: [], data: [] }); - const { ExpenseTypes, loading: typeLoading } = useExpenseCategory(); + const { ExpenseCategories, loading: typeLoading } = useExpenseCategory(); const { data: expenseApiData, isLoading } = useExpenseDataByProject( projectId, @@ -133,7 +133,7 @@ const ExpenseByProject = () => { style={{ maxWidth: "200px" }} > - {ExpenseTypes.map((type) => ( + {ExpenseCategories?.map((type) => ( diff --git a/src/components/Expenses/ExpenseStatusLogs.jsx b/src/components/Expenses/ExpenseStatusLogs.jsx index 26785725..2baaa643 100644 --- a/src/components/Expenses/ExpenseStatusLogs.jsx +++ b/src/components/Expenses/ExpenseStatusLogs.jsx @@ -2,9 +2,10 @@ import { useState, useMemo } from "react"; import Avatar from "../common/Avatar"; import { formatUTCToLocalTime } from "../../utils/dateUtils"; import Timeline from "../common/TimeLine"; - +import moment from "moment"; +import { getColorNameFromHex } from "../../utils/appUtils"; const ExpenseStatusLogs = ({ data }) => { - const [visibleCount, setVisibleCount] = useState(4); + const [visibleCount, setVisibleCount] = useState(4); const sortedLogs = useMemo(() => { if (!data?.updateLogs) return []; @@ -18,32 +19,33 @@ const ExpenseStatusLogs = ({ data }) => { [sortedLogs, visibleCount] ); -const timelineData = useMemo(() => { + const timelineData = useMemo(() => { return logsToShow.map((log, index) => ({ id: index + 1, title: log.nextStatus?.name || "Status Updated", description: log.nextStatus?.description || "", - timeAgo: formatTimeAgo(log.updatedAt), - color: log.nextStatus?.color || "primary", + timeAgo: moment.utc(log?.updatedAt).local().fromNow(), + color: getColorNameFromHex(log.nextStatus?.color) || "primary", users: log.updatedBy ? [ { - name: `${log.updatedBy.firstName || ""} ${` log?.updatedBy?.lastName` || ""}`.trim(), + firstName: log.updatedBy.firstName || "", + lastName: log?.updatedBy?.lastName || "", role: log.updatedBy.jobRoleName || "", - avatar: log.updatedBy.photo || "assets/img/avatars/default.png", + avatar: log.updatedBy.photo, }, ] : [], })); - }, [logsToShow]) + }, [logsToShow]); const handleShowMore = () => { setVisibleCount((prev) => prev + 4); }; return ( - <> -
+
+ {/*
{logsToShow.map((log) => (
{ Show More
- )} + )} */} - +
); }; export default ExpenseStatusLogs; - - diff --git a/src/components/PaymentRequest/ManagePaymentRequest.jsx b/src/components/PaymentRequest/ManagePaymentRequest.jsx index cdad5742..2b727816 100644 --- a/src/components/PaymentRequest/ManagePaymentRequest.jsx +++ b/src/components/PaymentRequest/ManagePaymentRequest.jsx @@ -467,7 +467,7 @@ function ManagePaymentRequest({ closeModal, requestToEdit = null }) { +
    +
  • + setManageRequest({ + IsOpen: true, + RequestId: paymentRequest.id, + }) + } > - - -
      -
    • - setManageRequest({ - IsOpen: true, - RequestId: paymentRequest.id, - }) - } - > - - - Modify - -
    • + + + + Modify + + + + {canDetetExpense(paymentRequest) && (
    • { setIsDeleteModalOpen(true); @@ -323,11 +331,15 @@ const PaymentRequestList = ({ filters, groupBy = "submittedBy", search }) => { > - Delete + + Delete +
    • -
    -
)} + )} + +
+ )} @@ -355,8 +367,9 @@ const PaymentRequestList = ({ filters, groupBy = "submittedBy", search }) => { {[...Array(totalPages)].map((_, index) => (