From 5eda1388efdbe94854308d31a6798982df6a4fc7 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 27 Dec 2022 10:26:56 +0100
Subject: [PATCH 01/16] refs #4927 unique key added

---
 CHANGELOG.md                               | 4 ++--
 db/changes/230201/.gitkeep                 | 0
 db/changes/230201/00-SupplierUniqueKey.sql | 1 +
 modules/supplier/back/models/supplier.js   | 4 ----
 4 files changed, 3 insertions(+), 6 deletions(-)
 delete mode 100644 db/changes/230201/.gitkeep
 create mode 100644 db/changes/230201/00-SupplierUniqueKey.sql

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 95b3028dea..906dd002c1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,8 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added
 
-- 
+-
 
 ### Changed
 
-- 
\ No newline at end of file
+- Se permite añadir Proveedores con la misma razón social pero con países distintos
diff --git a/db/changes/230201/.gitkeep b/db/changes/230201/.gitkeep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/db/changes/230201/00-SupplierUniqueKey.sql b/db/changes/230201/00-SupplierUniqueKey.sql
new file mode 100644
index 0000000000..9c0d4a1921
--- /dev/null
+++ b/db/changes/230201/00-SupplierUniqueKey.sql
@@ -0,0 +1 @@
+ALTER TABLE `vn`.`supplier` ADD UNIQUE (name, countryFk);
diff --git a/modules/supplier/back/models/supplier.js b/modules/supplier/back/models/supplier.js
index 44549c65c7..64c585b6a8 100644
--- a/modules/supplier/back/models/supplier.js
+++ b/modules/supplier/back/models/supplier.js
@@ -16,10 +16,6 @@ module.exports = Self => {
         message: 'The social name cannot be empty'
     });
 
-    Self.validatesUniquenessOf('name', {
-        message: 'The supplier name must be unique'
-    });
-
     if (this.city) {
         Self.validatesPresenceOf('city', {
             message: 'City cannot be empty'

From 41671e8a3a358ea8c3170b8c388c3e4d4640a398 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Fri, 13 Jan 2023 08:38:29 +0100
Subject: [PATCH 02/16] refs #4927 modified hook to check name & country

---
 loopback/locale/es.json                  |  5 +++--
 modules/supplier/back/models/supplier.js | 20 ++++++++++++++------
 2 files changed, 17 insertions(+), 8 deletions(-)

diff --git a/loopback/locale/es.json b/loopback/locale/es.json
index ea83b36c49..f2acea9391 100644
--- a/loopback/locale/es.json
+++ b/loopback/locale/es.json
@@ -252,5 +252,6 @@
 	"Receipt's bank was not found": "No se encontró el banco del recibo",
 	"This receipt was not compensated": "Este recibo no ha sido compensado",
 	"Client's email was not found": "No se encontró el email del cliente",
-	"Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9"
-}
\ No newline at end of file
+	"Aplicación bloqueada por el usuario 9": "Aplicación bloqueada por el usuario 9",
+	"A supplier with the same name already exists. Change the country.": "Un proveedor con el mismo nombre ya existe. Cambie el país."
+}
diff --git a/modules/supplier/back/models/supplier.js b/modules/supplier/back/models/supplier.js
index 64c585b6a8..cba220af8b 100644
--- a/modules/supplier/back/models/supplier.js
+++ b/modules/supplier/back/models/supplier.js
@@ -116,13 +116,21 @@ module.exports = Self => {
     Self.observe('before save', async function(ctx) {
         const changes = ctx.data || ctx.instance;
         const orgData = ctx.currentInstance;
-
-        const socialName = changes.name || orgData.name;
         const hasChanges = orgData && changes;
-        const socialNameChanged = hasChanges
-         && orgData.socialName != socialName;
 
-        if ((socialNameChanged) && !isAlpha(socialName))
-            throw new UserError('The social name has an invalid format');
+        if (hasChanges) {
+            const name = changes.name || orgData.name;
+            const nameChanged = hasChanges && orgData.name != name;
+            const countryFk = changes.countryFk || orgData.countryFk;
+            const countryChanged = hasChanges && orgData.countryFk != countryFk;
+
+            if (nameChanged || countryChanged) {
+                if (!isAlpha(name)) throw new UserError('The social name has an invalid format');
+
+                const supplier = await Self.app.models.Supplier.findOne({where: {name, countryFk}, fields: ['id']});
+                if (supplier)
+                    throw new UserError('A supplier with the same name already exists. Change the country.');
+            }
+        }
     });
 };

From f30b1ecff1f3e2e2811ffa5a318c919f7db48dd3 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Fri, 20 Jan 2023 10:03:00 +0100
Subject: [PATCH 03/16] refs #4927 changed hook for validateAsync

---
 modules/supplier/back/models/supplier.js | 41 ++++++++++++++++--------
 1 file changed, 27 insertions(+), 14 deletions(-)

diff --git a/modules/supplier/back/models/supplier.js b/modules/supplier/back/models/supplier.js
index cba220af8b..4e509aafc5 100644
--- a/modules/supplier/back/models/supplier.js
+++ b/modules/supplier/back/models/supplier.js
@@ -113,24 +113,37 @@ module.exports = Self => {
             throw new UserError('You can not modify is pay method checked');
     });
 
+    Self.validateAsync('name', 'countryFk', hasSupplierSameName, {
+        message: 'A supplier with the same name already exists. Change the country.'
+    });
+
+    async function hasSupplierSameName(err, done) {
+        if (!this.name || !this.countryFk) done();
+        const supplier = await Self.app.models.Supplier.findOne(
+            {
+                where: {
+                    name: this.name,
+                    countryFk: this.countryFk
+                },
+                fields: ['id']
+            });
+
+        if (supplier && supplier.id != this.id)
+            err();
+
+        done();
+    }
+
     Self.observe('before save', async function(ctx) {
         const changes = ctx.data || ctx.instance;
         const orgData = ctx.currentInstance;
+
+        const socialName = changes.name || orgData.name;
         const hasChanges = orgData && changes;
+        const socialNameChanged = hasChanges
+         && orgData.socialName != socialName;
 
-        if (hasChanges) {
-            const name = changes.name || orgData.name;
-            const nameChanged = hasChanges && orgData.name != name;
-            const countryFk = changes.countryFk || orgData.countryFk;
-            const countryChanged = hasChanges && orgData.countryFk != countryFk;
-
-            if (nameChanged || countryChanged) {
-                if (!isAlpha(name)) throw new UserError('The social name has an invalid format');
-
-                const supplier = await Self.app.models.Supplier.findOne({where: {name, countryFk}, fields: ['id']});
-                if (supplier)
-                    throw new UserError('A supplier with the same name already exists. Change the country.');
-            }
-        }
+        if ((socialNameChanged) && !isAlpha(socialName))
+            throw new UserError('The social name has an invalid format');
     });
 };

From b281a51d90e7ef3b813bf418e74b0b4ce04b13c0 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Fri, 20 Jan 2023 10:33:23 +0100
Subject: [PATCH 04/16] refs #4927 refresh structure

---
 db/dump/structure.sql | 1 -
 1 file changed, 1 deletion(-)

diff --git a/db/dump/structure.sql b/db/dump/structure.sql
index 772d6055d4..4626279e44 100644
--- a/db/dump/structure.sql
+++ b/db/dump/structure.sql
@@ -80203,4 +80203,3 @@ USE `vncontrol`;
 -- Dump completed on 2022-11-21  7:57:28
 
 
-

From 35157207dd071ce44f6e65063149ba9f8eafa148 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Fri, 27 Jan 2023 10:05:03 +0100
Subject: [PATCH 05/16] refs #5077 hours set 00:00:00 only when date change

---
 modules/ticket/front/basic-data/step-one/index.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/modules/ticket/front/basic-data/step-one/index.js b/modules/ticket/front/basic-data/step-one/index.js
index f532265e22..99782de444 100644
--- a/modules/ticket/front/basic-data/step-one/index.js
+++ b/modules/ticket/front/basic-data/step-one/index.js
@@ -75,8 +75,10 @@ class Controller extends Component {
     }
 
     set shipped(value) {
+        if (new Date(this.ticket.shipped).toDateString() != value.toDateString())
+            value.setHours(0, 0, 0, 0);
+
         this.ticket.shipped = value;
-        this.ticket.shipped.setHours(0, 0, 0, 0);
         this.getLanded({
             shipped: value,
             addressFk: this.ticket.addressFk,

From 03d75c5b72ce142e0683d6373ce79d23d868ba1b Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Mon, 30 Jan 2023 12:25:57 +0100
Subject: [PATCH 06/16] refs #4927 changelog modified

---
 CHANGELOG.md | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 57be4697b2..7f7a28f0a6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 -  (Trabajadores -> Nuevo trabajador)  Nueva sección
 
 ### Changed
--
+- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos
 
 ### Fixed
 - (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas.
@@ -29,7 +29,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 ### Changed
 - (Reclamaciones -> Descriptor) Cambiado el campo Agencia por Zona
 - (Tickets -> Líneas preparadas) Actualizada sección para que sea más visual
-- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos
 
 ### Fixed
 - (General) Al utilizar el traductor de Google se descuadraban los iconos

From c08836a1d1a6ce44670ef55e85d78bb144d20113 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Mon, 30 Jan 2023 12:38:29 +0100
Subject: [PATCH 07/16] refs #5077 changelog

---
 CHANGELOG.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d00cafc2b2..f2b9668501 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,6 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Fixed
 - (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas.
+- (Tickets -> Datos básicos) Permite guardar la hora de envío
 
 
 ## [2302.01] - 2023-01-26

From 331b278726e59558894857a31dd43c9a44b6c02a Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 13:00:25 +0100
Subject: [PATCH 08/16] refs #5131 checkbox pending origin destination

---
 db/changes/230401/00-ticket_canAdvance.sql    | 100 ++++++++++++++++++
 .../back/methods/ticket/getTicketsAdvance.js  |  16 +--
 .../front/advance-search-panel/index.html     |  32 +++---
 .../front/advance-search-panel/index.js       |  15 ---
 .../front/advance-search-panel/locale/es.yml  |   2 +
 5 files changed, 122 insertions(+), 43 deletions(-)
 create mode 100644 db/changes/230401/00-ticket_canAdvance.sql

diff --git a/db/changes/230401/00-ticket_canAdvance.sql b/db/changes/230401/00-ticket_canAdvance.sql
new file mode 100644
index 0000000000..497defebe9
--- /dev/null
+++ b/db/changes/230401/00-ticket_canAdvance.sql
@@ -0,0 +1,100 @@
+DROP PROCEDURE IF EXISTS vn.ticket_canAdvance;
+
+DELIMITER $$
+$$
+CREATE DEFINER=`root`@`localhost` PROCEDURE `vn`.`ticket_canAdvance`(vDateFuture DATE, vDateToAdvance DATE, vWarehouseFk INT)
+BEGIN
+/**
+ * Devuelve los tickets y la cantidad de lineas de venta que se pueden adelantar.
+ *
+ * @param vDateFuture Fecha de los tickets que se quieren adelantar.
+ * @param vDateToAdvance Fecha a cuando se quiere adelantar.
+ * @param vWarehouseFk Almacén
+ */
+
+	DECLARE vDateInventory DATE;
+
+	SELECT inventoried INTO vDateInventory FROM vn.config;
+
+	DROP TEMPORARY TABLE IF EXISTS tmp.stock;
+	CREATE TEMPORARY TABLE tmp.stock
+		(itemFk INT PRIMARY KEY,
+		amount INT)
+		ENGINE = MEMORY;
+
+	INSERT INTO tmp.stock(itemFk, amount)
+		SELECT itemFk, SUM(quantity) amount FROM
+		(
+			SELECT itemFk, quantity
+				FROM vn.itemTicketOut
+				WHERE shipped >= vDateInventory
+					AND shipped < vDateFuture
+					AND warehouseFk = vWarehouseFk
+			UNION ALL
+			SELECT itemFk, quantity
+				FROM vn.itemEntryIn
+				WHERE landed >= vDateInventory
+					AND landed < vDateFuture
+					AND isVirtualStock = FALSE
+					AND warehouseInFk = vWarehouseFk
+			UNION ALL
+			SELECT itemFk, quantity
+				FROM vn.itemEntryOut
+				WHERE shipped >= vDateInventory
+					AND shipped < vDateFuture
+					AND warehouseOutFk = vWarehouseFk
+		) t
+		GROUP BY itemFk HAVING amount != 0;
+
+	DROP TEMPORARY TABLE IF EXISTS tmp.filter;
+	CREATE TEMPORARY TABLE tmp.filter
+        (INDEX (id))
+	SELECT s.ticketFk futureId,
+			t2.ticketFk id,
+			sum((s.quantity <= IFNULL(st.amount,0))) hasStock,
+			count(DISTINCT s.id) saleCount,
+            t2.state,
+			t2.isNotValidated,
+            st.name futureState,
+			st.isNotValidated futureIsNotValidated,
+			GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) futureIpt,
+			t2.ipt,
+			t.workerFk,
+			CAST(sum(litros) AS DECIMAL(10,0)) liters,
+			CAST(count(*) AS DECIMAL(10,0)) `lines`,
+			t2.shipped,
+			t.shipped futureShipped,
+			t2.totalWithVat,
+			t.totalWithVat futureTotalWithVat
+		FROM vn.ticket t
+			JOIN vn.ticketState ts ON ts.ticketFk = t.id
+			JOIN vn.state st ON st.id = ts.stateFk
+			JOIN vn.saleVolume sv ON t.id = sv.ticketFk
+			JOIN (SELECT
+							t2.id ticketFk,
+							t2.addressFk,
+                            st.isNotValidated,
+                            st.name state,
+							GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) ipt,
+							t2.shipped,
+							t2.totalWithVat
+						FROM vn.ticket t2
+							JOIN vn.sale s ON s.ticketFk = t2.id
+							JOIN vn.item i ON i.id = s.itemFk
+							JOIN vn.ticketState ts ON ts.ticketFk = t2.id
+							JOIN vn.state st ON st.id = ts.stateFk
+							LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
+						WHERE t2.shipped BETWEEN vDateToAdvance AND util.dayend(vDateToAdvance)
+							AND t2.warehouseFk = vWarehouseFk
+						GROUP BY t2.id) t2 ON t2.addressFk = t.addressFk
+			JOIN vn.sale s ON s.ticketFk = t.id
+			JOIN vn.item i ON i.id = s.itemFk
+			LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
+			LEFT JOIN tmp.stock st ON st.itemFk = s.itemFk
+		WHERE t.shipped BETWEEN vDateFuture AND util.dayend(vDateFuture)
+			AND t.warehouseFk = vWarehouseFk
+		GROUP BY t.id;
+
+	DROP TEMPORARY TABLE tmp.stock;
+END$$
+DELIMITER ;
diff --git a/modules/ticket/back/methods/ticket/getTicketsAdvance.js b/modules/ticket/back/methods/ticket/getTicketsAdvance.js
index 19571bb510..a7dea56e22 100644
--- a/modules/ticket/back/methods/ticket/getTicketsAdvance.js
+++ b/modules/ticket/back/methods/ticket/getTicketsAdvance.js
@@ -50,14 +50,14 @@ module.exports = Self => {
                 required: false
             },
             {
-                arg: 'state',
-                type: 'string',
+                arg: 'isNotValidated',
+                type: 'boolean',
                 description: 'Origin state',
                 required: false
             },
             {
-                arg: 'futureState',
-                type: 'string',
+                arg: 'futureIsNotValidated',
+                type: 'boolean',
                 description: 'Destination state',
                 required: false
             },
@@ -95,10 +95,10 @@ module.exports = Self => {
                 return {'f.ipt': value};
             case 'futureIpt':
                 return {'f.futureIpt': value};
-            case 'state':
-                return {'f.stateCode': {like: `%${value}%`}};
-            case 'futureState':
-                return {'f.futureStateCode': {like: `%${value}%`}};
+            case 'isNotValidated':
+                return {'f.isNotValidated': value};
+            case 'futureIsNotValidated':
+                return {'f.futureIsNotValidated': value};
             }
         });
 
diff --git a/modules/ticket/front/advance-search-panel/index.html b/modules/ticket/front/advance-search-panel/index.html
index e8d5dc60d1..dfe1f6b086 100644
--- a/modules/ticket/front/advance-search-panel/index.html
+++ b/modules/ticket/front/advance-search-panel/index.html
@@ -39,26 +39,18 @@
             </vn-autocomplete>
         </vn-horizontal>
         <vn-horizontal class="vn-px-lg">
-            <vn-autocomplete vn-one
-                data="$ctrl.groupedStates"
-                label="Origin Grouped State"
-                value-field="code"
-                show-field="name"
-                ng-model="filter.futureState">
-                <tpl-item>
-                    {{name}}
-                </tpl-item>
-            </vn-autocomplete>
-            <vn-autocomplete vn-one
-                data="$ctrl.groupedStates"
-                label="Destination Grouped State"
-                value-field="code"
-                show-field="name"
-                ng-model="filter.state">
-                <tpl-item>
-                    {{name}}
-                </tpl-item>
-            </vn-autocomplete>
+            <vn-check
+                vn-one
+                label="Pending Origin"
+                ng-model="filter.futureIsNotValidated"
+                triple-state="true">
+            </vn-check>
+            <vn-check
+                vn-one
+                label="Pending Destination"
+                ng-model="filter.isNotValidated"
+                triple-state="true">
+            </vn-check>
         </vn-horizontal>
         <vn-horizontal class="vn-px-lg">
             <vn-autocomplete
diff --git a/modules/ticket/front/advance-search-panel/index.js b/modules/ticket/front/advance-search-panel/index.js
index 0ee16bc3c3..8ddbe78d4a 100644
--- a/modules/ticket/front/advance-search-panel/index.js
+++ b/modules/ticket/front/advance-search-panel/index.js
@@ -5,24 +5,9 @@ class Controller extends SearchPanel {
     constructor($, $element) {
         super($, $element);
         this.filter = this.$.filter;
-        this.getGroupedStates();
         this.getItemPackingTypes();
     }
 
-    getGroupedStates() {
-        let groupedStates = [];
-        this.$http.get('AlertLevels').then(res => {
-            for (let state of res.data) {
-                groupedStates.push({
-                    id: state.id,
-                    code: state.code,
-                    name: this.$t(state.code)
-                });
-            }
-            this.groupedStates = groupedStates;
-        });
-    }
-
     getItemPackingTypes() {
         let itemPackingTypes = [];
         const filter = {
diff --git a/modules/ticket/front/advance-search-panel/locale/es.yml b/modules/ticket/front/advance-search-panel/locale/es.yml
index 3dce7dae50..4ea2fc737a 100644
--- a/modules/ticket/front/advance-search-panel/locale/es.yml
+++ b/modules/ticket/front/advance-search-panel/locale/es.yml
@@ -1 +1,3 @@
 Advance tickets: Adelantar tickets
+Pending Origin: Pendiente origen
+Pending Destination: Pendiente destino

From e5b7ebd8b4de413b4a73131fb6ebc1f8299df479 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 13:06:58 +0100
Subject: [PATCH 09/16] refs #5131 IPT null or value

---
 .../back/methods/ticket/getTicketsAdvance.js       | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/modules/ticket/back/methods/ticket/getTicketsAdvance.js b/modules/ticket/back/methods/ticket/getTicketsAdvance.js
index a7dea56e22..1e1646cba0 100644
--- a/modules/ticket/back/methods/ticket/getTicketsAdvance.js
+++ b/modules/ticket/back/methods/ticket/getTicketsAdvance.js
@@ -92,9 +92,19 @@ module.exports = Self => {
             case 'futureId':
                 return {'f.futureId': value};
             case 'ipt':
-                return {'f.ipt': value};
+                return {or:
+                    [
+                        {'f.ipt': {like: `%${value}%`}},
+                        {'f.ipt': null}
+                    ]
+                };
             case 'futureIpt':
-                return {'f.futureIpt': value};
+                return {or:
+                    [
+                        {'f.futureIpt': {like: `%${value}%`}},
+                        {'f.futureIpt': null}
+                    ]
+                };
             case 'isNotValidated':
                 return {'f.isNotValidated': value};
             case 'futureIsNotValidated':

From 87bef62e350544e8c5d83db990540cf85f49f79b Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 13:21:51 +0100
Subject: [PATCH 10/16] refs #5131 hasStock refers to origin

---
 db/changes/230401/00-ticket_canAdvance.sql | 21 +++++++++++----------
 modules/ticket/front/advance/index.html    |  8 ++++----
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/db/changes/230401/00-ticket_canAdvance.sql b/db/changes/230401/00-ticket_canAdvance.sql
index 497defebe9..05200aa57c 100644
--- a/db/changes/230401/00-ticket_canAdvance.sql
+++ b/db/changes/230401/00-ticket_canAdvance.sql
@@ -51,7 +51,6 @@ BEGIN
         (INDEX (id))
 	SELECT s.ticketFk futureId,
 			t2.ticketFk id,
-			sum((s.quantity <= IFNULL(st.amount,0))) hasStock,
 			count(DISTINCT s.id) saleCount,
             t2.state,
 			t2.isNotValidated,
@@ -65,32 +64,34 @@ BEGIN
 			t2.shipped,
 			t.shipped futureShipped,
 			t2.totalWithVat,
-			t.totalWithVat futureTotalWithVat
+			t.totalWithVat futureTotalWithVat,
+            t2.hasStock
 		FROM vn.ticket t
 			JOIN vn.ticketState ts ON ts.ticketFk = t.id
 			JOIN vn.state st ON st.id = ts.stateFk
 			JOIN vn.saleVolume sv ON t.id = sv.ticketFk
 			JOIN (SELECT
-							t2.id ticketFk,
-							t2.addressFk,
-                            st.isNotValidated,
-                            st.name state,
-							GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) ipt,
-							t2.shipped,
-							t2.totalWithVat
+                        t2.id ticketFk,
+                        t2.addressFk,
+                        st.isNotValidated,
+                        st.name state,
+                        GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) ipt,
+                        t2.shipped,
+                        t2.totalWithVat,
+                        sum((s.quantity <= IFNULL(st.amount,0))) hasStock
 						FROM vn.ticket t2
 							JOIN vn.sale s ON s.ticketFk = t2.id
 							JOIN vn.item i ON i.id = s.itemFk
 							JOIN vn.ticketState ts ON ts.ticketFk = t2.id
 							JOIN vn.state st ON st.id = ts.stateFk
 							LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
+			                LEFT JOIN tmp.stock st ON st.itemFk = s.itemFk
 						WHERE t2.shipped BETWEEN vDateToAdvance AND util.dayend(vDateToAdvance)
 							AND t2.warehouseFk = vWarehouseFk
 						GROUP BY t2.id) t2 ON t2.addressFk = t.addressFk
 			JOIN vn.sale s ON s.ticketFk = t.id
 			JOIN vn.item i ON i.id = s.itemFk
 			LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
-			LEFT JOIN tmp.stock st ON st.itemFk = s.itemFk
 		WHERE t.shipped BETWEEN vDateFuture AND util.dayend(vDateFuture)
 			AND t.warehouseFk = vWarehouseFk
 		GROUP BY t.id;
diff --git a/modules/ticket/front/advance/index.html b/modules/ticket/front/advance/index.html
index f63c0fbf79..bd274b7fbb 100644
--- a/modules/ticket/front/advance/index.html
+++ b/modules/ticket/front/advance/index.html
@@ -55,6 +55,9 @@
                         <th field="futureState">
                             <span translate>State</span>
                         </th>
+                        <th field="hasStock">
+                            <span>Stock</span>
+                        </th>
                         <th field="totalWithVat">
                             <span translate>Import</span>
                         </th>
@@ -73,9 +76,6 @@
                         <th field="liters">
                             <span translate>Liters</span>
                         </th>
-                        <th field="hasStock">
-                            <span>Stock</span>
-                        </th>
                         <th field="lines">
                             <span translate>Lines</span>
                         </th>
@@ -111,6 +111,7 @@
                                 {{::ticket.futureState | dashIfEmpty}}
                             </span>
                         </td>
+                        <td>{{::ticket.hasStock | dashIfEmpty}}</td>
                         <td>
                             <span class="chip {{$ctrl.totalPriceColor(ticket.futureTotalWithVat)}}">
                                 {{::(ticket.futureTotalWithVat ? ticket.futureTotalWithVat : 0) | currency: 'EUR': 2}}
@@ -136,7 +137,6 @@
                             </span>
                         </td>
                         <td>{{::ticket.liters | dashIfEmpty}}</td>
-                        <td>{{::ticket.hasStock | dashIfEmpty}}</td>
                         <td>{{::ticket.lines | dashIfEmpty}}</td>
                         <td>
                             <span class="chip {{$ctrl.totalPriceColor(ticket.totalWithVat)}}">

From b70557ee868fd7b1cafe21db29d4ede57572f899 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 14:20:08 +0100
Subject: [PATCH 11/16] refs #5131 agencies icon

---
 db/changes/230401/00-ticket_canAdvance.sql |  7 ++++++-
 modules/ticket/front/advance/index.html    | 15 ++++++++++++---
 modules/ticket/front/advance/index.js      |  6 ++++++
 modules/ticket/front/advance/locale/es.yml |  3 +++
 modules/ticket/front/advance/style.scss    |  7 +++++++
 5 files changed, 34 insertions(+), 4 deletions(-)
 create mode 100644 modules/ticket/front/advance/style.scss

diff --git a/db/changes/230401/00-ticket_canAdvance.sql b/db/changes/230401/00-ticket_canAdvance.sql
index 05200aa57c..2072259b12 100644
--- a/db/changes/230401/00-ticket_canAdvance.sql
+++ b/db/changes/230401/00-ticket_canAdvance.sql
@@ -65,7 +65,9 @@ BEGIN
 			t.shipped futureShipped,
 			t2.totalWithVat,
 			t.totalWithVat futureTotalWithVat,
-            t2.hasStock
+            t2.hasStock,
+            t2.agency,
+            am.name futureAgency
 		FROM vn.ticket t
 			JOIN vn.ticketState ts ON ts.ticketFk = t.id
 			JOIN vn.state st ON st.id = ts.stateFk
@@ -78,12 +80,14 @@ BEGIN
                         GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) ipt,
                         t2.shipped,
                         t2.totalWithVat,
+                        am.name agency,
                         sum((s.quantity <= IFNULL(st.amount,0))) hasStock
 						FROM vn.ticket t2
 							JOIN vn.sale s ON s.ticketFk = t2.id
 							JOIN vn.item i ON i.id = s.itemFk
 							JOIN vn.ticketState ts ON ts.ticketFk = t2.id
 							JOIN vn.state st ON st.id = ts.stateFk
+                            JOIN vn.agencyMode am ON t2.agencyModeFk = am.id
 							LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
 			                LEFT JOIN tmp.stock st ON st.itemFk = s.itemFk
 						WHERE t2.shipped BETWEEN vDateToAdvance AND util.dayend(vDateToAdvance)
@@ -91,6 +95,7 @@ BEGIN
 						GROUP BY t2.id) t2 ON t2.addressFk = t.addressFk
 			JOIN vn.sale s ON s.ticketFk = t.id
 			JOIN vn.item i ON i.id = s.itemFk
+            JOIN vn.agencyMode am ON t.agencyModeFk = am.id
 			LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
 		WHERE t.shipped BETWEEN vDateFuture AND util.dayend(vDateFuture)
 			AND t.warehouseFk = vWarehouseFk
diff --git a/modules/ticket/front/advance/index.html b/modules/ticket/front/advance/index.html
index bd274b7fbb..d82d8cc509 100644
--- a/modules/ticket/front/advance/index.html
+++ b/modules/ticket/front/advance/index.html
@@ -32,7 +32,7 @@
                 <thead>
                     <tr second-header>
                         <td></td>
-                        <th colspan="5" translate>Origin</th>
+                        <th colspan="6" translate>Origin</th>
                         <th colspan="8" translate>Destination</th>
                     </tr>
                     <tr>
@@ -43,13 +43,15 @@
                                 check-field="checked">
                             </vn-multi-check>
                         </th>
+                        <th shrink>
+                        </th>
                         <th field="futureId">
                             <span translate>ID</span>
                         </th>
                         <th field="futureShipped">
                             <span translate>Date</span>
                         </th>
-                        <th field="futureIpt" title="Item Packing Type">
+                        <th field="futureIpt" title="{{'Item Packing Type' | translate}}">
                             <span>IPT</span>
                         </th>
                         <th field="futureState">
@@ -67,7 +69,7 @@
                         <th field="shipped">
                             <span translate>Date</span>
                         </th>
-                        <th field="ipt" title="Item Packing Type">
+                        <th field="ipt" title="{{'Item Packing Type' | translate}}">
                             <span>IPT</span>
                         </th>
                         <th field="state">
@@ -92,6 +94,13 @@
                                 vn-click-stop>
                             </vn-check>
                         </td>
+                        <td>
+                            <vn-icon
+                                ng-show="ticket.futureAgency !== ticket.agency"
+                                icon="icon-agency-term"
+                                vn-tooltip="{{$ctrl.agencies(ticket.futureAgency, ticket.agency)}}">
+                            </vn-icon>
+                        </td>
                         <td>
                             <span
                                 ng-click="ticketDescriptor.show($event, ticket.futureId)"
diff --git a/modules/ticket/front/advance/index.js b/modules/ticket/front/advance/index.js
index b770440f18..ae299b00c7 100644
--- a/modules/ticket/front/advance/index.js
+++ b/modules/ticket/front/advance/index.js
@@ -1,5 +1,6 @@
 import ngModule from '../module';
 import Section from 'salix/components/section';
+import './style.scss';
 
 export default class Controller extends Section {
     constructor($element, $) {
@@ -128,6 +129,11 @@ export default class Controller extends Section {
         });
     }
 
+    agencies(futureAgency, agency) {
+        return this.$t(`Origin agency`, {agency: futureAgency}) +
+            '<br/>' + this.$t(`Destination agency`, {agency: agency});
+    }
+
     moveTicketsAdvance() {
         let ticketsToMove = [];
         this.checked.forEach(ticket => {
diff --git a/modules/ticket/front/advance/locale/es.yml b/modules/ticket/front/advance/locale/es.yml
index b444fbdd3b..da22cd4332 100644
--- a/modules/ticket/front/advance/locale/es.yml
+++ b/modules/ticket/front/advance/locale/es.yml
@@ -4,3 +4,6 @@ Advance confirmation: ¿Desea adelantar {{checked}} tickets?
 Success: Tickets movidos correctamente
 Lines: Líneas
 Liters: Litros
+Item Packing Type: Encajado
+Origin agency: "Agencia origen: {{agency}}"
+Destination agency: "Agencia destino: {{agency}}"
diff --git a/modules/ticket/front/advance/style.scss b/modules/ticket/front/advance/style.scss
new file mode 100644
index 0000000000..8fa9de4381
--- /dev/null
+++ b/modules/ticket/front/advance/style.scss
@@ -0,0 +1,7 @@
+@import "variables";
+
+vn-ticket-advance{
+    vn-icon {
+        color: #f7931e
+    }
+}

From 19d7e7e6102a97b849501d5c199e49e93309ea6a Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 14:23:40 +0100
Subject: [PATCH 12/16] refs #5131 totalWithVat order

---
 modules/ticket/front/advance/index.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/modules/ticket/front/advance/index.html b/modules/ticket/front/advance/index.html
index d82d8cc509..9f271b498c 100644
--- a/modules/ticket/front/advance/index.html
+++ b/modules/ticket/front/advance/index.html
@@ -60,7 +60,7 @@
                         <th field="hasStock">
                             <span>Stock</span>
                         </th>
-                        <th field="totalWithVat">
+                        <th field="futureTotalWithVat">
                             <span translate>Import</span>
                         </th>
                         <th separator field="id">
@@ -81,7 +81,7 @@
                         <th field="lines">
                             <span translate>Lines</span>
                         </th>
-                        <th field="futureTotalWithVat">
+                        <th field="totalWithVat">
                             <span translate>Import</span>
                         </th>
                     </tr>

From 3622eda589eaadd9fc6a5216c4fa00bbd4c48436 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 15:09:16 +0100
Subject: [PATCH 13/16] refs #5131 added lines liters to origin ticket

---
 db/changes/230401/00-ticket_canAdvance.sql | 18 +++++++++++-------
 modules/ticket/front/advance/index.html    | 12 ++++++++++--
 modules/ticket/front/advance/index.js      |  4 ++++
 3 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/db/changes/230401/00-ticket_canAdvance.sql b/db/changes/230401/00-ticket_canAdvance.sql
index 2072259b12..fd9d451bf5 100644
--- a/db/changes/230401/00-ticket_canAdvance.sql
+++ b/db/changes/230401/00-ticket_canAdvance.sql
@@ -59,15 +59,17 @@ BEGIN
 			GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) futureIpt,
 			t2.ipt,
 			t.workerFk,
-			CAST(sum(litros) AS DECIMAL(10,0)) liters,
-			CAST(count(*) AS DECIMAL(10,0)) `lines`,
+			CAST(SUM(litros) AS DECIMAL(10,0)) futureLiters,
+			CAST(COUNT(*) AS DECIMAL(10,0)) `futureLines`,
 			t2.shipped,
 			t.shipped futureShipped,
 			t2.totalWithVat,
 			t.totalWithVat futureTotalWithVat,
-            t2.hasStock,
             t2.agency,
-            am.name futureAgency
+            am.name futureAgency,
+            t2.lines,
+            t2.liters,
+            SUM((s.quantity <= IFNULL(st.amount,0))) hasStock
 		FROM vn.ticket t
 			JOIN vn.ticketState ts ON ts.ticketFk = t.id
 			JOIN vn.state st ON st.id = ts.stateFk
@@ -77,19 +79,20 @@ BEGIN
                         t2.addressFk,
                         st.isNotValidated,
                         st.name state,
-                        GROUP_CONCAT(DISTINCT ipt.code  ORDER BY ipt.code) ipt,
+                        GROUP_CONCAT(DISTINCT ipt.code ORDER BY ipt.code) ipt,
                         t2.shipped,
                         t2.totalWithVat,
                         am.name agency,
-                        sum((s.quantity <= IFNULL(st.amount,0))) hasStock
+                        CAST(SUM(litros) AS DECIMAL(10,0)) liters,
+                        CAST(COUNT(*) AS DECIMAL(10,0)) `lines`
 						FROM vn.ticket t2
+                            JOIN vn.saleVolume sv ON t2.id = sv.ticketFk
 							JOIN vn.sale s ON s.ticketFk = t2.id
 							JOIN vn.item i ON i.id = s.itemFk
 							JOIN vn.ticketState ts ON ts.ticketFk = t2.id
 							JOIN vn.state st ON st.id = ts.stateFk
                             JOIN vn.agencyMode am ON t2.agencyModeFk = am.id
 							LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
-			                LEFT JOIN tmp.stock st ON st.itemFk = s.itemFk
 						WHERE t2.shipped BETWEEN vDateToAdvance AND util.dayend(vDateToAdvance)
 							AND t2.warehouseFk = vWarehouseFk
 						GROUP BY t2.id) t2 ON t2.addressFk = t.addressFk
@@ -97,6 +100,7 @@ BEGIN
 			JOIN vn.item i ON i.id = s.itemFk
             JOIN vn.agencyMode am ON t.agencyModeFk = am.id
 			LEFT JOIN vn.itemPackingType ipt ON ipt.code = i.itemPackingTypeFk
+            LEFT JOIN tmp.stock st ON st.itemFk = s.itemFk
 		WHERE t.shipped BETWEEN vDateFuture AND util.dayend(vDateFuture)
 			AND t.warehouseFk = vWarehouseFk
 		GROUP BY t.id;
diff --git a/modules/ticket/front/advance/index.html b/modules/ticket/front/advance/index.html
index 9f271b498c..3dd52b9093 100644
--- a/modules/ticket/front/advance/index.html
+++ b/modules/ticket/front/advance/index.html
@@ -32,8 +32,8 @@
                 <thead>
                     <tr second-header>
                         <td></td>
-                        <th colspan="6" translate>Origin</th>
-                        <th colspan="8" translate>Destination</th>
+                        <th colspan="9" translate>Origin</th>
+                        <th colspan="7" translate>Destination</th>
                     </tr>
                     <tr>
                         <th shrink>
@@ -57,9 +57,15 @@
                         <th field="futureState">
                             <span translate>State</span>
                         </th>
+                        <th field="futureLiters">
+                            <span translate>Liters</span>
+                        </th>
                         <th field="hasStock">
                             <span>Stock</span>
                         </th>
+                        <th field="futureLines">
+                            <span translate>Lines</span>
+                        </th>
                         <th field="futureTotalWithVat">
                             <span translate>Import</span>
                         </th>
@@ -120,7 +126,9 @@
                                 {{::ticket.futureState | dashIfEmpty}}
                             </span>
                         </td>
+                        <td>{{::ticket.futureLiters | dashIfEmpty}}</td>
                         <td>{{::ticket.hasStock | dashIfEmpty}}</td>
+                        <td>{{::ticket.futureLines | dashIfEmpty}}</td>
                         <td>
                             <span class="chip {{$ctrl.totalPriceColor(ticket.futureTotalWithVat)}}">
                                 {{::(ticket.futureTotalWithVat ? ticket.futureTotalWithVat : 0) | currency: 'EUR': 2}}
diff --git a/modules/ticket/front/advance/index.js b/modules/ticket/front/advance/index.js
index ae299b00c7..a29d2db97d 100644
--- a/modules/ticket/front/advance/index.js
+++ b/modules/ticket/front/advance/index.js
@@ -163,6 +163,10 @@ export default class Controller extends Section {
             return {'liters': value};
         case 'lines':
             return {'lines': value};
+        case 'futureLiters':
+            return {'futureLiters': value};
+        case 'futureLines':
+            return {'futureLines': value};
         case 'ipt':
             return {'ipt': value};
         case 'futureIpt':

From 349829e5ed51a9a8eff91b5754fdda2bfa24f89f Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 15:29:00 +0100
Subject: [PATCH 14/16] refs #5131 fixed tests

---
 e2e/helpers/selectors.js                      |  4 +-
 e2e/paths/05-ticket/22_advance.spec.js        | 61 ++++++-------------
 .../ticket/specs/getTicketsAdvance.spec.js    | 14 ++---
 3 files changed, 27 insertions(+), 52 deletions(-)

diff --git a/e2e/helpers/selectors.js b/e2e/helpers/selectors.js
index a1412f4314..347396c946 100644
--- a/e2e/helpers/selectors.js
+++ b/e2e/helpers/selectors.js
@@ -778,8 +778,8 @@ export default {
         ipt: 'vn-autocomplete[label="Destination IPT"]',
         tableIpt: 'vn-autocomplete[name="ipt"]',
         tableFutureIpt: 'vn-autocomplete[name="futureIpt"]',
-        futureState: 'vn-autocomplete[label="Origin Grouped State"]',
-        state: 'vn-autocomplete[label="Destination Grouped State"]',
+        futureState: 'vn-check[label="Pending Origin"]',
+        state: 'vn-check[label="Pending Destination"]',
         warehouseFk: 'vn-autocomplete[label="Warehouse"]',
         tableButtonSearch: 'vn-button[vn-tooltip="Search"]',
         moveButton: 'vn-button[vn-tooltip="Advance tickets"]',
diff --git a/e2e/paths/05-ticket/22_advance.spec.js b/e2e/paths/05-ticket/22_advance.spec.js
index 6aaa815913..3a6234fe97 100644
--- a/e2e/paths/05-ticket/22_advance.spec.js
+++ b/e2e/paths/05-ticket/22_advance.spec.js
@@ -50,7 +50,7 @@ describe('Ticket Advance path', () => {
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
         await page.autocompleteSearch(selectors.ticketAdvance.ipt, 'Horizontal');
         await page.waitToClick(selectors.ticketAdvance.submit);
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 0);
+        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
 
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
         await page.clearInput(selectors.ticketAdvance.ipt);
@@ -62,7 +62,7 @@ describe('Ticket Advance path', () => {
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
         await page.autocompleteSearch(selectors.ticketAdvance.futureIpt, 'Horizontal');
         await page.waitToClick(selectors.ticketAdvance.submit);
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 0);
+        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
 
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
         await page.clearInput(selectors.ticketAdvance.futureIpt);
@@ -70,26 +70,36 @@ describe('Ticket Advance path', () => {
         await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
     });
 
-    it('should search with the origin grouped state', async() => {
+    it('should search with the origin pending state', async() => {
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.autocompleteSearch(selectors.ticketAdvance.futureState, 'Free');
+        await page.waitToClick(selectors.ticketAdvance.futureState);
         await page.waitToClick(selectors.ticketAdvance.submit);
         await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
 
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.clearInput(selectors.ticketAdvance.futureState);
+        await page.waitToClick(selectors.ticketAdvance.futureState);
+        await page.waitToClick(selectors.ticketAdvance.submit);
+        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 0);
+
+        await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
+        await page.waitToClick(selectors.ticketAdvance.futureState);
         await page.waitToClick(selectors.ticketAdvance.submit);
         await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
     });
 
     it('should search with the destination grouped state', async() => {
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.autocompleteSearch(selectors.ticketAdvance.state, 'Free');
+        await page.waitToClick(selectors.ticketAdvance.state);
         await page.waitToClick(selectors.ticketAdvance.submit);
         await page.waitForNumberOfElements(selectors.ticketAdvance.table, 0);
 
         await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.clearInput(selectors.ticketAdvance.state);
+        await page.waitToClick(selectors.ticketAdvance.state);
+        await page.waitToClick(selectors.ticketAdvance.submit);
+        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
+
+        await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
+        await page.waitToClick(selectors.ticketAdvance.state);
         await page.waitToClick(selectors.ticketAdvance.submit);
         await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
     });
@@ -116,42 +126,7 @@ describe('Ticket Advance path', () => {
         await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
     });
 
-    it('should search in smart-table with stock', async() => {
-        await page.waitToClick(selectors.ticketAdvance.tableButtonSearch);
-        await page.write(selectors.ticketAdvance.tableStock, '5');
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 2);
-
-        await page.waitToClick(selectors.ticketAdvance.tableButtonSearch);
-        await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.waitToClick(selectors.ticketAdvance.submit);
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
-    });
-
-    it('should search in smart-table with especified Lines', async() => {
-        await page.waitToClick(selectors.ticketAdvance.tableButtonSearch);
-        await page.write(selectors.ticketAdvance.tableLines, '0');
-        await page.keyboard.press('Enter');
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
-
-        await page.waitToClick(selectors.ticketAdvance.tableButtonSearch);
-        await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.waitToClick(selectors.ticketAdvance.submit);
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
-    });
-
-    it('should search in smart-table with especified Liters', async() => {
-        await page.waitToClick(selectors.ticketAdvance.tableButtonSearch);
-        await page.write(selectors.ticketAdvance.tableLiters, '0');
-        await page.keyboard.press('Enter');
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
-
-        await page.waitToClick(selectors.ticketAdvance.tableButtonSearch);
-        await page.waitToClick(selectors.ticketAdvance.openAdvancedSearchButton);
-        await page.waitToClick(selectors.ticketAdvance.submit);
-        await page.waitForNumberOfElements(selectors.ticketAdvance.table, 1);
-    });
-
-    it('should check the three last tickets and move to the future', async() => {
+    it('should check the one ticket and move to the present', async() => {
         await page.waitToClick(selectors.ticketAdvance.multiCheck);
         await page.waitToClick(selectors.ticketAdvance.moveButton);
         await page.waitToClick(selectors.ticketAdvance.acceptButton);
diff --git a/modules/ticket/back/methods/ticket/specs/getTicketsAdvance.spec.js b/modules/ticket/back/methods/ticket/specs/getTicketsAdvance.spec.js
index aab0531275..7d3bc174d9 100644
--- a/modules/ticket/back/methods/ticket/specs/getTicketsAdvance.spec.js
+++ b/modules/ticket/back/methods/ticket/specs/getTicketsAdvance.spec.js
@@ -29,7 +29,7 @@ describe('TicketFuture getTicketsAdvance()', () => {
         }
     });
 
-    it('should return the tickets matching the origin grouped state', async() => {
+    it('should return the tickets matching the origin pending state', async() => {
         const tx = await models.Ticket.beginTransaction({});
 
         try {
@@ -39,7 +39,7 @@ describe('TicketFuture getTicketsAdvance()', () => {
                 dateFuture: tomorrow,
                 dateToAdvance: today,
                 warehouseFk: 1,
-                state: 'OK'
+                futureIsNotValidated: true
             };
 
             const ctx = {req: {accessToken: {userId: 9}}, args};
@@ -54,7 +54,7 @@ describe('TicketFuture getTicketsAdvance()', () => {
         }
     });
 
-    it('should return the tickets matching the destination grouped state', async() => {
+    it('should return the tickets matching the destination pending state', async() => {
         const tx = await models.Ticket.beginTransaction({});
 
         try {
@@ -64,13 +64,13 @@ describe('TicketFuture getTicketsAdvance()', () => {
                 dateFuture: tomorrow,
                 dateToAdvance: today,
                 warehouseFk: 1,
-                futureState: 'FREE'
+                isNotValidated: true
             };
 
             const ctx = {req: {accessToken: {userId: 9}}, args};
             const result = await models.Ticket.getTicketsAdvance(ctx, options);
 
-            expect(result.length).toBeGreaterThan(0);
+            expect(result.length).toEqual(0);
 
             await tx.rollback();
         } catch (e) {
@@ -89,7 +89,7 @@ describe('TicketFuture getTicketsAdvance()', () => {
                 dateFuture: tomorrow,
                 dateToAdvance: today,
                 warehouseFk: 1,
-                ipt: 'Vertical'
+                ipt: 'V'
             };
 
             const ctx = {req: {accessToken: {userId: 9}}, args};
@@ -114,7 +114,7 @@ describe('TicketFuture getTicketsAdvance()', () => {
                 dateFuture: tomorrow,
                 dateToAdvance: today,
                 warehouseFk: 1,
-                tfIpt: 'Vertical'
+                tfIpt: 'V'
             };
 
             const ctx = {req: {accessToken: {userId: 9}}, args};

From a3da71996ac56793e24fed3762d596f434dcb531 Mon Sep 17 00:00:00 2001
From: alexandre <alexandre@verdnatura.es>
Date: Tue, 31 Jan 2023 15:36:51 +0100
Subject: [PATCH 15/16] refs #5131 changelog

---
 CHANGELOG.md | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 22efa1b28a..d103f31943 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,14 +9,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added
 - (Rutas) Al descargar varias facturas se comprime en un zip
--  (Trabajadores -> Nuevo trabajador)  Nueva sección
+- (Trabajadores -> Nuevo trabajador)  Nueva sección
+- (Tickets -> Adelantar tickets) Añadidos campos "líneas" y "litros" al ticket origen
+- (Tickets -> Adelantar tickets) Nuevo icono muestra cuando las agencias de los tickets origen/destino son distintas
 
 ### Changed
--
+- (Tickets -> Adelantar tickets) Cambiados selectores de estado por checks "Pendiente origen/destino"
+- (Tickets -> Adelantar tickets) Cambiado stock de destino a origen.
 
 ### Fixed
 - (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas.
 - (Tickets -> Añadir pago) Eliminado "null" en las referencias
+- (Tickets -> Adelantar tickets) Permite ordenar por importe
+- (Tickets -> Adelantar tickets) El filtrado por encajado muestra también los tickets sin tipo de encajado
 
 ## [2302.01] - 2023-01-26
 

From 4d8af54b1ee8cae5e67fe41838a86bfc95b0d9d8 Mon Sep 17 00:00:00 2001
From: joan <joan@verdnatura.es>
Date: Thu, 2 Feb 2023 09:21:12 +0100
Subject: [PATCH 16/16] Added version 23.06.01

---
 CHANGELOG.md               | 11 +++++++++++
 db/changes/230601/.gitkeep |  0
 package.json               |  2 +-
 3 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 db/changes/230601/.gitkeep

diff --git a/CHANGELOG.md b/CHANGELOG.md
index bf8cfd17cc..91ce818a83 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [2306.01] - 2023-02-23
+
+### Added
+-
+
+### Changed
+-
+
+### Fixed
+-
+
 ## [2304.01] - 2023-02-09
 
 ### Added
diff --git a/db/changes/230601/.gitkeep b/db/changes/230601/.gitkeep
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/package.json b/package.json
index 46b7d4ffcf..f9828624db 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
     "name": "salix-back",
-    "version": "23.04.01",
+    "version": "23.06.01",
     "author": "Verdnatura Levante SL",
     "description": "Salix backend",
     "license": "GPL-3.0",