From 7a1eb9bec64815ff8187c0cc63dc148ebcfef8e1 Mon Sep 17 00:00:00 2001 From: jorgep Date: Tue, 11 Feb 2025 09:28:56 +0100 Subject: [PATCH 001/139] feat: refs #8277 add Entry Control page and update localization files --- src/i18n/locale/en.yml | 1 + src/i18n/locale/es.yml | 3 +- src/pages/Entry/EntryControl.vue | 146 +++++++++++++++++++++++++++++++ src/router/modules/entry.js | 26 +++--- 4 files changed, 164 insertions(+), 12 deletions(-) create mode 100644 src/pages/Entry/EntryControl.vue diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml index d615eef4c..fe4a0c45d 100644 --- a/src/i18n/locale/en.yml +++ b/src/i18n/locale/en.yml @@ -334,6 +334,7 @@ globals: parking: Parking vehicleList: Vehicles vehicle: Vehicle + entryControl: Entry control unsavedPopup: title: Unsaved changes will be lost subtitle: Are you sure exit without saving? diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml index a082ca88d..956f11e15 100644 --- a/src/i18n/locale/es.yml +++ b/src/i18n/locale/es.yml @@ -334,6 +334,7 @@ globals: parking: Parking vehicleList: Vehículos vehicle: Vehículo + entryControl: Control de entradas unsavedPopup: title: Los cambios que no haya guardado se perderán subtitle: ¿Seguro que quiere salir sin guardar? @@ -653,7 +654,7 @@ supplier: tableVisibleColumns: nif: NIF/CIF account: Cuenta - + summary: responsible: Responsable verified: Verificado diff --git a/src/pages/Entry/EntryControl.vue b/src/pages/Entry/EntryControl.vue new file mode 100644 index 000000000..6fff84539 --- /dev/null +++ b/src/pages/Entry/EntryControl.vue @@ -0,0 +1,146 @@ + + diff --git a/src/router/modules/entry.js b/src/router/modules/entry.js index f362c7653..5de296803 100644 --- a/src/router/modules/entry.js +++ b/src/router/modules/entry.js @@ -6,13 +6,7 @@ const entryCard = { component: () => import('src/pages/Entry/Card/EntryCard.vue'), redirect: { name: 'EntrySummary' }, meta: { - menu: [ - 'EntryBasicData', - 'EntryBuys', - 'EntryNotes', - 'EntryDms', - 'EntryLog', - ], + menu: ['EntryBasicData', 'EntryBuys', 'EntryNotes', 'EntryDms', 'EntryLog'], }, children: [ { @@ -91,7 +85,8 @@ export default { 'EntryLatestBuys', 'EntryStockBought', 'EntryWasteRecalc', - ] + 'EntryControl', + ], }, component: RouterView, redirect: { name: 'EntryMain' }, @@ -103,7 +98,7 @@ export default { redirect: { name: 'EntryIndexMain' }, children: [ { - path:'', + path: '', name: 'EntryIndexMain', redirect: { name: 'EntryList' }, component: () => import('src/pages/Entry/EntryList.vue'), @@ -127,7 +122,7 @@ export default { icon: 'add', }, component: () => import('src/pages/Entry/EntryCreate.vue'), - }, + }, { path: 'my', name: 'MyEntries', @@ -164,7 +159,16 @@ export default { }, component: () => import('src/pages/Entry/EntryWasteRecalc.vue'), }, + { + path: 'control', + name: 'EntryControl', + meta: { + title: 'entryControl', + icon: 'help', + }, + component: () => import('src/pages/Entry/EntryControl.vue'), + }, ], }, ], -}; \ No newline at end of file +}; From 8f0a4da245a4db78dba939ee19d40cda91898d38 Mon Sep 17 00:00:00 2001 From: jtubau Date: Tue, 11 Feb 2025 13:58:14 +0100 Subject: [PATCH 002/139] feat: refs #8422 add Vehicle DMS import functionality and routing --- .../Vehicle/Card/VehicleDmsImportForm.vue | 76 +++++++++++++++++++ src/pages/Route/Vehicle/VehicleDms.vue | 46 +++++++++++ src/router/modules/route.js | 14 +++- 3 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 src/pages/Route/Vehicle/Card/VehicleDmsImportForm.vue create mode 100644 src/pages/Route/Vehicle/VehicleDms.vue diff --git a/src/pages/Route/Vehicle/Card/VehicleDmsImportForm.vue b/src/pages/Route/Vehicle/Card/VehicleDmsImportForm.vue new file mode 100644 index 000000000..1d17a38dc --- /dev/null +++ b/src/pages/Route/Vehicle/Card/VehicleDmsImportForm.vue @@ -0,0 +1,76 @@ + + + + + +es: + Select document id: Introduzca id de gestion documental + Document: Documento + The document indentifier can't be empty: El número de documento no puede estar vacío + diff --git a/src/pages/Route/Vehicle/VehicleDms.vue b/src/pages/Route/Vehicle/VehicleDms.vue new file mode 100644 index 000000000..f10575247 --- /dev/null +++ b/src/pages/Route/Vehicle/VehicleDms.vue @@ -0,0 +1,46 @@ + + + + +es: + Import from existing: Importar desde existente + diff --git a/src/router/modules/route.js b/src/router/modules/route.js index 835324d20..e8e6c1f31 100644 --- a/src/router/modules/route.js +++ b/src/router/modules/route.js @@ -166,7 +166,10 @@ const vehicleCard = { component: () => import('src/pages/Route/Vehicle/Card/VehicleCard.vue'), redirect: { name: 'VehicleSummary' }, meta: { - menu: ['VehicleBasicData'], + menu: [ + 'VehicleBasicData', + 'VehicleDms', + ], }, children: [ { @@ -187,6 +190,15 @@ const vehicleCard = { }, component: () => import('src/pages/Route/Vehicle/Card/VehicleBasicData.vue'), }, + { + name: 'VehicleDms', + path: 'dms', + meta: { + title: 'dms', + icon: 'cloud_upload', + }, + component: () => import('src/pages/Route/Vehicle/VehicleDms.vue'), + }, ], }; From fa7705d2fc8fb8b1420e5d3d0718b2e7e9ab3db0 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 12 Feb 2025 09:53:43 +0100 Subject: [PATCH 003/139] feat: refs #8277 add control labels and update column definitions in EntryControl component --- src/pages/Entry/EntryControl.vue | 112 ++++++++++++++++--------------- src/pages/Entry/locale/en.yml | 16 +++++ src/pages/Entry/locale/es.yml | 16 +++++ 3 files changed, 91 insertions(+), 53 deletions(-) diff --git a/src/pages/Entry/EntryControl.vue b/src/pages/Entry/EntryControl.vue index 6fff84539..49ded3186 100644 --- a/src/pages/Entry/EntryControl.vue +++ b/src/pages/Entry/EntryControl.vue @@ -9,6 +9,53 @@ const { t } = useI18n(); const companies = ref([]); const countries = ref([]); const columns = computed(() => [ + { + name: 'companyFk', + label: t('globals.company'), + columnFilter: { + component: 'select', + name: 'companyFk', + optionLabel: 'code', + options: companies.value, + }, + }, + { + name: 'gestDocFk', + label: t('entry.control.gestDocFk'), + }, + { + name: 'dmsType', + label: t('entry.control.dmsType'), + format: (row) => row.dmsType, + }, + { + name: 'invoiceNumber', + label: t('entry.control.invoiceNumber'), + }, + { + name: 'reference', + label: t('entry.control.reference'), + }, + { + name: 'shipped', + label: t('entry.control.shipped'), + }, + { + name: 'dated', + label: t('entry.control.dated'), + }, + { + name: 'id', + label: t('entry.control.id'), + isId: true, + chip: { + condition: () => true, + }, + }, + { + name: 'invoiceInFk', + label: t('entry.control.invoiceInFk'), + }, { name: 'supplierFk', label: t('globals.supplier'), @@ -20,52 +67,6 @@ const columns = computed(() => [ url: 'Suppliers', }, }, - { - name: 'companyFk', - label: t('globals.company'), - columnFilter: { - component: 'select', - name: 'companyFk', - options: companies.value, - }, - }, - { - name: 'gestDocFk', - label: t('entry.gestDocFk'), - }, - { - name: 'dmsType', - label: t('entry.dmsType'), - format: (row) => row.dmsType, - }, - { - name: 'invoiceNumber', - label: t('entry.invoiceNumber'), - }, - { - name: 'reference', - label: t('entry.reference'), - }, - { - name: 'shipped', - label: t('entry.shipped'), - }, - { - name: 'dated', - label: t('entry.dated'), - }, - { - name: 'id', - label: t('entry.id'), - isId: true, - chip: { - condition: () => true, - }, - }, - { - name: 'invoiceInFk', - label: t('entry.invoiceInFk'), - }, { name: 'country', label: t('globals.country'), @@ -82,7 +83,7 @@ const columns = computed(() => [ }, { name: 'payDem', - label: t('entry.payDem'), + label: t('entry.control.payDem'), }, { name: 'amount', @@ -90,11 +91,12 @@ const columns = computed(() => [ }, { name: 'isBooked', - label: t('entry.isBooked'), + label: t('entry.control.isBooked'), }, { name: 'received', - label: t('entry.received'), + label: t('entry.control.received'), + component: 'checkbox' }, // { // name: 'travelFk', @@ -127,13 +129,13 @@ const columns = computed(() => [ [ :columns auto-load :right-search="false" - /> + > + + diff --git a/src/pages/Entry/locale/en.yml b/src/pages/Entry/locale/en.yml index 80f3491a8..6ed918126 100644 --- a/src/pages/Entry/locale/en.yml +++ b/src/pages/Entry/locale/en.yml @@ -78,6 +78,22 @@ entry: searchInfo: You can search by entry reference descriptorMenu: showEntryReport: Show entry report + control: + gestDocFk: Gestdoc + dmsType: Gestdoc type + invoiceNumber: Entry ref. + reference: Gestdoc ref. + shipped: Shipped + dated: Landed + id: Entry + invoiceInFk: Invoice in + supplierFk: Supplier + country: Country + description: Entry type + payDem: Payment term + amount: Amount + isBooked: B + received: R entryFilter: params: invoiceNumber: Invoice number diff --git a/src/pages/Entry/locale/es.yml b/src/pages/Entry/locale/es.yml index a5b968016..3f9a4b8c2 100644 --- a/src/pages/Entry/locale/es.yml +++ b/src/pages/Entry/locale/es.yml @@ -79,6 +79,22 @@ entry: showEntryReport: Ver informe del pedido search: Buscar entradas searchInfo: Puedes buscar por referencia de entrada + control: + gestDocFk: Gestdoc + dmsType: Tipo gestdoc + invoiceNumber: Ref. Entrada + reference: Ref. gestdoc + shipped: F. envío + dated: F. llegada + id: Entrada + invoiceInFk: Recibida + supplierFk: Proveedor + country: País + description: Tipo de Entrada + payDem: Plazo de pago + amount: Importe + isBooked: C + received: R entryFilter: params: invoiceNumber: Núm. factura From 1facb04d7a6c84032ebf6b348450bce14d758900 Mon Sep 17 00:00:00 2001 From: jorgep Date: Wed, 12 Feb 2025 18:24:41 +0100 Subject: [PATCH 004/139] feat: refs #8277 update EntryControl component with new column definitions and filters --- src/pages/Entry/EntryControl.vue | 42 +++++++++++++++++++++++--------- src/pages/Entry/locale/en.yml | 5 ++-- src/pages/Entry/locale/es.yml | 5 ++-- 3 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/pages/Entry/EntryControl.vue b/src/pages/Entry/EntryControl.vue index 49ded3186..9354f8b20 100644 --- a/src/pages/Entry/EntryControl.vue +++ b/src/pages/Entry/EntryControl.vue @@ -2,6 +2,7 @@ import { ref, computed, markRaw } from 'vue'; import VnTable from 'src/components/VnTable/VnTable.vue'; import { useI18n } from 'vue-i18n'; +import { toDate, toCurrency } from 'src/filters'; import FetchData from 'src/components/FetchData.vue'; import VnSelectSupplier from 'src/components/common/VnSelectSupplier.vue'; @@ -10,7 +11,7 @@ const companies = ref([]); const countries = ref([]); const columns = computed(() => [ { - name: 'companyFk', + name: 'company', label: t('globals.company'), columnFilter: { component: 'select', @@ -26,7 +27,13 @@ const columns = computed(() => [ { name: 'dmsType', label: t('entry.control.dmsType'), - format: (row) => row.dmsType, + columnFilter: { + component: 'select', + label: null, + name: 'dmsType', + url: 'DmsTypes', + fields: ['id', 'name'], + }, }, { name: 'invoiceNumber', @@ -39,10 +46,20 @@ const columns = computed(() => [ { name: 'shipped', label: t('entry.control.shipped'), + format: ({ shipped }, dashIfEmpty) => dashIfEmpty(toDate(shipped)), + columnFilter: { + component: 'date', + name: 'shipped', + }, }, { - name: 'dated', - label: t('entry.control.dated'), + name: 'landed', + label: t('entry.control.landed'), + format: ({ landed }, dashIfEmpty) => dashIfEmpty(toDate(landed)), + columnFilter: { + component: 'date', + name: 'landed', + }, }, { name: 'id', @@ -57,9 +74,9 @@ const columns = computed(() => [ label: t('entry.control.invoiceInFk'), }, { - name: 'supplierFk', + name: 'supplier', label: t('globals.supplier'), - format: (row) => row.supplierFk, + format: (row) => row.supplier, columnFilter: { component: markRaw(VnSelectSupplier), label: null, @@ -70,7 +87,6 @@ const columns = computed(() => [ { name: 'country', label: t('globals.country'), - format: (row) => row.country, columnFilter: { component: 'select', name: 'country', @@ -87,16 +103,18 @@ const columns = computed(() => [ }, { name: 'amount', - label: t('amount'), + label: t('globals.amount'), + format: ({ amount }) => toCurrency(amount), }, { name: 'isBooked', label: t('entry.control.isBooked'), + component: 'checkbox', }, { name: 'received', label: t('entry.control.received'), - component: 'checkbox' + component: 'checkbox', }, // { // name: 'travelFk', @@ -144,9 +162,9 @@ const columns = computed(() => [ :columns auto-load :right-search="false" + :disable-option="{ card: true }" + redirect="Entry" + :order="['landed DESC']" > - diff --git a/src/pages/Entry/locale/en.yml b/src/pages/Entry/locale/en.yml index 119b06c37..bd7c4d002 100644 --- a/src/pages/Entry/locale/en.yml +++ b/src/pages/Entry/locale/en.yml @@ -136,15 +136,14 @@ entry: dmsType: Gestdoc type invoiceNumber: Entry ref. reference: Gestdoc ref. - shipped: Shipped - dated: Landed + shipped: Shipped + landed: Landed id: Entry invoiceInFk: Invoice in supplierFk: Supplier country: Country description: Entry type payDem: Payment term - amount: Amount isBooked: B received: R entryFilter: diff --git a/src/pages/Entry/locale/es.yml b/src/pages/Entry/locale/es.yml index 2519ad726..1c19df4c9 100644 --- a/src/pages/Entry/locale/es.yml +++ b/src/pages/Entry/locale/es.yml @@ -92,16 +92,15 @@ entry: gestDocFk: Gestdoc dmsType: Tipo gestdoc invoiceNumber: Ref. Entrada - reference: Ref. gestdoc + reference: Ref. GestDoc shipped: F. envío - dated: F. llegada + landed: F. llegada id: Entrada invoiceInFk: Recibida supplierFk: Proveedor country: País description: Tipo de Entrada payDem: Plazo de pago - amount: Importe isBooked: C received: R params: From f1a57ceba1fe150b3ac730a5e21b1a8e0657ad0a Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Wed, 19 Feb 2025 14:09:00 +0100 Subject: [PATCH 005/139] feat: refs #6321 init --- src/composables/showResultsTable.js | 30 ++ .../Negative/components/ChangeItemDialog.vue | 29 +- .../Negative/components/HandleSplitDialog.vue | 281 ++++++++++++++++++ .../Negative/components/HandleSplited.vue | 281 ++++++++++++++++++ 4 files changed, 612 insertions(+), 9 deletions(-) create mode 100644 src/composables/showResultsTable.js create mode 100644 src/pages/Ticket/Negative/components/HandleSplitDialog.vue create mode 100644 src/pages/Ticket/Negative/components/HandleSplited.vue diff --git a/src/composables/showResultsTable.js b/src/composables/showResultsTable.js new file mode 100644 index 000000000..c7e43ef7c --- /dev/null +++ b/src/composables/showResultsTable.js @@ -0,0 +1,30 @@ +import { useI18n } from 'vue-i18n'; + +import { useQuasar } from 'quasar'; + +export function showResultsAsTable(dialog, results, key) { + const quasar = useQuasar(); + const { t } = useI18n(); + function openTable() { + quasar.notify({ + message: t('negative.detail.modal.changeItem.success'), + color: 'positive', + actions: [ + { + label: t('globals.ok'), + color: 'white', + handler: () => { + quasar.dialog({ + component: dialog, + componentProps: { + results, + key, + }, + }); + }, + }, + ], + }); + } + return { openTable }; +} diff --git a/src/pages/Ticket/Negative/components/ChangeItemDialog.vue b/src/pages/Ticket/Negative/components/ChangeItemDialog.vue index e419b85c0..b0a670080 100644 --- a/src/pages/Ticket/Negative/components/ChangeItemDialog.vue +++ b/src/pages/Ticket/Negative/components/ChangeItemDialog.vue @@ -1,9 +1,18 @@ + + + + diff --git a/src/pages/Ticket/Negative/components/HandleSplited.vue b/src/pages/Ticket/Negative/components/HandleSplited.vue new file mode 100644 index 000000000..b2bf94f26 --- /dev/null +++ b/src/pages/Ticket/Negative/components/HandleSplited.vue @@ -0,0 +1,281 @@ + + + + + From d881730f27a56b73c8360b42d38553cd261304a4 Mon Sep 17 00:00:00 2001 From: Javier Segarra Date: Fri, 21 Feb 2025 13:49:39 +0100 Subject: [PATCH 006/139] feat: refs #8647 init --- src/components/VnTable/VnTable.vue | 2 +- src/components/VnTable/VnTableFilter.vue | 2 +- src/components/ui/CardSummary.vue | 2 +- src/components/ui/VnPaginate.vue | 6 ++++-- src/components/ui/VnSearchbar.vue | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/components/VnTable/VnTable.vue b/src/components/VnTable/VnTable.vue index 2cce5d05c..0b44660f5 100644 --- a/src/components/VnTable/VnTable.vue +++ b/src/components/VnTable/VnTable.vue @@ -63,7 +63,7 @@ const $props = defineProps({ default: null, }, create: { - type: Object, + type: [Boolean, Object], default: null, }, createAsDialog: { diff --git a/src/components/VnTable/VnTableFilter.vue b/src/components/VnTable/VnTableFilter.vue index 79b903e54..bb4a9a540 100644 --- a/src/components/VnTable/VnTableFilter.vue +++ b/src/components/VnTable/VnTableFilter.vue @@ -26,7 +26,7 @@ function columnName(col) { }