- Agrega helper withJitOff en impuestos.service.ts - Ejecuta getResumenIva, getIvaMensual y readResumenIvaFromCache con SET LOCAL jit = off - Evita compilación JIT de ~17s en queries con costo estimado alto feat(contribuyentes): auto-asignar a cartera del supervisor - Al crear contribuyente con supervisorUserId, se agrega automáticamente a todas las carteras top-level del supervisor feat(permisos): restricciones de UI por rol en contribuyentes - Oculta botón Add-ons para roles distintos de owner/cfo - Oculta botón Eliminar contribuyente para no-owner - Oculta botón Agregar RFC para auxiliar/visor/cliente/contador feat(cfdi): ver CFDI desde conceptos y forma de pago en Excel - Agrega botón Ver CFDI en cada fila de la tabla de Conceptos - Agrega columna Forma de Pago en export Excel de CFDIs - Agrega columna Forma de Pago en export individual de CFDI chore(migraciones): índices GIN para relaciones de activos - 048: índices btree parciales para activos - 049: índices GIN para cfdis_relacionados y uuid_relacionado
99 lines
2.9 KiB
TypeScript
99 lines
2.9 KiB
TypeScript
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
|
|
import {
|
|
getAsignacionesPorSupervisor,
|
|
getAsignacionesPorAuxiliar,
|
|
getSinAsignar,
|
|
asignarObligacion,
|
|
desasignarObligacion,
|
|
asignarTarea,
|
|
desasignarTarea,
|
|
getAuxiliaresElegibles,
|
|
} from '../api/asignaciones';
|
|
|
|
export function useAsignacionesSupervisor() {
|
|
return useQuery({
|
|
queryKey: ['asignaciones-supervisor'],
|
|
queryFn: getAsignacionesPorSupervisor,
|
|
});
|
|
}
|
|
|
|
export function useAsignacionesAuxiliar() {
|
|
return useQuery({
|
|
queryKey: ['asignaciones-auxiliar'],
|
|
queryFn: getAsignacionesPorAuxiliar,
|
|
});
|
|
}
|
|
|
|
export function useSinAsignar() {
|
|
return useQuery({
|
|
queryKey: ['asignaciones-sin-asignar'],
|
|
queryFn: getSinAsignar,
|
|
});
|
|
}
|
|
|
|
export function useAsignarObligacion() {
|
|
const qc = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({ contribuyenteId, obligacionId, auxiliarUserId }: {
|
|
contribuyenteId: string;
|
|
obligacionId: string;
|
|
auxiliarUserId: string;
|
|
}) => asignarObligacion(contribuyenteId, obligacionId, auxiliarUserId),
|
|
onSuccess: () => {
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-supervisor'] });
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-sin-asignar'] });
|
|
qc.invalidateQueries({ queryKey: ['obligaciones'] });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDesasignarObligacion() {
|
|
const qc = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({ contribuyenteId, obligacionId }: {
|
|
contribuyenteId: string;
|
|
obligacionId: string;
|
|
}) => desasignarObligacion(contribuyenteId, obligacionId),
|
|
onSuccess: () => {
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-supervisor'] });
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-sin-asignar'] });
|
|
qc.invalidateQueries({ queryKey: ['obligaciones'] });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useAsignarTarea() {
|
|
const qc = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({ tareaId, auxiliarUserId }: {
|
|
tareaId: string;
|
|
auxiliarUserId: string;
|
|
}) => asignarTarea(tareaId, auxiliarUserId),
|
|
onSuccess: () => {
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-supervisor'] });
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-sin-asignar'] });
|
|
qc.invalidateQueries({ queryKey: ['tareas'] });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useDesasignarTarea() {
|
|
const qc = useQueryClient();
|
|
return useMutation({
|
|
mutationFn: ({ tareaId }: { tareaId: string }) => desasignarTarea(tareaId),
|
|
onSuccess: () => {
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-supervisor'] });
|
|
qc.invalidateQueries({ queryKey: ['asignaciones-sin-asignar'] });
|
|
qc.invalidateQueries({ queryKey: ['tareas'] });
|
|
},
|
|
});
|
|
}
|
|
|
|
export function useAuxiliaresElegibles(contribuyenteId: string | undefined) {
|
|
return useQuery({
|
|
queryKey: ['auxiliares-elegibles', contribuyenteId],
|
|
queryFn: () => getAuxiliaresElegibles(contribuyenteId!),
|
|
enabled: !!contribuyenteId,
|
|
});
|
|
}
|