fixed run time date error
This commit is contained in:
parent
68335f0695
commit
550b142d74
@ -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">
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user