From d56ba89a4ac08fce8208bfa9f08e97a16ea53817 Mon Sep 17 00:00:00 2001 From: Pramod Mahajan Date: Tue, 8 Apr 2025 18:21:59 +0530 Subject: [PATCH] fixed regularization bugs- past employee is not able to regularized beacuse, id not sending to server --- src/components/Activities/Attendance.jsx | 6 +- src/components/Activities/AttendcesLogs.jsx | 2 + .../Activities/CheckCheckOutForm.jsx | 18 ++--- src/components/Activities/Regularization.jsx | 28 ++++--- .../Activities/RegularizationActions.jsx | 22 ++++-- .../Activities/RenderAttendanceStatus.jsx | 3 +- .../Project/Infrastructure/WorkItem.jsx | 4 +- src/hooks/useAttendance.js | 39 +++++++++- src/pages/Activities/AttendancePage.jsx | 78 +++---------------- src/repositories/AttendanceRepository.jsx | 3 +- src/slices/apiSlice/attedanceLogsSlice.js | 7 +- src/slices/apiSlice/attendanceAllSlice.js | 2 +- 12 files changed, 109 insertions(+), 103 deletions(-) diff --git a/src/components/Activities/Attendance.jsx b/src/components/Activities/Attendance.jsx index 9fe3a756..e3fee8b6 100644 --- a/src/components/Activities/Attendance.jsx +++ b/src/components/Activities/Attendance.jsx @@ -59,10 +59,8 @@ const Attendance = ( {attendance, getRole, handleModalData} ) => - {/* - {getRole(item.roleID)} - */} - --- + {item.jobRoleName} + {item.checkInTime ? convertShortTime(item.checkInTime):"--"} {item.checkOutTime ? convertShortTime(item.checkOutTime):"--"} diff --git a/src/components/Activities/AttendcesLogs.jsx b/src/components/Activities/AttendcesLogs.jsx index b765dc82..71f0c9f8 100644 --- a/src/components/Activities/AttendcesLogs.jsx +++ b/src/components/Activities/AttendcesLogs.jsx @@ -51,6 +51,7 @@ const AttendanceLog = ({ attendance, handleModalData, projectId }) => { Name + Role Check-In @@ -81,6 +82,7 @@ const AttendanceLog = ({ attendance, handleModalData, projectId }) => { + { attendance.jobRoleName} {convertShortTime(attendance.checkInTime)} {attendance.checkOutTime ? convertShortTime(attendance.checkOutTime) : '--'} diff --git a/src/components/Activities/CheckCheckOutForm.jsx b/src/components/Activities/CheckCheckOutForm.jsx index 1d13bf7b..b947f5cb 100644 --- a/src/components/Activities/CheckCheckOutForm.jsx +++ b/src/components/Activities/CheckCheckOutForm.jsx @@ -35,18 +35,18 @@ const CheckCheckOutmodel = ({modeldata,closeModal,handleSubmitForm,}) => { const onSubmit = ( data ) => { console.log(data) - let record = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude,employeeId:modeldata.employeeId,action:modeldata.action} + let record = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude,employeeId:modeldata.employeeId,action:modeldata.action,id:modeldata?.id || null} if(modeldata.forWhichTab === 1){ handleSubmitForm(record) } else { - console.log("is Date" ,checkIfCurrentDate(modeldata?.currentDate)) + if ( modeldata?.currentDate && checkIfCurrentDate(modeldata?.currentDate) ) { handleSubmitForm(record) } else { - let formData = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude,employeeId:modeldata.employeeId,projectId:projectId,action:modeldata.action} + 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} dispatch(markAttendance(formData)) .unwrap() .then(() => { @@ -67,8 +67,6 @@ const CheckCheckOutmodel = ({modeldata,closeModal,handleSubmitForm,}) => {
- {/* setValue("time", e)} /> */} - setValue("markTime", e)} @@ -123,7 +121,7 @@ const schemaReg = z.object({ export const Regularization = ({modeldata,closeModal,handleSubmitForm})=>{ const [isLoading, setIsLoading] = useState(false); const coords = usePositionTracker(); - console.log(modeldata) + const { register, handleSubmit, @@ -138,10 +136,12 @@ export const Regularization = ({modeldata,closeModal,handleSubmitForm})=>{ }; - const onSubmit = (data) => { - let record = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude} + const onSubmit = ( data ) => + { - + let record = {...data, date: new Date().toLocaleDateString(),latitude:coords.latitude,longitude:coords.longitude, } + + console.log(record) handleSubmitForm(record) closeModal() }; diff --git a/src/components/Activities/Regularization.jsx b/src/components/Activities/Regularization.jsx index 6bbd1b76..55504593 100644 --- a/src/components/Activities/Regularization.jsx +++ b/src/components/Activities/Regularization.jsx @@ -2,17 +2,23 @@ import React, { useEffect, useState } from 'react'; import Avatar from '../common/Avatar'; import { convertShortTime } from '../../utils/dateUtils'; import RegularizationActions from './RegularizationActions'; +import {useSelector} from 'react-redux'; +import {useRegularizationRequests} from '../../hooks/useAttendance'; +import moment from 'moment'; -const Regularization = ({attendance,handleRequest}) => { - const[attendances,setAttendances] = useState(attendance) - const regularize_Requests = attendances.filter((att)=>att.activity === 2) +const Regularization = ( { handleRequest} ) => +{ + var selectedProject = useSelector((store) => store.localVariables.projectId); + const [ regularizesList, setregularizedList ] = useState( [] ) + const { regularizes, loading,error} = useRegularizationRequests(selectedProject) + useEffect(()=>{ - setAttendances(attendance) - },[attendance]) - + setregularizedList(regularizes) + },[regularizes]) + return (
@@ -25,10 +31,12 @@ const Regularization = ({attendance,handleRequest}) => { - + + + {loading &&} { - regularize_Requests.length > 0 ? ( - regularize_Requests?.map((att, index) => ( + regularizes?.length > 0 ? ( + regularizes?.map((att, index) => ( - +
Action
Loading...
@@ -48,7 +56,7 @@ const Regularization = ({attendance,handleRequest}) => {
{att.date}{moment(att.checkOutTime).format("DD-MMM-YYYY")} {convertShortTime(att.checkInTime)} {att.checkOutTime ? convertShortTime(att.checkOutTime):"--"} diff --git a/src/components/Activities/RegularizationActions.jsx b/src/components/Activities/RegularizationActions.jsx index a4cd5967..bc788ace 100644 --- a/src/components/Activities/RegularizationActions.jsx +++ b/src/components/Activities/RegularizationActions.jsx @@ -1,8 +1,10 @@ import React, { act, useEffect, useState } from 'react' import useAttendanceStatus, { ACTIONS } from '../../hooks/useAttendanceStatus'; // import AttendanceRepository from '../../repositories/AttendanceRepository'; -import { useSelector } from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; import { usePositionTracker } from '../../hooks/usePositionTracker'; +import {markCurrentAttendance} from '../../slices/apiSlice/attendanceAllSlice'; +import {cacheData, getCachedData} from '../../slices/apiDataManager'; const RegularizationActions = ({attendanceData,handleRequest}) => { @@ -12,10 +14,10 @@ const [loadingReject,setLoadingForReject] = useState(false) const projectId = useSelector((store)=>store.localVariables.projectId) const {latitude,longitude} = usePositionTracker(); - +const dispatch = useDispatch() const handleRegularization =(request_attendance,IsReqularize)=>{ - + debugger if(IsReqularize){ setLoadingForApprove(true) }else{ @@ -34,8 +36,18 @@ const {latitude,longitude} = usePositionTracker(); action:IsReqularize ? 4 : 5, image:null } - console.log(req_Data) - handleRequest(req_Data) + + dispatch( markCurrentAttendance( req_Data ) ).then( ( action ) => + { + + const regularizedList = getCachedData("regularizedList") + + const updatedata = regularizedList?.data?.filter( item => item.id !== action.payload.id ); + + cacheData("regularizedList",{data:updatedata,projectId:projectId}) + setLoadingForApprove( false ) + setLoadingForReject(false) + }) } diff --git a/src/components/Activities/RenderAttendanceStatus.jsx b/src/components/Activities/RenderAttendanceStatus.jsx index c1d8eefe..e52889e7 100644 --- a/src/components/Activities/RenderAttendanceStatus.jsx +++ b/src/components/Activities/RenderAttendanceStatus.jsx @@ -9,7 +9,7 @@ const RenderAttendanceStatus = ({ attendanceData, handleModalData,Tab,currentDat const handleButtonClick = (key) => { if(key === 6){ - handleModalData({action:6,id :attendanceData?.id}) + handleModalData({action:6,id:attendanceData?.id}) }else{ handleModalData({ @@ -22,6 +22,7 @@ const RenderAttendanceStatus = ({ attendanceData, handleModalData,Tab,currentDat } }; + return (