Files
HoruxDespachosNuevo/apps/web/lib/api/impuestos.ts

77 lines
4.3 KiB
TypeScript

import { apiClient } from './client';
import type { IvaMensual, IsrMensual, ResumenIva, ResumenIsr, ResumenIsrDesglosado } from '@horux/shared';
export async function getIsrMensual(año?: number, conciliacion?: boolean, contribuyenteId?: string | null, regimenClave?: string | null, considerarActivos?: boolean, considerarNCs?: boolean): Promise<IsrMensual[]> {
const params = new URLSearchParams();
if (año) params.set('año', año.toString());
if (conciliacion) params.set('conciliacion', 'true');
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
if (regimenClave) params.set('regimenClave', regimenClave);
if (considerarActivos !== undefined) params.set('considerarActivos', String(considerarActivos));
if (considerarNCs !== undefined) params.set('considerarNCs', String(considerarNCs));
const response = await apiClient.get<IsrMensual[]>(`/impuestos/isr/mensual?${params}`);
return response.data;
}
export async function getIvaMensual(año?: number, conciliacion?: boolean, contribuyenteId?: string | null, considerarActivos?: boolean, considerarNCs?: boolean): Promise<IvaMensual[]> {
const params = new URLSearchParams();
if (año) params.set('año', año.toString());
if (conciliacion) params.set('conciliacion', 'true');
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
if (considerarActivos !== undefined) params.set('considerarActivos', String(considerarActivos));
if (considerarNCs !== undefined) params.set('considerarNCs', String(considerarNCs));
const response = await apiClient.get<IvaMensual[]>(`/impuestos/iva/mensual?${params}`);
return response.data;
}
export async function getResumenIva(fechaInicio: string, fechaFin: string, conciliacion?: boolean, contribuyenteId?: string | null, considerarActivos?: boolean, considerarNCs?: boolean): Promise<ResumenIva> {
const params = new URLSearchParams();
params.set('fechaInicio', fechaInicio);
params.set('fechaFin', fechaFin);
if (conciliacion) params.set('conciliacion', 'true');
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
if (considerarActivos !== undefined) params.set('considerarActivos', String(considerarActivos));
if (considerarNCs !== undefined) params.set('considerarNCs', String(considerarNCs));
const response = await apiClient.get<ResumenIva>(`/impuestos/iva/resumen?${params}`);
return response.data;
}
export async function getCoeficiente(anio: number): Promise<{ anio: number; coeficiente: number | null }> {
const response = await apiClient.get<{ anio: number; coeficiente: number | null }>(`/impuestos/isr/coeficiente?anio=${anio}`);
return response.data;
}
export async function setCoeficiente(anio: number, coeficiente: number): Promise<{ anio: number; coeficiente: number }> {
const response = await apiClient.put<{ anio: number; coeficiente: number }>('/impuestos/isr/coeficiente', { anio, coeficiente });
return response.data;
}
export async function getResumenIsr(fechaInicio: string, fechaFin: string, conciliacion?: boolean, contribuyenteId?: string | null, considerarActivos?: boolean, considerarNCs?: boolean): Promise<ResumenIsr> {
const params = new URLSearchParams();
params.set('fechaInicio', fechaInicio);
params.set('fechaFin', fechaFin);
if (conciliacion) params.set('conciliacion', 'true');
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
if (considerarActivos !== undefined) params.set('considerarActivos', String(considerarActivos));
if (considerarNCs !== undefined) params.set('considerarNCs', String(considerarNCs));
const response = await apiClient.get<ResumenIsr>(`/impuestos/isr/resumen?${params}`);
return response.data;
}
export async function getResumenIsrDesglosado(
fechaFin: string,
conciliacion?: boolean,
contribuyenteId?: string | null,
considerarActivos?: boolean,
considerarNCs?: boolean,
): Promise<ResumenIsrDesglosado> {
const params = new URLSearchParams();
params.set('fechaFin', fechaFin);
if (conciliacion) params.set('conciliacion', 'true');
if (contribuyenteId) params.set('contribuyenteId', contribuyenteId);
if (considerarActivos !== undefined) params.set('considerarActivos', String(considerarActivos));
if (considerarNCs !== undefined) params.set('considerarNCs', String(considerarNCs));
const response = await apiClient.get<ResumenIsrDesglosado>(`/impuestos/isr/resumen-desglosado?${params}`);
return response.data;
}