|
|
@@ -170,12 +170,12 @@ const CreateProject: React.FC<Props> = ({ |
|
|
|
|
|
|
|
// Tab - Milestone |
|
|
|
let projectTotal = 0 |
|
|
|
const milestonesKeys = Object.keys(data.milestones) |
|
|
|
const milestonesKeys = Object.keys(data.milestones).filter(key => taskGroupKeys.includes(key)) |
|
|
|
milestonesKeys.filter(key => Object.keys(data.taskGroups).includes(key)).forEach(key => { |
|
|
|
const { startDate, endDate, payments } = data.milestones[parseFloat(key)] |
|
|
|
|
|
|
|
if (!Boolean(startDate) || startDate === "Invalid Date" || !Boolean(endDate) || endDate === "Invalid Date" || new Date(startDate) > new Date(endDate)) { |
|
|
|
formProps.setError("milestones", {message: "milestones is not valid", type: "invalid"}) |
|
|
|
formProps.setError("milestones", { message: "milestones is not valid", type: "invalid" }) |
|
|
|
setTabIndex(3) |
|
|
|
hasErrors = true |
|
|
|
} |
|
|
@@ -183,8 +183,8 @@ const CreateProject: React.FC<Props> = ({ |
|
|
|
projectTotal += payments.reduce((acc, payment) => acc + payment.amount, 0) |
|
|
|
}) |
|
|
|
|
|
|
|
if (projectTotal !== data.expectedProjectFee) { |
|
|
|
formProps.setError("milestones", {message: "milestones is not valid", type: "invalid"}) |
|
|
|
if (projectTotal !== data.expectedProjectFee || milestonesKeys.length !== taskGroupKeys.length) { |
|
|
|
formProps.setError("milestones", { message: "milestones is not valid", type: "invalid" }) |
|
|
|
setTabIndex(3) |
|
|
|
hasErrors = true |
|
|
|
} |
|
|
@@ -219,7 +219,7 @@ const CreateProject: React.FC<Props> = ({ |
|
|
|
data.projectActualEnd = dayjs().format("YYYY-MM-DD"); |
|
|
|
} |
|
|
|
|
|
|
|
data.taskTemplateId = data.taskTemplateId === "All" ? undefined : data.taskTemplateId; |
|
|
|
data.taskTemplateId = data.taskTemplateId === "All" ? undefined : data.taskTemplateId; |
|
|
|
const response = await saveProject(data); |
|
|
|
|
|
|
|
if (response.id > 0) { |
|
|
@@ -293,7 +293,7 @@ const CreateProject: React.FC<Props> = ({ |
|
|
|
{isEditMode && !(formProps.getValues("projectDeleted") === true) && ( |
|
|
|
<Stack direction="row" gap={1}> |
|
|
|
{/* {!formProps.getValues("projectActualStart") && ( */} |
|
|
|
{formProps.getValues("projectStatus") === "Pending to Start" && ( |
|
|
|
{formProps.getValues("projectStatus").toLowerCase() === "pending to start" && ( |
|
|
|
<Button |
|
|
|
name="start" |
|
|
|
type="submit" |
|
|
@@ -306,21 +306,21 @@ const CreateProject: React.FC<Props> = ({ |
|
|
|
)} |
|
|
|
{/* {formProps.getValues("projectActualStart") && |
|
|
|
!formProps.getValues("projectActualEnd") && ( */} |
|
|
|
{formProps.getValues("projectStatus") === "On-going" && ( |
|
|
|
<Button |
|
|
|
name="complete" |
|
|
|
type="submit" |
|
|
|
variant="contained" |
|
|
|
startIcon={<DoneIcon />} |
|
|
|
color="info" |
|
|
|
> |
|
|
|
{t("Complete Project")} |
|
|
|
</Button> |
|
|
|
)} |
|
|
|
{formProps.getValues("projectStatus").toLowerCase() === "on-going" && ( |
|
|
|
<Button |
|
|
|
name="complete" |
|
|
|
type="submit" |
|
|
|
variant="contained" |
|
|
|
startIcon={<DoneIcon />} |
|
|
|
color="info" |
|
|
|
> |
|
|
|
{t("Complete Project")} |
|
|
|
</Button> |
|
|
|
)} |
|
|
|
{!( |
|
|
|
// formProps.getValues("projectActualStart") && |
|
|
|
// formProps.getValues("projectActualEnd") |
|
|
|
formProps.getValues("projectStatus") === "Completed" || |
|
|
|
formProps.getValues("projectStatus") === "Completed" || |
|
|
|
formProps.getValues("projectStatus") === "Deleted" |
|
|
|
) && ( |
|
|
|
<Button |
|
|
|