fixed run time date error

This commit is contained in:
pramod.mahajan 2025-09-29 15:03:52 +05:30
parent 68335f0695
commit 550b142d74
2 changed files with 39 additions and 31 deletions

View File

@ -41,7 +41,7 @@ const ProjectCard = ({ project }) => {
dispatch(setProjectId(project.id));
navigate(`/activities/records?project=${project.id}`);
};
console.log(project)
return (
<>
<div className="col-md-6 col-lg-4 col-xl-4 order-0 mb-4">
@ -63,7 +63,7 @@ const ProjectCard = ({ project }) => {
{project?.shortName ? project?.shortName : project?.name}
</h5>
<div className="client-info text-body">
<span>{project.shortName ? project.name : ""}</span>
<span>{project?.shortName ? project?.name : ""}</span>
</div>
</div>
</div>
@ -125,22 +125,22 @@ const ProjectCard = ({ project }) => {
<span className="text-heading fw-medium">
Contact Person:{" "}
</span>
{project.contactPerson ? project.contactPerson : "NA"}
{project?.contactPerson ? project.contactPerson : "NA"}
</p>
<p className="mb-1">
<span className="text-heading fw-medium">Start Date: </span>
{project.startDate
? moment(project.startDate).format("DD-MMM-YYYY")
? moment(project?.startDate).format("DD-MMM-YYYY")
: "NA"}
</p>
<p className="mb-1">
<span className="text-heading fw-medium">Deadline: </span>
{project.endDate
? moment(project.endDate).format("DD-MMM-YYYY")
{project?.endDate
? moment(project?.endDate).format("DD-MMM-YYYY")
: "NA"}
</p>
<p className="mb-0">{project.projectAddress}</p>
<p className="mb-0">{project?.projectAddress}</p>
</div>
</div>
</div>
@ -150,37 +150,37 @@ const ProjectCard = ({ project }) => {
<span
className={
`badge rounded-pill ` +
getProjectStatusColor(project.projectStatusId)
getProjectStatusColor(project?.projectStatusId)
}
>
{getProjectStatusName(project.projectStatusId)}
{getProjectStatusName(project?.projectStatusId)}
</span>
</p>{" "}
{getDateDifferenceInDays(project.endDate, Date()) >= 0 && (
{getDateDifferenceInDays(project?.endDate,new Date() ) >= 0 && (
<span className="badge bg-label-success ms-auto">
{project.endDate &&
getDateDifferenceInDays(project.endDate, Date())}{" "}
{project?.endDate &&
getDateDifferenceInDays(project?.endDate, new Date())}{" "}
Days left
</span>
)}
{getDateDifferenceInDays(project.endDate, Date()) < 0 && (
{getDateDifferenceInDays(project?.endDate, new Date()) < 0 && (
<span className="badge bg-label-danger ms-auto">
{project.endDate &&
getDateDifferenceInDays(project.endDate, Date())}{" "}
{project?.endDate &&
getDateDifferenceInDays(project?.endDate, new Date())}{" "}
Days overdue
</span>
)}
</div>
<div className="d-flex justify-content-between align-items-center mb-2">
<small className="text-body">
Task: {formatNumber(project.completedWork)} /{" "}
{formatNumber(project.plannedWork)}
Task: {formatNumber(project?.completedWork)} /{" "}
{formatNumber(project?.plannedWork)}
</small>
<small className="text-body">
{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}
></div>
</div>
<div className="d-flex align-items-center justify-content-between">

View File

@ -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);