feat: Implement consolidated catalog services and endpoints for pedimento and invoice creation/edition.

This commit is contained in:
Galindo97
2026-02-12 13:35:48 -06:00
parent 9d27066da1
commit ab5181f803
16 changed files with 1323 additions and 879 deletions

View File

@@ -101,5 +101,21 @@ export const classesApi = {
*/
createFA: (data: any, company_id: number): Promise<ApiResponse<any>> => {
return api.post(`/v1/a76/classes/fa?company_id=${company_id}`, data);
},
/**
* Get all classes with FA data in a single query (optimized, eliminates N+1)
*/
getWithFAData: (params: {
company_id: number;
page?: number;
page_size?: number;
}): Promise<ApiResponse<A76Class[]>> => {
const query = new URLSearchParams({
company_id: params.company_id.toString(),
page: (params.page || 1).toString(),
page_size: (params.page_size || 1000).toString()
});
return api.get(`/v1/a76/classes/with-fa-data?${query.toString()}`);
}
};

View File

@@ -392,6 +392,26 @@ export const invoicesApi = {
return api.delete(`/v1/a76/invoices/${invoiceId}?${params.toString()}`);
},
/**
* Obtiene datos para la creación de una factura (catálogos consolidados)
*/
getCreationData: (companyId: number) => {
const params = new URLSearchParams({
company_id: companyId.toString()
});
return api.get<any>(`/v1/a76/invoices/creation-data?${params.toString()}`);
},
/**
* Obtiene datos para la edición de una factura (catálogos consolidados + factura)
*/
getEditionData: (invoiceId: number, companyId: number) => {
const params = new URLSearchParams({
company_id: companyId.toString()
});
return api.get<any>(`/v1/a76/invoices/${invoiceId}/edition-data?${params.toString()}`);
},
// --- Nested Resources ---
/**