feat: pagina /tareas + quitar completar obligaciones fiscales
- Nueva pagina /tareas para ver y marcar tareas operativas - Endpoint GET /tareas/mis-tareas con periodo actual - Quitado boton de marcar completada de obligaciones fiscales en /pendientes
This commit is contained in:
31
apps/web/lib/api/tareas-mis.ts
Normal file
31
apps/web/lib/api/tareas-mis.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { apiClient } from './client';
|
||||
|
||||
export interface TareaConContribuyente {
|
||||
id: string;
|
||||
contribuyenteId: string;
|
||||
contribuyenteRfc: string;
|
||||
contribuyenteRazonSocial: string;
|
||||
nombre: string;
|
||||
descripcion: string | null;
|
||||
recurrencia: string;
|
||||
diaSemana: number | null;
|
||||
diaMes: number | null;
|
||||
soloSupervisorCompleta: boolean;
|
||||
esDefault: boolean;
|
||||
active: boolean;
|
||||
orden: number;
|
||||
createdAt: string;
|
||||
auxiliarAsignadoId?: string | null;
|
||||
periodoActual: {
|
||||
id: string;
|
||||
periodo: string;
|
||||
fechaLimite: string;
|
||||
completada: boolean;
|
||||
completadaAt: string | null;
|
||||
completadaPor: string | null;
|
||||
notas: string | null;
|
||||
} | null;
|
||||
}
|
||||
|
||||
export const getMisTareas = () =>
|
||||
apiClient.get<TareaConContribuyente[]>('/tareas/mis-tareas').then(r => r.data);
|
||||
37
apps/web/lib/hooks/use-tareas-mis.ts
Normal file
37
apps/web/lib/hooks/use-tareas-mis.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { getMisTareas } from '../api/tareas-mis';
|
||||
import { apiClient } from '../api/client';
|
||||
|
||||
export function useMisTareas() {
|
||||
return useQuery({
|
||||
queryKey: ['tareas-mis-tareas'],
|
||||
queryFn: getMisTareas,
|
||||
});
|
||||
}
|
||||
|
||||
export function useCompletarTareaPeriodo() {
|
||||
const qc = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: (periodoId: string) =>
|
||||
apiClient.post(`/tareas/periodo/${periodoId}/completar`).then(r => r.data),
|
||||
onSuccess: () => {
|
||||
qc.invalidateQueries({ queryKey: ['tareas-mis-tareas'] });
|
||||
qc.invalidateQueries({ queryKey: ['tareas'] });
|
||||
},
|
||||
onError: (err: any) => {
|
||||
alert(err.response?.data?.message || 'No se pudo marcar como completada');
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export function useDescompletarTareaPeriodo() {
|
||||
const qc = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: (periodoId: string) =>
|
||||
apiClient.delete(`/tareas/periodo/${periodoId}/completar`).then(r => r.data),
|
||||
onSuccess: () => {
|
||||
qc.invalidateQueries({ queryKey: ['tareas-mis-tareas'] });
|
||||
qc.invalidateQueries({ queryKey: ['tareas'] });
|
||||
},
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user