- Componente seguimiento-auxiliares.tsx con tabs Asignadas/Sin asignar - Tabs internos Obligaciones/Tareas en cada vista - API client y hooks para asignaciones - Fix: invalidar query sin-asignar al asignar/desasignar
59 lines
2.1 KiB
TypeScript
59 lines
2.1 KiB
TypeScript
import { apiClient } from './client';
|
|
|
|
export interface AsignacionObligacion {
|
|
id: string;
|
|
obligacionId: string;
|
|
obligacionNombre: string;
|
|
contribuyenteId: string;
|
|
contribuyenteRfc: string;
|
|
contribuyenteRazonSocial: string;
|
|
auxiliarUserId: string;
|
|
auxiliarNombre: string | null;
|
|
asignadoPor: string;
|
|
asignadoAt: string;
|
|
}
|
|
|
|
export interface AsignacionTarea {
|
|
id: string;
|
|
tareaId: string;
|
|
tareaNombre: string;
|
|
contribuyenteId: string;
|
|
contribuyenteRfc: string;
|
|
contribuyenteRazonSocial: string;
|
|
auxiliarUserId: string;
|
|
auxiliarNombre: string | null;
|
|
asignadoPor: string;
|
|
asignadoAt: string;
|
|
}
|
|
|
|
export interface AsignacionesResponse {
|
|
obligaciones: AsignacionObligacion[];
|
|
tareas: AsignacionTarea[];
|
|
}
|
|
|
|
export const getAsignacionesPorSupervisor = () =>
|
|
apiClient.get<AsignacionesResponse>('/carteras/asignaciones').then(r => r.data);
|
|
|
|
export const getAsignacionesPorAuxiliar = () =>
|
|
apiClient.get<AsignacionesResponse>('/carteras/asignaciones/mias').then(r => r.data);
|
|
|
|
export interface SinAsignarResponse {
|
|
obligaciones: Omit<AsignacionObligacion, 'id' | 'auxiliarUserId' | 'auxiliarNombre' | 'asignadoPor' | 'asignadoAt'>[];
|
|
tareas: Omit<AsignacionTarea, 'id' | 'auxiliarUserId' | 'auxiliarNombre' | 'asignadoPor' | 'asignadoAt'>[];
|
|
}
|
|
|
|
export const getSinAsignar = () =>
|
|
apiClient.get<SinAsignarResponse>('/carteras/asignaciones/sin-asignar').then(r => r.data);
|
|
|
|
export const asignarObligacion = (contribuyenteId: string, obligacionId: string, auxiliarUserId: string) =>
|
|
apiClient.post(`/contribuyentes/${contribuyenteId}/obligaciones/${obligacionId}/asignar`, { auxiliarUserId }).then(r => r.data);
|
|
|
|
export const desasignarObligacion = (contribuyenteId: string, obligacionId: string) =>
|
|
apiClient.delete(`/contribuyentes/${contribuyenteId}/obligaciones/${obligacionId}/asignar`).then(r => r.data);
|
|
|
|
export const asignarTarea = (tareaId: string, auxiliarUserId: string) =>
|
|
apiClient.post(`/tareas/${tareaId}/asignar`, { auxiliarUserId }).then(r => r.data);
|
|
|
|
export const desasignarTarea = (tareaId: string) =>
|
|
apiClient.delete(`/tareas/${tareaId}/asignar`).then(r => r.data);
|