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 { 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(`/impuestos/isr/mensual?${params}`); return response.data; } export async function getIvaMensual(año?: number, conciliacion?: boolean, contribuyenteId?: string | null, considerarActivos?: boolean, considerarNCs?: boolean): Promise { 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(`/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 { 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(`/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 { 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(`/impuestos/isr/resumen?${params}`); return response.data; } export async function getResumenIsrDesglosado( fechaFin: string, conciliacion?: boolean, contribuyenteId?: string | null, considerarActivos?: boolean, considerarNCs?: boolean, ): Promise { 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(`/impuestos/isr/resumen-desglosado?${params}`); return response.data; }