Se termino de agregar los formularios modales a los catalogos que faltaba

This commit is contained in:
2025-12-22 11:13:35 -06:00
parent 153fca9ad7
commit 6a9f69e39e
18 changed files with 1570 additions and 642 deletions

View File

@@ -1,61 +1,157 @@
import { api } from '$lib/api';
import type { ApiResponse } from '$lib/api';
export interface DODA {
id: number;
code: string;
description?: string;
tenant_id: string;
company_id?: string;
created_at: string;
updated_at?: string;
export interface DodaContainerSeal {
id: number;
doda_sys_id: number;
seal_line: number;
seal_value?: string;
}
export interface DODACreate {
code: string;
description?: string;
export interface DodaContainerSealCreate {
seal_value?: string;
}
export interface DODAUpdate extends Partial<DODACreate> {}
export interface DODAListResponse {
items: DODA[];
total: number;
page: number;
page_size: number;
pages: number;
export interface DodaContainer {
id: number;
doda_sys_id: number;
container_line: number;
container_value?: string;
seals?: string;
seals_detail?: DodaContainerSeal[];
}
export async function getDODAs(
page: number = 1,
pageSize: number = 50,
filters: Record<string, any> = {}
): Promise<ApiResponse<DODAListResponse>> {
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
...filters
});
const response = await api.get(`/a76/doda?${params.toString()}`);
return response.data;
export interface DodaContainerCreate {
container_value?: string;
seals?: string;
seals_detail?: DodaContainerSealCreate[];
}
export async function getDODA(id: number): Promise<DODA> {
const response = await api.get(`/a76/doda/${id}`);
return response.data;
export interface DodaAmericanPedimento {
id: number;
doda_sys_id: number;
american_pedimento_line: number;
american_pedimento_type?: string;
american_pedimento_value?: string;
}
export async function createDODA(data: DODACreate): Promise<DODA> {
const response = await api.post('/a76/doda', data);
return response.data;
export interface DodaAmericanPedimentoCreate {
american_pedimento_type?: string;
american_pedimento_value?: string;
}
export async function updateDODA(id: number, data: DODAUpdate): Promise<DODA> {
const response = await api.patch(`/a76/doda/${id}`, data);
return response.data;
export interface DodaPedimento {
id: number;
doda_sys_id: number;
pedimento_line: number;
authorization_patent?: string;
document?: string;
shipment?: string;
cove?: string;
umc?: string;
effective_amount_usd?: number;
difference_amount_usd?: number;
dta_niu?: string;
article_7?: boolean;
pedimento_sys_id?: number;
invoice_line?: number;
part_ii_line?: number;
pedimento_type?: string;
zero_packaging_validation?: boolean;
}
export async function deleteDODA(id: number): Promise<void> {
await api.delete(`/a76/doda/${id}`);
export interface DodaPedimentoCreate {
authorization_patent?: string;
document?: string;
shipment?: string;
effective_amount_usd?: number;
}
export interface Doda {
sys_id: number;
integration_number?: string;
doda_date?: number;
doda_time?: number;
dispatch_customs?: string;
customs_sections?: string;
patent?: string;
pedimentos?: string;
caat?: string;
transport_identification?: string;
fast_id?: string;
operation_type?: string;
status?: string;
containers?: DodaContainer[];
american_pedimentos?: DodaAmericanPedimento[];
pedimentos_detail?: DodaPedimento[];
tenant_id?: string;
created_at?: string;
updated_at?: string;
}
export interface DodaCreate {
integration_number?: string;
doda_date?: number;
doda_time?: number;
dispatch_customs?: string;
customs_sections?: string;
patent?: string;
caat?: string;
transport_identification?: string;
fast_id?: string;
}
export interface DodaUpdate extends Partial<DodaCreate> {}
export interface DodaListResponse {
items: Doda[];
total: number;
page: number;
page_size: number;
pages: number;
}
export async function getDodas(
page: number = 1,
pageSize: number = 50,
filters: Record<string, any> = {}
): Promise<ApiResponse<DodaListResponse>> {
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
...filters
});
const response = await api.get(`/v1/a76/doda?${params.toString()}`);
return response.data;
}
export async function getDoda(id: number): Promise<Doda> {
const response = await api.get(`/v1/a76/doda/${id}`);
return response.data;
}
export async function createDoda(data: DodaCreate): Promise<Doda> {
const response = await api.post('/v1/a76/doda', data);
return response.data;
}
export async function updateDoda(id: number, data: DodaUpdate): Promise<Doda> {
const response = await api.patch(`/v1/a76/doda/${id}`, data);
return response.data;
}
export async function deleteDoda(id: number): Promise<void> {
await api.delete(`/v1/a76/doda/${id}`);
}

View File

@@ -2,60 +2,81 @@ import { api } from '$lib/api';
import type { ApiResponse } from '$lib/api';
export interface ElectronicNotice {
id: number;
code: string;
description?: string;
tenant_id: string;
company_id?: string;
created_at: string;
updated_at?: string;
id: number;
// Campos del Modelo Python
notice_number?: string;
year?: string;
patent?: string;
pedimento?: string;
file_sent?: string;
file_response?: string;
status?: string;
invoice?: string;
validation_acknowledgment?: string;
fea?: string;
certificate_number?: string;
// Mixins
tenant_id?: string;
created_at?: string;
updated_at?: string;
}
export interface ElectronicNoticeCreate {
code: string;
description?: string;
notice_number?: string;
year?: string;
patent?: string;
pedimento?: string;
file_sent?: string;
file_response?: string;
status?: string;
invoice?: string;
validation_acknowledgment?: string;
fea?: string;
certificate_number?: string;
}
export interface ElectronicNoticeUpdate extends Partial<ElectronicNoticeCreate> {}
export interface ElectronicNoticeListResponse {
items: ElectronicNotice[];
total: number;
page: number;
page_size: number;
pages: number;
items: ElectronicNotice[];
total: number;
page: number;
page_size: number;
pages: number;
}
export async function getElectronicNotices(
page: number = 1,
pageSize: number = 50,
filters: Record<string, any> = {}
page: number = 1,
pageSize: number = 50,
filters: Record<string, any> = {}
): Promise<ApiResponse<ElectronicNoticeListResponse>> {
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
...filters
});
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
...filters
});
const response = await api.get(`/a76/electronic_notices?${params.toString()}`);
return response.data;
// Agregamos '/' al final
const response = await api.get(`/a76/electronic_notices/?${params.toString()}`);
return response.data;
}
export async function getElectronicNotice(id: number): Promise<ElectronicNotice> {
const response = await api.get(`/a76/electronic_notices/${id}`);
return response.data;
const response = await api.get(`/a76/electronic_notices/${id}`);
return response.data;
}
export async function createElectronicNotice(data: ElectronicNoticeCreate): Promise<ElectronicNotice> {
const response = await api.post('/a76/electronic_notices', data);
return response.data;
const response = await api.post('/a76/electronic_notices', data);
return response.data;
}
export async function updateElectronicNotice(id: number, data: ElectronicNoticeUpdate): Promise<ElectronicNotice> {
const response = await api.patch(`/a76/electronic_notices/${id}`, data);
return response.data;
const response = await api.patch(`/a76/electronic_notices/${id}`, data);
return response.data;
}
export async function deleteElectronicNotice(id: number): Promise<void> {
await api.delete(`/a76/electronic_notices/${id}`);
}
await api.delete(`/a76/electronic_notices/${id}`);
}

View File

@@ -2,60 +2,66 @@ import { api } from '$lib/api';
import type { ApiResponse } from '$lib/api';
export interface Prevalidator {
id: number;
code: string;
description?: string;
tenant_id: string;
company_id?: string;
created_at: string;
updated_at?: string;
id: number;
code: string;
description?: string;
// Campos que faltaban según tu modelo Python:
customs_prevalidator?: string;
patent_prevalidator?: string;
tenant_id: string;
company_id?: string;
created_at: string;
updated_at?: string;
}
export interface PrevalidatorCreate {
code: string;
description?: string;
code: string;
description?: string;
customs_prevalidator?: string;
patent_prevalidator?: string;
}
export interface PrevalidatorUpdate extends Partial<PrevalidatorCreate> {}
export interface PrevalidatorListResponse {
items: Prevalidator[];
total: number;
page: number;
page_size: number;
pages: number;
items: Prevalidator[];
total: number;
page: number;
page_size: number;
pages: number;
}
export async function getPrevalidators(
page: number = 1,
pageSize: number = 50,
filters: Record<string, any> = {}
page: number = 1,
pageSize: number = 50,
filters: Record<string, any> = {}
): Promise<ApiResponse<PrevalidatorListResponse>> {
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
...filters
});
const params = new URLSearchParams({
page: page.toString(),
page_size: pageSize.toString(),
...filters
});
const response = await api.get(`/a76/prevalidators?${params.toString()}`);
return response.data;
const response = await api.get(`/a76/prevalidators/?${params.toString()}`);
return response.data;
}
export async function getPrevalidator(id: number): Promise<Prevalidator> {
const response = await api.get(`/a76/prevalidators/${id}`);
return response.data;
const response = await api.get(`/a76/prevalidators/${id}`);
return response.data;
}
export async function createPrevalidator(data: PrevalidatorCreate): Promise<Prevalidator> {
const response = await api.post('/a76/prevalidators', data);
return response.data;
const response = await api.post('/a76/prevalidators', data);
return response.data;
}
export async function updatePrevalidator(id: number, data: PrevalidatorUpdate): Promise<Prevalidator> {
const response = await api.patch(`/a76/prevalidators/${id}`, data);
return response.data;
const response = await api.patch(`/a76/prevalidators/${id}`, data);
return response.data;
}
export async function deletePrevalidator(id: number): Promise<void> {
await api.delete(`/a76/prevalidators/${id}`);
}
await api.delete(`/a76/prevalidators/${id}`);
}