diff --git a/backend/api/v1/common/tenant_crud_routes.py b/backend/api/v1/common/tenant_crud_routes.py index 3ff9b0a0..26dfa830 100644 --- a/backend/api/v1/common/tenant_crud_routes.py +++ b/backend/api/v1/common/tenant_crud_routes.py @@ -388,7 +388,7 @@ class TenantCRUDRoutes( update_schema = self.update_schema @self.router.put( - f"/{{{self.id_name}}}", + f"/{{{self.id_name}}}/", response_model=self.response_schema, summary=f"Update {self.resource_name}", description=f"Update an existing {self.resource_name} by {self.id_name}", diff --git a/backend/api/v1/modules/a76/pedmientos/dtos/pedimento_dates.py b/backend/api/v1/modules/a76/pedmientos/dtos/pedimento_dates.py index c9c4cb62..a5bf4118 100644 --- a/backend/api/v1/modules/a76/pedmientos/dtos/pedimento_dates.py +++ b/backend/api/v1/modules/a76/pedmientos/dtos/pedimento_dates.py @@ -24,7 +24,7 @@ class PedimentoDatesBase(BaseModel): class PedimentoDatesCreate(BaseModel): """Schema for creating a new Pedimento Dates - pedimento_id and tenant_id are set by backend""" - entry_date: Optional[datetime] = Field(None, description="Entry date") + entry_date: datetime = Field(..., description="Entry date") pedimento_date: Optional[datetime] = Field(None, description="Pedimento date") payment_date: datetime = Field(..., description="Payment date") rectification_payment_date: Optional[datetime] = Field(None, description="Rectification payment date") diff --git a/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py b/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py index 22735ad6..e1a839ca 100644 --- a/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py +++ b/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_additional.py @@ -1,13 +1,12 @@ -from typing import TYPE_CHECKING +from typing import TYPE_CHECKING, Optional from api.v1.common.base_models import TenantScopedMixin, TimestampMixin from core.database import Base from sqlalchemy import ( + Boolean, ForeignKeyConstraint, Integer, PrimaryKeyConstraint, - SmallInteger, - String, UniqueConstraint, ) from sqlalchemy.orm import Mapped, mapped_column, relationship @@ -38,12 +37,12 @@ class PedimentoConfigAdditional(Base, TenantScopedMixin, TimestampMixin): id: Mapped[int] = mapped_column(Integer) pedimento_id: Mapped[int] = mapped_column(Integer, nullable=False) - add_po_identifier: Mapped[int] = mapped_column(SmallInteger) - do_not_exempt_norms_complement_x: Mapped[int] = mapped_column(SmallInteger) - manual_pedimento_year: Mapped[str] = mapped_column(String(2)) - enable_import_invoice_recipient: Mapped[int] = mapped_column(SmallInteger) - send_502_validation_file_for_consolidated: Mapped[int] = mapped_column(SmallInteger) - add_remove_norms: Mapped[int] = mapped_column(SmallInteger) + add_po_identifier: Mapped[bool] = mapped_column(Boolean) + do_not_exempt_norms_complement_x: Mapped[bool] = mapped_column(Boolean) + manual_pedimento_year: Mapped[Optional[int]] = mapped_column(Integer) + enable_import_invoice_recipient: Mapped[bool] = mapped_column(Boolean) + send_502_validation_file_for_consolidated: Mapped[bool] = mapped_column(Boolean) + add_remove_norms: Mapped[bool] = mapped_column(Boolean) pedimento: Mapped["Pedimentos"] = relationship( "Pedimentos", back_populates="pedimento_config_additional" diff --git a/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_surcharges.py b/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_surcharges.py index 2d2cdd78..6943404a 100644 --- a/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_surcharges.py +++ b/backend/api/v1/modules/a76/pedmientos/models/pedimento_config_surcharges.py @@ -3,6 +3,7 @@ from typing import TYPE_CHECKING from api.v1.common.base_models import TenantScopedMixin, TimestampMixin from core.database import Base from sqlalchemy import ( + Boolean, ForeignKeyConstraint, Integer, PrimaryKeyConstraint, @@ -37,12 +38,12 @@ class PedimentoConfigSurcharges(Base, TenantScopedMixin, TimestampMixin): id: Mapped[int] = mapped_column(Integer) pedimento_id: Mapped[int] = mapped_column(Integer, nullable=False) - surcharge_igi: Mapped[int] = mapped_column(SmallInteger) - surcharge_dta: Mapped[int] = mapped_column(SmallInteger) - surcharge_vat: Mapped[int] = mapped_column(SmallInteger) - surcharge_isan: Mapped[int] = mapped_column(SmallInteger) - surcharge_ieps: Mapped[int] = mapped_column(SmallInteger) - surcharge_cc: Mapped[int] = mapped_column(SmallInteger) + surcharge_igi: Mapped[bool] = mapped_column(Boolean) + surcharge_dta: Mapped[bool] = mapped_column(Boolean) + surcharge_vat: Mapped[bool] = mapped_column(Boolean) + surcharge_isan: Mapped[bool] = mapped_column(Boolean) + surcharge_ieps: Mapped[bool] = mapped_column(Boolean) + surcharge_cc: Mapped[bool] = mapped_column(Boolean) pedimento: Mapped["Pedimentos"] = relationship( "Pedimentos", back_populates="pedimento_config_surcharges" diff --git a/frontend/src/lib/api/dashboard/a76/clients-providers.ts b/frontend/src/lib/api/dashboard/a76/clients-providers.ts index 26d31d69..33830d62 100644 --- a/frontend/src/lib/api/dashboard/a76/clients-providers.ts +++ b/frontend/src/lib/api/dashboard/a76/clients-providers.ts @@ -110,7 +110,7 @@ export const clientsProvidersApi = { } return api.get( - `/v1/a76/clients-providers?${params.toString()}` + `/v1/a76/clients-providers/?${params.toString()}` ); }, @@ -138,7 +138,7 @@ export const clientsProvidersApi = { * @param data - Datos del cliente/proveedor a crear */ create: (companyId: number, data: CreateClientProviderData) => - api.post(`/v1/a76/clients-providers?company_id=${companyId}`, data), + api.post(`/v1/a76/clients-providers/?company_id=${companyId}`, data), /** * Actualiza un cliente/proveedor existente @@ -156,7 +156,7 @@ export const clientsProvidersApi = { */ toggleStatus: (id: number, companyId: number) => api.put( - `/v1/a76/clients-providers/${id}/toggle-status?company_id=${companyId}`, + `/v1/a76/clients-providers/${id}/toggle-status/?company_id=${companyId}`, {} ), diff --git a/frontend/src/lib/api/dashboard/a76/customs-brokers.ts b/frontend/src/lib/api/dashboard/a76/customs-brokers.ts index 149b97b5..9f18da9e 100644 --- a/frontend/src/lib/api/dashboard/a76/customs-brokers.ts +++ b/frontend/src/lib/api/dashboard/a76/customs-brokers.ts @@ -89,7 +89,7 @@ export const customsBrokersApi = { * Lista todos los agentes aduanales */ list: (companyId: string) => { - return api.get(`/v1/a76/customs-brokers?company_id=${companyId}`); + return api.get(`/v1/a76/customs-brokers/?company_id=${companyId}`); }, /** @@ -104,7 +104,7 @@ export const customsBrokersApi = { */ create: (data: CreateCustomsBrokerData) => { const companyId = data.company_id; - return api.post(`/v1/a76/customs-brokers?company_id=${companyId}`, data); + return api.post(`/v1/a76/customs-brokers/?company_id=${companyId}`, data); }, /** diff --git a/frontend/src/lib/api/dashboard/a76/items.ts b/frontend/src/lib/api/dashboard/a76/items.ts index 2dc3e26e..e474411c 100644 --- a/frontend/src/lib/api/dashboard/a76/items.ts +++ b/frontend/src/lib/api/dashboard/a76/items.ts @@ -76,7 +76,7 @@ export const itemsApi = { const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.get(`/v1/a76/items/invoice/${invoiceId}/items?${params.toString()}`); + return api.get(`/v1/a76/items/invoice/${invoiceId}/items/?${params.toString()}`); }, /** @@ -86,7 +86,7 @@ export const itemsApi = { const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.get(`/v1/a76/items/${itemId}?${params.toString()}`); + return api.get(`/v1/a76/items/${itemId}/?${params.toString()}`); }, /** @@ -106,7 +106,7 @@ export const itemsApi = { const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.put(`/v1/a76/items/${itemId}?${params.toString()}`, data); + return api.put(`/v1/a76/items/${itemId}/?${params.toString()}`, data); }, /** @@ -116,6 +116,6 @@ export const itemsApi = { const params = new URLSearchParams({ company_id: companyId.toString() }); - return api.delete(`/v1/a76/items/${itemId}?${params.toString()}`); + return api.delete(`/v1/a76/items/${itemId}/?${params.toString()}`); } }; diff --git a/frontend/src/lib/api/dashboard/a76/pedimentos.ts b/frontend/src/lib/api/dashboard/a76/pedimentos.ts index e80c24d5..0d021705 100644 --- a/frontend/src/lib/api/dashboard/a76/pedimentos.ts +++ b/frontend/src/lib/api/dashboard/a76/pedimentos.ts @@ -276,7 +276,7 @@ export const pedimentosApi = { * @param companyId - ID de la compañía (por defecto 1) */ list: (page = 1, pageSize = 50, filters?: PedimentoFilters, companyId = 1) => { - let url = `/v1/a76/pedimentos?company_id=${companyId}&page=${page}&page_size=${pageSize}`; + let url = `/v1/a76/pedimentos/?company_id=${companyId}&page=${page}&page_size=${pageSize}`; if (filters?.status) { url += `&status=${encodeURIComponent(filters.status)}`; @@ -296,7 +296,7 @@ export const pedimentosApi = { * @param id - ID del pedimento * @param companyId - ID de la compañía (por defecto 1) */ - get: (id: number, companyId = 1) => api.get(`/v1/a76/pedimentos/${id}?company_id=${companyId}`), + get: (id: number, companyId = 1) => api.get(`/v1/a76/pedimentos/${id}/?company_id=${companyId}`), /** * Crea un nuevo pedimento @@ -304,7 +304,7 @@ export const pedimentosApi = { * @param companyId - ID de la compañía (por defecto 1) */ create: (data: CreatePedimentoData, companyId = 1) => - api.post(`/v1/a76/pedimentos?company_id=${companyId}`, data), + api.post(`/v1/a76/pedimentos/?company_id=${companyId}`, data), /** * Actualiza un pedimento existente @@ -313,12 +313,12 @@ export const pedimentosApi = { * @param companyId - ID de la compañía (por defecto 1) */ update: (id: number, data: UpdatePedimentoData, companyId = 1) => - api.put(`/v1/a76/pedimentos/${id}?company_id=${companyId}`, data), + api.put(`/v1/a76/pedimentos/${id}/?company_id=${companyId}`, data), /** * Elimina un pedimento * @param id - ID del pedimento a eliminar * @param companyId - ID de la compañía (por defecto 1) */ - delete: (id: number, companyId = 1) => api.delete(`/v1/a76/pedimentos/${id}?company_id=${companyId}`) + delete: (id: number, companyId = 1) => api.delete(`/v1/a76/pedimentos/${id}/?company_id=${companyId}`) }; diff --git a/frontend/src/lib/components/dashboard/pedimentos/edit/general-tab-form.svelte b/frontend/src/lib/components/dashboard/pedimentos/edit/general-tab-form.svelte index c5d7d51d..c0abfbd6 100644 --- a/frontend/src/lib/components/dashboard/pedimentos/edit/general-tab-form.svelte +++ b/frontend/src/lib/components/dashboard/pedimentos/edit/general-tab-form.svelte @@ -1,4 +1,5 @@