diff --git a/src/app/api/projects/actions.ts b/src/app/api/projects/actions.ts index ea0d719..1f21dc1 100644 --- a/src/app/api/projects/actions.ts +++ b/src/app/api/projects/actions.ts @@ -21,6 +21,8 @@ export interface CreateProjectInputs { projectLeadId: number; projectActualStart: string; projectActualEnd: string; + projectPlanStart: string; + projectPlanEnd: string; projectStatus: string; isClpProject: boolean; mainProjectId?: number | null; diff --git a/src/components/CreateProject/ProjectClientDetails.tsx b/src/components/CreateProject/ProjectClientDetails.tsx index 238fcf0..b7245fd 100644 --- a/src/components/CreateProject/ProjectClientDetails.tsx +++ b/src/components/CreateProject/ProjectClientDetails.tsx @@ -33,6 +33,10 @@ import React, { useEffect, useMemo, useState } from "react"; import { fetchCustomer } from "@/app/api/customer/actions"; import uniq from "lodash/uniq"; import ControlledAutoComplete from "../ControlledAutoComplete/ControlledAutoComplete"; +import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers"; +import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs"; +import dayjs, { Dayjs } from 'dayjs'; +import { INPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; interface Props { isActive: boolean; @@ -69,7 +73,10 @@ const ProjectClientDetails: React.FC = ({ customerTypes, workNatures, }) => { - const { t } = useTranslation(); + const { + t, + i18n: { language }, + } = useTranslation(); const { register, formState: { errors, defaultValues, touchedFields }, @@ -89,7 +96,6 @@ const ProjectClientDetails: React.FC = ({ ); const selectedCustomerId = watch("clientId"); - const [customerContacts, setCustomerContacts] = useState([]); const [subsidiaryContacts, setSubsidiaryContacts] = useState([]); const [customerSubsidiaryIds, setCustomerSubsidiaryIds] = useState( @@ -228,6 +234,8 @@ const ProjectClientDetails: React.FC = ({ // (acc, wn) => ({ ...acc, [wn.id]: wn.name }), // {}, // ); + const planStart = getValues("projectPlanStart") + const planEnd = getValues("projectPlanEnd") return ( @@ -280,6 +288,57 @@ const ProjectClientDetails: React.FC = ({ error={Boolean(errors.projectName)} /> + + + { + if (!date) return; + setValue("projectPlanStart", date.format(INPUT_DATE_FORMAT)); + }} + slotProps={{ + textField: { + // required: true, + error: + Boolean(errors.projectPlanStart) + || new Date(planStart) > new Date(planEnd) + , + }, + }} + /> + + + + + { + if (!date) return; + setValue("projectPlanEnd", date.format(INPUT_DATE_FORMAT)); + }} + slotProps={{ + textField: { + error: + Boolean(errors.projectPlanEnd) + || new Date(planStart) > new Date(planEnd) + , + }, + }} + /> + +