feat(web): add impuestos page with IVA/ISR control

This commit is contained in:
Consultoria AS
2026-01-22 02:34:34 +00:00
parent 554474d62f
commit 1dcc98aada
3 changed files with 308 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
import { apiClient } from './client';
import type { IvaMensual, IsrMensual, ResumenIva, ResumenIsr } from '@horux/shared';
export async function getIvaMensual(año?: number): Promise<IvaMensual[]> {
const params = año ? `?año=${año}` : '';
const response = await apiClient.get<IvaMensual[]>(`/impuestos/iva/mensual${params}`);
return response.data;
}
export async function getResumenIva(año?: number, mes?: number): Promise<ResumenIva> {
const params = new URLSearchParams();
if (año) params.set('año', año.toString());
if (mes) params.set('mes', mes.toString());
const response = await apiClient.get<ResumenIva>(`/impuestos/iva/resumen?${params}`);
return response.data;
}
export async function getIsrMensual(año?: number): Promise<IsrMensual[]> {
const params = año ? `?año=${año}` : '';
const response = await apiClient.get<IsrMensual[]>(`/impuestos/isr/mensual${params}`);
return response.data;
}
export async function getResumenIsr(año?: number, mes?: number): Promise<ResumenIsr> {
const params = new URLSearchParams();
if (año) params.set('año', año.toString());
if (mes) params.set('mes', mes.toString());
const response = await apiClient.get<ResumenIsr>(`/impuestos/isr/resumen?${params}`);
return response.data;
}

View File

@@ -0,0 +1,30 @@
import { useQuery } from '@tanstack/react-query';
import * as impuestosApi from '@/lib/api/impuestos';
export function useIvaMensual(año?: number) {
return useQuery({
queryKey: ['iva-mensual', año],
queryFn: () => impuestosApi.getIvaMensual(año),
});
}
export function useResumenIva(año?: number, mes?: number) {
return useQuery({
queryKey: ['iva-resumen', año, mes],
queryFn: () => impuestosApi.getResumenIva(año, mes),
});
}
export function useIsrMensual(año?: number) {
return useQuery({
queryKey: ['isr-mensual', año],
queryFn: () => impuestosApi.getIsrMensual(año),
});
}
export function useResumenIsr(año?: number, mes?: number) {
return useQuery({
queryKey: ['isr-resumen', año, mes],
queryFn: () => impuestosApi.getResumenIsr(año, mes),
});
}