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