From 23b8703afc86aba1dfb89a59d70b491a0eac28d8 Mon Sep 17 00:00:00 2001 From: carlossa Date: Wed, 17 Jan 2024 15:00:31 +0100 Subject: [PATCH 01/13] refs #6397 emailValidation --- .../back/methods/client/createWithUser.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/modules/client/back/methods/client/createWithUser.js b/modules/client/back/methods/client/createWithUser.js index 8e0d56f49..381723348 100644 --- a/modules/client/back/methods/client/createWithUser.js +++ b/modules/client/back/methods/client/createWithUser.js @@ -1,3 +1,5 @@ +const {error} = require('fancy-log'); + module.exports = function(Self) { Self.remoteMethod('createWithUser', { description: 'Creates both client and its web account', @@ -29,12 +31,15 @@ module.exports = function(Self) { myOptions.transaction = tx; } - const firstEmail = data.email ? data.email.split(',')[0] : null; - const user = { - name: data.userName, - email: firstEmail, - password: String(Math.random() * 100000000000000) - }; + if (data.email) { + const firstEmail = data.email ? data.email.split(',')[0] : null; + const user = { + name: data.userName, + email: firstEmail, + password: String(Math.random() * 100000000000000) + }; + } else + throw error; try { const account = await models.VnUser.create(user, myOptions); From 7cb7c7dace0dce41cca69d8caa0085c553821b03 Mon Sep 17 00:00:00 2001 From: carlossa Date: Thu, 18 Jan 2024 10:57:17 +0100 Subject: [PATCH 02/13] refs #6397 back validation --- loopback/locale/es.json | 7 ++++--- modules/client/back/methods/client/createWithUser.js | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 5555ef8b0..8af8f092c 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -72,7 +72,7 @@ "The secret can't be blank": "La contraseña no puede estar en blanco", "We weren't able to send this SMS": "No hemos podido enviar el SMS", "This client can't be invoiced": "Este cliente no puede ser facturado", - "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", + "You must provide the correction information to generate a corrective invoice": "Debes informar la información de corrección para generar una factura rectificativa", "This ticket can't be invoiced": "Este ticket no puede ser facturado", "You cannot add or modify services to an invoiced ticket": "No puedes añadir o modificar servicios a un ticket facturado", "This ticket can not be modified": "Este ticket no puede ser modificado", @@ -336,5 +336,6 @@ "Incorrect pin": "Pin incorrecto.", "You already have the mailAlias": "Ya tienes este alias de correo", "The alias cant be modified": "Este alias de correo no puede ser modificado", - "No tickets to invoice": "No hay tickets para facturar" -} + "No tickets to invoice": "No hay tickets para facturar", + "An email is necessary": "An email is necessary" +} \ No newline at end of file diff --git a/modules/client/back/methods/client/createWithUser.js b/modules/client/back/methods/client/createWithUser.js index 381723348..5d27b6b7f 100644 --- a/modules/client/back/methods/client/createWithUser.js +++ b/modules/client/back/methods/client/createWithUser.js @@ -1,4 +1,4 @@ -const {error} = require('fancy-log'); +const UserError = require('vn-loopback/util/user-error'); module.exports = function(Self) { Self.remoteMethod('createWithUser', { @@ -31,15 +31,16 @@ module.exports = function(Self) { myOptions.transaction = tx; } + let user; if (data.email) { const firstEmail = data.email ? data.email.split(',')[0] : null; - const user = { + user = { name: data.userName, email: firstEmail, password: String(Math.random() * 100000000000000) }; } else - throw error; + throw new UserError(`An email is necessary`); try { const account = await models.VnUser.create(user, myOptions); From e9c1f125a545317c0ad3e0b67e9b0ba964e65333 Mon Sep 17 00:00:00 2001 From: carlossa Date: Thu, 18 Jan 2024 11:43:05 +0100 Subject: [PATCH 03/13] refs #6397 test back --- .../client/specs/createWithUser.spec.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/modules/client/back/methods/client/specs/createWithUser.spec.js b/modules/client/back/methods/client/specs/createWithUser.spec.js index 03106acc1..4191400e3 100644 --- a/modules/client/back/methods/client/specs/createWithUser.spec.js +++ b/modules/client/back/methods/client/specs/createWithUser.spec.js @@ -14,6 +14,8 @@ describe('Client Create', () => { provinceFk: 1 }; + const errorMail = `An email is necessary`; + beforeAll(async() => { const activeCtx = { accessToken: {userId: 9}, @@ -48,6 +50,31 @@ describe('Client Create', () => { } }); + it('should not create a new account', async() => { + const tx = await models.Client.beginTransaction({}); + + try { + const options = {transaction: tx}; + + const client = await models.Client.createWithUser(newAccount, options); + const account = await models.VnUser.findOne({where: {name: newAccount.userName}}, options); + + expect(account.name).toEqual(newAccount.userName); + expect(client.id).toEqual(account.id); + expect(client.name).toEqual(newAccount.name); + expect(client.fi).toEqual(newAccount.fi); + expect(client.socialName).toEqual(newAccount.socialName); + expect(client.businessTypeFk).toEqual(newAccount.businessTypeFk); + + await tx.rollback(); + } catch (e) { + await tx.rollback(); + throw e; + } + + expect(errorMail).toEqual(`An email is necessary`); + }); + it('should create a new account', async() => { const tx = await models.Client.beginTransaction({}); From 391f41888333a0c6af0595c4e101f56502c581e5 Mon Sep 17 00:00:00 2001 From: carlossa Date: Fri, 19 Jan 2024 14:18:17 +0100 Subject: [PATCH 04/13] refs #6397 fix test back --- .../client/specs/createWithUser.spec.js | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/client/back/methods/client/specs/createWithUser.spec.js b/modules/client/back/methods/client/specs/createWithUser.spec.js index 4191400e3..af9b0aa03 100644 --- a/modules/client/back/methods/client/specs/createWithUser.spec.js +++ b/modules/client/back/methods/client/specs/createWithUser.spec.js @@ -13,8 +13,16 @@ describe('Client Create', () => { businessTypeFk: 'florist', provinceFk: 1 }; - - const errorMail = `An email is necessary`; + const newAccount2 = { + userName: 'Deadpool', + fi: '16195279J', + name: 'Wade', + socialName: 'DEADPOOL MARVEL', + street: 'WALL STREET', + city: 'New York', + businessTypeFk: 'florist', + provinceFk: 1 + }; beforeAll(async() => { const activeCtx = { @@ -53,26 +61,18 @@ describe('Client Create', () => { it('should not create a new account', async() => { const tx = await models.Client.beginTransaction({}); + let error; try { const options = {transaction: tx}; - - const client = await models.Client.createWithUser(newAccount, options); - const account = await models.VnUser.findOne({where: {name: newAccount.userName}}, options); - - expect(account.name).toEqual(newAccount.userName); - expect(client.id).toEqual(account.id); - expect(client.name).toEqual(newAccount.name); - expect(client.fi).toEqual(newAccount.fi); - expect(client.socialName).toEqual(newAccount.socialName); - expect(client.businessTypeFk).toEqual(newAccount.businessTypeFk); + await models.Client.createWithUser(newAccount2, options); await tx.rollback(); } catch (e) { - await tx.rollback(); - throw e; - } + error = e.message; - expect(errorMail).toEqual(`An email is necessary`); + expect(error).toEqual(`An email is necessary`); + await tx.rollback(); + } }); it('should create a new account', async() => { From 73e1b5234856c855a7e537dffab5df2cb7ca0df8 Mon Sep 17 00:00:00 2001 From: carlossa Date: Fri, 19 Jan 2024 14:53:56 +0100 Subject: [PATCH 05/13] refs #6397 refactor --- .../back/methods/client/createWithUser.js | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/modules/client/back/methods/client/createWithUser.js b/modules/client/back/methods/client/createWithUser.js index 5d27b6b7f..06b885ab8 100644 --- a/modules/client/back/methods/client/createWithUser.js +++ b/modules/client/back/methods/client/createWithUser.js @@ -31,16 +31,16 @@ module.exports = function(Self) { myOptions.transaction = tx; } - let user; - if (data.email) { - const firstEmail = data.email ? data.email.split(',')[0] : null; - user = { - name: data.userName, - email: firstEmail, - password: String(Math.random() * 100000000000000) - }; - } else - throw new UserError(`An email is necessary`); + if (!data.email) + throw new UserError('An email is necessary'); + + const firstEmail = data.email.split(',')[0]; + + const user = { + name: data.userName, + email: firstEmail, + password: String(Math.random() * 100000000000000) + }; try { const account = await models.VnUser.create(user, myOptions); From cf03982d0cbbc62b86777302563e86fd511b5d1b Mon Sep 17 00:00:00 2001 From: carlossa Date: Mon, 22 Jan 2024 10:20:10 +0100 Subject: [PATCH 06/13] refs #6397 trad tback --- loopback/locale/es.json | 4 ++-- .../client/back/methods/client/specs/createWithUser.spec.js | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 8af8f092c..0c401c814 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -337,5 +337,5 @@ "You already have the mailAlias": "Ya tienes este alias de correo", "The alias cant be modified": "Este alias de correo no puede ser modificado", "No tickets to invoice": "No hay tickets para facturar", - "An email is necessary": "An email is necessary" -} \ No newline at end of file + "An email is necessary": "Es necesario un email" +} diff --git a/modules/client/back/methods/client/specs/createWithUser.spec.js b/modules/client/back/methods/client/specs/createWithUser.spec.js index af9b0aa03..cab354ede 100644 --- a/modules/client/back/methods/client/specs/createWithUser.spec.js +++ b/modules/client/back/methods/client/specs/createWithUser.spec.js @@ -70,9 +70,10 @@ describe('Client Create', () => { } catch (e) { error = e.message; - expect(error).toEqual(`An email is necessary`); await tx.rollback(); } + + expect(error).toEqual(`An email is necessary`); }); it('should create a new account', async() => { From 04f1a03d4dd10f327365991c04701461a4bbac93 Mon Sep 17 00:00:00 2001 From: carlossa Date: Mon, 29 Jan 2024 14:08:43 +0100 Subject: [PATCH 07/13] refs #6397 fix back --- .../methods/client/specs/createWithUser.spec.js | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/modules/client/back/methods/client/specs/createWithUser.spec.js b/modules/client/back/methods/client/specs/createWithUser.spec.js index cab354ede..074cb289a 100644 --- a/modules/client/back/methods/client/specs/createWithUser.spec.js +++ b/modules/client/back/methods/client/specs/createWithUser.spec.js @@ -13,16 +13,8 @@ describe('Client Create', () => { businessTypeFk: 'florist', provinceFk: 1 }; - const newAccount2 = { - userName: 'Deadpool', - fi: '16195279J', - name: 'Wade', - socialName: 'DEADPOOL MARVEL', - street: 'WALL STREET', - city: 'New York', - businessTypeFk: 'florist', - provinceFk: 1 - }; + const newAccountWithoutEmail = JSON.parse(JSON.stringify(newAccount)); + delete newAccountWithoutEmail.email; beforeAll(async() => { const activeCtx = { @@ -64,7 +56,7 @@ describe('Client Create', () => { let error; try { const options = {transaction: tx}; - await models.Client.createWithUser(newAccount2, options); + await models.Client.createWithUser(newAccountWithoutEmail, options); await tx.rollback(); } catch (e) { From f0d4ae604b0d9048974b22f84ac5720e41a96bd1 Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 30 Jan 2024 10:03:21 +0100 Subject: [PATCH 08/13] feat: #6567 sale_replaceItem adaptado a code --- db/routines/vn/procedures/sale_replaceItem.sql | 12 +++--------- db/versions/10820-limeAspidistra/00-grants.sql | 11 +---------- db/versions/10850-whiteChico/00-firstScript.sql | 2 ++ 3 files changed, 6 insertions(+), 19 deletions(-) create mode 100644 db/versions/10850-whiteChico/00-firstScript.sql diff --git a/db/routines/vn/procedures/sale_replaceItem.sql b/db/routines/vn/procedures/sale_replaceItem.sql index 1edad1983..1415f188f 100644 --- a/db/routines/vn/procedures/sale_replaceItem.sql +++ b/db/routines/vn/procedures/sale_replaceItem.sql @@ -23,9 +23,6 @@ BEGIN DECLARE vOldPrice DECIMAL(10,2); DECLARE vOption INT DEFAULT NULL; DECLARE vNewSaleFk INT; - DECLARE vChangePrice INT DEFAULT 1; - DECLARE vBuyerDiscount INT DEFAULT 4; - DECLARE vManaDiscount INT DEFAULT 3; DECLARE vForceToGrouping INT DEFAULT 1; DECLARE vForceToPacking INT DEFAULT 2; DECLARE vFinalPrice DECIMAL(10,2); @@ -85,16 +82,13 @@ BEGIN IF vNewPrice IS NULL THEN CALL util.throw('price retrieval failed'); END IF; + IF vNewPrice > vOldPrice THEN SET vFinalPrice = vOldPrice; - IF worker_isInDepartment('vt') THEN - SET vOption = vManaDiscount; - ELSE - SET vOption = vBuyerDiscount; - END IF; + SET vOption = 'substitution'; ELSE SET vFinalPrice = vNewPrice; - SET vOption = vChangePrice; + SET vOption = 'renewPrices'; END IF; START TRANSACTION; diff --git a/db/versions/10820-limeAspidistra/00-grants.sql b/db/versions/10820-limeAspidistra/00-grants.sql index 5e85236d4..cd9aa341b 100644 --- a/db/versions/10820-limeAspidistra/00-grants.sql +++ b/db/versions/10820-limeAspidistra/00-grants.sql @@ -1,14 +1,5 @@ -CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_replaceItem`() BEGIN END; -GRANT EXECUTE ON PROCEDURE `vn`.`sale_replaceItem` TO `employee`; -DELIMITER $$ -CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`worker_isInDepartment`() - RETURNS int(11) - DETERMINISTIC -BEGIN - RETURN 1; -END$$ -DELIMITER ; +GRANT EXECUTE ON PROCEDURE `vn`.`sale_replaceItem` TO `employee`; GRANT EXECUTE ON FUNCTION `vn`.`worker_isInDepartment` TO `employee`; FLUSH PRIVILEGES; diff --git a/db/versions/10850-whiteChico/00-firstScript.sql b/db/versions/10850-whiteChico/00-firstScript.sql new file mode 100644 index 000000000..077190831 --- /dev/null +++ b/db/versions/10850-whiteChico/00-firstScript.sql @@ -0,0 +1,2 @@ +INSERT IGNORE INTO vn.component (id, name, typeFk, classRate, tax, isRenewable, code, isRequired) +VALUES(49, 'sustitución', 4, NULL, NULL, 1, 'substitution', FALSE); From 4eb5efa2c981c1e70be9846ea70b3611fe2d34a3 Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 30 Jan 2024 10:52:33 +0100 Subject: [PATCH 09/13] feat: #6567 con varchar --- db/routines/vn/procedures/sale_replaceItem.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/routines/vn/procedures/sale_replaceItem.sql b/db/routines/vn/procedures/sale_replaceItem.sql index 1415f188f..aff34d5e9 100644 --- a/db/routines/vn/procedures/sale_replaceItem.sql +++ b/db/routines/vn/procedures/sale_replaceItem.sql @@ -21,7 +21,7 @@ BEGIN DECLARE vAgencyModeFk INT; DECLARE vNewPrice DECIMAL(10,2); DECLARE vOldPrice DECIMAL(10,2); - DECLARE vOption INT DEFAULT NULL; + DECLARE vOption VARCHAR(255); DECLARE vNewSaleFk INT; DECLARE vForceToGrouping INT DEFAULT 1; DECLARE vForceToPacking INT DEFAULT 2; From 582359f058487be31ff0ba1e9291bf5e7e1322ff Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 30 Jan 2024 11:04:51 +0100 Subject: [PATCH 10/13] feat: #6567 restaura permisos --- db/versions/10820-limeAspidistra/00-grants.sql | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/db/versions/10820-limeAspidistra/00-grants.sql b/db/versions/10820-limeAspidistra/00-grants.sql index cd9aa341b..5e85236d4 100644 --- a/db/versions/10820-limeAspidistra/00-grants.sql +++ b/db/versions/10820-limeAspidistra/00-grants.sql @@ -1,5 +1,14 @@ - +CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`sale_replaceItem`() BEGIN END; GRANT EXECUTE ON PROCEDURE `vn`.`sale_replaceItem` TO `employee`; +DELIMITER $$ +CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`worker_isInDepartment`() + RETURNS int(11) + DETERMINISTIC +BEGIN + RETURN 1; +END$$ +DELIMITER ; + GRANT EXECUTE ON FUNCTION `vn`.`worker_isInDepartment` TO `employee`; FLUSH PRIVILEGES; From 3d6797d3ba334cf63d2af38fbc22944c522a4a55 Mon Sep 17 00:00:00 2001 From: jgallego Date: Tue, 30 Jan 2024 11:06:14 +0100 Subject: [PATCH 11/13] feat: #6567 sin fixtures --- db/versions/10850-whiteChico/00-firstScript.sql | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 db/versions/10850-whiteChico/00-firstScript.sql diff --git a/db/versions/10850-whiteChico/00-firstScript.sql b/db/versions/10850-whiteChico/00-firstScript.sql deleted file mode 100644 index 077190831..000000000 --- a/db/versions/10850-whiteChico/00-firstScript.sql +++ /dev/null @@ -1,2 +0,0 @@ -INSERT IGNORE INTO vn.component (id, name, typeFk, classRate, tax, isRenewable, code, isRequired) -VALUES(49, 'sustitución', 4, NULL, NULL, 1, 'substitution', FALSE); From 39f0e8b4317fd09f77d11b3adad1344591287b3d Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 1 Feb 2024 14:22:22 +0100 Subject: [PATCH 12/13] refs #6783 deploy: init version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46706cafd..17c483619 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "salix-back", - "version": "24.6.0", + "version": "24.8.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "salix-back", - "version": "24.6.0", + "version": "24.8.0", "license": "GPL-3.0", "dependencies": { "axios": "^1.2.2", diff --git a/package.json b/package.json index 09274bb53..39f99225a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "salix-back", - "version": "24.6.0", + "version": "24.8.0", "author": "Verdnatura Levante SL", "description": "Salix backend", "license": "GPL-3.0", From 0852d21ee6961cac86ed7906b3e330fbdd12628f Mon Sep 17 00:00:00 2001 From: alexm Date: Thu, 1 Feb 2024 14:23:51 +0100 Subject: [PATCH 13/13] refs #6783 deploy: init version --- CHANGELOG.md | 290 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 170 insertions(+), 120 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 29df75827..f48811338 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,299 +5,349 @@ 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). +## [2408.01] - 2024-02-22 + +### Added + +### Changed + +### Fixed + ## [2406.01] - 2024-02-08 ### Added -### Changed -### Fixed +### Changed + +### Fixed ## [2404.01] - 2024-01-25 ### Added -### Changed -### Fixed +### Changed + +### Fixed ## [2402.01] - 2024-01-11 ### Added + ### Changed + ### Fixed ## [2400.01] - 2024-01-04 ### Added + ### Changed + ### Fixed ## [2350.01] - 2023-12-14 ### Características Añadidas 🆕 -- **Tickets → Expediciones:** Añadido soporte para Viaexpress +- **Tickets → Expediciones:** Añadido soporte para Viaexpress ## [2348.01] - 2023-11-30 ### Características Añadidas 🆕 -- **Tickets → Adelantar:** Permite mover lineas sin generar negativos -- **Tickets → Adelantar:** Permite modificar la fecha de los tickets -- **Trabajadores → Notificaciones:** Nueva sección (lilium) + +- **Tickets → Adelantar:** Permite mover lineas sin generar negativos +- **Tickets → Adelantar:** Permite modificar la fecha de los tickets +- **Trabajadores → Notificaciones:** Nueva sección (lilium) ### Correcciones 🛠️ -- **Tickets → RocketChat:** Arreglada detección de cambios +- **Tickets → RocketChat:** Arreglada detección de cambios ## [2346.01] - 2023-11-16 ### Added -### Changed -### Fixed +### Changed + +### Fixed ## [2342.01] - 2023-11-02 ### Added -- (Usuarios -> Foto) Se muestra la foto del trabajador -### Fixed -- (Usuarios -> Historial) Abre el descriptor del usuario correctamente +- (Usuarios -> Foto) Se muestra la foto del trabajador + +### Fixed + +- (Usuarios -> Historial) Abre el descriptor del usuario correctamente ## [2340.01] - 2023-10-05 ## [2338.01] - 2023-09-21 ### Added -- (Ticket -> Servicios) Se pueden abonar servicios -- (Facturas -> Datos básicos) Muestra valores por defecto -- (Facturas -> Borrado) Notificación al borrar un asiento ya enlazado en Sage + +- (Ticket -> Servicios) Se pueden abonar servicios +- (Facturas -> Datos básicos) Muestra valores por defecto +- (Facturas -> Borrado) Notificación al borrar un asiento ya enlazado en Sage + ### Changed -- (Trabajadores -> Calendario) Icono de check arreglado cuando pulsas un tipo de dia + +- (Trabajadores -> Calendario) Icono de check arreglado cuando pulsas un tipo de dia ## [2336.01] - 2023-09-07 ## [2334.01] - 2023-08-24 ### Added -- (General -> Errores) Botón para enviar cau con los datos del error +- (General -> Errores) Botón para enviar cau con los datos del error ## [2332.01] - 2023-08-10 ### Added -- (Trabajadores -> Gestión documental) Soporte para Docuware -- (General -> Agencia) Soporte para Viaexpress -- (Tickets -> SMS) Nueva sección en Lilium + +- (Trabajadores -> Gestión documental) Soporte para Docuware +- (General -> Agencia) Soporte para Viaexpress +- (Tickets -> SMS) Nueva sección en Lilium ### Changed -- (General -> Tickets) Devuelve el motivo por el cual no es editable -- (Desplegables -> Trabajadores) Mejorados -- (General -> Clientes) Razón social y dirección en mayúsculas + +- (General -> Tickets) Devuelve el motivo por el cual no es editable +- (Desplegables -> Trabajadores) Mejorados +- (General -> Clientes) Razón social y dirección en mayúsculas ### Fixed -- (Clientes -> SMS) Al pasar el ratón por encima muestra el mensaje completo +- (Clientes -> SMS) Al pasar el ratón por encima muestra el mensaje completo ## [2330.01] - 2023-07-27 ### Added -- (Artículos -> Vista Previa) Añadido campo "Plástico reciclado" -- (Rutas -> Troncales) Nueva sección -- (Tickets -> Opciones) Opción establecer peso -- (Clientes -> SMS) Nueva sección + +- (Artículos -> Vista Previa) Añadido campo "Plástico reciclado" +- (Rutas -> Troncales) Nueva sección +- (Tickets -> Opciones) Opción establecer peso +- (Clientes -> SMS) Nueva sección ### Changed -- (General -> Iconos) Añadidos nuevos iconos -- (Clientes -> Razón social) Permite crear clientes con la misma razón social según el país +- (General -> Iconos) Añadidos nuevos iconos +- (Clientes -> Razón social) Permite crear clientes con la misma razón social según el país ## [2328.01] - 2023-07-13 ### Added -- (Clientes -> Morosos) Añadida columna "es trabajador" -- (Trabajadores -> Departamentos) Nueva sección -- (Trabajadores -> Departamentos) Añadido listado de Trabajadores por departamento -- (Trabajadores -> Departamentos) Añadido características de departamento e información + +- (Clientes -> Morosos) Añadida columna "es trabajador" +- (Trabajadores -> Departamentos) Nueva sección +- (Trabajadores -> Departamentos) Añadido listado de Trabajadores por departamento +- (Trabajadores -> Departamentos) Añadido características de departamento e información ### Changed ### Fixed -- (Trabajadores -> Departamentos) Arreglado búscador +- (Trabajadores -> Departamentos) Arreglado búscador ## [2326.01] - 2023-06-29 ### Added -- (Entradas -> Correo) Al cambiar el tipo de cambio enviará un correo a las personas designadas -- (General -> Históricos) Botón para ver el estado del registro en cada punto -- (General -> Históricos) Al filtar por registro se muestra todo el histórial desde que fue creado -- (Tickets -> Índice) Permite enviar varios albaranes a Docuware + +- (Entradas -> Correo) Al cambiar el tipo de cambio enviará un correo a las personas designadas +- (General -> Históricos) Botón para ver el estado del registro en cada punto +- (General -> Históricos) Al filtar por registro se muestra todo el histórial desde que fue creado +- (Tickets -> Índice) Permite enviar varios albaranes a Docuware ### Changed -- (General -> Históricos) Los registros se muestran agrupados por usuario y entidad -- (Facturas -> Facturación global) Optimizada, generación de PDFs y notificaciones en paralelo + +- (General -> Históricos) Los registros se muestran agrupados por usuario y entidad +- (Facturas -> Facturación global) Optimizada, generación de PDFs y notificaciones en paralelo ### Fixed -- (General -> Históricos) Duplicidades eliminadas -- (Facturas -> Facturación global) Solucionados fallos que paran el proceso + +- (General -> Históricos) Duplicidades eliminadas +- (Facturas -> Facturación global) Solucionados fallos que paran el proceso ## [2324.01] - 2023-06-15 ### Added -- (Tickets -> Abono) Al abonar permite crear el ticket abono con almacén o sin almmacén -- (General -> Desplegables) Mejorada eficiencia de carga de datos -- (General -> Históricos) Ahora, ademas de los ids, se muestra la descripión de los atributos -- (General -> Históricos) Botón para hacer más ágil mostrar sólo los cambios en un registro -- (General -> Históricos) Filtro por cambios + +- (Tickets -> Abono) Al abonar permite crear el ticket abono con almacén o sin almmacén +- (General -> Desplegables) Mejorada eficiencia de carga de datos +- (General -> Históricos) Ahora, ademas de los ids, se muestra la descripión de los atributos +- (General -> Históricos) Botón para hacer más ágil mostrar sólo los cambios en un registro +- (General -> Históricos) Filtro por cambios ### Changed -- (General -> Permisos) Mejorada seguridad -- (General -> Históricos) Elementos de la interfaz reorganizados para hacerla más ágil e intuitiva + +- (General -> Permisos) Mejorada seguridad +- (General -> Históricos) Elementos de la interfaz reorganizados para hacerla más ágil e intuitiva ### Fixed + - - - ## [2322.01] - 2023-06-01 ### Added -- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente -- (Artículos -> Histórico) Filtro para mostrar lo anterior al inventario -- (Trabajadores -> Nuevo trabajador) Permite elegir el método de pago + +- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente +- (Artículos -> Histórico) Filtro para mostrar lo anterior al inventario +- (Trabajadores -> Nuevo trabajador) Permite elegir el método de pago ### Changed -- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador' -- (Tickets -> Expediciones) Interfaz mejorada y contador añadido + +- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador' +- (Tickets -> Expediciones) Interfaz mejorada y contador añadido + ### Fixed -- (Tickets -> Líneas) Se permite hacer split de líneas al mismo ticket -- (Tickets -> Cambiar estado) Ahora muestra la lista completa de todos los estados - +- (Tickets -> Líneas) Se permite hacer split de líneas al mismo ticket +- (Tickets -> Cambiar estado) Ahora muestra la lista completa de todos los estados ## [2320.01] - 2023-05-25 ### Added -- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente +- (Tickets -> Crear Factura) Al facturar se envia automáticamente el pdf al cliente ### Changed -- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador' + +- (Trabajadores -> Nuevo trabajador) Los clientes se crean sin 'TR' pero se añade tipo de negocio 'Trabajador' ### Fixed + - - - ## [2318.01] - 2023-05-08 ### Added -- (Usuarios -> Histórico) Nueva sección -- (Roles -> Histórico) Nueva sección -- (Trabajadores -> Dar de alta) Permite elegir el método de pago + +- (Usuarios -> Histórico) Nueva sección +- (Roles -> Histórico) Nueva sección +- (Trabajadores -> Dar de alta) Permite elegir el método de pago ### Changed -- (Artículo -> Precio fijado) Modificado el buscador superior por uno lateral -- (Trabajadores -> Dar de alta) Quitada obligatoriedad del iban + +- (Artículo -> Precio fijado) Modificado el buscador superior por uno lateral +- (Trabajadores -> Dar de alta) Quitada obligatoriedad del iban ### Fixed -- (Ticket -> Boxing) Arreglado selección de horas -- (Cesta -> Índice) Optimizada búsqueda - +- (Ticket -> Boxing) Arreglado selección de horas +- (Cesta -> Índice) Optimizada búsqueda ## [2314.01] - 2023-04-20 ### Added -- (Clientes -> Morosos) Ahora se puede filtrar por las columnas "Desde" y "Fecha Ú. O.". También se envia un email al comercial cuando se añade una nota. -- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia -- (Facturas recibidas -> Bases negativas) Nueva sección + +- (Clientes -> Morosos) Ahora se puede filtrar por las columnas "Desde" y "Fecha Ú. O.". También se envia un email al comercial cuando se añade una nota. +- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia +- (Facturas recibidas -> Bases negativas) Nueva sección ### Fixed -- (Clientes -> Morosos) Ahora se mantienen los elementos seleccionados al hacer sroll. + +- (Clientes -> Morosos) Ahora se mantienen los elementos seleccionados al hacer sroll. ## [2312.01] - 2023-04-06 ### Added -- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia + +- (Monitor tickets) Muestra un icono al lado de la zona, si el ticket es frágil y se envía por agencia ### Changed -- (Monitor tickets) Cuando se filtra por 'Pendiente' ya no muestra los estados de 'Previa' -- (Envíos -> Extra comunitarios) Se agrupan las entradas del mismo travel. Añadidos campos Referencia y Importe. -- (Envíos -> Índice) Cambiado el buscador superior por uno lateral + +- (Monitor tickets) Cuando se filtra por 'Pendiente' ya no muestra los estados de 'Previa' +- (Envíos -> Extra comunitarios) Se agrupan las entradas del mismo travel. Añadidos campos Referencia y Importe. +- (Envíos -> Índice) Cambiado el buscador superior por uno lateral ## [2310.01] - 2023-03-23 ### Added -- (Trabajadores -> Control de horario) Ahora se puede confirmar/no confirmar el registro horario de cada semana desde esta sección + +- (Trabajadores -> Control de horario) Ahora se puede confirmar/no confirmar el registro horario de cada semana desde esta sección ### Fixed -- (Clientes -> Listado extendido) Resuelto error al filtrar por clientes inactivos desde la columna "Activo" -- (General) Al pasar el ratón por encima del icono de "Borrar" en un campo, se hacía más grande afectando a la interfaz + +- (Clientes -> Listado extendido) Resuelto error al filtrar por clientes inactivos desde la columna "Activo" +- (General) Al pasar el ratón por encima del icono de "Borrar" en un campo, se hacía más grande afectando a la interfaz ## [2308.01] - 2023-03-09 ### Added -- (Proveedores -> Datos fiscales) Añadido checkbox 'Vies' -- (Client -> Descriptor) Nuevo icono $ con barrotes para los clientes con impago -- (Trabajador -> Datos Básicos) Añadido nuevo campo Taquilla -- (Trabajador -> PDA) Nueva sección + +- (Proveedores -> Datos fiscales) Añadido checkbox 'Vies' +- (Client -> Descriptor) Nuevo icono $ con barrotes para los clientes con impago +- (Trabajador -> Datos Básicos) Añadido nuevo campo Taquilla +- (Trabajador -> PDA) Nueva sección ### Changed -- (Ticket -> Borrar ticket) Restringido el borrado de tickets con abono + +- (Ticket -> Borrar ticket) Restringido el borrado de tickets con abono ## [2306.01] - 2023-02-23 ### Added -- (Tickets -> Datos Básicos) Mensaje de confirmación al intentar generar tickets con negativos -- (Artículos) El visible y disponible se calcula a partir de un almacén diferente dependiendo de la sección en la que te encuentres. Se ha añadido un icono que informa sobre a partir de que almacén se esta calculando. + +- (Tickets -> Datos Básicos) Mensaje de confirmación al intentar generar tickets con negativos +- (Artículos) El visible y disponible se calcula a partir de un almacén diferente dependiendo de la sección en la que te encuentres. Se ha añadido un icono que informa sobre a partir de que almacén se esta calculando. ### Changed -- (General -> Inicio) Ahora permite recuperar la contraseña tanto con el correo de recuperación como el usuario + +- (General -> Inicio) Ahora permite recuperar la contraseña tanto con el correo de recuperación como el usuario ### Fixed -- (Monitor de tickets) Cuando ordenas por columna, ya no se queda deshabilitado el botón de 'Actualizar' -- (Zone -> Días de entrega) Al hacer click en un día, muestra correctamente las zonas -- (Artículos) El disponible en la vista previa se muestra correctamente + +- (Monitor de tickets) Cuando ordenas por columna, ya no se queda deshabilitado el botón de 'Actualizar' +- (Zone -> Días de entrega) Al hacer click en un día, muestra correctamente las zonas +- (Artículos) El disponible en la vista previa se muestra correctamente ## [2304.01] - 2023-02-09 ### Added -- (Rutas) Al descargar varias facturas se comprime en un zip -- (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 + +- (Rutas) Al descargar varias facturas se comprime en un zip +- (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 -- (Entradas -> Compras) Cambiados los campos "Precio Grouping/Packing" por "PVP" y "Precio" por "Coste" -- (Artículos -> Últimas entradas) Cambiados los campos "P.P.U." y "P.P.P." por "PVP" -- (Rutas -> Sumario/Tickets) Actualizados campos de los tickets -- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos -- (Tickets -> Adelantar tickets) Cambiados selectores de estado por checks "Pendiente origen/destino" -- (Tickets -> Adelantar tickets) Cambiado stock de destino a origen. + +- (Entradas -> Compras) Cambiados los campos "Precio Grouping/Packing" por "PVP" y "Precio" por "Coste" +- (Artículos -> Últimas entradas) Cambiados los campos "P.P.U." y "P.P.P." por "PVP" +- (Rutas -> Sumario/Tickets) Actualizados campos de los tickets +- (Proveedores -> Crear/Editar) Permite añadir Proveedores con la misma razón social pero con países distintos +- (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. -- (Cliente -> Datos Fiscales) No se permite seleccionar 'Notificar vía e-mail' a los clientes sin e-mail -- (Tickets -> Datos básicos) Permite guardar la hora de envío -- (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 + +- (Artículos -> Etiquetas) Permite intercambiar la relevancia entre dos etiquetas. +- (Cliente -> Datos Fiscales) No se permite seleccionar 'Notificar vía e-mail' a los clientes sin e-mail +- (Tickets -> Datos básicos) Permite guardar la hora de envío +- (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 ### Added -- (General -> Inicio) Permite recuperar la contraseña -- (Tickets -> Opciones) Subir albarán a Docuware -- (Tickets -> Opciones) Enviar correo con PDF de Docuware -- (Artículos -> Datos Básicos) Añadido campo Unidades/Caja + +- (General -> Inicio) Permite recuperar la contraseña +- (Tickets -> Opciones) Subir albarán a Docuware +- (Tickets -> Opciones) Enviar correo con PDF de Docuware +- (Artículos -> Datos Básicos) Añadido campo Unidades/Caja ### Changed -- (Reclamaciones -> Descriptor) Cambiado el campo Agencia por Zona -- (Tickets -> Líneas preparadas) Actualizada sección para que sea más visual + +- (Reclamaciones -> Descriptor) Cambiado el campo Agencia por Zona +- (Tickets -> Líneas preparadas) Actualizada sección para que sea más visual ### Fixed -- (General) Al utilizar el traductor de Google se descuadraban los iconos + +- (General) Al utilizar el traductor de Google se descuadraban los iconos ### Removed -- (Tickets -> Control clientes) Eliminada sección + +- (Tickets -> Control clientes) Eliminada sección