From 4b4599362fd3edc50144c13024676bc12e03ab16 Mon Sep 17 00:00:00 2001 From: Kevin_Ramirez Date: Wed, 21 Jan 2026 15:43:19 -0600 Subject: [PATCH 1/2] Se cambio la tabla de unidades de medida generales por unidades de medida --- .../general_catalogs/units_of_measure/dto.py | 25 +--- .../units_of_measure/service.py | 2 +- .../a76/general_catalogs/units-of-measure.ts | 4 +- .../general/data-table-actions.svelte | 2 + .../units_of_measure/main/data-table.svelte | 107 ++++++++++++++++++ .../src/lib/components/sidebar/modules.ts | 34 +++--- 6 files changed, 135 insertions(+), 39 deletions(-) create mode 100644 frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/main/data-table.svelte diff --git a/backend/api/v1/modules/a76/general_catalogs/units_of_measure/dto.py b/backend/api/v1/modules/a76/general_catalogs/units_of_measure/dto.py index 56c9d37f..ef5997fe 100644 --- a/backend/api/v1/modules/a76/general_catalogs/units_of_measure/dto.py +++ b/backend/api/v1/modules/a76/general_catalogs/units_of_measure/dto.py @@ -36,14 +36,8 @@ class UnitOfMeasureBase(BaseModel): oma_code: Optional[str] = Field(None, max_length=20) -class UnitOfMeasureGeneralBase(BaseModel): - code: str = Field(..., max_length=20, description="Unit Code") - description: Optional[str] = Field(None, max_length=100) - conversion_factor: Optional[Decimal] = None - mexico_unit: Optional[str] = Field(None, max_length=20) - american_unit_code: Optional[str] = Field(None, max_length=20) - customs_code: Optional[int] = Field(None) - ace_code: Optional[str] = Field(None, max_length=20) +class UnitOfMeasureGeneralBase(UnitOfMeasureBase): + pass # --- Create DTOs --- @@ -105,14 +99,8 @@ class UnitOfMeasureUpdate(BaseModel): oma_code: Optional[str] = Field(None, max_length=20) -class UnitOfMeasureGeneralUpdate(BaseModel): - code: Optional[str] = Field(None, max_length=20) - description: Optional[str] = Field(None, max_length=100) - conversion_factor: Optional[Decimal] = None - mexico_unit: Optional[str] = Field(None, max_length=20) - american_unit_code: Optional[str] = Field(None, max_length=20) - customs_code: Optional[int] = Field(None) - ace_code: Optional[str] = Field(None, max_length=20) +class UnitOfMeasureGeneralUpdate(UnitOfMeasureUpdate): + pass # --- Response DTOs --- @@ -142,6 +130,5 @@ class UnitOfMeasureResponse(UnitOfMeasureBase): model_config = ConfigDict(from_attributes=True) -class UnitOfMeasureGeneralResponse(UnitOfMeasureGeneralBase): - id: int - model_config = ConfigDict(from_attributes=True) +class UnitOfMeasureGeneralResponse(UnitOfMeasureResponse): + pass diff --git a/backend/api/v1/modules/a76/general_catalogs/units_of_measure/service.py b/backend/api/v1/modules/a76/general_catalogs/units_of_measure/service.py index f032f76e..c514c2ee 100644 --- a/backend/api/v1/modules/a76/general_catalogs/units_of_measure/service.py +++ b/backend/api/v1/modules/a76/general_catalogs/units_of_measure/service.py @@ -154,7 +154,7 @@ class UnitOfMeasureService(BaseService): class UnitOfMeasureGeneralService(BaseService): - model = UnitOfMeasureGeneral + model = UnitOfMeasure def get_all_uom_general(session: Session, skip: int = 0, limit: int = 100) -> Sequence[UnitOfMeasureGeneral]: diff --git a/frontend/src/lib/api/dashboard/a76/general_catalogs/units-of-measure.ts b/frontend/src/lib/api/dashboard/a76/general_catalogs/units-of-measure.ts index f680bae3..b32bedaf 100644 --- a/frontend/src/lib/api/dashboard/a76/general_catalogs/units-of-measure.ts +++ b/frontend/src/lib/api/dashboard/a76/general_catalogs/units-of-measure.ts @@ -183,7 +183,7 @@ export interface UnitOfMeasureGeneralUpdate { } export interface UnitOfMeasureGeneralListResponse { - items: UnitOfMeasureGeneral[]; + items: UnitOfMeasureGeneral[]; total: number; page: number; page_size: number; @@ -214,7 +214,7 @@ export async function updateUnitOfMeasureGeneral(id: number, data: UnitOfMeasure } export async function deleteUnitOfMeasureGeneral(id: number, companyId: number): Promise> { - return await api.delete(`/v1/a76/units-of-measure/general/${id}/?company_id=${companyId}`); + return await api.delete(`/v1/a76/units-of-measure/general/${id}?company_id=${companyId}`); } // --- Customs --- diff --git a/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/general/data-table-actions.svelte b/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/general/data-table-actions.svelte index a84164f4..96ce74e0 100644 --- a/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/general/data-table-actions.svelte +++ b/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/general/data-table-actions.svelte @@ -2,6 +2,7 @@ import { Button } from '$lib/components/ui/button'; import * as DropdownMenu from '$lib/components/ui/dropdown-menu'; import { MoreHorizontal, Pencil, Trash2 } from 'lucide-svelte'; + import { toast } from 'svelte-sonner'; import CreateEditDialog from './create-edit-dialog.svelte'; import type { UnitOfMeasureGeneral } from '$lib/api/dashboard/a76/general_catalogs/units-of-measure'; import { deleteUnitOfMeasureGeneral } from '$lib/api/dashboard/a76/general_catalogs/units-of-measure'; @@ -25,6 +26,7 @@ const response = await deleteUnitOfMeasureGeneral(unit.id, activeCompanyId); if (response.error) { + toast.error(response.error); } else if (response.status === 204 || response.status === 200) { onSuccess?.(); } diff --git a/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/main/data-table.svelte b/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/main/data-table.svelte new file mode 100644 index 00000000..77c412d8 --- /dev/null +++ b/frontend/src/lib/components/dashboard/general_catalogs/units_of_measure/main/data-table.svelte @@ -0,0 +1,107 @@ + + +
+ + + {#each table.getHeaderGroups() as headerGroup (headerGroup.id)} + + {#each headerGroup.headers as header (header.id)} + + {#if !header.isPlaceholder} + + {/if} + + {/each} + + {/each} + + + {#each table.getRowModel().rows as row (row.id)} + + {#each row.getVisibleCells() as cell (cell.id)} + + + + {/each} + + {:else} + + + No hay resultados. + + + {/each} + + +
+ + +
+
+ Total: {totalItems} registros +
+
+ + +
+
diff --git a/frontend/src/lib/components/sidebar/modules.ts b/frontend/src/lib/components/sidebar/modules.ts index e6dbde48..a0dd99a8 100644 --- a/frontend/src/lib/components/sidebar/modules.ts +++ b/frontend/src/lib/components/sidebar/modules.ts @@ -1,18 +1,18 @@ -import { - Archive, - ArrowDownToLine, - ArrowUpFromLine, - BadgeCheck, - ChartPie, - Database, - FileText, - Frame, - GalleryVerticalEnd, - LayoutDashboard, - Package, - Settings2, - Shield, - Users, +import { + Archive, + ArrowDownToLine, + ArrowUpFromLine, + BadgeCheck, + ChartPie, + Database, + FileText, + Frame, + GalleryVerticalEnd, + LayoutDashboard, + Package, + Settings2, + Shield, + Users, } from 'lucide-svelte'; import * as m from "$lib/paraglide/messages.js"; import { Title } from '../ui/alert'; @@ -296,7 +296,7 @@ export function getSidebarData(): SidebarData { { title: m["sidebar.goods.classes"](), url: "/dashboard/goods/fixed-asset-classes", - }, + }, { title: m["sidebar.goods.parts"](), url: "/dashboard/goods/parts", @@ -369,7 +369,7 @@ export function getSidebarData(): SidebarData { { title: m["sidebar.export_invoices.repair"](), url: "/dashboard/invoices?operation_type=exp&invoice_type=REPAR", - }, + }, ], }, { From 67f285fbbccbe424a419d6c6ccdc4173b92bbc33 Mon Sep 17 00:00:00 2001 From: Kevin_Ramirez Date: Wed, 21 Jan 2026 16:01:32 -0600 Subject: [PATCH 2/2] Se cambio el nombre en el side bar y en la pagina --- frontend/messages/en.json | 12 ++-- frontend/messages/es.json | 72 +++++++++---------- .../units_of_measure/general/+page.svelte | 2 +- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/frontend/messages/en.json b/frontend/messages/en.json index 541dac72..4225b510 100644 --- a/frontend/messages/en.json +++ b/frontend/messages/en.json @@ -41,7 +41,7 @@ "valuation_methods": "Valuation Methods", "countries": "Countries", "ports": "Ports", - "unit_measures": "Units of Measure - General", + "unit_measures": "Units of Measure", "um_customs_mex": "Units of Measure - Mexican Customs", "um_customs_ame": "Units of Measure - American Customs", "um_ace": "Units of Measure - ACE", @@ -65,7 +65,7 @@ }, "goods": { "title": "Goods", - "classes": "Classes", + "classes": "Classes", "parts": "Parts" }, "pedimentos": { @@ -77,16 +77,16 @@ "customs_sections": "Customs Sections", "anexo_22_app_31": "Anexo 22 App 3" }, - "import_invoices":{ + "import_invoices": { "title": "Import Invoices", "temporary": "Temporary", "definitive": "Definitive", "mexican_purchases": "Mexican Purchases", - "regime_change": "Regime Change" + "regime_change": "Regime Change" }, "export_invoices": { "title": "Export Invoices", - "exportation": "Exportation", + "exportation": "Exportation", "repair": "Repair" }, "clients_and_providers": "Clients and Providers", @@ -97,4 +97,4 @@ "logout": "Logout" } } -} +} \ No newline at end of file diff --git a/frontend/messages/es.json b/frontend/messages/es.json index 9e2a85c5..2acc042b 100644 --- a/frontend/messages/es.json +++ b/frontend/messages/es.json @@ -1,33 +1,33 @@ { - "$schema": "https://inlang.com/schema/inlang-message-format", - "hello_world": "Hello, {name} from es!", - "sidebar": { - "reference_data": { - "title": "Catálogos Fijos", - "codes_pedimento_regimen": "Códigos de Pedimento y Régimen", - "containers": "Contenedores", - "countries": "Países", - "currency_types": "Tipos de moneda", - "customs_sections": "Secciones de aduanas", - "customs_warehouses": "Recintos", - "incoterms": "Incoterms", - "invoice_types": "Tipos de factura", - "material_types": "Tipos de material", - "payment_methods": "Métodos de pago", - "pedimento_codes": "Códigos de pedimento", - "pedimento_regimes": "Regímenes de pedimentos", - "sectors": "Sectores", - "states": "Estados", - "transportation_modes": "Métodos de transporte", - "transportation_types": "Tipos de transporte", - "valuation_methods": "Métodos de valoración", - "configuracion": "Configuración", - "general": "General", - "licencia": "Licencia", - "usuarios": "Usuarios", - "ayuda": "Ayuda" - }, - "general_catalogs": { + "$schema": "https://inlang.com/schema/inlang-message-format", + "hello_world": "Hello, {name} from es!", + "sidebar": { + "reference_data": { + "title": "Catálogos Fijos", + "codes_pedimento_regimen": "Códigos de Pedimento y Régimen", + "containers": "Contenedores", + "countries": "Países", + "currency_types": "Tipos de moneda", + "customs_sections": "Secciones de aduanas", + "customs_warehouses": "Recintos", + "incoterms": "Incoterms", + "invoice_types": "Tipos de factura", + "material_types": "Tipos de material", + "payment_methods": "Métodos de pago", + "pedimento_codes": "Códigos de pedimento", + "pedimento_regimes": "Regímenes de pedimentos", + "sectors": "Sectores", + "states": "Estados", + "transportation_modes": "Métodos de transporte", + "transportation_types": "Tipos de transporte", + "valuation_methods": "Métodos de valoración", + "configuracion": "Configuración", + "general": "General", + "licencia": "Licencia", + "usuarios": "Usuarios", + "ayuda": "Ayuda" + }, + "general_catalogs": { "title": "Catalogos Generales", "company_information": "Información de la empresa", "packages": "Bultos", @@ -41,7 +41,7 @@ "valuation_methods": "Metódos de valoración", "countries": "Países", "ports": "Puertos", - "unit_measures": "UM general", + "unit_measures": "Unidades de medida", "um_customs_mex": "UM Aduanas MX", "um_customs_ame": "UM Aduanas USA", "um_ace": "UM ACE", @@ -65,10 +65,10 @@ }, "goods": { "title": "Mercancías", - "classes": "Clases", + "classes": "Clases", "parts": "Partes" }, - "pedimentos": { + "pedimentos": { "title": "Pedimentos", "pedimento_management": "Gestión de Pedimentos", "pedimento_codes": "Claves de Pedimento", @@ -77,16 +77,16 @@ "customs_sections": "Secciones Aduaneras", "anexo_22_app_31": "Anexo 22 App 3" }, - "import_invoices":{ + "import_invoices": { "title": "Facturas de importación", "temporary": "Temporal", "definitive": "Definitiva", "mexican_purchases": "Compras mexicanas", - "regime_change": "Cambio de régimen" + "regime_change": "Cambio de régimen" }, "export_invoices": { "title": "Facturas de exportación", - "exportation": "Exportación", + "exportation": "Exportación", "repair": "Reparación" }, "clients_and_providers": "Clientes y Proveedores", @@ -95,5 +95,5 @@ "profile": "Perfil", "settings": "Configuración" } - } + } } \ No newline at end of file diff --git a/frontend/src/routes/dashboard/general_catalogs/units_of_measure/general/+page.svelte b/frontend/src/routes/dashboard/general_catalogs/units_of_measure/general/+page.svelte index f8b53600..bae27c42 100644 --- a/frontend/src/routes/dashboard/general_catalogs/units_of_measure/general/+page.svelte +++ b/frontend/src/routes/dashboard/general_catalogs/units_of_measure/general/+page.svelte @@ -44,7 +44,7 @@
-

Unidades de Medida Generales

+

Unidades de Medida

Catálogo general de unidades de medida