Merge pull request 'Kartik_Bug#785' (#274) from Kartik_Bug#785 into Issues_July_4W
Reviewed-on: #274 Merged
This commit is contained in:
commit
820f80562f
@ -10,10 +10,43 @@ import showToast from "../../services/toastService";
|
||||
import { checkIfCurrentDate } from "../../utils/dateUtils";
|
||||
|
||||
|
||||
const schema = z.object({
|
||||
markTime: z.string().nonempty({ message: "Time is required" }),
|
||||
description: z.string().max(200, "description should less than 200 chracters").optional()
|
||||
});
|
||||
// const schema = z.object({
|
||||
// markTime: z.string().nonempty({ message: "Time is required" }),
|
||||
// description: z.string().max(200, "description should less than 200 chracters").optional()
|
||||
// });
|
||||
|
||||
const createSchema = (modeldata) => {
|
||||
return z
|
||||
.object({
|
||||
markTime: z.string().nonempty({ message: "Time is required" }),
|
||||
description: z
|
||||
.string()
|
||||
.max(200, "Description should be less than 200 characters")
|
||||
.optional(),
|
||||
})
|
||||
.refine((data) => {
|
||||
if (modeldata?.checkInTime && !modeldata?.checkOutTime) {
|
||||
const checkIn = new Date(modeldata.checkInTime);
|
||||
const [time, modifier] = data.markTime.split(" ");
|
||||
const [hourStr, minuteStr] = time.split(":");
|
||||
let hour = parseInt(hourStr, 10);
|
||||
const minute = parseInt(minuteStr, 10);
|
||||
|
||||
if (modifier === "PM" && hour !== 12) hour += 12;
|
||||
if (modifier === "AM" && hour === 12) hour = 0;
|
||||
|
||||
const checkOut = new Date(checkIn);
|
||||
checkOut.setHours(hour, minute, 0, 0);
|
||||
|
||||
return checkOut > checkIn;
|
||||
}
|
||||
return true;
|
||||
}, {
|
||||
message: "Checkout time must be later than check-in time",
|
||||
path: ["markTime"],
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
|
||||
|
||||
@ -31,16 +64,28 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
|
||||
return `${day}-${month}-${year}`;
|
||||
};
|
||||
|
||||
// const {
|
||||
// register,
|
||||
// handleSubmit,
|
||||
// formState: { errors },
|
||||
// reset,
|
||||
// setValue,
|
||||
// } = useForm({
|
||||
// resolver: zodResolver(schema),
|
||||
// mode: "onChange"
|
||||
// });
|
||||
|
||||
const {
|
||||
register,
|
||||
handleSubmit,
|
||||
formState: { errors },
|
||||
reset,
|
||||
setValue,
|
||||
} = useForm({
|
||||
resolver: zodResolver(schema),
|
||||
mode: "onChange"
|
||||
});
|
||||
register,
|
||||
handleSubmit,
|
||||
formState: { errors },
|
||||
reset,
|
||||
setValue,
|
||||
} = useForm({
|
||||
resolver: zodResolver(createSchema(modeldata)),
|
||||
mode: "onChange",
|
||||
});
|
||||
|
||||
|
||||
const onSubmit = (data) => {
|
||||
let record = { ...data, date: new Date().toLocaleDateString(), latitude: coords.latitude, longitude: coords.longitude, employeeId: modeldata.employeeId, action: modeldata.action, id: modeldata?.id || null }
|
||||
@ -48,8 +93,6 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
|
||||
handleSubmitForm(record)
|
||||
} else {
|
||||
|
||||
// if ( modeldata?.currentDate && checkIfCurrentDate( modeldata?.currentDate ) )
|
||||
// {
|
||||
dispatch(markAttendance(record))
|
||||
.unwrap()
|
||||
.then((data) => {
|
||||
@ -61,11 +104,6 @@ const CheckCheckOutmodel = ({ modeldata, closeModal, handleSubmitForm, }) => {
|
||||
showToast(error, "error");
|
||||
|
||||
});
|
||||
|
||||
// } else
|
||||
// {
|
||||
// let formData = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude,employeeId:modeldata.employeeId,projectId:projectId,action:modeldata.action,id:modeldata?.id || null}
|
||||
// }
|
||||
}
|
||||
|
||||
closeModal()
|
||||
|
@ -469,7 +469,7 @@ const { mutate: updateEmployee, isPending } = useUpdateEmployee();
|
||||
</div>
|
||||
<div className="row mb-3">
|
||||
<div className="col-sm-4">
|
||||
<div className="form-text text-start">Role</div>
|
||||
<div className="form-text text-start">Official Designation</div>
|
||||
<div className="input-group input-group-merge ">
|
||||
<select
|
||||
className="form-select form-select-sm"
|
||||
|
@ -480,7 +480,7 @@ const EmployeeList = () => {
|
||||
aria-label="User: activate to sort column ascending"
|
||||
aria-sort="descending"
|
||||
>
|
||||
<div className="text-start ms-5">Role</div>
|
||||
<div className="text-start ms-5">Official Designation</div>
|
||||
</th>
|
||||
|
||||
<th
|
||||
|
Loading…
x
Reference in New Issue
Block a user