Merge branch 'feature/table-invoice' into feature/API-COBE

This commit is contained in:
2026-04-13 13:51:01 -06:00
131 changed files with 6443 additions and 4454 deletions

View File

@@ -40,11 +40,14 @@ import type { ApiResponse } from '$lib/api';
export async function getMultiCurrencyTypes(
companyId: number,
page?: number,
pageSize?: number
pageSize?: number,
filters?: { currency_type_code?: string; country_key?: string }
): Promise<ApiResponse<MultiCurrencyTypeListResponse>> {
const params = new URLSearchParams({ company_id: companyId.toString() });
if (page) params.append('page', page.toString());
if (pageSize) params.append('page_size', pageSize.toString());
if (filters?.currency_type_code) params.append('currency_type_code', filters.currency_type_code);
if (filters?.country_key) params.append('country_key', filters.country_key);
return api.get<MultiCurrencyTypeListResponse>(`/v1/a76/multi-currency-types/?${params.toString()}`);
}

View File

@@ -273,6 +273,7 @@ export interface UpdatePedimentoData {
export interface PedimentoFilters {
status?: string;
client_id?: number;
pedimento?: string;
year?: string;
sort_by?: string;
sort_order?: 'asc' | 'desc' | string;

View File

@@ -35,13 +35,18 @@ export interface UpdateCodePedimentoRegimenData {
*/
export const codePedimentoRegimensApi = {
/**
* Lista todos los code pedimento regimens con paginación
* Lista todos los code pedimento regimens con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<CodePedimentoRegimenListResponse>(
// CORRECTO: Slash antes del signo '?'
`/v1/public/reference_data/code-pedimento-regimens/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/code-pedimento-regimens/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<CodePedimentoRegimenListResponse>(url);
},
/**
* Obtiene un por ID

View File

@@ -31,15 +31,18 @@ export interface UpdateContainerData {
*/
export const containersApi = {
/**
* Lista todos los containers con paginación
* Lista todos los containers con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<ContainerListResponse>(
// CORRECTO: Slash antes del ?
`/v1/public/reference_data/containers/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/containers/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<ContainerListResponse>(url);
},
/**
* Obtiene un container por ID

View File

@@ -34,15 +34,18 @@ export interface UpdateCurrencyTypeData {
*/
export const currencyTypesApi = {
/**
* Lista todos los tipos de moneda con paginación
* Lista todos los tipos de moneda con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<CurrencyTypeListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/currency-types/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/currency-types/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<CurrencyTypeListResponse>(url);
},
/**
* Obtiene un tipo de moneda por código

View File

@@ -31,14 +31,18 @@ export interface UpdateCustomsSectionData {
*/
export const customsSectionsApi = {
/**
* Lista todas las secciones aduaneras con paginación
* Lista todas las secciones aduaneras con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<CustomsSectionListResponse>(
`/v1/public/reference_data/customs-sections/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/customs-sections/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<CustomsSectionListResponse>(url);
},
/**
* Obtiene una sección aduanera por código

View File

@@ -34,15 +34,18 @@ export interface UpdateCustomsWarehouseData {
*/
export const customsWarehousesApi = {
/**
* Lista todos los recintos fiscalizados con paginación
* Lista todos los recintos fiscalizados con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<CustomsWarehouseListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/customs-warehouses/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/customs-warehouses/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<CustomsWarehouseListResponse>(url);
},
/**
* Obtiene un recinto fiscalizado por clave compuesta (key + customs)

View File

@@ -34,15 +34,18 @@ export interface UpdateIncotermData {
*/
export const incotermsApi = {
/**
* Lista todos los incoterms con paginación
* Lista todos los incoterms con paginación y filtros
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param code - Filtrar por clave (opcional)
* @param description - Filtrar por descripción (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<IncotermListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/incoterms/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, code?: string, description?: string) => {
let url = `/v1/public/reference_data/incoterms/?page=${page}&page_size=${pageSize}`;
if (code) url += `&code=${encodeURIComponent(code)}`;
if (description) url += `&description=${encodeURIComponent(description)}`;
return api.get<IncotermListResponse>(url);
},
/**
* Obtiene un incoterm por código

View File

@@ -38,12 +38,13 @@ export interface UpdateInvoiceTypeData {
*/
export const invoiceTypesApi = {
/**
* Lista todos los tipos de factura con paginación
* Lista todos los tipos de factura con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param operation - Filtrar por tipo de operación (imp, exp)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50, operation?: string) => {
list: (page = 1, pageSize = 50, operation?: string, search?: string) => {
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString()
@@ -51,8 +52,10 @@ export const invoiceTypesApi = {
if (operation) {
params.append('operation', operation);
}
if (search) {
params.append('search', search);
}
return api.get<InvoiceTypeListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/invoice-types/?${params.toString()}`
);
},

View File

@@ -34,12 +34,13 @@
*/
export const materialTypesApi = {
/**
* Lista todos los tipos de material con paginación
* Lista todos los tipos de material con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param type - Filtrar por tipo (ACTIVO FIJO, MATERIALES, PRODUCTOS)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50, type?: string) => {
list: (page = 1, pageSize = 50, type?: string, search?: string) => {
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString()
@@ -47,8 +48,10 @@ export const materialTypesApi = {
if (type) {
params.append('type', type);
}
if (search) {
params.append('search', search);
}
return api.get<MaterialTypeListResponse>(
// CORRECTO: Ya tiene el '/' antes del '?'
`/v1/public/reference_data/material-types/?${params.toString()}`
);
},

View File

@@ -31,15 +31,18 @@ export interface UpdatePaymentMethodData {
*/
export const paymentMethodsApi = {
/**
* Lista todos los métodos de pago con paginación
* Lista todos los métodos de pago con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<PaymentMethodListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/payment-methods/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/payment-methods/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<PaymentMethodListResponse>(url);
},
/**
* Obtiene un método de pago por key

View File

@@ -31,15 +31,18 @@ export interface UpdatePedimentoCodeData {
*/
export const pedimentoCodesApi = {
/**
* Lista todas las claves de pedimento con paginación
* Lista todas las claves de pedimento con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<PedimentoCodeListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/pedimento-codes/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/pedimento-codes/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<PedimentoCodeListResponse>(url);
},
/**
* Obtiene una clave de pedimento por code

View File

@@ -31,15 +31,18 @@ export interface UpdatePedimentoRegimenData {
*/
export const pedimentoRegimensApi = {
/**
* Lista todos los regímenes de pedimento con paginación
* Lista todos los regímenes de pedimento con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<PedimentoRegimenListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/pedimento-regimens/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/pedimento-regimens/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<PedimentoRegimenListResponse>(url);
},
/**
* Obtiene un régimen de pedimento por code

View File

@@ -37,15 +37,18 @@ export interface UpdateStateData {
*/
export const statesApi = {
/**
* Lista todos los estados con paginación
* Lista todos los estados con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<StateListResponse>(
// CORREGIDO: Añadido '/' antes de '?'
`/v1/public/reference_data/states/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/states/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<StateListResponse>(url);
},
/**
* Obtiene un estado por m3_key

View File

@@ -31,14 +31,18 @@ export interface UpdateTransportModeData {
*/
export const transportModesApi = {
/**
* Lista todos los modos de transporte con paginación
* Lista todos los modos de transporte con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<TransportModeListResponse>(
`/v1/public/reference_data/transport-modes/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/transport-modes/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<TransportModeListResponse>(url);
},
/**
* Obtiene un modo de transporte por key

View File

@@ -31,12 +31,18 @@ export interface UpdateTransportTypeData {
*/
export const transportTypesApi = {
/**
* Lista todos los tipos de transporte con paginación
* Lista todos los tipos de transporte con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<TransportTypeListResponse>(
`/v1/public/reference_data/transport-types/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/transport-types/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<TransportTypeListResponse>(url);
},
/**
* Obtiene un tipo de transporte por transport_code

View File

@@ -31,15 +31,18 @@ export interface UpdateValuationMethodData {
*/
export const valuationMethodsApi = {
/**
* Lista todos los métodos de valoración con paginación
* Lista todos los métodos de valoración con paginación y búsqueda
* @param page - Número de página (por defecto 1)
* @param pageSize - Tamaño de página (por defecto 50)
* @param search - Término de búsqueda (opcional)
*/
list: (page = 1, pageSize = 50) =>
api.get<ValuationMethodListResponse>(
// CORREGIDO: Añadido '/' antes del '?'
`/v1/public/reference_data/valuation-methods/?page=${page}&page_size=${pageSize}`
),
list: (page = 1, pageSize = 50, search?: string) => {
let url = `/v1/public/reference_data/valuation-methods/?page=${page}&page_size=${pageSize}`;
if (search) {
url += `&search=${encodeURIComponent(search)}`;
}
return api.get<ValuationMethodListResponse>(url);
},
/**
* Obtiene un método de valoración por key