feat: Implement reference data management for states, transport modes, transport types, and valuation methods
- Added server-side loading logic for states, transport modes, transport types, and valuation methods with pagination support. - Created Svelte components for displaying and managing states, transport modes, transport types, and valuation methods. - Implemented infinite scroll functionality for loading more data as the user scrolls. - Added error handling and user feedback for API interactions. - Included dialogs for creating and editing entries in each reference data category.
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* API Client para Currency Types
|
||||
* Gestiona las operaciones CRUD para los tipos de moneda
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface CurrencyType {
|
||||
code: string;
|
||||
currency_name: string;
|
||||
country_description: string;
|
||||
}
|
||||
|
||||
export interface CurrencyTypeListResponse {
|
||||
items: CurrencyType[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateCurrencyTypeData {
|
||||
code: string;
|
||||
currency_name: string;
|
||||
country_description: string;
|
||||
}
|
||||
|
||||
export interface UpdateCurrencyTypeData {
|
||||
code?: string;
|
||||
currency_name?: string;
|
||||
country_description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Currency Types
|
||||
*/
|
||||
export const currencyTypesApi = {
|
||||
/**
|
||||
* Lista todos los tipos de moneda con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<CurrencyTypeListResponse>(
|
||||
`/v1/currency-types?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un tipo de moneda por código
|
||||
* @param code - Código del tipo de moneda
|
||||
*/
|
||||
get: (code: string) => api.get<CurrencyType>(`/v1/currency-types/${code}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo tipo de moneda
|
||||
* @param data - Datos del tipo de moneda a crear
|
||||
*/
|
||||
create: (data: CreateCurrencyTypeData) =>
|
||||
api.post<CurrencyType>('/v1/currency-types', data),
|
||||
|
||||
/**
|
||||
* Actualiza un tipo de moneda existente
|
||||
* @param code - Código del tipo de moneda a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (code: string, data: UpdateCurrencyTypeData) =>
|
||||
api.put<CurrencyType>(`/v1/currency-types/${code}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un tipo de moneda
|
||||
* @param code - Código del tipo de moneda a eliminar
|
||||
*/
|
||||
delete: (code: string) => api.delete(`/v1/currency-types/${code}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Customs Sections
|
||||
* Gestiona las operaciones CRUD para las secciones aduaneras
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface CustomsSection {
|
||||
customs_code: string;
|
||||
section_name: string;
|
||||
}
|
||||
|
||||
export interface CustomsSectionListResponse {
|
||||
items: CustomsSection[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateCustomsSectionData {
|
||||
customs_code: string;
|
||||
section_name: string;
|
||||
}
|
||||
|
||||
export interface UpdateCustomsSectionData {
|
||||
customs_code?: string;
|
||||
section_name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Customs Sections
|
||||
*/
|
||||
export const customsSectionsApi = {
|
||||
/**
|
||||
* Lista todas las secciones aduaneras con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<CustomsSectionListResponse>(
|
||||
`/v1/customs-sections?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene una sección aduanera por código
|
||||
* @param customs_code - Código de la sección aduanera
|
||||
*/
|
||||
get: (customs_code: string) => api.get<CustomsSection>(`/v1/customs-sections/${customs_code}`),
|
||||
|
||||
/**
|
||||
* Crea una nueva sección aduanera
|
||||
* @param data - Datos de la sección aduanera a crear
|
||||
*/
|
||||
create: (data: CreateCustomsSectionData) =>
|
||||
api.post<CustomsSection>('/v1/customs-sections', data),
|
||||
|
||||
/**
|
||||
* Actualiza una sección aduanera existente
|
||||
* @param customs_code - Código de la sección aduanera a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (customs_code: string, data: UpdateCustomsSectionData) =>
|
||||
api.put<CustomsSection>(`/v1/customs-sections/${customs_code}`, data),
|
||||
|
||||
/**
|
||||
* Elimina una sección aduanera
|
||||
* @param customs_code - Código de la sección aduanera a eliminar
|
||||
*/
|
||||
delete: (customs_code: string) => api.delete(`/v1/customs-sections/${customs_code}`)
|
||||
};
|
||||
@@ -0,0 +1,77 @@
|
||||
/**
|
||||
* API Client para Customs Warehouses
|
||||
* Gestiona las operaciones CRUD para los recintos fiscalizados
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface CustomsWarehouse {
|
||||
key: string;
|
||||
customs: string;
|
||||
fiscalized_warehouse: string;
|
||||
}
|
||||
|
||||
export interface CustomsWarehouseListResponse {
|
||||
items: CustomsWarehouse[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateCustomsWarehouseData {
|
||||
key: string;
|
||||
customs: string;
|
||||
fiscalized_warehouse: string;
|
||||
}
|
||||
|
||||
export interface UpdateCustomsWarehouseData {
|
||||
key?: string;
|
||||
customs?: string;
|
||||
fiscalized_warehouse?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Customs Warehouses
|
||||
*/
|
||||
export const customsWarehousesApi = {
|
||||
/**
|
||||
* Lista todos los recintos fiscalizados con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<CustomsWarehouseListResponse>(
|
||||
`/v1/customs-warehouses?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un recinto fiscalizado por clave compuesta (key + customs)
|
||||
* @param key - Clave del recinto
|
||||
* @param customs - Aduana asociada
|
||||
*/
|
||||
get: (key: string, customs: string) =>
|
||||
api.get<CustomsWarehouse>(`/v1/customs-warehouses/${key}/${customs}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo recinto fiscalizado
|
||||
* @param data - Datos del recinto fiscalizado a crear
|
||||
*/
|
||||
create: (data: CreateCustomsWarehouseData) =>
|
||||
api.post<CustomsWarehouse>('/v1/customs-warehouses', data),
|
||||
|
||||
/**
|
||||
* Actualiza un recinto fiscalizado existente
|
||||
* @param key - Clave del recinto a actualizar
|
||||
* @param customs - Aduana asociada
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, customs: string, data: UpdateCustomsWarehouseData) =>
|
||||
api.put<CustomsWarehouse>(`/v1/customs-warehouses/${key}/${customs}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un recinto fiscalizado
|
||||
* @param key - Clave del recinto a eliminar
|
||||
* @param customs - Aduana asociada
|
||||
*/
|
||||
delete: (key: string, customs: string) =>
|
||||
api.delete(`/v1/customs-warehouses/${key}/${customs}`)
|
||||
};
|
||||
72
frontend/src/lib/api/dashboard/refrence_data/incoterms.ts
Normal file
72
frontend/src/lib/api/dashboard/refrence_data/incoterms.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* API Client para Incoterms
|
||||
* Gestiona las operaciones CRUD para los términos internacionales de comercio
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface Incoterm {
|
||||
code: string;
|
||||
description_es: string;
|
||||
description_en: string;
|
||||
}
|
||||
|
||||
export interface IncotermListResponse {
|
||||
items: Incoterm[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateIncotermData {
|
||||
code: string;
|
||||
description_es: string;
|
||||
description_en: string;
|
||||
}
|
||||
|
||||
export interface UpdateIncotermData {
|
||||
code?: string;
|
||||
description_es?: string;
|
||||
description_en?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Incoterms
|
||||
*/
|
||||
export const incotermsApi = {
|
||||
/**
|
||||
* Lista todos los incoterms con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<IncotermListResponse>(
|
||||
`/v1/incoterms?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un incoterm por código
|
||||
* @param code - Código del incoterm
|
||||
*/
|
||||
get: (code: string) => api.get<Incoterm>(`/v1/incoterms/${code}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo incoterm
|
||||
* @param data - Datos del incoterm a crear
|
||||
*/
|
||||
create: (data: CreateIncotermData) =>
|
||||
api.post<Incoterm>('/v1/incoterms', data),
|
||||
|
||||
/**
|
||||
* Actualiza un incoterm existente
|
||||
* @param code - Código del incoterm a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (code: string, data: UpdateIncotermData) =>
|
||||
api.put<Incoterm>(`/v1/incoterms/${code}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un incoterm
|
||||
* @param code - Código del incoterm a eliminar
|
||||
*/
|
||||
delete: (code: string) => api.delete(`/v1/incoterms/${code}`)
|
||||
};
|
||||
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* API Client para Invoice Types
|
||||
* Gestiona las operaciones CRUD para los tipos de factura
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface InvoiceType {
|
||||
key: string;
|
||||
description: string;
|
||||
note?: string;
|
||||
type?: string;
|
||||
}
|
||||
|
||||
export interface InvoiceTypeListResponse {
|
||||
items: InvoiceType[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateInvoiceTypeData {
|
||||
key: string;
|
||||
description: string;
|
||||
note?: string;
|
||||
type?: string;
|
||||
}
|
||||
|
||||
export interface UpdateInvoiceTypeData {
|
||||
key?: string;
|
||||
description?: string;
|
||||
note?: string;
|
||||
type?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Invoice Types
|
||||
*/
|
||||
export const invoiceTypesApi = {
|
||||
/**
|
||||
* Lista todos los tipos de factura con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<InvoiceTypeListResponse>(
|
||||
`/v1/invoice-types?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un tipo de factura por key
|
||||
* @param key - Clave del tipo de factura
|
||||
*/
|
||||
get: (key: string) => api.get<InvoiceType>(`/v1/invoice-types/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo tipo de factura
|
||||
* @param data - Datos del tipo de factura a crear
|
||||
*/
|
||||
create: (data: CreateInvoiceTypeData) =>
|
||||
api.post<InvoiceType>('/v1/invoice-types', data),
|
||||
|
||||
/**
|
||||
* Actualiza un tipo de factura existente
|
||||
* @param key - Clave del tipo de factura a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, data: UpdateInvoiceTypeData) =>
|
||||
api.put<InvoiceType>(`/v1/invoice-types/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un tipo de factura
|
||||
* @param key - Clave del tipo de factura a eliminar
|
||||
*/
|
||||
delete: (key: string) => api.delete(`/v1/invoice-types/${key}`)
|
||||
};
|
||||
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* API Client para Material Types
|
||||
* Gestiona las operaciones CRUD para los tipos de material
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface MaterialType {
|
||||
key: string;
|
||||
type: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface MaterialTypeListResponse {
|
||||
items: MaterialType[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateMaterialTypeData {
|
||||
key: string;
|
||||
type: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdateMaterialTypeData {
|
||||
key?: string;
|
||||
type?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Material Types
|
||||
*/
|
||||
export const materialTypesApi = {
|
||||
/**
|
||||
* Lista todos los tipos de material con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<MaterialTypeListResponse>(
|
||||
`/v1/material-types?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un tipo de material por key
|
||||
* @param key - Clave del tipo de material
|
||||
*/
|
||||
get: (key: string) => api.get<MaterialType>(`/v1/material-types/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo tipo de material
|
||||
* @param data - Datos del tipo de material a crear
|
||||
*/
|
||||
create: (data: CreateMaterialTypeData) =>
|
||||
api.post<MaterialType>('/v1/material-types', data),
|
||||
|
||||
/**
|
||||
* Actualiza un tipo de material existente
|
||||
* @param key - Clave del tipo de material a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, data: UpdateMaterialTypeData) =>
|
||||
api.put<MaterialType>(`/v1/material-types/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un tipo de material
|
||||
* @param key - Clave del tipo de material a eliminar
|
||||
*/
|
||||
delete: (key: string) => api.delete(`/v1/material-types/${key}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Payment Methods
|
||||
* Gestiona las operaciones CRUD para los métodos de pago
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface PaymentMethod {
|
||||
key: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface PaymentMethodListResponse {
|
||||
items: PaymentMethod[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreatePaymentMethodData {
|
||||
key: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdatePaymentMethodData {
|
||||
key?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Payment Methods
|
||||
*/
|
||||
export const paymentMethodsApi = {
|
||||
/**
|
||||
* Lista todos los métodos de pago con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<PaymentMethodListResponse>(
|
||||
`/v1/payment-methods?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un método de pago por key
|
||||
* @param key - Clave del método de pago
|
||||
*/
|
||||
get: (key: string) => api.get<PaymentMethod>(`/v1/payment-methods/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo método de pago
|
||||
* @param data - Datos del método de pago a crear
|
||||
*/
|
||||
create: (data: CreatePaymentMethodData) =>
|
||||
api.post<PaymentMethod>('/v1/payment-methods', data),
|
||||
|
||||
/**
|
||||
* Actualiza un método de pago existente
|
||||
* @param key - Clave del método de pago a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, data: UpdatePaymentMethodData) =>
|
||||
api.put<PaymentMethod>(`/v1/payment-methods/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un método de pago
|
||||
* @param key - Clave del método de pago a eliminar
|
||||
*/
|
||||
delete: (key: string) => api.delete(`/v1/payment-methods/${key}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Pedimento Codes
|
||||
* Gestiona las operaciones CRUD para las claves de pedimento
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface PedimentoCode {
|
||||
code: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface PedimentoCodeListResponse {
|
||||
items: PedimentoCode[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreatePedimentoCodeData {
|
||||
code: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdatePedimentoCodeData {
|
||||
code?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Pedimento Codes
|
||||
*/
|
||||
export const pedimentoCodesApi = {
|
||||
/**
|
||||
* Lista todas las claves de pedimento con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<PedimentoCodeListResponse>(
|
||||
`/v1/pedimento-codes?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene una clave de pedimento por code
|
||||
* @param code - Código de la clave de pedimento
|
||||
*/
|
||||
get: (code: string) => api.get<PedimentoCode>(`/v1/pedimento-codes/${code}`),
|
||||
|
||||
/**
|
||||
* Crea una nueva clave de pedimento
|
||||
* @param data - Datos de la clave de pedimento a crear
|
||||
*/
|
||||
create: (data: CreatePedimentoCodeData) =>
|
||||
api.post<PedimentoCode>('/v1/pedimento-codes', data),
|
||||
|
||||
/**
|
||||
* Actualiza una clave de pedimento existente
|
||||
* @param code - Código de la clave de pedimento a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (code: string, data: UpdatePedimentoCodeData) =>
|
||||
api.put<PedimentoCode>(`/v1/pedimento-codes/${code}`, data),
|
||||
|
||||
/**
|
||||
* Elimina una clave de pedimento
|
||||
* @param code - Código de la clave de pedimento a eliminar
|
||||
*/
|
||||
delete: (code: string) => api.delete(`/v1/pedimento-codes/${code}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Pedimento Regimens
|
||||
* Gestiona las operaciones CRUD para los regímenes de pedimento
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface PedimentoRegimen {
|
||||
code: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface PedimentoRegimenListResponse {
|
||||
items: PedimentoRegimen[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreatePedimentoRegimenData {
|
||||
code: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdatePedimentoRegimenData {
|
||||
code?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Pedimento Regimens
|
||||
*/
|
||||
export const pedimentoRegimensApi = {
|
||||
/**
|
||||
* Lista todos los regímenes de pedimento con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<PedimentoRegimenListResponse>(
|
||||
`/v1/pedimento-regimens?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un régimen de pedimento por code
|
||||
* @param code - Código del régimen de pedimento
|
||||
*/
|
||||
get: (code: string) => api.get<PedimentoRegimen>(`/v1/pedimento-regimens/${code}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo régimen de pedimento
|
||||
* @param data - Datos del régimen de pedimento a crear
|
||||
*/
|
||||
create: (data: CreatePedimentoRegimenData) =>
|
||||
api.post<PedimentoRegimen>('/v1/pedimento-regimens', data),
|
||||
|
||||
/**
|
||||
* Actualiza un régimen de pedimento existente
|
||||
* @param code - Código del régimen de pedimento a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (code: string, data: UpdatePedimentoRegimenData) =>
|
||||
api.put<PedimentoRegimen>(`/v1/pedimento-regimens/${code}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un régimen de pedimento
|
||||
* @param code - Código del régimen de pedimento a eliminar
|
||||
*/
|
||||
delete: (code: string) => api.delete(`/v1/pedimento-regimens/${code}`)
|
||||
};
|
||||
72
frontend/src/lib/api/dashboard/refrence_data/sectors.ts
Normal file
72
frontend/src/lib/api/dashboard/refrence_data/sectors.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* API Client para Sectors
|
||||
* Gestiona las operaciones CRUD para los sectores
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface Sector {
|
||||
key: string;
|
||||
description: string;
|
||||
authorized: number;
|
||||
}
|
||||
|
||||
export interface SectorListResponse {
|
||||
items: Sector[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateSectorData {
|
||||
key: string;
|
||||
description: string;
|
||||
authorized: number;
|
||||
}
|
||||
|
||||
export interface UpdateSectorData {
|
||||
key?: string;
|
||||
description?: string;
|
||||
authorized?: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Sectors
|
||||
*/
|
||||
export const sectorsApi = {
|
||||
/**
|
||||
* Lista todos los sectores con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<SectorListResponse>(
|
||||
`/v1/sectors?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un sector por key
|
||||
* @param key - Clave del sector
|
||||
*/
|
||||
get: (key: string) => api.get<Sector>(`/v1/sectors/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo sector
|
||||
* @param data - Datos del sector a crear
|
||||
*/
|
||||
create: (data: CreateSectorData) =>
|
||||
api.post<Sector>('/v1/sectors', data),
|
||||
|
||||
/**
|
||||
* Actualiza un sector existente
|
||||
* @param key - Clave del sector a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, data: UpdateSectorData) =>
|
||||
api.put<Sector>(`/v1/sectors/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un sector
|
||||
* @param key - Clave del sector a eliminar
|
||||
*/
|
||||
delete: (key: string) => api.delete(`/v1/sectors/${key}`)
|
||||
};
|
||||
75
frontend/src/lib/api/dashboard/refrence_data/states.ts
Normal file
75
frontend/src/lib/api/dashboard/refrence_data/states.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* API Client para States
|
||||
* Gestiona las operaciones CRUD para los estados
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface State {
|
||||
m3_key: string;
|
||||
description: string;
|
||||
mex_key?: string | null;
|
||||
ame_key?: string | null;
|
||||
}
|
||||
|
||||
export interface StateListResponse {
|
||||
items: State[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateStateData {
|
||||
m3_key: string;
|
||||
description: string;
|
||||
mex_key?: string | null;
|
||||
ame_key?: string | null;
|
||||
}
|
||||
|
||||
export interface UpdateStateData {
|
||||
m3_key?: string;
|
||||
description?: string;
|
||||
mex_key?: string | null;
|
||||
ame_key?: string | null;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para States
|
||||
*/
|
||||
export const statesApi = {
|
||||
/**
|
||||
* Lista todos los estados con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<StateListResponse>(
|
||||
`/v1/states?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un estado por m3_key
|
||||
* @param m3Key - Clave M3 del estado
|
||||
*/
|
||||
get: (m3Key: string) => api.get<State>(`/v1/states/${m3Key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo estado
|
||||
* @param data - Datos del estado a crear
|
||||
*/
|
||||
create: (data: CreateStateData) =>
|
||||
api.post<State>('/v1/states', data),
|
||||
|
||||
/**
|
||||
* Actualiza un estado existente
|
||||
* @param m3Key - Clave M3 del estado a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (m3Key: string, data: UpdateStateData) =>
|
||||
api.put<State>(`/v1/states/${m3Key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un estado
|
||||
* @param m3Key - Clave M3 del estado a eliminar
|
||||
*/
|
||||
delete: (m3Key: string) => api.delete(`/v1/states/${m3Key}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Transport Modes
|
||||
* Gestiona las operaciones CRUD para los modos de transporte
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface TransportMode {
|
||||
key: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface TransportModeListResponse {
|
||||
items: TransportMode[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateTransportModeData {
|
||||
key: string;
|
||||
name: string;
|
||||
}
|
||||
|
||||
export interface UpdateTransportModeData {
|
||||
key?: string;
|
||||
name?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Transport Modes
|
||||
*/
|
||||
export const transportModesApi = {
|
||||
/**
|
||||
* Lista todos los modos de transporte con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<TransportModeListResponse>(
|
||||
`/v1/transport-modes?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un modo de transporte por key
|
||||
* @param key - Clave del modo de transporte
|
||||
*/
|
||||
get: (key: string) => api.get<TransportMode>(`/v1/transport-modes/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo modo de transporte
|
||||
* @param data - Datos del modo de transporte a crear
|
||||
*/
|
||||
create: (data: CreateTransportModeData) =>
|
||||
api.post<TransportMode>('/v1/transport-modes', data),
|
||||
|
||||
/**
|
||||
* Actualiza un modo de transporte existente
|
||||
* @param key - Clave del modo de transporte a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, data: UpdateTransportModeData) =>
|
||||
api.put<TransportMode>(`/v1/transport-modes/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un modo de transporte
|
||||
* @param key - Clave del modo de transporte a eliminar
|
||||
*/
|
||||
delete: (key: string) => api.delete(`/v1/transport-modes/${key}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Transport Types
|
||||
* Gestiona las operaciones CRUD para los tipos de transporte
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface TransportType {
|
||||
transport_code: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface TransportTypeListResponse {
|
||||
items: TransportType[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateTransportTypeData {
|
||||
transport_code: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdateTransportTypeData {
|
||||
transport_code?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Transport Types
|
||||
*/
|
||||
export const transportTypesApi = {
|
||||
/**
|
||||
* Lista todos los tipos de transporte con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<TransportTypeListResponse>(
|
||||
`/v1/transport-types?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un tipo de transporte por transport_code
|
||||
* @param transportCode - Código del tipo de transporte
|
||||
*/
|
||||
get: (transportCode: string) => api.get<TransportType>(`/v1/transport-types/${transportCode}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo tipo de transporte
|
||||
* @param data - Datos del tipo de transporte a crear
|
||||
*/
|
||||
create: (data: CreateTransportTypeData) =>
|
||||
api.post<TransportType>('/v1/transport-types', data),
|
||||
|
||||
/**
|
||||
* Actualiza un tipo de transporte existente
|
||||
* @param transportCode - Código del tipo de transporte a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (transportCode: string, data: UpdateTransportTypeData) =>
|
||||
api.put<TransportType>(`/v1/transport-types/${transportCode}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un tipo de transporte
|
||||
* @param transportCode - Código del tipo de transporte a eliminar
|
||||
*/
|
||||
delete: (transportCode: string) => api.delete(`/v1/transport-types/${transportCode}`)
|
||||
};
|
||||
@@ -0,0 +1,69 @@
|
||||
/**
|
||||
* API Client para Valuation Methods
|
||||
* Gestiona las operaciones CRUD para los métodos de valoración
|
||||
*/
|
||||
import { api } from '$lib/api';
|
||||
|
||||
export interface ValuationMethod {
|
||||
key: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface ValuationMethodListResponse {
|
||||
items: ValuationMethod[];
|
||||
total: number;
|
||||
page: number;
|
||||
page_size: number;
|
||||
}
|
||||
|
||||
export interface CreateValuationMethodData {
|
||||
key: string;
|
||||
description: string;
|
||||
}
|
||||
|
||||
export interface UpdateValuationMethodData {
|
||||
key?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* API para Valuation Methods
|
||||
*/
|
||||
export const valuationMethodsApi = {
|
||||
/**
|
||||
* Lista todos los métodos de valoración con paginación
|
||||
* @param page - Número de página (por defecto 1)
|
||||
* @param pageSize - Tamaño de página (por defecto 50)
|
||||
*/
|
||||
list: (page = 1, pageSize = 50) =>
|
||||
api.get<ValuationMethodListResponse>(
|
||||
`/v1/valuation-methods?page=${page}&page_size=${pageSize}`
|
||||
),
|
||||
|
||||
/**
|
||||
* Obtiene un método de valoración por key
|
||||
* @param key - Clave del método de valoración
|
||||
*/
|
||||
get: (key: string) => api.get<ValuationMethod>(`/v1/valuation-methods/${key}`),
|
||||
|
||||
/**
|
||||
* Crea un nuevo método de valoración
|
||||
* @param data - Datos del método de valoración a crear
|
||||
*/
|
||||
create: (data: CreateValuationMethodData) =>
|
||||
api.post<ValuationMethod>('/v1/valuation-methods', data),
|
||||
|
||||
/**
|
||||
* Actualiza un método de valoración existente
|
||||
* @param key - Clave del método de valoración a actualizar
|
||||
* @param data - Datos a actualizar
|
||||
*/
|
||||
update: (key: string, data: UpdateValuationMethodData) =>
|
||||
api.put<ValuationMethod>(`/v1/valuation-methods/${key}`, data),
|
||||
|
||||
/**
|
||||
* Elimina un método de valoración
|
||||
* @param key - Clave del método de valoración a eliminar
|
||||
*/
|
||||
delete: (key: string) => api.delete(`/v1/valuation-methods/${key}`)
|
||||
};
|
||||
Reference in New Issue
Block a user