From 71454dda616a38571873f81f2eb3bd51ea8cb484 Mon Sep 17 00:00:00 2001 From: "edgar.mendez" Date: Tue, 10 Feb 2026 02:02:58 -0600 Subject: [PATCH] feat(purchases): add purchase details, form, and listing components - Implemented PurchaseDetails.vue for displaying detailed purchase information. - Created PurchaseForm.vue for submitting new purchase requests with supplier and item management. - Developed Purchases.vue for listing all purchase orders with actions for approval, rejection, and conversion. - Added purchaseServices.ts for API interactions related to purchases. - Defined types for purchase forms and purchases in respective TypeScript files. - Integrated PrimeVue components for UI consistency and functionality. --- components.d.ts | 1 + index.html | 2 +- src/components/layout/Sidebar.vue | 9 + .../components/suppliers/Suppliers.vue | 2 +- src/modules/catalog/stores/supplierStore.ts | 40 +++ .../products/services/productService.ts | 14 + src/modules/products/types/product.d.ts | 7 + .../purchases/components/ProductsModal.vue | 158 +++++++++ .../purchases/components/PurchaseDetails.vue | 317 ++++++++++++++++++ .../purchases/components/PurchaseForm.vue | 295 ++++++++++++++++ .../purchases/components/Purchases.vue | 195 +++++++++++ .../purchases/services/purchaseServices.ts | 52 +++ src/modules/purchases/types/purchaseForm.d.ts | 10 + src/modules/purchases/types/purchaseForm.ts | 10 + src/modules/purchases/types/purchases.d.ts | 102 ++++++ src/router/index.ts | 29 +- 16 files changed, 1240 insertions(+), 3 deletions(-) create mode 100644 src/modules/catalog/stores/supplierStore.ts create mode 100644 src/modules/purchases/components/ProductsModal.vue create mode 100644 src/modules/purchases/components/PurchaseDetails.vue create mode 100644 src/modules/purchases/components/PurchaseForm.vue create mode 100644 src/modules/purchases/components/Purchases.vue create mode 100644 src/modules/purchases/services/purchaseServices.ts create mode 100644 src/modules/purchases/types/purchaseForm.d.ts create mode 100644 src/modules/purchases/types/purchaseForm.ts create mode 100644 src/modules/purchases/types/purchases.d.ts diff --git a/components.d.ts b/components.d.ts index 0c0f0b4..bd79570 100644 --- a/components.d.ts +++ b/components.d.ts @@ -35,6 +35,7 @@ declare module 'vue' { KpiCard: typeof import('./src/components/shared/KpiCard.vue')['default'] Menu: typeof import('primevue/menu')['default'] Message: typeof import('primevue/message')['default'] + Paginator: typeof import('primevue/paginator')['default'] ProgressSpinner: typeof import('primevue/progressspinner')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] diff --git a/index.html b/index.html index 2934c79..8368882 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + diff --git a/src/components/layout/Sidebar.vue b/src/components/layout/Sidebar.vue index bb8d4ec..2731b1c 100644 --- a/src/components/layout/Sidebar.vue +++ b/src/components/layout/Sidebar.vue @@ -27,6 +27,15 @@ const menuItems = ref([ { label: 'Proveedores', icon: 'pi pi-briefcase', to: '/catalog/suppliers' }, ] }, + { + label: 'Compras', + icon: 'pi pi-shopping-bag', + items: [ + { label: 'Solicitudes de Compra', icon: 'pi pi-shopping-cart', to: '/purchases/requests' }, + { label: 'Órdenes de Compra', icon: 'pi pi-file', to: '/purchases/orders' }, + { label: 'Recepciones de Compra', icon: 'pi pi-inbox', to: '/purchases/receipts' } + ] + }, { label: 'Almacén', icon: 'pi pi-box', diff --git a/src/modules/catalog/components/suppliers/Suppliers.vue b/src/modules/catalog/components/suppliers/Suppliers.vue index 5cfa58d..806bf72 100644 --- a/src/modules/catalog/components/suppliers/Suppliers.vue +++ b/src/modules/catalog/components/suppliers/Suppliers.vue @@ -212,7 +212,7 @@ const typeLabel = (type: string) => {