diff --git a/src/components/Project/ProjectCard.jsx b/src/components/Project/ProjectCard.jsx index ca5d88de..815b84c5 100644 --- a/src/components/Project/ProjectCard.jsx +++ b/src/components/Project/ProjectCard.jsx @@ -41,7 +41,7 @@ const ProjectCard = ({ project }) => { dispatch(setProjectId(project.id)); navigate(`/activities/records?project=${project.id}`); }; - +console.log(project) return ( <>
@@ -63,7 +63,7 @@ const ProjectCard = ({ project }) => { {project?.shortName ? project?.shortName : project?.name}
- {project.shortName ? project.name : ""} + {project?.shortName ? project?.name : ""}
@@ -125,22 +125,22 @@ const ProjectCard = ({ project }) => { Contact Person:{" "} - {project.contactPerson ? project.contactPerson : "NA"} + {project?.contactPerson ? project.contactPerson : "NA"}

Start Date: {project.startDate - ? moment(project.startDate).format("DD-MMM-YYYY") + ? moment(project?.startDate).format("DD-MMM-YYYY") : "NA"}

Deadline: - {project.endDate - ? moment(project.endDate).format("DD-MMM-YYYY") + {project?.endDate + ? moment(project?.endDate).format("DD-MMM-YYYY") : "NA"}

-

{project.projectAddress}

+

{project?.projectAddress}

@@ -150,37 +150,37 @@ const ProjectCard = ({ project }) => { - {getProjectStatusName(project.projectStatusId)} + {getProjectStatusName(project?.projectStatusId)}

{" "} - {getDateDifferenceInDays(project.endDate, Date()) >= 0 && ( + {getDateDifferenceInDays(project?.endDate,new Date() ) >= 0 && ( - {project.endDate && - getDateDifferenceInDays(project.endDate, Date())}{" "} + {project?.endDate && + getDateDifferenceInDays(project?.endDate, new Date())}{" "} Days left )} - {getDateDifferenceInDays(project.endDate, Date()) < 0 && ( + {getDateDifferenceInDays(project?.endDate, new Date()) < 0 && ( - {project.endDate && - getDateDifferenceInDays(project.endDate, Date())}{" "} + {project?.endDate && + getDateDifferenceInDays(project?.endDate, new Date())}{" "} Days overdue )}
- Task: {formatNumber(project.completedWork)} /{" "} - {formatNumber(project.plannedWork)} + Task: {formatNumber(project?.completedWork)} /{" "} + {formatNumber(project?.plannedWork)} {Math.floor( getProgressInNumber( - project.plannedWork, - project.completedWork + project?.plannedWork, + project?.completedWork ) ) || 0}{" "} % Completed @@ -192,13 +192,13 @@ const ProjectCard = ({ project }) => { role="progressbar" style={{ width: getProgress( - project.plannedWork, - project.completedWork + project?.plannedWork, + project?.completedWork ), }} - aria-valuenow={project.completedWork} + aria-valuenow={project?.completedWork} aria-valuemin="0" - aria-valuemax={project.plannedWork} + aria-valuemax={project?.plannedWork} >
diff --git a/src/utils/dateUtils.jsx b/src/utils/dateUtils.jsx index f32ce652..388f7563 100644 --- a/src/utils/dateUtils.jsx +++ b/src/utils/dateUtils.jsx @@ -3,25 +3,33 @@ import { ActiveTenant } from "./constants"; export const getDateDifferenceInDays = (startDate, endDate) => { if (!startDate || !endDate) { - throw new Error("Both startDate and endDate must be provided"); + return null; } - // Ensure the dates are valid const start = new Date(startDate); const end = new Date(endDate); if (isNaN(start) || isNaN(end)) { - throw new Error("Invalid date format"); + return null; } - // Calculate the difference in milliseconds - const differenceInMs = start - end; + const startAtMidnight = new Date( + start.getFullYear(), + start.getMonth(), + start.getDate() + ); - // Convert milliseconds to days - const differenceInDays = Math.floor(differenceInMs / (1000 * 60 * 60 * 24)); - return differenceInDays; + const endAtMidnight = new Date( + end.getFullYear(), + end.getMonth(), + end.getDate() + ); + + return Math.floor((startAtMidnight - endAtMidnight) / (1000 * 60 * 60 * 24)); }; + + export const formatDate = (date) => { if (!date) return ""; // Return an empty string if no date const dateObj = new Date(date);