From a07afe3a94bc7e1911576a1fc6f2ce2bf7cdc4c6 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Fri, 28 Feb 2025 13:44:14 +0100 Subject: [PATCH 01/12] refactor: refs #8683 enhance sorting logic in VnSelect component --- src/components/common/VnSelect.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue index d111780bdd5..eb387fe6113 100644 --- a/src/components/common/VnSelect.vue +++ b/src/components/common/VnSelect.vue @@ -152,6 +152,10 @@ const value = computed({ }, }); +const computedSortBy = computed(() => { + return $props.sortBy || $props.optionLabel; +}); + watch(options, (newValue) => { setOptions(newValue); }); @@ -186,7 +190,7 @@ function findKeyInOptions() { } function setOptions(data) { - data = dataByOrder(data, $props.sortBy); + data = dataByOrder(data, computedSortBy.value); myOptions.value = JSON.parse(JSON.stringify(data)); myOptionsOriginal.value = JSON.parse(JSON.stringify(data)); emit('update:options', data); From d893505cd6bd660813ac867db0db61f9ac9f79a1 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Fri, 7 Mar 2025 09:14:18 +0100 Subject: [PATCH 02/12] fix: refs #8683 update fetchFilter to use computed sortBy value --- src/components/common/VnSelect.vue | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue index 37bb55ca458..9405baa4f3a 100644 --- a/src/components/common/VnSelect.vue +++ b/src/components/common/VnSelect.vue @@ -220,7 +220,8 @@ function filter(val, options) { async function fetchFilter(val) { if (!$props.url) return; - const { fields, include, sortBy, limit } = $props; + const { fields, include, limit } = $props; + const sortBy = computedSortBy.value; const key = optionFilterValue.value ?? (new RegExp(/\d/g).test(val) From 68af7a50fa7410cedb20b67b14e4faa21b7b5498 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Fri, 7 Mar 2025 11:59:22 +0100 Subject: [PATCH 03/12] fix: refs #8683 update computedSortBy to append ' ASC' to optionLabel --- src/components/common/VnSelect.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/common/VnSelect.vue b/src/components/common/VnSelect.vue index 9405baa4f3a..296a212e72b 100644 --- a/src/components/common/VnSelect.vue +++ b/src/components/common/VnSelect.vue @@ -153,7 +153,7 @@ const value = computed({ }); const computedSortBy = computed(() => { - return $props.sortBy || $props.optionLabel; + return $props.sortBy || $props.optionLabel + ' ASC'; }); watch(options, (newValue) => { From 37f1882530043f0ddcdb4a73ad3e9facf2ef5c03 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Mon, 10 Mar 2025 13:55:36 +0100 Subject: [PATCH 04/12] test(UserPanel): refs #8683 update initial values and options in user selection --- test/cypress/integration/vnComponent/UserPanel.spec.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/cypress/integration/vnComponent/UserPanel.spec.js b/test/cypress/integration/vnComponent/UserPanel.spec.js index 25724e87392..216797dfaf1 100644 --- a/test/cypress/integration/vnComponent/UserPanel.spec.js +++ b/test/cypress/integration/vnComponent/UserPanel.spec.js @@ -15,7 +15,7 @@ describe('UserPanel', () => { cy.openUserPanel(); // Compruebo la opcion inicial - cy.get(userWarehouse).should('have.value', 'VNL').click(); + cy.get(userWarehouse).should('have.value', 'ORN').click(); // Actualizo la opción cy.getOption(3); @@ -36,14 +36,14 @@ describe('UserPanel', () => { cy.openUserPanel(); // Compruebo la opcion inicial - cy.get(userCompany).should('have.value', 'Warehouse One').click(); + cy.get(userCompany).should('have.value', 'Inventory').click(); //Actualizo la opción - cy.getOption(2); + cy.getOption(3); //Compruebo la notificación cy.get('.q-notification').should('be.visible'); - cy.get(userCompany).should('have.value', 'Warehouse Two'); + cy.get(userCompany).should('have.value', 'TestingWarehouse'); //Restauro el valor cy.get(userCompany).click(); From 6a48ff93269fee8d7da4f557cf2399514035aea3 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Mon, 10 Mar 2025 14:14:22 +0100 Subject: [PATCH 05/12] test(UserPanel): refs #8683 update initial value in user selection --- test/cypress/integration/vnComponent/UserPanel.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/integration/vnComponent/UserPanel.spec.js b/test/cypress/integration/vnComponent/UserPanel.spec.js index 216797dfaf1..ec6774f5813 100644 --- a/test/cypress/integration/vnComponent/UserPanel.spec.js +++ b/test/cypress/integration/vnComponent/UserPanel.spec.js @@ -36,7 +36,7 @@ describe('UserPanel', () => { cy.openUserPanel(); // Compruebo la opcion inicial - cy.get(userCompany).should('have.value', 'Inventory').click(); + cy.get(userCompany).should('have.value', 'Algemesi').click(); //Actualizo la opción cy.getOption(3); From d82369a62cd726d2d9b54254fb48cada64e28c8a Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Tue, 11 Mar 2025 13:10:13 +0100 Subject: [PATCH 06/12] fix(UserPanel): refs #8683 update initial values for user warehouse and company selections --- test/cypress/integration/vnComponent/UserPanel.spec.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/cypress/integration/vnComponent/UserPanel.spec.js b/test/cypress/integration/vnComponent/UserPanel.spec.js index ec6774f5813..8722fe37e46 100644 --- a/test/cypress/integration/vnComponent/UserPanel.spec.js +++ b/test/cypress/integration/vnComponent/UserPanel.spec.js @@ -15,7 +15,7 @@ describe('UserPanel', () => { cy.openUserPanel(); // Compruebo la opcion inicial - cy.get(userWarehouse).should('have.value', 'ORN').click(); + cy.get(userWarehouse).should('have.value', 'VNL').click(); // Actualizo la opción cy.getOption(3); @@ -36,7 +36,7 @@ describe('UserPanel', () => { cy.openUserPanel(); // Compruebo la opcion inicial - cy.get(userCompany).should('have.value', 'Algemesi').click(); + cy.get(userCompany).should('have.value', 'Warehouse One').click(); //Actualizo la opción cy.getOption(3); From 13cf7c6031bd093cc5962b8507201b020bc7489f Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Tue, 11 Mar 2025 13:17:36 +0100 Subject: [PATCH 07/12] fix(VnLog): refs #8683 update validation content for entity filter test --- test/cypress/integration/vnComponent/VnLog.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/integration/vnComponent/VnLog.spec.js b/test/cypress/integration/vnComponent/VnLog.spec.js index 80b9d07dfd0..782fb9fbea9 100644 --- a/test/cypress/integration/vnComponent/VnLog.spec.js +++ b/test/cypress/integration/vnComponent/VnLog.spec.js @@ -20,6 +20,6 @@ describe('VnLog', () => { it('should filter by entity', () => { cy.selectOption('.q-drawer--right .q-item > .q-select', 'Claim'); cy.get('.q-page').click(); - cy.validateContent(chips[0], 'Claim'); + cy.validateContent(chips[0], 'Beginning'); }); }); From 489fcda41057d4546ea3be5e06e1ddc5e5e09913 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Thu, 20 Mar 2025 12:59:33 +0100 Subject: [PATCH 08/12] fix: refs #8683 update Cypress parallel test execution to run with a single instance --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7f4144a5485..05ef34791be 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -126,7 +126,7 @@ pipeline { sh "docker-compose ${env.COMPOSE_PARAMS} up -d" image.inside("--network ${env.COMPOSE_PROJECT}_default -e CI -e TZ --init") { - sh 'sh test/cypress/cypressParallel.sh 2' + sh 'sh test/cypress/cypressParallel.sh 1' } } } From 79e6530d3965e45174fb96ae3f74ba1dacf462c1 Mon Sep 17 00:00:00 2001 From: Javier Segarra <jsegarra@verdnatura.es> Date: Tue, 25 Mar 2025 12:23:49 +0100 Subject: [PATCH 09/12] docs: add production serving instructions to README --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index d280e29ceb5..8eff9913739 100644 --- a/README.md +++ b/README.md @@ -49,3 +49,9 @@ pnpm run test:e2e:summary ```bash quasar build ``` + +### Serve the app for production + +```bash +quasar build quasar serve dist/spa --host 0.0.0.0 --proxy=./proxy-serve.js +``` From 31205d40d39de60b6cf6e6f3aad43163cd1b3cff Mon Sep 17 00:00:00 2001 From: pablone <pablone@verdnatura.es> Date: Tue, 25 Mar 2025 14:01:29 +0100 Subject: [PATCH 10/12] fix: update default DMS code and improve filter handling in various components --- src/components/common/VnDmsInput.vue | 2 +- src/pages/Entry/Card/EntryBuys.vue | 2 +- src/pages/Entry/Card/EntryDescriptor.vue | 2 +- src/pages/Entry/EntryStockBought.vue | 1 + src/pages/Travel/Card/TravelSummary.vue | 10 ++++++---- src/pages/Travel/TravelFilter.vue | 4 +++- 6 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/common/VnDmsInput.vue b/src/components/common/VnDmsInput.vue index 25d625d5d8f..5a3ef351b6a 100644 --- a/src/components/common/VnDmsInput.vue +++ b/src/components/common/VnDmsInput.vue @@ -15,7 +15,7 @@ const editDownloadDisabled = ref(false); const $props = defineProps({ defaultDmsCode: { type: String, - default: 'InvoiceIn', + default: 'invoiceIn', }, disable: { type: Boolean, diff --git a/src/pages/Entry/Card/EntryBuys.vue b/src/pages/Entry/Card/EntryBuys.vue index a93b0801b4e..dedc9fc85dd 100644 --- a/src/pages/Entry/Card/EntryBuys.vue +++ b/src/pages/Entry/Card/EntryBuys.vue @@ -648,7 +648,7 @@ onMounted(() => { :url="`Entries/${entityId}/getBuyList`" search-url="EntryBuys" save-url="Buys/crud" - :filter="filter" + :filter="editableMode ? filter : {}" :disable-option="{ card: true }" v-model:selected="selectedRows" @on-fetch="() => footerFetchDataRef.fetch()" diff --git a/src/pages/Entry/Card/EntryDescriptor.vue b/src/pages/Entry/Card/EntryDescriptor.vue index 784f6e8a342..9a8b797440d 100644 --- a/src/pages/Entry/Card/EntryDescriptor.vue +++ b/src/pages/Entry/Card/EntryDescriptor.vue @@ -147,7 +147,7 @@ async function deleteEntry() { <template> <CardDescriptor :url="`Entries/${entityId}`" - :user-filter="entryFilter" + :filter="entryFilter" title="supplier.nickname" data-key="Entry" width="lg-width" diff --git a/src/pages/Entry/EntryStockBought.vue b/src/pages/Entry/EntryStockBought.vue index 6168f073708..9e97e2ad577 100644 --- a/src/pages/Entry/EntryStockBought.vue +++ b/src/pages/Entry/EntryStockBought.vue @@ -116,6 +116,7 @@ const filter = computed(() => ({ hour: 0, minute: 0, second: 0, + milliseconds: 0, }), m3: { neq: null }, }, diff --git a/src/pages/Travel/Card/TravelSummary.vue b/src/pages/Travel/Card/TravelSummary.vue index 9f955261181..da933de6052 100644 --- a/src/pages/Travel/Card/TravelSummary.vue +++ b/src/pages/Travel/Card/TravelSummary.vue @@ -199,7 +199,11 @@ const entriesTotals = computed(() => { entriesTableRows.value.forEach((row) => { for (const key in totals) { - totals[key] += row[key] || 0; + if (key === 'cc') { + totals[key] += Math.ceil(row[key] || 0); + } else { + totals[key] += row[key] || 0; + } } }); @@ -337,9 +341,7 @@ const getLink = (param) => `#/travel/${entityId.value}/${param}`; <VnLv :label="t('globals.totalEntries')" :value="travel.totalEntries" /> <VnLv :label="t('travel.summary.availabled')" - :value=" - dashIfEmpty(toDateTimeFormat(travel.availabled)) - " + :value="dashIfEmpty(toDateTimeFormat(travel.availabled))" /> </QCard> <QCard class="full-width"> diff --git a/src/pages/Travel/TravelFilter.vue b/src/pages/Travel/TravelFilter.vue index 4a9c8095260..d2cf6092d2a 100644 --- a/src/pages/Travel/TravelFilter.vue +++ b/src/pages/Travel/TravelFilter.vue @@ -89,7 +89,7 @@ defineExpose({ states }); /> <VnSelect :label="t('travel.warehouseOut')" - v-model="params.warehouseOut" + v-model="params.warehouseOutFk" @update:model-value="searchFn()" url="warehouses" :use-like="false" @@ -140,6 +140,7 @@ en: ref: Reference agency: Agency warehouseInFk: Warehouse In + warehouseOutFk: Warehouse Out shipped: Shipped shipmentHour: Shipment Hour warehouseOut: Warehouse Out @@ -153,6 +154,7 @@ es: ref: Referencia agency: Agencia warehouseInFk: Alm.Entrada + warehouseOutFk: Alm.Salida shipped: F.Envío shipmentHour: Hora de envío warehouseOut: Alm.Salida From 659d73e11a559175f1b392955153d399e5650a1f Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Wed, 26 Mar 2025 08:13:42 +0100 Subject: [PATCH 11/12] test: skip RouteAutonomous tests temporarily --- test/cypress/integration/route/routeAutonomous.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/integration/route/routeAutonomous.spec.js b/test/cypress/integration/route/routeAutonomous.spec.js index acf82bd95d6..08fd7d7eace 100644 --- a/test/cypress/integration/route/routeAutonomous.spec.js +++ b/test/cypress/integration/route/routeAutonomous.spec.js @@ -1,4 +1,4 @@ -describe('RouteAutonomous', () => { +describe.skip('RouteAutonomous', () => { const getLinkSelector = (colField) => `tr:first-child > [data-col-field="${colField}"] > .no-padding > .link`; From bbc03ddcad713bce6fbcb14c26bf283bca12ff56 Mon Sep 17 00:00:00 2001 From: alexm <alexm@verdnatura.es> Date: Wed, 26 Mar 2025 08:30:20 +0100 Subject: [PATCH 12/12] fix: remove duplicated department selection from MonitorTicketFilter --- src/pages/Monitor/Ticket/MonitorTicketFilter.vue | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/pages/Monitor/Ticket/MonitorTicketFilter.vue b/src/pages/Monitor/Ticket/MonitorTicketFilter.vue index 447dd35b830..258a9058376 100644 --- a/src/pages/Monitor/Ticket/MonitorTicketFilter.vue +++ b/src/pages/Monitor/Ticket/MonitorTicketFilter.vue @@ -209,20 +209,6 @@ const getLocale = (label) => { /> </QItemSection> </QItem> - <QItem> - <QItemSection> - <VnSelect - outlined - dense - rounded - :label="t('globals.params.departmentFk')" - v-model="params.department" - option-label="name" - option-value="name" - url="Departments" - /> - </QItemSection> - </QItem> <QItem> <QItemSection> <VnSelect