diff --git a/Jenkinsfile b/Jenkinsfile
index 06addc9408..8f836e8b89 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -8,6 +8,7 @@ def RUN_BUILD
def BRANCH_ENV = [
test: 'test',
master: 'production',
+ main: 'production',
beta: 'production'
]
@@ -20,12 +21,14 @@ node {
'dev',
'test',
'master',
+ 'main',
'beta'
].contains(env.BRANCH_NAME)
FROM_GIT = env.JOB_NAME.startsWith('gitea/')
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
RUN_BUILD = PROTECTED_BRANCH && FROM_GIT
+ IS_LATEST = ['master', 'main'].contains(env.BRANCH_NAME)
// https://www.jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables
echo "NODE_NAME: ${env.NODE_NAME}"
@@ -73,6 +76,7 @@ pipeline {
def packageJson = readJSON file: 'package.json'
def version = "${packageJson.version}-build${env.BUILD_ID}"
writeFile(file: 'VERSION.txt', text: version)
+ echo "VERSION: ${version}"
}
}
}
@@ -105,93 +109,72 @@ pipeline {
}
}
}
- stage('Stack') {
+ stage('Test') {
+ when {
+ expression { RUN_TESTS }
+ }
+ environment {
+ NODE_ENV = ''
+ }
parallel {
stage('Back') {
- stages {
- stage('Test') {
- when {
- expression { RUN_TESTS }
- }
- environment {
- NODE_ENV = ''
- }
- steps {
- sh 'node back/tests.js --junit'
- }
- post {
- always {
- junit(
- testResults: 'junitresults.xml',
- allowEmptyResults: true
- )
- }
- }
- }
- stage('Build') {
- when {
- expression { RUN_BUILD }
- }
- environment {
- VERSION = readFile 'VERSION.txt'
- }
- steps {
- sh 'docker-compose build back'
- }
+ steps {
+ sh 'node back/tests.js --junit'
+ }
+ post {
+ always {
+ junit(
+ testResults: 'junitresults.xml',
+ allowEmptyResults: true
+ )
}
}
}
stage('Front') {
- when {
- expression { FROM_GIT }
+ steps {
+ sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10'
}
- stages {
- stage('Test') {
- when {
- expression { RUN_TESTS }
- }
- environment {
- NODE_ENV = ''
- }
- steps {
- sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=10'
- }
- post {
- always {
- junit(
- testResults: 'junit.xml',
- allowEmptyResults: true
- )
- }
- }
- }
- stage('Build') {
- when {
- expression { RUN_BUILD }
- }
- environment {
- VERSION = readFile 'VERSION.txt'
- }
- steps {
- sh 'gulp build'
- sh 'docker-compose build front'
- }
+ post {
+ always {
+ junit(
+ testResults: 'junit.xml',
+ allowEmptyResults: true
+ )
}
}
}
}
}
- stage('Push') {
+ stage('Build') {
when {
expression { RUN_BUILD }
}
environment {
- CREDENTIALS = credentials('docker-registry')
VERSION = readFile 'VERSION.txt'
+ CREDENTIALS = credentials('docker-registry')
}
- steps {
- sh 'docker login --username $CREDENTIALS_USR --password $CREDENTIALS_PSW $REGISTRY'
- sh 'docker-compose push'
+ parallel {
+ stage('Back') {
+ steps {
+ dockerBuild 'salix-back', '.', 'back/Dockerfile'
+ }
+ }
+ stage('Front') {
+ steps {
+ sh 'gulp build'
+ dockerBuild 'salix-front', 'front'
+ }
+ }
+ stage('DB') {
+ steps {
+ sh 'npx myt run -t'
+ sh 'docker exec vn-database sh -c "rm -rf /mysql-template"'
+ sh 'docker exec vn-database sh -c "cp -a /var/lib/mysql /mysql-template"'
+ sh 'docker commit vn-database salix-db:$VERSION'
+ sh 'docker rm -f vn-database'
+ dockerPush docker.image("salix-db:${VERSION}")
+ }
+ }
}
}
stage('Deploy') {
@@ -264,3 +247,19 @@ pipeline {
}
}
}
+
+def dockerBuild(imageName, context, dockerfile = null) {
+ if (dockerfile == null)
+ dockerfile = "${context}/Dockerfile"
+ def baseImage = "${imageName}:${env.VERSION}"
+ def image = docker.build(baseImage, "-f ${dockerfile} ${context}")
+ dockerPush(image)
+}
+
+def dockerPush(image) {
+ docker.withRegistry("https://${env.REGISTRY}", 'docker-registry') {
+ image.push()
+ image.push(env.BRANCH_NAME)
+ if (IS_LATEST) image.push('latest')
+ }
+}
diff --git a/back/Dockerfile b/back/Dockerfile
index b2c3298966..bd48374d6e 100644
--- a/back/Dockerfile
+++ b/back/Dockerfile
@@ -25,7 +25,7 @@ RUN apt-get update \
libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 \
libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 \
libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 \
- libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 \
+ libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 build-essential \
fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
# Extra dependencies
@@ -55,4 +55,4 @@ COPY \
README.md \
./
-CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"]
\ No newline at end of file
+CMD ["node", "--tls-min-v1.0", "--openssl-legacy-provider", "./loopback/server/server.js"]
diff --git a/back/methods/osticket/sendToSupport.js b/back/methods/osticket/sendToSupport.js
index dabd35f80e..55ac65635b 100644
--- a/back/methods/osticket/sendToSupport.js
+++ b/back/methods/osticket/sendToSupport.js
@@ -33,25 +33,52 @@ module.exports = Self => {
const emailUser =
await Self.app.models.EmailUser.findById(userId, {fields: ['email']});
- let html = `
Motivo: ${reason}
`;
- html += `Usuario: ${userId} ${emailUser.email}
`;
- html += `Additional Data:
`;
- html += '';
+ const tableStyle = 'width:100%; border-collapse: collapse; text-align: left;';
+ const thStyle = 'padding: 8px; border: 1px solid #ddd; background-color: #f4f4f4;';
+ const tdStyle = 'padding: 8px; border: 1px solid #ddd;';
+ const tdBoldStyle = 'padding: 8px; border: 1px solid #ddd; font-weight: bold;';
+ const subTdStyle = 'padding: 6px; border: 1px solid #ddd;';
+ const subTdBoldStyle = 'padding: 6px; border: 1px solid #ddd; font-weight: bold;';
+
+ let html = `
+ Motivo: ${reason}
+ Usuario: ${userId} ${emailUser.email}
+ Additional Data:
+
+
+
+ Clave | Valor |
+
+ `;
for (const [key, val] of Object.entries(additionalData)) {
- if (key !== 'config') html += `- ${key}: ${parse(val)}
`;
- else {
- html += `- ${key}:
`;
- for (const [confKey, confVal] of Object.entries(val))
- html += `- ${confKey}: ${parse(confVal)}
`;
- html += '
';
+ if (key !== 'config') {
+ html += `
+ ${key} |
+ ${parse(val)} |
+
`;
+ } else {
+ html += `
+ ${key} |
+
+
+ `;
+ for (const [confKey, confVal] of Object.entries(val)) {
+ html += `
+ ${confKey} |
+ ${parse(confVal)} |
+ `;
+ }
+ html += ` |
`;
}
}
- html += '';
+ html += `
`;
const {message, path, name} = additionalData;
+ const err = name && message ? `${name}: ${message}` : name || message || '';
+
await smtp.send({
to: `${config.app.reportEmail}, ${emailUser.email}`,
- subject: `[Support-Salix] ${path} ${name}: ${message}`,
+ subject: `[Support-Salix] ${path.split('?')[0]} ${err}`,
html
});
};
diff --git a/back/models/vn-user.json b/back/models/vn-user.json
index 8c49c8db9e..03a4e5bc1f 100644
--- a/back/models/vn-user.json
+++ b/back/models/vn-user.json
@@ -54,7 +54,8 @@
"type": "string"
},
"hasGrant": {
- "type": "boolean"
+ "type": "boolean",
+ "default": false
},
"passExpired": {
"type": "date"
@@ -168,6 +169,7 @@
"emailVerified",
"twoFactor"
]
+
}
}
}
diff --git a/db/.pullinfo.json b/db/.pullinfo.json
index b890ffc31b..423d99bb94 100644
--- a/db/.pullinfo.json
+++ b/db/.pullinfo.json
@@ -3,8 +3,8 @@
"shaSums": {
"srt": {
"view": {
- "routePalletized": "765f8933a6a5a86dfe8f22825cc77351bc8620cdf1be9d3f25abb130460f3a61",
- "ticketPalletized": "c327f3243e717cc607f01d3747967ba68158f90ef1038986b0aa6ae6d5ce7309"
+ "routePalletized": "98d228ced59c8ec590bbaf106cebf47689a02b32e895ba76b5b6e5c05d73cf14",
+ "ticketPalletized": "60d527908d473b92b70ba2ceed4e9be1f3be7509782f2c0d66d0cb98ecfeee2f"
}
},
"vn": {
diff --git a/db/dump/.dump/data.sql b/db/dump/.dump/data.sql
index 590b454700..c36c0a6303 100644
--- a/db/dump/.dump/data.sql
+++ b/db/dump/.dump/data.sql
@@ -4,7 +4,7 @@ USE `util`;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
-INSERT INTO `version` VALUES ('vn-database','11410','7a02af9a3acae14a658de1557baa44542c24d480','2025-01-28 07:44:02','11423');
+INSERT INTO `version` VALUES ('vn-database','11436','f83055057e5eb15c800033882ea117e6ee646673','2025-02-18 09:15:11','11445');
INSERT INTO `versionLog` VALUES ('vn-database','10107','00-firstScript.sql','jenkins@10.0.2.69','2022-04-23 10:53:53',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','10112','00-firstScript.sql','jenkins@10.0.2.69','2022-05-09 09:14:53',NULL,NULL);
@@ -853,6 +853,7 @@ INSERT INTO `versionLog` VALUES ('vn-database','11071','00-firstScript.sql','jen
INSERT INTO `versionLog` VALUES ('vn-database','11073','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-07-09 07:39:38',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11074','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-06-11 08:32:35',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11075','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-05-28 12:54:13',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11076','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:24',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11078','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-06-11 08:32:35',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11079','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-05-31 08:22:10',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11080','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-05-31 12:01:58',NULL,NULL);
@@ -990,6 +991,7 @@ INSERT INTO `versionLog` VALUES ('vn-database','11196','00-firstScript.sql','jen
INSERT INTO `versionLog` VALUES ('vn-database','11197','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-09-03 08:58:01',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11198','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-11-12 07:42:49',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11201','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-08-27 13:04:26',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11202','01-updateStateAlertLevel.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:24',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11204','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2024-09-03 08:58:01',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11205','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-09-04 13:54:55',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11206','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2024-09-17 07:38:42',NULL,NULL);
@@ -1139,11 +1141,15 @@ INSERT INTO `versionLog` VALUES ('vn-database','11377','00-firstScript.sql','jen
INSERT INTO `versionLog` VALUES ('vn-database','11378','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:32',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11379','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:32',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11379','01-secScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:32',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11383','00-town.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:25',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11383','01-postCode.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:34',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11383','02-province.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:36',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11384','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:32',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11385','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-07 07:46:33',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11387','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:58',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11390','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-14 07:32:08',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11391','00-itemAlter.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-14 07:32:08',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11393','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:36',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11396','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:58',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11398','00-zoneEventPriceOptimum.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11398','00-zonePriceOptimum.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:43:59',NULL,NULL);
@@ -1156,9 +1162,35 @@ INSERT INTO `versionLog` VALUES ('vn-database','11406','00-currrencyAlter.sql','
INSERT INTO `versionLog` VALUES ('vn-database','11406','01-currrencyUpdate.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11407','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11410','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-28 07:44:00',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11411','00-agencyIncomingForeign.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:36',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11411','01-travelThermographAlter.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:37',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11415','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-01-20 08:12:38',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:37',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','01-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:37',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','02-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:37',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','03-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:38',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','04-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:40',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','05-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:40',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','06-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:40',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','07-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:41',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','08-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:41',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11416','09-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:41',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11418','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-21 11:03:27',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11419','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:41',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11422','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:41',NULL,NULL);
INSERT INTO `versionLog` VALUES ('vn-database','11423','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-01-23 15:19:32',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11424','00-travel.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:45',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11425','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:45',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11427','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:46',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11428','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11429','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11430','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11432','00-firstScript.sql','jenkins@db-proxy2.servers.dc.verdnatura.es','2025-02-06 13:34:31',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11433','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-06 13:45:28',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11436','00-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11436','01-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11436','02-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
+INSERT INTO `versionLog` VALUES ('vn-database','11436','03-firstScript.sql','jenkins@db-proxy1.servers.dc.verdnatura.es','2025-02-18 08:53:47',NULL,NULL);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
@@ -1258,6 +1290,7 @@ INSERT INTO `role` VALUES (129,'buyerAssistant','Comprador que tienes mas permis
INSERT INTO `role` VALUES (130,'reviewer','Revisor de producción',1,'2024-06-11 00:00:00','2024-06-11 00:00:00',10578);
INSERT INTO `role` VALUES (131,'supplier','Privilegios básicos de un proveedor',1,'2024-07-05 10:18:58','2024-07-05 10:18:58',19295);
INSERT INTO `role` VALUES (132,'salesPersonClaim','Departamento de ventas con funciones de reclamaciones',1,'2025-01-17 07:07:40','2025-01-17 07:07:40',19295);
+INSERT INTO `role` VALUES (133,'deliveryFreelancer','Repartidor autónomo',1,'2025-02-18 08:53:36','2025-02-18 08:53:36',10578);
INSERT INTO `roleInherit` VALUES (1,1,2,NULL);
INSERT INTO `roleInherit` VALUES (2,1,3,NULL);
@@ -1530,7 +1563,6 @@ INSERT INTO `roleInherit` VALUES (373,131,2,19295);
INSERT INTO `roleInherit` VALUES (375,120,131,1437);
INSERT INTO `roleInherit` VALUES (376,124,21,19336);
INSERT INTO `roleInherit` VALUES (377,47,49,19295);
-INSERT INTO `roleInherit` VALUES (378,101,15,19294);
INSERT INTO `roleInherit` VALUES (379,103,121,19294);
INSERT INTO `roleInherit` VALUES (381,119,123,19295);
INSERT INTO `roleInherit` VALUES (382,48,72,783);
@@ -1538,6 +1570,9 @@ INSERT INTO `roleInherit` VALUES (383,114,111,19295);
INSERT INTO `roleInherit` VALUES (384,132,18,19295);
INSERT INTO `roleInherit` VALUES (385,132,72,19295);
INSERT INTO `roleInherit` VALUES (386,109,132,19295);
+INSERT INTO `roleInherit` VALUES (387,101,122,19295);
+INSERT INTO `roleInherit` VALUES (388,59,58,13657);
+INSERT INTO `roleInherit` VALUES (389,59,111,19295);
INSERT INTO `userPassword` VALUES (1,7,1,0,2,1);
@@ -2095,7 +2130,7 @@ INSERT INTO `ACL` VALUES (664,'MailForward','*','*','ALLOW','ROLE','itManagement
INSERT INTO `ACL` VALUES (667,'VnUser','*','*','ALLOW','ROLE','itManagement',NULL);
INSERT INTO `ACL` VALUES (668,'VnUser','__get__preview','READ','ALLOW','ROLE','employee',NULL);
INSERT INTO `ACL` VALUES (669,'VnUser','preview','*','ALLOW','ROLE','employee',NULL);
-INSERT INTO `ACL` VALUES (670,'VnUser','create','*','ALLOW','ROLE','itManagement',NULL);
+INSERT INTO `ACL` VALUES (670,'VnUser','create','*','ALLOW','ROLE','developerBoss',19295);
INSERT INTO `ACL` VALUES (672,'PackingSiteAdvanced','*','*','ALLOW','ROLE','production',NULL);
INSERT INTO `ACL` VALUES (673,'InvoiceOut','makePdfAndNotify','WRITE','ALLOW','ROLE','invoicing',NULL);
INSERT INTO `ACL` VALUES (674,'InvoiceOutConfig','*','READ','ALLOW','ROLE','invoicing',NULL);
@@ -2407,6 +2442,31 @@ INSERT INTO `ACL` VALUES (1013,'Route','optimizePriority','*','ALLOW','ROLE','em
INSERT INTO `ACL` VALUES (1014,'Worker','canModifyAbsenceInPast','WRITE','ALLOW','ROLE','hr',10578);
INSERT INTO `ACL` VALUES (1015,'Worker','__get__sip','READ','ALLOW','ROLE','employee',19294);
INSERT INTO `ACL` VALUES (1016,'VnUser','adminUser','WRITE','ALLOW','ROLE','sysadmin',10578);
+INSERT INTO `ACL` VALUES (1017,'BusinessReasonEnd','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1018,'CalendarType','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1019,'OccupationCode','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1020,'BusinessReasonEnd','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1021,'WorkerBusinessProfessionalCategory','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1022,'WorkerBusinessAgreement','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1023,'WorkerBusinessType','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1024,'PayrollCategory','find','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1025,'Worker','__get__business','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1026,'Worker','__create__business','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1027,'Business','crud','*','ALLOW','ROLE','hr',10578);
+INSERT INTO `ACL` VALUES (1028,'Route','getTickets','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1029,'AgencyTerm','filter','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1030,'Route','summary','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1031,'Route','getRouteByAgency','WRITE','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1032,'Route','filter','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1033,'UserConfig','getUserConfig','*','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1034,'Route','getTickets','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1035,'Route','guessPriority','WRITE','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1036,'Route','getDeliveryPoint','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1037,'Route','findById','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1038,'Route','sendSms','WRITE','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1039,'Ticket','updateAttributes','WRITE','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1040,'Client','findById','READ','ALLOW','ROLE','deliveryFreelancer',10578);
+INSERT INTO `ACL` VALUES (1041,'Entry','transfer','WRITE','ALLOW','ROLE','coolerBoss',10578);
INSERT INTO `fieldAcl` VALUES (1,'Client','name','update','employee');
INSERT INTO `fieldAcl` VALUES (2,'Client','contact','update','employee');
@@ -2705,77 +2765,79 @@ INSERT INTO `continent` VALUES (3,'África','AF');
INSERT INTO `continent` VALUES (4,'Europa','EU');
INSERT INTO `continent` VALUES (5,'Oceanía','OC');
-INSERT INTO `department` VALUES (1,'VN','VERDNATURA',1,132,763,0,0,0,0,26,NULL,'/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (1,'VN','VERDNATURA',1,134,763,0,0,0,0,26,NULL,'/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (22,'shopping','COMPRAS',2,5,NULL,72,0,0,1,1,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (23,'CMA','CAMARA',15,16,NULL,72,1,1,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL,'PREVIOUS');
INSERT INTO `department` VALUES (31,'it','INFORMATICA',6,7,NULL,72,0,0,1,0,1,'/1/','informatica-cau',1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (34,'accounting','CONTABILIDAD',8,9,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (35,'finance','FINANZAS',10,11,NULL,0,0,0,1,0,1,'/1/',NULL,1,'begonya@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (36,'labor','LABORAL',12,13,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (37,'PROD','PRODUCCION',14,39,NULL,72,1,1,1,12,1,'/1/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (37,'PROD','PRODUCCION',14,41,NULL,72,1,1,1,13,1,'/1/',NULL,0,NULL,0,1,1,1,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (38,'picking','SACADO',17,18,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,0,1,NULL,NULL,NULL,'ON_PREPARATION');
INSERT INTO `department` VALUES (39,'packing','ENCAJADO',19,20,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL,'PACKING');
-INSERT INTO `department` VALUES (41,'administration','ADMINISTRACION',40,41,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (43,'VT','VENTAS',42,91,NULL,0,0,0,1,24,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (44,'management','GERENCIA',92,93,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (45,'logistic','LOGISTICA',94,95,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (46,'delivery','REPARTO',96,97,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'DELIVERY');
-INSERT INTO `department` VALUES (48,'storage','ALMACENAJE',98,99,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'STORAGE');
-INSERT INTO `department` VALUES (49,NULL,'PROPIEDAD',100,101,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (52,NULL,'CARGA AEREA',102,103,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (53,'marketing','MARKETING Y COMUNICACIÓN',43,44,NULL,72,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (54,NULL,'ORNAMENTALES',104,105,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (41,'administration','ADMINISTRACION',42,43,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,1,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (43,'VT','VENTAS',44,93,NULL,0,0,0,1,24,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (44,'management','GERENCIA',94,95,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (45,'logistic','LOGISTICA',96,97,NULL,72,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (46,'delivery','REPARTO',98,99,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'DELIVERY');
+INSERT INTO `department` VALUES (48,'storage','ALMACENAJE',100,101,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'STORAGE');
+INSERT INTO `department` VALUES (49,NULL,'PROPIEDAD',102,103,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (52,NULL,'CARGA AEREA',104,105,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (53,'marketing','MARKETING Y COMUNICACIÓN',45,46,NULL,72,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (54,NULL,'ORNAMENTALES',106,107,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (55,NULL,'TALLER NATURAL',21,22,14548,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1118,NULL,NULL,NULL);
INSERT INTO `department` VALUES (56,NULL,'TALLER ARTIFICIAL',23,24,8470,72,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,1927,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (58,'CMP','CAMPOS',106,109,NULL,72,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'FIELD');
-INSERT INTO `department` VALUES (59,'maintenance','MANTENIMIENTO',110,111,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (60,'claims','RECLAMACIONES',45,46,NULL,72,0,0,2,0,43,'/1/43/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'CLAIM');
-INSERT INTO `department` VALUES (61,NULL,'VNH',112,115,NULL,73,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (66,NULL,'VERDNAMADRID',116,117,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (58,'CMP','CAMPOS',108,111,NULL,72,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'FIELD');
+INSERT INTO `department` VALUES (59,'maintenance','MANTENIMIENTO',112,113,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (60,'claims','RECLAMACIONES',47,48,NULL,72,0,0,2,0,43,'/1/43/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,'CLAIM');
+INSERT INTO `department` VALUES (61,NULL,'VNH',114,117,NULL,73,0,0,1,1,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (66,NULL,'VERDNAMADRID',118,119,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (68,NULL,'COMPLEMENTOS',25,26,NULL,72,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (69,NULL,'VERDNABARNA',118,119,NULL,74,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (80,'spainTeam5','EQUIPO ESPAÑA 5',47,48,4250,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (86,NULL,'LIMPIEZA',120,121,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (89,NULL,'COORDINACION',122,123,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (90,NULL,'TRAILER',113,114,NULL,0,0,0,2,0,61,'/1/61/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (69,NULL,'VERDNABARNA',120,121,NULL,74,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (80,'spainTeam5','EQUIPO ESPAÑA 5',49,50,4250,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (86,NULL,'LIMPIEZA',122,123,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (89,NULL,'COORDINACION',124,125,NULL,0,1,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (90,NULL,'TRAILER',115,116,NULL,0,0,0,2,0,61,'/1/61/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (91,'artificial','ARTIFICIAL',27,28,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'PREVIOUS');
-INSERT INTO `department` VALUES (92,NULL,'EQUIPO SILVERIO',49,50,1203,0,0,0,2,0,43,'/1/43/','sdc_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (94,'spainTeam2','EQUIPO ESPAÑA 2',51,52,3797,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (95,'spainTeam1','EQUIPO ESPAÑA 1',53,54,24065,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (96,NULL,'EQUIPO C LOPEZ',55,56,4661,0,0,0,2,0,43,'/1/43/','cla_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (115,NULL,'EQUIPO CLAUDI',57,58,3810,0,0,0,2,0,43,'/1/43/','csr_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (123,NULL,'EQUIPO ELENA BASCUÑANA',59,60,7102,0,0,0,2,0,43,'/1/43/','ebt_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (124,NULL,'CONTROL INTERNO',124,125,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (125,'spainTeam3','EQUIPO ESPAÑA 3',61,62,1118,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (126,NULL,'PRESERVADO',29,30,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (92,NULL,'EQUIPO SILVERIO',51,52,1203,0,0,0,2,0,43,'/1/43/','sdc_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (94,'spainTeam2','EQUIPO ESPAÑA 2',53,54,3797,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (95,'spainTeam1','EQUIPO ESPAÑA 1',55,56,24065,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (96,NULL,'EQUIPO C LOPEZ',57,58,4661,0,0,0,2,0,43,'/1/43/','cla_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (115,NULL,'EQUIPO CLAUDI',59,60,3810,0,0,0,2,0,43,'/1/43/','csr_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (123,NULL,'EQUIPO ELENA BASCUÑANA',61,62,7102,0,0,0,2,0,43,'/1/43/','ebt_equipo',0,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (124,NULL,'CONTROL INTERNO',126,127,NULL,72,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (125,'spainTeam3','EQUIPO ESPAÑA 3',63,64,1118,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (126,'preserved','PRESERVADO',29,30,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,1,1,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (128,NULL,'PALETIZADO',31,32,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,'PALLETIZING');
INSERT INTO `department` VALUES (130,'reviewers','REVISION',33,34,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL,'ON_CHECKING');
-INSERT INTO `department` VALUES (131,'greenhouse','INVERNADERO',107,108,NULL,0,0,0,2,0,58,'/1/58/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (132,NULL,'EQUIPO DC',63,64,1731,0,0,0,2,0,43,'/1/43/','dc_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (133,'franceTeamManagement','EQUIPO GESTIÓN FRANCIA',65,66,9751,72,0,0,2,0,43,'/1/43/','fr_equipo',1,'gestionfrancia@verdnatura.es',0,0,0,0,NULL,NULL,'3300',NULL);
-INSERT INTO `department` VALUES (134,'portugalTeam','EQUIPO PORTUGAL',67,68,8964,0,0,0,2,0,43,'/1/43/','pt_equipo',1,'portugal@verdnatura.es',0,0,0,0,NULL,NULL,'3500',NULL);
-INSERT INTO `department` VALUES (135,'routers','ENRUTADORES',126,127,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (136,'heavyVehicles','VEHICULOS PESADOS',128,129,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (137,'sorter','SORTER',130,131,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (139,'spainTeam4','EQUIPO ESPAÑA 4',69,70,3803,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (140,'internationalTeam','EQUIPO INTERNACIONAL',71,72,24065,0,0,0,2,0,43,'/1/43/','int_equipo',1,'international@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (131,'greenhouse','INVERNADERO',109,110,NULL,0,0,0,2,0,58,'/1/58/',NULL,0,NULL,0,1,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (132,NULL,'EQUIPO DC',65,66,1731,0,0,0,2,0,43,'/1/43/','dc_equipo',1,'gestioncomercial@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (133,'franceTeamManagement','EQUIPO GESTIÓN FRANCIA',67,68,9751,72,0,0,2,0,43,'/1/43/','fr_equipo',1,'gestionfrancia@verdnatura.es',0,0,0,0,NULL,NULL,'3300',NULL);
+INSERT INTO `department` VALUES (134,'portugalTeam','EQUIPO PORTUGAL',69,70,8964,0,0,0,2,0,43,'/1/43/','pt_equipo',1,'portugal@verdnatura.es',0,0,0,0,NULL,NULL,'3500',NULL);
+INSERT INTO `department` VALUES (135,'routers','ENRUTADORES',128,129,NULL,0,0,0,1,0,1,'/1/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (136,'heavyVehicles','VEHICULOS PESADOS',130,131,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (137,'sorter','SORTER',132,133,NULL,0,0,0,1,0,1,'/1/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (139,'spainTeam4','EQUIPO ESPAÑA 4',71,72,3803,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (140,'internationalTeam','EQUIPO INTERNACIONAL',73,74,24065,0,0,0,2,0,43,'/1/43/','int_equipo',1,'international@verdnatura.es',0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `department` VALUES (141,NULL,'PREVIA',35,36,NULL,0,1,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,1,NULL,NULL,NULL,'PREVIOUS');
INSERT INTO `department` VALUES (146,NULL,'VERDNACOLOMBIA',3,4,NULL,72,0,0,2,0,22,'/1/22/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
-INSERT INTO `department` VALUES (147,'spainTeamAsia','EQUIPO ESPAÑA ASIA',73,74,40214,0,0,0,2,0,43,'/1/43/','esA_equipo',1,'esA@verdnatura.es',0,0,0,0,NULL,NULL,'5500',NULL);
-INSERT INTO `department` VALUES (148,'franceTeamCatchment','EQUIPO CAPTACIÓN FRANCIA',75,76,25178,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,'6000',NULL);
-INSERT INTO `department` VALUES (149,'spainTeamCatchment','EQUIPO ESPAÑA CAPTACIÓN',77,78,1203,0,0,0,2,0,43,'/1/43/','es_captacion_equipo',1,'es_captacion@verdnatura.es',0,0,0,0,NULL,NULL,'5700',NULL);
-INSERT INTO `department` VALUES (150,'spainTeamLevanteIslands','EQUIPO ESPAÑA LEVANTE',79,80,1118,0,0,0,2,0,43,'/1/43/','es_levante_equipo',1,'es_levante@verdnatura.es',0,0,0,0,NULL,NULL,'5000',NULL);
-INSERT INTO `department` VALUES (151,'spainTeamNorthwest','EQUIPO ESPAÑA NOROESTE',81,82,7102,0,0,0,2,0,43,'/1/43/','es_noroeste_equipo',1,'es_noroeste@verdnatura.es',0,0,0,0,NULL,NULL,'5300',NULL);
-INSERT INTO `department` VALUES (152,'spainTeamNortheast','EQUIPO ESPAÑA NORESTE',83,84,1118,0,0,0,2,0,43,'/1/43/','es_noreste_equipo',1,'es_noreste@verdnatura.es',0,0,0,0,NULL,NULL,'5200',NULL);
-INSERT INTO `department` VALUES (153,'spainTeamSouth','EQUIPO ESPAÑA SUR',85,86,36578,0,0,0,2,0,43,'/1/43/','es_sur_equipo',1,'es_sur@verdnatura.es',0,0,0,0,NULL,NULL,'5400',NULL);
-INSERT INTO `department` VALUES (154,'spainTeamCenter','EQUIPO ESPAÑA CENTRO',87,88,4661,0,0,0,2,0,43,'/1/43/','es_centro_equipo',1,'es_centro@verdnatura.es',0,0,0,0,NULL,NULL,'5100',NULL);
-INSERT INTO `department` VALUES (155,'spainTeamVip','EQUIPO ESPAÑA VIP',89,90,5432,0,0,0,2,0,43,'/1/43/','es_vip_equipo',1,'es_vip@verdnatura.es',0,0,0,0,NULL,NULL,'5600',NULL);
+INSERT INTO `department` VALUES (147,'spainTeamAsia','EQUIPO ESPAÑA ASIA',75,76,40214,0,0,0,2,0,43,'/1/43/','esA_equipo',1,'esA@verdnatura.es',0,0,0,0,NULL,NULL,'5500',NULL);
+INSERT INTO `department` VALUES (148,'franceTeamCatchment','EQUIPO CAPTACIÓN FRANCIA',77,78,25178,0,0,0,2,0,43,'/1/43/',NULL,1,NULL,0,0,0,0,NULL,NULL,'6000',NULL);
+INSERT INTO `department` VALUES (149,'spainTeamCatchment','EQUIPO ESPAÑA CAPTACIÓN',79,80,1203,0,0,0,2,0,43,'/1/43/','es_captacion_equipo',1,'es_captacion@verdnatura.es',0,0,0,0,NULL,NULL,'5700',NULL);
+INSERT INTO `department` VALUES (150,'spainTeamLevanteIslands','EQUIPO ESPAÑA LEVANTE',81,82,1118,0,0,0,2,0,43,'/1/43/','es_levante_equipo',1,'es_levante@verdnatura.es',0,0,0,0,NULL,NULL,'5000',NULL);
+INSERT INTO `department` VALUES (151,'spainTeamNorthwest','EQUIPO ESPAÑA NOROESTE',83,84,7102,0,0,0,2,0,43,'/1/43/','es_noroeste_equipo',1,'es_noroeste@verdnatura.es',0,0,0,0,NULL,NULL,'5300',NULL);
+INSERT INTO `department` VALUES (152,'spainTeamNortheast','EQUIPO ESPAÑA NORESTE',85,86,1118,0,0,0,2,0,43,'/1/43/','es_noreste_equipo',1,'es_noreste@verdnatura.es',0,0,0,0,NULL,NULL,'5200',NULL);
+INSERT INTO `department` VALUES (153,'spainTeamSouth','EQUIPO ESPAÑA SUR',87,88,36578,0,0,0,2,0,43,'/1/43/','es_sur_equipo',1,'es_sur@verdnatura.es',0,0,0,0,NULL,NULL,'5400',NULL);
+INSERT INTO `department` VALUES (154,'spainTeamCenter','EQUIPO ESPAÑA CENTRO',89,90,4661,0,0,0,2,0,43,'/1/43/','es_centro_equipo',1,'es_centro@verdnatura.es',0,0,0,0,NULL,NULL,'5100',NULL);
+INSERT INTO `department` VALUES (155,'spainTeamVip','EQUIPO ESPAÑA VIP',91,92,5432,0,0,0,2,0,43,'/1/43/','es_vip_equipo',1,'es_vip@verdnatura.es',0,0,0,0,NULL,NULL,'5600',NULL);
INSERT INTO `department` VALUES (156,NULL,'COCINA',37,38,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
+INSERT INTO `department` VALUES (157,NULL,'RECICLAJE',39,40,NULL,0,0,0,2,0,37,'/1/37/',NULL,0,NULL,0,0,0,0,NULL,NULL,NULL,NULL);
INSERT INTO `docuware` VALUES (1,'deliveryNote','Albaranes cliente','find','find','N__ALBAR_N',NULL);
INSERT INTO `docuware` VALUES (2,'deliveryNote','Albaranes cliente','store','Archivar','N__ALBAR_N',NULL);
INSERT INTO `docuware` VALUES (3,'hr','RRHH','find','Búsqueda','N__DOCUMENTO',3);
+INSERT INTO `itemPackingType` VALUES ('A','Altillo',1);
INSERT INTO `itemPackingType` VALUES ('F','Fruta y Verdura',0);
INSERT INTO `itemPackingType` VALUES ('H','Horizontal',1);
INSERT INTO `itemPackingType` VALUES ('P','Pienso',0);
@@ -2877,21 +2939,21 @@ INSERT INTO `state` VALUES (13,'En Reparto',11,4,'ON_DELIVERY',13,0,1,0,0,0,0,0,
INSERT INTO `state` VALUES (14,'Preparado',6,2,'PREPARED',14,0,1,0,2,0,0,1,0,'warning');
INSERT INTO `state` VALUES (15,'Pte Recogida',12,4,'WAITING_FOR_PICKUP',15,0,1,0,0,0,0,0,0,NULL);
INSERT INTO `state` VALUES (16,'Entregado',13,4,'DELIVERED',16,0,1,0,0,0,0,0,0,NULL);
-INSERT INTO `state` VALUES (20,'Asignado',4,0,'PICKER_DESIGNED',20,1,0,0,0,0,0,2,0,'success');
+INSERT INTO `state` VALUES (20,'Asignado',4,1,'PICKER_DESIGNED',20,1,0,0,0,0,0,2,0,'success');
INSERT INTO `state` VALUES (21,'Retornado',4,2,'PRINTED_BACK',21,0,0,0,0,0,0,2,0,'success');
INSERT INTO `state` VALUES (22,'Pte. Ampliar',2,0,'EXPANDABLE',22,0,0,0,0,0,0,4,1,'alert');
-INSERT INTO `state` VALUES (23,'URGENTE',5,2,'LAST_CALL',23,1,0,1,0,0,0,4,1,'success');
+INSERT INTO `state` VALUES (23,'URGENTE',5,1,'LAST_CALL',23,1,0,1,0,0,0,4,1,'success');
INSERT INTO `state` VALUES (24,'Encadenado',4,0,'CHAINED',24,0,0,0,0,0,0,3,1,'success');
INSERT INTO `state` VALUES (25,'Embarcando',3,0,'BOARDING',25,1,0,0,0,0,0,3,0,'alert');
-INSERT INTO `state` VALUES (26,'Prep Previa',5,0,'PREVIOUS_PREPARATION',28,1,0,0,1,0,0,2,0,'warning');
-INSERT INTO `state` VALUES (28,'Previa OK',3,0,'OK PREVIOUS',28,1,0,1,1,1,1,3,0,'warning');
-INSERT INTO `state` VALUES (29,'Previa Impreso',4,0,'PRINTED PREVIOUS',29,1,0,1,0,0,1,2,0,'success');
-INSERT INTO `state` VALUES (31,'Polizon Impreso',4,2,'PRINTED STOWAWAY',29,1,0,1,0,0,1,2,0,'success');
-INSERT INTO `state` VALUES (33,'Auto_Impreso',4,0,'PRINTED_AUTO',29,1,0,1,0,0,1,2,0,'success');
+INSERT INTO `state` VALUES (26,'Prep Previa',5,1,'PREVIOUS_PREPARATION',28,1,0,0,1,0,0,2,0,'warning');
+INSERT INTO `state` VALUES (28,'Previa OK',3,1,'OK PREVIOUS',28,1,0,1,1,1,1,3,0,'warning');
+INSERT INTO `state` VALUES (29,'Previa Impreso',4,1,'PRINTED PREVIOUS',29,1,0,1,0,0,1,2,0,'success');
+INSERT INTO `state` VALUES (31,'Polizon Impreso',4,1,'PRINTED STOWAWAY',29,1,0,1,0,0,1,2,0,'success');
+INSERT INTO `state` VALUES (33,'Auto_Impreso',4,1,'PRINTED_AUTO',29,1,0,1,0,0,1,2,0,'success');
INSERT INTO `state` VALUES (34,'Pte Pago',3,0,'WAITING_FOR_PAYMENT',34,0,0,0,0,0,0,4,1,'alert');
INSERT INTO `state` VALUES (35,'Semi-Encajado',9,3,'HALF_PACKED',10,0,1,0,0,0,0,1,0,NULL);
-INSERT INTO `state` VALUES (36,'Previa Revisando',3,0,'PREVIOUS_CONTROL',37,1,0,0,4,0,1,2,0,'warning');
-INSERT INTO `state` VALUES (37,'Previa Revisado',3,0,'PREVIOUS_CONTROLLED',29,1,0,1,0,0,1,2,0,'warning');
+INSERT INTO `state` VALUES (36,'Previa Revisando',3,1,'PREVIOUS_CONTROL',37,1,0,0,4,0,1,2,0,'warning');
+INSERT INTO `state` VALUES (37,'Previa Revisado',3,1,'PREVIOUS_CONTROLLED',29,1,0,1,0,0,1,2,0,'warning');
INSERT INTO `state` VALUES (38,'Prep Cámara',6,2,'COOLER_PREPARATION',14,0,0,0,2,0,0,2,0,'warning');
INSERT INTO `state` VALUES (42,'Entregado en parte',13,3,'PARTIAL_DELIVERED',16,0,1,0,0,0,0,0,0,NULL);
INSERT INTO `state` VALUES (43,'Preparación por caja',6,2,'BOX_PICKING',42,0,0,0,2,0,0,2,0,'warning');
@@ -2901,7 +2963,7 @@ INSERT INTO `ticketUpdateAction` VALUES (2,'Convertir en maná','mana');
INSERT INTO `ticketCanAdvanceConfig` VALUES (1,5);
-INSERT INTO `volumeConfig` VALUES (2.67,1.60,0.8,150,0.30,120,57,2.0,50,200,10,167.0);
+INSERT INTO `volumeConfig` VALUES (1,2.67,1.60,0.8,150,0.30,120,57,2.0,50,200,10,167.0);
INSERT INTO `workerActivityType` VALUES ('CLAIM','RECLAMACIONES');
INSERT INTO `workerActivityType` VALUES ('DELIVERY','REPARTO');
diff --git a/db/dump/.dump/privileges.sql b/db/dump/.dump/privileges.sql
index 2e623b8f79..2c9d132742 100644
--- a/db/dump/.dump/privileges.sql
+++ b/db/dump/.dump/privileges.sql
@@ -326,7 +326,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','printQueue','juan@db
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','preservedBoss','travel','alexm@%','0000-00-00 00:00:00','Insert,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','travel','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','hr','Cubos','alexm@%','0000-00-00 00:00:00','Select','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyerAssistant','itemType','jgallego@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','itemType','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','buyer','Cubos','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','salesPerson','Cubos','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','artificialBoss','state','alexm@%','0000-00-00 00:00:00','Select','');
@@ -561,7 +561,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','awb_component_t
INSERT IGNORE INTO `tables_priv` VALUES ('','vncontrol','employee','accion','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','volumeConfig','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','currency','alexm@%','0000-00-00 00:00:00','Select','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyerBoss','tag','alexm@db-proxy1.static.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','administrative','currency','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','creditClassification','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financial','creditInsurance','alexm@%','0000-00-00 00:00:00','Select','');
@@ -752,11 +751,11 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','dua','alexm@%','0000-0
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','duaEntry','alexm@%','0000-00-00 00:00:00','Insert,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','expeditionTruck','alexm@%','0000-00-00 00:00:00','Update','');
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','maintenance','moving','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Delete','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machineDetail','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machineDms','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machineDetail','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machineDms','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','claimManager','vehicle','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','awb','alexm@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machine','alexm@%','0000-00-00 00:00:00','Select,Insert,Update','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hrBoss','machine','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','logistic','Entradas_dits','alexm@%','0000-00-00 00:00:00','Insert,Update','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','workerTimeControlMail','alexm@%','0000-00-00 00:00:00','Select,Update','');
INSERT IGNORE INTO `tables_priv` VALUES ('','bi','coolerBoss','rotacion','alexm@%','0000-00-00 00:00:00','Select','');
@@ -835,6 +834,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','bi','salesPerson','tarifa_component
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','employee','expeditionLog','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','bs','salesPerson','clientNewBorn','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','saleItemShelving__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminBoss','ticketDms','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','employee','expedition','alexm@%','0000-00-00 00:00:00','Update','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','itemShelvingStock','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','saleParking__','alexm@%','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
@@ -889,7 +889,6 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','supplierAgenc
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packager','franceExpressConfig','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','manager','ticketLog','juan@10.5.1.2','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','productionAssi','ticketCollection','alexm@%','0000-00-00 00:00:00','Delete','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','ticketDms','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticketObservation','alexm@%','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logistic','ticketPackaging','alexm@%','0000-00-00 00:00:00','Insert','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','ticketPackaging','alexm@%','0000-00-00 00:00:00','Select','');
@@ -1240,7 +1239,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','hedera','grafana','visitAccess','ro
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','v_botanic_export','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','itemCost','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','bs','deliveryAssistant','m3','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','ticketDms','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','marketingBoss','itemTypeI18n','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryAssistant','time','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','deliveryAssistant','v_Articles_botanical','alexm@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','employee','inventoryConfig','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
@@ -1285,7 +1284,7 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','company','juan@db-pr
INSERT IGNORE INTO `tables_priv` VALUES ('','srt','grafana','buffer','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','greuge','juan@db-proxy2.static.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','item','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','','Select,Update');
-INSERT IGNORE INTO `tables_priv` VALUES ('','vn','coolerBoss','itemShelving','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','cooler','itemShelving','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','buyer','agencyIncoming','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','addressObservation','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','negativeOrigin','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
@@ -1505,6 +1504,29 @@ INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemSoldOutTa
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemDurationTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','itemGrowingTag','jenkins@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update,Delete','');
INSERT IGNORE INTO `tables_priv` VALUES ('','vn','adminBoss','receipt','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','machine','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packagerBoss','awb','alexm@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','machineDetail','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','hr','machineDms','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','logisticAssist','tag','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packagerBoss','buy','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','packagerBoss','genericAllocation','carlosap@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','packagerBoss','Tintas','carlosap@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','productionCountry','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','teamBoss','workerTimeControlConfig','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','packagerBoss','Entradas','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','packagerBoss','Compres','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select,Insert,Update','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','packagerBoss','buySource','carlosap@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','grafana','payment','guillermo@db-proxy1.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn2008','administrative','Tickets','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','','Update');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','financialBoss','payMethod','guillermo@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','delivery','roadmap','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','delivery','roadmapStop','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','delivery','roadmapAddress','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Select','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','roadmap','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','roadmapStop','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','roadmapAddress','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','Insert,Update,Delete','');
+INSERT IGNORE INTO `tables_priv` VALUES ('','vn','deliveryBoss','volumeConfig','jenkins@db-proxy2.servers.dc.verdnatura.es','0000-00-00 00:00:00','','Update');
/*!40000 ALTER TABLE `tables_priv` ENABLE KEYS */;
/*!40000 ALTER TABLE `columns_priv` DISABLE KEYS */;
@@ -1564,6 +1586,8 @@ INSERT IGNORE INTO `columns_priv` VALUES ('','pbx','grafana','sip','user_id','00
INSERT IGNORE INTO `columns_priv` VALUES ('','pbx','grafana','sip','extension','0000-00-00 00:00:00','Select');
INSERT IGNORE INTO `columns_priv` VALUES ('','account','grafana','user','name','0000-00-00 00:00:00','Select');
INSERT IGNORE INTO `columns_priv` VALUES ('','account','grafana','user','active','0000-00-00 00:00:00','Select');
+INSERT IGNORE INTO `columns_priv` VALUES ('','vn','deliveryBoss','volumeConfig','palletM3','0000-00-00 00:00:00','Update');
+INSERT IGNORE INTO `columns_priv` VALUES ('','vn2008','administrative','Tickets','Bultos','0000-00-00 00:00:00','Update');
INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','business','workerFk','0000-00-00 00:00:00','Select');
INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','business','id','0000-00-00 00:00:00','Select');
INSERT IGNORE INTO `columns_priv` VALUES ('','vn','employee','business','departmentFk','0000-00-00 00:00:00','Select');
@@ -1975,9 +1999,8 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','util','productionAssi','midnight','F
INSERT IGNORE INTO `procs_priv` VALUES ('','dipole','employee','expedition_add','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemshelving_transfer','PROCEDURE','alexm@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','coolerBoss','itempacking','FUNCTION','alexm@%','Execute','0000-00-00 00:00:00');
-INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesPerson','ticket_clone','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','cache','employee','available_refresh','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
-INSERT IGNORE INTO `procs_priv` VALUES ('','vn','logistic','ticket_clone','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','ticket_doCmr','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','coolerBoss','ticket_clone','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','payment_add','PROCEDURE','jgallego@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hr','timebusiness_calculatebyuser','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
@@ -1992,7 +2015,6 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','cache','buyer','last_buy_refresh','P
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','supplierpackaging_reportsource','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','cache','buyer','stock_refresh','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','itemshelvingproblem','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
-INSERT IGNORE INTO `procs_priv` VALUES ('','vn','employee','itemshelvingradar','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','cache','employee','visible_refresh','PROCEDURE','alexm@%','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','util','grafana','quarterfirstday','FUNCTION','juan@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','hr','workertimecontrol_sendmailbydepartment','PROCEDURE','alexm@db-proxy2.static.verdnatura.es','Execute','0000-00-00 00:00:00');
@@ -2162,6 +2184,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','collection_printstic
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','deviceproductionuser_getworker','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','ticket_printlabelprevious','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','ticket_isoutclosurezone','FUNCTION','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','packagerBoss','entry_lock','PROCEDURE','jgallego@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','ticketstatetoday_setstate','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','device_checklogin','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','delivery','worker_getfromhasmistake','PROCEDURE','guillermo@db-proxy1.static.verdnatura.es','Execute','0000-00-00 00:00:00');
@@ -2212,6 +2235,7 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','claimManager','entry_getTransfe
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','buyer','entry_getTransfer','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','administrative','intrastat_estimateNet','FUNCTION','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','artificialBoss','confection_controlSource','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','packagerBoss','item_comparative','PROCEDURE','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','util','developer','connection_kill','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','financial','client_getRisk','PROCEDURE','jenkins@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','account','developer','user_hasRole','FUNCTION','root@localhost','Execute','0000-00-00 00:00:00');
@@ -2243,6 +2267,12 @@ INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','saletracking_secto
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','saleSplit','PROCEDURE','carlosap@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','itemShelvingSale_deleteAdded','PROCEDURE','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
INSERT IGNORE INTO `procs_priv` VALUES ('','vn','production','buy_getUltimate','PROCEDURE','guillermo@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','packagerBoss','entry_isintrastat','FUNCTION','carlosap@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','packagerBoss','entry_clone','PROCEDURE','carlosap@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','packagerBoss','buy_getUltimate','PROCEDURE','carlosap@db-proxy2.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','salesAssistant','ticket_clone','PROCEDURE','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','deliveryBoss','roadmap_cloneDay','PROCEDURE','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
+INSERT IGNORE INTO `procs_priv` VALUES ('','vn','deliveryBoss','getTimeBetweenRoadmapAddresses','FUNCTION','guillermo@db-proxy1.servers.dc.verdnatura.es','Execute','0000-00-00 00:00:00');
/*!40000 ALTER TABLE `procs_priv` ENABLE KEYS */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
@@ -2257,6 +2287,7 @@ USE `mysql`;
/*!40000 ALTER TABLE `global_priv` DISABLE KEYS */;
INSERT IGNORE INTO `global_priv` VALUES ('','account','{\"access\": 0, \"is_role\": true,\"version_id\":100707}');
+INSERT IGNORE INTO `global_priv` VALUES ('','adminAssistant','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','adminBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','adminOfficer','{\"access\": 0, \"version_id\": 101106, \"is_role\": true}');
INSERT IGNORE INTO `global_priv` VALUES ('','administrative','{\"access\": 0, \"is_role\": true, \"version_id\": 101106}');
@@ -2307,6 +2338,7 @@ INSERT IGNORE INTO `global_priv` VALUES ('','marketing','{\"access\": 0, \"is_ro
INSERT IGNORE INTO `global_priv` VALUES ('','marketingBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','officeBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','packager','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
+INSERT IGNORE INTO `global_priv` VALUES ('','packagerBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','palletizer','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','palletizerBoss','{\"access\":0,\"version_id\":101106,\"is_role\":true}');
INSERT IGNORE INTO `global_priv` VALUES ('','preservedBoss','{\"access\":0,\"version_id\":100707,\"is_role\":true}');
diff --git a/db/dump/.dump/structure.sql b/db/dump/.dump/structure.sql
index 97f7bc512d..ca8d360044 100644
--- a/db/dump/.dump/structure.sql
+++ b/db/dump/.dump/structure.sql
@@ -5132,7 +5132,7 @@ BEGIN
DECLARE vCalc INT;
DECLARE vWarehouseFk INT;
- DECLARE cWarehouses CURSOR FOR
+ DECLARE cWarehouses CURSOR FOR
SELECT id
FROM vn.warehouse
WHERE isInventory;
@@ -5145,13 +5145,13 @@ BEGIN
read_loop: LOOP
SET vDone = FALSE;
FETCH cWarehouses INTO vWarehouseFk;
-
+
IF vDone THEN
LEAVE read_loop;
END IF;
-
+
CALL cache.visible_refresh(vCalc, FALSE, vWarehouseFk);
-
+
CREATE OR REPLACE TEMPORARY TABLE tVisible
SELECT itemFk, SUM(visible) totalVisible
FROM vn.itemShelving ish
@@ -5160,7 +5160,7 @@ BEGIN
JOIN vn.sector sc ON sc.id = p.sectorFk
WHERE sc.warehouseFk = vWarehouseFk
GROUP BY itemFk;
-
+
INSERT INTO inventoryDiscrepancyDetail(
warehouseFk,
itemFk,
@@ -5188,7 +5188,7 @@ BEGIN
JOIN vn.ticketState ts ON ts.ticketFk = t.id
JOIN vn.alertLevel al ON al.id = ts.alertLevel
WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE())
- AND s.isPicked = FALSE
+ AND NOT s.isPicked
AND al.code = 'FREE'
AND t.warehouseFk = vWarehouseFk
GROUP BY s.itemFk
@@ -5196,7 +5196,6 @@ BEGIN
) s ON s.itemFk = v.item_id
WHERE v.calc_id = vCalc
AND NOT v.visible <=> tv.totalVisible;
-
END LOOP;
CLOSE cWarehouses;
@@ -6112,7 +6111,7 @@ BEGIN
DELETE FROM bs.ventas_contables
WHERE year = vYear
- AND month = vMonth;
+ AND month = vMonth;
DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
CREATE TEMPORARY TABLE tmp.ticket_list
@@ -7044,7 +7043,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `available_refresh`(
OUT `vCalc` INT,
`vRefresh` INT,
`vWarehouse` INT,
- `vDated` DATE
+ `vAvailabled` DATETIME
)
proc: BEGIN
DECLARE vStartDate DATE;
@@ -7053,6 +7052,7 @@ proc: BEGIN
DECLARE vInventoryDate DATE;
DECLARE vLifeScope DATE;
DECLARE vWarehouseFkInventory INT;
+ DECLARE vDated DATE;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
@@ -7060,13 +7060,17 @@ proc: BEGIN
RESIGNAL;
END;
- IF vDated < util.VN_CURDATE() THEN
+ IF vAvailabled < util.VN_CURDATE() THEN
LEAVE proc;
END IF;
+ SET vDated = DATE(vAvailabled);
+
+ SET vAvailabled = vDated + INTERVAL HOUR(vAvailabled) HOUR;
+
CALL vn.item_getStock(vWarehouse, vDated, NULL);
- SET vParams = CONCAT_WS('/', vWarehouse, vDated);
+ SET vParams = CONCAT_WS('/', vWarehouse, vAvailabled);
CALL cache_calc_start (vCalc, vRefresh, 'available', vParams);
IF !vRefresh THEN
@@ -7128,11 +7132,10 @@ proc: BEGIN
SELECT i.itemFk, i.landed, i.quantity
FROM vn.itemEntryIn i
JOIN itemRange ir ON ir.itemFk = i.itemFk
- LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = i.entryFk
WHERE i.landed >= vStartDate
+ AND IFNULL(i.availabled, i.landed) <= vAvailabled
AND (ir.ended IS NULL OR i.landed <= ir.ended)
AND i.warehouseInFk = vWarehouse
- AND ISNULL(wf.entryFk)
UNION ALL
SELECT i.itemFk, i.shipped, i.quantity
FROM vn.itemEntryOut i
@@ -16760,12 +16763,12 @@ DELIMITER ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `accountingMovements_add`(
- vYear INT,
+ vYear INT,
vCompanyFk INT
)
BEGIN
/**
- * Traslada la info de contabilidad generada en base a vn.XDiario a la tabla sage.movConta
+ * Traslada la info de contabilidad generada en base a vn.XDiario a la tabla sage.movConta
* para poder ejecutar posteriormente el proceso de importación de datos de SQL Server
* Solo traladará los asientos marcados con el campo vn.XDiario.enlazadoSage = FALSE
* @vYear Año contable del que se quiere trasladar la información
@@ -16783,6 +16786,7 @@ BEGIN
DECLARE vInvoiceTypeInformativeCode VARCHAR(1);
DECLARE vCountryCanariasCode, vCountryCeutaMelillaCode VARCHAR(2);
DECLARE vCompanyCode INT;
+ DECLARE vHasErrorTax BOOL DEFAULT FALSE;
SELECT SiglaNacion INTO vCountryCanariasCode
FROM Naciones
@@ -16804,12 +16808,12 @@ BEGIN
FROM taxType
WHERE code = 'import4';
- SELECT shipmentTransactionTypeFk,
- definitiveExportTransactionTypeFk,
+ SELECT shipmentTransactionTypeFk,
+ definitiveExportTransactionTypeFk,
pendingServiceTransactionTypeFk,
company_getCode(vCompanyFk)
INTO vTransactionExportTaxFreeFk,
- vTransactionExportFk,
+ vTransactionExportFk,
vDuaTransactionFk,
vCompanyCode
FROM config;
@@ -16826,6 +16830,24 @@ BEGIN
WHERE enlazadoSage = FALSE
AND Asiento <> 1 ;
+ SELECT EXISTS (
+ SELECT TRUE
+ FROM vn.XDiario x
+ JOIN vn.invoiceIn ii ON ii.id = x.CLAVE
+ JOIN vn.invoiceInTax it ON it.invoiceInFk = ii.id
+ LEFT JOIN TiposIva ti ON ti.CodigoIva = it.taxTypeSageFk
+ LEFT JOIN taxType tt ON tt.id = it.taxTypeSageFk
+ WHERE x.FECHA BETWEEN vDatedFrom AND vDatedTo
+ AND NOT x.enlazadoSage
+ AND x.empresa_id = vCompanyFk
+ AND it.taxTypeSageFk
+ AND (ti.CodigoIva IS NULL OR tt.id IS NULL)
+ ) INTO vHasErrorTax;
+
+ IF vHasErrorTax tHEN
+ CALL util.throw ('Error in tables for received invoices tax');
+ END IF;
+
CALL invoiceOut_manager(vYear, vCompanyFk);
CALL invoiceIn_manager(vYear, vCompanyFk);
@@ -17066,8 +17088,8 @@ BEGIN
mci.FechaFacturaOriginal = x.FECHA_EX,
mci.SuFacturaNo = x.FACTURAEX,
mci.FechaOperacion = x.FECHA_OP,
- mci.ImporteFactura = mci.ImporteFactura +
- x.BASEEURO +
+ mci.ImporteFactura = mci.ImporteFactura +
+ x.BASEEURO +
CAST((x.IVA / 100) * x.BASEEURO AS DECIMAL(10, 2))
WHERE pm.description = 'HP Iva pendiente'
AND mci.enlazadoSage = FALSE
@@ -17086,7 +17108,7 @@ BEGIN
mci.CodigoIva2 = vTaxImportFk,
mci.IvaDeducible2 = TRUE,
mci.ImporteFactura = mci.ImporteFactura +
- x.BASEEURO +
+ x.BASEEURO +
CAST((x.IVA / 100) * x.BASEEURO AS DECIMAL(10, 2))
WHERE pm.description = 'HP Iva pendiente'
AND mci.enlazadoSage = FALSE
@@ -17104,8 +17126,8 @@ BEGIN
mci.CodigoTransaccion3 = vDuaTransactionFk ,
mci.CodigoIva3 = vTaxImportSuperReducedFk,
mci.IvaDeducible3 = TRUE,
- mci.ImporteFactura = mci.ImporteFactura +
- x.BASEEURO +
+ mci.ImporteFactura = mci.ImporteFactura +
+ x.BASEEURO +
CAST((x.IVA / 100) * x.BASEEURO AS DECIMAL(10, 2))
WHERE pm.description = 'HP Iva pendiente'
AND mci.enlazadoSage = FALSE
@@ -17139,14 +17161,14 @@ BEGIN
OR CodigoTransaccion2 = vTransactionExportFk
OR CodigoTransaccion3 = vTransactionExportFk
OR CodigoTransaccion4 = vTransactionExportFk)
- AND SiglaNacion IN (vCountryCanariasCode COLLATE utf8mb3_unicode_ci,
+ AND SiglaNacion IN (vCountryCanariasCode COLLATE utf8mb3_unicode_ci,
vCountryCeutaMelillaCode COLLATE utf8mb3_unicode_ci);
UPDATE movConta mc
SET CodigoDivisa = 'USD',
FactorCambio = TRUE,
- ImporteCambio = ABS( CAST( IF( ImporteDivisa <> 0 AND ImporteCambio = 0,
- ImporteAsiento / ImporteDivisa,
+ ImporteCambio = ABS( CAST( IF( ImporteDivisa <> 0 AND ImporteCambio = 0,
+ ImporteAsiento / ImporteDivisa,
ImporteCambio) AS DECIMAL( 10, 2)))
WHERE enlazadoSage = FALSE
AND (ImporteCambio <> 0 OR ImporteDivisa <> 0 OR FactorCambio);
@@ -17163,20 +17185,20 @@ BEGIN
WITH client AS(
SELECT DISTINCT c.id
FROM sage.movConta mc
- JOIN vn.client c ON c.accountingAccount = mc.CodigoCuenta
- WHERE NOT enlazadoSage
- ),supplier AS(
+ JOIN vn.client c ON c.accountingAccount = mc.CodigoCuenta
+ WHERE NOT enlazadoSage
+ ),supplier AS(
SELECT DISTINCT s.id
FROM sage.movConta mc
- JOIN vn.supplier s ON s.account = mc.CodigoCuenta
- WHERE NOT enlazadoSage
+ JOIN vn.supplier s ON s.account = mc.CodigoCuenta
+ WHERE NOT enlazadoSage
),clientSupplierSync AS(
SELECT idClientSupplier, `type`
- FROM sage.clientSupplier cs
- WHERE isSync
+ FROM sage.clientSupplier cs
+ WHERE isSync
)
SELECT idClientSupplier, `type`
- FROM sage.clientSupplier cs
+ FROM sage.clientSupplier cs
WHERE NOT isSync
UNION
SELECT id, 'C'
@@ -17184,7 +17206,7 @@ BEGIN
LEFT JOIN clientSupplierSync cs ON cs.idClientSupplier = c.id
AND cs.Type ='C'
WHERE cs.idClientSupplier IS NULL
- UNION
+ UNION
SELECT id, 'P'
FROM supplier s
LEFT JOIN clientSupplierSync cs ON cs.idClientSupplier = s.id
@@ -17196,7 +17218,7 @@ BEGIN
INSERT IGNORE INTO sage.clientSupplier (companyFk, `type`, idClientSupplier, isSync)
SELECT vCompanyCode, `type`, idClientSupplier, FALSE
FROM tmp.clientSupplier;
-
+
DROP TEMPORARY TABLE tmp.clientSupplier;
CALL pgc_add(vCompanyFk);
@@ -26037,7 +26059,8 @@ DROP TABLE IF EXISTS `agencyIncoming`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `agencyIncoming` (
`agencyModeFk` int(11) NOT NULL,
- PRIMARY KEY (`agencyModeFk`)
+ PRIMARY KEY (`agencyModeFk`),
+ CONSTRAINT `fk_agencyIncoming_agencyMode` FOREIGN KEY (`agencyModeFk`) REFERENCES `agencyMode` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Agencias de entrada de mercancias';
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -26105,6 +26128,19 @@ CREATE TABLE `agencyMode` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Temporary table structure for view `agencyModeIncoming`
+--
+
+DROP TABLE IF EXISTS `agencyModeIncoming`;
+/*!50001 DROP VIEW IF EXISTS `agencyModeIncoming`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `agencyModeIncoming` AS SELECT
+ 1 AS `id`,
+ 1 AS `name` */;
+SET character_set_client = @saved_cs_client;
+
--
-- Table structure for table `agencyModeItemType`
--
@@ -26419,6 +26455,7 @@ CREATE TABLE `awb` (
`hasFreightPrepaid` tinyint(3) DEFAULT 0,
`invoiceInPaletizedFk` mediumint(8) unsigned DEFAULT NULL,
`propertyNumber` int(11) DEFAULT NULL,
+ `costPerKg` decimal(10,2) unsigned DEFAULT NULL COMMENT 'Tarifa que indica a cuanto cuesta el kilo en ese vuelo',
PRIMARY KEY (`id`),
UNIQUE KEY `codigo_UNIQUE` (`code`,`year`),
KEY `proveedor_id` (`transitoryFk`),
@@ -26961,6 +26998,7 @@ CREATE TABLE `business` (
KEY `business_fk_editor` (`editorFk`),
CONSTRAINT `business_FK` FOREIGN KEY (`workerBusinessProfessionalCategoryFk`) REFERENCES `professionalCategory` (`id`) ON UPDATE CASCADE,
CONSTRAINT `business_calendarTypeFk` FOREIGN KEY (`calendarTypeFk`) REFERENCES `calendarType` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `business_companyCodeFk` FOREIGN KEY (`companyCodeFk`) REFERENCES `company` (`code`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `business_departmentFk` FOREIGN KEY (`departmentFk`) REFERENCES `department` (`id`) ON UPDATE CASCADE,
CONSTRAINT `business_fk_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`),
CONSTRAINT `business_occupationCodeFk` FOREIGN KEY (`occupationCodeFk`) REFERENCES `occupationCode` (`code`) ON UPDATE CASCADE,
@@ -32301,7 +32339,8 @@ SET character_set_client = utf8;
1 AS `quantity`,
1 AS `isReceived`,
1 AS `isVirtualStock`,
- 1 AS `entryFk` */;
+ 1 AS `entryFk`,
+ 1 AS `availabled` */;
SET character_set_client = @saved_cs_client;
--
@@ -33607,6 +33646,7 @@ CREATE TABLE `mandate` (
`created` timestamp NULL DEFAULT current_timestamp(),
`finished` timestamp NULL DEFAULT NULL,
`mandateTypeFk` smallint(5) NOT NULL,
+ `editorFk` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `mandato_fgkey1_idx` (`clientFk`),
KEY `mandato_fgkey2_idx` (`companyFk`),
@@ -33617,6 +33657,36 @@ CREATE TABLE `mandate` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Table structure for table `mandateLog`
+--
+
+DROP TABLE IF EXISTS `mandateLog`;
+/*!40101 SET @saved_cs_client = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mandateLog` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
+ `originFk` int(11) DEFAULT NULL,
+ `userFk` int(10) unsigned DEFAULT NULL,
+ `action` set('insert','update','delete','select') NOT NULL,
+ `creationDate` timestamp NULL DEFAULT current_timestamp(),
+ `description` text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
+ `changedModel` enum('client') NOT NULL DEFAULT 'client',
+ `oldInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`oldInstance`)),
+ `newInstance` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`newInstance`)),
+ `changedModelId` int(11) NOT NULL,
+ `changedModelValue` varchar(45) DEFAULT NULL,
+ `summaryId` varchar(30) DEFAULT NULL,
+ `reason` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ KEY `logMandate_userFk` (`userFk`),
+ KEY `mandateLog_changedModel` (`changedModel`,`changedModelId`,`creationDate`),
+ KEY `mandateLog_originFk` (`originFk`,`creationDate`),
+ KEY `mandateLog_creationDate_IDX` (`creationDate` DESC) USING BTREE,
+ CONSTRAINT `mandateUserFk` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
--
-- Table structure for table `mandateType`
--
@@ -34364,6 +34434,7 @@ CREATE TABLE `packaging` (
`isPallet` tinyint(1) NOT NULL DEFAULT 0,
`isPlantTray` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'The container is a plant tray. Used to restrict the picking of full plant trays, to make previous picking.',
`isActive` tinyint(1) DEFAULT 1,
+ `flippingCost` decimal(10,2) NOT NULL DEFAULT 0.00,
PRIMARY KEY (`id`),
KEY `packaging_fk1` (`itemFk`),
KEY `packaging_fk2_idx` (`freightItemFk`),
@@ -35080,7 +35151,9 @@ CREATE TABLE `postCode` (
`geoFk` int(11) DEFAULT NULL,
PRIMARY KEY (`code`,`townFk`),
KEY `postCodeTownFk_idx` (`townFk`),
- CONSTRAINT `postCodeTownFk` FOREIGN KEY (`townFk`) REFERENCES `town` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE
+ KEY `postCode_zoneGeo_FK` (`geoFk`),
+ CONSTRAINT `postCodeTownFk` FOREIGN KEY (`townFk`) REFERENCES `town` (`id`) ON DELETE NO ACTION ON UPDATE CASCADE,
+ CONSTRAINT `postCode_zoneGeo_FK` FOREIGN KEY (`geoFk`) REFERENCES `zoneGeo` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -35821,8 +35894,10 @@ CREATE TABLE `province` (
KEY `warehouse_Id` (`warehouseFk`),
KEY `provicne_zone_fk_idx` (`zoneFk`),
KEY `province_FK` (`autonomyFk`),
+ KEY `province_zoneGeo_FK` (`geoFk`),
CONSTRAINT `province_FK` FOREIGN KEY (`autonomyFk`) REFERENCES `autonomy` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `province_ibfk_1` FOREIGN KEY (`countryFk`) REFERENCES `country` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `province_zoneGeo_FK` FOREIGN KEY (`geoFk`) REFERENCES `zoneGeo` (`id`) ON UPDATE CASCADE,
CONSTRAINT `province_zone_FK` FOREIGN KEY (`zoneFk`) REFERENCES `zone` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `warehouse_Id` FOREIGN KEY (`warehouseFk`) REFERENCES `warehouse` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
@@ -36056,7 +36131,6 @@ CREATE TABLE `recovery` (
PRIMARY KEY (`id`),
KEY `cliente_idx` (`clientFk`),
KEY `recovery_fk_editor` (`editorFk`),
- CONSTRAINT `cliente333` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON UPDATE CASCADE,
CONSTRAINT `cliente_cliente` FOREIGN KEY (`clientFk`) REFERENCES `client` (`id`) ON UPDATE CASCADE,
CONSTRAINT `recovery_fk_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='En esta tabla apuntaremos los acuerdos de recobro semanal a ';
@@ -36173,34 +36247,44 @@ DROP TABLE IF EXISTS `roadmap`;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `roadmap` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `name` varchar(45) NOT NULL,
+ `name` varchar(45) DEFAULT NULL,
+ `roadmapAddressFk` int(11) DEFAULT NULL,
`tractorPlate` varchar(10) DEFAULT NULL,
- `trailerPlate` varchar(12) DEFAULT NULL,
+ `trailerPlate` varchar(10) DEFAULT NULL,
+ `dollyPlate` varchar(10) DEFAULT NULL COMMENT 'Vehículo sin motor diseñado para conectarse a una unidad tractora, un camión o un vehículo tractor con fuerte potencia de tracción',
+ `tugPlate` varchar(10) DEFAULT NULL,
`phone` varchar(15) DEFAULT NULL,
`supplierFk` int(10) unsigned DEFAULT NULL,
- `etd` datetime NOT NULL,
+ `etd` datetime NOT NULL COMMENT 'Tiempo estimado de salida',
`observations` varchar(255) DEFAULT NULL,
`created` timestamp NULL DEFAULT current_timestamp(),
- `userFk` int(10) unsigned DEFAULT NULL,
`price` decimal(10,2) DEFAULT NULL,
`driverName` varchar(45) DEFAULT NULL,
+ `driver1Fk` int(10) unsigned DEFAULT NULL,
+ `driver2Fk` int(10) unsigned DEFAULT NULL,
+ `driverChangeName` varchar(45) DEFAULT NULL,
+ `driverChangeFk` int(10) unsigned DEFAULT NULL,
`kmStart` mediumint(9) DEFAULT NULL,
`kmEnd` mediumint(9) DEFAULT NULL,
`started` datetime DEFAULT NULL,
`finished` datetime DEFAULT NULL,
- `m3` int(10) unsigned DEFAULT NULL,
- `driver2Fk` int(10) unsigned DEFAULT NULL,
- `driver1Fk` int(10) unsigned DEFAULT NULL,
+ `m3` int(10) unsigned DEFAULT NULL COMMENT 'Capacidad máxima del remolque',
+ `editorFk` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
- KEY `userFk` (`userFk`),
KEY `roadmap_supplierFk` (`supplierFk`),
- KEY `roadmap_worker_FK` (`driver1Fk`),
- KEY `roadmap_worker_FK_2` (`driver2Fk`),
- CONSTRAINT `roadmap_ibfk_2` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE,
+ KEY `roadmap_etd_IDX` (`etd`) USING BTREE,
+ KEY `roadmap_roadmapAddress_FK` (`roadmapAddressFk`),
+ KEY `roadmap_driver_FK` (`driver1Fk`),
+ KEY `roadmap_driver_FK2` (`driver2Fk`),
+ KEY `roadmap_driverChange_FK` (`driverChangeFk`),
+ KEY `roadmap_user_Fk` (`editorFk`),
+ CONSTRAINT `roadmap_driverChange_FK` FOREIGN KEY (`driverChangeFk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `roadmap_driver_FK` FOREIGN KEY (`driver1Fk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `roadmap_driver_FK2` FOREIGN KEY (`driver2Fk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `roadmap_roadmapAddress_FK` FOREIGN KEY (`roadmapAddressFk`) REFERENCES `roadmapAddress` (`addressFk`) ON UPDATE CASCADE,
CONSTRAINT `roadmap_supplierFk` FOREIGN KEY (`supplierFk`) REFERENCES `supplier` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `roadmap_worker_FK` FOREIGN KEY (`driver1Fk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `roadmap_worker_FK_2` FOREIGN KEY (`driver2Fk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Troncales diarios que se contratan';
+ CONSTRAINT `roadmap_user_Fk` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Rutas troncales (trailers)';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -36215,9 +36299,22 @@ CREATE TABLE `roadmapAddress` (
`isActive` tinyint(4) DEFAULT 1,
PRIMARY KEY (`addressFk`),
CONSTRAINT `roadmapAddress_address_FK` FOREIGN KEY (`addressFk`) REFERENCES `address` (`id`) ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Direcciones de los troncales';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Direcciones de los troncales o también llamados puntos de distribución';
/*!40101 SET character_set_client = @saved_cs_client */;
+--
+-- Temporary table structure for view `roadmapEta`
+--
+
+DROP TABLE IF EXISTS `roadmapEta`;
+/*!50001 DROP VIEW IF EXISTS `roadmapEta`*/;
+SET @saved_cs_client = @@character_set_client;
+SET character_set_client = utf8;
+/*!50001 CREATE VIEW `roadmapEta` AS SELECT
+ 1 AS `id`,
+ 1 AS `eta` */;
+SET character_set_client = @saved_cs_client;
+
--
-- Table structure for table `roadmapStop`
--
@@ -36228,22 +36325,22 @@ DROP TABLE IF EXISTS `roadmapStop`;
CREATE TABLE `roadmapStop` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`roadmapFk` int(10) unsigned DEFAULT NULL,
- `addressFk` int(11) DEFAULT NULL,
+ `roadmapAddressFk` int(11) DEFAULT NULL,
`eta` datetime DEFAULT NULL COMMENT 'Estimated time of arrival',
`description` varchar(45) NOT NULL,
`bufferFk` int(11) DEFAULT NULL COMMENT 'buffer destino de las cajas',
`created` timestamp NULL DEFAULT current_timestamp(),
- `userFk` int(10) unsigned DEFAULT NULL,
+ `editorFk` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `expeditionTruck_idx1` (`eta`),
KEY `expeditionTruck_FK` (`bufferFk`),
- KEY `expeditionTruck_FK_2` (`roadmapFk`),
- KEY `expeditionTruck_FK_3` (`userFk`),
- KEY `roadmapStop_roadmapAddress_FK` (`addressFk`),
+ KEY `expeditionTruck_FK_3` (`editorFk`),
+ KEY `roadmapStop_roadmapAddress_FK` (`roadmapAddressFk`),
+ KEY `roadmapStop_roadmap_FK` (`roadmapFk`),
CONSTRAINT `expeditionTruck_FK` FOREIGN KEY (`bufferFk`) REFERENCES `srt`.`buffer` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
- CONSTRAINT `expeditionTruck_FK_2` FOREIGN KEY (`roadmapFk`) REFERENCES `roadmap` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `expeditionTruck_FK_3` FOREIGN KEY (`userFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE,
- CONSTRAINT `roadmapStop_roadmapAddress_FK` FOREIGN KEY (`addressFk`) REFERENCES `roadmapAddress` (`addressFk`) ON UPDATE CASCADE
+ CONSTRAINT `expeditionTruck_FK_3` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`) ON UPDATE CASCADE,
+ CONSTRAINT `roadmapStop_roadmapAddress_FK` FOREIGN KEY (`roadmapAddressFk`) REFERENCES `roadmapAddress` (`addressFk`) ON UPDATE CASCADE,
+ CONSTRAINT `roadmapStop_roadmap_FK` FOREIGN KEY (`roadmapFk`) REFERENCES `roadmap` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Distintas paradas que hacen los trocales';
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -36303,26 +36400,26 @@ CREATE TABLE `route` (
`cost` double unsigned DEFAULT NULL,
`m3` decimal(10,1) unsigned DEFAULT NULL,
`description` text DEFAULT NULL,
- `zoneFk` int(11) DEFAULT NULL,
`priority` int(11) NOT NULL DEFAULT 0,
`invoiceInFk` mediumint(8) unsigned DEFAULT NULL,
`beachFk` int(11) DEFAULT NULL,
`commissionWorkCenterFk` int(11) DEFAULT NULL COMMENT 'WorkerCenter que gestiona la ruta',
- `editorFk` int(10) unsigned DEFAULT NULL,
`dated` date NOT NULL,
+ `roadmapStopFk` int(11) DEFAULT NULL,
+ `editorFk` int(10) unsigned DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `Id_Agencia` (`agencyModeFk`),
KEY `Fecha` (`created`),
KEY `gestdoc_id` (`gestdocFk`),
KEY `route_ibfk_2_idx` (`workerFk`),
- KEY `fk_route_1_idx` (`zoneFk`),
KEY `asdfasdf_idx` (`invoiceInFk`),
KEY `route_idxIsOk` (`isOk`),
KEY `route_WorkCenterFk_idx` (`commissionWorkCenterFk`),
KEY `route_fk_editor` (`editorFk`),
KEY `route_vehicleFk` (`vehicleFk`),
KEY `route_firstEditorFk` (`firstEditorFk`),
- CONSTRAINT `fk_route_1` FOREIGN KEY (`zoneFk`) REFERENCES `zone` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ KEY `route_roadmapStop_FK` (`roadmapStopFk`),
+ KEY `route_dated_IDX` (`dated`) USING BTREE,
CONSTRAINT `route_WorkCenterFk` FOREIGN KEY (`commissionWorkCenterFk`) REFERENCES `workCenter` (`id`) ON UPDATE CASCADE,
CONSTRAINT `route_firstEditorFk` FOREIGN KEY (`firstEditorFk`) REFERENCES `account`.`user` (`id`),
CONSTRAINT `route_fk5` FOREIGN KEY (`agencyModeFk`) REFERENCES `agencyMode` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
@@ -36330,6 +36427,7 @@ CREATE TABLE `route` (
CONSTRAINT `route_ibfk_1` FOREIGN KEY (`gestdocFk`) REFERENCES `dms` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT `route_ibfk_2` FOREIGN KEY (`workerFk`) REFERENCES `worker` (`id`) ON UPDATE CASCADE,
CONSTRAINT `route_invoiceInFk` FOREIGN KEY (`invoiceInFk`) REFERENCES `invoiceIn` (`id`) ON DELETE SET NULL ON UPDATE CASCADE,
+ CONSTRAINT `route_roadmapStop_FK` FOREIGN KEY (`roadmapStopFk`) REFERENCES `roadmapStop` (`id`) ON UPDATE CASCADE,
CONSTRAINT `route_vehicleFk` FOREIGN KEY (`vehicleFk`) REFERENCES `vehicle` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -37749,13 +37847,13 @@ CREATE TABLE `solunionCAP` (
/*!40101 SET character_set_client = @saved_cs_client */;
--
--- Table structure for table `sorter`
+-- Table structure for table `sorter__`
--
-DROP TABLE IF EXISTS `sorter`;
+DROP TABLE IF EXISTS `sorter__`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `sorter` (
+CREATE TABLE `sorter__` (
`id` int(11) NOT NULL DEFAULT 0,
`created` datetime NOT NULL,
`routeFk` int(10) unsigned NOT NULL,
@@ -37772,7 +37870,7 @@ CREATE TABLE `sorter` (
`palletOrder` int(5) DEFAULT NULL,
`lungGrow` int(11) DEFAULT 0,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='@deprecated 2025-01-22';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -37895,13 +37993,13 @@ CREATE TABLE `splitFilter` (
/*!40101 SET character_set_client = @saved_cs_client */;
--
--- Table structure for table `splitLine`
+-- Table structure for table `splitLine__`
--
-DROP TABLE IF EXISTS `splitLine`;
+DROP TABLE IF EXISTS `splitLine__`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `splitLine` (
+CREATE TABLE `splitLine__` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`splitFk` int(11) NOT NULL,
`itemFk` int(11) DEFAULT NULL,
@@ -37910,8 +38008,8 @@ CREATE TABLE `splitLine` (
KEY `Id_Split` (`splitFk`),
KEY `Id_Compra` (`buyFk`),
CONSTRAINT `Id_Compra` FOREIGN KEY (`buyFk`) REFERENCES `buy` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
- CONSTRAINT `splitLine_ibfk_1` FOREIGN KEY (`splitFk`) REFERENCES `split` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
+ CONSTRAINT `splitLine___ibfk_1` FOREIGN KEY (`splitFk`) REFERENCES `split` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='@deprecated 2025-01-22';
/*!40101 SET character_set_client = @saved_cs_client */;
--
@@ -38415,6 +38513,7 @@ CREATE TABLE `tag` (
`unit` varchar(45) DEFAULT NULL,
`ediTypeFk` varchar(3) DEFAULT NULL,
`overwrite` varchar(45) DEFAULT NULL COMMENT 'nombre del campo de item a sobreescribir con el valor del tag, hay que añadir el código correspondiente en item_refreshTags',
+ `validationRegex` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `tagNameIdx` (`name`,`ediTypeFk`),
UNIQUE KEY `tagEdiTypeFkIdx` (`ediTypeFk`)
@@ -39429,7 +39528,9 @@ CREATE TABLE `town` (
PRIMARY KEY (`id`),
KEY `name_idx` (`name`),
KEY `townProvinceFk` (`provinceFk`),
- CONSTRAINT `townProvinceFk` FOREIGN KEY (`provinceFk`) REFERENCES `province` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
+ KEY `town_zoneGeo_FK` (`geoFk`),
+ CONSTRAINT `townProvinceFk` FOREIGN KEY (`provinceFk`) REFERENCES `province` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
+ CONSTRAINT `town_zoneGeo_FK` FOREIGN KEY (`geoFk`) REFERENCES `zoneGeo` (`id`) ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -39599,20 +39700,21 @@ CREATE TABLE `travel` (
`landingHour` time DEFAULT NULL,
`warehouseInFk` smallint(6) unsigned DEFAULT NULL,
`warehouseOutFk` smallint(6) unsigned DEFAULT NULL,
- `ref` varchar(20) DEFAULT NULL,
+ `ref` varchar(25) DEFAULT NULL,
`isDelivered` tinyint(1) NOT NULL DEFAULT 0,
`isReceived` tinyint(1) NOT NULL DEFAULT 0,
`m3` decimal(10,2) unsigned DEFAULT NULL,
`kg` decimal(10,0) unsigned DEFAULT NULL,
`cargoSupplierFk` int(11) DEFAULT NULL,
`totalEntries` tinyint(4) unsigned DEFAULT 0,
- `appointment` datetime DEFAULT NULL,
+ `appointment__` datetime DEFAULT NULL COMMENT '@deprecated 2025-01-28',
`agencyModeFk` int(11) DEFAULT NULL,
`clonedFrom` int(11) DEFAULT NULL,
`editorFk` int(10) unsigned DEFAULT NULL,
`awbFk` smallint(11) unsigned DEFAULT NULL,
`daysInForward` int(10) unsigned DEFAULT NULL COMMENT 'Cuando es una redada, indica el número de días que se añadirán a la fecha de hoy para establecer el landed. NULL si no es una redada',
`isRaid` tinyint(1) NOT NULL DEFAULT 0 COMMENT 'Redada',
+ `availabled` datetime DEFAULT NULL COMMENT 'Indicates the moment in time when the goods become available for picking',
PRIMARY KEY (`id`),
UNIQUE KEY `shipment_1` (`shipped`,`landed`,`warehouseInFk`,`warehouseOutFk`,`agencyModeFk`,`ref`),
KEY `shipment` (`shipped`),
@@ -39778,6 +39880,7 @@ CREATE TABLE `travelThermograph` (
`maxTemperature` decimal(5,2) DEFAULT NULL,
`minTemperature` decimal(5,2) DEFAULT NULL,
`editorFk` int(10) unsigned DEFAULT NULL,
+ `agencyModeFk` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `thermograph_fk_idx` (`thermographFk`),
KEY `gestdoc_fk_idx` (`dmsFk`),
@@ -39785,11 +39888,13 @@ CREATE TABLE `travelThermograph` (
KEY `warehouse_id` (`warehouseFk`),
KEY `travelThermographTemperatureFgn` (`temperatureFk`),
KEY `travelThermograph_fk_editor` (`editorFk`),
+ KEY `travelThermograph_agencyIncoming_fk` (`agencyModeFk`),
CONSTRAINT `travelThermographDmsFgn` FOREIGN KEY (`dmsFk`) REFERENCES `dms` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `travelThermographTemperatureFgn` FOREIGN KEY (`temperatureFk`) REFERENCES `temperature` (`code`),
CONSTRAINT `travelThermographThermographFgn` FOREIGN KEY (`thermographFk`) REFERENCES `thermograph` (`id`) ON UPDATE CASCADE,
CONSTRAINT `travelThermographTravelFgn` FOREIGN KEY (`travelFk`) REFERENCES `travel` (`id`),
CONSTRAINT `travelThermographWarehouseFgn` FOREIGN KEY (`warehouseFk`) REFERENCES `warehouse` (`id`) ON DELETE CASCADE,
+ CONSTRAINT `travelThermograph_agencyIncoming_fk` FOREIGN KEY (`agencyModeFk`) REFERENCES `agencyIncoming` (`agencyModeFk`) ON UPDATE CASCADE,
CONSTRAINT `travelThermograph_fk_editor` FOREIGN KEY (`editorFk`) REFERENCES `account`.`user` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='Registra cada termografo que se ha introducido en cada travel';
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -39924,6 +40029,7 @@ CREATE TABLE `vehicle` (
`supplierCoolerFk` int(10) unsigned DEFAULT NULL,
`vin` varchar(50) DEFAULT NULL,
`bankPolicyFk` int(11) DEFAULT NULL,
+ `typeFk` enum('car','van','truck','trailer','tug','dolly','trailerLink') NOT NULL DEFAULT 'van',
PRIMARY KEY (`id`),
UNIQUE KEY `vehicle_UN` (`numberPlate`),
KEY `empresa_id` (`companyFk`),
@@ -40135,6 +40241,7 @@ DROP TABLE IF EXISTS `volumeConfig`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `volumeConfig` (
+ `id` int(11) NOT NULL AUTO_INCREMENT,
`palletM3` decimal(10,2) DEFAULT NULL COMMENT 'metros cúbicos',
`trolleyM3` decimal(10,2) DEFAULT NULL COMMENT 'metros cúbicos',
`dutchCompressionRate` double NOT NULL DEFAULT 1,
@@ -40146,7 +40253,8 @@ CREATE TABLE `volumeConfig` (
`minTicketVolume` int(11) NOT NULL DEFAULT 75 COMMENT 'volumen mínimo, en litros, para que un pedido sea preparable',
`shelveVolume` int(11) DEFAULT 200 COMMENT 'volumen en litros de una bandeja standard, a efectos de los sacadores',
`minTicketValue` int(11) NOT NULL DEFAULT 50,
- `aerealVolumetricDensity` decimal(10,1) DEFAULT 167.0 COMMENT 'factor de conversión para calcular el peso tasable aereo'
+ `aerealVolumetricDensity` decimal(10,1) DEFAULT 167.0 COMMENT 'factor de conversión para calcular el peso tasable aereo',
+ PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='almacena el valor standard para volumenes convencionales de Verdnatura, en metros cúbicos';
/*!40101 SET character_set_client = @saved_cs_client */;
@@ -43867,6 +43975,79 @@ DELIMITER ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP FUNCTION IF EXISTS `getTimeBetweenRoadmapAddresses` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`vn`@`localhost` FUNCTION `getTimeBetweenRoadmapAddresses`(vRoadmapAddressFrom INT,
+ vRoadmapAddressTo INT
+) RETURNS int(11)
+ DETERMINISTIC
+BEGIN
+/**
+ * Retorna el tiempo en segundos que se suele tardar en ir
+ * de un punto de distribución a otro en una ruta troncal.
+ *
+ * @param vRoadmapAddressFrom Punto de distribución de origen
+ * @param vRoadmapAddressTo Punto de distribución de destino
+ * @return Tiempo en segundos
+ */
+ DECLARE vSeconds INT;
+
+ WITH wRoadmapStop AS (
+ SELECT ROW_NUMBER() OVER(PARTITION BY roadmapFk ORDER BY eta) `sequence`,
+ roadmapFk,
+ roadmapAddressFk,
+ eta
+ FROM vn.roadmapStop
+ WHERE roadmapFk IS NOT NULL
+ AND roadmapAddressFk IS NOT NULL
+ AND eta IS NOT NULL
+ )
+ SELECT AVG(TIME_TO_SEC(TIMEDIFF(rsTo.eta, rsFrom.eta))) INTO vSeconds
+ FROM wRoadmapStop rsFrom
+ JOIN wRoadmapStop rsTo ON rsTo.roadmapFk = rsFrom.roadmapFk
+ WHERE rsFrom.roadmapAddressFk = vRoadmapAddressFrom
+ AND rsTo.roadmapAddressFk = vRoadmapAddressTo
+ AND rsFrom.`sequence` + 1 = rsTo.`sequence`;
+
+ IF NOT IFNULL(vSeconds, 0) THEN
+ WITH wRoadmap AS (
+ SELECT id,
+ roadmapAddressFk,
+ etd
+ FROM vn.roadmap
+ WHERE roadmapAddressFk = vRoadmapAddressFrom
+ AND etd IS NOT NULL
+ ), wRoadmapStop AS (
+ SELECT ROW_NUMBER() OVER(PARTITION BY roadmapFk ORDER BY eta) `sequence`,
+ roadmapFk,
+ roadmapAddressFk,
+ eta
+ FROM vn.roadmapStop
+ WHERE roadmapFk IS NOT NULL
+ AND roadmapAddressFk = vRoadmapAddressTo
+ AND eta IS NOT NULL
+ )
+ SELECT AVG(TIME_TO_SEC(TIMEDIFF(rsTo.eta, rFrom.etd))) INTO vSeconds
+ FROM wRoadmap rFrom
+ JOIN wRoadmapStop rsTo ON rsTo.roadmapFk = rFrom.id
+ AND rsTo.`sequence` = 1;
+ END IF;
+
+ RETURN vSeconds;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
/*!50003 DROP FUNCTION IF EXISTS `getUser` */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
@@ -54725,23 +54906,34 @@ DELIMITER ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
DELIMITER ;;
-CREATE DEFINER=`vn`@`localhost` PROCEDURE `entry_clone`(vSelf INT)
+CREATE DEFINER=`vn`@`localhost` PROCEDURE `entry_clone`(
+ vSelf INT,
+ OUT vOutputEntryFk INT
+)
BEGIN
/**
* clones an entry.
*
* @param vSelf The entry id
+ * @param vOutputEntryFk The new entry id
*/
DECLARE vNewEntryFk INT;
- START TRANSACTION;
+ DECLARE vIsRequiredTx BOOL DEFAULT NOT @@in_transaction;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL util.tx_rollback(vIsRequiredTx);
+ RESIGNAL;
+ END;
+
+ CALL util.tx_start(vIsRequiredTx);
CALL entry_cloneHeader(vSelf, vNewEntryFk, NULL);
CALL entry_copyBuys(vSelf, vNewEntryFk);
- COMMIT;
+ CALL util.tx_commit(vIsRequiredTx);
+ SET vOutputEntryFk = vNewEntryFk;
- SELECT vNewEntryFk;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -55588,14 +55780,14 @@ BEGIN
read_loop: LOOP
SET vDone = FALSE;
-
+
FETCH cur INTO vBuyFk, vIshStickers, vBuyStickers;
IF vDone THEN
LEAVE read_loop;
END IF;
- IF vIshStickers = vBuyStickers THEN
+ IF vIshStickers = vBuyStickers THEN
UPDATE buy
SET entryFk = vToEntryFk
WHERE id = vBuyFk;
@@ -55715,6 +55907,177 @@ BEGIN
SELECT vNewEntryFk;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `entry_transfer` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`vn`@`localhost` PROCEDURE `entry_transfer`(
+ vOriginalEntry INT,
+ OUT vNewEntryFk INT
+ )
+BEGIN
+/**
+ * Adelanta a mañana la mercancia de una entrada a partir de lo que hay ubicado en el almacén
+ *
+ * @param vOriginalEntry entrada que se quiera adelantar
+ * @param vNewEntry nueva entrada creada
+ */
+ DECLARE vTravelFk INT;
+ DECLARE vWarehouseFk INT;
+ DECLARE vWarehouseInFk INT;
+ DECLARE vWarehouseOutFk INT;
+ DECLARE vRef INT;
+ DECLARE vIsReceived INT;
+ DECLARE vAgencyModeFk INT;
+ DECLARE vTomorrow DATETIME DEFAULT util.tomorrow();
+ DECLARE vCurDate DATE DEFAULT util.VN_CURDATE();
+
+ DECLARE vIsRequiredTx BOOL DEFAULT NOT @@in_transaction;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL util.tx_rollback(vIsRequiredTx);
+ RESIGNAL;
+ END;
+
+ -- Clonar la entrada
+ CALL entry_clone(vOriginalEntry, vNewEntryFk);
+
+ CALL util.tx_start(vIsRequiredTx);
+
+ /* Hay que crear un nuevo travel, con salida hoy y llegada mañana y
+ asignar la entrada nueva al nuevo travel.*/
+ SELECT t.warehouseInFk, t.warehouseOutFk, t.`ref`, t.isReceived, t.agencyModeFk
+ INTO vWarehouseInFk, vWarehouseOutFk, vRef, vIsReceived, vAgencyModeFk
+ FROM travel t
+ JOIN entry e ON e.travelFk = t.id
+ WHERE e.id = vOriginalEntry;
+
+ SELECT id INTO vTravelFk
+ FROM travel t
+ WHERE shipped = vCurDate
+ AND landed = vTomorrow
+ AND warehouseInFk = vWarehouseInFk
+ AND warehouseOutFk = vWarehouseOutFk
+ AND `ref` = vRef
+ AND isReceived =vIsReceived
+ AND agencyModeFk = vAgencyModeFk;
+
+ IF vTravelFk IS NULL THEN
+ INSERT INTO travel(
+ shipped,
+ landed,
+ warehouseInFk,
+ warehouseOutFk,
+ `ref`,
+ isReceived,
+ agencyModeFk)
+ SELECT vCurDate,
+ vTomorrow,
+ t.warehouseInFk,
+ t.warehouseOutFk,
+ t.`ref`,
+ t.isReceived,
+ t.agencyModeFk
+ FROM travel t
+ JOIN entry e ON e.travelFk = t.id
+ WHERE e.id = vOriginalEntry;
+
+ SET vTravelFk = LAST_INSERT_ID();
+ END IF;
+
+ UPDATE entry
+ SET travelFk = vTravelFk,
+ evaNotes = vOriginalEntry
+ WHERE id = vNewEntryFk;
+
+ -- Poner a 0 las cantidades
+ UPDATE buy b
+ SET b.quantity = 0, b.stickers = 0
+ WHERE b.entryFk = vNewEntryFk;
+
+ -- Eliminar duplicados
+ DELETE b
+ FROM buy b
+ LEFT JOIN (SELECT b.id, b.itemFk
+ FROM buy b
+ WHERE b.entryFk = vNewEntryFk
+ GROUP BY b.itemFk) tBuy ON tBuy.id = b.id
+ WHERE b.entryFk = vNewEntryFk
+ AND tBuy.id IS NULL;
+
+ SELECT t.warehouseInFk INTO vWarehouseFk
+ FROM travel t
+ JOIN entry e ON e.travelFk = t.id
+ WHERE e.id = vOriginalEntry;
+
+ /* Actualizar nueva entrada con lo que no está ubicado HOY,
+ descontando lo vendido HOY de esas ubicaciones*/
+ CREATE OR REPLACE TEMPORARY TABLE buys
+ WITH tBuy AS (
+ SELECT b.itemFk, SUM(b.quantity) totalQuantity
+ FROM vn.buy b
+ WHERE b.entryFk = vOriginalEntry
+ GROUP BY b.itemFk
+ ),
+ itemShelvings AS (
+ SELECT ish.itemFk, SUM(ish.visible) visible
+ FROM vn.itemShelving ish
+ JOIN vn.shelving sh ON sh.id = ish.shelvingFk
+ JOIN vn.parking p ON p.id = sh.parkingFk
+ JOIN vn.sector s ON s.id = p.sectorFk
+ JOIN vn.buy b ON b.id = ish.buyFk
+ JOIN vn.entry e ON e.id = b.entryFk
+ JOIN tBuy t ON t.itemFk = ish.itemFk
+ WHERE s.warehouseFk = vWarehouseFk
+ AND sh.parked >= vCurDate
+ GROUP BY ish.itemFk
+ ),
+ sales AS (
+ SELECT s.itemFk, SUM(s.quantity) sold
+ FROM vn.ticket t
+ JOIN vn.sale s ON s.ticketFk = t.id
+ JOIN vn.itemShelvingSale iss ON iss.saleFk = s.id
+ JOIN vn.itemShelving is2 ON is2.id = iss.itemShelvingFk
+ JOIN vn.shelving s2 ON s2.id = is2.shelvingFk
+ JOIN tBuy t ON t.itemFk = s.itemFk
+ WHERE t.shipped BETWEEN vCurDate AND util.dayend(vCurDate)
+ AND s2.parked >= vCurDate
+ GROUP BY s.itemFk
+ )
+ SELECT tmp.itemFk,
+ IFNULL(iss.visible, 0) visible,
+ tmp.totalQuantity,
+ IFNULL(s.sold, 0) sold
+ FROM tBuy tmp
+ LEFT JOIN itemShelvings iss ON tmp.itemFk = iss.itemFk
+ LEFT JOIN sales s ON s.itemFk = tmp.itemFk
+ WHERE visible < tmp.totalQuantity
+ OR iss.itemFk IS NULL;
+
+ UPDATE buy b
+ JOIN buys tmp ON tmp.itemFk = b.itemFk
+ SET b.quantity = tmp.totalQuantity - tmp.visible - tmp.sold
+ WHERE b.entryFk = vNewEntryFk;
+
+ -- Limpia la nueva entrada
+ DELETE FROM buy WHERE entryFk = vNewEntryFk AND quantity = 0;
+
+ CALL util.tx_commit(vIsRequiredTx);
+
+ CALL cache.visible_refresh(@c,TRUE,vWarehouseFk);
+ CALL cache.available_refresh(@c, TRUE, vWarehouseFk, vCurDate);
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -59978,226 +60341,6 @@ BEGIN
AND st.saleFk IS NULL
ORDER BY itemFk;
-END ;;
-DELIMITER ;
-/*!50003 SET sql_mode = @saved_sql_mode */ ;
-/*!50003 SET character_set_client = @saved_cs_client */ ;
-/*!50003 SET character_set_results = @saved_cs_results */ ;
-/*!50003 SET collation_connection = @saved_col_connection */ ;
-/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
-/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
-/*!50003 DROP PROCEDURE IF EXISTS `itemShelvingRadar` */;
-/*!50003 SET @saved_cs_client = @@character_set_client */ ;
-/*!50003 SET @saved_cs_results = @@character_set_results */ ;
-/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8mb4 */ ;
-/*!50003 SET character_set_results = utf8mb4 */ ;
-/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
-DELIMITER ;;
-CREATE DEFINER=`vn`@`localhost` PROCEDURE `itemShelvingRadar`(
- vSectorFk INT
-)
-BEGIN
-/**
- * Calcula la información detallada respecto un sector.
- *
- * @param vSectorFk Id de sector
- */
- DECLARE vCalcVisibleFk INT;
- DECLARE vCalcAvailableFk INT;
- DECLARE hasFatherSector BOOLEAN;
- DECLARE vBuyerFk INT DEFAULT 0;
- DECLARE vWarehouseFk INT DEFAULT 0;
- DECLARE vSonSectorFk INT;
- DECLARE vWorkerFk INT;
-
- SELECT s.workerFk INTO vWorkerFk
- FROM sector s
- WHERE s.id = vSectorFk;
-
- SELECT COUNT(*) INTO hasFatherSector
- FROM sector
- WHERE sonFk = vSectorFk;
-
- SELECT warehouseFk, sonFk INTO vWarehouseFk, vSonSectorFk
- FROM sector
- WHERE id = vSectorFk;
-
- CALL cache.visible_refresh(vCalcVisibleFk, TRUE, vWarehouseFk);
- CALL cache.available_refresh(vCalcAvailableFk, FALSE, vWarehouseFk, util.VN_CURDATE());
-
- IF hasFatherSector THEN
- CREATE OR REPLACE TEMPORARY TABLE tItemShelvingRadar
- (PRIMARY KEY (itemFk))
- ENGINE = MEMORY
- SELECT *
- FROM (
- SELECT iss.itemFk,
- i.longName,
- i.size,
- i.subName producer,
- IFNULL(a.available, 0) available,
- SUM(IF(s.sonFk = vSectorFk, IFNULL(iss.visible, 0), 0)) upstairs,
- SUM(IF(iss.sectorFk = vSectorFk, IFNULL(iss.visible, 0), 0)) downstairs,
- IF(it.isPackaging, NULL, IFNULL(v.visible, 0)) visible,
- vSectorFk sectorFk,
- ish.isChecked,
- sub.isAllChecked
- FROM itemShelvingStock iss
- JOIN itemShelving ish ON ish.id = iss.itemShelvingFk
- LEFT JOIN (
- SELECT itemFk,
- IF(
- COUNT(*) = SUM(IF(isChecked >= 0, 1, 0)),
- TRUE,
- FALSE
- ) isAllChecked
- FROM itemShelving is2
- GROUP BY itemFk
- ) sub ON sub.itemFk = ish.itemFk
- JOIN sector s ON s.id = iss.sectorFk
- JOIN item i ON i.id = iss.itemFk
- JOIN itemType it ON it.id = i.typeFk
- LEFT JOIN cache.available a ON a.item_id = iss.itemFk
- AND a.calc_id = vCalcAvailableFk
- LEFT JOIN cache.visible v ON v.item_id = iss.itemFk
- AND v.calc_id = vCalcVisibleFk
- WHERE vSectorFk IN (iss.sectorFk, s.sonFk)
- GROUP BY iss.itemFk
- UNION ALL
- SELECT v.item_id,
- i.longName,
- i.size,
- i.subName,
- IFNULL(a.available, 0),
- 0,
- 0,
- IF(it.isPackaging, NULL, v.visible),
- vSectorFk,
- NULL,
- NULL
- FROM cache.visible v
- JOIN item i ON i.id = v.item_id
- JOIN itemType it ON it.id = i.typeFk
- LEFT JOIN itemShelvingStock iss ON iss.itemFk = v.item_id
- AND iss.warehouseFk = vWarehouseFk
- LEFT JOIN cache.available a ON a.item_id = v.item_id
- AND a.calc_id = vCalcAvailableFk
- WHERE v.calc_id = vCalcVisibleFk
- AND iss.itemFk IS NULL
- AND it.isInventory
- ) sub
- GROUP BY itemFk;
-
- SELECT ishr.*,
- CAST(visible - upstairs - downstairs AS DECIMAL(10, 0)) nicho,
- CAST(downstairs - IFNULL(notPickedYed, 0) AS DECIMAL(10, 0)) pendiente
- FROM tItemShelvingRadar ishr
- JOIN item i ON i.id = ishr.itemFk
- LEFT JOIN (
- SELECT s.itemFk, SUM(s.quantity) notPickedYed
- FROM ticket t
- JOIN ticketStateToday tst ON tst.ticketFk = t.id
- JOIN alertLevel al ON al.id = tst.alertLevel
- JOIN sale s ON s.ticketFk = t.id
- WHERE t.warehouseFk = vWarehouseFk
- AND al.code = 'FREE'
- GROUP BY s.itemFk
- ) sub ON sub.itemFk = ishr.itemFk
- ORDER BY i.typeFk, i.longName;
- ELSE
- CREATE OR REPLACE TEMPORARY TABLE tItemShelvingRadar
- (PRIMARY KEY (itemFk))
- ENGINE = MEMORY
- SELECT iss.itemFk,
- 0 `hour`,
- 0 `minute`,
- '--' itemPlacementCode,
- i.longName,
- i.size,
- i.subName producer,
- i.upToDown,
- IFNULL(a.available, 0) available,
- IFNULL(v.visible - iss.visible, 0) dayEndVisible,
- IFNULL(v.visible - iss.visible, 0) firstNegative,
- IFNULL(v.visible - iss.visible, 0) itemPlacementVisible,
- IFNULL(i.minimum * b.packing, 0) itemPlacementSize,
- ips.onTheWay,
- iss.visible itemShelvingStock,
- IFNULL(v.visible, 0) visible,
- b.isPickedOff,
- iss.sectorFk
- FROM itemShelvingStock iss
- JOIN item i ON i.id = iss.itemFk
- LEFT JOIN cache.last_buy lb ON lb.item_id = iss.itemFk
- AND lb.warehouse_id = vWarehouseFk
- LEFT JOIN buy b ON b.id = lb.buy_id
- LEFT JOIN cache.available a ON a.item_id = iss.itemFk
- AND a.calc_id = vCalcAvailableFk
- LEFT JOIN cache.visible v ON v.item_id = iss.itemFk
- AND v.calc_id = vCalcVisibleFk
- LEFT JOIN (
- SELECT itemFk, SUM(saldo) onTheWay
- FROM itemPlacementSupplyList
- WHERE saldo > 0
- GROUP BY itemFk
- ) ips ON ips.itemFk = i.id
- WHERE iss.sectorFk = vSectorFk
- OR iss.sectorFk IS NULL;
-
- CREATE OR REPLACE TEMPORARY TABLE tmp.itemOutTime
- SELECT *, SUM(amount) quantity
- FROM (
- SELECT io.itemFk,
- io.quantity amount,
- IF(HOUR(t.shipped), HOUR(t.shipped), HOUR(z.`hour`)) `hours`,
- IF(MINUTE(t.shipped), MINUTE(t.shipped), MINUTE(z.`hour`)) `minutes`
- FROM itemTicketOut `io`
- JOIN tItemShelvingRadar isr ON isr.itemFk = io.itemFk
- JOIN ticket t ON t.id= io.ticketFk
- JOIN ticketState ts ON ts.ticketFk = io.ticketFk
- JOIN `state` s ON s.id = ts.stateFk
- LEFT JOIN `zone` z ON z.id = t.zoneFk
- LEFT JOIN (
- SELECT DISTINCT saleFk
- FROM saleTracking st
- WHERE st.created > util.VN_CURDATE()
- AND st.isChecked
- ) stPrevious ON stPrevious.saleFk = io.saleFk
- WHERE t.warehouseFk = vWarehouseFk
- AND NOT s.isPicked
- AND NOT io.reserved
- AND stPrevious.saleFk IS NULL
- AND io.shipped >= util.VN_CURDATE()
- AND io.shipped < util.VN_CURDATE() + INTERVAL 1 DAY
- ) sub
- GROUP BY itemFk, `hours`, `minutes`;
-
- INSERT INTO tItemShelvingRadar (itemFk)
- SELECT itemFk FROM tmp.itemOutTime
- ON DUPLICATE KEY UPDATE dayEndVisible = dayEndVisible + quantity,
- firstNegative = IF(firstNegative < 0, firstNegative, firstNegative + quantity),
- `hour` = IFNULL(IF(firstNegative > 0 , `hour`, `hours`), 0),
- `minute` = IFNULL(IF(firstNegative > 0, `minute`, `minutes`), 0);
-
- UPDATE tItemShelvingRadar isr
- JOIN (
- SELECT s.itemFk, SUM(s.quantity) amount
- FROM sale s
- JOIN ticket t ON t.id = s.ticketFk
- JOIN ticketState ts ON ts.ticketFk = t.id
- WHERE t.shipped BETWEEN util.VN_CURDATE() AND util.dayend(util.VN_CURDATE())
- AND ts.code = 'COOLER_PREPARATION'
- GROUP BY s.itemFk
- ) sub ON sub.itemFk = isr.itemFk
- SET isr.dayEndVisible = dayEndVisible + sub.amount,
- firstNegative = firstNegative + sub.amount;
-
- SELECT * FROM tItemShelvingRadar;
- END IF;
-
- DROP TEMPORARY TABLE tItemShelvingRadar;
-
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -61871,7 +62014,7 @@ BEGIN
SELECT ish.id,
p.pickingOrder,
p.code parking,
- ish.shelvingFk,
+ sh.code,
ish.itemFk,
i.longName,
ish.visible,
@@ -64372,8 +64515,6 @@ BEGIN
*
* @return tmp.itemList(itemFk, stock, visible, available)
*/
- DECLARE vIsLogifloraDay BOOL DEFAULT vn.isLogifloraDay(vDated, vWarehouseFk);
-
SET vDated = TIMESTAMP(vDated, '00:00:00');
CREATE OR REPLACE TEMPORARY TABLE tmp.itemList
@@ -64393,14 +64534,11 @@ BEGIN
UNION ALL
SELECT iei.itemFk, iei.quantity
FROM itemEntryIn iei
- LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = iei.entryFk
JOIN item i ON i.id = iei.itemFk
WHERE iei.landed >= util.VN_CURDATE()
AND iei.landed < vDated
AND iei.warehouseInFk = vWarehouseFk
AND (vItemFk IS NULL OR iei.itemFk = vItemFk)
- AND (wf.entryFk IS NULL OR vIsLogifloraDay)
- AND NOT (iei.landed > util.VN_CURDATE() AND i.isFloramondo)
UNION ALL
SELECT ieo.itemFk, ieo.quantity
FROM itemEntryOut ieo
@@ -64409,7 +64547,6 @@ BEGIN
AND ieo.shipped < vDated
AND ieo.warehouseOutFk = vWarehouseFk
AND (vItemFk IS NULL OR ieo.itemFk = vItemFk)
- AND NOT (ieo.shipped > util.VN_CURDATE() AND i.isFloramondo)
) sub
GROUP BY itemFk
HAVING stock;
@@ -67013,14 +67150,14 @@ proc: BEGIN
UPDATE tmp.productionBuffer pb
JOIN sale s ON s.ticketFk = pb.ticketFk
JOIN item i ON i.id = s.itemFk
- JOIN cache.last_buy lb ON lb.warehouse_id = vWarehouseFk
+ JOIN cache.last_buy lb ON lb.warehouse_id = vWarehouseFk
AND lb.item_id = s.itemFk
JOIN buy b ON b.id = lb.buy_id
JOIN packaging p ON p.id = b.packagingFk
SET pb.hasPlantTray = TRUE
WHERE p.isPlantTray
AND s.quantity >= b.packing
- AND pb.isOwn;
+ AND pb.isOwn;
DROP TEMPORARY TABLE
tmp.productionTicket,
@@ -67890,6 +68027,91 @@ DELIMITER ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
+/*!50003 DROP PROCEDURE IF EXISTS `roadmap_cloneDay` */;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
+DELIMITER ;;
+CREATE DEFINER=`vn`@`localhost` PROCEDURE `roadmap_cloneDay`(
+ vDateToCopy DATE,
+ vDateToPaste DATE
+)
+BEGIN
+/**
+ * Clona roadmaps de un día a otro, incluyendo las paradas y sin algunos
+ * campos de la tabla principal, como matrículas, conductores...
+ *
+ * @param vDateToCopy Fecha para copiar
+ * @param vDateToPaste Fecha para pegar
+ */
+ DECLARE vDaysDiff INT;
+ DECLARE vRoadmapFk INT;
+ DECLARE vNewRoadmapFk INT;
+ DECLARE vDone BOOL DEFAULT FALSE;
+ DECLARE vRoadmaps CURSOR FOR
+ SELECT id
+ FROM roadmap
+ WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy);
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ SET vDaysDiff = DATEDIFF(vDateToPaste, vDateToCopy);
+
+ IF vDaysDiff IS NULL THEN
+ CALL util.throw("No valid dates");
+ END IF;
+
+ START TRANSACTION;
+
+ OPEN vRoadmaps;
+ l: LOOP
+ SET vDone = FALSE;
+ FETCH vRoadmaps INTO vRoadmapFk;
+
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+
+ INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price)
+ SELECT `name`,
+ roadmapAddressFk,
+ etd + INTERVAL vDaysDiff DAY,
+ eta + INTERVAL vDaysDiff DAY,
+ observations,
+ price
+ FROM roadmap
+ WHERE id = vRoadmapFk;
+
+ SET vNewRoadmapFk = LAST_INSERT_ID();
+
+ INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk)
+ SELECT vNewRoadmapFk,
+ roadmapAddressFk,
+ eta + INTERVAL vDaysDiff DAY,
+ `description`,
+ bufferFk
+ FROM roadmapStop
+ WHERE roadmapFk = vRoadmapFk;
+ END LOOP;
+ CLOSE vRoadmaps;
+
+ COMMIT;
+END ;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
/*!50003 DROP PROCEDURE IF EXISTS `routeGuessPriority` */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
@@ -71794,6 +72016,7 @@ BEGIN
) currencyBalance
FROM (
SELECT NULL bankFk,
+ NULL bank,
ii.companyFk,
ii.serial,
ii.id,
@@ -71827,6 +72050,7 @@ BEGIN
GROUP BY iid.id, ii.id
UNION ALL
SELECT p.bankFk,
+ a.bank,
p.companyFk,
NULL,
p.id,
@@ -71862,6 +72086,7 @@ BEGIN
AND (vIsConciliated = p.isConciliated OR NOT vIsConciliated)
UNION ALL
SELECT NULL,
+ NULL bankFk,
companyFk,
NULL,
se.id,
@@ -71889,6 +72114,7 @@ BEGIN
AND (vIsConciliated = se.isConciliated OR NOT vIsConciliated)
UNION ALL
SELECT NULL bankFk,
+ NULL,
e.companyFk,
'E' serial,
e.invoiceNumber id,
@@ -71907,7 +72133,7 @@ BEGIN
JOIN travel tr ON tr.id = e.travelFk
JOIN currency c ON c.id = e.currencyFk
WHERE e.supplierFk = vSupplierFk
- AND tr.landed >= CURDATE()
+ AND tr.landed >= util.VN_CURDATE()
AND e.invoiceInFk IS NULL
AND vHasEntries
ORDER BY (dated IS NULL AND NOT isBooked),
@@ -73550,6 +73776,7 @@ BEGIN
sub2.iptd futureIpt,
sub2.state futureState,
t.clientFk,
+ cl.salespersonFk,
t.warehouseFk,
ts.alertLevel,
sub2.alertLevel futureAlertLevel,
@@ -73569,6 +73796,7 @@ BEGIN
JOIN vn.province p ON p.id = a.provinceFk
JOIN vn.country c ON c.id = p.countryFk
JOIN vn.ticketState ts ON ts.ticketFk = t.id
+ JOIN vn.client cl ON cl.id = t.clientFk
JOIN vn.state st ON st.id = ts.stateFk
JOIN vn.alertLevel al ON al.id = ts.alertLevel
LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
@@ -73622,7 +73850,7 @@ CREATE DEFINER=`vn`@`localhost` PROCEDURE `ticket_canMerge`(vDated DATE, vScopeD
BEGIN
/**
* Devuelve un listado de tickets susceptibles de fusionarse con otros tickets en el futuro
- *
+ *
* @param vDated Fecha en cuestión
* @param vScopeDays Dias en el futuro a sondear
* @param vLitersMax Volumen máximo de los tickets a catapultar
@@ -74137,15 +74365,12 @@ BEGIN
*/
DECLARE vDone BOOL;
DECLARE vClientFk INT;
- DECLARE vCurTicketFk INT;
- DECLARE vIsTaxDataChecked BOOL;
- DECLARE vCompanyFk INT;
- DECLARE vShipped DATE;
+ DECLARE vCurTicketFk INT;
DECLARE vNewInvoiceId INT;
DECLARE vHasDailyInvoice BOOL;
DECLARE vWithPackage BOOL;
- DECLARE vHasToInvoice BOOL;
- DECLARE vSerial VARCHAR(2);
+ DECLARE vHasToInvoice BOOL;
+ DECLARE vStateCode VARCHAR(45);
DECLARE cur CURSOR FOR
SELECT ticketFk FROM tmp.ticket_close;
@@ -74166,18 +74391,11 @@ BEGIN
LEAVE proc;
END IF;
- SELECT
- c.id,
- c.isTaxDataChecked,
- t.companyFk,
- t.shipped,
+ SELECT c.id,
c.hasDailyInvoice,
w.isManaged,
c.hasToInvoice
INTO vClientFk,
- vIsTaxDataChecked,
- vCompanyFk,
- vShipped,
vHasDailyInvoice,
vWithPackage,
vHasToInvoice
@@ -74187,7 +74405,7 @@ BEGIN
WHERE t.id = vCurTicketFk;
INSERT INTO ticketPackaging (ticketFk, packagingFk, quantity)
- (SELECT vCurTicketFk, p.id, COUNT(*)
+ SELECT vCurTicketFk, p.id, COUNT(*)
FROM expedition e
JOIN packaging p ON p.id = e.packagingFk
JOIN ticket t ON t.id = e.ticketFk
@@ -74196,39 +74414,35 @@ BEGIN
WHERE e.ticketFk = vCurTicketFk AND p.isPackageReturnable
AND vWithPackage
AND NOT dm.`code`= 'PICKUP'
- GROUP BY p.itemFk);
+ GROUP BY p.itemFk;
-- No retornables o no catalogados
- INSERT INTO sale (itemFk, ticketFk, concept, quantity, price, isPriceFixed)
- (SELECT e.freightItemFk, vCurTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.freightItemFk, vClientFk), 1
+ INSERT INTO sale (
+ itemFk,
+ ticketFk,
+ concept,
+ quantity,
+ price, isPriceFixed
+ )SELECT e.freightItemFk,
+ vCurTicketFk,
+ i.name,
+ COUNT(*) amount,
+ getSpecialPrice(e.freightItemFk, vClientFk),
+ TRUE
FROM expedition e
JOIN item i ON i.id = e.freightItemFk
LEFT JOIN packaging p ON p.itemFk = i.id
- WHERE e.ticketFk = vCurTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0
+ WHERE e.ticketFk = vCurTicketFk
+ AND (p.isPackageReturnable = 0 OR p.isPackageReturnable IS NULL)
AND getSpecialPrice(e.freightItemFk, vClientFk) > 0
- GROUP BY e.freightItemFk);
+ GROUP BY e.freightItemFk;
- IF(vHasDailyInvoice) AND vHasToInvoice THEN
- SELECT invoiceSerial(vClientFk, vCompanyFk, 'quick') INTO vSerial;
- IF vSerial IS NULL THEN
- CALL util.throw('Cannot booking without a serial');
- END IF;
-
- CALL ticket_setState(vCurTicketFk, 'DELIVERED');
-
- IF vIsTaxDataChecked THEN
- CALL invoiceOut_newFromClient(
- vClientFk,
- vSerial,
- vShipped,
- vCompanyFk,
- NULL,
- NULL,
- vNewInvoiceId);
- END IF;
+ IF vHasDailyInvoice AND vHasToInvoice THEN
+ SET vStateCode = 'DELIVERED';
ELSE
- CALL ticket_setState(vCurTicketFk, (SELECT vn.getAlert3State(vCurTicketFk)));
+ SELECT getAlert3State(vCurTicketFk) INTO vStateCode;
END IF;
+ CALL ticket_setState(vCurTicketFk, vStateCode);
END LOOP;
CLOSE cur;
@@ -74504,127 +74718,6 @@ DELIMITER ;
/*!50003 SET collation_connection = @saved_col_connection */ ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
-/*!50003 DROP PROCEDURE IF EXISTS `ticket_DelayTruck` */;
-/*!50003 SET @saved_cs_client = @@character_set_client */ ;
-/*!50003 SET @saved_cs_results = @@character_set_results */ ;
-/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8mb4 */ ;
-/*!50003 SET character_set_results = utf8mb4 */ ;
-/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
-DELIMITER ;;
-CREATE DEFINER=`vn`@`localhost` PROCEDURE `ticket_DelayTruck`(vWarehouserFk INT, vHour INT, vMinute INT)
-BEGIN
- DECLARE done INT DEFAULT FALSE;
- DECLARE vTicketFk INT;
- DECLARE cur1 CURSOR FOR SELECT ticketFk FROM tTicket;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-
- CALL vn.productionControl(vWarehouserFk,0) ;
-
- DROP TEMPORARY TABLE IF EXISTS tTicket;
- CREATE TEMPORARY TABLE tTicket
- SELECT ticketFk
- FROM tmp.productionBuffer
- JOIN alertLevel al ON al.code = 'FREE'
- WHERE shipped = util.VN_CURDATE()
- AND problem LIKE '%I:%'
- AND (HH <= vHour OR HH = vHour AND mm < vMinute)
- AND alertLevel = al.id;
-
- OPEN cur1;
-
- read_loop: LOOP
- FETCH cur1 INTO vTicketFk;
- IF done THEN
- LEAVE read_loop;
- END IF;
-
- CALL vn.ticket_DelayTruckSplit(vTicketFk);
- END LOOP;
-
- CLOSE cur1;
- DROP TEMPORARY TABLE tTicket, tmp.productionBuffer;
-END ;;
-DELIMITER ;
-/*!50003 SET sql_mode = @saved_sql_mode */ ;
-/*!50003 SET character_set_client = @saved_cs_client */ ;
-/*!50003 SET character_set_results = @saved_cs_results */ ;
-/*!50003 SET collation_connection = @saved_col_connection */ ;
-/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
-/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
-/*!50003 DROP PROCEDURE IF EXISTS `ticket_DelayTruckSplit` */;
-/*!50003 SET @saved_cs_client = @@character_set_client */ ;
-/*!50003 SET @saved_cs_results = @@character_set_results */ ;
-/*!50003 SET @saved_col_connection = @@collation_connection */ ;
-/*!50003 SET character_set_client = utf8mb4 */ ;
-/*!50003 SET character_set_results = utf8mb4 */ ;
-/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
-DELIMITER ;;
-CREATE DEFINER=`vn`@`localhost` PROCEDURE `ticket_DelayTruckSplit`(
- vTicketFk INT
-)
-BEGIN
-/**
- * Splita las lineas de ticket que no estan ubicadas
- *
- * @param vTicketFk Id ticket
- */
- DECLARE vNewTicketFk INT;
- DECLARE vTotalLines INT;
- DECLARE vLinesToSplit INT;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.SalesToSplit;
-
- SELECT COUNT(*) INTO vTotalLines
- FROM sale
- WHERE ticketFk = vTicketFk;
-
- CREATE TEMPORARY TABLE tmp.SalesToSplit
- SELECT s.id saleFk
- FROM ticket t
- JOIN sale s ON t.id = s.ticketFk
- LEFT JOIN (
- SELECT ish.itemFk itemFk,
- SUM(ish.visible) visible,
- s.warehouseFk warehouseFk
- FROM itemShelving ish
- JOIN shelving sh ON sh.id = ish.shelvingFk
- JOIN parking p ON p.id = sh.parkingFk
- JOIN sector s ON s.id = p.sectorFk
- GROUP BY ish.itemFk,
- s.warehouseFk
- ) issw ON issw.itemFk = s.itemFk
- AND issw.warehouseFk = t.warehouseFk
- WHERE s.quantity > IFNULL(issw.visible, 0)
- AND s.quantity > 0
- AND NOT s.isPicked
- AND NOT s.reserved
- AND t.id = vTicketFk;
-
- SELECT COUNT(*) INTO vLinesToSplit
- FROM tmp.SalesToSplit;
-
- IF vLinesToSplit = vTotalLines AND vLinesToSplit > 0 THEN
- SET vNewTicketFk = vTicketFk;
- ELSE
- CALL ticket_Clone(vTicketFk, vNewTicketFk);
- UPDATE sale s
- JOIN tmp.SalesToSplit sts ON sts.saleFk = s.id
- SET s.ticketFk = vNewTicketFk;
- END IF;
-
- CALL ticket_setState(vNewTicketFk, 'FIXING');
-
- DROP TEMPORARY TABLE tmp.SalesToSplit;
-END ;;
-DELIMITER ;
-/*!50003 SET sql_mode = @saved_sql_mode */ ;
-/*!50003 SET character_set_client = @saved_cs_client */ ;
-/*!50003 SET character_set_results = @saved_cs_results */ ;
-/*!50003 SET collation_connection = @saved_col_connection */ ;
-/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
-/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
/*!50003 DROP PROCEDURE IF EXISTS `ticket_doCmr` */;
/*!50003 SET @saved_cs_client = @@character_set_client */ ;
/*!50003 SET @saved_cs_results = @@character_set_results */ ;
@@ -74633,7 +74726,9 @@ DELIMITER ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
DELIMITER ;;
-CREATE DEFINER=`vn`@`localhost` PROCEDURE `ticket_doCmr`(vSelf INT)
+CREATE DEFINER=`vn`@`localhost` PROCEDURE `ticket_doCmr`(
+ vSelf INT
+)
BEGIN
/**
* Crea u actualiza la información del CMR asociado con
@@ -74653,6 +74748,7 @@ BEGIN
a.id addressFk,
c2.defaultAddressFk,
IFNULL(sat.supplierFk, su.id) supplierFk,
+ t.packages,
t.landed
FROM ticket t
JOIN client c ON c.id = t.clientFk
@@ -74667,7 +74763,7 @@ BEGIN
LEFT JOIN route r ON r.id = t.routeFk
LEFT JOIN worker wo ON wo.id = r.workerFk
LEFT JOIN vehicle v ON v.id = r.vehicleFk
- LEFT JOIN agencyMode am ON am.id = r.agencyModeFk
+ LEFT JOIN agencyMode am ON am.id = t.agencyModeFk
LEFT JOIN agency ag ON ag.id = am.agencyFk
LEFT JOIN supplierAgencyTerm sat ON sat.agencyFk = ag.id
AND wo.isFreelance
@@ -74676,7 +74772,7 @@ BEGIN
AND w.code = 'ALG'
AND t.id = vSelf
GROUP BY t.id;
-
+
IF vCmrFk THEN
UPDATE cmr c
JOIN tTicket t
@@ -74686,9 +74782,10 @@ BEGIN
c.addressToFk = t.addressFk,
c.addressFromFk = t.defaultAddressFk,
c.supplierFk = t.supplierFk,
+ c.packagesList = t.packages,
c.ead = t.landed
WHERE id = vCmrFk;
- ELSE
+ ELSE
INSERT INTO cmr (
senderInstruccions,
truckPlate,
@@ -74696,6 +74793,7 @@ BEGIN
addressToFk,
addressFromFk,
supplierFk,
+ packagesList,
ead
)
SELECT * FROM tTicket;
@@ -75324,7 +75422,7 @@ BEGIN
LEFT JOIN agencyMode am ON am.id = tt.agencyModeFk
LEFT JOIN deliveryMethod dm ON dm.id = am.deliveryMethodFk
WHERE dm.code IN ('AGENCY')
- AND it.isFragile;
+ AND (it.isFragile OR i.isFragile);
CREATE OR REPLACE TEMPORARY TABLE tmp.ticket_warnings
(PRIMARY KEY (ticketFk))
@@ -76401,55 +76499,62 @@ CREATE DEFINER=`vn`@`localhost` PROCEDURE `ticket_setState`(
vSelf INT,
vStateCode VARCHAR(255) COLLATE utf8_general_ci
)
-BEGIN
+proc:BEGIN
/**
* Modifica el estado de un ticket si se cumplen las condiciones necesarias.
*
* @param vSelf el id del ticket
* @param vStateCode estado a modificar del ticket
*/
- DECLARE vticketAlertLevel INT;
- DECLARE vTicketStateCode VARCHAR(255);
+ DECLARE vTicketAlertLevel INT;
+ DECLARE vTicketStateCode VARCHAR(255) COLLATE utf8_general_ci;
DECLARE vCanChangeState BOOL;
DECLARE vPackedAlertLevel INT;
DECLARE vZoneFk INT;
+ DECLARE vOldWorkerFk INT;
+ DECLARE vNewWorkerFk INT;
- SELECT s.alertLevel, s.`code`, t.zoneFk
- INTO vticketAlertLevel, vTicketStateCode, vZoneFk
+ SET vNewWorkerFk = account.myUser_getId();
+
+ SELECT s.alertLevel, s.`code`, t.zoneFk, tt.userFk
+ INTO vTicketAlertLevel, vTicketStateCode, vZoneFk, vOldWorkerFk
FROM state s
JOIN ticketTracking tt ON tt.stateFk = s.id
JOIN ticket t ON t.id = tt.ticketFk
WHERE tt.ticketFk = vSelf
- ORDER BY tt.created DESC
+ ORDER BY tt.created DESC, tt.id DESC
LIMIT 1;
- SELECT id INTO vPackedAlertLevel FROM alertLevel WHERE code = 'PACKED';
+ SELECT id INTO vPackedAlertLevel FROM alertLevel WHERE code = 'PACKED';
IF vStateCode = 'OK' AND vZoneFk IS NULL THEN
CALL util.throw('ASSIGN_ZONE_FIRST');
END IF;
SET vCanChangeState = ((
- vStateCode <> 'ON_CHECKING' AND vStateCode <> 'CHECKED') OR
- vticketAlertLevel < vPackedAlertLevel
- )AND NOT (
+ vStateCode <> 'ON_CHECKING' AND vStateCode <> 'CHECKED') OR
+ vTicketAlertLevel < vPackedAlertLevel
+ ) AND NOT (
vTicketStateCode IN ('CHECKED', 'CHECKING')
AND vStateCode IN ('PREPARED', 'ON_PREPARATION')
);
IF vCanChangeState THEN
- INSERT INTO ticketTracking (stateFk, ticketFk, userFk)
- SELECT id, vSelf, account.myUser_getId()
- FROM state
- WHERE `code` = vStateCode COLLATE utf8_unicode_ci;
-
IF vStateCode = 'PACKED' THEN
CALL ticket_doCmr(vSelf);
END IF;
+
+ IF vStateCode = vTicketStateCode AND vOldWorkerFk = vNewWorkerFk THEN
+ LEAVE proc;
+ END IF;
+
+ INSERT INTO ticketTracking (stateFk, ticketFk, userFk, created)
+ SELECT id, vSelf, vNewWorkerFk, util.VN_NOW()
+ FROM state
+ WHERE `code` = vStateCode COLLATE utf8_unicode_ci;
ELSE
CALL util.throw('INCORRECT_TICKET_STATE');
END IF;
-
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -78669,16 +78774,23 @@ DELIMITER ;
/*!50003 SET character_set_results = utf8mb4 */ ;
/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
DELIMITER ;;
-CREATE DEFINER=`vn`@`localhost` PROCEDURE `vehicle_checkNumberPlate`(vNumberPlate VARCHAR(10), vCountryCodeFk VARCHAR(2))
+CREATE DEFINER=`vn`@`localhost` PROCEDURE `vehicle_checkNumberPlate`(
+ vNumberPlate VARCHAR(10),
+ vCountryCodeFk VARCHAR(2)
+)
BEGIN
/**
- * Comprueba si la matricula pasada tiene el formato correcto dependiendo del pais del vehiculo
+ * Comprueba si la matricula pasada tiene el formato
+ * correcto dependiendo del pais del vehiculo.
+ *
+ * @param vNumberPlate Número de matricula
+ * @param vCountryCodeFk Código de pais
*/
DECLARE vRegex VARCHAR(45);
- SELECT vp.regex INTO vRegex
- FROM vehiclePlateRegex vp
- WHERE vp.countryCodeFk = vCountryCodeFk;
+ SELECT regex INTO vRegex
+ FROM vehiclePlateRegex
+ WHERE countryCodeFk = vCountryCodeFk;
IF NOT vNumberPlate REGEXP BINARY (vRegex)THEN
CALL util.throw(CONCAT('Error: la matricula ', vNumberPlate, ' no es valida para ',vCountryCodeFk));
@@ -83198,7 +83310,8 @@ SET character_set_client = utf8;
1 AS `Base`,
1 AS `box`,
1 AS `costeRetorno`,
- 1 AS `isActive` */;
+ 1 AS `isActive`,
+ 1 AS `flippingCost` */;
SET character_set_client = @saved_cs_client;
--
@@ -83577,21 +83690,6 @@ SET character_set_client = utf8;
1 AS `description` */;
SET character_set_client = @saved_cs_client;
---
--- Temporary table structure for view `Split_lines`
---
-
-DROP TABLE IF EXISTS `Split_lines`;
-/*!50001 DROP VIEW IF EXISTS `Split_lines`*/;
-SET @saved_cs_client = @@character_set_client;
-SET character_set_client = utf8;
-/*!50001 CREATE VIEW `Split_lines` AS SELECT
- 1 AS `Id_Split_lines`,
- 1 AS `Id_Split`,
- 1 AS `Id_Article`,
- 1 AS `Id_Compra` */;
-SET character_set_client = @saved_cs_client;
-
--
-- Temporary table structure for view `Splits`
--
@@ -83983,7 +84081,8 @@ SET character_set_client = utf8;
1 AS `invoiceInPaletizedFk`,
1 AS `observation`,
1 AS `hasFreightPrepaid`,
- 1 AS `propertyNumber` */;
+ 1 AS `propertyNumber`,
+ 1 AS `costPerKg` */;
SET character_set_client = @saved_cs_client;
--
@@ -85391,7 +85490,6 @@ SET character_set_client = utf8;
1 AS `kg`,
1 AS `cargoSupplierFk`,
1 AS `totalEntries`,
- 1 AS `appointment`,
1 AS `awbFk`,
1 AS `isRaid`,
1 AS `daysInForward` */;
@@ -86761,6 +86859,24 @@ USE `vn`;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
+--
+-- Final view structure for view `agencyModeIncoming`
+--
+
+/*!50001 DROP VIEW IF EXISTS `agencyModeIncoming`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`vn`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `agencyModeIncoming` AS select `am`.`id` AS `id`,`am`.`name` AS `name` from (`agencyMode` `am` join `agencyIncoming` `ai` on(`am`.`id` = `ai`.`agencyModeFk`)) */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
--
-- Final view structure for view `agencyTerm`
--
@@ -87260,7 +87376,7 @@ USE `vn`;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`vn`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `expeditionTruck` AS select `rs`.`id` AS `id`,`rs`.`roadmapFk` AS `roadmapFk`,`rs`.`eta` AS `eta`,`rs`.`description` AS `description`,`rs`.`bufferFk` AS `bufferFk`,`rs`.`created` AS `created`,`rs`.`userFk` AS `userFk` from `roadmapStop` `rs` */;
+/*!50001 VIEW `expeditionTruck` AS select `rs`.`id` AS `id`,`rs`.`roadmapFk` AS `roadmapFk`,`rs`.`eta` AS `eta`,`rs`.`description` AS `description`,`rs`.`bufferFk` AS `bufferFk`,`rs`.`created` AS `created`,`rs`.`editorFk` AS `userFk` from `roadmapStop` `rs` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
@@ -87404,7 +87520,7 @@ USE `vn`;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`vn`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `itemEntryIn` AS select `t`.`warehouseInFk` AS `warehouseInFk`,`t`.`landed` AS `landed`,`b`.`itemFk` AS `itemFk`,`b`.`quantity` AS `quantity`,`t`.`isReceived` AS `isReceived`,`t`.`isRaid` AS `isVirtualStock`,`e`.`id` AS `entryFk` from ((`buy` `b` join `entry` `e` on(`b`.`entryFk` = `e`.`id`)) join `travel` `t` on(`e`.`travelFk` = `t`.`id`)) where `e`.`isExcludedFromAvailable` = 0 and `b`.`quantity` <> 0 */;
+/*!50001 VIEW `itemEntryIn` AS select `t`.`warehouseInFk` AS `warehouseInFk`,`t`.`landed` AS `landed`,`b`.`itemFk` AS `itemFk`,`b`.`quantity` AS `quantity`,`t`.`isReceived` AS `isReceived`,`t`.`isRaid` AS `isVirtualStock`,`e`.`id` AS `entryFk`,`t`.`availabled` AS `availabled` from ((`buy` `b` join `entry` `e` on(`b`.`entryFk` = `e`.`id`)) join `travel` `t` on(`e`.`travelFk` = `t`.`id`)) where `e`.`isExcludedFromAvailable` = 0 and `b`.`quantity` <> 0 */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
@@ -88003,6 +88119,24 @@ USE `vn`;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
+--
+-- Final view structure for view `roadmapEta`
+--
+
+/*!50001 DROP VIEW IF EXISTS `roadmapEta`*/;
+/*!50001 SET @saved_cs_client = @@character_set_client */;
+/*!50001 SET @saved_cs_results = @@character_set_results */;
+/*!50001 SET @saved_col_connection = @@collation_connection */;
+/*!50001 SET character_set_client = utf8mb4 */;
+/*!50001 SET character_set_results = utf8mb4 */;
+/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
+/*!50001 CREATE ALGORITHM=UNDEFINED */
+/*!50013 DEFINER=`vn`@`localhost` SQL SECURITY DEFINER */
+/*!50001 VIEW `roadmapEta` AS select `roadmapStop`.`roadmapFk` AS `id`,max(`roadmapStop`.`eta`) AS `eta` from `roadmapStop` where `roadmapStop`.`roadmapFk` is not null group by `roadmapStop`.`roadmapFk` */;
+/*!50001 SET character_set_client = @saved_cs_client */;
+/*!50001 SET character_set_results = @saved_cs_results */;
+/*!50001 SET collation_connection = @saved_col_connection */;
+
--
-- Final view structure for view `role`
--
@@ -88850,7 +88984,7 @@ USE `vn2008`;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `Cubos` AS select `p`.`id` AS `Id_Cubo`,`p`.`volume` AS `Volumen`,`p`.`width` AS `X`,`p`.`depth` AS `Y`,`p`.`height` AS `Z`,`p`.`isPackageReturnable` AS `Retornable`,`p`.`created` AS `odbc_date`,`p`.`itemFk` AS `item_id`,`p`.`price` AS `pvp`,`p`.`cubicPackage` AS `bultoCubico`,`p`.`value` AS `Valor`,`p`.`packagingReturnFk` AS `idCubos_Retorno`,`p`.`lower` AS `Bajan`,`p`.`upload` AS `Suben`,`p`.`base` AS `Base`,`p`.`isBox` AS `box`,`p`.`returnCost` AS `costeRetorno`,`p`.`isActive` AS `isActive` from `vn`.`packaging` `p` */;
+/*!50001 VIEW `Cubos` AS select `p`.`id` AS `Id_Cubo`,`p`.`volume` AS `Volumen`,`p`.`width` AS `X`,`p`.`depth` AS `Y`,`p`.`height` AS `Z`,`p`.`isPackageReturnable` AS `Retornable`,`p`.`created` AS `odbc_date`,`p`.`itemFk` AS `item_id`,`p`.`price` AS `pvp`,`p`.`cubicPackage` AS `bultoCubico`,`p`.`value` AS `Valor`,`p`.`packagingReturnFk` AS `idCubos_Retorno`,`p`.`lower` AS `Bajan`,`p`.`upload` AS `Suben`,`p`.`base` AS `Base`,`p`.`isBox` AS `box`,`p`.`returnCost` AS `costeRetorno`,`p`.`isActive` AS `isActive`,`p`.`flippingCost` AS `flippingCost` from `vn`.`packaging` `p` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
@@ -89197,24 +89331,6 @@ USE `vn2008`;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
---
--- Final view structure for view `Split_lines`
---
-
-/*!50001 DROP VIEW IF EXISTS `Split_lines`*/;
-/*!50001 SET @saved_cs_client = @@character_set_client */;
-/*!50001 SET @saved_cs_results = @@character_set_results */;
-/*!50001 SET @saved_col_connection = @@collation_connection */;
-/*!50001 SET character_set_client = utf8mb4 */;
-/*!50001 SET character_set_results = utf8mb4 */;
-/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
-/*!50001 CREATE ALGORITHM=UNDEFINED */
-/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `Split_lines` AS select `sl`.`id` AS `Id_Split_lines`,`sl`.`splitFk` AS `Id_Split`,`sl`.`itemFk` AS `Id_Article`,`sl`.`buyFk` AS `Id_Compra` from `vn`.`splitLine` `sl` */;
-/*!50001 SET character_set_client = @saved_cs_client */;
-/*!50001 SET character_set_results = @saved_cs_results */;
-/*!50001 SET collation_connection = @saved_col_connection */;
-
--
-- Final view structure for view `Splits`
--
@@ -89570,7 +89686,7 @@ USE `vn2008`;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `awb` AS select `a`.`id` AS `id`,`a`.`code` AS `codigo`,`a`.`package` AS `bultos`,`a`.`weight` AS `peso`,`a`.`created` AS `MYSQL_TIME`,`a`.`transitoryFk` AS `transitario_id`,`a`.`taxFk` AS `iva_id`,`a`.`duakk` AS `duakk`,`a`.`docFk` AS `gestdoc_id`,`a`.`amount` AS `importe`,`a`.`freightFk` AS `carguera_id`,`a`.`m3` AS `m3`,`a`.`stems` AS `stems`,`a`.`flightFk` AS `flight_id`,`a`.`volumeWeight` AS `volume_weight`,`a`.`hb` AS `hb`,`a`.`rate` AS `rate`,`a`.`booked` AS `booked`,`a`.`issued` AS `issued`,`a`.`operated` AS `operated`,`a`.`bookEntried` AS `bookEntried`,`a`.`invoiceInFk` AS `invoiceInFk`,`a`.`isChecked` AS `isChecked`,`a`.`isTransitoryChecked` AS `isTransitoryChecked`,`a`.`year` AS `year`,`a`.`invoiceInPaletizedFk` AS `invoiceInPaletizedFk`,`a`.`observation` AS `observation`,`a`.`hasFreightPrepaid` AS `hasFreightPrepaid`,`a`.`propertyNumber` AS `propertyNumber` from `vn`.`awb` `a` */;
+/*!50001 VIEW `awb` AS select `a`.`id` AS `id`,`a`.`code` AS `codigo`,`a`.`package` AS `bultos`,`a`.`weight` AS `peso`,`a`.`created` AS `MYSQL_TIME`,`a`.`transitoryFk` AS `transitario_id`,`a`.`taxFk` AS `iva_id`,`a`.`duakk` AS `duakk`,`a`.`docFk` AS `gestdoc_id`,`a`.`amount` AS `importe`,`a`.`freightFk` AS `carguera_id`,`a`.`m3` AS `m3`,`a`.`stems` AS `stems`,`a`.`flightFk` AS `flight_id`,`a`.`volumeWeight` AS `volume_weight`,`a`.`hb` AS `hb`,`a`.`rate` AS `rate`,`a`.`booked` AS `booked`,`a`.`issued` AS `issued`,`a`.`operated` AS `operated`,`a`.`bookEntried` AS `bookEntried`,`a`.`invoiceInFk` AS `invoiceInFk`,`a`.`isChecked` AS `isChecked`,`a`.`isTransitoryChecked` AS `isTransitoryChecked`,`a`.`year` AS `year`,`a`.`invoiceInPaletizedFk` AS `invoiceInPaletizedFk`,`a`.`observation` AS `observation`,`a`.`hasFreightPrepaid` AS `hasFreightPrepaid`,`a`.`propertyNumber` AS `propertyNumber`,`a`.`costPerKg` AS `costPerKg` from `vn`.`awb` `a` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
@@ -90938,7 +91054,7 @@ USE `vn2008`;
/*!50001 SET collation_connection = utf8mb4_unicode_ci */;
/*!50001 CREATE ALGORITHM=UNDEFINED */
/*!50013 DEFINER=`root`@`localhost` SQL SECURITY DEFINER */
-/*!50001 VIEW `travel` AS select `t`.`id` AS `id`,`t`.`shipped` AS `shipment`,`t`.`shipmentHour` AS `shipment_hour`,`t`.`landed` AS `landing`,`t`.`landingHour` AS `landing_hour`,`t`.`warehouseInFk` AS `warehouse_id`,`t`.`warehouseOutFk` AS `warehouse_id_out`,`t`.`agencyModeFk` AS `agency_id`,`t`.`ref` AS `ref`,`t`.`isDelivered` AS `delivered`,`t`.`isReceived` AS `received`,`t`.`m3` AS `m3`,`t`.`kg` AS `kg`,`t`.`cargoSupplierFk` AS `cargoSupplierFk`,`t`.`totalEntries` AS `totalEntries`,`t`.`appointment` AS `appointment`,`t`.`awbFk` AS `awbFk`,`t`.`isRaid` AS `isRaid`,`t`.`daysInForward` AS `daysInForward` from `vn`.`travel` `t` */;
+/*!50001 VIEW `travel` AS select `t`.`id` AS `id`,`t`.`shipped` AS `shipment`,`t`.`shipmentHour` AS `shipment_hour`,`t`.`landed` AS `landing`,`t`.`landingHour` AS `landing_hour`,`t`.`warehouseInFk` AS `warehouse_id`,`t`.`warehouseOutFk` AS `warehouse_id_out`,`t`.`agencyModeFk` AS `agency_id`,`t`.`ref` AS `ref`,`t`.`isDelivered` AS `delivered`,`t`.`isReceived` AS `received`,`t`.`m3` AS `m3`,`t`.`kg` AS `kg`,`t`.`cargoSupplierFk` AS `cargoSupplierFk`,`t`.`totalEntries` AS `totalEntries`,`t`.`awbFk` AS `awbFk`,`t`.`isRaid` AS `isRaid`,`t`.`daysInForward` AS `daysInForward` from `vn`.`travel` `t` */;
/*!50001 SET character_set_client = @saved_cs_client */;
/*!50001 SET character_set_results = @saved_cs_results */;
/*!50001 SET collation_connection = @saved_col_connection */;
@@ -91042,4 +91158,4 @@ USE `vn2008`;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2025-01-28 7:08:42
+-- Dump completed on 2025-02-18 8:15:40
diff --git a/db/dump/.dump/triggers.sql b/db/dump/.dump/triggers.sql
index 8ae90fed82..42c43ad026 100644
--- a/db/dump/.dump/triggers.sql
+++ b/db/dump/.dump/triggers.sql
@@ -2668,6 +2668,7 @@ trig:BEGIN
THEN
CALL entry_isEditable(OLD.entryFk);
+ CALL entry_isEditable(NEW.entryFk);
END IF;
SET NEW.editorFk = account.myUser_getId();
@@ -4979,7 +4980,6 @@ BEGIN
IF NEW.isBooked = OLD.isBooked AND (
NOT (NEW.supplierFk <=> OLD.supplierFk) OR
- NOT (NEW.dated <=> OLD.dated) OR
NOT (NEW.travelFk <=> OLD.travelFk) OR
NOT (NEW.companyFk <=> OLD.companyFk) OR
NOT (NEW.invoiceInFk <=> OLD.invoiceInFk) OR
@@ -6994,11 +6994,57 @@ DELIMITER ;;
BEFORE INSERT ON `mandate`
FOR EACH ROW
BEGIN
+ SET NEW.editorFk = account.myUser_getId();
+
IF (NEW.code IS NULL) THEN
SET NEW.code=CONCAT(NEW.clientFk,'-',(SELECT AUTO_INCREMENT
- FROM information_schema.TABLES
- WHERE TABLE_SCHEMA='vn' and TABLE_NAME='mandate'));
- END IF;
+ FROM information_schema.TABLES
+ WHERE TABLE_SCHEMA='vn' and TABLE_NAME='mandate'));
+ END IF;
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`mandate_beforeUpdate`
+ BEFORE INSERT ON `mandate`
+ FOR EACH ROW
+BEGIN
+ SET NEW.editorFk = account.myUser_getId();
+END */;;
+DELIMITER ;
+/*!50003 SET sql_mode = @saved_sql_mode */ ;
+/*!50003 SET character_set_client = @saved_cs_client */ ;
+/*!50003 SET character_set_results = @saved_cs_results */ ;
+/*!50003 SET collation_connection = @saved_col_connection */ ;
+/*!50003 SET @saved_cs_client = @@character_set_client */ ;
+/*!50003 SET @saved_cs_results = @@character_set_results */ ;
+/*!50003 SET @saved_col_connection = @@collation_connection */ ;
+/*!50003 SET character_set_client = utf8mb4 */ ;
+/*!50003 SET character_set_results = utf8mb4 */ ;
+/*!50003 SET collation_connection = utf8mb4_unicode_ci */ ;
+/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
+/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
+DELIMITER ;;
+/*!50003 CREATE*/ /*!50017 DEFINER=`vn`@`localhost`*/ /*!50003 TRIGGER `vn`.`mandate_afterDelete`
+ AFTER DELETE ON `mandate`
+ FOR EACH ROW
+BEGIN
+ INSERT INTO mandateLog
+ SET `action` = 'delete',
+ `changedModel` = 'mandate',
+ `changedModelId` = OLD.id,
+ `userFk` = account.myUser_getId();
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -7978,10 +8024,31 @@ DELIMITER ;;
BEFORE INSERT ON `roadmap`
FOR EACH ROW
BEGIN
+ SET NEW.editorFk = account.myUser_getId();
+
+ IF NEW.name IS NOT NULL THEN
+ SET NEW.name = UCASE(NEW.name);
+ END IF;
+
+ IF NEW.trailerPlate IS NOT NULL OR NEW.tugPlate IS NOT NULL THEN
+ SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate));
+ END IF;
+
IF NEW.driver1Fk IS NOT NULL THEN
- SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk);
- ELSE
- SET NEW.driverName = NULL;
+ SET NEW.driverName = (SELECT CONCAT(w.firstName, ' ', w.lastName)
+ FROM worker w
+ WHERE w.id = NEW.driver1Fk);
+
+ SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile)
+ FROM worker w
+ LEFT JOIN client c ON c.id = w.id
+ WHERE w.id = NEW.driver1Fk);
+ END IF;
+
+ IF NEW.driverChangeFk IS NOT NULL THEN
+ SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName)
+ FROM worker w
+ WHERE w.id = NEW.driverChangeFk);
END IF;
END */;;
DELIMITER ;
@@ -8002,10 +8069,51 @@ DELIMITER ;;
BEFORE UPDATE ON `roadmap`
FOR EACH ROW
BEGIN
- IF NEW.driver1Fk IS NOT NULL THEN
- SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk);
- ELSE
- SET NEW.driverName = NULL;
+ DECLARE vSeconds INT;
+
+ SET NEW.editorFk = account.myUser_getId();
+
+ IF NOT (NEW.name <=> OLD.name) THEN
+ SET NEW.name = UCASE(NEW.name);
+ END IF;
+
+ IF NOT (NEW.trailerPlate <=> OLD.trailerPlate) OR NOT (NEW.tugPlate <=> OLD.tugPlate) THEN
+ SET NEW.m3 = (SELECT SUM(m3) FROM vehicle WHERE numberPlate IN (NEW.trailerPlate, NEW.tugPlate));
+ END IF;
+
+ IF NOT (NEW.driverName <=> OLD.driverName) THEN
+ SET NEW.driver1Fk = NULL;
+ END IF;
+
+ IF NOT (NEW.driver1Fk <=> OLD.driver1Fk) AND NEW.driver1Fk IS NOT NULL THEN
+ SET NEW.driverName = (SELECT CONCAT(w.firstName, ' ', w.lastName)
+ FROM worker w
+ WHERE w.id = NEW.driver1Fk);
+
+ SET NEW.phone = (SELECT COALESCE(w.phone, c.mobile, c.phone, c.mobile)
+ FROM worker w
+ LEFT JOIN client c ON c.id = w.id
+ WHERE w.id = NEW.driver1Fk);
+ END IF;
+
+ IF NOT (NEW.driverChangeName <=> OLD.driverChangeName) THEN
+ SET NEW.driverChangeFk = NULL;
+ END IF;
+
+ IF NOT (NEW.driverChangeFk <=> OLD.driverChangeFk) AND NEW.driverChangeFk IS NOT NULL THEN
+ SET NEW.driverChangeName = (SELECT CONCAT(w.firstName, ' ', w.lastName)
+ FROM worker w
+ WHERE w.id = NEW.driverChangeFk);
+ END IF;
+
+ IF NOT (NEW.etd <=> OLD.etd) THEN
+ SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd));
+
+ IF vSeconds <> 0 THEN
+ UPDATE roadmapStop
+ SET eta = eta + INTERVAL vSeconds SECOND
+ WHERE roadmapFk = NEW.id;
+ END IF;
END IF;
END */;;
DELIMITER ;
@@ -8026,9 +8134,17 @@ DELIMITER ;;
BEFORE INSERT ON `roadmapStop`
FOR EACH ROW
BEGIN
+ SET NEW.editorFk = account.myUser_getId();
- SET NEW.description = UCASE(NEW.description);
+ IF NEW.description IS NOT NULL THEN
+ SET NEW.description = UCASE(NEW.description);
+ END IF;
+ IF NEW.roadmapFk IS NOT NULL THEN
+ IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN
+ CALL util.throw('Departure time can not be after arrival time');
+ END IF;
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -8048,9 +8164,18 @@ DELIMITER ;;
BEFORE UPDATE ON `roadmapStop`
FOR EACH ROW
BEGIN
+ SET NEW.editorFk = account.myUser_getId();
- SET NEW.description = UCASE(NEW.description);
+ IF NOT (NEW.description <=> OLD.description) THEN
+ SET NEW.description = UCASE(NEW.description);
+ END IF;
+ IF NOT (NEW.roadmapFk <=> OLD.roadmapFk) OR NOT (NEW.eta <=> OLD.eta) THEN
+
+ IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN
+ CALL util.throw('Departure time can not be after arrival time');
+ END IF;
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -10577,6 +10702,10 @@ BEGIN
IF NEW.awbFk IS NOT NULL THEN
CALL travel_throwAwb(NEW.id);
END IF;
+
+ IF NEW.availabled < NEW.landed THEN
+ CALL util.throw('The travel availabled cannot be earlier than landed');
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -10633,6 +10762,10 @@ BEGIN
IF (NOT(NEW.awbFk <=> OLD.awbFk)) AND NEW.awbFk IS NOT NULL THEN
CALL travel_throwAwb(NEW.id);
END IF;
+
+ IF NEW.availabled < NEW.landed THEN
+ CALL util.throw('The travel availabled cannot be earlier than landed');
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -11526,9 +11659,8 @@ BEGIN
INSERT INTO zoneLog
SET `action` = 'delete',
`changedModel` = 'zoneIncluded',
- `changedModelId` = OLD.zoneFk,
+ `changedModelId` = OLD.id,
`userFk` = account.myUser_getId();
-
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -11611,4 +11743,4 @@ USE `vn2008`;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
--- Dump completed on 2025-01-28 7:09:01
+-- Dump completed on 2025-02-18 8:16:03
diff --git a/db/dump/dump.before.sql b/db/dump/dump.before.sql
index 20a365c83b..4e0628dbb8 100644
--- a/db/dump/dump.before.sql
+++ b/db/dump/dump.before.sql
@@ -6,9 +6,10 @@ GRANT SELECT,
INSERT,
UPDATE,
DELETE,
- DROP,
CREATE TEMPORARY TABLES,
EXECUTE,
EVENT,
- TRIGGER
+ TRIGGER, -- EXECUTE TRIGGER
+ RELOAD, -- FLUSH PRIVILEGES
+ DROP -- TRUNCATE TABLE
ON *.* TO 'vn'@'localhost';
diff --git a/db/dump/fixtures.after.sql b/db/dump/fixtures.after.sql
index 59730d5929..e68a8a7260 100644
--- a/db/dump/fixtures.after.sql
+++ b/db/dump/fixtures.after.sql
@@ -77,8 +77,8 @@ INSERT INTO `vn`.`agency` (`name`, `warehouseFk`, `isOwn`, `isAnyVolumeAllowed`)
('Otra agencia ', '1', '0', '0');
INSERT INTO `vn`.`expedition` (`agencyModeFk`, `ticketFk`, `isBox`, `counter`, `workerFk`, `externalId`, `packagingFk`, `hostFk`, `itemPackingTypeFk`, `hasNewRoute`) VALUES
- ('1', '1', 1, '1', '1', '1', '1', 'pc00', 'F', 0),
- ('1', '1', 1, '2', '1', '1', '1', 'pc00', 'F', 0);
+ ('1', '1', 1, '1', '1', '1', '1', 'pc1', 'F', 0),
+ ('1', '1', 1, '2', '1', '1', '1', 'pc1', 'F', 0);
INSERT INTO vn.client (id,name,defaultAddressFk,street,fi,email,dueDay,isTaxDataChecked,accountingAccount,city,provinceFk,postcode,socialName,contact,credit,countryFk,quality,riskCalculated) VALUES
(100,'root',110,'Valle de la muerte','74974747G','root@mydomain.com',0,1,'4300000078','ALGEMESI',1,'46680','rootSocial','rootContact',500.0,1,10,'2025-01-01');
diff --git a/db/dump/fixtures.before.sql b/db/dump/fixtures.before.sql
index 885fdf9029..af68abeb59 100644
--- a/db/dump/fixtures.before.sql
+++ b/db/dump/fixtures.before.sql
@@ -761,44 +761,45 @@ INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agen
(7, NULL, 57, util.VN_CURDATE(), 6, 8, 'seventh route', 0, 70, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE());
INSERT INTO `vn`.`ticket`(`id`, `priority`, `agencyModeFk`,`warehouseFk`,`routeFk`, `shipped`, `landed`, `clientFk`,`nickname`, `addressFk`, `refFk`, `isDeleted`, `zoneFk`, `zonePrice`, `zoneBonus`, `created`, `weight`, `cmrFk`, `problem`, `risk`)
- VALUES
- (1 , 3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 121, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 'hasHighRisk', 901.4),
- (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2, 'hasHighRisk', 901.4),
- (3 , 1, 7, 1, 6, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL, 3, NULL, NULL),
- (4 , 3, 2, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 9, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL, NULL, NULL, NULL),
- (5 , 3, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), NULL, NULL, NULL, NULL),
- (6 , 1, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), NULL, NULL, 'hasHighRisk', 901.4),
- (7 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
- (8 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Bat cave', 121, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
- (9 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (10, 1, 1, 5, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'Ingram Street', 2, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTooLittle', NULL),
- (11, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest', NULL),
- (12, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (13, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (14, 1, 2, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1104, 'Malibu Point', 4, NULL, 0, 9, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (15, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1105, 'An incredibly long alias for testing purposes', 125, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isFreezed', NULL),
- (16, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7),
- (17, 1, 7, 2, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7),
- (18, 1, 4, 4, 4, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1108, 'Cerebro', 128, NULL, 0, 12, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +12 HOUR), NULL, NULL, 'isFreezed', NULL),
- (19, 1, 5, 5, NULL, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 1, NULL, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTaxDataChecked', NULL),
- (20, 1, 5, 5, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL),
- (21, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Holland', 102, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL),
- (22, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Japan', 103, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL),
- (23, NULL, 8, 1, 7, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'address 21', 121, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest, hasHighRisk', 901.4),
- (24 ,NULL, 8, 1, 7, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
- (25 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
- (26 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'An incredibly long alias for testing purposes', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
- (27 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Wolverine', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 901.4),
- (28, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (29, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (30, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (31, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (32, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (33, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (34, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1103, 'BEJAR', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (35, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Somewhere in Philippines', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (36, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Ant-Man Adventure', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
- (37, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1110, 'Deadpool swords', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL);
+ VALUES
+ (1 , 3, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 121, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 1, 1, 'hasHighRisk', 901.4),
+ (2 , 1, 1, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Bat cave', 1, NULL, 0, 1, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), 2, 2, 'hasHighRisk', 901.4),
+ (3 , 1, 7, 1, 6, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -2 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), NULL, 3, NULL, NULL),
+ (4 , 3, 2, 1, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -3 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 9, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -3 MONTH), NULL, NULL, NULL, NULL),
+ (5 , 3, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -4 MONTH), INTERVAL +1 DAY), 1104, 'Stark tower', 124, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -4 MONTH), NULL, NULL, NULL, NULL),
+ (6 , 1, 3, 3, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL -1 MONTH), INTERVAL +1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 10, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL -1 MONTH), NULL, NULL, 'hasHighRisk', 901.4),
+ (7 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Mountain Drive Gotham', 1, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
+ (8 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'Bat cave', 121, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
+ (9 , NULL, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1104, 'Stark tower', 124, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (10, 1, 1, 5, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'Ingram Street', 2, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTooLittle', NULL),
+ (11, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest', NULL),
+ (12, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (13, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (14, 1, 2, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1104, 'Malibu Point', 4, NULL, 0, 9, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (15, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1105, 'An incredibly long alias for testing purposes', 125, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isFreezed', NULL),
+ (16, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7),
+ (17, 1, 7, 2, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1106, 'Many Places', 126, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 388.7),
+ (18, 1, 4, 4, 4, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1108, 'Cerebro', 128, NULL, 0, 12, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +12 HOUR), NULL, NULL, 'isFreezed', NULL),
+ (19, 1, 5, 5, NULL, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 1, NULL, 5, 1, util.VN_CURDATE(), NULL, NULL, 'isTaxDataChecked', NULL),
+ (20, 1, 5, 5, 3, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Thailand', 129, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL),
+ (21, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Holland', 102, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL),
+ (22, NULL, 5, 5, 5, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), DATE_ADD(DATE_ADD(util.VN_CURDATE(),INTERVAL +1 MONTH), INTERVAL +1 DAY), 1109, 'Somewhere in Japan', 103, NULL, 0, 13, 5, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL +1 MONTH), NULL, NULL, 'isTaxDataChecked', NULL),
+ (23, NULL, 8, 1, 7, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1101, 'address 21', 121, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasTicketRequest, hasHighRisk', 901.4),
+ (24 ,NULL, 8, 1, 7, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 5, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
+ (25 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Bruce Wayne', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
+ (26 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'An incredibly long alias for testing purposes', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, 'hasHighRisk', 901.4),
+ (27 ,NULL, 8, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1101, 'Wolverine', 1, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, 901.4),
+ (28, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (29, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (30, 1, 8, 1, 1, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (31, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (32, 1, 8, 1, 1, DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL + 2 DAY), 1103, 'Phone Box', 123, NULL, 0, 1, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (33, 1, 7, 1, 6, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1102, 'NY roofs', 122, NULL, 0, 3, 5, 1, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (34, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1103, 'BEJAR', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (35, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Somewhere in Philippines', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (36, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1102, 'Ant-Man Adventure', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (37, 1, 1, 1, 3, util.VN_CURDATE(), util.VN_CURDATE(), 1110, 'Deadpool swords', 123, NULL, 0, 1, 16, 0, util.VN_CURDATE(), NULL, NULL, NULL, NULL),
+ (1000000, NULL, 1, 1, NULL, util.VN_CURDATE(), util.VN_CURDATE(), 1, 'employee', 121, NULL, 0, 1, 1.00, 0.00, CURDATE(), NULL, NULL, '', NULL);
INSERT INTO `vn`.`ticketObservation`(`id`, `ticketFk`, `observationTypeFk`, `description`)
VALUES
@@ -923,17 +924,18 @@ INSERT INTO `vn`.`itemType`(`id`, `code`, `name`, `categoryFk`, `life`, `workerF
(5, 'CON', 'Container', 3, NULL, 35, 1, 'warm', 0),
(6, 'ALS', 'Alstroemeria', 1, 31, 16, 0, 'warm', 1);
-INSERT INTO `vn`.`ink`(`id`, `name`, `picture`, `showOrder`, `hex`)
+INSERT INTO `vn`.`ink`(`id`, `name`, `picture`, `showOrder`, `hex`, `hexJson`)
VALUES
- ('YEL', 'Yellow', 1, 1, 'F4D03F'),
- ('BLU', 'Blue', 1, 2, '5DADE2'),
- ('RED', 'Red', 1, 3, 'EC7063'),
- ('SLV', 'Silver', 1, 4, 'CACFD2'),
- ('BRW', 'Brown', 1, 5, 'DC7633'),
- ('BLK', 'Black', 1, 6, '000000'),
- ('BAS', 'Blue/Silver', 1, 7, '5DADE2'),
- ('GRN', 'Green', 1, 8, '28A745'),
- ('WHT', 'White', 1, 9, 'FFFFFF');
+ ('YEL', 'Yellow', 1, 1, 'F4D03F', '{"value": ["F4D03F"]}'),
+ ('BLU', 'Blue', 1, 2, '5DADE2', '{"value": ["5DADE2"]}'),
+ ('RED', 'Red', 1, 3, 'EC7063', '{"value": ["EC7063"]}'),
+ ('SLV', 'Silver', 1, 4, 'CACFD2', '{"value": ["CACFD2"]}'),
+ ('BRW', 'Brown', 1, 5, 'DC7633', '{"value": ["DC7633"]}'),
+ ('BLK', 'Black', 1, 6, '000000', '{"value": ["000000"]}'),
+ ('BAS', 'Blue/Silver', 1, 7, '5DADE2', '{"value": ["5DADE2"]}'),
+ ('GRN', 'Green', 1, 8, '28A745', '{"value": ["28A745"]}'),
+ ('WHT', 'White', 1, 9, 'FFFFFF', '{"value": ["FFFFFF"]}'),
+ ('RGB', 'Red/Green/Blue', 1, 9, 'FFFFFF', '{"value": ["EC7063","5DADE2","28A745"]}');
INSERT INTO `vn`.`origin`(`id`,`code`, `name`)
VALUES
@@ -981,28 +983,30 @@ INSERT INTO `vn`.`itemFamily`(`code`, `description`)
('VT', 'Sales');
INSERT INTO `vn`.`item`(
- `id`, `typeFk`, `stems`, `originFk`, `description`, `producerFk`, `intrastatFk`, `expenseFk`,
- `comment`, `relevancy`, `image`, `subName`, `minPrice`, `family`, `isFloramondo`, `genericFk`,
- `itemPackingTypeFk`, `hasMinPrice`, `weightByPiece`, `isCustomInspectionRequired`
+ `id`, `typeFk`, `stems`, `originFk`, `description`, `producerFk`, `intrastatFk`, `expenseFk`,
+ `comment`, `relevancy`, `image`, `subName`, `minPrice`, `family`, `isFloramondo`, `genericFk`,
+ `itemPackingTypeFk`, `hasMinPrice`, `packingOut`, `weightByPiece`, `isCustomInspectionRequired`
)
VALUES
- (1, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '1', NULL, 0, 'EMB', 0, NULL, 'V', 0, 3, 1),
- (2, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '2', NULL, 0, 'VT', 0, NULL, 'H', 0, 2, 1),
- (3, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '3', NULL, 0, 'VT', 0, NULL, NULL, 0, 5, 0),
- (4, 1, 1, 1, 'Increases block', 1, 05080000, 4751000000, NULL, 0, '4', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (5, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '5', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (6, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '6', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (7, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '7', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (8, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '8', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (9, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '9', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL, 0),
- (10, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '10', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (11, 1, 1, 1, NULL, 1, 05080000, 4751000000, NULL, 0, '11', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (12, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '12', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0),
- (13, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 1, 'VT', 1, NULL, NULL, 1, NULL, 0),
- (14, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL, 0),
- (15, 4, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL, 0),
- (16, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL, 0),
- (71, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 0);
+ (1, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '1', NULL, 0, 'EMB', 0, NULL, 'V', 0, NULL, 3, 1),
+ (2, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '2', NULL, 0, 'VT', 0, NULL, 'H', 0, NULL, 2, 1),
+ (3, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '3', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, 5, 0),
+ (4, 1, 1, 1, 'Increases block', 1, 05080000, 4751000000, NULL, 0, '4', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (5, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '5', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (6, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '6', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (7, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '7', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (8, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '8', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (9, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '9', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL, NULL, 0),
+ (10, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '10', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (11, 1, 1, 1, NULL, 1, 05080000, 4751000000, NULL, 0, '11', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (12, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '12', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (13, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 1, 'VT', 1, NULL, NULL, 1, NULL, NULL, 0),
+ (14, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL, NULL, 0),
+ (15, 4, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (16, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (71, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL, NULL, 0),
+ (72, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, NULL, NULL, 1, 'VT', 0, NULL, NULL, 1, 1, NULL, 0),
+ (88, 1, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, NULL, NULL,10, 'VT', 0, NULL, NULL, 1, NULL, NULL, 0);
-- Update the taxClass after insert of the items
@@ -1125,7 +1129,8 @@ INSERT INTO `vn`.`sale`(`id`, `itemFk`, `ticketFk`, `concept`, `quantity`, `pric
(39, 1, 32, 'Ranged weapon longbow 200cm', 2, 103.49, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack'),
(40, 2, 34, 'Melee weapon combat fist 15cm', 10.00, 3.91, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasItemLost'),
(41, 2, 35, 'Melee weapon combat fist 15cm', 8.00, 3.01, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasRounding,hasItemLost'),
- (42, 2, 36, 'Melee weapon combat fist 15cm', 6.00, 2.50, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasRounding,hasItemLost');
+ (42, 2, 36, 'Melee weapon combat fist 15cm', 6.00, 2.50, 0, 0, 0, util.VN_CURDATE(), 'hasComponentLack,hasRounding,hasItemLost'),
+ (43, 88, 1000000, 'Chest medical box 2', 15.00, 10.00, 0, 0, 0, CURDATE(), '');
INSERT INTO `vn`.`saleComponent`(`saleFk`, `componentFk`, `value`)
VALUES
@@ -1356,108 +1361,122 @@ INSERT INTO `vn`.`tag`(`id`, `code`, `name`, `isFree`, `isQuantitatif`, `sourceT
(92, NULL, 'Nombre temporal', 1, 0, NULL, NULL, NULL, NULL);
INSERT INTO `vn`.`itemTag`(`id`,`itemFk`,`tagFk`,`value`,`priority`)
- VALUES
- (1, 1, 56, 'Ranged weapon', 1),
- (2, 1, 58, 'longbow', 2),
- (3, 1, 27, '200cm', 3),
- (4, 1, 36, 'Stark Industries', 4),
- (5, 1, 1, 'Brown', 5),
- (6, 1, 67, '+1 precission', 6),
- (7, 1, 23, '1', 7),
- (8, 2, 56, 'Melee weapon', 1),
- (9, 2, 58, 'combat fist', 2),
- (10, 2, 27, '15cm', 3),
- (11, 2, 36, 'Stark Industries', 4),
- (12, 2, 1, 'Silver', 5),
- (13, 2, 67, 'Concussion', 6),
- (14, 2, 23, '2', 7),
- (15, 3, 56, 'Ranged weapon', 1),
- (16, 3, 58, 'sniper rifle', 2),
- (17, 3, 4, '113cm', 3),
- (18, 3, 36, 'Stark Industries', 4),
- (19, 3, 1, 'Green', 5),
- (20, 3, 67, 'precission', 6),
- (21, 3, 23, '3', 7),
- (22, 4, 56, 'Melee weapon', 1),
- (23, 4, 58, 'heavy shield', 2),
- (24, 4, 4, '100cm', 3),
- (25, 4, 36, 'Stark Industries', 4),
- (26, 4, 1, 'Black', 5),
- (27, 4, 67, 'containtment', 6),
- (28, 4, 23, '4', 7),
- (29, 5, 56, 'Ranged weapon', 1),
- (30, 5, 58, 'pistol', 2),
- (31, 5, 67, '9mm', 3),
- (32, 5, 36, 'Stark Industries', 4),
- (33, 5, 1, 'Silver', 5),
- (34, 5, 27, '15cm', 6),
- (35, 5, 23, '5', 7),
- (36, 6, 56, 'Container', 1),
- (37, 6, 58, 'ammo box', 2),
- (38, 6, 27, '100cm', 3),
- (39, 6, 36, 'Stark Industries', 4),
- (40, 6, 1, 'Green', 5),
- (41, 6, 67, 'supply', 6),
- (42, 6, 23, '6', 7),
- (43, 7, 56, 'Container', 1),
- (44, 7, 58, 'medical box', 2),
- (45, 7, 27, '100cm', 3),
- (46, 7, 36, 'Stark Industries', 4),
- (47, 7, 1, 'White', 5),
- (48, 7, 67, 'supply', 6),
- (49, 7, 23, '7', 7),
- (50, 8, 56, 'Ranged Reinforced weapon', 1),
- (51, 8, 58, '+1 longbow', 2),
- (52, 8, 27, '200cm', 3),
- (53, 8, 36, 'Stark Industries', 4),
- (54, 8, 1, 'Brown', 5),
- (55, 8, 67, 'precission', 6),
- (56, 8, 23, '8', 7),
- (57, 9, 56, 'Melee Reinforced weapon', 1),
- (58, 9, 58, 'combat fist', 2),
- (59, 9, 27, '15cm', 3),
- (60, 9, 36, 'Stark Industries', 4),
- (61, 9, 1, 'Silver', 5),
- (62, 9, 67, 'Concussion', 6),
- (63, 9, 23, '9', 7),
- (64, 10, 56, 'Ranged Reinforced weapon', 1),
- (65, 10, 58, 'sniper rifle', 2),
- (66, 10, 67, '700mm', 3),
- (67, 10, 36, 'Stark Industries', 4),
- (68, 10, 1, 'Green', 5),
- (69, 10, 27, '130cm', 6),
- (70, 10, 23, '10', 7),
- (71, 11, 56, 'Melee Reinforced weapon', 1),
- (72, 11, 58, 'heavy shield', 2),
- (73, 11, 4, '120cm', 3),
- (74, 11, 36, 'Stark Industries', 4),
- (75, 11, 1, 'Black', 5),
- (76, 11, 67, 'containtment', 6),
- (77, 11, 23, '11', 7),
- (78, 12, 56, 'Ranged Reinforced weapon', 1),
- (79, 12, 58, 'pistol', 2),
- (80, 12, 27, '9mm', 3),
- (81, 12, 36, 'Stark Industries', 4),
- (82, 12, 1, 'Silver', 5),
- (83, 12, 67, '23cm', 6),
- (84, 12, 23, '12', 7),
- (85, 13, 56, 'Chest', 1),
- (86, 13, 58, 'ammo box', 2),
- (87, 13, 27, '100cm', 3),
- (88, 13, 36, 'Stark Industries', 4),
- (89, 13, 1, 'Green', 5),
- (90, 13, 67, 'supply', 6),
- (91, 13, 23, '13', 7),
- (92, 14, 56, 'Chest', 1),
- (93, 14, 58, 'medical box', 2),
- (94, 14, 27, '100cm', 3),
- (95, 14, 36, 'Stark Industries', 4),
- (96, 14, 1, 'White', 5),
- (97, 14, 67, 'supply', 6),
- (98, 14, 23, '1', 7),
- (99, 15, 92, 'Trolley', 2),
- (100, 16, 92, 'Pallet', 2),
- (101, 71, 92, 'Shipping cost', 2);
+ VALUES
+ (1, 1, 56, 'Ranged weapon', 1),
+ (2, 1, 58, 'longbow', 2),
+ (3, 1, 27, '200cm', 3),
+ (4, 1, 36, 'Stark Industries', 4),
+ (5, 1, 1, 'Brown', 5),
+ (6, 1, 67, '+1 precission', 6),
+ (7, 1, 23, '1', 7),
+ (8, 2, 56, 'Melee weapon', 1),
+ (9, 2, 58, 'combat fist', 2),
+ (10, 2, 27, '15cm', 3),
+ (11, 2, 36, 'Stark Industries', 4),
+ (12, 2, 1, 'Silver', 5),
+ (13, 2, 67, 'Concussion', 6),
+ (14, 2, 23, '2', 7),
+ (15, 3, 56, 'Ranged weapon', 1),
+ (16, 3, 58, 'sniper rifle', 2),
+ (17, 3, 4, '113cm', 3),
+ (18, 3, 36, 'Stark Industries', 4),
+ (19, 3, 1, 'Green', 5),
+ (20, 3, 67, 'precission', 6),
+ (21, 3, 23, '3', 7),
+ (22, 4, 56, 'Melee weapon', 1),
+ (23, 4, 58, 'heavy shield', 2),
+ (24, 4, 4, '100cm', 3),
+ (25, 4, 36, 'Stark Industries', 4),
+ (26, 4, 1, 'Black', 5),
+ (27, 4, 67, 'containtment', 6),
+ (28, 4, 23, '4', 7),
+ (29, 5, 56, 'Ranged weapon', 1),
+ (30, 5, 58, 'pistol', 2),
+ (31, 5, 67, '9mm', 3),
+ (32, 5, 36, 'Stark Industries', 4),
+ (33, 5, 1, 'Silver', 5),
+ (34, 5, 27, '15cm', 6),
+ (35, 5, 23, '5', 7),
+ (36, 6, 56, 'Container', 1),
+ (37, 6, 58, 'ammo box', 2),
+ (38, 6, 27, '100cm', 3),
+ (39, 6, 36, 'Stark Industries', 4),
+ (40, 6, 1, 'Green', 5),
+ (41, 6, 67, 'supply', 6),
+ (42, 6, 23, '6', 7),
+ (43, 7, 56, 'Container', 1),
+ (44, 7, 58, 'medical box', 2),
+ (45, 7, 27, '100cm', 3),
+ (46, 7, 36, 'Stark Industries', 4),
+ (47, 7, 1, 'White', 5),
+ (48, 7, 67, 'supply', 6),
+ (49, 7, 23, '7', 7),
+ (50, 8, 56, 'Ranged Reinforced weapon', 1),
+ (51, 8, 58, '+1 longbow', 2),
+ (52, 8, 27, '200cm', 3),
+ (53, 8, 36, 'Stark Industries', 4),
+ (54, 8, 1, 'Brown', 5),
+ (55, 8, 67, 'precission', 6),
+ (56, 8, 23, '8', 7),
+ (57, 9, 56, 'Melee Reinforced weapon', 1),
+ (58, 9, 58, 'combat fist', 2),
+ (59, 9, 27, '15cm', 3),
+ (60, 9, 36, 'Stark Industries', 4),
+ (61, 9, 1, 'Silver', 5),
+ (62, 9, 67, 'Concussion', 6),
+ (63, 9, 23, '9', 7),
+ (64, 10, 56, 'Ranged Reinforced weapon', 1),
+ (65, 10, 58, 'sniper rifle', 2),
+ (66, 10, 67, '700mm', 3),
+ (67, 10, 36, 'Stark Industries', 4),
+ (68, 10, 1, 'Green', 5),
+ (69, 10, 27, '130cm', 6),
+ (70, 10, 23, '10', 7),
+ (71, 11, 56, 'Melee Reinforced weapon', 1),
+ (72, 11, 58, 'heavy shield', 2),
+ (73, 11, 4, '120cm', 3),
+ (74, 11, 36, 'Stark Industries', 4),
+ (75, 11, 1, 'Black', 5),
+ (76, 11, 67, 'containtment', 6),
+ (77, 11, 23, '11', 7),
+ (78, 12, 56, 'Ranged Reinforced weapon', 1),
+ (79, 12, 58, 'pistol', 2),
+ (80, 12, 27, '9mm', 3),
+ (81, 12, 36, 'Stark Industries', 4),
+ (82, 12, 1, 'Silver', 5),
+ (83, 12, 67, '23cm', 6),
+ (84, 12, 23, '12', 7),
+ (85, 13, 56, 'Chest', 1),
+ (86, 13, 58, 'ammo box', 2),
+ (87, 13, 27, '100cm', 3),
+ (88, 13, 36, 'Stark Industries', 4),
+ (89, 13, 1, 'Green', 5),
+ (90, 13, 67, 'supply', 6),
+ (91, 13, 23, '13', 7),
+ (92, 14, 56, 'Chest', 1),
+ (93, 14, 58, 'medical box', 2),
+ (94, 14, 27, '100cm', 3),
+ (95, 14, 36, 'Stark Industries', 4),
+ (96, 14, 1, 'White', 5),
+ (97, 14, 67, 'supply', 6),
+ (98, 14, 23, '1', 7),
+ (99, 15, 92, 'Trolley', 2),
+ (100, 16, 92, 'Pallet', 2),
+ (101, 71, 92, 'Shipping cost', 2),
+ (102, 88, 56, 'Chest', 1),
+ (103, 88, 58, 'ammo box', 2),
+ (104, 88, 27, '100cm', 3),
+ (105, 88, 36, 'Stark Industries', 4),
+ (106, 88, 1, 'White', 5),
+ (107, 88, 67, 'supply', 6),
+ (108, 88, 23, '13', 7),
+ (109, 72, 56, 'Mistic weapon', 1),
+ (110, 72, 58, 'Stormbreaker', 2),
+ (111, 72, 27, '200cm', 3),
+ (112, 72, 36, 'Stark Industries', 4),
+ (113, 72, 1, 'Red/Green/Blue', 5),
+ (114, 72, 67, '-1 precission', 6),
+ (115, 72, 23, '1', 7);
INSERT INTO `vn`.`itemTypeTag`(`id`, `itemTypeFk`, `tagFk`, `priority`)
VALUES
@@ -1527,7 +1546,8 @@ INSERT INTO `vn`.`travel`(`id`,`shipped`, `landed`, `warehouseInFk`, `warehouseO
(10, DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY), DATE_ADD(util.VN_CURDATE(), INTERVAL +5 DAY), 5, 1, 1, 50.00, 500, 'nineth travel', 1, 2, 10, TRUE, 2),
(11, util.VN_CURDATE() - INTERVAL 1 DAY , util.VN_CURDATE(), 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL),
(12, util.VN_CURDATE() , util.VN_CURDATE() + INTERVAL 1 DAY, 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL),
- (13, util.VN_CURDATE() - INTERVAL 1 MONTH - INTERVAL 1 DAY, util.VN_CURDATE() - INTERVAL 1 MONTH, 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL);
+ (13, util.VN_CURDATE() - INTERVAL 1 MONTH - INTERVAL 1 DAY, util.VN_CURDATE() - INTERVAL 1 MONTH, 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL),
+ (14, util.VN_CURDATE() - INTERVAL 1 DAY , util.VN_CURDATE() + INTERVAL 1 DAY, 6, 3, 0, 50.00, 500, 'eleventh travel', 1, 2, 4, FALSE, NULL);
INSERT INTO `vn`.`entry`(`id`, `supplierFk`, `created`, `travelFk`, `isConfirmed`, `companyFk`, `invoiceNumber`, `reference`, `isExcludedFromAvailable`, `evaNotes`, `typeFk`)
VALUES
@@ -1543,10 +1563,11 @@ INSERT INTO `vn`.`entry`(`id`, `supplierFk`, `created`, `travelFk`, `isConfirmed
(10, 2, DATE_ADD(util.VN_CURDATE(), INTERVAL +2 DAY), 10, 0, 442, 'IN2010', 'Movement 10',1, '', 'product'),
(11, 4, DATE_ADD(util.VN_CURDATE(), INTERVAL -2 MONTH), 1, 1, 442, 'IN2011', 'Movement 11',0, '', 'product'),
(12, 4, util.VN_CURDATE() - INTERVAL 1 MONTH, 13, 1, 442, 'IN2012', 'Movement 12',0, '', 'product'),
- (99, 69, util.VN_CURDATE() - INTERVAL 1 MONTH, 11, 0, 442, 'IN2009', 'Movement 99',0, '', 'product');
+ (99, 69, util.VN_CURDATE() - INTERVAL 1 MONTH, 11, 0, 442, 'IN2009', 'Movement 99',0, '', 'product'),
+ (100, 1, util.VN_CURDATE() , 14, 0, 442, 'IN2009','Movement 100',0, '', 'product');
-INSERT INTO `vn`.`entryConfig` (`defaultEntry`, `inventorySupplierFk`, `defaultSupplierFk`)
- VALUES (2, 4, 1);
+INSERT INTO `vn`.`entryConfig` (`defaultEntry`, `inventorySupplierFk`, `maxLockTime`, `defaultSupplierFk`)
+ VALUES (2, 4, 300, 1);
INSERT INTO `bs`.`waste`(`buyerFk`, `year`, `week`, `itemFk`, `itemTypeFk`, `saleTotal`, `saleWasteQuantity`, `saleExternalWaste`, `saleFaultWaste`, `saleContainerWaste`, `saleBreakWaste`, `saleOtherWaste`)
VALUES
@@ -1566,26 +1587,35 @@ INSERT INTO `bs`.`waste`(`buyerFk`, `year`, `week`, `itemFk`, `itemTypeFk`, `sal
('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 6, 1, '186', '0', '51', '53.12', '56.20', '56.20', '56.20'),
('103', YEAR(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK)), WEEK(DATE_ADD(util.VN_CURDATE(), INTERVAL -1 WEEK), 1), 7, 1, '277', '0', '53.12', '56.20', '56.20', '56.20', '56.20');
- INSERT INTO vn.buy(id,entryFk,itemFk,buyingValue,quantity,packagingFk,stickers,freightValue,packageValue,comissionValue,packing,grouping,groupingMode,location,price1,price2,price3,printedStickers,isChecked,isIgnored,weight,created)
- VALUES
- (1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
- (2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 1 MONTH),
- (3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, NULL, NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE()),
- (4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
- (5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, NULL, NULL, 0.00, 78.3, 75.6, 0, 1, 0, 2.5, util.VN_CURDATE()),
- (6, 4, 8, 50, 1000, 4, 1, 1.000, 1.000, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 2.5, util.VN_CURDATE()),
- (7, 4, 9, 20, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'packing', NULL, 0.00, 30.50, 29.00, 0, 1, 0, 2.5, util.VN_CURDATE()),
- (8, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 2.5, util.VN_CURDATE()),
- (9, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
- (10, 5, 1, 50, 10, 4, 1, 2.500, 2.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()),
- (11, 5, 4, 1.25, 10, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
- (12, 6, 4, 1.25, 0, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
- (13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 4, util.VN_CURDATE()),
- (14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 7.30, 7.00, 0, 1, 0, 4, util.VN_CURDATE()),
- (15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, 4, util.VN_CURDATE()),
- (16, 99,1,50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.60, 99.40, 0, 1, 0, 1.00, '2024-07-30 08:13:51.000'),
- (17, 11, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
- (18, 12, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, 1, util.VN_CURDATE() - INTERVAL 2 MONTH);
+ INSERT INTO edi.supplier (supplier_id,company_name,entry_date,expiry_date,change_date_time,isAllowedDirectSales,isBanned)
+ VALUES (1,'MV', util.VN_CURDATE(), util.VN_CURDATE(), util.VN_CURDATE(), 1, 0);
+ INSERT INTO edi.ekt (id,`ref`,qty,pro,pri,ok,scanned)
+ VALUES (1, 1234, 1, 1, 1.1, 1, 1);
+
+ INSERT INTO vn.buy(id,entryFk,itemFk,buyingValue,quantity,packagingFk,stickers,freightValue,packageValue,comissionValue,packing,grouping,groupingMode,location,price1,price2,price3,printedStickers,isChecked,isIgnored,ektFk,weight,created)
+ VALUES
+ ( 1, 1, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
+ ( 2, 2, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE() - INTERVAL 1 MONTH),
+ ( 3, 3, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, NULL, NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE()),
+ ( 4, 2, 2, 5, 450, 3, 1, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()),
+ ( 5, 3, 3, 55, 500, 5, 1, 1.000, 1.000, 0.000, 1, 1, NULL, NULL, 0.00, 78.3, 75.6, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()),
+ ( 6, 4, 8, 50, 1000, 4, 1, 1.000, 1.000, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()),
+ ( 7, 4, 9, 20, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'packing', NULL, 0.00, 30.50, 29.00, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()),
+ ( 8, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()),
+ ( 9, 4, 4, 1.25, 1000, 3, 1, 0.500, 0.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (10, 5, 1, 50, 10, 4, 1, 2.500, 2.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (11, 5, 4, 1.25, 10, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (12, 6, 4, 1.25, 0, 3, 1, 2.500, 2.500, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (13, 7, 1, 50, 0, 3, 1, 2.000, 2.000, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (14, 7, 2, 5, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 7.30, 7.00, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (15, 7, 4, 1.25, 0, 3, 1, 2.000, 2.000, 0.000, 10, 10, 'grouping', NULL, 0.00, 1.75, 1.67, 0, 1, 0, NULL, 4, util.VN_CURDATE()),
+ (16, 99, 1, 50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.60, 99.40, 0, 1, 0, NULL, 1.00, util.VN_CURDATE()),
+ (17, 11, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'packing', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
+ (18, 12, 1, 50, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE() - INTERVAL 2 MONTH),
+ (19, 100, 1, 50, 100, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.6, 99.4, 0, 1, 0, NULL, 1, util.VN_CURDATE()),
+ (20, 100, 2, 5, 450, 3, 2, 1.000, 1.000, 0.000, 10, 10, NULL, NULL, 0.00, 7.30, 7.00, 0, 1, 0, NULL, 2.5, util.VN_CURDATE()),
+ (21, 100,72, 55, 500, 5, 3, 1.000, 1.000, 0.000, 1, 1, 'packing', NULL, 0.00, 78.3, 75.6, 0, 1, 0, 1, 3, util.VN_CURDATE()),
+ (10000002, 12,88, 50.0000, 5000, 4, 1, 1.500, 1.500, 0.000, 1, 1, 'grouping', NULL, 0.00, 99.60, 99.40, 0, 1, 0, 1.00, 1,util.VN_CURDATE() - INTERVAL 2 MONTH);
INSERT INTO `hedera`.`order`(`id`, `date_send`, `customer_id`, `delivery_method_id`, `agency_id`, `address_id`, `company_id`, `note`, `source_app`, `confirmed`,`total`, `date_make`, `first_row_stamp`, `confirm_date`)
VALUES
@@ -2734,11 +2764,11 @@ INSERT INTO `vn`.`roadmapAddress` (`addressFk`)
(3),
(4);
-INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `eta`, `observations`, `editorFk`, `price`, `driverName`)
+INSERT INTO `vn`.`roadmap` (`id`, `name`, `tractorPlate`, `trailerPlate`, `phone`, `supplierFk`, `etd`, `observations`, `editorFk`, `price`, `driverName`)
VALUES
- (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), DATE_ADD(util.VN_NOW(), INTERVAL 2 DAY), 'this is test observation', 1, 15, 'Batman'),
- (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), DATE_ADD(util.VN_NOW(), INTERVAL 5 DAY), 'test observation', 1, 20, 'Robin'),
- (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), DATE_ADD(util.VN_NOW(), INTERVAL 6 DAY), 'observations...', 2, 25, 'Driverman');
+ (1, 'val-algemesi', '1234-BCD', '9876-BCD', '111111111', 1, util.VN_NOW(), 'this is test observation', 1, 15, 'Batman'),
+ (2, 'alg-valencia', '2345-CDF', '8765-BCD', '111111111', 1, util.VN_NOW(), 'test observation', 1, 20, 'Robin'),
+ (3, 'alz-algemesi', '3456-DFG', '7654-BCD', '222222222', 2, DATE_ADD(util.VN_NOW(), INTERVAL 3 DAY), 'observations...', 2, 25, 'Driverman');
INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `roadmapAddressFk`, `eta`, `description`, `editorFk`)
VALUES
diff --git a/db/routines/account/functions/myUser_checkLogin.sql b/db/routines/account/functions/myUser_checkLogin.sql
index ed55f0d13f..76cf6da04a 100644
--- a/db/routines/account/functions/myUser_checkLogin.sql
+++ b/db/routines/account/functions/myUser_checkLogin.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_checkLogin`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_checkLogin`()
RETURNS tinyint(1)
DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/account/functions/myUser_getId.sql b/db/routines/account/functions/myUser_getId.sql
index bc86c87dc8..864e798a99 100644
--- a/db/routines/account/functions/myUser_getId.sql
+++ b/db/routines/account/functions/myUser_getId.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_getId`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_getId`()
RETURNS int(11)
DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/account/functions/myUser_getName.sql b/db/routines/account/functions/myUser_getName.sql
index 541f7c0866..e91681329e 100644
--- a/db/routines/account/functions/myUser_getName.sql
+++ b/db/routines/account/functions/myUser_getName.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_getName`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_getName`()
RETURNS varchar(30) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
NO SQL
diff --git a/db/routines/account/functions/myUser_hasPriv.sql b/db/routines/account/functions/myUser_hasPriv.sql
index b53580d740..8105e9baa4 100644
--- a/db/routines/account/functions/myUser_hasPriv.sql
+++ b/db/routines/account/functions/myUser_hasPriv.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_hasPriv`(vChain VARCHAR(100),
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_hasPriv`(vChain VARCHAR(100),
vPrivilege ENUM('SELECT','INSERT','UPDATE','DELETE')
)
RETURNS tinyint(1)
diff --git a/db/routines/account/functions/myUser_hasRole.sql b/db/routines/account/functions/myUser_hasRole.sql
index 8cc8aafb59..53fd143fd5 100644
--- a/db/routines/account/functions/myUser_hasRole.sql
+++ b/db/routines/account/functions/myUser_hasRole.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_hasRole`(vRoleName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_hasRole`(vRoleName VARCHAR(255))
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/myUser_hasRoleId.sql b/db/routines/account/functions/myUser_hasRoleId.sql
index d059b095d0..fd8b3fb198 100644
--- a/db/routines/account/functions/myUser_hasRoleId.sql
+++ b/db/routines/account/functions/myUser_hasRoleId.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_hasRoleId`(vRoleId INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_hasRoleId`(vRoleId INT)
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/myUser_hasRoutinePriv.sql b/db/routines/account/functions/myUser_hasRoutinePriv.sql
index 9e9563a5f6..517e36f5cd 100644
--- a/db/routines/account/functions/myUser_hasRoutinePriv.sql
+++ b/db/routines/account/functions/myUser_hasRoutinePriv.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`myUser_hasRoutinePriv`(vType ENUM('PROCEDURE', 'FUNCTION'),
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`myUser_hasRoutinePriv`(vType ENUM('PROCEDURE', 'FUNCTION'),
vChain VARCHAR(100)
)
RETURNS tinyint(1)
diff --git a/db/routines/account/functions/passwordGenerate.sql b/db/routines/account/functions/passwordGenerate.sql
index 952a8912cc..a4cff0ab9c 100644
--- a/db/routines/account/functions/passwordGenerate.sql
+++ b/db/routines/account/functions/passwordGenerate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`passwordGenerate`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`passwordGenerate`()
RETURNS text CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/account/functions/toUnixDays.sql b/db/routines/account/functions/toUnixDays.sql
index db908060b1..931c29cb01 100644
--- a/db/routines/account/functions/toUnixDays.sql
+++ b/db/routines/account/functions/toUnixDays.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`toUnixDays`(vDate DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`toUnixDays`(vDate DATE)
RETURNS int(11)
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/user_getMysqlRole.sql b/db/routines/account/functions/user_getMysqlRole.sql
index 91540bc6ba..e507264800 100644
--- a/db/routines/account/functions/user_getMysqlRole.sql
+++ b/db/routines/account/functions/user_getMysqlRole.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_getMysqlRole`(vUserName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`user_getMysqlRole`(vUserName VARCHAR(255))
RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/user_getNameFromId.sql b/db/routines/account/functions/user_getNameFromId.sql
index b06facd7a3..27ea434e8c 100644
--- a/db/routines/account/functions/user_getNameFromId.sql
+++ b/db/routines/account/functions/user_getNameFromId.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_getNameFromId`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`user_getNameFromId`(vSelf INT)
RETURNS varchar(30) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/user_hasPriv.sql b/db/routines/account/functions/user_hasPriv.sql
index 83bdfaa194..fc74b197a1 100644
--- a/db/routines/account/functions/user_hasPriv.sql
+++ b/db/routines/account/functions/user_hasPriv.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_hasPriv`(vChain VARCHAR(100),
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`user_hasPriv`(vChain VARCHAR(100),
vPrivilege ENUM('SELECT','INSERT','UPDATE','DELETE'),
vUserFk INT
)
diff --git a/db/routines/account/functions/user_hasRole.sql b/db/routines/account/functions/user_hasRole.sql
index fb88efeecd..71bd7bcaee 100644
--- a/db/routines/account/functions/user_hasRole.sql
+++ b/db/routines/account/functions/user_hasRole.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_hasRole`(vUserName VARCHAR(255), vRoleName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`user_hasRole`(vUserName VARCHAR(255), vRoleName VARCHAR(255))
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/user_hasRoleId.sql b/db/routines/account/functions/user_hasRoleId.sql
index a35624d3d6..1ba5fae75c 100644
--- a/db/routines/account/functions/user_hasRoleId.sql
+++ b/db/routines/account/functions/user_hasRoleId.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_hasRoleId`(vUser VARCHAR(255), vRoleId INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`user_hasRoleId`(vUser VARCHAR(255), vRoleId INT)
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/account/functions/user_hasRoutinePriv.sql b/db/routines/account/functions/user_hasRoutinePriv.sql
index 6f87f160c4..b19ed6c2a7 100644
--- a/db/routines/account/functions/user_hasRoutinePriv.sql
+++ b/db/routines/account/functions/user_hasRoutinePriv.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `account`.`user_hasRoutinePriv`(vType ENUM('PROCEDURE', 'FUNCTION'),
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `account`.`user_hasRoutinePriv`(vType ENUM('PROCEDURE', 'FUNCTION'),
vChain VARCHAR(100),
vUserFk INT
)
diff --git a/db/routines/account/procedures/account_enable.sql b/db/routines/account/procedures/account_enable.sql
index 9f43c97a38..9441e46c8f 100644
--- a/db/routines/account/procedures/account_enable.sql
+++ b/db/routines/account/procedures/account_enable.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`account_enable`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`account_enable`(vSelf INT)
BEGIN
/**
* Enables an account and sets up email configuration.
diff --git a/db/routines/account/procedures/myUser_login.sql b/db/routines/account/procedures/myUser_login.sql
index be547292e5..013dc55d7d 100644
--- a/db/routines/account/procedures/myUser_login.sql
+++ b/db/routines/account/procedures/myUser_login.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`myUser_login`(vUserName VARCHAR(255), vPassword VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`myUser_login`(vUserName VARCHAR(255), vPassword VARCHAR(255))
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/account/procedures/myUser_loginWithKey.sql b/db/routines/account/procedures/myUser_loginWithKey.sql
index 67d8c99232..dab21e433c 100644
--- a/db/routines/account/procedures/myUser_loginWithKey.sql
+++ b/db/routines/account/procedures/myUser_loginWithKey.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`myUser_loginWithKey`(vUserName VARCHAR(255), vKey VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`myUser_loginWithKey`(vUserName VARCHAR(255), vKey VARCHAR(255))
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/account/procedures/myUser_loginWithName.sql b/db/routines/account/procedures/myUser_loginWithName.sql
index 522da77dd8..c71b7ae7b2 100644
--- a/db/routines/account/procedures/myUser_loginWithName.sql
+++ b/db/routines/account/procedures/myUser_loginWithName.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`myUser_loginWithName`(vUserName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`myUser_loginWithName`(vUserName VARCHAR(255))
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/account/procedures/myUser_logout.sql b/db/routines/account/procedures/myUser_logout.sql
index a1d7db361a..8740a1b254 100644
--- a/db/routines/account/procedures/myUser_logout.sql
+++ b/db/routines/account/procedures/myUser_logout.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`myUser_logout`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`myUser_logout`()
BEGIN
/**
* Logouts the user.
diff --git a/db/routines/account/procedures/role_checkName.sql b/db/routines/account/procedures/role_checkName.sql
index 55d9d80a9c..5f5a8b8457 100644
--- a/db/routines/account/procedures/role_checkName.sql
+++ b/db/routines/account/procedures/role_checkName.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`role_checkName`(vRoleName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`role_checkName`(vRoleName VARCHAR(255))
BEGIN
/**
* Checks that role name meets the necessary syntax requirements, otherwise it
diff --git a/db/routines/account/procedures/role_getDescendents.sql b/db/routines/account/procedures/role_getDescendents.sql
index ecd4a8790b..fcc9536fdd 100644
--- a/db/routines/account/procedures/role_getDescendents.sql
+++ b/db/routines/account/procedures/role_getDescendents.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`role_getDescendents`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`role_getDescendents`(vSelf INT)
BEGIN
/**
* Gets the identifiers of all the subroles implemented by a role (Including
diff --git a/db/routines/account/procedures/role_sync.sql b/db/routines/account/procedures/role_sync.sql
index 139193a31a..645f1f6149 100644
--- a/db/routines/account/procedures/role_sync.sql
+++ b/db/routines/account/procedures/role_sync.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`role_sync`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`role_sync`()
BEGIN
/**
* Synchronize the @roleRole table with the current role hierarchy. This
diff --git a/db/routines/account/procedures/role_syncPrivileges.sql b/db/routines/account/procedures/role_syncPrivileges.sql
index cf265b4bdf..cfdb815936 100644
--- a/db/routines/account/procedures/role_syncPrivileges.sql
+++ b/db/routines/account/procedures/role_syncPrivileges.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`role_syncPrivileges`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`role_syncPrivileges`()
BEGIN
/**
* Synchronizes permissions of MySQL role users based on role hierarchy.
diff --git a/db/routines/account/procedures/user_checkName.sql b/db/routines/account/procedures/user_checkName.sql
index 6fab173615..ca12a67a2f 100644
--- a/db/routines/account/procedures/user_checkName.sql
+++ b/db/routines/account/procedures/user_checkName.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`user_checkName`(vUserName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`user_checkName`(vUserName VARCHAR(255))
BEGIN
/**
* Checks that username meets the necessary syntax requirements, otherwise it
diff --git a/db/routines/account/procedures/user_checkPassword.sql b/db/routines/account/procedures/user_checkPassword.sql
index eb09905334..d696c51cd5 100644
--- a/db/routines/account/procedures/user_checkPassword.sql
+++ b/db/routines/account/procedures/user_checkPassword.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `account`.`user_checkPassword`(vPassword VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `account`.`user_checkPassword`(vPassword VARCHAR(255))
BEGIN
/**
* Comprueba si la contraseña cumple los requisitos de seguridad
diff --git a/db/routines/account/triggers/account_afterDelete.sql b/db/routines/account/triggers/account_afterDelete.sql
index be0e5901fb..5249b358d4 100644
--- a/db/routines/account/triggers/account_afterDelete.sql
+++ b/db/routines/account/triggers/account_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`account_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`account_afterDelete`
AFTER DELETE ON `account`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/account_afterInsert.sql b/db/routines/account/triggers/account_afterInsert.sql
index be2959ab67..0fe35867ed 100644
--- a/db/routines/account/triggers/account_afterInsert.sql
+++ b/db/routines/account/triggers/account_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`account_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`account_afterInsert`
AFTER INSERT ON `account`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/account_beforeInsert.sql b/db/routines/account/triggers/account_beforeInsert.sql
index 43b611990a..b4e9f06f71 100644
--- a/db/routines/account/triggers/account_beforeInsert.sql
+++ b/db/routines/account/triggers/account_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`account_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`account_beforeInsert`
BEFORE INSERT ON `account`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/account_beforeUpdate.sql b/db/routines/account/triggers/account_beforeUpdate.sql
index bbcea028d7..05d3ec3aeb 100644
--- a/db/routines/account/triggers/account_beforeUpdate.sql
+++ b/db/routines/account/triggers/account_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`account_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`account_beforeUpdate`
BEFORE UPDATE ON `account`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailAliasAccount_afterDelete.sql b/db/routines/account/triggers/mailAliasAccount_afterDelete.sql
index 83af7169c2..32b5b620eb 100644
--- a/db/routines/account/triggers/mailAliasAccount_afterDelete.sql
+++ b/db/routines/account/triggers/mailAliasAccount_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailAliasAccount_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailAliasAccount_afterDelete`
AFTER DELETE ON `mailAliasAccount`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailAliasAccount_beforeInsert.sql b/db/routines/account/triggers/mailAliasAccount_beforeInsert.sql
index a435832f20..171c7bc7af 100644
--- a/db/routines/account/triggers/mailAliasAccount_beforeInsert.sql
+++ b/db/routines/account/triggers/mailAliasAccount_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailAliasAccount_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailAliasAccount_beforeInsert`
BEFORE INSERT ON `mailAliasAccount`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailAliasAccount_beforeUpdate.sql b/db/routines/account/triggers/mailAliasAccount_beforeUpdate.sql
index 471a349006..4d05fc32ab 100644
--- a/db/routines/account/triggers/mailAliasAccount_beforeUpdate.sql
+++ b/db/routines/account/triggers/mailAliasAccount_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailAliasAccount_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailAliasAccount_beforeUpdate`
BEFORE UPDATE ON `mailAliasAccount`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailAlias_afterDelete.sql b/db/routines/account/triggers/mailAlias_afterDelete.sql
index fe944246d2..ec01b1a4b6 100644
--- a/db/routines/account/triggers/mailAlias_afterDelete.sql
+++ b/db/routines/account/triggers/mailAlias_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailAlias_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailAlias_afterDelete`
AFTER DELETE ON `mailAlias`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailAlias_beforeInsert.sql b/db/routines/account/triggers/mailAlias_beforeInsert.sql
index 37a9546ca7..02f900f563 100644
--- a/db/routines/account/triggers/mailAlias_beforeInsert.sql
+++ b/db/routines/account/triggers/mailAlias_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailAlias_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailAlias_beforeInsert`
BEFORE INSERT ON `mailAlias`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailAlias_beforeUpdate.sql b/db/routines/account/triggers/mailAlias_beforeUpdate.sql
index e3940cfda6..0f14dcf3f0 100644
--- a/db/routines/account/triggers/mailAlias_beforeUpdate.sql
+++ b/db/routines/account/triggers/mailAlias_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailAlias_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailAlias_beforeUpdate`
BEFORE UPDATE ON `mailAlias`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailForward_afterDelete.sql b/db/routines/account/triggers/mailForward_afterDelete.sql
index cb02b746d8..c1eef93deb 100644
--- a/db/routines/account/triggers/mailForward_afterDelete.sql
+++ b/db/routines/account/triggers/mailForward_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailForward_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailForward_afterDelete`
AFTER DELETE ON `mailForward`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailForward_beforeInsert.sql b/db/routines/account/triggers/mailForward_beforeInsert.sql
index bc4e5ef172..bf5bd1369a 100644
--- a/db/routines/account/triggers/mailForward_beforeInsert.sql
+++ b/db/routines/account/triggers/mailForward_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailForward_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailForward_beforeInsert`
BEFORE INSERT ON `mailForward`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/mailForward_beforeUpdate.sql b/db/routines/account/triggers/mailForward_beforeUpdate.sql
index 88594979a2..590b203474 100644
--- a/db/routines/account/triggers/mailForward_beforeUpdate.sql
+++ b/db/routines/account/triggers/mailForward_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`mailForward_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`mailForward_beforeUpdate`
BEFORE UPDATE ON `mailForward`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/roleInherit_afterDelete.sql b/db/routines/account/triggers/roleInherit_afterDelete.sql
index c7c82eedb0..84e2cbc67d 100644
--- a/db/routines/account/triggers/roleInherit_afterDelete.sql
+++ b/db/routines/account/triggers/roleInherit_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`roleInherit_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`roleInherit_afterDelete`
AFTER DELETE ON `roleInherit`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/roleInherit_beforeInsert.sql b/db/routines/account/triggers/roleInherit_beforeInsert.sql
index 77932c12d1..a964abecbb 100644
--- a/db/routines/account/triggers/roleInherit_beforeInsert.sql
+++ b/db/routines/account/triggers/roleInherit_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`roleInherit_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`roleInherit_beforeInsert`
BEFORE INSERT ON `roleInherit`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/roleInherit_beforeUpdate.sql b/db/routines/account/triggers/roleInherit_beforeUpdate.sql
index 05aef0b95a..05b2ae8b5e 100644
--- a/db/routines/account/triggers/roleInherit_beforeUpdate.sql
+++ b/db/routines/account/triggers/roleInherit_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`roleInherit_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`roleInherit_beforeUpdate`
BEFORE UPDATE ON `roleInherit`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/role_afterDelete.sql b/db/routines/account/triggers/role_afterDelete.sql
index be382cba63..731f1c978e 100644
--- a/db/routines/account/triggers/role_afterDelete.sql
+++ b/db/routines/account/triggers/role_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`role_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`role_afterDelete`
AFTER DELETE ON `role`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/role_beforeInsert.sql b/db/routines/account/triggers/role_beforeInsert.sql
index f68a211a76..35e493bf7e 100644
--- a/db/routines/account/triggers/role_beforeInsert.sql
+++ b/db/routines/account/triggers/role_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`role_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`role_beforeInsert`
BEFORE INSERT ON `role`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/role_beforeUpdate.sql b/db/routines/account/triggers/role_beforeUpdate.sql
index a2f471b646..588d2271d1 100644
--- a/db/routines/account/triggers/role_beforeUpdate.sql
+++ b/db/routines/account/triggers/role_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`role_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`role_beforeUpdate`
BEFORE UPDATE ON `role`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/user_afterDelete.sql b/db/routines/account/triggers/user_afterDelete.sql
index eabe60d8cf..710549cc66 100644
--- a/db/routines/account/triggers/user_afterDelete.sql
+++ b/db/routines/account/triggers/user_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`user_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`user_afterDelete`
AFTER DELETE ON `user`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/user_afterInsert.sql b/db/routines/account/triggers/user_afterInsert.sql
index 31f992c16b..2cc4da49b0 100644
--- a/db/routines/account/triggers/user_afterInsert.sql
+++ b/db/routines/account/triggers/user_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`user_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`user_afterInsert`
AFTER INSERT ON `user`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/user_afterUpdate.sql b/db/routines/account/triggers/user_afterUpdate.sql
index 7fb4e644f5..7e5415ee7f 100644
--- a/db/routines/account/triggers/user_afterUpdate.sql
+++ b/db/routines/account/triggers/user_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`user_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`user_afterUpdate`
AFTER UPDATE ON `user`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/user_beforeInsert.sql b/db/routines/account/triggers/user_beforeInsert.sql
index 6cafa8b3ff..e15f8faa51 100644
--- a/db/routines/account/triggers/user_beforeInsert.sql
+++ b/db/routines/account/triggers/user_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`user_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`user_beforeInsert`
BEFORE INSERT ON `user`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/triggers/user_beforeUpdate.sql b/db/routines/account/triggers/user_beforeUpdate.sql
index 849dfbd91b..ae8d648e29 100644
--- a/db/routines/account/triggers/user_beforeUpdate.sql
+++ b/db/routines/account/triggers/user_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `account`.`user_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `account`.`user_beforeUpdate`
BEFORE UPDATE ON `user`
FOR EACH ROW
BEGIN
diff --git a/db/routines/account/views/accountDovecot.sql b/db/routines/account/views/accountDovecot.sql
index 1e30946f3f..d3d03ca641 100644
--- a/db/routines/account/views/accountDovecot.sql
+++ b/db/routines/account/views/accountDovecot.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `account`.`accountDovecot`
AS SELECT `u`.`name` AS `name`,
diff --git a/db/routines/account/views/emailUser.sql b/db/routines/account/views/emailUser.sql
index dcb4354540..d6a66719c6 100644
--- a/db/routines/account/views/emailUser.sql
+++ b/db/routines/account/views/emailUser.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `account`.`emailUser`
AS SELECT `u`.`id` AS `userFk`,
diff --git a/db/routines/account/views/myRole.sql b/db/routines/account/views/myRole.sql
index 68364f0bc1..036300db58 100644
--- a/db/routines/account/views/myRole.sql
+++ b/db/routines/account/views/myRole.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `account`.`myRole`
AS SELECT `r`.`inheritsFrom` AS `id`
diff --git a/db/routines/account/views/myUser.sql b/db/routines/account/views/myUser.sql
index 8d927dc0f3..faf7f76aec 100644
--- a/db/routines/account/views/myUser.sql
+++ b/db/routines/account/views/myUser.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `account`.`myUser`
AS SELECT `u`.`id` AS `id`,
diff --git a/db/routines/bi/procedures/Greuge_Evolution_Add.sql b/db/routines/bi/procedures/Greuge_Evolution_Add.sql
index 6480155cb1..bf5693ad28 100644
--- a/db/routines/bi/procedures/Greuge_Evolution_Add.sql
+++ b/db/routines/bi/procedures/Greuge_Evolution_Add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`Greuge_Evolution_Add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`Greuge_Evolution_Add`()
BEGIN
/*
Inserta en la tabla Greuge_Evolution el saldo acumulado de cada cliente,
diff --git a/db/routines/bi/procedures/analisis_ventas_evolution_add.sql b/db/routines/bi/procedures/analisis_ventas_evolution_add.sql
index 7c2cc5678d..bbee190ea6 100644
--- a/db/routines/bi/procedures/analisis_ventas_evolution_add.sql
+++ b/db/routines/bi/procedures/analisis_ventas_evolution_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_evolution_add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`analisis_ventas_evolution_add`()
BEGIN
DECLARE vPreviousPeriod INT;
DECLARE vCurrentPeriod INT;
diff --git a/db/routines/bi/procedures/analisis_ventas_simple.sql b/db/routines/bi/procedures/analisis_ventas_simple.sql
index 5c67584eed..597d9bcd48 100644
--- a/db/routines/bi/procedures/analisis_ventas_simple.sql
+++ b/db/routines/bi/procedures/analisis_ventas_simple.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_simple`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`analisis_ventas_simple`()
BEGIN
/**
* Vacia y rellena la tabla 'analisis_grafico_simple' desde 'analisis_grafico_ventas'
diff --git a/db/routines/bi/procedures/analisis_ventas_update.sql b/db/routines/bi/procedures/analisis_ventas_update.sql
index d38bebfc24..e7e1d168a1 100644
--- a/db/routines/bi/procedures/analisis_ventas_update.sql
+++ b/db/routines/bi/procedures/analisis_ventas_update.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`analisis_ventas_update`()
BEGIN
DECLARE vLastMonth DATE;
diff --git a/db/routines/bi/procedures/clean.sql b/db/routines/bi/procedures/clean.sql
index a1eb991660..4c3994dd52 100644
--- a/db/routines/bi/procedures/clean.sql
+++ b/db/routines/bi/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`clean`()
BEGIN
DECLARE vDateShort DATETIME;
DECLARE vDateLong DATETIME;
diff --git a/db/routines/bi/procedures/defaultersFromDate.sql b/db/routines/bi/procedures/defaultersFromDate.sql
index eb1721a34c..21f52d119f 100644
--- a/db/routines/bi/procedures/defaultersFromDate.sql
+++ b/db/routines/bi/procedures/defaultersFromDate.sql
@@ -1,7 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`defaultersFromDate`(
- IN vDated DATE
-)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`defaultersFromDate`(IN vDated DATE)
BEGIN
/**
* Retorna la info de clientes morosos a una fecha
diff --git a/db/routines/bi/procedures/defaulting.sql b/db/routines/bi/procedures/defaulting.sql
index d20232b8b0..db030fa0f3 100644
--- a/db/routines/bi/procedures/defaulting.sql
+++ b/db/routines/bi/procedures/defaulting.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`defaulting`(IN `vDate` DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`defaulting`(IN `vDate` DATE)
BEGIN
DECLARE vDone BOOLEAN;
DECLARE vClient INT;
diff --git a/db/routines/bi/procedures/defaulting_launcher.sql b/db/routines/bi/procedures/defaulting_launcher.sql
index 585abdc09b..a0df72adf9 100644
--- a/db/routines/bi/procedures/defaulting_launcher.sql
+++ b/db/routines/bi/procedures/defaulting_launcher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`defaulting_launcher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`defaulting_launcher`()
BEGIN
/**
* Calcula la morosidad de los clientes.
diff --git a/db/routines/bi/procedures/facturacion_media_anual_update.sql b/db/routines/bi/procedures/facturacion_media_anual_update.sql
index e8810cc219..62f5d623d5 100644
--- a/db/routines/bi/procedures/facturacion_media_anual_update.sql
+++ b/db/routines/bi/procedures/facturacion_media_anual_update.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`facturacion_media_anual_update`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`facturacion_media_anual_update`()
BEGIN
TRUNCATE TABLE bs.clientAnnualConsumption;
diff --git a/db/routines/bi/procedures/greuge_dif_porte_add.sql b/db/routines/bi/procedures/greuge_dif_porte_add.sql
index 330ff92b81..b86524f59c 100644
--- a/db/routines/bi/procedures/greuge_dif_porte_add.sql
+++ b/db/routines/bi/procedures/greuge_dif_porte_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`greuge_dif_porte_add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`greuge_dif_porte_add`()
BEGIN
/**
diff --git a/db/routines/bi/procedures/nigthlyAnalisisVentas.sql b/db/routines/bi/procedures/nigthlyAnalisisVentas.sql
index c21a3bae5d..2568600ae6 100644
--- a/db/routines/bi/procedures/nigthlyAnalisisVentas.sql
+++ b/db/routines/bi/procedures/nigthlyAnalisisVentas.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`nigthlyAnalisisVentas`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`nigthlyAnalisisVentas`()
BEGIN
CALL analisis_ventas_update;
CALL analisis_ventas_simple;
diff --git a/db/routines/bi/procedures/rutasAnalyze.sql b/db/routines/bi/procedures/rutasAnalyze.sql
index 1f103bde0e..a5f051dfac 100644
--- a/db/routines/bi/procedures/rutasAnalyze.sql
+++ b/db/routines/bi/procedures/rutasAnalyze.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`rutasAnalyze`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`rutasAnalyze`(
vDatedFrom DATE,
vDatedTo DATE
)
diff --git a/db/routines/bi/procedures/rutasAnalyze_launcher.sql b/db/routines/bi/procedures/rutasAnalyze_launcher.sql
index 02f5e1b9c7..9cc6f0eeb5 100644
--- a/db/routines/bi/procedures/rutasAnalyze_launcher.sql
+++ b/db/routines/bi/procedures/rutasAnalyze_launcher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bi`.`rutasAnalyze_launcher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bi`.`rutasAnalyze_launcher`()
BEGIN
/**
* Call rutasAnalyze
diff --git a/db/routines/bi/views/analisis_grafico_ventas.sql b/db/routines/bi/views/analisis_grafico_ventas.sql
index f5956f27a1..566f24c2ee 100644
--- a/db/routines/bi/views/analisis_grafico_ventas.sql
+++ b/db/routines/bi/views/analisis_grafico_ventas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`analisis_grafico_ventas`
AS SELECT `bi`.`analisis_ventas`.`Año` AS `Año`,
diff --git a/db/routines/bi/views/analisis_ventas_simple.sql b/db/routines/bi/views/analisis_ventas_simple.sql
index 109378c8a6..8651f3d05e 100644
--- a/db/routines/bi/views/analisis_ventas_simple.sql
+++ b/db/routines/bi/views/analisis_ventas_simple.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`analisis_ventas_simple`
AS SELECT `bi`.`analisis_ventas`.`Año` AS `Año`,
diff --git a/db/routines/bi/views/claims_ratio.sql b/db/routines/bi/views/claims_ratio.sql
index cfd9b62316..39ceae56d2 100644
--- a/db/routines/bi/views/claims_ratio.sql
+++ b/db/routines/bi/views/claims_ratio.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`claims_ratio`
AS SELECT `cr`.`clientFk` AS `Id_Cliente`,
diff --git a/db/routines/bi/views/customerRiskOverdue.sql b/db/routines/bi/views/customerRiskOverdue.sql
index 27ef7ca471..8b8deb3ca6 100644
--- a/db/routines/bi/views/customerRiskOverdue.sql
+++ b/db/routines/bi/views/customerRiskOverdue.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`customerRiskOverdue`
AS SELECT `cr`.`clientFk` AS `customer_id`,
diff --git a/db/routines/bi/views/defaulters.sql b/db/routines/bi/views/defaulters.sql
index 9275032451..e5922a7461 100644
--- a/db/routines/bi/views/defaulters.sql
+++ b/db/routines/bi/views/defaulters.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`defaulters`
AS SELECT `d`.`clientFk` AS `client`,
diff --git a/db/routines/bi/views/facturacion_media_anual.sql b/db/routines/bi/views/facturacion_media_anual.sql
index 2e0c2ca6e8..8b1cde492b 100644
--- a/db/routines/bi/views/facturacion_media_anual.sql
+++ b/db/routines/bi/views/facturacion_media_anual.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`facturacion_media_anual`
AS SELECT `cac`.`clientFk` AS `Id_Cliente`,
diff --git a/db/routines/bi/views/tarifa_componentes.sql b/db/routines/bi/views/tarifa_componentes.sql
index 42ea9fa81d..614e84eb98 100644
--- a/db/routines/bi/views/tarifa_componentes.sql
+++ b/db/routines/bi/views/tarifa_componentes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`tarifa_componentes`
AS SELECT `c`.`id` AS `Id_Componente`,
diff --git a/db/routines/bi/views/tarifa_componentes_series.sql b/db/routines/bi/views/tarifa_componentes_series.sql
index ed2f8e29a4..508a78fb30 100644
--- a/db/routines/bi/views/tarifa_componentes_series.sql
+++ b/db/routines/bi/views/tarifa_componentes_series.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bi`.`tarifa_componentes_series`
AS SELECT `ct`.`id` AS `tarifa_componentes_series_id`,
diff --git a/db/routines/bs/events/clientDied_recalc.sql b/db/routines/bs/events/clientDied_recalc.sql
index db912658af..9a9a5ebb31 100644
--- a/db/routines/bs/events/clientDied_recalc.sql
+++ b/db/routines/bs/events/clientDied_recalc.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `bs`.`clientDied_recalc`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `bs`.`clientDied_recalc`
ON SCHEDULE EVERY 1 DAY
STARTS '2023-06-01 03:00:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/bs/events/inventoryDiscrepancy_launch.sql b/db/routines/bs/events/inventoryDiscrepancy_launch.sql
index 3ee165846f..015425dfdd 100644
--- a/db/routines/bs/events/inventoryDiscrepancy_launch.sql
+++ b/db/routines/bs/events/inventoryDiscrepancy_launch.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `bs`.`inventoryDiscrepancy_launch`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `bs`.`inventoryDiscrepancy_launch`
ON SCHEDULE EVERY 15 MINUTE
STARTS '2023-07-18 00:00:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/bs/events/nightTask_launchAll.sql b/db/routines/bs/events/nightTask_launchAll.sql
index 1a55ca1a31..f1f20f1cc6 100644
--- a/db/routines/bs/events/nightTask_launchAll.sql
+++ b/db/routines/bs/events/nightTask_launchAll.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `bs`.`nightTask_launchAll`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `bs`.`nightTask_launchAll`
ON SCHEDULE EVERY 1 DAY
STARTS '2022-02-08 04:14:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/bs/functions/tramo.sql b/db/routines/bs/functions/tramo.sql
index 0415cfc92d..a45860409a 100644
--- a/db/routines/bs/functions/tramo.sql
+++ b/db/routines/bs/functions/tramo.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `bs`.`tramo`(vDateTime DATETIME)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `bs`.`tramo`(vDateTime DATETIME)
RETURNS varchar(20) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
NOT DETERMINISTIC
NO SQL
diff --git a/db/routines/bs/procedures/clean.sql b/db/routines/bs/procedures/clean.sql
index e40ffaaa0a..ec4a722b0d 100644
--- a/db/routines/bs/procedures/clean.sql
+++ b/db/routines/bs/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`clean`()
BEGIN
DECLARE vOneYearAgo DATE DEFAULT util.VN_CURDATE() - INTERVAL 1 YEAR;
diff --git a/db/routines/bs/procedures/clientDied_recalc.sql b/db/routines/bs/procedures/clientDied_recalc.sql
index 140d9a8f54..36f0ecc20d 100644
--- a/db/routines/bs/procedures/clientDied_recalc.sql
+++ b/db/routines/bs/procedures/clientDied_recalc.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`clientDied_recalc`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`clientDied_recalc`(
vDays INT,
vCountryCode VARCHAR(2)
)
diff --git a/db/routines/bs/procedures/clientNewBorn_recalc.sql b/db/routines/bs/procedures/clientNewBorn_recalc.sql
index bb6b02aa7b..02a3387cff 100644
--- a/db/routines/bs/procedures/clientNewBorn_recalc.sql
+++ b/db/routines/bs/procedures/clientNewBorn_recalc.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`clientNewBorn_recalc`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`clientNewBorn_recalc`()
BLOCK1: BEGIN
DECLARE vClientFk INT;
diff --git a/db/routines/bs/procedures/compradores_evolution_add.sql b/db/routines/bs/procedures/compradores_evolution_add.sql
index e9b073e28d..1049122a0e 100644
--- a/db/routines/bs/procedures/compradores_evolution_add.sql
+++ b/db/routines/bs/procedures/compradores_evolution_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`compradores_evolution_add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`compradores_evolution_add`()
BEGIN
/**
* Inserta en la tabla compradores_evolution las ventas acumuladas en los ultimos 365 dias
diff --git a/db/routines/bs/procedures/fondo_evolution_add.sql b/db/routines/bs/procedures/fondo_evolution_add.sql
index 3ca91e6473..22f73ff8dc 100644
--- a/db/routines/bs/procedures/fondo_evolution_add.sql
+++ b/db/routines/bs/procedures/fondo_evolution_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`fondo_evolution_add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`fondo_evolution_add`()
BEGIN
/**
* Inserta en la tabla fondo_maniobra los saldos acumulados en los ultimos 365 dias
diff --git a/db/routines/bs/procedures/fruitsEvolution.sql b/db/routines/bs/procedures/fruitsEvolution.sql
index c689f4b760..15ce35ebe3 100644
--- a/db/routines/bs/procedures/fruitsEvolution.sql
+++ b/db/routines/bs/procedures/fruitsEvolution.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`fruitsEvolution`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`fruitsEvolution`()
BEGIN
select Id_Cliente,
Cliente, count(semana) as semanas, (w.code IS NOT NULL) isWorker
diff --git a/db/routines/bs/procedures/indicatorsUpdate.sql b/db/routines/bs/procedures/indicatorsUpdate.sql
index 2ce1ea8fa9..c835df0579 100644
--- a/db/routines/bs/procedures/indicatorsUpdate.sql
+++ b/db/routines/bs/procedures/indicatorsUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`indicatorsUpdate`(vDated DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`indicatorsUpdate`(vDated DATE)
BEGIN
DECLARE oneYearBefore DATE DEFAULT TIMESTAMPADD(YEAR,-1, vDated);
diff --git a/db/routines/bs/procedures/indicatorsUpdateLauncher.sql b/db/routines/bs/procedures/indicatorsUpdateLauncher.sql
index 8ede28ec84..b4f7685221 100644
--- a/db/routines/bs/procedures/indicatorsUpdateLauncher.sql
+++ b/db/routines/bs/procedures/indicatorsUpdateLauncher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`indicatorsUpdateLauncher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`indicatorsUpdateLauncher`()
BEGIN
DECLARE vDated DATE;
diff --git a/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql b/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql
index 6894b29289..045f06f299 100644
--- a/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql
+++ b/db/routines/bs/procedures/inventoryDiscrepancyDetail_replace.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`inventoryDiscrepancyDetail_replace`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`inventoryDiscrepancyDetail_replace`()
BEGIN
/**
* Replace all records in table inventoryDiscrepancyDetail and insert new
diff --git a/db/routines/bs/procedures/m3Add.sql b/db/routines/bs/procedures/m3Add.sql
index 0ec2c8ce29..63159815b2 100644
--- a/db/routines/bs/procedures/m3Add.sql
+++ b/db/routines/bs/procedures/m3Add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`m3Add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`m3Add`()
BEGIN
DECLARE datSTART DATE;
diff --git a/db/routines/bs/procedures/manaCustomerUpdate.sql b/db/routines/bs/procedures/manaCustomerUpdate.sql
index 02964cb5be..ddbc77fe85 100644
--- a/db/routines/bs/procedures/manaCustomerUpdate.sql
+++ b/db/routines/bs/procedures/manaCustomerUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`manaCustomerUpdate`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`manaCustomerUpdate`()
BEGIN
DECLARE vToDated DATE;
DECLARE vFromDated DATE;
diff --git a/db/routines/bs/procedures/manaSpellers_actualize.sql b/db/routines/bs/procedures/manaSpellers_actualize.sql
index 7ab197337f..50cc853e8f 100644
--- a/db/routines/bs/procedures/manaSpellers_actualize.sql
+++ b/db/routines/bs/procedures/manaSpellers_actualize.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`manaSpellers_actualize`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`manaSpellers_actualize`()
BEGIN
/**
* Recalcula el valor del campo con el modificador de precio
diff --git a/db/routines/bs/procedures/nightTask_launchAll.sql b/db/routines/bs/procedures/nightTask_launchAll.sql
index e61e88bb6f..9c3788b509 100644
--- a/db/routines/bs/procedures/nightTask_launchAll.sql
+++ b/db/routines/bs/procedures/nightTask_launchAll.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`nightTask_launchAll`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`nightTask_launchAll`()
BEGIN
/**
* Runs all nightly tasks.
diff --git a/db/routines/bs/procedures/nightTask_launchTask.sql b/db/routines/bs/procedures/nightTask_launchTask.sql
index aa4c540e8e..042df9d5d4 100644
--- a/db/routines/bs/procedures/nightTask_launchTask.sql
+++ b/db/routines/bs/procedures/nightTask_launchTask.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`nightTask_launchTask`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`nightTask_launchTask`(
vSchema VARCHAR(255),
vProcedure VARCHAR(255),
OUT vError VARCHAR(255),
diff --git a/db/routines/bs/procedures/payMethodClientAdd.sql b/db/routines/bs/procedures/payMethodClientAdd.sql
index 0c19f453ac..6ed39538a9 100644
--- a/db/routines/bs/procedures/payMethodClientAdd.sql
+++ b/db/routines/bs/procedures/payMethodClientAdd.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`payMethodClientAdd`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`payMethodClientAdd`()
BEGIN
INSERT IGNORE INTO `bs`.`payMethodClient` (dated, payMethodFk, clientFk)
SELECT util.VN_CURDATE(), c.payMethodFk, c.id
diff --git a/db/routines/bs/procedures/saleGraphic.sql b/db/routines/bs/procedures/saleGraphic.sql
index e1e3879800..cdf04ed194 100644
--- a/db/routines/bs/procedures/saleGraphic.sql
+++ b/db/routines/bs/procedures/saleGraphic.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`saleGraphic`(IN vItemFk INT, IN vTypeFk INT, IN vCategoryFk INT, IN vFromDate DATE,
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`saleGraphic`(IN vItemFk INT, IN vTypeFk INT, IN vCategoryFk INT, IN vFromDate DATE,
IN vToDate DATE, IN vProducerFk INT)
BEGIN
diff --git a/db/routines/bs/procedures/sale_add.sql b/db/routines/bs/procedures/sale_add.sql
index c50d27b814..37f4f41c45 100644
--- a/db/routines/bs/procedures/sale_add.sql
+++ b/db/routines/bs/procedures/sale_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`sale_add`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`sale_add`(
IN vStarted DATE,
IN vEnded DATE
)
diff --git a/db/routines/bs/procedures/salesByClientSalesPerson_add.sql b/db/routines/bs/procedures/salesByClientSalesPerson_add.sql
index 22b8472e48..a35d7bcdf9 100644
--- a/db/routines/bs/procedures/salesByClientSalesPerson_add.sql
+++ b/db/routines/bs/procedures/salesByClientSalesPerson_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`salesByclientSalesPerson_add`(vDatedFrom DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`salesByclientSalesPerson_add`(vDatedFrom DATE)
BEGIN
/**
* Agrupa las ventas por cliente/fecha en la tabla bs.salesByclientSalesPerson
diff --git a/db/routines/bs/procedures/salesByItemTypeDay_add.sql b/db/routines/bs/procedures/salesByItemTypeDay_add.sql
index 5c12081a0e..fe7d36dc8e 100644
--- a/db/routines/bs/procedures/salesByItemTypeDay_add.sql
+++ b/db/routines/bs/procedures/salesByItemTypeDay_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`salesByItemTypeDay_add`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`salesByItemTypeDay_add`(
vDateStart DATE,
vDateEnd DATE
)
diff --git a/db/routines/bs/procedures/salesByItemTypeDay_addLauncher.sql b/db/routines/bs/procedures/salesByItemTypeDay_addLauncher.sql
index 63677def67..c2b3f4b489 100644
--- a/db/routines/bs/procedures/salesByItemTypeDay_addLauncher.sql
+++ b/db/routines/bs/procedures/salesByItemTypeDay_addLauncher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`salesByItemTypeDay_addLauncher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`salesByItemTypeDay_addLauncher`()
BEGIN
CALL bs.salesByItemTypeDay_add(util.VN_CURDATE() - INTERVAL 30 DAY, util.VN_CURDATE());
END$$
diff --git a/db/routines/bs/procedures/sales_addLauncher.sql b/db/routines/bs/procedures/sales_addLauncher.sql
index 38cb5e2198..403e76bd5e 100644
--- a/db/routines/bs/procedures/sales_addLauncher.sql
+++ b/db/routines/bs/procedures/sales_addLauncher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`sales_addLauncher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`sales_addLauncher`()
BEGIN
/**
* Añade las ventas a la tabla bs.sale que se realizaron desde hace un mes hasta hoy
diff --git a/db/routines/bs/procedures/vendedores_add_launcher.sql b/db/routines/bs/procedures/vendedores_add_launcher.sql
index 85809000fb..88d722cfa7 100644
--- a/db/routines/bs/procedures/vendedores_add_launcher.sql
+++ b/db/routines/bs/procedures/vendedores_add_launcher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`vendedores_add_launcher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`vendedores_add_launcher`()
BEGIN
CALL bs.salesByClientSalesPerson_add(util.VN_CURDATE()- INTERVAL 45 DAY);
diff --git a/db/routines/bs/procedures/ventas_contables_add.sql b/db/routines/bs/procedures/ventas_contables_add.sql
index c82cb96d9c..e9d578462c 100644
--- a/db/routines/bs/procedures/ventas_contables_add.sql
+++ b/db/routines/bs/procedures/ventas_contables_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`ventas_contables_add`(IN vYear INT, IN vMonth INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`ventas_contables_add`(IN vYear INT, IN vMonth INT)
BEGIN
/**
diff --git a/db/routines/bs/procedures/ventas_contables_add_launcher.sql b/db/routines/bs/procedures/ventas_contables_add_launcher.sql
index ac74c47bf5..e4b9c89a0a 100644
--- a/db/routines/bs/procedures/ventas_contables_add_launcher.sql
+++ b/db/routines/bs/procedures/ventas_contables_add_launcher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`ventas_contables_add_launcher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`ventas_contables_add_launcher`()
BEGIN
/**
diff --git a/db/routines/bs/procedures/waste_addSales.sql b/db/routines/bs/procedures/waste_addSales.sql
index 4a34d74b3c..69678b4fc2 100644
--- a/db/routines/bs/procedures/waste_addSales.sql
+++ b/db/routines/bs/procedures/waste_addSales.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`waste_addSales`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`waste_addSales`(
vDateFrom DATE,
vDateTo DATE
)
diff --git a/db/routines/bs/procedures/waste_addSalesLauncher.sql b/db/routines/bs/procedures/waste_addSalesLauncher.sql
index 5eaea9be4d..a735ba25a3 100644
--- a/db/routines/bs/procedures/waste_addSalesLauncher.sql
+++ b/db/routines/bs/procedures/waste_addSalesLauncher.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`waste_addSalesLauncher`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`waste_addSalesLauncher`()
BEGIN
CALL waste_addSales(NULL, NULL);
END$$
diff --git a/db/routines/bs/procedures/workerLabour_getData.sql b/db/routines/bs/procedures/workerLabour_getData.sql
index 1f5a39fe0c..28e80365a9 100644
--- a/db/routines/bs/procedures/workerLabour_getData.sql
+++ b/db/routines/bs/procedures/workerLabour_getData.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`workerLabour_getData`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`workerLabour_getData`()
BEGIN
/**
* Carga los datos de la plantilla de trabajadores, altas y bajas en la tabla workerLabourDataByMonth para facilitar el cálculo del gráfico en grafana.
diff --git a/db/routines/bs/procedures/workerProductivity_add.sql b/db/routines/bs/procedures/workerProductivity_add.sql
index 3d7dbdca96..00d8ba9e82 100644
--- a/db/routines/bs/procedures/workerProductivity_add.sql
+++ b/db/routines/bs/procedures/workerProductivity_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `bs`.`workerProductivity_add`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `bs`.`workerProductivity_add`()
BEGIN
DECLARE vDateFrom DATE;
SELECT DATE_SUB(util.VN_CURDATE(),INTERVAL 30 DAY) INTO vDateFrom;
diff --git a/db/routines/bs/triggers/clientNewBorn_beforeUpdate.sql b/db/routines/bs/triggers/clientNewBorn_beforeUpdate.sql
index a88567a21b..33e5ad3bdb 100644
--- a/db/routines/bs/triggers/clientNewBorn_beforeUpdate.sql
+++ b/db/routines/bs/triggers/clientNewBorn_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `bs`.`clientNewBorn_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `bs`.`clientNewBorn_beforeUpdate`
BEFORE UPDATE ON `clientNewBorn`
FOR EACH ROW
BEGIN
diff --git a/db/routines/bs/triggers/nightTask_beforeInsert.sql b/db/routines/bs/triggers/nightTask_beforeInsert.sql
index 96f2b52913..6d0313425b 100644
--- a/db/routines/bs/triggers/nightTask_beforeInsert.sql
+++ b/db/routines/bs/triggers/nightTask_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `bs`.`nightTask_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `bs`.`nightTask_beforeInsert`
BEFORE INSERT ON `nightTask`
FOR EACH ROW
BEGIN
diff --git a/db/routines/bs/triggers/nightTask_beforeUpdate.sql b/db/routines/bs/triggers/nightTask_beforeUpdate.sql
index 1da1da8c3c..70186202cf 100644
--- a/db/routines/bs/triggers/nightTask_beforeUpdate.sql
+++ b/db/routines/bs/triggers/nightTask_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `bs`.`nightTask_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `bs`.`nightTask_beforeUpdate`
BEFORE UPDATE ON `nightTask`
FOR EACH ROW
BEGIN
diff --git a/db/routines/bs/views/lastIndicators.sql b/db/routines/bs/views/lastIndicators.sql
index 3fa04abd3e..15de2d97fd 100644
--- a/db/routines/bs/views/lastIndicators.sql
+++ b/db/routines/bs/views/lastIndicators.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bs`.`lastIndicators`
AS SELECT `i`.`updated` AS `updated`,
diff --git a/db/routines/bs/views/packingSpeed.sql b/db/routines/bs/views/packingSpeed.sql
index 517706b158..10b70c9406 100644
--- a/db/routines/bs/views/packingSpeed.sql
+++ b/db/routines/bs/views/packingSpeed.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bs`.`packingSpeed`
AS SELECT HOUR(`e`.`created`) AS `hora`,
diff --git a/db/routines/bs/views/ventas.sql b/db/routines/bs/views/ventas.sql
index 1fab2e91b4..3ebaf67c5f 100644
--- a/db/routines/bs/views/ventas.sql
+++ b/db/routines/bs/views/ventas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `bs`.`ventas`
AS SELECT `s`.`saleFk` AS `Id_Movimiento`,
diff --git a/db/routines/cache/events/cacheCalc_clean.sql b/db/routines/cache/events/cacheCalc_clean.sql
index e13bae98b4..e201dac3aa 100644
--- a/db/routines/cache/events/cacheCalc_clean.sql
+++ b/db/routines/cache/events/cacheCalc_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `cache`.`cacheCalc_clean`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `cache`.`cacheCalc_clean`
ON SCHEDULE EVERY 30 MINUTE
STARTS '2022-01-28 09:29:18.000'
ON COMPLETION NOT PRESERVE
diff --git a/db/routines/cache/events/cache_clean.sql b/db/routines/cache/events/cache_clean.sql
index c5e247bd4b..6b83f71a0d 100644
--- a/db/routines/cache/events/cache_clean.sql
+++ b/db/routines/cache/events/cache_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `cache`.`cache_clean`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `cache`.`cache_clean`
ON SCHEDULE EVERY 5 MINUTE
STARTS '2022-01-28 09:29:18.000'
ON COMPLETION NOT PRESERVE
diff --git a/db/routines/cache/procedures/addressFriendship_Update.sql b/db/routines/cache/procedures/addressFriendship_Update.sql
index f7fab8b9b4..5e59d957a0 100644
--- a/db/routines/cache/procedures/addressFriendship_Update.sql
+++ b/db/routines/cache/procedures/addressFriendship_Update.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`addressFriendship_Update`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`addressFriendship_Update`()
BEGIN
REPLACE cache.addressFriendship
diff --git a/db/routines/cache/procedures/availableNoRaids_refresh.sql b/db/routines/cache/procedures/availableNoRaids_refresh.sql
index 447300305c..b16a91ebfa 100644
--- a/db/routines/cache/procedures/availableNoRaids_refresh.sql
+++ b/db/routines/cache/procedures/availableNoRaids_refresh.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`availableNoRaids_refresh`(OUT `vCalc` INT, IN `vRefresh` INT, IN `vWarehouse` INT, IN `vDated` DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`availableNoRaids_refresh`(OUT `vCalc` INT, IN `vRefresh` INT, IN `vWarehouse` INT, IN `vDated` DATE)
proc: BEGIN
DECLARE vStartDate DATE;
DECLARE vEndDate DATETIME;
diff --git a/db/routines/cache/procedures/available_clean.sql b/db/routines/cache/procedures/available_clean.sql
index bb1f7302c9..5a6401dc27 100644
--- a/db/routines/cache/procedures/available_clean.sql
+++ b/db/routines/cache/procedures/available_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`available_clean`()
BEGIN
DROP TEMPORARY TABLE IF EXISTS tCalc;
CREATE TEMPORARY TABLE tCalc
diff --git a/db/routines/cache/procedures/available_refresh.sql b/db/routines/cache/procedures/available_refresh.sql
index 0e42a62cdc..968484ea26 100644
--- a/db/routines/cache/procedures/available_refresh.sql
+++ b/db/routines/cache/procedures/available_refresh.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_refresh`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`available_refresh`(
OUT `vCalc` INT,
`vRefresh` INT,
`vWarehouse` INT,
@@ -89,13 +89,15 @@ proc: BEGIN
AND (ir.ended IS NULL OR i.shipped <= ir.ended)
AND i.warehouseFk = vWarehouse
UNION ALL
- SELECT i.itemFk, i.landed, i.quantity
+ SELECT i.itemFk, IFNULL(i.availabled, i.landed), i.quantity
FROM vn.itemEntryIn i
JOIN itemRange ir ON ir.itemFk = i.itemFk
- WHERE i.landed >= vStartDate
+ LEFT JOIN edi.warehouseFloramondo wf ON wf.entryFk = i.entryFk
+ WHERE IFNULL(i.availabled, i.landed) >= vStartDate
AND IFNULL(i.availabled, i.landed) <= vAvailabled
- AND (ir.ended IS NULL OR i.landed <= ir.ended)
+ AND (ir.ended IS NULL OR IFNULL(i.availabled, i.landed) <= ir.ended)
AND i.warehouseInFk = vWarehouse
+ AND wf.entryFk IS NULL
UNION ALL
SELECT i.itemFk, i.shipped, i.quantity
FROM vn.itemEntryOut i
diff --git a/db/routines/cache/procedures/available_updateItem.sql b/db/routines/cache/procedures/available_updateItem.sql
index 8e94a9d75e..3f5d58d9a7 100644
--- a/db/routines/cache/procedures/available_updateItem.sql
+++ b/db/routines/cache/procedures/available_updateItem.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`available_updateItem`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`available_updateItem`(
`vItem` INT,
`vWarehouse` INT,
`vDated` DATE,
diff --git a/db/routines/cache/procedures/cacheCalc_clean.sql b/db/routines/cache/procedures/cacheCalc_clean.sql
index 5c588687e0..ddaf649105 100644
--- a/db/routines/cache/procedures/cacheCalc_clean.sql
+++ b/db/routines/cache/procedures/cacheCalc_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`cacheCalc_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`cacheCalc_clean`()
BEGIN
DECLARE vCleanTime DATETIME DEFAULT TIMESTAMPADD(MINUTE, -5, NOW());
DELETE FROM cache_calc WHERE expires < vCleanTime;
diff --git a/db/routines/cache/procedures/cache_calc_end.sql b/db/routines/cache/procedures/cache_calc_end.sql
index b74a1b7fde..eb4ea3207f 100644
--- a/db/routines/cache/procedures/cache_calc_end.sql
+++ b/db/routines/cache/procedures/cache_calc_end.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`cache_calc_end`(IN `v_calc` INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`cache_calc_end`(IN `v_calc` INT)
BEGIN
DECLARE v_cache_name VARCHAR(255);
DECLARE v_params VARCHAR(255);
diff --git a/db/routines/cache/procedures/cache_calc_start.sql b/db/routines/cache/procedures/cache_calc_start.sql
index 933d926ef7..74526b36b1 100644
--- a/db/routines/cache/procedures/cache_calc_start.sql
+++ b/db/routines/cache/procedures/cache_calc_start.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`cache_calc_start`(OUT `v_calc` INT, INOUT `v_refresh` INT, IN `v_cache_name` VARCHAR(50), IN `v_params` VARCHAR(100))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`cache_calc_start`(OUT `v_calc` INT, INOUT `v_refresh` INT, IN `v_cache_name` VARCHAR(50), IN `v_params` VARCHAR(100))
proc: BEGIN
DECLARE v_valid BOOL;
DECLARE v_lock_id VARCHAR(100);
diff --git a/db/routines/cache/procedures/cache_calc_unlock.sql b/db/routines/cache/procedures/cache_calc_unlock.sql
index 5dc46d9259..35733b7726 100644
--- a/db/routines/cache/procedures/cache_calc_unlock.sql
+++ b/db/routines/cache/procedures/cache_calc_unlock.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`cache_calc_unlock`(IN `v_calc` INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`cache_calc_unlock`(IN `v_calc` INT)
proc: BEGIN
DECLARE v_cache_name VARCHAR(50);
DECLARE v_params VARCHAR(100);
diff --git a/db/routines/cache/procedures/cache_clean.sql b/db/routines/cache/procedures/cache_clean.sql
index 0fca75e630..afeea93701 100644
--- a/db/routines/cache/procedures/cache_clean.sql
+++ b/db/routines/cache/procedures/cache_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`cache_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`cache_clean`()
NO SQL
BEGIN
CALL available_clean;
diff --git a/db/routines/cache/procedures/clean.sql b/db/routines/cache/procedures/clean.sql
index 5e66286896..3aeafe79a7 100644
--- a/db/routines/cache/procedures/clean.sql
+++ b/db/routines/cache/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`clean`()
BEGIN
DELETE FROM cache.departure_limit WHERE Fecha < util.VN_CURDATE() - INTERVAL 1 MONTH;
END$$
diff --git a/db/routines/cache/procedures/departure_timing.sql b/db/routines/cache/procedures/departure_timing.sql
index 778c2cd743..d683a75d9a 100644
--- a/db/routines/cache/procedures/departure_timing.sql
+++ b/db/routines/cache/procedures/departure_timing.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`departure_timing`(vWarehouseId INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`departure_timing`(vWarehouseId INT)
BEGIN
DECLARE done BOOL DEFAULT FALSE;
diff --git a/db/routines/cache/procedures/last_buy_refresh.sql b/db/routines/cache/procedures/last_buy_refresh.sql
index 86a5e8d8cc..0b41915e44 100644
--- a/db/routines/cache/procedures/last_buy_refresh.sql
+++ b/db/routines/cache/procedures/last_buy_refresh.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`last_buy_refresh`(vRefresh BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`last_buy_refresh`(vRefresh BOOL)
proc: BEGIN
/**
* Crea o actualiza la cache con la última compra y fecha de cada
diff --git a/db/routines/cache/procedures/stock_refresh.sql b/db/routines/cache/procedures/stock_refresh.sql
index 5ddc6c20e1..e68688586a 100644
--- a/db/routines/cache/procedures/stock_refresh.sql
+++ b/db/routines/cache/procedures/stock_refresh.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`stock_refresh`(v_refresh BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`stock_refresh`(v_refresh BOOL)
proc: BEGIN
/**
* Crea o actualiza la cache con el disponible hasta el día de
diff --git a/db/routines/cache/procedures/visible_clean.sql b/db/routines/cache/procedures/visible_clean.sql
index b6f03c5635..5bc0c0fc18 100644
--- a/db/routines/cache/procedures/visible_clean.sql
+++ b/db/routines/cache/procedures/visible_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`visible_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`visible_clean`()
BEGIN
DROP TEMPORARY TABLE IF EXISTS tCalc;
CREATE TEMPORARY TABLE tCalc
diff --git a/db/routines/cache/procedures/visible_refresh.sql b/db/routines/cache/procedures/visible_refresh.sql
index a673969d2d..fa88de1e2a 100644
--- a/db/routines/cache/procedures/visible_refresh.sql
+++ b/db/routines/cache/procedures/visible_refresh.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `cache`.`visible_refresh`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `cache`.`visible_refresh`(OUT v_calc INT, v_refresh BOOL, v_warehouse INT)
proc:BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
diff --git a/db/routines/dipole/procedures/clean.sql b/db/routines/dipole/procedures/clean.sql
index a9af64e15e..9054124b39 100644
--- a/db/routines/dipole/procedures/clean.sql
+++ b/db/routines/dipole/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `dipole`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `dipole`.`clean`()
BEGIN
DECLARE vFromDated DATE;
diff --git a/db/routines/dipole/procedures/expedition_add.sql b/db/routines/dipole/procedures/expedition_add.sql
index 70bc7930ef..6d6fb2fd8c 100644
--- a/db/routines/dipole/procedures/expedition_add.sql
+++ b/db/routines/dipole/procedures/expedition_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `dipole`.`expedition_add`(vExpeditionFk INT, vPrinterFk INT, vIsPrinted BOOLEAN)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `dipole`.`expedition_add`(vExpeditionFk INT, vPrinterFk INT, vIsPrinted BOOLEAN)
BEGIN
/** Insert records to print agency stickers and to inform sorter with new box
*
diff --git a/db/routines/dipole/views/expeditionControl.sql b/db/routines/dipole/views/expeditionControl.sql
index e26e83440a..9a2c0a731f 100644
--- a/db/routines/dipole/views/expeditionControl.sql
+++ b/db/routines/dipole/views/expeditionControl.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `dipole`.`expeditionControl`
AS SELECT cast(`epo`.`created` AS date) AS `fecha`,
diff --git a/db/routines/edi/functions/imageName.sql b/db/routines/edi/functions/imageName.sql
index f2e52558f5..a5cf33ff88 100644
--- a/db/routines/edi/functions/imageName.sql
+++ b/db/routines/edi/functions/imageName.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `edi`.`imageName`(vPictureReference VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `edi`.`imageName`(vPictureReference VARCHAR(255))
RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/edi/procedures/clean.sql b/db/routines/edi/procedures/clean.sql
index 71dd576e93..ce35b3e1d8 100644
--- a/db/routines/edi/procedures/clean.sql
+++ b/db/routines/edi/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`clean`()
BEGIN
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
diff --git a/db/routines/edi/procedures/deliveryInformation_Delete.sql b/db/routines/edi/procedures/deliveryInformation_Delete.sql
index b4f51515a6..ac5b67e6f0 100644
--- a/db/routines/edi/procedures/deliveryInformation_Delete.sql
+++ b/db/routines/edi/procedures/deliveryInformation_Delete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`deliveryInformation_Delete`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`deliveryInformation_Delete`()
BEGIN
DECLARE vID INT;
diff --git a/db/routines/edi/procedures/ekt_add.sql b/db/routines/edi/procedures/ekt_add.sql
index 1cc67bb935..377c9b411a 100644
--- a/db/routines/edi/procedures/ekt_add.sql
+++ b/db/routines/edi/procedures/ekt_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_add`(vPutOrderFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`ekt_add`(vPutOrderFk INT)
BEGIN
/**
diff --git a/db/routines/edi/procedures/ekt_load.sql b/db/routines/edi/procedures/ekt_load.sql
index 190b09a864..76f530183a 100644
--- a/db/routines/edi/procedures/ekt_load.sql
+++ b/db/routines/edi/procedures/ekt_load.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_load`(IN `vSelf` INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`ekt_load`(IN `vSelf` INT)
proc:BEGIN
/**
* Carga los datos esenciales para el sistema EKT.
diff --git a/db/routines/edi/procedures/ekt_loadNotBuy.sql b/db/routines/edi/procedures/ekt_loadNotBuy.sql
index 52697adc04..867c99ab76 100644
--- a/db/routines/edi/procedures/ekt_loadNotBuy.sql
+++ b/db/routines/edi/procedures/ekt_loadNotBuy.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_loadNotBuy`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`ekt_loadNotBuy`()
BEGIN
/**
* Ejecuta ekt_load para aquellos ekt de hoy que no tienen vn.buy
diff --git a/db/routines/edi/procedures/ekt_refresh.sql b/db/routines/edi/procedures/ekt_refresh.sql
index 8ba438c0ac..2df736b0e6 100644
--- a/db/routines/edi/procedures/ekt_refresh.sql
+++ b/db/routines/edi/procedures/ekt_refresh.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_refresh`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`ekt_refresh`(
`vSelf` INT, vMailFk INT)
BEGIN
/**
diff --git a/db/routines/edi/procedures/ekt_scan.sql b/db/routines/edi/procedures/ekt_scan.sql
index 0cf8bb4669..c42e57ca4d 100644
--- a/db/routines/edi/procedures/ekt_scan.sql
+++ b/db/routines/edi/procedures/ekt_scan.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`ekt_scan`(vBarcode VARCHAR(512))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`ekt_scan`(vBarcode VARCHAR(512))
BEGIN
/**
* Busca transaciones a partir de un codigo de barras, las marca como escaneadas
diff --git a/db/routines/edi/procedures/item_freeAdd.sql b/db/routines/edi/procedures/item_freeAdd.sql
index cb572e1b10..93842af6e1 100644
--- a/db/routines/edi/procedures/item_freeAdd.sql
+++ b/db/routines/edi/procedures/item_freeAdd.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`item_freeAdd`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`item_freeAdd`()
BEGIN
/**
* Rellena la tabla item_free con los id ausentes en vn.item
diff --git a/db/routines/edi/procedures/item_getNewByEkt.sql b/db/routines/edi/procedures/item_getNewByEkt.sql
index a80d04817b..e169a0f00c 100644
--- a/db/routines/edi/procedures/item_getNewByEkt.sql
+++ b/db/routines/edi/procedures/item_getNewByEkt.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`item_getNewByEkt`(vEktFk INT, OUT vItemFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`item_getNewByEkt`(vEktFk INT, OUT vItemFk INT)
BEGIN
/**
diff --git a/db/routines/edi/procedures/mail_new.sql b/db/routines/edi/procedures/mail_new.sql
index 7bbf3f5cf3..4ed3d0c377 100644
--- a/db/routines/edi/procedures/mail_new.sql
+++ b/db/routines/edi/procedures/mail_new.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `edi`.`mail_new`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `edi`.`mail_new`(
vMessageId VARCHAR(100)
,vSender VARCHAR(150)
,OUT vSelf INT
diff --git a/db/routines/edi/triggers/item_feature_beforeInsert.sql b/db/routines/edi/triggers/item_feature_beforeInsert.sql
index 4e3e9cc0e1..f2aabb91fc 100644
--- a/db/routines/edi/triggers/item_feature_beforeInsert.sql
+++ b/db/routines/edi/triggers/item_feature_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`item_feature_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `edi`.`item_feature_beforeInsert`
BEFORE INSERT ON `item_feature`
FOR EACH ROW
BEGIN
diff --git a/db/routines/edi/triggers/putOrder_afterUpdate.sql b/db/routines/edi/triggers/putOrder_afterUpdate.sql
index eac7d27fec..4bcdbdf554 100644
--- a/db/routines/edi/triggers/putOrder_afterUpdate.sql
+++ b/db/routines/edi/triggers/putOrder_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`putOrder_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `edi`.`putOrder_afterUpdate`
AFTER UPDATE ON `putOrder`
FOR EACH ROW
BEGIN
diff --git a/db/routines/edi/triggers/putOrder_beforeInsert.sql b/db/routines/edi/triggers/putOrder_beforeInsert.sql
index beddd191cf..13274c33ca 100644
--- a/db/routines/edi/triggers/putOrder_beforeInsert.sql
+++ b/db/routines/edi/triggers/putOrder_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`putOrder_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `edi`.`putOrder_beforeInsert`
BEFORE INSERT ON `putOrder`
FOR EACH ROW
BEGIN
diff --git a/db/routines/edi/triggers/putOrder_beforeUpdate.sql b/db/routines/edi/triggers/putOrder_beforeUpdate.sql
index f18b77a0cd..c532f75d14 100644
--- a/db/routines/edi/triggers/putOrder_beforeUpdate.sql
+++ b/db/routines/edi/triggers/putOrder_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`putOrder_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `edi`.`putOrder_beforeUpdate`
BEFORE UPDATE ON `putOrder`
FOR EACH ROW
BEGIN
diff --git a/db/routines/edi/triggers/supplyResponse_afterUpdate.sql b/db/routines/edi/triggers/supplyResponse_afterUpdate.sql
index f3e5aaefdb..721cab8cd3 100644
--- a/db/routines/edi/triggers/supplyResponse_afterUpdate.sql
+++ b/db/routines/edi/triggers/supplyResponse_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `edi`.`supplyResponse_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `edi`.`supplyResponse_afterUpdate`
AFTER UPDATE ON `supplyResponse`
FOR EACH ROW
BEGIN
diff --git a/db/routines/edi/views/ektK2.sql b/db/routines/edi/views/ektK2.sql
index 299d26b015..5c06221b13 100644
--- a/db/routines/edi/views/ektK2.sql
+++ b/db/routines/edi/views/ektK2.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `edi`.`ektK2`
AS SELECT `eek`.`id` AS `id`,
diff --git a/db/routines/edi/views/ektRecent.sql b/db/routines/edi/views/ektRecent.sql
index 66ff7875e5..83f839bd9d 100644
--- a/db/routines/edi/views/ektRecent.sql
+++ b/db/routines/edi/views/ektRecent.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `edi`.`ektRecent`
AS SELECT `e`.`id` AS `id`,
diff --git a/db/routines/edi/views/errorList.sql b/db/routines/edi/views/errorList.sql
index 4e7cbc840e..0273f81105 100644
--- a/db/routines/edi/views/errorList.sql
+++ b/db/routines/edi/views/errorList.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `edi`.`errorList`
AS SELECT `po`.`id` AS `id`,
diff --git a/db/routines/edi/views/supplyOffer.sql b/db/routines/edi/views/supplyOffer.sql
index c4a8582a12..e4e84df744 100644
--- a/db/routines/edi/views/supplyOffer.sql
+++ b/db/routines/edi/views/supplyOffer.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `edi`.`supplyOffer`
AS SELECT `sr`.`vmpID` AS `vmpID`,
diff --git a/db/routines/floranet/procedures/catalogue_findById.sql b/db/routines/floranet/procedures/catalogue_findById.sql
index aca6ca4d61..ab97d1adae 100644
--- a/db/routines/floranet/procedures/catalogue_findById.sql
+++ b/db/routines/floranet/procedures/catalogue_findById.sql
@@ -1,6 +1,6 @@
DELIMITER $$
$$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_findById(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE floranet.catalogue_findById(vSelf INT)
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/floranet/procedures/catalogue_get.sql b/db/routines/floranet/procedures/catalogue_get.sql
index 1e224c8103..d4dd0c69fc 100644
--- a/db/routines/floranet/procedures/catalogue_get.sql
+++ b/db/routines/floranet/procedures/catalogue_get.sql
@@ -1,6 +1,6 @@
DELIMITER $$
$$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE, vPostalCode VARCHAR(15))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE floranet.catalogue_get(vLanded DATE, vPostalCode VARCHAR(15))
READS SQL DATA
proc:BEGIN
/**
diff --git a/db/routines/floranet/procedures/contact_request.sql b/db/routines/floranet/procedures/contact_request.sql
index 2132a86fc0..6d05edaf7a 100644
--- a/db/routines/floranet/procedures/contact_request.sql
+++ b/db/routines/floranet/procedures/contact_request.sql
@@ -2,7 +2,7 @@ DROP PROCEDURE IF EXISTS floranet.contact_request;
DELIMITER $$
$$
-CREATE DEFINER=`root`@`localhost`
+CREATE DEFINER=`vn`@`localhost`
PROCEDURE floranet.contact_request(
vName VARCHAR(100),
vPhone VARCHAR(15),
diff --git a/db/routines/floranet/procedures/deliveryDate_get.sql b/db/routines/floranet/procedures/deliveryDate_get.sql
index 70cb488184..84620dfeda 100644
--- a/db/routines/floranet/procedures/deliveryDate_get.sql
+++ b/db/routines/floranet/procedures/deliveryDate_get.sql
@@ -1,6 +1,6 @@
DELIMITER $$
$$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `floranet`.`deliveryDate_get`(vPostalCode VARCHAR(15))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `floranet`.`deliveryDate_get`(vPostalCode VARCHAR(15))
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/floranet/procedures/order_confirm.sql b/db/routines/floranet/procedures/order_confirm.sql
index 98e15bbab4..2e59ed7377 100644
--- a/db/routines/floranet/procedures/order_confirm.sql
+++ b/db/routines/floranet/procedures/order_confirm.sql
@@ -1,7 +1,7 @@
DELIMITER $$
$$
-CREATE OR REPLACE DEFINER=`root`@`localhost`PROCEDURE floranet.order_confirm(vCatalogueFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost`PROCEDURE floranet.order_confirm(vCatalogueFk INT)
READS SQL DATA
proc:BEGIN
diff --git a/db/routines/floranet/procedures/order_put.sql b/db/routines/floranet/procedures/order_put.sql
index c5eb714728..7ab766a8df 100644
--- a/db/routines/floranet/procedures/order_put.sql
+++ b/db/routines/floranet/procedures/order_put.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE floranet.order_put(vJsonData JSON)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE floranet.order_put(vJsonData JSON)
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/floranet/procedures/sliders_get.sql b/db/routines/floranet/procedures/sliders_get.sql
index bafda47324..096cfbde6a 100644
--- a/db/routines/floranet/procedures/sliders_get.sql
+++ b/db/routines/floranet/procedures/sliders_get.sql
@@ -2,7 +2,7 @@ DROP PROCEDURE IF EXISTS floranet.sliders_get;
DELIMITER $$
$$
-CREATE DEFINER=`root`@`localhost` PROCEDURE floranet.sliders_get()
+CREATE DEFINER=`vn`@`localhost` PROCEDURE floranet.sliders_get()
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/hedera/functions/myClient_getDebt.sql b/db/routines/hedera/functions/myClient_getDebt.sql
index 7f981904e0..7a3678c621 100644
--- a/db/routines/hedera/functions/myClient_getDebt.sql
+++ b/db/routines/hedera/functions/myClient_getDebt.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `hedera`.`myClient_getDebt`(vDate DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `hedera`.`myClient_getDebt`(vDate DATE)
RETURNS decimal(10,2)
DETERMINISTIC
BEGIN
diff --git a/db/routines/hedera/functions/myUser_checkRestPriv.sql b/db/routines/hedera/functions/myUser_checkRestPriv.sql
index 874499ce97..c074a20737 100644
--- a/db/routines/hedera/functions/myUser_checkRestPriv.sql
+++ b/db/routines/hedera/functions/myUser_checkRestPriv.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `hedera`.`myUser_checkRestPriv`(vMethodPath VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `hedera`.`myUser_checkRestPriv`(vMethodPath VARCHAR(255))
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/hedera/functions/order_getTotal.sql b/db/routines/hedera/functions/order_getTotal.sql
index 2edb6340d9..2a6c901828 100644
--- a/db/routines/hedera/functions/order_getTotal.sql
+++ b/db/routines/hedera/functions/order_getTotal.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `hedera`.`order_getTotal`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `hedera`.`order_getTotal`(vSelf INT)
RETURNS decimal(10,2)
DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/hedera/procedures/catalog_calcFromMyAddress.sql b/db/routines/hedera/procedures/catalog_calcFromMyAddress.sql
index c9fa54f36c..d25346f345 100644
--- a/db/routines/hedera/procedures/catalog_calcFromMyAddress.sql
+++ b/db/routines/hedera/procedures/catalog_calcFromMyAddress.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`catalog_calcFromMyAddress`(vDelivery DATE, vAddress INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`catalog_calcFromMyAddress`(vDelivery DATE, vAddress INT)
BEGIN
/**
* Gets the available items list.
diff --git a/db/routines/hedera/procedures/image_ref.sql b/db/routines/hedera/procedures/image_ref.sql
index 4c6e925fe7..8fb344c1cf 100644
--- a/db/routines/hedera/procedures/image_ref.sql
+++ b/db/routines/hedera/procedures/image_ref.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`image_ref`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`image_ref`(
vCollection VARCHAR(255),
vName VARCHAR(255)
)
diff --git a/db/routines/hedera/procedures/image_unref.sql b/db/routines/hedera/procedures/image_unref.sql
index 146fc486b9..95dda10439 100644
--- a/db/routines/hedera/procedures/image_unref.sql
+++ b/db/routines/hedera/procedures/image_unref.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`image_unref`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`image_unref`(
vCollection VARCHAR(255),
vName VARCHAR(255)
)
diff --git a/db/routines/hedera/procedures/item_calcCatalog.sql b/db/routines/hedera/procedures/item_calcCatalog.sql
index fae89bd5cc..0afe79d5a2 100644
--- a/db/routines/hedera/procedures/item_calcCatalog.sql
+++ b/db/routines/hedera/procedures/item_calcCatalog.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`item_calcCatalog`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`item_calcCatalog`(
vSelf INT,
vLanded DATE,
vAddressFk INT,
diff --git a/db/routines/hedera/procedures/item_getVisible.sql b/db/routines/hedera/procedures/item_getVisible.sql
index d5bbe9d76c..ffb04bf689 100644
--- a/db/routines/hedera/procedures/item_getVisible.sql
+++ b/db/routines/hedera/procedures/item_getVisible.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`item_getVisible`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`item_getVisible`(
vWarehouse TINYINT,
vDate DATE,
vType INT,
diff --git a/db/routines/hedera/procedures/item_listAllocation.sql b/db/routines/hedera/procedures/item_listAllocation.sql
index 4a9c723f52..c7fdf6aa7c 100644
--- a/db/routines/hedera/procedures/item_listAllocation.sql
+++ b/db/routines/hedera/procedures/item_listAllocation.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`item_listAllocation`(IN `vWh` TINYINT, IN `vDate` DATE, IN `vType` INT, IN `vPrefix` VARCHAR(255), IN `vUseIds` BOOLEAN)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`item_listAllocation`(IN `vWh` TINYINT, IN `vDate` DATE, IN `vType` INT, IN `vPrefix` VARCHAR(255), IN `vUseIds` BOOLEAN)
BEGIN
/**
* Lists visible items and it's box sizes of the specified
diff --git a/db/routines/hedera/procedures/myOrder_addItem.sql b/db/routines/hedera/procedures/myOrder_addItem.sql
index b5ea34ea23..90804017c7 100644
--- a/db/routines/hedera/procedures/myOrder_addItem.sql
+++ b/db/routines/hedera/procedures/myOrder_addItem.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_addItem`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_addItem`(
vSelf INT,
vWarehouse INT,
vItem INT,
diff --git a/db/routines/hedera/procedures/myOrder_calcCatalogFromItem.sql b/db/routines/hedera/procedures/myOrder_calcCatalogFromItem.sql
index 05c2a41f2e..dd6e1b476c 100644
--- a/db/routines/hedera/procedures/myOrder_calcCatalogFromItem.sql
+++ b/db/routines/hedera/procedures/myOrder_calcCatalogFromItem.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_calcCatalogFromItem`(vSelf INT, vItem INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_calcCatalogFromItem`(vSelf INT, vItem INT)
BEGIN
/**
* Gets the availability and prices for the given item
diff --git a/db/routines/hedera/procedures/myOrder_calcCatalogFull.sql b/db/routines/hedera/procedures/myOrder_calcCatalogFull.sql
index b83286a2ba..b593b64926 100644
--- a/db/routines/hedera/procedures/myOrder_calcCatalogFull.sql
+++ b/db/routines/hedera/procedures/myOrder_calcCatalogFull.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_calcCatalogFull`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_calcCatalogFull`(vSelf INT)
BEGIN
/**
* Gets the availability and prices for the given items
diff --git a/db/routines/hedera/procedures/myOrder_checkConfig.sql b/db/routines/hedera/procedures/myOrder_checkConfig.sql
index ca810805c9..ca33db032d 100644
--- a/db/routines/hedera/procedures/myOrder_checkConfig.sql
+++ b/db/routines/hedera/procedures/myOrder_checkConfig.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_checkConfig`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_checkConfig`(vSelf INT)
proc: BEGIN
/**
* Comprueba que la cesta esta creada y que su configuración es
diff --git a/db/routines/hedera/procedures/myOrder_checkMine.sql b/db/routines/hedera/procedures/myOrder_checkMine.sql
index 7e00b2f7f1..7ac370cb60 100644
--- a/db/routines/hedera/procedures/myOrder_checkMine.sql
+++ b/db/routines/hedera/procedures/myOrder_checkMine.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_checkMine`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_checkMine`(vSelf INT)
proc: BEGIN
/**
* Check that order is owned by current user, otherwise throws an error.
diff --git a/db/routines/hedera/procedures/myOrder_configure.sql b/db/routines/hedera/procedures/myOrder_configure.sql
index 185384fc07..c16406ee7f 100644
--- a/db/routines/hedera/procedures/myOrder_configure.sql
+++ b/db/routines/hedera/procedures/myOrder_configure.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_configure`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_configure`(
vSelf INT,
vDelivery DATE,
vDeliveryMethod VARCHAR(45),
diff --git a/db/routines/hedera/procedures/myOrder_configureForGuest.sql b/db/routines/hedera/procedures/myOrder_configureForGuest.sql
index 9d4ede5e0d..aa4d0fde7c 100644
--- a/db/routines/hedera/procedures/myOrder_configureForGuest.sql
+++ b/db/routines/hedera/procedures/myOrder_configureForGuest.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_configureForGuest`(OUT vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_configureForGuest`(OUT vSelf INT)
BEGIN
DECLARE vMethod VARCHAR(255);
DECLARE vAgency INT;
diff --git a/db/routines/hedera/procedures/myOrder_confirm.sql b/db/routines/hedera/procedures/myOrder_confirm.sql
index 2117ea4489..4966bbf9f9 100644
--- a/db/routines/hedera/procedures/myOrder_confirm.sql
+++ b/db/routines/hedera/procedures/myOrder_confirm.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_confirm`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_confirm`(vSelf INT)
BEGIN
CALL myOrder_checkMine(vSelf);
CALL order_checkConfig(vSelf);
diff --git a/db/routines/hedera/procedures/myOrder_create.sql b/db/routines/hedera/procedures/myOrder_create.sql
index 251948bc64..f945c5af53 100644
--- a/db/routines/hedera/procedures/myOrder_create.sql
+++ b/db/routines/hedera/procedures/myOrder_create.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_create`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_create`(
OUT vSelf INT,
vDelivery DATE,
vDeliveryMethod VARCHAR(45),
diff --git a/db/routines/hedera/procedures/myOrder_getAvailable.sql b/db/routines/hedera/procedures/myOrder_getAvailable.sql
index 00ac605636..c94a339a6c 100644
--- a/db/routines/hedera/procedures/myOrder_getAvailable.sql
+++ b/db/routines/hedera/procedures/myOrder_getAvailable.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_getAvailable`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_getAvailable`(vSelf INT)
BEGIN
/**
* Gets the available items list.
diff --git a/db/routines/hedera/procedures/myOrder_getTax.sql b/db/routines/hedera/procedures/myOrder_getTax.sql
index 826a37efdd..68b2dd4c82 100644
--- a/db/routines/hedera/procedures/myOrder_getTax.sql
+++ b/db/routines/hedera/procedures/myOrder_getTax.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_getTax`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_getTax`(vSelf INT)
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/hedera/procedures/myOrder_newWithAddress.sql b/db/routines/hedera/procedures/myOrder_newWithAddress.sql
index ec3f07d9f4..b4ec4aed46 100644
--- a/db/routines/hedera/procedures/myOrder_newWithAddress.sql
+++ b/db/routines/hedera/procedures/myOrder_newWithAddress.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_newWithAddress`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_newWithAddress`(
OUT vSelf INT,
vLandingDate DATE,
vAddressFk INT)
diff --git a/db/routines/hedera/procedures/myOrder_newWithDate.sql b/db/routines/hedera/procedures/myOrder_newWithDate.sql
index 4d1837e2b7..a9c4c8f7f6 100644
--- a/db/routines/hedera/procedures/myOrder_newWithDate.sql
+++ b/db/routines/hedera/procedures/myOrder_newWithDate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myOrder_newWithDate`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myOrder_newWithDate`(
OUT vSelf INT,
vLandingDate DATE)
BEGIN
diff --git a/db/routines/hedera/procedures/myTicket_get.sql b/db/routines/hedera/procedures/myTicket_get.sql
index 7d203aca64..1c95aea36b 100644
--- a/db/routines/hedera/procedures/myTicket_get.sql
+++ b/db/routines/hedera/procedures/myTicket_get.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTicket_get`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTicket_get`(vSelf INT)
BEGIN
/**
* Returns a current user ticket header.
diff --git a/db/routines/hedera/procedures/myTicket_getPackages.sql b/db/routines/hedera/procedures/myTicket_getPackages.sql
index 8ed486dffc..8a03a6e354 100644
--- a/db/routines/hedera/procedures/myTicket_getPackages.sql
+++ b/db/routines/hedera/procedures/myTicket_getPackages.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTicket_getPackages`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTicket_getPackages`(vSelf INT)
BEGIN
/**
* Returns a current user ticket packages.
diff --git a/db/routines/hedera/procedures/myTicket_getRows.sql b/db/routines/hedera/procedures/myTicket_getRows.sql
index 0a99ce892e..53547f2b21 100644
--- a/db/routines/hedera/procedures/myTicket_getRows.sql
+++ b/db/routines/hedera/procedures/myTicket_getRows.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTicket_getRows`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTicket_getRows`(vSelf INT)
BEGIN
SELECT r.itemFk, r.quantity, r.concept, r.price, r.discount,
i.category, i.size, i.stems, i.inkFk,
diff --git a/db/routines/hedera/procedures/myTicket_getServices.sql b/db/routines/hedera/procedures/myTicket_getServices.sql
index 56ca52c19c..3d982d25af 100644
--- a/db/routines/hedera/procedures/myTicket_getServices.sql
+++ b/db/routines/hedera/procedures/myTicket_getServices.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTicket_getServices`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTicket_getServices`(vSelf INT)
BEGIN
/**
* Returns a current user ticket services.
diff --git a/db/routines/hedera/procedures/myTicket_list.sql b/db/routines/hedera/procedures/myTicket_list.sql
index b063ce25cd..cfbc064e31 100644
--- a/db/routines/hedera/procedures/myTicket_list.sql
+++ b/db/routines/hedera/procedures/myTicket_list.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTicket_list`(vFrom DATE, vTo DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTicket_list`(vFrom DATE, vTo DATE)
BEGIN
/**
* Returns the current user list of tickets between two dates reange.
diff --git a/db/routines/hedera/procedures/myTicket_logAccess.sql b/db/routines/hedera/procedures/myTicket_logAccess.sql
index 1dcee8dd68..aa0a1d380e 100644
--- a/db/routines/hedera/procedures/myTicket_logAccess.sql
+++ b/db/routines/hedera/procedures/myTicket_logAccess.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTicket_logAccess`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTicket_logAccess`(vSelf INT)
BEGIN
/**
* Logs an access to a ticket.
diff --git a/db/routines/hedera/procedures/myTpvTransaction_end.sql b/db/routines/hedera/procedures/myTpvTransaction_end.sql
index 3884f0e374..1972078337 100644
--- a/db/routines/hedera/procedures/myTpvTransaction_end.sql
+++ b/db/routines/hedera/procedures/myTpvTransaction_end.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTpvTransaction_end`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTpvTransaction_end`(
vSelf INT,
vStatus VARCHAR(12))
BEGIN
diff --git a/db/routines/hedera/procedures/myTpvTransaction_start.sql b/db/routines/hedera/procedures/myTpvTransaction_start.sql
index 71bae97fa6..e3d5023b8f 100644
--- a/db/routines/hedera/procedures/myTpvTransaction_start.sql
+++ b/db/routines/hedera/procedures/myTpvTransaction_start.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`myTpvTransaction_start`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`myTpvTransaction_start`(
vAmount INT,
vCompany INT)
BEGIN
diff --git a/db/routines/hedera/procedures/order_addItem.sql b/db/routines/hedera/procedures/order_addItem.sql
index 1470ddf356..d448f1a0df 100644
--- a/db/routines/hedera/procedures/order_addItem.sql
+++ b/db/routines/hedera/procedures/order_addItem.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_addItem`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_addItem`(
vSelf INT,
vWarehouse INT,
vItem INT,
diff --git a/db/routines/hedera/procedures/order_calcCatalog.sql b/db/routines/hedera/procedures/order_calcCatalog.sql
index 239e017886..efdb9d190d 100644
--- a/db/routines/hedera/procedures/order_calcCatalog.sql
+++ b/db/routines/hedera/procedures/order_calcCatalog.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_calcCatalog`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_calcCatalog`(vSelf INT)
BEGIN
/**
* Gets the availability and prices for order items.
diff --git a/db/routines/hedera/procedures/order_calcCatalogFromItem.sql b/db/routines/hedera/procedures/order_calcCatalogFromItem.sql
index 517e9dab91..ae57ad5ba9 100644
--- a/db/routines/hedera/procedures/order_calcCatalogFromItem.sql
+++ b/db/routines/hedera/procedures/order_calcCatalogFromItem.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_calcCatalogFromItem`(vSelf INT, vItem INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_calcCatalogFromItem`(vSelf INT, vItem INT)
BEGIN
/**
* Gets the availability and prices for the given item
diff --git a/db/routines/hedera/procedures/order_calcCatalogFull.sql b/db/routines/hedera/procedures/order_calcCatalogFull.sql
index 41408c5e80..fedb739031 100644
--- a/db/routines/hedera/procedures/order_calcCatalogFull.sql
+++ b/db/routines/hedera/procedures/order_calcCatalogFull.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_calcCatalogFull`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_calcCatalogFull`(vSelf INT)
BEGIN
/**
* Gets the availability and prices for the given items
diff --git a/db/routines/hedera/procedures/order_checkConfig.sql b/db/routines/hedera/procedures/order_checkConfig.sql
index 9dbea1a76a..88799b2deb 100644
--- a/db/routines/hedera/procedures/order_checkConfig.sql
+++ b/db/routines/hedera/procedures/order_checkConfig.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_checkConfig`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_checkConfig`(vSelf INT)
BEGIN
/**
* Comprueba que la configuración del pedido es correcta.
diff --git a/db/routines/hedera/procedures/order_checkEditable.sql b/db/routines/hedera/procedures/order_checkEditable.sql
index 512e6e6f10..8ff7e59962 100644
--- a/db/routines/hedera/procedures/order_checkEditable.sql
+++ b/db/routines/hedera/procedures/order_checkEditable.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_checkEditable`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_checkEditable`(vSelf INT)
BEGIN
/**
* Cheks if order is editable.
diff --git a/db/routines/hedera/procedures/order_configure.sql b/db/routines/hedera/procedures/order_configure.sql
index b03acec086..42b4034443 100644
--- a/db/routines/hedera/procedures/order_configure.sql
+++ b/db/routines/hedera/procedures/order_configure.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_configure`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_configure`(
vSelf INT,
vDelivery DATE,
vDeliveryMethod VARCHAR(45),
diff --git a/db/routines/hedera/procedures/order_confirm.sql b/db/routines/hedera/procedures/order_confirm.sql
index 6fd53b4ea8..bf70b4645a 100644
--- a/db/routines/hedera/procedures/order_confirm.sql
+++ b/db/routines/hedera/procedures/order_confirm.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_confirm`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_confirm`(vSelf INT)
BEGIN
/**
* Confirms an order, creating each of its tickets on
diff --git a/db/routines/hedera/procedures/order_confirmWithUser.sql b/db/routines/hedera/procedures/order_confirmWithUser.sql
index db83cba5c3..dee927e254 100644
--- a/db/routines/hedera/procedures/order_confirmWithUser.sql
+++ b/db/routines/hedera/procedures/order_confirmWithUser.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_confirmWithUser`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_confirmWithUser`(
vSelf INT,
vUserFk INT
)
diff --git a/db/routines/hedera/procedures/order_getAvailable.sql b/db/routines/hedera/procedures/order_getAvailable.sql
index 2b7d60e331..12a5297d63 100644
--- a/db/routines/hedera/procedures/order_getAvailable.sql
+++ b/db/routines/hedera/procedures/order_getAvailable.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_getAvailable`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_getAvailable`(vSelf INT)
BEGIN
/**
* Gets the available items list.
diff --git a/db/routines/hedera/procedures/order_getTax.sql b/db/routines/hedera/procedures/order_getTax.sql
index 371416c297..59674564f3 100644
--- a/db/routines/hedera/procedures/order_getTax.sql
+++ b/db/routines/hedera/procedures/order_getTax.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_getTax`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_getTax`()
READS SQL DATA
BEGIN
/**
diff --git a/db/routines/hedera/procedures/order_getTotal.sql b/db/routines/hedera/procedures/order_getTotal.sql
index c0b8d40ae7..a8c872aece 100644
--- a/db/routines/hedera/procedures/order_getTotal.sql
+++ b/db/routines/hedera/procedures/order_getTotal.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_getTotal`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_getTotal`()
BEGIN
/**
* Calcula el total con IVA para un conjunto de orders.
diff --git a/db/routines/hedera/procedures/order_recalc.sql b/db/routines/hedera/procedures/order_recalc.sql
index 1398b49f65..a76c34f2c1 100644
--- a/db/routines/hedera/procedures/order_recalc.sql
+++ b/db/routines/hedera/procedures/order_recalc.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_recalc`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_recalc`(vSelf INT)
BEGIN
/**
* Recalculates the order total.
diff --git a/db/routines/hedera/procedures/order_update.sql b/db/routines/hedera/procedures/order_update.sql
index 207cad09f8..0a7981072a 100644
--- a/db/routines/hedera/procedures/order_update.sql
+++ b/db/routines/hedera/procedures/order_update.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`order_update`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`order_update`(vSelf INT)
proc: BEGIN
/**
* Actualiza las líneas de un pedido.
diff --git a/db/routines/hedera/procedures/survey_vote.sql b/db/routines/hedera/procedures/survey_vote.sql
index 46c31393a3..b54ce2736c 100644
--- a/db/routines/hedera/procedures/survey_vote.sql
+++ b/db/routines/hedera/procedures/survey_vote.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`survey_vote`(vAnswer INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`survey_vote`(vAnswer INT)
BEGIN
DECLARE vSurvey INT;
DECLARE vCount TINYINT;
diff --git a/db/routines/hedera/procedures/tpvTransaction_confirm.sql b/db/routines/hedera/procedures/tpvTransaction_confirm.sql
index 60a6d8452a..e14340b6bb 100644
--- a/db/routines/hedera/procedures/tpvTransaction_confirm.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_confirm.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirm`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirm`(
vAmount INT
,vOrder INT
,vMerchant INT
diff --git a/db/routines/hedera/procedures/tpvTransaction_confirmAll.sql b/db/routines/hedera/procedures/tpvTransaction_confirmAll.sql
index b6a71af016..d6cfafd6c7 100644
--- a/db/routines/hedera/procedures/tpvTransaction_confirmAll.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_confirmAll.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirmAll`(vDate DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirmAll`(vDate DATE)
BEGIN
/**
* Confirma todas las transacciones confirmadas por el cliente pero no
diff --git a/db/routines/hedera/procedures/tpvTransaction_confirmById.sql b/db/routines/hedera/procedures/tpvTransaction_confirmById.sql
index 7cbdb65c66..a6a476e5bc 100644
--- a/db/routines/hedera/procedures/tpvTransaction_confirmById.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_confirmById.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirmById`(vOrder INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirmById`(vOrder INT)
BEGIN
/**
* Confirma manualmente una transacción espedificando su identificador.
diff --git a/db/routines/hedera/procedures/tpvTransaction_confirmFromExport.sql b/db/routines/hedera/procedures/tpvTransaction_confirmFromExport.sql
index 7ca0e44e2e..8082f9abca 100644
--- a/db/routines/hedera/procedures/tpvTransaction_confirmFromExport.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_confirmFromExport.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirmFromExport`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_confirmFromExport`()
BEGIN
/**
* Confirms multiple transactions comming from Redsys "canales" exported CSV.
diff --git a/db/routines/hedera/procedures/tpvTransaction_end.sql b/db/routines/hedera/procedures/tpvTransaction_end.sql
index ec0a0224d5..1c03ffe744 100644
--- a/db/routines/hedera/procedures/tpvTransaction_end.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_end.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_end`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_end`(
vSelf INT,
vStatus VARCHAR(12))
BEGIN
diff --git a/db/routines/hedera/procedures/tpvTransaction_start.sql b/db/routines/hedera/procedures/tpvTransaction_start.sql
index 55fd922daf..7ed63c1245 100644
--- a/db/routines/hedera/procedures/tpvTransaction_start.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_start.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_start`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_start`(
vAmount INT,
vCompany INT,
vUser INT)
diff --git a/db/routines/hedera/procedures/tpvTransaction_undo.sql b/db/routines/hedera/procedures/tpvTransaction_undo.sql
index f31ba6a80a..8eabba3c16 100644
--- a/db/routines/hedera/procedures/tpvTransaction_undo.sql
+++ b/db/routines/hedera/procedures/tpvTransaction_undo.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`tpvTransaction_undo`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`tpvTransaction_undo`(vSelf INT)
p: BEGIN
DECLARE vCustomer INT;
DECLARE vAmount DOUBLE;
diff --git a/db/routines/hedera/procedures/visitUser_new.sql b/db/routines/hedera/procedures/visitUser_new.sql
index 3c299f209e..1a4e3a08c2 100644
--- a/db/routines/hedera/procedures/visitUser_new.sql
+++ b/db/routines/hedera/procedures/visitUser_new.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`visitUser_new`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`visitUser_new`(
vAccess INT
,vSsid VARCHAR(64)
)
diff --git a/db/routines/hedera/procedures/visit_listByBrowser.sql b/db/routines/hedera/procedures/visit_listByBrowser.sql
index 2fa45b8f21..dcf3fdad94 100644
--- a/db/routines/hedera/procedures/visit_listByBrowser.sql
+++ b/db/routines/hedera/procedures/visit_listByBrowser.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`visit_listByBrowser`(vFrom DATE, vTo DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`visit_listByBrowser`(vFrom DATE, vTo DATE)
BEGIN
/**
* Lists visits grouped by browser.
diff --git a/db/routines/hedera/procedures/visit_register.sql b/db/routines/hedera/procedures/visit_register.sql
index 80b6f16a9d..345527b257 100644
--- a/db/routines/hedera/procedures/visit_register.sql
+++ b/db/routines/hedera/procedures/visit_register.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `hedera`.`visit_register`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `hedera`.`visit_register`(
vVisit INT
,vPlatform VARCHAR(30)
,vBrowser VARCHAR(30)
diff --git a/db/routines/hedera/triggers/link_afterDelete.sql b/db/routines/hedera/triggers/link_afterDelete.sql
index 571540cbac..e9efa7f91f 100644
--- a/db/routines/hedera/triggers/link_afterDelete.sql
+++ b/db/routines/hedera/triggers/link_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`link_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`link_afterDelete`
AFTER DELETE ON `link`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/link_afterInsert.sql b/db/routines/hedera/triggers/link_afterInsert.sql
index e3f163a9e2..af6989e444 100644
--- a/db/routines/hedera/triggers/link_afterInsert.sql
+++ b/db/routines/hedera/triggers/link_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`link_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`link_afterInsert`
AFTER INSERT ON `link`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/link_afterUpdate.sql b/db/routines/hedera/triggers/link_afterUpdate.sql
index 7ffe2a3353..c10f20b252 100644
--- a/db/routines/hedera/triggers/link_afterUpdate.sql
+++ b/db/routines/hedera/triggers/link_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`link_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`link_afterUpdate`
AFTER UPDATE ON `link`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/news_afterDelete.sql b/db/routines/hedera/triggers/news_afterDelete.sql
index 07a0403e07..73a85ba7b7 100644
--- a/db/routines/hedera/triggers/news_afterDelete.sql
+++ b/db/routines/hedera/triggers/news_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`news_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`news_afterDelete`
AFTER DELETE ON `news`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/news_afterInsert.sql b/db/routines/hedera/triggers/news_afterInsert.sql
index 61e6078ef6..7d5c4ded71 100644
--- a/db/routines/hedera/triggers/news_afterInsert.sql
+++ b/db/routines/hedera/triggers/news_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`news_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`news_afterInsert`
AFTER INSERT ON `news`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/news_afterUpdate.sql b/db/routines/hedera/triggers/news_afterUpdate.sql
index 15ea32f1d9..e0a74f1caa 100644
--- a/db/routines/hedera/triggers/news_afterUpdate.sql
+++ b/db/routines/hedera/triggers/news_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`news_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`news_afterUpdate`
AFTER UPDATE ON `news`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/orderRow_afterInsert.sql b/db/routines/hedera/triggers/orderRow_afterInsert.sql
index 7196dce10f..11809e3c5c 100644
--- a/db/routines/hedera/triggers/orderRow_afterInsert.sql
+++ b/db/routines/hedera/triggers/orderRow_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`orderRow_afterInsert`
AFTER INSERT ON `orderRow`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/orderRow_beforeInsert.sql b/db/routines/hedera/triggers/orderRow_beforeInsert.sql
index 0c9f31bab7..b35123f4a9 100644
--- a/db/routines/hedera/triggers/orderRow_beforeInsert.sql
+++ b/db/routines/hedera/triggers/orderRow_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`orderRow_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`orderRow_beforeInsert`
BEFORE INSERT ON `orderRow`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/order_afterInsert.sql b/db/routines/hedera/triggers/order_afterInsert.sql
index 2fe83ee8f6..7070ede026 100644
--- a/db/routines/hedera/triggers/order_afterInsert.sql
+++ b/db/routines/hedera/triggers/order_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`order_afterInsert`
AFTER INSERT ON `order`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/order_afterUpdate.sql b/db/routines/hedera/triggers/order_afterUpdate.sql
index 25f51b3f03..3b1cd9df1d 100644
--- a/db/routines/hedera/triggers/order_afterUpdate.sql
+++ b/db/routines/hedera/triggers/order_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`order_afterUpdate`
AFTER UPDATE ON `order`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/triggers/order_beforeDelete.sql b/db/routines/hedera/triggers/order_beforeDelete.sql
index eb602be897..da6259248a 100644
--- a/db/routines/hedera/triggers/order_beforeDelete.sql
+++ b/db/routines/hedera/triggers/order_beforeDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `hedera`.`order_beforeDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `hedera`.`order_beforeDelete`
BEFORE DELETE ON `order`
FOR EACH ROW
BEGIN
diff --git a/db/routines/hedera/views/mainAccountBank.sql b/db/routines/hedera/views/mainAccountBank.sql
index 3130a1614a..9fc3b3c3a1 100644
--- a/db/routines/hedera/views/mainAccountBank.sql
+++ b/db/routines/hedera/views/mainAccountBank.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`mainAccountBank`
AS SELECT `e`.`name` AS `name`,
diff --git a/db/routines/hedera/views/messageL10n.sql b/db/routines/hedera/views/messageL10n.sql
index 6488de6a91..80f6638ada 100644
--- a/db/routines/hedera/views/messageL10n.sql
+++ b/db/routines/hedera/views/messageL10n.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`messageL10n`
AS SELECT `m`.`code` AS `code`,
diff --git a/db/routines/hedera/views/myAddress.sql b/db/routines/hedera/views/myAddress.sql
index ee8d87759e..80809c5ea1 100644
--- a/db/routines/hedera/views/myAddress.sql
+++ b/db/routines/hedera/views/myAddress.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myAddress`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myBasketDefaults.sql b/db/routines/hedera/views/myBasketDefaults.sql
index 475212da10..43df186871 100644
--- a/db/routines/hedera/views/myBasketDefaults.sql
+++ b/db/routines/hedera/views/myBasketDefaults.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myBasketDefaults`
AS SELECT coalesce(`dm`.`code`, `cm`.`code`) AS `deliveryMethod`,
diff --git a/db/routines/hedera/views/myClient.sql b/db/routines/hedera/views/myClient.sql
index ef7159549c..032cc5f5ff 100644
--- a/db/routines/hedera/views/myClient.sql
+++ b/db/routines/hedera/views/myClient.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myClient`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myInvoice.sql b/db/routines/hedera/views/myInvoice.sql
index dd1a917ada..40527ac0ce 100644
--- a/db/routines/hedera/views/myInvoice.sql
+++ b/db/routines/hedera/views/myInvoice.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myInvoice`
AS SELECT `i`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myMenu.sql b/db/routines/hedera/views/myMenu.sql
index 94e58835d1..60f464e7ac 100644
--- a/db/routines/hedera/views/myMenu.sql
+++ b/db/routines/hedera/views/myMenu.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myMenu`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myOrder.sql b/db/routines/hedera/views/myOrder.sql
index 78becd8840..ca92832985 100644
--- a/db/routines/hedera/views/myOrder.sql
+++ b/db/routines/hedera/views/myOrder.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myOrder`
AS SELECT `o`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myOrderRow.sql b/db/routines/hedera/views/myOrderRow.sql
index af42b07455..ddf91a24fc 100644
--- a/db/routines/hedera/views/myOrderRow.sql
+++ b/db/routines/hedera/views/myOrderRow.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myOrderRow`
AS SELECT `orw`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myOrderTicket.sql b/db/routines/hedera/views/myOrderTicket.sql
index fa8220b554..5fa5418559 100644
--- a/db/routines/hedera/views/myOrderTicket.sql
+++ b/db/routines/hedera/views/myOrderTicket.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myOrderTicket`
AS SELECT `o`.`id` AS `orderFk`,
diff --git a/db/routines/hedera/views/myTicket.sql b/db/routines/hedera/views/myTicket.sql
index f17cda9a46..4edb742c85 100644
--- a/db/routines/hedera/views/myTicket.sql
+++ b/db/routines/hedera/views/myTicket.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myTicket`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myTicketRow.sql b/db/routines/hedera/views/myTicketRow.sql
index 5afff812b2..69b11625f7 100644
--- a/db/routines/hedera/views/myTicketRow.sql
+++ b/db/routines/hedera/views/myTicketRow.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myTicketRow`
AS SELECT `s`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myTicketService.sql b/db/routines/hedera/views/myTicketService.sql
index feb839873b..7cb23a862e 100644
--- a/db/routines/hedera/views/myTicketService.sql
+++ b/db/routines/hedera/views/myTicketService.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myTicketService`
AS SELECT `s`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myTicketState.sql b/db/routines/hedera/views/myTicketState.sql
index 530441e3b2..8d3d276b81 100644
--- a/db/routines/hedera/views/myTicketState.sql
+++ b/db/routines/hedera/views/myTicketState.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myTicketState`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/hedera/views/myTpvTransaction.sql b/db/routines/hedera/views/myTpvTransaction.sql
index 98694065fa..a860ed29d7 100644
--- a/db/routines/hedera/views/myTpvTransaction.sql
+++ b/db/routines/hedera/views/myTpvTransaction.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`myTpvTransaction`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/hedera/views/orderTicket.sql b/db/routines/hedera/views/orderTicket.sql
index c350779357..b0c55bc7de 100644
--- a/db/routines/hedera/views/orderTicket.sql
+++ b/db/routines/hedera/views/orderTicket.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`orderTicket`
AS SELECT `b`.`orderFk` AS `orderFk`,
diff --git a/db/routines/hedera/views/order_component.sql b/db/routines/hedera/views/order_component.sql
index b3eb7522b7..e83114724c 100644
--- a/db/routines/hedera/views/order_component.sql
+++ b/db/routines/hedera/views/order_component.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`order_component`
AS SELECT `t`.`rowFk` AS `order_row_id`,
diff --git a/db/routines/hedera/views/order_row.sql b/db/routines/hedera/views/order_row.sql
index f69fd98a36..ab25774f6b 100644
--- a/db/routines/hedera/views/order_row.sql
+++ b/db/routines/hedera/views/order_row.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `hedera`.`order_row`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/pbx/functions/clientFromPhone.sql b/db/routines/pbx/functions/clientFromPhone.sql
index dc18810aaa..b8186e0e02 100644
--- a/db/routines/pbx/functions/clientFromPhone.sql
+++ b/db/routines/pbx/functions/clientFromPhone.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `pbx`.`clientFromPhone`(vPhone VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `pbx`.`clientFromPhone`(vPhone VARCHAR(255))
RETURNS int(11)
DETERMINISTIC
BEGIN
diff --git a/db/routines/pbx/functions/phone_format.sql b/db/routines/pbx/functions/phone_format.sql
index dc697386af..b42dfe96b1 100644
--- a/db/routines/pbx/functions/phone_format.sql
+++ b/db/routines/pbx/functions/phone_format.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `pbx`.`phone_format`(vPhone VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `pbx`.`phone_format`(vPhone VARCHAR(255))
RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/pbx/procedures/phone_isValid.sql b/db/routines/pbx/procedures/phone_isValid.sql
index 083a3e54b6..be3d2968a7 100644
--- a/db/routines/pbx/procedures/phone_isValid.sql
+++ b/db/routines/pbx/procedures/phone_isValid.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`phone_isValid`(vPhone VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `pbx`.`phone_isValid`(vPhone VARCHAR(255))
BEGIN
/**
* Check if an phone has the correct format and
diff --git a/db/routines/pbx/procedures/queue_isValid.sql b/db/routines/pbx/procedures/queue_isValid.sql
index 52c752e092..a07bc342b4 100644
--- a/db/routines/pbx/procedures/queue_isValid.sql
+++ b/db/routines/pbx/procedures/queue_isValid.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`queue_isValid`(vQueue VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `pbx`.`queue_isValid`(vQueue VARCHAR(255))
BEGIN
/**
* Check if an queue has the correct format and
diff --git a/db/routines/pbx/procedures/sip_getExtension.sql b/db/routines/pbx/procedures/sip_getExtension.sql
index 25047fa1f5..640da5a3e0 100644
--- a/db/routines/pbx/procedures/sip_getExtension.sql
+++ b/db/routines/pbx/procedures/sip_getExtension.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`sip_getExtension`(vUserId INT(10))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `pbx`.`sip_getExtension`(vUserId INT(10))
BEGIN
/*
diff --git a/db/routines/pbx/procedures/sip_isValid.sql b/db/routines/pbx/procedures/sip_isValid.sql
index 4a0182bcce..d9c45831de 100644
--- a/db/routines/pbx/procedures/sip_isValid.sql
+++ b/db/routines/pbx/procedures/sip_isValid.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`sip_isValid`(vExtension VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `pbx`.`sip_isValid`(vExtension VARCHAR(255))
BEGIN
/**
* Check if an extension has the correct format and
diff --git a/db/routines/pbx/procedures/sip_setPassword.sql b/db/routines/pbx/procedures/sip_setPassword.sql
index 14e0b05c55..146e7a5022 100644
--- a/db/routines/pbx/procedures/sip_setPassword.sql
+++ b/db/routines/pbx/procedures/sip_setPassword.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `pbx`.`sip_setPassword`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `pbx`.`sip_setPassword`(
vUser VARCHAR(255),
vPassword VARCHAR(255)
)
diff --git a/db/routines/pbx/triggers/blacklist_beforeInsert.sql b/db/routines/pbx/triggers/blacklist_beforeInsert.sql
index ff55c2647e..6bc7909d82 100644
--- a/db/routines/pbx/triggers/blacklist_beforeInsert.sql
+++ b/db/routines/pbx/triggers/blacklist_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`blacklist_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`blacklist_beforeInsert`
BEFORE INSERT ON `blacklist`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/blacklist_berforeUpdate.sql b/db/routines/pbx/triggers/blacklist_berforeUpdate.sql
index 84f2c4bbb0..741b34c0ae 100644
--- a/db/routines/pbx/triggers/blacklist_berforeUpdate.sql
+++ b/db/routines/pbx/triggers/blacklist_berforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`blacklist_berforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`blacklist_berforeUpdate`
BEFORE UPDATE ON `blacklist`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/followme_beforeInsert.sql b/db/routines/pbx/triggers/followme_beforeInsert.sql
index 69f11c5e64..38413f53a4 100644
--- a/db/routines/pbx/triggers/followme_beforeInsert.sql
+++ b/db/routines/pbx/triggers/followme_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`followme_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`followme_beforeInsert`
BEFORE INSERT ON `followme`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/followme_beforeUpdate.sql b/db/routines/pbx/triggers/followme_beforeUpdate.sql
index 697c18974b..67c243c7fd 100644
--- a/db/routines/pbx/triggers/followme_beforeUpdate.sql
+++ b/db/routines/pbx/triggers/followme_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`followme_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`followme_beforeUpdate`
BEFORE UPDATE ON `followme`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/queuePhone_beforeInsert.sql b/db/routines/pbx/triggers/queuePhone_beforeInsert.sql
index debe9c2019..015a227ae7 100644
--- a/db/routines/pbx/triggers/queuePhone_beforeInsert.sql
+++ b/db/routines/pbx/triggers/queuePhone_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`queuePhone_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`queuePhone_beforeInsert`
BEFORE INSERT ON `queuePhone`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/queuePhone_beforeUpdate.sql b/db/routines/pbx/triggers/queuePhone_beforeUpdate.sql
index 9734cc2779..892a10acdb 100644
--- a/db/routines/pbx/triggers/queuePhone_beforeUpdate.sql
+++ b/db/routines/pbx/triggers/queuePhone_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`queuePhone_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`queuePhone_beforeUpdate`
BEFORE UPDATE ON `queuePhone`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/queue_beforeInsert.sql b/db/routines/pbx/triggers/queue_beforeInsert.sql
index 4644dea892..f601d8688a 100644
--- a/db/routines/pbx/triggers/queue_beforeInsert.sql
+++ b/db/routines/pbx/triggers/queue_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`queue_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`queue_beforeInsert`
BEFORE INSERT ON `queue`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/queue_beforeUpdate.sql b/db/routines/pbx/triggers/queue_beforeUpdate.sql
index a2923045ea..22e0afc672 100644
--- a/db/routines/pbx/triggers/queue_beforeUpdate.sql
+++ b/db/routines/pbx/triggers/queue_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`queue_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`queue_beforeUpdate`
BEFORE UPDATE ON `queue`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/sip_afterInsert.sql b/db/routines/pbx/triggers/sip_afterInsert.sql
index 7f0643a986..ab1123106e 100644
--- a/db/routines/pbx/triggers/sip_afterInsert.sql
+++ b/db/routines/pbx/triggers/sip_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`sip_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`sip_afterInsert`
AFTER INSERT ON `sip`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/sip_afterUpdate.sql b/db/routines/pbx/triggers/sip_afterUpdate.sql
index d14df040cc..2556d574c1 100644
--- a/db/routines/pbx/triggers/sip_afterUpdate.sql
+++ b/db/routines/pbx/triggers/sip_afterUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`sip_afterUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`sip_afterUpdate`
AFTER UPDATE ON `sip`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/sip_beforeInsert.sql b/db/routines/pbx/triggers/sip_beforeInsert.sql
index 8322321196..500f300775 100644
--- a/db/routines/pbx/triggers/sip_beforeInsert.sql
+++ b/db/routines/pbx/triggers/sip_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`sip_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`sip_beforeInsert`
BEFORE INSERT ON `sip`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/triggers/sip_beforeUpdate.sql b/db/routines/pbx/triggers/sip_beforeUpdate.sql
index e23b8e22e0..95c943100d 100644
--- a/db/routines/pbx/triggers/sip_beforeUpdate.sql
+++ b/db/routines/pbx/triggers/sip_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `pbx`.`sip_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `pbx`.`sip_beforeUpdate`
BEFORE UPDATE ON `sip`
FOR EACH ROW
BEGIN
diff --git a/db/routines/pbx/views/cdrConf.sql b/db/routines/pbx/views/cdrConf.sql
index adf24c87d6..e4b8ad60a4 100644
--- a/db/routines/pbx/views/cdrConf.sql
+++ b/db/routines/pbx/views/cdrConf.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `pbx`.`cdrConf`
AS SELECT `c`.`call_date` AS `calldate`,
diff --git a/db/routines/pbx/views/followmeConf.sql b/db/routines/pbx/views/followmeConf.sql
index 75eb25ff2b..7c92301d1c 100644
--- a/db/routines/pbx/views/followmeConf.sql
+++ b/db/routines/pbx/views/followmeConf.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `pbx`.`followmeConf`
AS SELECT `f`.`extension` AS `name`,
diff --git a/db/routines/pbx/views/followmeNumberConf.sql b/db/routines/pbx/views/followmeNumberConf.sql
index c83b639a8a..f80dd5a9de 100644
--- a/db/routines/pbx/views/followmeNumberConf.sql
+++ b/db/routines/pbx/views/followmeNumberConf.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `pbx`.`followmeNumberConf`
AS SELECT `f`.`extension` AS `name`,
diff --git a/db/routines/pbx/views/queueConf.sql b/db/routines/pbx/views/queueConf.sql
index 107989801f..8416bdb52e 100644
--- a/db/routines/pbx/views/queueConf.sql
+++ b/db/routines/pbx/views/queueConf.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `pbx`.`queueConf`
AS SELECT `q`.`name` AS `name`,
diff --git a/db/routines/pbx/views/queueMemberConf.sql b/db/routines/pbx/views/queueMemberConf.sql
index 7007daa1ee..734313c7bb 100644
--- a/db/routines/pbx/views/queueMemberConf.sql
+++ b/db/routines/pbx/views/queueMemberConf.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `pbx`.`queueMemberConf`
AS SELECT `m`.`id` AS `uniqueid`,
diff --git a/db/routines/pbx/views/sipConf.sql b/db/routines/pbx/views/sipConf.sql
index 0765264bcd..302f967ec1 100644
--- a/db/routines/pbx/views/sipConf.sql
+++ b/db/routines/pbx/views/sipConf.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `pbx`.`sipConf`
AS SELECT `s`.`user_id` AS `id`,
diff --git a/db/routines/psico/procedures/answerSort.sql b/db/routines/psico/procedures/answerSort.sql
index 75a317b370..c7fd7e48db 100644
--- a/db/routines/psico/procedures/answerSort.sql
+++ b/db/routines/psico/procedures/answerSort.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `psico`.`answerSort`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `psico`.`answerSort`()
BEGIN
UPDATE answer
diff --git a/db/routines/psico/procedures/examNew.sql b/db/routines/psico/procedures/examNew.sql
index 4f27212f6f..5b8eada3ac 100644
--- a/db/routines/psico/procedures/examNew.sql
+++ b/db/routines/psico/procedures/examNew.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `psico`.`examNew`(vFellow VARCHAR(50), vType INT, vQuestionsNumber INT, OUT vExamFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `psico`.`examNew`(vFellow VARCHAR(50), vType INT, vQuestionsNumber INT, OUT vExamFk INT)
BEGIN
DECLARE done BOOL DEFAULT FALSE;
diff --git a/db/routines/psico/procedures/getExamQuestions.sql b/db/routines/psico/procedures/getExamQuestions.sql
index 9ab1eb6d0e..7545a3e792 100644
--- a/db/routines/psico/procedures/getExamQuestions.sql
+++ b/db/routines/psico/procedures/getExamQuestions.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `psico`.`getExamQuestions`(vExamFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `psico`.`getExamQuestions`(vExamFk INT)
BEGIN
SELECT p.text,p.examFk,p.questionFk,p.answerFk,p.id ,a.text AS answerText,a.correct, a.id AS answerFk
diff --git a/db/routines/psico/procedures/getExamType.sql b/db/routines/psico/procedures/getExamType.sql
index d829950e65..25bda6682b 100644
--- a/db/routines/psico/procedures/getExamType.sql
+++ b/db/routines/psico/procedures/getExamType.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `psico`.`getExamType`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `psico`.`getExamType`()
BEGIN
SELECT id,name
diff --git a/db/routines/psico/procedures/questionSort.sql b/db/routines/psico/procedures/questionSort.sql
index 56c5ef4a92..6e47c1c463 100644
--- a/db/routines/psico/procedures/questionSort.sql
+++ b/db/routines/psico/procedures/questionSort.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `psico`.`questionSort`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `psico`.`questionSort`()
BEGIN
UPDATE question
diff --git a/db/routines/psico/views/examView.sql b/db/routines/psico/views/examView.sql
index 1aa7689193..c8bc1a8ef3 100644
--- a/db/routines/psico/views/examView.sql
+++ b/db/routines/psico/views/examView.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `psico`.`examView`
AS SELECT `q`.`text` AS `text`,
diff --git a/db/routines/psico/views/results.sql b/db/routines/psico/views/results.sql
index 1d7945d32d..ad61099f37 100644
--- a/db/routines/psico/views/results.sql
+++ b/db/routines/psico/views/results.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `psico`.`results`
AS SELECT `eq`.`examFk` AS `examFk`,
diff --git a/db/routines/sage/functions/company_getCode.sql b/db/routines/sage/functions/company_getCode.sql
index bdb8c17fbf..412552086b 100644
--- a/db/routines/sage/functions/company_getCode.sql
+++ b/db/routines/sage/functions/company_getCode.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `sage`.`company_getCode`(vCompanyFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `sage`.`company_getCode`(vCompanyFk INT)
RETURNS int(2)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/sage/procedures/accountingMovements_add.sql b/db/routines/sage/procedures/accountingMovements_add.sql
index 060d89a3fb..229a105296 100644
--- a/db/routines/sage/procedures/accountingMovements_add.sql
+++ b/db/routines/sage/procedures/accountingMovements_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`accountingMovements_add`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`accountingMovements_add`(
vYear INT,
vCompanyFk INT
)
diff --git a/db/routines/sage/procedures/clean.sql b/db/routines/sage/procedures/clean.sql
index f1175c4dc6..9e52d787a8 100644
--- a/db/routines/sage/procedures/clean.sql
+++ b/db/routines/sage/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`clean`()
BEGIN
/**
* Maintains tables over time by removing unnecessary data
diff --git a/db/routines/sage/procedures/clientSupplier_add.sql b/db/routines/sage/procedures/clientSupplier_add.sql
index 2d1a518820..177b0a7cb1 100644
--- a/db/routines/sage/procedures/clientSupplier_add.sql
+++ b/db/routines/sage/procedures/clientSupplier_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`clientSupplier_add`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`clientSupplier_add`(
vCompanyFk INT
)
BEGIN
diff --git a/db/routines/sage/procedures/importErrorNotification.sql b/db/routines/sage/procedures/importErrorNotification.sql
index 75b0cffc87..1eae584e91 100644
--- a/db/routines/sage/procedures/importErrorNotification.sql
+++ b/db/routines/sage/procedures/importErrorNotification.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`importErrorNotification`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`importErrorNotification`()
BEGIN
/**
* Inserta notificaciones con los errores detectados durante la importación
diff --git a/db/routines/sage/procedures/invoiceIn_add.sql b/db/routines/sage/procedures/invoiceIn_add.sql
index 8fdbb9ce32..e91e337c7a 100644
--- a/db/routines/sage/procedures/invoiceIn_add.sql
+++ b/db/routines/sage/procedures/invoiceIn_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`invoiceIn_add`(vInvoiceInFk INT, vXDiarioFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`invoiceIn_add`(vInvoiceInFk INT, vXDiarioFk INT)
BEGIN
/**
* Traslada la info de contabilidad relacionada con las facturas recibidas
diff --git a/db/routines/sage/procedures/invoiceIn_manager.sql b/db/routines/sage/procedures/invoiceIn_manager.sql
index f9bf0e92fb..ba99ae9f2f 100644
--- a/db/routines/sage/procedures/invoiceIn_manager.sql
+++ b/db/routines/sage/procedures/invoiceIn_manager.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`invoiceIn_manager`(vYear INT, vCompanyFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`invoiceIn_manager`(vYear INT, vCompanyFk INT)
BEGIN
/**
* Traslada la info de contabilidad relacionada con las facturas recibidas
diff --git a/db/routines/sage/procedures/invoiceOut_add.sql b/db/routines/sage/procedures/invoiceOut_add.sql
index f9c6f6b87a..3b9643a36d 100644
--- a/db/routines/sage/procedures/invoiceOut_add.sql
+++ b/db/routines/sage/procedures/invoiceOut_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`invoiceOut_add`(IN vInvoiceOutFk INT, IN vXDiarioFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`invoiceOut_add`(IN vInvoiceOutFk INT, IN vXDiarioFk INT)
BEGIN
/**
* Traslada la info de contabilidad relacionada con las facturas emitidas
diff --git a/db/routines/sage/procedures/invoiceOut_manager.sql b/db/routines/sage/procedures/invoiceOut_manager.sql
index 58c0f2a213..cfacc330d7 100644
--- a/db/routines/sage/procedures/invoiceOut_manager.sql
+++ b/db/routines/sage/procedures/invoiceOut_manager.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`invoiceOut_manager`(vYear INT, vCompanyFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`invoiceOut_manager`(vYear INT, vCompanyFk INT)
BEGIN
/**
* Traslada la info de contabilidad relacionada con las facturas emitidas
diff --git a/db/routines/sage/procedures/pgc_add.sql b/db/routines/sage/procedures/pgc_add.sql
index 78d80a9fe4..67e3f59cd7 100644
--- a/db/routines/sage/procedures/pgc_add.sql
+++ b/db/routines/sage/procedures/pgc_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `sage`.`pgc_add`(vCompanyFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `sage`.`pgc_add`(vCompanyFk INT)
BEGIN
/**
* Añade cuentas del plan general contable para exportarlos a Sage
diff --git a/db/routines/sage/triggers/movConta_beforeUpdate.sql b/db/routines/sage/triggers/movConta_beforeUpdate.sql
index 316b28b7f8..f152ebe7f2 100644
--- a/db/routines/sage/triggers/movConta_beforeUpdate.sql
+++ b/db/routines/sage/triggers/movConta_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `sage`.`movConta_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `sage`.`movConta_beforeUpdate`
BEFORE UPDATE ON `movConta`
FOR EACH ROW
BEGIN
diff --git a/db/routines/sage/views/clientLastTwoMonths.sql b/db/routines/sage/views/clientLastTwoMonths.sql
index 059cb07800..24e85796b2 100644
--- a/db/routines/sage/views/clientLastTwoMonths.sql
+++ b/db/routines/sage/views/clientLastTwoMonths.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `sage`.`clientLastTwoMonths`
AS SELECT `vn`.`invoiceOut`.`clientFk` AS `clientFk`,
diff --git a/db/routines/sage/views/supplierLastThreeMonths.sql b/db/routines/sage/views/supplierLastThreeMonths.sql
index f841fd98cc..8fff1d42c7 100644
--- a/db/routines/sage/views/supplierLastThreeMonths.sql
+++ b/db/routines/sage/views/supplierLastThreeMonths.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `sage`.`supplierLastThreeMonths`
AS SELECT `vn`.`invoiceIn`.`supplierFk` AS `supplierFk`,
diff --git a/db/routines/salix/events/accessToken_prune.sql b/db/routines/salix/events/accessToken_prune.sql
index 28b04699f6..adcbb23019 100644
--- a/db/routines/salix/events/accessToken_prune.sql
+++ b/db/routines/salix/events/accessToken_prune.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `salix`.`accessToken_prune`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `salix`.`accessToken_prune`
ON SCHEDULE EVERY 1 DAY
STARTS '2023-03-14 05:14:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/salix/procedures/accessToken_prune.sql b/db/routines/salix/procedures/accessToken_prune.sql
index f1a8a0fe8e..06ccbe96a1 100644
--- a/db/routines/salix/procedures/accessToken_prune.sql
+++ b/db/routines/salix/procedures/accessToken_prune.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `salix`.`accessToken_prune`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `salix`.`accessToken_prune`()
BEGIN
/**
* Borra de la tabla salix.AccessToken todos aquellos tokens que hayan caducado
diff --git a/db/routines/salix/triggers/ACL_afterDelete.sql b/db/routines/salix/triggers/ACL_afterDelete.sql
index b7e6071fc2..3528a87477 100644
--- a/db/routines/salix/triggers/ACL_afterDelete.sql
+++ b/db/routines/salix/triggers/ACL_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `salix`.`ACL_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `salix`.`ACL_afterDelete`
AFTER DELETE ON `ACL`
FOR EACH ROW
BEGIN
diff --git a/db/routines/salix/triggers/ACL_beforeInsert.sql b/db/routines/salix/triggers/ACL_beforeInsert.sql
index cb0b5761b2..953ddfba1b 100644
--- a/db/routines/salix/triggers/ACL_beforeInsert.sql
+++ b/db/routines/salix/triggers/ACL_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `salix`.`ACL_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `salix`.`ACL_beforeInsert`
BEFORE INSERT ON `ACL`
FOR EACH ROW
BEGIN
diff --git a/db/routines/salix/triggers/ACL_beforeUpdate.sql b/db/routines/salix/triggers/ACL_beforeUpdate.sql
index b214fc9f63..006a91ae93 100644
--- a/db/routines/salix/triggers/ACL_beforeUpdate.sql
+++ b/db/routines/salix/triggers/ACL_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `salix`.`ACL_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `salix`.`ACL_beforeUpdate`
BEFORE UPDATE ON `ACL`
FOR EACH ROW
BEGIN
diff --git a/db/routines/salix/views/Account.sql b/db/routines/salix/views/Account.sql
index 080e3e50b4..0b75ab6204 100644
--- a/db/routines/salix/views/Account.sql
+++ b/db/routines/salix/views/Account.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `salix`.`Account`
AS SELECT `u`.`id` AS `id`,
diff --git a/db/routines/salix/views/Role.sql b/db/routines/salix/views/Role.sql
index b04ad82a6b..8fcd7c6bef 100644
--- a/db/routines/salix/views/Role.sql
+++ b/db/routines/salix/views/Role.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `salix`.`Role`
AS SELECT `r`.`id` AS `id`,
diff --git a/db/routines/salix/views/RoleMapping.sql b/db/routines/salix/views/RoleMapping.sql
index 48500a05ed..834ec07279 100644
--- a/db/routines/salix/views/RoleMapping.sql
+++ b/db/routines/salix/views/RoleMapping.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `salix`.`RoleMapping`
AS SELECT `u`.`id` * 1000 + `r`.`inheritsFrom` AS `id`,
diff --git a/db/routines/salix/views/User.sql b/db/routines/salix/views/User.sql
index e03803870e..b7536d6b17 100644
--- a/db/routines/salix/views/User.sql
+++ b/db/routines/salix/views/User.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `salix`.`User`
AS SELECT `account`.`user`.`id` AS `id`,
diff --git a/db/routines/srt/events/moving_clean.sql b/db/routines/srt/events/moving_clean.sql
index 18644a9f8a..17490609a1 100644
--- a/db/routines/srt/events/moving_clean.sql
+++ b/db/routines/srt/events/moving_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `srt`.`moving_clean`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `srt`.`moving_clean`
ON SCHEDULE EVERY 15 MINUTE
STARTS '2022-01-21 00:00:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/srt/functions/bid.sql b/db/routines/srt/functions/bid.sql
index ee4ffc7d3f..84e30ed115 100644
--- a/db/routines/srt/functions/bid.sql
+++ b/db/routines/srt/functions/bid.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`bid`(vCode VARCHAR(3))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`bid`(vCode VARCHAR(3))
RETURNS int(11)
DETERMINISTIC
BEGIN
diff --git a/db/routines/srt/functions/bufferPool_get.sql b/db/routines/srt/functions/bufferPool_get.sql
index 1576381f58..f3e9d2596d 100644
--- a/db/routines/srt/functions/bufferPool_get.sql
+++ b/db/routines/srt/functions/bufferPool_get.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`bufferPool_get`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`bufferPool_get`()
RETURNS int(11)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/buffer_get.sql b/db/routines/srt/functions/buffer_get.sql
index 55150bd991..b666548394 100644
--- a/db/routines/srt/functions/buffer_get.sql
+++ b/db/routines/srt/functions/buffer_get.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`buffer_get`(vExpeditionFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`buffer_get`(vExpeditionFk INT)
RETURNS int(11)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/buffer_getRandom.sql b/db/routines/srt/functions/buffer_getRandom.sql
index bc7229594d..12134c1e3c 100644
--- a/db/routines/srt/functions/buffer_getRandom.sql
+++ b/db/routines/srt/functions/buffer_getRandom.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`buffer_getRandom`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`buffer_getRandom`()
RETURNS int(11)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/buffer_getState.sql b/db/routines/srt/functions/buffer_getState.sql
index b5c4ac2e4e..79d4551382 100644
--- a/db/routines/srt/functions/buffer_getState.sql
+++ b/db/routines/srt/functions/buffer_getState.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`buffer_getState`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`buffer_getState`(vSelf INT)
RETURNS varchar(20) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/buffer_getType.sql b/db/routines/srt/functions/buffer_getType.sql
index 4b4194b3c2..0db73a0d3e 100644
--- a/db/routines/srt/functions/buffer_getType.sql
+++ b/db/routines/srt/functions/buffer_getType.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`buffer_getType`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`buffer_getType`(vSelf INT)
RETURNS varchar(20) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/buffer_isFull.sql b/db/routines/srt/functions/buffer_isFull.sql
index a1ae08484e..b404a60d6f 100644
--- a/db/routines/srt/functions/buffer_isFull.sql
+++ b/db/routines/srt/functions/buffer_isFull.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`buffer_isFull`(vBufferFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`buffer_isFull`(vBufferFk INT)
RETURNS tinyint(1)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/dayMinute.sql b/db/routines/srt/functions/dayMinute.sql
index ab66dd7d23..a103678630 100644
--- a/db/routines/srt/functions/dayMinute.sql
+++ b/db/routines/srt/functions/dayMinute.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`dayMinute`(vDateTime DATETIME)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`dayMinute`(vDateTime DATETIME)
RETURNS int(11)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/expedition_check.sql b/db/routines/srt/functions/expedition_check.sql
index 314cafd96c..948ef449a3 100644
--- a/db/routines/srt/functions/expedition_check.sql
+++ b/db/routines/srt/functions/expedition_check.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`expedition_check`(vExpeditionFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`expedition_check`(vExpeditionFk INT)
RETURNS int(11)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/functions/expedition_getDayMinute.sql b/db/routines/srt/functions/expedition_getDayMinute.sql
index 01ff534f57..1882dec0fd 100644
--- a/db/routines/srt/functions/expedition_getDayMinute.sql
+++ b/db/routines/srt/functions/expedition_getDayMinute.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `srt`.`expedition_getDayMinute`(vExpeditionFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `srt`.`expedition_getDayMinute`(vExpeditionFk INT)
RETURNS int(11)
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/srt/procedures/buffer_getExpCount.sql b/db/routines/srt/procedures/buffer_getExpCount.sql
index 5ead3d4213..d01feee79e 100644
--- a/db/routines/srt/procedures/buffer_getExpCount.sql
+++ b/db/routines/srt/procedures/buffer_getExpCount.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_getExpCount`(IN vBufferFk INT, OUT vExpCount INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_getExpCount`(IN vBufferFk INT, OUT vExpCount INT)
BEGIN
/* Devuelve el número de expediciones de un buffer
*
diff --git a/db/routines/srt/procedures/buffer_getStateType.sql b/db/routines/srt/procedures/buffer_getStateType.sql
index bba8202db0..4140cb3a63 100644
--- a/db/routines/srt/procedures/buffer_getStateType.sql
+++ b/db/routines/srt/procedures/buffer_getStateType.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_getStateType`(vBufferFk INT, OUT vStateFk INT, OUT vTypeFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_getStateType`(vBufferFk INT, OUT vStateFk INT, OUT vTypeFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/buffer_giveBack.sql b/db/routines/srt/procedures/buffer_giveBack.sql
index f8d3499144..755951e7ba 100644
--- a/db/routines/srt/procedures/buffer_giveBack.sql
+++ b/db/routines/srt/procedures/buffer_giveBack.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_giveBack`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_giveBack`(vSelf INT)
BEGIN
/* Devuelve una caja al celluveyor *
diff --git a/db/routines/srt/procedures/buffer_readPhotocell.sql b/db/routines/srt/procedures/buffer_readPhotocell.sql
index 2bf2cfa1dc..e2e1af8bbb 100644
--- a/db/routines/srt/procedures/buffer_readPhotocell.sql
+++ b/db/routines/srt/procedures/buffer_readPhotocell.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_readPhotocell`(vSelf INT, vNumber INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_readPhotocell`(vSelf INT, vNumber INT)
BEGIN
/**
* Establece el estado de un buffer en función del número de fotocélulas activas
diff --git a/db/routines/srt/procedures/buffer_setEmpty.sql b/db/routines/srt/procedures/buffer_setEmpty.sql
index e97d397ed8..776b25310b 100644
--- a/db/routines/srt/procedures/buffer_setEmpty.sql
+++ b/db/routines/srt/procedures/buffer_setEmpty.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_setEmpty`(vBufferFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_setEmpty`(vBufferFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/buffer_setState.sql b/db/routines/srt/procedures/buffer_setState.sql
index f0f1369425..3ac3c60da6 100644
--- a/db/routines/srt/procedures/buffer_setState.sql
+++ b/db/routines/srt/procedures/buffer_setState.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_setState`(vBufferFk INT(11), vStateFk INT(11))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_setState`(vBufferFk INT(11), vStateFk INT(11))
BEGIN
/**
diff --git a/db/routines/srt/procedures/buffer_setStateType.sql b/db/routines/srt/procedures/buffer_setStateType.sql
index 954a380acd..a9f66509e4 100644
--- a/db/routines/srt/procedures/buffer_setStateType.sql
+++ b/db/routines/srt/procedures/buffer_setStateType.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_setStateType`(vBufferFk INT, vState VARCHAR(25), vType VARCHAR(25))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_setStateType`(vBufferFk INT, vState VARCHAR(25), vType VARCHAR(25))
BEGIN
/**
diff --git a/db/routines/srt/procedures/buffer_setType.sql b/db/routines/srt/procedures/buffer_setType.sql
index 7d6c508dc4..b880262dd7 100644
--- a/db/routines/srt/procedures/buffer_setType.sql
+++ b/db/routines/srt/procedures/buffer_setType.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_setType`(vBufferFk INT(11), vTypeFk INT(11))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_setType`(vBufferFk INT(11), vTypeFk INT(11))
BEGIN
/**
* Cambia el tipo de un buffer, si está permitido
diff --git a/db/routines/srt/procedures/buffer_setTypeByName.sql b/db/routines/srt/procedures/buffer_setTypeByName.sql
index 9365d53992..ad6caff42b 100644
--- a/db/routines/srt/procedures/buffer_setTypeByName.sql
+++ b/db/routines/srt/procedures/buffer_setTypeByName.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`buffer_setTypeByName`(vBufferFk INT(11), vTypeName VARCHAR(100))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`buffer_setTypeByName`(vBufferFk INT(11), vTypeName VARCHAR(100))
BEGIN
/**
diff --git a/db/routines/srt/procedures/clean.sql b/db/routines/srt/procedures/clean.sql
index 3d02ae0cd8..3e90533004 100644
--- a/db/routines/srt/procedures/clean.sql
+++ b/db/routines/srt/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`clean`()
BEGIN
DECLARE vLastDated DATE DEFAULT TIMESTAMPADD(WEEK,-2,util.VN_CURDATE());
diff --git a/db/routines/srt/procedures/expeditionLoading_add.sql b/db/routines/srt/procedures/expeditionLoading_add.sql
index 7fb53c2c60..bb68e395cb 100644
--- a/db/routines/srt/procedures/expeditionLoading_add.sql
+++ b/db/routines/srt/procedures/expeditionLoading_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expeditionLoading_add`(vExpeditionFk INT, vBufferFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expeditionLoading_add`(vExpeditionFk INT, vBufferFk INT)
BEGIN
DECLARE vMessage VARCHAR(50) DEFAULT '';
diff --git a/db/routines/srt/procedures/expedition_arrived.sql b/db/routines/srt/procedures/expedition_arrived.sql
index 2d2c093bc2..03108e90d8 100644
--- a/db/routines/srt/procedures/expedition_arrived.sql
+++ b/db/routines/srt/procedures/expedition_arrived.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_arrived`(vExpeditionFk INT, vBufferFk INT, OUT vTypeFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_arrived`(vExpeditionFk INT, vBufferFk INT, OUT vTypeFk INT)
BEGIN
/**
* La expedición ha entrado en un buffer, superando fc2
diff --git a/db/routines/srt/procedures/expedition_bufferOut.sql b/db/routines/srt/procedures/expedition_bufferOut.sql
index 69e1fb7919..56d32614b9 100644
--- a/db/routines/srt/procedures/expedition_bufferOut.sql
+++ b/db/routines/srt/procedures/expedition_bufferOut.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_bufferOut`(vBufferToFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_bufferOut`(vBufferToFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_entering.sql b/db/routines/srt/procedures/expedition_entering.sql
index f1b773edb2..2eab7d0e05 100644
--- a/db/routines/srt/procedures/expedition_entering.sql
+++ b/db/routines/srt/procedures/expedition_entering.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_entering`(vExpeditionFk INT, OUT vExpeditionOutFk INT )
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_entering`(vExpeditionFk INT, OUT vExpeditionOutFk INT )
BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_get.sql b/db/routines/srt/procedures/expedition_get.sql
index 91a0e2ace1..d0edd4b159 100644
--- a/db/routines/srt/procedures/expedition_get.sql
+++ b/db/routines/srt/procedures/expedition_get.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_get`(vAntennaFk INT, OUT vExpeditionOutFk INT )
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_get`(vAntennaFk INT, OUT vExpeditionOutFk INT )
BEGIN
DECLARE vId INT;
diff --git a/db/routines/srt/procedures/expedition_groupOut.sql b/db/routines/srt/procedures/expedition_groupOut.sql
index 5c4540ff6d..3400492381 100644
--- a/db/routines/srt/procedures/expedition_groupOut.sql
+++ b/db/routines/srt/procedures/expedition_groupOut.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_groupOut`(vDayMinute INT, vBufferToFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_groupOut`(vDayMinute INT, vBufferToFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_in.sql b/db/routines/srt/procedures/expedition_in.sql
index c6f75876cd..ca783e78ff 100644
--- a/db/routines/srt/procedures/expedition_in.sql
+++ b/db/routines/srt/procedures/expedition_in.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_in`(vBufferFk INT, OUT vExpeditionFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_in`(vBufferFk INT, OUT vExpeditionFk INT)
proc:BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_moving.sql b/db/routines/srt/procedures/expedition_moving.sql
index 1277ed2bde..095c5f6b1a 100644
--- a/db/routines/srt/procedures/expedition_moving.sql
+++ b/db/routines/srt/procedures/expedition_moving.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_moving`(vBufferFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_moving`(vBufferFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_out.sql b/db/routines/srt/procedures/expedition_out.sql
index 5e66085615..7c5bb85268 100644
--- a/db/routines/srt/procedures/expedition_out.sql
+++ b/db/routines/srt/procedures/expedition_out.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_out`(vBufferFk INT, OUT vTypeFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_out`(vBufferFk INT, OUT vTypeFk INT)
proc:BEGIN
/**
* Una expedición ha salido de un buffer por el extremo distal
diff --git a/db/routines/srt/procedures/expedition_outAll.sql b/db/routines/srt/procedures/expedition_outAll.sql
index ffe925c9dc..109ddc8174 100644
--- a/db/routines/srt/procedures/expedition_outAll.sql
+++ b/db/routines/srt/procedures/expedition_outAll.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_outAll`(vBufferFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_outAll`(vBufferFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_relocate.sql b/db/routines/srt/procedures/expedition_relocate.sql
index 0f940beff6..8a5e41ca92 100644
--- a/db/routines/srt/procedures/expedition_relocate.sql
+++ b/db/routines/srt/procedures/expedition_relocate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_relocate`(vExpeditionFk INT, vBufferToFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_relocate`(vExpeditionFk INT, vBufferToFk INT)
proc:BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_reset.sql b/db/routines/srt/procedures/expedition_reset.sql
index 153edfad22..fd76981456 100644
--- a/db/routines/srt/procedures/expedition_reset.sql
+++ b/db/routines/srt/procedures/expedition_reset.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_reset`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_reset`()
BEGIN
DELETE FROM srt.moving;
diff --git a/db/routines/srt/procedures/expedition_routeOut.sql b/db/routines/srt/procedures/expedition_routeOut.sql
index d40384e1f0..325a6bb944 100644
--- a/db/routines/srt/procedures/expedition_routeOut.sql
+++ b/db/routines/srt/procedures/expedition_routeOut.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_routeOut`(vRouteFk INT, vBufferToFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_routeOut`(vRouteFk INT, vBufferToFk INT)
BEGIN
/**
diff --git a/db/routines/srt/procedures/expedition_scan.sql b/db/routines/srt/procedures/expedition_scan.sql
index e3fcfddef4..81caa4befb 100644
--- a/db/routines/srt/procedures/expedition_scan.sql
+++ b/db/routines/srt/procedures/expedition_scan.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_scan`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_scan`(vSelf INT)
BEGIN
/* Actualiza el estado de una expedicion a OUT, al ser escaneada manualmente
diff --git a/db/routines/srt/procedures/expedition_setDimensions.sql b/db/routines/srt/procedures/expedition_setDimensions.sql
index 0b4fea28fe..fba5f373cb 100644
--- a/db/routines/srt/procedures/expedition_setDimensions.sql
+++ b/db/routines/srt/procedures/expedition_setDimensions.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_setDimensions`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_setDimensions`(
vExpeditionFk INT,
vWeight DECIMAL(10,2),
vLength INT,
diff --git a/db/routines/srt/procedures/expedition_weighing.sql b/db/routines/srt/procedures/expedition_weighing.sql
index bb35edb274..3722125496 100644
--- a/db/routines/srt/procedures/expedition_weighing.sql
+++ b/db/routines/srt/procedures/expedition_weighing.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`expedition_weighing`(vWeight DECIMAL(10,2), vExpeditionFk INT, OUT vExpeditionOutFk INT )
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`expedition_weighing`(vWeight DECIMAL(10,2), vExpeditionFk INT, OUT vExpeditionOutFk INT )
BEGIN
/**
diff --git a/db/routines/srt/procedures/failureLog_add.sql b/db/routines/srt/procedures/failureLog_add.sql
index b572e85036..5ca49a2e05 100644
--- a/db/routines/srt/procedures/failureLog_add.sql
+++ b/db/routines/srt/procedures/failureLog_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`failureLog_add`(vDescription VARCHAR(100))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`failureLog_add`(vDescription VARCHAR(100))
BEGIN
/* Añade un registro a srt.failureLog
diff --git a/db/routines/srt/procedures/lastRFID_add.sql b/db/routines/srt/procedures/lastRFID_add.sql
index ec3c83d983..704e1baa86 100644
--- a/db/routines/srt/procedures/lastRFID_add.sql
+++ b/db/routines/srt/procedures/lastRFID_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`lastRFID_add`(vCode VARCHAR(20), vAntennaFk INT, vAntennaPortFk INT, vPeakRssi INT, vSeenCount INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`lastRFID_add`(vCode VARCHAR(20), vAntennaFk INT, vAntennaPortFk INT, vPeakRssi INT, vSeenCount INT)
BEGIN
/* Insert a new record in lastRFID table
diff --git a/db/routines/srt/procedures/lastRFID_add_beta.sql b/db/routines/srt/procedures/lastRFID_add_beta.sql
index bbeb32410e..01ad90affe 100644
--- a/db/routines/srt/procedures/lastRFID_add_beta.sql
+++ b/db/routines/srt/procedures/lastRFID_add_beta.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`lastRFID_add_beta`(vCode VARCHAR(20), vAntennaFk INT, vAntennaPortFk INT, vPeakRssi INT, vSeenCount INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`lastRFID_add_beta`(vCode VARCHAR(20), vAntennaFk INT, vAntennaPortFk INT, vPeakRssi INT, vSeenCount INT)
BEGIN
/* Insert a new record in lastRFID table
diff --git a/db/routines/srt/procedures/moving_CollidingSet.sql b/db/routines/srt/procedures/moving_CollidingSet.sql
index 69c4f9d9e9..bfaca4bbf5 100644
--- a/db/routines/srt/procedures/moving_CollidingSet.sql
+++ b/db/routines/srt/procedures/moving_CollidingSet.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`moving_CollidingSet`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`moving_CollidingSet`()
BEGIN
diff --git a/db/routines/srt/procedures/moving_between.sql b/db/routines/srt/procedures/moving_between.sql
index 41822d3418..ccb54353fe 100644
--- a/db/routines/srt/procedures/moving_between.sql
+++ b/db/routines/srt/procedures/moving_between.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`moving_between`(vBufferA INT, vBufferB INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`moving_between`(vBufferA INT, vBufferB INT)
BEGIN
DECLARE vExpeditionFk INT;
diff --git a/db/routines/srt/procedures/moving_clean.sql b/db/routines/srt/procedures/moving_clean.sql
index a5bbc7e70f..2380d17098 100644
--- a/db/routines/srt/procedures/moving_clean.sql
+++ b/db/routines/srt/procedures/moving_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`moving_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`moving_clean`()
BEGIN
/**
* Elimina movimientos por inactividad
diff --git a/db/routines/srt/procedures/moving_delete.sql b/db/routines/srt/procedures/moving_delete.sql
index 38491105af..926b4b5953 100644
--- a/db/routines/srt/procedures/moving_delete.sql
+++ b/db/routines/srt/procedures/moving_delete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`moving_delete`(vExpeditionFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`moving_delete`(vExpeditionFk INT)
BEGIN
/* Elimina un movimiento
diff --git a/db/routines/srt/procedures/moving_groupOut.sql b/db/routines/srt/procedures/moving_groupOut.sql
index d901f0ca9f..28556d20df 100644
--- a/db/routines/srt/procedures/moving_groupOut.sql
+++ b/db/routines/srt/procedures/moving_groupOut.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`moving_groupOut`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`moving_groupOut`()
proc: BEGIN
DECLARE vDayMinute INT;
diff --git a/db/routines/srt/procedures/moving_next.sql b/db/routines/srt/procedures/moving_next.sql
index 6c76b8373d..75270aed10 100644
--- a/db/routines/srt/procedures/moving_next.sql
+++ b/db/routines/srt/procedures/moving_next.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`moving_next`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`moving_next`()
BEGIN
DECLARE vExpeditionFk INT;
diff --git a/db/routines/srt/procedures/photocell_setActive.sql b/db/routines/srt/procedures/photocell_setActive.sql
index c89e9dc9da..63858a83c5 100644
--- a/db/routines/srt/procedures/photocell_setActive.sql
+++ b/db/routines/srt/procedures/photocell_setActive.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`photocell_setActive`(vBufferFk int, vPosition int, vIsActive bool)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`photocell_setActive`(vBufferFk int, vPosition int, vIsActive bool)
BEGIN
REPLACE srt.photocell VALUES (vbufferFk, vPosition, vIsActive);
END$$
diff --git a/db/routines/srt/procedures/randomMoving.sql b/db/routines/srt/procedures/randomMoving.sql
index b4bdd6591b..01a9eaca46 100644
--- a/db/routines/srt/procedures/randomMoving.sql
+++ b/db/routines/srt/procedures/randomMoving.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`randomMoving`(vBufferMin INT, vBufferMax INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`randomMoving`(vBufferMin INT, vBufferMax INT)
BEGIN
DECLARE vBufferOld INT DEFAULT 0;
DECLARE vBufferFk INT;
diff --git a/db/routines/srt/procedures/randomMoving_Launch.sql b/db/routines/srt/procedures/randomMoving_Launch.sql
index 031e548732..84003a50a9 100644
--- a/db/routines/srt/procedures/randomMoving_Launch.sql
+++ b/db/routines/srt/procedures/randomMoving_Launch.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`randomMoving_Launch`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`randomMoving_Launch`()
BEGIN
DECLARE i INT DEFAULT 5;
diff --git a/db/routines/srt/procedures/restart.sql b/db/routines/srt/procedures/restart.sql
index 96adb3bfa9..41871863c5 100644
--- a/db/routines/srt/procedures/restart.sql
+++ b/db/routines/srt/procedures/restart.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`restart`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`restart`()
BEGIN
/*
diff --git a/db/routines/srt/procedures/start.sql b/db/routines/srt/procedures/start.sql
index 8e5250796c..51a0a300b8 100644
--- a/db/routines/srt/procedures/start.sql
+++ b/db/routines/srt/procedures/start.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`start`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`start`()
BEGIN
/*
diff --git a/db/routines/srt/procedures/stop.sql b/db/routines/srt/procedures/stop.sql
index a6fd12bb2e..d649412aa7 100644
--- a/db/routines/srt/procedures/stop.sql
+++ b/db/routines/srt/procedures/stop.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`stop`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`stop`()
BEGIN
/*
diff --git a/db/routines/srt/procedures/test.sql b/db/routines/srt/procedures/test.sql
index 59a76eb818..571e415f29 100644
--- a/db/routines/srt/procedures/test.sql
+++ b/db/routines/srt/procedures/test.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `srt`.`test`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `srt`.`test`()
BEGIN
SELECT 'procedimiento ejecutado con éxito';
diff --git a/db/routines/srt/triggers/buffer_afterDelete.sql b/db/routines/srt/triggers/buffer_afterDelete.sql
index d554e63647..bb92687dd9 100644
--- a/db/routines/srt/triggers/buffer_afterDelete.sql
+++ b/db/routines/srt/triggers/buffer_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`buffer_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`buffer_afterDelete`
AFTER DELETE ON `buffer`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/buffer_beforeInsert.sql b/db/routines/srt/triggers/buffer_beforeInsert.sql
index 6b1e05362c..9a13dde964 100644
--- a/db/routines/srt/triggers/buffer_beforeInsert.sql
+++ b/db/routines/srt/triggers/buffer_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`buffer_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`buffer_beforeInsert`
BEFORE INSERT ON `buffer`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/buffer_beforeUpdate.sql b/db/routines/srt/triggers/buffer_beforeUpdate.sql
index 86418a5510..ed6727855e 100644
--- a/db/routines/srt/triggers/buffer_beforeUpdate.sql
+++ b/db/routines/srt/triggers/buffer_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`buffer_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`buffer_beforeUpdate`
BEFORE UPDATE ON `buffer`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/config_afterDelete.sql b/db/routines/srt/triggers/config_afterDelete.sql
index 1e4af91047..e07925f3e5 100644
--- a/db/routines/srt/triggers/config_afterDelete.sql
+++ b/db/routines/srt/triggers/config_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`config_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`config_afterDelete`
AFTER DELETE ON `config`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/config_beforeInsert.sql b/db/routines/srt/triggers/config_beforeInsert.sql
index 7d83896463..59819654ea 100644
--- a/db/routines/srt/triggers/config_beforeInsert.sql
+++ b/db/routines/srt/triggers/config_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`config_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`config_beforeInsert`
BEFORE INSERT ON `config`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/config_beforeUpdate.sql b/db/routines/srt/triggers/config_beforeUpdate.sql
index 0002fb4d63..bd7faaf421 100644
--- a/db/routines/srt/triggers/config_beforeUpdate.sql
+++ b/db/routines/srt/triggers/config_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`config_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`config_beforeUpdate`
BEFORE UPDATE ON `config`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/expedition_beforeUpdate.sql b/db/routines/srt/triggers/expedition_beforeUpdate.sql
index b8933aaf51..335c69bab1 100644
--- a/db/routines/srt/triggers/expedition_beforeUpdate.sql
+++ b/db/routines/srt/triggers/expedition_beforeUpdate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`expedition_beforeUpdate`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`expedition_beforeUpdate`
BEFORE UPDATE ON `expedition`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/triggers/moving_afterInsert.sql b/db/routines/srt/triggers/moving_afterInsert.sql
index aaa09c99c4..dcf8a977ef 100644
--- a/db/routines/srt/triggers/moving_afterInsert.sql
+++ b/db/routines/srt/triggers/moving_afterInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `srt`.`moving_afterInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `srt`.`moving_afterInsert`
AFTER INSERT ON `moving`
FOR EACH ROW
BEGIN
diff --git a/db/routines/srt/views/bufferDayMinute.sql b/db/routines/srt/views/bufferDayMinute.sql
index d2108e513b..0156b74f56 100644
--- a/db/routines/srt/views/bufferDayMinute.sql
+++ b/db/routines/srt/views/bufferDayMinute.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `srt`.`bufferDayMinute`
AS SELECT `b`.`id` AS `bufferFk`,
diff --git a/db/routines/srt/views/bufferFreeLength.sql b/db/routines/srt/views/bufferFreeLength.sql
index 4edf1db471..7035220a0e 100644
--- a/db/routines/srt/views/bufferFreeLength.sql
+++ b/db/routines/srt/views/bufferFreeLength.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `srt`.`bufferFreeLength`
AS SELECT cast(`b`.`id` AS decimal(10, 0)) AS `bufferFk`,
diff --git a/db/routines/srt/views/bufferStock.sql b/db/routines/srt/views/bufferStock.sql
index ca04d3c012..dd0b2f1c2a 100644
--- a/db/routines/srt/views/bufferStock.sql
+++ b/db/routines/srt/views/bufferStock.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `srt`.`bufferStock`
AS SELECT `e`.`id` AS `expeditionFk`,
diff --git a/db/routines/srt/views/routePalletized.sql b/db/routines/srt/views/routePalletized.sql
index 15b493c6a0..05113242a3 100644
--- a/db/routines/srt/views/routePalletized.sql
+++ b/db/routines/srt/views/routePalletized.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `srt`.`routePalletized`
AS SELECT `t`.`routeFk` AS `routeFk`,
diff --git a/db/routines/srt/views/ticketPalletized.sql b/db/routines/srt/views/ticketPalletized.sql
index 04ac24291e..812e3659e0 100644
--- a/db/routines/srt/views/ticketPalletized.sql
+++ b/db/routines/srt/views/ticketPalletized.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `srt`.`ticketPalletized`
AS SELECT `t`.`id` AS `ticketFk`,
diff --git a/db/routines/srt/views/upperStickers.sql b/db/routines/srt/views/upperStickers.sql
index 1cd72c12bd..fff8890f55 100644
--- a/db/routines/srt/views/upperStickers.sql
+++ b/db/routines/srt/views/upperStickers.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `srt`.`upperStickers`
AS SELECT `e`.`id` AS `expeditionFk`,
diff --git a/db/routines/stock/events/log_clean.sql b/db/routines/stock/events/log_clean.sql
index 973561a89c..68dec73858 100644
--- a/db/routines/stock/events/log_clean.sql
+++ b/db/routines/stock/events/log_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `stock`.`log_clean`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `stock`.`log_clean`
ON SCHEDULE EVERY 1 DAY
STARTS '2022-01-28 09:29:18.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/stock/events/log_syncNoWait.sql b/db/routines/stock/events/log_syncNoWait.sql
index 954d372193..e8f719ac29 100644
--- a/db/routines/stock/events/log_syncNoWait.sql
+++ b/db/routines/stock/events/log_syncNoWait.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `stock`.`log_syncNoWait`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `stock`.`log_syncNoWait`
ON SCHEDULE EVERY 5 SECOND
STARTS '2017-06-27 17:15:02.000'
ON COMPLETION NOT PRESERVE
diff --git a/db/routines/stock/procedures/inbound_addPick.sql b/db/routines/stock/procedures/inbound_addPick.sql
index 41b93a9868..136ade6c8e 100644
--- a/db/routines/stock/procedures/inbound_addPick.sql
+++ b/db/routines/stock/procedures/inbound_addPick.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`inbound_addPick`(
vSelf INT,
vOutboundFk INT,
vQuantity INT
diff --git a/db/routines/stock/procedures/inbound_removePick.sql b/db/routines/stock/procedures/inbound_removePick.sql
index e183e11712..75883bcb2f 100644
--- a/db/routines/stock/procedures/inbound_removePick.sql
+++ b/db/routines/stock/procedures/inbound_removePick.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`inbound_removePick`(
vSelf INT,
vOutboundFk INT,
vQuantity INT,
diff --git a/db/routines/stock/procedures/inbound_requestQuantity.sql b/db/routines/stock/procedures/inbound_requestQuantity.sql
index 1cbc1908bf..4c6fb4295d 100644
--- a/db/routines/stock/procedures/inbound_requestQuantity.sql
+++ b/db/routines/stock/procedures/inbound_requestQuantity.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`inbound_requestQuantity`(
vSelf INT,
vRequested INT,
vDated DATETIME,
diff --git a/db/routines/stock/procedures/inbound_sync.sql b/db/routines/stock/procedures/inbound_sync.sql
index 77d3e42f7e..7d463e70d0 100644
--- a/db/routines/stock/procedures/inbound_sync.sql
+++ b/db/routines/stock/procedures/inbound_sync.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`inbound_sync`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`inbound_sync`(vSelf INT)
BEGIN
/**
* Associates a inbound with their possible outbounds, updating it's available.
diff --git a/db/routines/stock/procedures/log_clean.sql b/db/routines/stock/procedures/log_clean.sql
index 56634b371a..9215246e1b 100644
--- a/db/routines/stock/procedures/log_clean.sql
+++ b/db/routines/stock/procedures/log_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_clean`()
BEGIN
DELETE FROM inbound WHERE dated = vn.getInventoryDate();
DELETE FROM outbound WHERE dated = vn.getInventoryDate();
diff --git a/db/routines/stock/procedures/log_delete.sql b/db/routines/stock/procedures/log_delete.sql
index e3b631b4ea..8bf2aed569 100644
--- a/db/routines/stock/procedures/log_delete.sql
+++ b/db/routines/stock/procedures/log_delete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_delete`(vTableName VARCHAR(255), vTableId INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_delete`(vTableName VARCHAR(255), vTableId INT)
proc: BEGIN
/**
* Processes orphan transactions.
diff --git a/db/routines/stock/procedures/log_refreshAll.sql b/db/routines/stock/procedures/log_refreshAll.sql
index 3eaad07f21..9415379af1 100644
--- a/db/routines/stock/procedures/log_refreshAll.sql
+++ b/db/routines/stock/procedures/log_refreshAll.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshAll`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_refreshAll`()
BEGIN
/**
* Recalculates the entire cache. It takes a considerable time,
diff --git a/db/routines/stock/procedures/log_refreshBuy.sql b/db/routines/stock/procedures/log_refreshBuy.sql
index 874e140725..e8f2fd407a 100644
--- a/db/routines/stock/procedures/log_refreshBuy.sql
+++ b/db/routines/stock/procedures/log_refreshBuy.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_refreshBuy`(
`vTableName` VARCHAR(255),
`vTableId` INT)
BEGIN
diff --git a/db/routines/stock/procedures/log_refreshOrder.sql b/db/routines/stock/procedures/log_refreshOrder.sql
index ce5b31cc8e..787fb6aa58 100644
--- a/db/routines/stock/procedures/log_refreshOrder.sql
+++ b/db/routines/stock/procedures/log_refreshOrder.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_refreshOrder`(
`vTableName` VARCHAR(255),
`vTableId` INT)
BEGIN
diff --git a/db/routines/stock/procedures/log_refreshSale.sql b/db/routines/stock/procedures/log_refreshSale.sql
index 3054f8ecb2..f982d405ed 100644
--- a/db/routines/stock/procedures/log_refreshSale.sql
+++ b/db/routines/stock/procedures/log_refreshSale.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_refreshSale`(
`vTableName` VARCHAR(255),
`vTableId` INT)
BEGIN
diff --git a/db/routines/stock/procedures/log_sync.sql b/db/routines/stock/procedures/log_sync.sql
index 5b03b6ab0e..349e4b3dbf 100644
--- a/db/routines/stock/procedures/log_sync.sql
+++ b/db/routines/stock/procedures/log_sync.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_sync`(vSync BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_sync`(vSync BOOL)
proc: BEGIN
DECLARE vDone BOOL;
DECLARE vLogId INT;
diff --git a/db/routines/stock/procedures/log_syncNoWait.sql b/db/routines/stock/procedures/log_syncNoWait.sql
index 00cc215fd4..897195f4df 100644
--- a/db/routines/stock/procedures/log_syncNoWait.sql
+++ b/db/routines/stock/procedures/log_syncNoWait.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`log_syncNoWait`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`log_syncNoWait`()
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
diff --git a/db/routines/stock/procedures/outbound_requestQuantity.sql b/db/routines/stock/procedures/outbound_requestQuantity.sql
index 7ddc3545ca..2ee2624676 100644
--- a/db/routines/stock/procedures/outbound_requestQuantity.sql
+++ b/db/routines/stock/procedures/outbound_requestQuantity.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`outbound_requestQuantity`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`outbound_requestQuantity`(
vSelf INT,
vRequested INT,
vDated DATETIME,
diff --git a/db/routines/stock/procedures/outbound_sync.sql b/db/routines/stock/procedures/outbound_sync.sql
index 0de3521761..94b65e1b6c 100644
--- a/db/routines/stock/procedures/outbound_sync.sql
+++ b/db/routines/stock/procedures/outbound_sync.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`outbound_sync`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`outbound_sync`(vSelf INT)
BEGIN
/**
* Attaches a outbound with available inbounds.
diff --git a/db/routines/stock/procedures/visible_log.sql b/db/routines/stock/procedures/visible_log.sql
index cc88d3205e..cb11e9d3e7 100644
--- a/db/routines/stock/procedures/visible_log.sql
+++ b/db/routines/stock/procedures/visible_log.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `stock`.`visible_log`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `stock`.`visible_log`(
vIsPicked BOOL,
vWarehouseFk INT,
vItemFk INT,
diff --git a/db/routines/stock/triggers/inbound_afterDelete.sql b/db/routines/stock/triggers/inbound_afterDelete.sql
index 451dcc5995..a436d04a01 100644
--- a/db/routines/stock/triggers/inbound_afterDelete.sql
+++ b/db/routines/stock/triggers/inbound_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`inbound_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `stock`.`inbound_afterDelete`
AFTER DELETE ON `inbound`
FOR EACH ROW
BEGIN
diff --git a/db/routines/stock/triggers/inbound_beforeInsert.sql b/db/routines/stock/triggers/inbound_beforeInsert.sql
index 723cb3222f..3707a2b2a7 100644
--- a/db/routines/stock/triggers/inbound_beforeInsert.sql
+++ b/db/routines/stock/triggers/inbound_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`inbound_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `stock`.`inbound_beforeInsert`
BEFORE INSERT ON `inbound`
FOR EACH ROW
BEGIN
diff --git a/db/routines/stock/triggers/outbound_afterDelete.sql b/db/routines/stock/triggers/outbound_afterDelete.sql
index e7d756871d..1c90c32932 100644
--- a/db/routines/stock/triggers/outbound_afterDelete.sql
+++ b/db/routines/stock/triggers/outbound_afterDelete.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`outbound_afterDelete`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `stock`.`outbound_afterDelete`
AFTER DELETE ON `outbound`
FOR EACH ROW
BEGIN
diff --git a/db/routines/stock/triggers/outbound_beforeInsert.sql b/db/routines/stock/triggers/outbound_beforeInsert.sql
index 86546413e9..e0560d8f65 100644
--- a/db/routines/stock/triggers/outbound_beforeInsert.sql
+++ b/db/routines/stock/triggers/outbound_beforeInsert.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` TRIGGER `stock`.`outbound_beforeInsert`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `stock`.`outbound_beforeInsert`
BEFORE INSERT ON `outbound`
FOR EACH ROW
BEGIN
diff --git a/db/routines/tmp/events/clean.sql b/db/routines/tmp/events/clean.sql
index 34b7139ccc..75f0223626 100644
--- a/db/routines/tmp/events/clean.sql
+++ b/db/routines/tmp/events/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `tmp`.`clean`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `tmp`.`clean`
ON SCHEDULE EVERY 1 HOUR
STARTS '2022-03-01 00:00:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/tmp/procedures/clean.sql b/db/routines/tmp/procedures/clean.sql
index a15f98311c..90ea692167 100644
--- a/db/routines/tmp/procedures/clean.sql
+++ b/db/routines/tmp/procedures/clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `tmp`.`clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `tmp`.`clean`()
BEGIN
DECLARE vTableName VARCHAR(255);
DECLARE vDone BOOL;
diff --git a/db/routines/util/events/log_clean.sql b/db/routines/util/events/log_clean.sql
index 8447069e6b..225dd35644 100644
--- a/db/routines/util/events/log_clean.sql
+++ b/db/routines/util/events/log_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `util`.`log_clean`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `util`.`log_clean`
ON SCHEDULE EVERY 1 DAY
STARTS '2024-07-09 00:30:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/util/events/slowLog_prune.sql b/db/routines/util/events/slowLog_prune.sql
index aa9b0c1844..1b339fbcda 100644
--- a/db/routines/util/events/slowLog_prune.sql
+++ b/db/routines/util/events/slowLog_prune.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` EVENT `util`.`slowLog_prune`
+CREATE OR REPLACE DEFINER=`vn`@`localhost` EVENT `util`.`slowLog_prune`
ON SCHEDULE EVERY 1 DAY
STARTS '2021-10-08 00:00:00.000'
ON COMPLETION PRESERVE
diff --git a/db/routines/util/functions/VN_CURDATE.sql b/db/routines/util/functions/VN_CURDATE.sql
index 692f097a0f..0ceb0c4ede 100644
--- a/db/routines/util/functions/VN_CURDATE.sql
+++ b/db/routines/util/functions/VN_CURDATE.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_CURDATE`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_CURDATE`()
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/VN_CURTIME.sql b/db/routines/util/functions/VN_CURTIME.sql
index ae66ea500e..954ed2273a 100644
--- a/db/routines/util/functions/VN_CURTIME.sql
+++ b/db/routines/util/functions/VN_CURTIME.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_CURTIME`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_CURTIME`()
RETURNS time
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/VN_NOW.sql b/db/routines/util/functions/VN_NOW.sql
index 47b1bb4fdb..44e3ece447 100644
--- a/db/routines/util/functions/VN_NOW.sql
+++ b/db/routines/util/functions/VN_NOW.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_NOW`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_NOW`()
RETURNS datetime
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/VN_UNIX_TIMESTAMP.sql b/db/routines/util/functions/VN_UNIX_TIMESTAMP.sql
index 7174598621..c168df9fd1 100644
--- a/db/routines/util/functions/VN_UNIX_TIMESTAMP.sql
+++ b/db/routines/util/functions/VN_UNIX_TIMESTAMP.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_UNIX_TIMESTAMP`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_UNIX_TIMESTAMP`()
RETURNS int(11)
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/VN_UTC_DATE.sql b/db/routines/util/functions/VN_UTC_DATE.sql
index 2b40b7dc29..803b6026fb 100644
--- a/db/routines/util/functions/VN_UTC_DATE.sql
+++ b/db/routines/util/functions/VN_UTC_DATE.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_UTC_DATE`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_UTC_DATE`()
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/VN_UTC_TIME.sql b/db/routines/util/functions/VN_UTC_TIME.sql
index 930333d238..3eaa7f4314 100644
--- a/db/routines/util/functions/VN_UTC_TIME.sql
+++ b/db/routines/util/functions/VN_UTC_TIME.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_UTC_TIME`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_UTC_TIME`()
RETURNS time
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/VN_UTC_TIMESTAMP.sql b/db/routines/util/functions/VN_UTC_TIMESTAMP.sql
index 97d1258741..530198cb9d 100644
--- a/db/routines/util/functions/VN_UTC_TIMESTAMP.sql
+++ b/db/routines/util/functions/VN_UTC_TIMESTAMP.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`VN_UTC_TIMESTAMP`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`VN_UTC_TIMESTAMP`()
RETURNS datetime
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/accountNumberToIban.sql b/db/routines/util/functions/accountNumberToIban.sql
index 49d3c917e5..8119545476 100644
--- a/db/routines/util/functions/accountNumberToIban.sql
+++ b/db/routines/util/functions/accountNumberToIban.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`accountNumberToIban`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`accountNumberToIban`(
vAccount VARCHAR(20)
)
RETURNS varchar(4) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
diff --git a/db/routines/util/functions/accountShortToStandard.sql b/db/routines/util/functions/accountShortToStandard.sql
index 71e360bf37..a3379d9892 100644
--- a/db/routines/util/functions/accountShortToStandard.sql
+++ b/db/routines/util/functions/accountShortToStandard.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`accountShortToStandard`(vAccount VARCHAR(10))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`accountShortToStandard`(vAccount VARCHAR(10))
RETURNS varchar(10) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/binlogQueue_getDelay.sql b/db/routines/util/functions/binlogQueue_getDelay.sql
index d6cf49377d..adbf0e98a5 100644
--- a/db/routines/util/functions/binlogQueue_getDelay.sql
+++ b/db/routines/util/functions/binlogQueue_getDelay.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`binlogQueue_getDelay`(vCode VARCHAR(255))
RETURNS BIGINT
READS SQL DATA
NOT DETERMINISTIC
diff --git a/db/routines/util/functions/capitalizeFirst.sql b/db/routines/util/functions/capitalizeFirst.sql
index 859777de20..50e5f508e2 100644
--- a/db/routines/util/functions/capitalizeFirst.sql
+++ b/db/routines/util/functions/capitalizeFirst.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`capitalizeFirst`(vString VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`capitalizeFirst`(vString VARCHAR(255))
RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/checkPrintableChars.sql b/db/routines/util/functions/checkPrintableChars.sql
index a4addce247..a327ed41df 100644
--- a/db/routines/util/functions/checkPrintableChars.sql
+++ b/db/routines/util/functions/checkPrintableChars.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`checkPrintableChars`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`checkPrintableChars`(
vString VARCHAR(255)
) RETURNS tinyint(1)
DETERMINISTIC
diff --git a/db/routines/util/functions/crypt.sql b/db/routines/util/functions/crypt.sql
index 664563cd0b..98308729e8 100644
--- a/db/routines/util/functions/crypt.sql
+++ b/db/routines/util/functions/crypt.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`crypt`(vText VARCHAR(255), vKey VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`crypt`(vText VARCHAR(255), vKey VARCHAR(255))
RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/util/functions/cryptOff.sql b/db/routines/util/functions/cryptOff.sql
index bc281e4ece..1c268f0700 100644
--- a/db/routines/util/functions/cryptOff.sql
+++ b/db/routines/util/functions/cryptOff.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`cryptOff`(vText VARCHAR(255), vKey VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`cryptOff`(vText VARCHAR(255), vKey VARCHAR(255))
RETURNS varchar(255) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
NOT DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/util/functions/dayEnd.sql b/db/routines/util/functions/dayEnd.sql
index 1da4dcfe6f..767e490d8a 100644
--- a/db/routines/util/functions/dayEnd.sql
+++ b/db/routines/util/functions/dayEnd.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`dayEnd`(vDated DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`dayEnd`(vDated DATE)
RETURNS datetime
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/firstDayOfMonth.sql b/db/routines/util/functions/firstDayOfMonth.sql
index 77971c7b86..298dba95af 100644
--- a/db/routines/util/functions/firstDayOfMonth.sql
+++ b/db/routines/util/functions/firstDayOfMonth.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`firstDayOfMonth`(vDate DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`firstDayOfMonth`(vDate DATE)
RETURNS date
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/firstDayOfYear.sql b/db/routines/util/functions/firstDayOfYear.sql
index 710c3a6884..f7a9f8dafb 100644
--- a/db/routines/util/functions/firstDayOfYear.sql
+++ b/db/routines/util/functions/firstDayOfYear.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`firstDayOfYear`(vDate DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`firstDayOfYear`(vDate DATE)
RETURNS date
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/formatRow.sql b/db/routines/util/functions/formatRow.sql
index b119df0155..b80e60e9fc 100644
--- a/db/routines/util/functions/formatRow.sql
+++ b/db/routines/util/functions/formatRow.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`formatRow`(vType CHAR(3), vValues VARCHAR(512))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`formatRow`(vType CHAR(3), vValues VARCHAR(512))
RETURNS varchar(512) CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/formatTable.sql b/db/routines/util/functions/formatTable.sql
index 00a2b50bf7..a717e8c072 100644
--- a/db/routines/util/functions/formatTable.sql
+++ b/db/routines/util/functions/formatTable.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`formatTable`(vFields VARCHAR(512), vOldValues VARCHAR(512), vNewValues VARCHAR(512))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`formatTable`(vFields VARCHAR(512), vOldValues VARCHAR(512), vNewValues VARCHAR(512))
RETURNS text CHARSET utf8mb3 COLLATE utf8mb3_unicode_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/hasDateOverlapped.sql b/db/routines/util/functions/hasDateOverlapped.sql
index 9441e201c2..ea73390e6f 100644
--- a/db/routines/util/functions/hasDateOverlapped.sql
+++ b/db/routines/util/functions/hasDateOverlapped.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`hasDateOverlapped`(vSarted1 DATE, vEnded1 DATE, vSarted2 DATE, vEnded2 DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`hasDateOverlapped`(vSarted1 DATE, vEnded1 DATE, vSarted2 DATE, vEnded2 DATE)
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/hmacSha2.sql b/db/routines/util/functions/hmacSha2.sql
index 78611c118b..cb36cac873 100644
--- a/db/routines/util/functions/hmacSha2.sql
+++ b/db/routines/util/functions/hmacSha2.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`hmacSha2`(`vAlg` SMALLINT, `vMsg` MEDIUMBLOB, `vKey` MEDIUMBLOB)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`hmacSha2`(`vAlg` SMALLINT, `vMsg` MEDIUMBLOB, `vKey` MEDIUMBLOB)
RETURNS varchar(128) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/isLeapYear.sql b/db/routines/util/functions/isLeapYear.sql
index 2c7c96f3d5..c51e98cda1 100644
--- a/db/routines/util/functions/isLeapYear.sql
+++ b/db/routines/util/functions/isLeapYear.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`isLeapYear`(vYear INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`isLeapYear`(vYear INT)
RETURNS tinyint(1)
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/json_removeNulls.sql b/db/routines/util/functions/json_removeNulls.sql
index 5fa7413809..45797e1bfa 100644
--- a/db/routines/util/functions/json_removeNulls.sql
+++ b/db/routines/util/functions/json_removeNulls.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`json_removeNulls`(vObject JSON)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`json_removeNulls`(vObject JSON)
RETURNS longtext CHARSET utf8mb4 COLLATE utf8mb4_bin
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/lang.sql b/db/routines/util/functions/lang.sql
index 3431cdcc71..e7832993dd 100644
--- a/db/routines/util/functions/lang.sql
+++ b/db/routines/util/functions/lang.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`lang`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`lang`()
RETURNS char(2) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/lastDayOfYear.sql b/db/routines/util/functions/lastDayOfYear.sql
index 52607ae218..b60fc2cc78 100644
--- a/db/routines/util/functions/lastDayOfYear.sql
+++ b/db/routines/util/functions/lastDayOfYear.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`lastDayOfYear`(vDate DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`lastDayOfYear`(vDate DATE)
RETURNS date
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/log_formatDate.sql b/db/routines/util/functions/log_formatDate.sql
index 84c2690279..0004461d13 100644
--- a/db/routines/util/functions/log_formatDate.sql
+++ b/db/routines/util/functions/log_formatDate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`log_formatDate`(vInstance JSON)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`log_formatDate`(vInstance JSON)
RETURNS longtext CHARSET utf8mb4 COLLATE utf8mb4_bin
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/midnight.sql b/db/routines/util/functions/midnight.sql
index b374156829..b36a9668c3 100644
--- a/db/routines/util/functions/midnight.sql
+++ b/db/routines/util/functions/midnight.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`midnight`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`midnight`()
RETURNS datetime
DETERMINISTIC
READS SQL DATA
diff --git a/db/routines/util/functions/mockTime.sql b/db/routines/util/functions/mockTime.sql
index ab7859e7d5..cbdac99e66 100644
--- a/db/routines/util/functions/mockTime.sql
+++ b/db/routines/util/functions/mockTime.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`mockTime`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`mockTime`()
RETURNS datetime
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/mockTimeBase.sql b/db/routines/util/functions/mockTimeBase.sql
index 7b3ea1a4ac..f1cba9e17e 100644
--- a/db/routines/util/functions/mockTimeBase.sql
+++ b/db/routines/util/functions/mockTimeBase.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`mockTimeBase`(vIsUtc BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`mockTimeBase`(vIsUtc BOOL)
RETURNS datetime
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/mockUtcTime.sql b/db/routines/util/functions/mockUtcTime.sql
index e79c3b2410..3132760ab7 100644
--- a/db/routines/util/functions/mockUtcTime.sql
+++ b/db/routines/util/functions/mockUtcTime.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`mockUtcTime`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`mockUtcTime`()
RETURNS datetime
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/nextWeek.sql b/db/routines/util/functions/nextWeek.sql
index f764201aa4..fc6abc40d2 100644
--- a/db/routines/util/functions/nextWeek.sql
+++ b/db/routines/util/functions/nextWeek.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`nextWeek`(vYearWeek INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`nextWeek`(vYearWeek INT)
RETURNS int(11)
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/notification_send.sql b/db/routines/util/functions/notification_send.sql
index 981cde2d6d..87f5ec43aa 100644
--- a/db/routines/util/functions/notification_send.sql
+++ b/db/routines/util/functions/notification_send.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`notification_send`(vNotificationName VARCHAR(255), vParams TEXT, vAuthorFk INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`notification_send`(vNotificationName VARCHAR(255), vParams TEXT, vAuthorFk INT)
RETURNS int(11)
NOT DETERMINISTIC
MODIFIES SQL DATA
diff --git a/db/routines/util/functions/quarterFirstDay.sql b/db/routines/util/functions/quarterFirstDay.sql
index b8239ffc8e..a8d4c35ada 100644
--- a/db/routines/util/functions/quarterFirstDay.sql
+++ b/db/routines/util/functions/quarterFirstDay.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`quarterFirstDay`(vYear INT, vQuarter INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`quarterFirstDay`(vYear INT, vQuarter INT)
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/quoteIdentifier.sql b/db/routines/util/functions/quoteIdentifier.sql
index 1c0c4c5436..96161b3ef8 100644
--- a/db/routines/util/functions/quoteIdentifier.sql
+++ b/db/routines/util/functions/quoteIdentifier.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`quoteIdentifier`(vString TEXT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`quoteIdentifier`(vString TEXT)
RETURNS text CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/stringXor.sql b/db/routines/util/functions/stringXor.sql
index 252cd00400..e16ca4c430 100644
--- a/db/routines/util/functions/stringXor.sql
+++ b/db/routines/util/functions/stringXor.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`stringXor`(vString MEDIUMBLOB, vConst TINYINT UNSIGNED)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`stringXor`(vString MEDIUMBLOB, vConst TINYINT UNSIGNED)
RETURNS mediumblob
DETERMINISTIC
NO SQL
diff --git a/db/routines/util/functions/today.sql b/db/routines/util/functions/today.sql
index d57b04071e..5f65fe2e14 100644
--- a/db/routines/util/functions/today.sql
+++ b/db/routines/util/functions/today.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`today`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`today`()
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/tomorrow.sql b/db/routines/util/functions/tomorrow.sql
index 71fbcf8f51..e85af114eb 100644
--- a/db/routines/util/functions/tomorrow.sql
+++ b/db/routines/util/functions/tomorrow.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`tomorrow`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`tomorrow`()
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/twoDaysAgo.sql b/db/routines/util/functions/twoDaysAgo.sql
index 2612ed6893..e00d965a47 100644
--- a/db/routines/util/functions/twoDaysAgo.sql
+++ b/db/routines/util/functions/twoDaysAgo.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`twoDaysAgo`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`twoDaysAgo`()
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/yearRelativePosition.sql b/db/routines/util/functions/yearRelativePosition.sql
index e62e50eb45..bede2d809b 100644
--- a/db/routines/util/functions/yearRelativePosition.sql
+++ b/db/routines/util/functions/yearRelativePosition.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`yearRelativePosition`(vYear INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`yearRelativePosition`(vYear INT)
RETURNS varchar(20) CHARSET utf8mb3 COLLATE utf8mb3_general_ci
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/functions/yesterday.sql b/db/routines/util/functions/yesterday.sql
index a1938ab10f..bc21a263ae 100644
--- a/db/routines/util/functions/yesterday.sql
+++ b/db/routines/util/functions/yesterday.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `util`.`yesterday`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `util`.`yesterday`()
RETURNS date
DETERMINISTIC
BEGIN
diff --git a/db/routines/util/procedures/checkHex.sql b/db/routines/util/procedures/checkHex.sql
index 3cd5452e81..8fc4003f48 100644
--- a/db/routines/util/procedures/checkHex.sql
+++ b/db/routines/util/procedures/checkHex.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`checkHex`(vParam VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`checkHex`(vParam VARCHAR(255))
BEGIN
/**
* Comprueba si vParam es un número hexadecimal que empieza por # y tiene una longitud total de 7 dígitos
diff --git a/db/routines/util/procedures/connection_kill.sql b/db/routines/util/procedures/connection_kill.sql
index b38509d1bc..3b9ea17f37 100644
--- a/db/routines/util/procedures/connection_kill.sql
+++ b/db/routines/util/procedures/connection_kill.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`connection_kill`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`connection_kill`(
vConnectionId BIGINT
)
BEGIN
diff --git a/db/routines/util/procedures/debugAdd.sql b/db/routines/util/procedures/debugAdd.sql
index a8f7b3aa2e..cf1c92606c 100644
--- a/db/routines/util/procedures/debugAdd.sql
+++ b/db/routines/util/procedures/debugAdd.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`debugAdd`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`debugAdd`(
vVariable VARCHAR(255),
vValue TEXT
)
diff --git a/db/routines/util/procedures/exec.sql b/db/routines/util/procedures/exec.sql
index ca66884a57..5fec91ec7b 100644
--- a/db/routines/util/procedures/exec.sql
+++ b/db/routines/util/procedures/exec.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`exec`(vSqlQuery TEXT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`exec`(vSqlQuery TEXT)
SQL SECURITY INVOKER
BEGIN
/**
diff --git a/db/routines/util/procedures/log_add.sql b/db/routines/util/procedures/log_add.sql
index a5b1519c43..aa0ec23881 100644
--- a/db/routines/util/procedures/log_add.sql
+++ b/db/routines/util/procedures/log_add.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`log_add`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`log_add`(
vSchema VARCHAR(45),
vEntity VARCHAR(45),
vChangedModel VARCHAR(45),
diff --git a/db/routines/util/procedures/log_addWithUser.sql b/db/routines/util/procedures/log_addWithUser.sql
index 2e20821a69..50c86ecedb 100644
--- a/db/routines/util/procedures/log_addWithUser.sql
+++ b/db/routines/util/procedures/log_addWithUser.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`log_addWithUser`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`log_addWithUser`(
vSchema VARCHAR(45),
vEntity VARCHAR(45),
vChangedModel VARCHAR(45),
diff --git a/db/routines/util/procedures/log_clean.sql b/db/routines/util/procedures/log_clean.sql
index aeed9dc442..484279b62a 100644
--- a/db/routines/util/procedures/log_clean.sql
+++ b/db/routines/util/procedures/log_clean.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`log_clean`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`log_clean`()
BEGIN
/**
* Hace limpieza de los datos de las tablas log,
diff --git a/db/routines/util/procedures/log_cleanInstances.sql b/db/routines/util/procedures/log_cleanInstances.sql
index 756a8d1f35..029b50eea4 100644
--- a/db/routines/util/procedures/log_cleanInstances.sql
+++ b/db/routines/util/procedures/log_cleanInstances.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`log_cleanInstances`(
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`log_cleanInstances`(
vActionCode VARCHAR(45),
INOUT vOldInstance JSON,
INOUT vNewInstance JSON)
diff --git a/db/routines/util/procedures/procNoOverlap.sql b/db/routines/util/procedures/procNoOverlap.sql
index 9bb2f109ea..2a00138c47 100644
--- a/db/routines/util/procedures/procNoOverlap.sql
+++ b/db/routines/util/procedures/procNoOverlap.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`procNoOverlap`(procName VARCHAR(255))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`procNoOverlap`(procName VARCHAR(255))
SQL SECURITY INVOKER
proc: BEGIN
/**
diff --git a/db/routines/util/procedures/proc_changedPrivs.sql b/db/routines/util/procedures/proc_changedPrivs.sql
index 220652d1a7..69b2125994 100644
--- a/db/routines/util/procedures/proc_changedPrivs.sql
+++ b/db/routines/util/procedures/proc_changedPrivs.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`proc_changedPrivs`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`proc_changedPrivs`()
BEGIN
SELECT s.*
FROM proc_privs s
diff --git a/db/routines/util/procedures/proc_restorePrivs.sql b/db/routines/util/procedures/proc_restorePrivs.sql
index 0d502a6db9..8e7c287c2c 100644
--- a/db/routines/util/procedures/proc_restorePrivs.sql
+++ b/db/routines/util/procedures/proc_restorePrivs.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`proc_restorePrivs`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`proc_restorePrivs`()
BEGIN
/**
* Restores the privileges saved by proc_savePrivs().
diff --git a/db/routines/util/procedures/proc_savePrivs.sql b/db/routines/util/procedures/proc_savePrivs.sql
index 75c289f7b7..25545ca699 100644
--- a/db/routines/util/procedures/proc_savePrivs.sql
+++ b/db/routines/util/procedures/proc_savePrivs.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`proc_savePrivs`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`proc_savePrivs`()
BEGIN
/**
* Saves routine privileges, used to simplify the task of keeping
diff --git a/db/routines/util/procedures/slowLog_prune.sql b/db/routines/util/procedures/slowLog_prune.sql
index d676ae3d9c..59327c1c28 100644
--- a/db/routines/util/procedures/slowLog_prune.sql
+++ b/db/routines/util/procedures/slowLog_prune.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`slowLog_prune`()
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`slowLog_prune`()
BEGIN
/**
* Prunes MySQL slow query log table deleting all records older than one week.
diff --git a/db/routines/util/procedures/throw.sql b/db/routines/util/procedures/throw.sql
index 260915e0db..b391d38804 100644
--- a/db/routines/util/procedures/throw.sql
+++ b/db/routines/util/procedures/throw.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`throw`(vMessage CHAR(55))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`throw`(vMessage CHAR(55))
BEGIN
/**
* Throws a user-defined exception.
diff --git a/db/routines/util/procedures/time_generate.sql b/db/routines/util/procedures/time_generate.sql
index 14cc1edc59..cc93cd372b 100644
--- a/db/routines/util/procedures/time_generate.sql
+++ b/db/routines/util/procedures/time_generate.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`time_generate`(vStarted DATE, vEnded DATE)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`time_generate`(vStarted DATE, vEnded DATE)
BEGIN
/**
* Generate a temporary table between the days passed as parameters
diff --git a/db/routines/util/procedures/tx_commit.sql b/db/routines/util/procedures/tx_commit.sql
index 35f96df8df..1f708c5339 100644
--- a/db/routines/util/procedures/tx_commit.sql
+++ b/db/routines/util/procedures/tx_commit.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`tx_commit`(vIsTx BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`tx_commit`(vIsTx BOOL)
BEGIN
/**
* Confirma los cambios asociados a una transacción.
diff --git a/db/routines/util/procedures/tx_rollback.sql b/db/routines/util/procedures/tx_rollback.sql
index 4b00f9ec1a..38ee77613d 100644
--- a/db/routines/util/procedures/tx_rollback.sql
+++ b/db/routines/util/procedures/tx_rollback.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`tx_rollback`(vIsTx BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`tx_rollback`(vIsTx BOOL)
BEGIN
/**
* Deshace los cambios asociados a una transacción.
diff --git a/db/routines/util/procedures/tx_start.sql b/db/routines/util/procedures/tx_start.sql
index 41f8c94eea..ac1a443d3f 100644
--- a/db/routines/util/procedures/tx_start.sql
+++ b/db/routines/util/procedures/tx_start.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`tx_start`(vIsTx BOOL)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`tx_start`(vIsTx BOOL)
BEGIN
/**
* Inicia una transacción.
diff --git a/db/routines/util/procedures/warn.sql b/db/routines/util/procedures/warn.sql
index e1dd33c9c4..92e40a83d9 100644
--- a/db/routines/util/procedures/warn.sql
+++ b/db/routines/util/procedures/warn.sql
@@ -1,5 +1,5 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `util`.`warn`(vCode CHAR(35))
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `util`.`warn`(vCode CHAR(35))
BEGIN
DECLARE w VARCHAR(1) DEFAULT '__';
SET @warn = vCode;
diff --git a/db/routines/util/views/eventLogGrouped.sql b/db/routines/util/views/eventLogGrouped.sql
index 8615458b5e..8f3c9f264b 100644
--- a/db/routines/util/views/eventLogGrouped.sql
+++ b/db/routines/util/views/eventLogGrouped.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `util`.`eventLogGrouped`
AS SELECT max(`t`.`date`) AS `lastHappened`,
diff --git a/db/routines/vn/procedures/collection_new.sql b/db/routines/vn/procedures/collection_new.sql
index 84133d36eb..42ab85dfdb 100644
--- a/db/routines/vn/procedures/collection_new.sql
+++ b/db/routines/vn/procedures/collection_new.sql
@@ -160,9 +160,11 @@ BEGIN
OR (NOT s.isPreparable AND NOT s.isPrintable)
OR pb.collectionH IS NOT NULL
OR pb.collectionV IS NOT NULL
+ OR pb.collectionA IS NOT NULL
OR pb.collectionN IS NOT NULL
- OR (NOT pb.H AND pb.V > 0 AND vItemPackingTypeFk = 'H')
+ OR (NOT pb.H AND pb.V + pb.A > 0 AND vItemPackingTypeFk = 'H')
OR (NOT pb.V AND vItemPackingTypeFk = 'V')
+ OR (NOT pb.A AND vItemPackingTypeFk = 'A')
OR (pc.isPreviousPreparationRequired AND pb.previousWithoutParking)
OR LENGTH(pb.problem)
OR pb.lines > vLinesLimit
diff --git a/db/routines/vn/procedures/item_getBalance.sql b/db/routines/vn/procedures/item_getBalance.sql
index c4974491cc..a68724eb50 100644
--- a/db/routines/vn/procedures/item_getBalance.sql
+++ b/db/routines/vn/procedures/item_getBalance.sql
@@ -30,7 +30,7 @@ BEGIN
WITH entriesIn AS (
SELECT 'entry' originType,
e.id originId,
- tr.landed shipped,
+ IFNULL(tr.availabled, tr.landed) shipped,
b.quantity `in`,
NULL `out`,
st.alertLevel ,
@@ -54,7 +54,7 @@ BEGIN
OR (util.VN_CURDATE() AND tr.isReceived),
'DELIVERED',
'FREE')
- WHERE tr.landed >= vDateInventory
+ WHERE IFNULL(tr.availabled, tr.landed) >= vDateInventory
AND tr.warehouseInFk = vWarehouseFk
AND (s.id <> vSupplierInventoryFk OR vDated IS NULL)
AND b.itemFk = vItemFk
@@ -99,7 +99,7 @@ BEGIN
),
sales AS (
WITH itemSales AS (
- SELECT DATE(t.shipped) shipped,
+ SELECT DATE(t.shipped) + INTERVAL HOUR(z.`hour`) HOUR shipped,
s.quantity,
st2.alertLevel,
st2.name,
@@ -114,6 +114,7 @@ BEGIN
cb.claimFk
FROM vn.sale s
JOIN vn.ticket t ON t.id = s.ticketFk
+ JOIN vn.`zone` z ON z.id = t.zoneFk
LEFT JOIN vn.ticketState ts ON ts.ticketFk = t.id
LEFT JOIN vn.state st ON st.code = ts.code
JOIN vn.client c ON c.id = t.clientFk
@@ -189,14 +190,15 @@ BEGIN
SELECT * FROM sales
UNION ALL
SELECT * FROM orders
- ORDER BY shipped,
+ ORDER BY DATE(shipped),
(inventorySupplierFk = entityId) DESC,
alertLevel DESC,
isTicket,
`order` DESC,
isPicked DESC,
`in` DESC,
- `out` DESC;
+ `out` DESC,
+ shipped;
IF vDated IS NULL THEN
SET @a := 0;
@@ -205,7 +207,7 @@ BEGIN
SELECT t.originType,
t.originId,
- DATE(@shipped:= t.shipped) shipped,
+ @shipped:= t.shipped shipped,
t.alertLevel,
t.stateName,
t.reference,
diff --git a/db/routines/vn/procedures/item_getLack.sql b/db/routines/vn/procedures/item_getLack.sql
index 45a6a6260b..1a54f03962 100644
--- a/db/routines/vn/procedures/item_getLack.sql
+++ b/db/routines/vn/procedures/item_getLack.sql
@@ -1,9 +1,20 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`item_getLack`(IN vForce BOOLEAN, IN vDays INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`item_getLack`(
+ vSelf INT,
+ vForce BOOLEAN,
+ vDays INT,
+ vLongname VARCHAR(255),
+ vProducerName VARCHAR(255),
+ vColor VARCHAR(255),
+ vSize INT,
+ vOrigen INT,
+ vLack INT,
+ vWarehouseFk INT
+ )
BEGIN
/**
* Calcula una tabla con el máximo negativo visible para cada producto y almacen
- *
+ *
* @param vForce Fuerza el recalculo del stock
* @param vDays Numero de dias a considerar
**/
@@ -13,33 +24,33 @@ BEGIN
CALL item_getMinETD();
CALL item_zoneClosure();
- SELECT i.id itemFk,
+ SELECT i.id itemFk,
i.longName,
w.id warehouseFk,
- p.`name` producer,
+ p.`name` producer,
i.`size`,
i.category,
- w.name warehouse,
+ w.name warehouse,
SUM(IFNULL(sub.amount,0)) lack,
i.inkFk,
IFNULL(im.timed, util.midnight()) timed,
IFNULL(izc.timed, util.midnight()) minTimed,
o.name originFk
- FROM (SELECT item_id,
- warehouse_id,
+ FROM (SELECT item_id,
+ warehouse_id,
amount
FROM cache.stock
WHERE amount > 0
UNION ALL
- SELECT itemFk,
- warehouseFk,
+ SELECT itemFk,
+ warehouseFk,
amount
FROM tmp.itemMinacum
) sub
JOIN warehouse w ON w.id = sub.warehouse_id
JOIN item i ON i.id = sub.item_id
- LEFT JOIN producer p ON p.id = i.producerFk
- JOIN itemType it ON it.id = i.typeFk
+ LEFT JOIN producer p ON p.id = i.producerFk
+ JOIN itemType it ON it.id = i.typeFk
JOIN itemCategory ic ON ic.id = it.categoryFk
LEFT JOIN tmp.itemMinETD im ON im.itemFk = i.id
LEFT JOIN tmp.itemZoneClosure izc ON izc.itemFk = i.id
@@ -47,6 +58,14 @@ BEGIN
WHERE w.isForTicket
AND ic.display
AND it.code != 'GEN'
+ AND (vSelf IS NULL OR i.id = vSelf)
+ AND (vLongname IS NULL OR i.name = vLongname)
+ AND (vProducerName IS NULL OR p.`name` LIKE CONCAT('%', vProducerName, '%'))
+ AND (vColor IS NULL OR vColor = i.inkFk)
+ AND (vSize IS NULL OR vSize = i.`size`)
+ AND (vOrigen IS NULL OR vOrigen = w.id)
+ AND (vLack IS NULL OR vLack = sub.amount)
+ AND (vWarehouseFk IS NULL OR vWarehouseFk = w.id)
GROUP BY i.id, w.id
HAVING lack < 0;
diff --git a/db/routines/vn/procedures/item_getSimilar.sql b/db/routines/vn/procedures/item_getSimilar.sql
index 336f3521e7..9a4417d84b 100644
--- a/db/routines/vn/procedures/item_getSimilar.sql
+++ b/db/routines/vn/procedures/item_getSimilar.sql
@@ -82,21 +82,26 @@ BEGIN
AND it.priority = vPriority
LEFT JOIN vn.tag t ON t.id = it.tagFk
LEFT JOIN vn.buy b ON b.id = bu.buyFk
+ LEFT JOIN vn.itemShelvingStock iss ON iss.itemFk = i.id
+ AND iss.warehouseFk = vWarehouseFk
+ LEFT JOIN vn.ink ink ON ink.id = i.tag5
JOIN itemTags its
WHERE a.available > 0
AND (i.typeFk = its.typeFk OR NOT vShowType)
AND i.id <> vSelf
- ORDER BY `counter` DESC,
- (t.name = its.name) DESC,
- (it.value = its.value) DESC,
- (i.tag5 = its.tag5) DESC,
- match5 DESC,
- (i.tag6 = its.tag6) DESC,
- match6 DESC,
- (i.tag7 = its.tag7) DESC,
- match7 DESC,
- (i.tag8 = its.tag8) DESC,
- match8 DESC
+ ORDER BY (a.available > 0) DESC,
+ `counter` DESC,
+ (t.name = its.name) DESC,
+ (it.value = its.value) DESC,
+ (i.tag5 = its.tag5) DESC,
+ (ink.`showOrder`) DESC,
+ match5 DESC,
+ (i.tag6 = its.tag6) DESC,
+ match6 DESC,
+ (i.tag7 = its.tag7) DESC,
+ match7 DESC,
+ (i.tag8 = its.tag8) DESC,
+ match8 DESC
LIMIT 100;
DROP TEMPORARY TABLE tmp.buyUltimate;
diff --git a/db/routines/vn/procedures/item_getStock.sql b/db/routines/vn/procedures/item_getStock.sql
index cd5bc4bdc6..4639521857 100644
--- a/db/routines/vn/procedures/item_getStock.sql
+++ b/db/routines/vn/procedures/item_getStock.sql
@@ -35,8 +35,8 @@ BEGIN
SELECT iei.itemFk, iei.quantity
FROM itemEntryIn iei
JOIN item i ON i.id = iei.itemFk
- WHERE iei.landed >= util.VN_CURDATE()
- AND iei.landed < vDated
+ WHERE IFNULL(iei.availabled, iei.landed) >= util.VN_CURDATE()
+ AND IFNULL(iei.availabled, iei.landed) < vDated
AND iei.warehouseInFk = vWarehouseFk
AND (vItemFk IS NULL OR iei.itemFk = vItemFk)
UNION ALL
diff --git a/db/routines/vn/procedures/productionControl.sql b/db/routines/vn/procedures/productionControl.sql
index 98bc165920..1af89b3305 100644
--- a/db/routines/vn/procedures/productionControl.sql
+++ b/db/routines/vn/procedures/productionControl.sql
@@ -72,7 +72,7 @@ proc: BEGIN
IF(tpr.isFreezed, ' CONGELADO',''),
IF(tpr.hasHighRisk, ' RIESGO',''),
IF(tpr.hasTicketRequest, ' COD 100',''),
- IF(tpr.isTaxDataChecked, '',' FICHA INCOMPLETA'),
+ IF(tpr.isTaxDataChecked, ' FICHA INCOMPLETA', ''),
IF(tpr.hasComponentLack, ' COMPONENTES', ''),
IF(HOUR(util.VN_NOW()) < IF(HOUR(t.shipped), HOUR(t.shipped), COALESCE(HOUR(zc.hour),HOUR(z.hour)))
AND tpr.isTooLittle, ' PEQUEÑO', '')
@@ -91,6 +91,7 @@ proc: BEGIN
pk.code parking,
0 H,
0 V,
+ 0 A,
0 N,
st.isOk,
ag.isOwn,
@@ -138,6 +139,7 @@ proc: BEGIN
CHANGE COLUMN `problem` `problem` VARCHAR(255),
ADD COLUMN `collectionH` INT,
ADD COLUMN `collectionV` INT,
+ ADD COLUMN `collectionA` INT,
ADD COLUMN `collectionN` INT;
-- Clientes Nuevos o Recuperados
@@ -178,12 +180,14 @@ proc: BEGIN
ENGINE = MEMORY
SELECT ticketFk,
SUM(sub.H) H,
- SUM(sub.V) V,
+ SUM(sub.V) V,
+ SUM(sub.A) A,
SUM(sub.N) N
FROM (
SELECT t.ticketFk,
SUM(i.itemPackingTypeFk = 'H') H,
SUM(i.itemPackingTypeFk = 'V') V,
+ SUM(i.itemPackingTypeFk = 'A') A,
SUM(i.itemPackingTypeFk IS NULL) N
FROM tmp.productionTicket t
JOIN sale s ON s.ticketFk = t.ticketFk
@@ -196,6 +200,7 @@ proc: BEGIN
JOIN tItemPackingType ti ON ti.ticketFk = pb.ticketFk
SET pb.H = ti.H,
pb.V = ti.V,
+ pb.A = ti.A,
pb.N = ti.N;
-- Colecciones segun tipo de encajado
@@ -203,6 +208,7 @@ proc: BEGIN
JOIN ticketCollection tc ON pb.ticketFk = tc.ticketFk
SET pb.collectionH = IF(pb.H, tc.collectionFk, NULL),
pb.collectionV = IF(pb.V, tc.collectionFk, NULL),
+ pb.collectionA = IF(pb.A, tc.collectionFk, NULL),
pb.collectionN = IF(pb.N, tc.collectionFk, NULL);
-- Previa pendiente
diff --git a/db/routines/vn/procedures/sale_replaceItem.sql b/db/routines/vn/procedures/sale_replaceItem.sql
index a61d260cc0..b2b30092b4 100644
--- a/db/routines/vn/procedures/sale_replaceItem.sql
+++ b/db/routines/vn/procedures/sale_replaceItem.sql
@@ -25,9 +25,11 @@ BEGIN
DECLARE vNewSaleFk INT;
DECLARE vFinalPrice DECIMAL(10,2);
+
+ DECLARE vIsRequiredTx BOOL DEFAULT NOT @@in_transaction;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
- ROLLBACK;
+ CALL util.tx_rollback(vIsRequiredTx);
RESIGNAL;
END;
@@ -62,7 +64,7 @@ BEGIN
WHERE tmp.itemFk = vNewItemFk AND tmp.WarehouseFk = vWarehouseFk;
DROP TEMPORARY TABLE tmp.buyUltimate;
-
+
IF vGroupingMode = 'packing' AND vPacking > 0 THEN
SET vRoundQuantity = vPacking;
END IF;
@@ -129,6 +131,6 @@ BEGIN
VALUES(vItemFk, vNewItemFk, 1)
ON DUPLICATE KEY UPDATE counter = counter + 1;
- COMMIT;
+ CALL util.tx_commit(vIsRequiredTx);
END$$
DELIMITER ;
diff --git a/db/routines/vn/procedures/ticket_close.sql b/db/routines/vn/procedures/ticket_close.sql
index e2dcef9a5a..c298021a52 100644
--- a/db/routines/vn/procedures/ticket_close.sql
+++ b/db/routines/vn/procedures/ticket_close.sql
@@ -9,15 +9,12 @@ BEGIN
*/
DECLARE vDone BOOL;
DECLARE vClientFk INT;
- DECLARE vCurTicketFk INT;
- DECLARE vIsTaxDataChecked BOOL;
- DECLARE vCompanyFk INT;
- DECLARE vShipped DATE;
+ DECLARE vCurTicketFk INT;
DECLARE vNewInvoiceId INT;
DECLARE vHasDailyInvoice BOOL;
DECLARE vWithPackage BOOL;
- DECLARE vHasToInvoice BOOL;
- DECLARE vSerial VARCHAR(2);
+ DECLARE vHasToInvoice BOOL;
+ DECLARE vStateCode VARCHAR(45);
DECLARE cur CURSOR FOR
SELECT ticketFk FROM tmp.ticket_close;
@@ -38,18 +35,11 @@ BEGIN
LEAVE proc;
END IF;
- SELECT
- c.id,
- c.isTaxDataChecked,
- t.companyFk,
- t.shipped,
+ SELECT c.id,
c.hasDailyInvoice,
w.isManaged,
c.hasToInvoice
INTO vClientFk,
- vIsTaxDataChecked,
- vCompanyFk,
- vShipped,
vHasDailyInvoice,
vWithPackage,
vHasToInvoice
@@ -59,7 +49,7 @@ BEGIN
WHERE t.id = vCurTicketFk;
INSERT INTO ticketPackaging (ticketFk, packagingFk, quantity)
- (SELECT vCurTicketFk, p.id, COUNT(*)
+ SELECT vCurTicketFk, p.id, COUNT(*)
FROM expedition e
JOIN packaging p ON p.id = e.packagingFk
JOIN ticket t ON t.id = e.ticketFk
@@ -68,39 +58,35 @@ BEGIN
WHERE e.ticketFk = vCurTicketFk AND p.isPackageReturnable
AND vWithPackage
AND NOT dm.`code`= 'PICKUP'
- GROUP BY p.itemFk);
+ GROUP BY p.itemFk;
-- No retornables o no catalogados
- INSERT INTO sale (itemFk, ticketFk, concept, quantity, price, isPriceFixed)
- (SELECT e.freightItemFk, vCurTicketFk, i.name, COUNT(*) AS amount, getSpecialPrice(e.freightItemFk, vClientFk), 1
+ INSERT INTO sale (
+ itemFk,
+ ticketFk,
+ concept,
+ quantity,
+ price, isPriceFixed
+ )SELECT e.freightItemFk,
+ vCurTicketFk,
+ i.name,
+ COUNT(*) amount,
+ getSpecialPrice(e.freightItemFk, vClientFk),
+ TRUE
FROM expedition e
JOIN item i ON i.id = e.freightItemFk
LEFT JOIN packaging p ON p.itemFk = i.id
- WHERE e.ticketFk = vCurTicketFk AND IFNULL(p.isPackageReturnable, 0) = 0
+ WHERE e.ticketFk = vCurTicketFk
+ AND (p.isPackageReturnable = 0 OR p.isPackageReturnable IS NULL)
AND getSpecialPrice(e.freightItemFk, vClientFk) > 0
- GROUP BY e.freightItemFk);
+ GROUP BY e.freightItemFk;
- IF(vHasDailyInvoice) AND vHasToInvoice THEN
- SELECT invoiceSerial(vClientFk, vCompanyFk, 'quick') INTO vSerial;
- IF vSerial IS NULL THEN
- CALL util.throw('Cannot booking without a serial');
- END IF;
-
- CALL ticket_setState(vCurTicketFk, 'DELIVERED');
-
- IF vIsTaxDataChecked THEN
- CALL invoiceOut_newFromClient(
- vClientFk,
- vSerial,
- vShipped,
- vCompanyFk,
- NULL,
- NULL,
- vNewInvoiceId);
- END IF;
+ IF vHasDailyInvoice AND vHasToInvoice THEN
+ SET vStateCode = 'DELIVERED';
ELSE
- CALL ticket_setState(vCurTicketFk, (SELECT vn.getAlert3State(vCurTicketFk)));
+ SELECT getAlert3State(vCurTicketFk) INTO vStateCode;
END IF;
+ CALL ticket_setState(vCurTicketFk, vStateCode);
END LOOP;
CLOSE cur;
diff --git a/db/routines/vn/procedures/ticket_doCmr.sql b/db/routines/vn/procedures/ticket_doCmr.sql
index c53cf1221f..2c3f2f1dbd 100644
--- a/db/routines/vn/procedures/ticket_doCmr.sql
+++ b/db/routines/vn/procedures/ticket_doCmr.sql
@@ -1,5 +1,7 @@
DELIMITER $$
-CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_doCmr`(vSelf INT)
+CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_doCmr`(
+ vSelf INT
+)
BEGIN
/**
* Crea u actualiza la información del CMR asociado con
@@ -19,6 +21,7 @@ BEGIN
a.id addressFk,
c2.defaultAddressFk,
IFNULL(sat.supplierFk, su.id) supplierFk,
+ t.packages,
t.landed
FROM ticket t
JOIN client c ON c.id = t.clientFk
@@ -52,9 +55,10 @@ BEGIN
c.addressToFk = t.addressFk,
c.addressFromFk = t.defaultAddressFk,
c.supplierFk = t.supplierFk,
+ c.packagesList = t.packages,
c.ead = t.landed
WHERE id = vCmrFk;
- ELSE
+ ELSE
INSERT INTO cmr (
senderInstruccions,
truckPlate,
@@ -62,6 +66,7 @@ BEGIN
addressToFk,
addressFromFk,
supplierFk,
+ packagesList,
ead
)
SELECT * FROM tTicket;
diff --git a/db/routines/vn/procedures/ticket_setState.sql b/db/routines/vn/procedures/ticket_setState.sql
index f4906fb115..918b830abb 100644
--- a/db/routines/vn/procedures/ticket_setState.sql
+++ b/db/routines/vn/procedures/ticket_setState.sql
@@ -3,54 +3,61 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`ticket_setState`(
vSelf INT,
vStateCode VARCHAR(255) COLLATE utf8_general_ci
)
-BEGIN
+proc:BEGIN
/**
* Modifica el estado de un ticket si se cumplen las condiciones necesarias.
*
* @param vSelf el id del ticket
* @param vStateCode estado a modificar del ticket
*/
- DECLARE vticketAlertLevel INT;
- DECLARE vTicketStateCode VARCHAR(255);
+ DECLARE vTicketAlertLevel INT;
+ DECLARE vTicketStateCode VARCHAR(255) COLLATE utf8_general_ci;
DECLARE vCanChangeState BOOL;
DECLARE vPackedAlertLevel INT;
DECLARE vZoneFk INT;
+ DECLARE vOldWorkerFk INT;
+ DECLARE vNewWorkerFk INT;
- SELECT s.alertLevel, s.`code`, t.zoneFk
- INTO vticketAlertLevel, vTicketStateCode, vZoneFk
+ SET vNewWorkerFk = account.myUser_getId();
+
+ SELECT s.alertLevel, s.`code`, t.zoneFk, tt.userFk
+ INTO vTicketAlertLevel, vTicketStateCode, vZoneFk, vOldWorkerFk
FROM state s
JOIN ticketTracking tt ON tt.stateFk = s.id
JOIN ticket t ON t.id = tt.ticketFk
WHERE tt.ticketFk = vSelf
- ORDER BY tt.created DESC
+ ORDER BY tt.created DESC, tt.id DESC
LIMIT 1;
- SELECT id INTO vPackedAlertLevel FROM alertLevel WHERE code = 'PACKED';
+ SELECT id INTO vPackedAlertLevel FROM alertLevel WHERE code = 'PACKED';
IF vStateCode = 'OK' AND vZoneFk IS NULL THEN
CALL util.throw('ASSIGN_ZONE_FIRST');
END IF;
SET vCanChangeState = ((
- vStateCode <> 'ON_CHECKING' AND vStateCode <> 'CHECKED') OR
- vticketAlertLevel < vPackedAlertLevel
- )AND NOT (
+ vStateCode <> 'ON_CHECKING' AND vStateCode <> 'CHECKED') OR
+ vTicketAlertLevel < vPackedAlertLevel
+ ) AND NOT (
vTicketStateCode IN ('CHECKED', 'CHECKING')
AND vStateCode IN ('PREPARED', 'ON_PREPARATION')
);
IF vCanChangeState THEN
- INSERT INTO ticketTracking (stateFk, ticketFk, userFk)
- SELECT id, vSelf, account.myUser_getId()
- FROM state
- WHERE `code` = vStateCode COLLATE utf8_unicode_ci;
-
IF vStateCode = 'PACKED' THEN
CALL ticket_doCmr(vSelf);
END IF;
+
+ IF vStateCode = vTicketStateCode AND vOldWorkerFk = vNewWorkerFk THEN
+ LEAVE proc;
+ END IF;
+
+ INSERT INTO ticketTracking (stateFk, ticketFk, userFk, created)
+ SELECT id, vSelf, vNewWorkerFk, util.VN_NOW()
+ FROM state
+ WHERE `code` = vStateCode COLLATE utf8_unicode_ci;
ELSE
CALL util.throw('INCORRECT_TICKET_STATE');
END IF;
-
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/claim_beforeInsert.sql b/db/routines/vn/triggers/claim_beforeInsert.sql
index dc3ef8c7a2..25d103c4cf 100644
--- a/db/routines/vn/triggers/claim_beforeInsert.sql
+++ b/db/routines/vn/triggers/claim_beforeInsert.sql
@@ -4,5 +4,9 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`claim_beforeInsert`
FOR EACH ROW
BEGIN
SET NEW.editorFk = account.myUser_getId();
+
+ IF (SELECT shipped FROM ticket WHERE id = NEW.ticketFk) > util.VN_NOW() THEN
+ CALL util.throw('Future ticket date not allowed');
+ END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql b/db/routines/vn/triggers/roadmapStop_beforeDelete.sql
deleted file mode 100644
index f0faeb8bef..0000000000
--- a/db/routines/vn/triggers/roadmapStop_beforeDelete.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeDelete`
- BEFORE DELETE ON `roadmapStop`
- FOR EACH ROW
-BEGIN
- DECLARE vMaxEta DATETIME;
- DECLARE vRoadmapEta DATETIME;
-
- IF OLD.roadmapFk IS NOT NULL THEN
- SELECT MAX(eta) INTO vMaxEta
- FROM roadmapStop
- WHERE roadmapFk = OLD.roadmapFk
- AND id <> OLD.id;
-
- SELECT eta INTO vRoadmapEta
- FROM roadmap
- WHERE id = OLD.roadmapFk;
-
- IF vMaxEta <> vRoadmapEta OR vMaxEta IS NULL THEN
- UPDATE roadmap
- SET eta = vMaxEta
- WHERE id = OLD.roadmapFk;
- END IF;
- END IF;
-END$$
-DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql
index 012702f3ed..2c2a03d866 100644
--- a/db/routines/vn/triggers/roadmapStop_beforeInsert.sql
+++ b/db/routines/vn/triggers/roadmapStop_beforeInsert.sql
@@ -3,8 +3,6 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeInser
BEFORE INSERT ON `roadmapStop`
FOR EACH ROW
BEGIN
- DECLARE vRoadmapEta DATETIME;
-
SET NEW.editorFk = account.myUser_getId();
IF NEW.description IS NOT NULL THEN
@@ -16,17 +14,5 @@ BEGIN
CALL util.throw('Departure time can not be after arrival time');
END IF;
END IF;
-
- IF NEW.roadmapFk IS NOT NULL AND NEW.eta IS NOT NULL THEN
- SELECT eta INTO vRoadmapEta
- FROM roadmap
- WHERE id = NEW.roadmapFk;
-
- IF vRoadmapEta < NEW.eta OR vRoadmapEta IS NULL THEN
- UPDATE roadmap
- SET eta = NEW.eta
- WHERE id = NEW.roadmapFk;
- END IF;
- END IF;
END$$
DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql
index c3142c8acc..9115b972a0 100644
--- a/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql
+++ b/db/routines/vn/triggers/roadmapStop_beforeUpdate.sql
@@ -3,40 +3,17 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmapStop_beforeUpdat
BEFORE UPDATE ON `roadmapStop`
FOR EACH ROW
BEGIN
- DECLARE vMaxEta DATETIME;
- DECLARE vCurrentEta DATETIME;
-
SET NEW.editorFk = account.myUser_getId();
IF NOT (NEW.description <=> OLD.description) THEN
SET NEW.description = UCASE(NEW.description);
END IF;
- IF (NOT (NEW.roadmapFk <=> OLD.roadmapFk) AND NEW.roadmapFk IS NOT NULL)
- OR (NOT (NEW.eta <=> OLD.eta)) THEN
+ IF NOT (NEW.roadmapFk <=> OLD.roadmapFk) OR NOT (NEW.eta <=> OLD.eta) THEN
IF NEW.eta < (SELECT etd FROM roadmap WHERE id = NEW.roadmapFk) THEN
CALL util.throw('Departure time can not be after arrival time');
END IF;
-
- SELECT MAX(eta) INTO vMaxEta
- FROM roadmapStop
- WHERE roadmapFk = NEW.roadmapFk
- AND id <> OLD.id;
-
- IF vMaxEta < NEW.eta OR vMaxEta IS NULL THEN
- SET vMaxEta = NEW.eta;
- END IF;
-
- SELECT eta INTO vCurrentEta
- FROM roadmap
- WHERE id = NEW.roadmapFk;
-
- IF (vMaxEta <> vCurrentEta OR vMaxEta IS NULL) OR vMaxEta IS NOT NULL THEN
- UPDATE roadmap
- SET eta = vMaxEta
- WHERE id = NEW.roadmapFk;
- END IF;
END IF;
END$$
-DELIMITER ;
+DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/vn/triggers/roadmap_afterUpdate.sql b/db/routines/vn/triggers/roadmap_afterUpdate.sql
deleted file mode 100644
index 7fcc31d922..0000000000
--- a/db/routines/vn/triggers/roadmap_afterUpdate.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-DELIMITER $$
-CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_afterUpdate`
- AFTER UPDATE ON `roadmap`
- FOR EACH ROW
-BEGIN
- DECLARE vSeconds INT;
-
- IF NOT (NEW.etd <=> OLD.etd) THEN
- SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd));
- IF vSeconds IS NOT NULL AND vSeconds <> 0 THEN
- UPDATE roadmapStop
- SET eta = eta + INTERVAL vSeconds SECOND
- WHERE roadmapFk = NEW.id;
- END IF;
- END IF;
-END$$
-DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/vn/triggers/roadmap_beforeUpdate.sql b/db/routines/vn/triggers/roadmap_beforeUpdate.sql
index 4f355915bc..ff6957f0c0 100644
--- a/db/routines/vn/triggers/roadmap_beforeUpdate.sql
+++ b/db/routines/vn/triggers/roadmap_beforeUpdate.sql
@@ -3,6 +3,8 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate`
BEFORE UPDATE ON `roadmap`
FOR EACH ROW
BEGIN
+ DECLARE vSeconds INT;
+
SET NEW.editorFk = account.myUser_getId();
IF NOT (NEW.name <=> OLD.name) THEN
@@ -37,5 +39,15 @@ BEGIN
FROM worker w
WHERE w.id = NEW.driverChangeFk);
END IF;
+
+ IF NOT (NEW.etd <=> OLD.etd) THEN
+ SET vSeconds = TIME_TO_SEC(TIMEDIFF(NEW.etd, OLD.etd));
+
+ IF vSeconds <> 0 THEN
+ UPDATE roadmapStop
+ SET eta = eta + INTERVAL vSeconds SECOND
+ WHERE roadmapFk = NEW.id;
+ END IF;
+ END IF;
END$$
DELIMITER ;
\ No newline at end of file
diff --git a/db/routines/vn/triggers/zone_beforeInsert.sql b/db/routines/vn/triggers/zone_beforeInsert.sql
index c87e548d99..34423ff67d 100644
--- a/db/routines/vn/triggers/zone_beforeInsert.sql
+++ b/db/routines/vn/triggers/zone_beforeInsert.sql
@@ -4,5 +4,9 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`zone_beforeInsert`
FOR EACH ROW
BEGIN
SET NEW.editorFk = account.myUser_getId();
+
+ IF NEW.priceOptimum = 0 THEN
+ SET NEW.priceOptimum = NEW.price;
+ END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/triggers/zone_beforeUpdate.sql b/db/routines/vn/triggers/zone_beforeUpdate.sql
index fe017ce6ac..0136f8fab1 100644
--- a/db/routines/vn/triggers/zone_beforeUpdate.sql
+++ b/db/routines/vn/triggers/zone_beforeUpdate.sql
@@ -4,5 +4,9 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`zone_beforeUpdate`
FOR EACH ROW
BEGIN
SET NEW.editorFk = account.myUser_getId();
+
+ IF NEW.priceOptimum = 0 THEN
+ CALL util.throw('The priceOptimum cannot be 0');
+ END IF;
END$$
DELIMITER ;
diff --git a/db/routines/vn/views/expeditionTruck.sql b/db/routines/vn/views/expeditionTruck.sql
index a5e0cf3502..8a3521fde7 100644
--- a/db/routines/vn/views/expeditionTruck.sql
+++ b/db/routines/vn/views/expeditionTruck.sql
@@ -7,5 +7,5 @@ AS SELECT `rs`.`id` AS `id`,
`rs`.`description` AS `description`,
`rs`.`bufferFk` AS `bufferFk`,
`rs`.`created` AS `created`,
- `rs`.`userFk` AS `userFk`
+ `rs`.`editorFk` AS `userFk`
FROM `vn`.`roadmapStop` `rs`;
diff --git a/db/routines/vn/views/roadmapEta.sql b/db/routines/vn/views/roadmapEta.sql
new file mode 100644
index 0000000000..dcf2afaf8a
--- /dev/null
+++ b/db/routines/vn/views/roadmapEta.sql
@@ -0,0 +1,8 @@
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
+ SQL SECURITY DEFINER
+ VIEW `vn`.`roadmapEta`
+AS SELECT `roadmapFk` AS id,
+ MAX(`eta`) AS `eta`
+FROM `vn`.`roadmapStop`
+WHERE `roadmapFk` IS NOT NULL
+GROUP BY `roadmapFk`;
\ No newline at end of file
diff --git a/db/routines/vn2008/views/Agencias.sql b/db/routines/vn2008/views/Agencias.sql
index 1176d02c41..ae5a9e5103 100644
--- a/db/routines/vn2008/views/Agencias.sql
+++ b/db/routines/vn2008/views/Agencias.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Agencias`
AS SELECT `am`.`id` AS `Id_Agencia`,
diff --git a/db/routines/vn2008/views/Articles.sql b/db/routines/vn2008/views/Articles.sql
index 87f1b6d5ef..dd6b3a1963 100644
--- a/db/routines/vn2008/views/Articles.sql
+++ b/db/routines/vn2008/views/Articles.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Articles`
AS SELECT `i`.`id` AS `Id_Article`,
diff --git a/db/routines/vn2008/views/Bancos.sql b/db/routines/vn2008/views/Bancos.sql
index 6e850f365a..7f8d289f9f 100644
--- a/db/routines/vn2008/views/Bancos.sql
+++ b/db/routines/vn2008/views/Bancos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Bancos`
AS SELECT `a`.`id` AS `Id_Banco`,
diff --git a/db/routines/vn2008/views/Bancos_poliza.sql b/db/routines/vn2008/views/Bancos_poliza.sql
index 4cd443545b..915f6a64d9 100644
--- a/db/routines/vn2008/views/Bancos_poliza.sql
+++ b/db/routines/vn2008/views/Bancos_poliza.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Bancos_poliza`
AS SELECT `bp`.`id` AS `poliza_id`,
diff --git a/db/routines/vn2008/views/Cajas.sql b/db/routines/vn2008/views/Cajas.sql
index 54b9ee1892..59b96a1cc1 100644
--- a/db/routines/vn2008/views/Cajas.sql
+++ b/db/routines/vn2008/views/Cajas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Cajas`
AS SELECT `t`.`id` AS `Id_Caja`,
diff --git a/db/routines/vn2008/views/Clientes.sql b/db/routines/vn2008/views/Clientes.sql
index 6c37dd9f0a..a74a67191f 100644
--- a/db/routines/vn2008/views/Clientes.sql
+++ b/db/routines/vn2008/views/Clientes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Clientes`
AS SELECT `c`.`id` AS `id_cliente`,
diff --git a/db/routines/vn2008/views/Comparativa.sql b/db/routines/vn2008/views/Comparativa.sql
index 875a5c370e..92e8adf1fe 100644
--- a/db/routines/vn2008/views/Comparativa.sql
+++ b/db/routines/vn2008/views/Comparativa.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Comparativa`
AS SELECT `c`.`timePeriod` AS `Periodo`,
diff --git a/db/routines/vn2008/views/Compres.sql b/db/routines/vn2008/views/Compres.sql
index b99dd2b73c..786aef3cba 100644
--- a/db/routines/vn2008/views/Compres.sql
+++ b/db/routines/vn2008/views/Compres.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Compres`
AS SELECT `c`.`id` AS `Id_Compra`,
diff --git a/db/routines/vn2008/views/Consignatarios.sql b/db/routines/vn2008/views/Consignatarios.sql
index 13a426f4da..df7d07fb3c 100644
--- a/db/routines/vn2008/views/Consignatarios.sql
+++ b/db/routines/vn2008/views/Consignatarios.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Consignatarios`
AS SELECT `a`.`id` AS `id_consigna`,
diff --git a/db/routines/vn2008/views/Cubos.sql b/db/routines/vn2008/views/Cubos.sql
index 7ca82e66e8..c09376595e 100644
--- a/db/routines/vn2008/views/Cubos.sql
+++ b/db/routines/vn2008/views/Cubos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Cubos`
AS SELECT `p`.`id` AS `Id_Cubo`,
diff --git a/db/routines/vn2008/views/Cubos_Retorno.sql b/db/routines/vn2008/views/Cubos_Retorno.sql
index bc56f275b0..152d72c99a 100644
--- a/db/routines/vn2008/views/Cubos_Retorno.sql
+++ b/db/routines/vn2008/views/Cubos_Retorno.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Cubos_Retorno`
AS SELECT `rb`.`id` AS `idCubos_Retorno`,
diff --git a/db/routines/vn2008/views/Entradas.sql b/db/routines/vn2008/views/Entradas.sql
index 78b73bb246..b6a029e57f 100644
--- a/db/routines/vn2008/views/Entradas.sql
+++ b/db/routines/vn2008/views/Entradas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Entradas`
AS SELECT `e`.`id` AS `Id_Entrada`,
diff --git a/db/routines/vn2008/views/Entradas_orden.sql b/db/routines/vn2008/views/Entradas_orden.sql
index 66f46a929b..ddc2948486 100644
--- a/db/routines/vn2008/views/Entradas_orden.sql
+++ b/db/routines/vn2008/views/Entradas_orden.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Entradas_orden`
AS SELECT `eo`.`entryFk` AS `Id_Entrada`,
diff --git a/db/routines/vn2008/views/Impresoras.sql b/db/routines/vn2008/views/Impresoras.sql
index c4782ab72a..76118af1e1 100644
--- a/db/routines/vn2008/views/Impresoras.sql
+++ b/db/routines/vn2008/views/Impresoras.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Impresoras`
AS SELECT `vn`.`printer`.`id` AS `Id_impresora`,
diff --git a/db/routines/vn2008/views/Monedas.sql b/db/routines/vn2008/views/Monedas.sql
index 3693885be2..88a2cf495a 100644
--- a/db/routines/vn2008/views/Monedas.sql
+++ b/db/routines/vn2008/views/Monedas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Monedas`
AS SELECT `c`.`id` AS `Id_Moneda`,
diff --git a/db/routines/vn2008/views/Movimientos.sql b/db/routines/vn2008/views/Movimientos.sql
index da41c51bb5..458ae4d48d 100644
--- a/db/routines/vn2008/views/Movimientos.sql
+++ b/db/routines/vn2008/views/Movimientos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Movimientos`
AS SELECT `m`.`id` AS `Id_Movimiento`,
diff --git a/db/routines/vn2008/views/Movimientos_componentes.sql b/db/routines/vn2008/views/Movimientos_componentes.sql
index 440fbfb6af..a88e5f7d1b 100644
--- a/db/routines/vn2008/views/Movimientos_componentes.sql
+++ b/db/routines/vn2008/views/Movimientos_componentes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Movimientos_componentes`
AS SELECT `sc`.`saleFk` AS `Id_Movimiento`,
diff --git a/db/routines/vn2008/views/Movimientos_mark.sql b/db/routines/vn2008/views/Movimientos_mark.sql
index 10ef2fc086..cc42e565e8 100644
--- a/db/routines/vn2008/views/Movimientos_mark.sql
+++ b/db/routines/vn2008/views/Movimientos_mark.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Movimientos_mark`
AS SELECT `mm`.`saleFk` AS `Id_Movimiento`,
diff --git a/db/routines/vn2008/views/Ordenes.sql b/db/routines/vn2008/views/Ordenes.sql
index de31f8f99c..a8266ab98f 100644
--- a/db/routines/vn2008/views/Ordenes.sql
+++ b/db/routines/vn2008/views/Ordenes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Ordenes`
AS SELECT `tr`.`id` AS `Id_ORDEN`,
diff --git a/db/routines/vn2008/views/Origen.sql b/db/routines/vn2008/views/Origen.sql
index 5bb1d9b7fa..58658a1af7 100644
--- a/db/routines/vn2008/views/Origen.sql
+++ b/db/routines/vn2008/views/Origen.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Origen`
AS SELECT `o`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/Paises.sql b/db/routines/vn2008/views/Paises.sql
index 99d2835f06..72636de442 100644
--- a/db/routines/vn2008/views/Paises.sql
+++ b/db/routines/vn2008/views/Paises.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Paises`
AS SELECT `c`.`id` AS `Id`,
diff --git a/db/routines/vn2008/views/PreciosEspeciales.sql b/db/routines/vn2008/views/PreciosEspeciales.sql
index cea9f87fd8..a175035330 100644
--- a/db/routines/vn2008/views/PreciosEspeciales.sql
+++ b/db/routines/vn2008/views/PreciosEspeciales.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`PreciosEspeciales`
AS SELECT `sp`.`id` AS `Id_PrecioEspecial`,
diff --git a/db/routines/vn2008/views/Proveedores.sql b/db/routines/vn2008/views/Proveedores.sql
index 203d4295f3..293732d236 100644
--- a/db/routines/vn2008/views/Proveedores.sql
+++ b/db/routines/vn2008/views/Proveedores.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Proveedores`
AS SELECT `s`.`id` AS `Id_Proveedor`,
diff --git a/db/routines/vn2008/views/Proveedores_cargueras.sql b/db/routines/vn2008/views/Proveedores_cargueras.sql
index c1dc6ad236..4ff9bd6278 100644
--- a/db/routines/vn2008/views/Proveedores_cargueras.sql
+++ b/db/routines/vn2008/views/Proveedores_cargueras.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Proveedores_cargueras`
AS SELECT `fs`.`supplierFk` AS `Id_Proveedor`
diff --git a/db/routines/vn2008/views/Proveedores_gestdoc.sql b/db/routines/vn2008/views/Proveedores_gestdoc.sql
index c25623b8b0..1a27f7a7db 100644
--- a/db/routines/vn2008/views/Proveedores_gestdoc.sql
+++ b/db/routines/vn2008/views/Proveedores_gestdoc.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Proveedores_gestdoc`
AS SELECT `sd`.`supplierFk` AS `Id_Proveedor`,
diff --git a/db/routines/vn2008/views/Recibos.sql b/db/routines/vn2008/views/Recibos.sql
index 93ec7bc6fe..8b710cb230 100644
--- a/db/routines/vn2008/views/Recibos.sql
+++ b/db/routines/vn2008/views/Recibos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Recibos`
AS SELECT `r`.`Id` AS `Id`,
diff --git a/db/routines/vn2008/views/Remesas.sql b/db/routines/vn2008/views/Remesas.sql
index 9e8c18ada6..2986ec6f25 100644
--- a/db/routines/vn2008/views/Remesas.sql
+++ b/db/routines/vn2008/views/Remesas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Remesas`
AS SELECT `r`.`id` AS `Id_Remesa`,
diff --git a/db/routines/vn2008/views/Rutas.sql b/db/routines/vn2008/views/Rutas.sql
index c8ade24e94..eabfbfd724 100644
--- a/db/routines/vn2008/views/Rutas.sql
+++ b/db/routines/vn2008/views/Rutas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Rutas`
AS SELECT `r`.`id` AS `Id_Ruta`,
diff --git a/db/routines/vn2008/views/Split.sql b/db/routines/vn2008/views/Split.sql
index eec90a5f8e..812cec8fe1 100644
--- a/db/routines/vn2008/views/Split.sql
+++ b/db/routines/vn2008/views/Split.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Splits`
AS SELECT `s`.`id` AS `Id_Split`,
diff --git a/db/routines/vn2008/views/Tickets.sql b/db/routines/vn2008/views/Tickets.sql
index 59dcb91006..18646dbaba 100644
--- a/db/routines/vn2008/views/Tickets.sql
+++ b/db/routines/vn2008/views/Tickets.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Tickets`
AS SELECT `t`.`id` AS `Id_Ticket`,
diff --git a/db/routines/vn2008/views/Tickets_state.sql b/db/routines/vn2008/views/Tickets_state.sql
index be59a750f3..fbbc00170f 100644
--- a/db/routines/vn2008/views/Tickets_state.sql
+++ b/db/routines/vn2008/views/Tickets_state.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Tickets_state`
AS SELECT `t`.`ticketFk` AS `Id_Ticket`,
diff --git a/db/routines/vn2008/views/Tickets_turno.sql b/db/routines/vn2008/views/Tickets_turno.sql
index 28bc2d55fa..6d16a57804 100644
--- a/db/routines/vn2008/views/Tickets_turno.sql
+++ b/db/routines/vn2008/views/Tickets_turno.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Tickets_turno`
AS SELECT `tw`.`ticketFk` AS `Id_Ticket`,
diff --git a/db/routines/vn2008/views/Tintas.sql b/db/routines/vn2008/views/Tintas.sql
index 2299aa759a..729cfa9d6c 100644
--- a/db/routines/vn2008/views/Tintas.sql
+++ b/db/routines/vn2008/views/Tintas.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Tintas`
AS SELECT `i`.`id` AS `Id_Tinta`,
diff --git a/db/routines/vn2008/views/Tipos.sql b/db/routines/vn2008/views/Tipos.sql
index 5b96c1766c..5a99e2aca3 100644
--- a/db/routines/vn2008/views/Tipos.sql
+++ b/db/routines/vn2008/views/Tipos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Tipos`
AS SELECT `it`.`id` AS `tipo_id`,
diff --git a/db/routines/vn2008/views/Trabajadores.sql b/db/routines/vn2008/views/Trabajadores.sql
index 72b53e54e3..a5c8353d2b 100644
--- a/db/routines/vn2008/views/Trabajadores.sql
+++ b/db/routines/vn2008/views/Trabajadores.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Trabajadores`
AS SELECT `w`.`id` AS `Id_Trabajador`,
diff --git a/db/routines/vn2008/views/Tramos.sql b/db/routines/vn2008/views/Tramos.sql
index 6919a610b2..a9847a1b15 100644
--- a/db/routines/vn2008/views/Tramos.sql
+++ b/db/routines/vn2008/views/Tramos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Tramos`
AS SELECT `s`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/V_edi_item_track.sql b/db/routines/vn2008/views/V_edi_item_track.sql
index 64cfdc1c58..8e01827194 100644
--- a/db/routines/vn2008/views/V_edi_item_track.sql
+++ b/db/routines/vn2008/views/V_edi_item_track.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`V_edi_item_track`
AS SELECT `edi`.`item_track`.`item_id` AS `item_id`,
diff --git a/db/routines/vn2008/views/Vehiculos_consumo.sql b/db/routines/vn2008/views/Vehiculos_consumo.sql
index 422a774994..2808371c70 100644
--- a/db/routines/vn2008/views/Vehiculos_consumo.sql
+++ b/db/routines/vn2008/views/Vehiculos_consumo.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Vehiculos_consumo`
AS SELECT `vc`.`id` AS `Vehiculos_consumo_id`,
diff --git a/db/routines/vn2008/views/account_conciliacion.sql b/db/routines/vn2008/views/account_conciliacion.sql
index 66db78eee6..e652648f58 100644
--- a/db/routines/vn2008/views/account_conciliacion.sql
+++ b/db/routines/vn2008/views/account_conciliacion.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`account_conciliacion`
AS SELECT `ar`.`id` AS `idaccount_conciliacion`,
diff --git a/db/routines/vn2008/views/account_detail.sql b/db/routines/vn2008/views/account_detail.sql
index 74d35ae41a..874f1f90cf 100644
--- a/db/routines/vn2008/views/account_detail.sql
+++ b/db/routines/vn2008/views/account_detail.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`account_detail`
AS SELECT `ac`.`id` AS `account_detail_id`,
diff --git a/db/routines/vn2008/views/account_detail_type.sql b/db/routines/vn2008/views/account_detail_type.sql
index 6def86a9a6..5f6f22cd92 100644
--- a/db/routines/vn2008/views/account_detail_type.sql
+++ b/db/routines/vn2008/views/account_detail_type.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`account_detail_type`
AS SELECT `adt`.`id` AS `account_detail_type_id`,
diff --git a/db/routines/vn2008/views/agency.sql b/db/routines/vn2008/views/agency.sql
index 637bb09101..015149e605 100644
--- a/db/routines/vn2008/views/agency.sql
+++ b/db/routines/vn2008/views/agency.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`agency`
AS SELECT `a`.`id` AS `agency_id`,
diff --git a/db/routines/vn2008/views/airline.sql b/db/routines/vn2008/views/airline.sql
index 786206b1c1..364e61ab16 100644
--- a/db/routines/vn2008/views/airline.sql
+++ b/db/routines/vn2008/views/airline.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`airline`
AS SELECT `a`.`id` AS `airline_id`,
diff --git a/db/routines/vn2008/views/airport.sql b/db/routines/vn2008/views/airport.sql
index 0e8ab39d29..3e4238e51e 100644
--- a/db/routines/vn2008/views/airport.sql
+++ b/db/routines/vn2008/views/airport.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`airport`
AS SELECT `a`.`id` AS `airport_id`,
diff --git a/db/routines/vn2008/views/albaran.sql b/db/routines/vn2008/views/albaran.sql
index b1055ff56a..1851834cd4 100644
--- a/db/routines/vn2008/views/albaran.sql
+++ b/db/routines/vn2008/views/albaran.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`albaran`
AS SELECT `dn`.`id` AS `albaran_id`,
diff --git a/db/routines/vn2008/views/albaran_gestdoc.sql b/db/routines/vn2008/views/albaran_gestdoc.sql
index ffde86937d..d4d0ecbce5 100644
--- a/db/routines/vn2008/views/albaran_gestdoc.sql
+++ b/db/routines/vn2008/views/albaran_gestdoc.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`albaran_gestdoc`
AS SELECT `dnd`.`dmsFk` AS `gestdoc_id`,
diff --git a/db/routines/vn2008/views/albaran_state.sql b/db/routines/vn2008/views/albaran_state.sql
index a15938f45d..03056d7f07 100644
--- a/db/routines/vn2008/views/albaran_state.sql
+++ b/db/routines/vn2008/views/albaran_state.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`albaran_state`
AS SELECT `dn`.`id` AS `albaran_state_id`,
diff --git a/db/routines/vn2008/views/awb.sql b/db/routines/vn2008/views/awb.sql
index a325718888..c37a425b75 100644
--- a/db/routines/vn2008/views/awb.sql
+++ b/db/routines/vn2008/views/awb.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb`
AS SELECT `a`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/awb_component.sql b/db/routines/vn2008/views/awb_component.sql
index 8053c4a590..39eec27332 100644
--- a/db/routines/vn2008/views/awb_component.sql
+++ b/db/routines/vn2008/views/awb_component.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_component`
AS SELECT `ac`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/awb_component_template.sql b/db/routines/vn2008/views/awb_component_template.sql
index bc8fd1cd8f..cdf178fe17 100644
--- a/db/routines/vn2008/views/awb_component_template.sql
+++ b/db/routines/vn2008/views/awb_component_template.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_component_template`
AS SELECT`act`.`id` AS `awb_component_template_id`,
diff --git a/db/routines/vn2008/views/awb_component_type.sql b/db/routines/vn2008/views/awb_component_type.sql
index 45921e11cb..f65df513ff 100644
--- a/db/routines/vn2008/views/awb_component_type.sql
+++ b/db/routines/vn2008/views/awb_component_type.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_component_type`
AS SELECT `act`.`id` AS `awb_component_type_id`,
diff --git a/db/routines/vn2008/views/awb_gestdoc.sql b/db/routines/vn2008/views/awb_gestdoc.sql
index 6b5c58d56a..16715ce6b7 100644
--- a/db/routines/vn2008/views/awb_gestdoc.sql
+++ b/db/routines/vn2008/views/awb_gestdoc.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_gestdoc`
AS SELECT `ad`.`id` AS `awb_gestdoc_id`,
diff --git a/db/routines/vn2008/views/awb_recibida.sql b/db/routines/vn2008/views/awb_recibida.sql
index c7586214d1..9f04e0e35e 100644
--- a/db/routines/vn2008/views/awb_recibida.sql
+++ b/db/routines/vn2008/views/awb_recibida.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_recibida`
AS SELECT `aii`.`awbFk` AS `awb_id`,
diff --git a/db/routines/vn2008/views/awb_role.sql b/db/routines/vn2008/views/awb_role.sql
index 5ef0042445..3905ee5722 100644
--- a/db/routines/vn2008/views/awb_role.sql
+++ b/db/routines/vn2008/views/awb_role.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_role`
AS SELECT `ar`.`id` AS `awb_role_id`,
diff --git a/db/routines/vn2008/views/awb_unit.sql b/db/routines/vn2008/views/awb_unit.sql
index 7d1193105b..28ad75204a 100644
--- a/db/routines/vn2008/views/awb_unit.sql
+++ b/db/routines/vn2008/views/awb_unit.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`awb_unit`
AS SELECT `au`.`id` AS `awb_unit_id`,
diff --git a/db/routines/vn2008/views/balance_nest_tree.sql b/db/routines/vn2008/views/balance_nest_tree.sql
index 66d048d7f6..e232edba82 100644
--- a/db/routines/vn2008/views/balance_nest_tree.sql
+++ b/db/routines/vn2008/views/balance_nest_tree.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`balance_nest_tree`
AS SELECT `bnt`.`lft` AS `lft`,
diff --git a/db/routines/vn2008/views/barcodes.sql b/db/routines/vn2008/views/barcodes.sql
index f366e15fa0..8cf8be064a 100644
--- a/db/routines/vn2008/views/barcodes.sql
+++ b/db/routines/vn2008/views/barcodes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`barcodes`
AS SELECT `b`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/buySource.sql b/db/routines/vn2008/views/buySource.sql
index 8504838330..d6db662a7a 100644
--- a/db/routines/vn2008/views/buySource.sql
+++ b/db/routines/vn2008/views/buySource.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`buySource`
AS SELECT `b`.`entryFk` AS `Id_Entrada`,
diff --git a/db/routines/vn2008/views/buy_edi.sql b/db/routines/vn2008/views/buy_edi.sql
index d00196e95b..85e4a6b28a 100644
--- a/db/routines/vn2008/views/buy_edi.sql
+++ b/db/routines/vn2008/views/buy_edi.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`buy_edi`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/buy_edi_k012.sql b/db/routines/vn2008/views/buy_edi_k012.sql
index 8ef89e5c9f..790e330790 100644
--- a/db/routines/vn2008/views/buy_edi_k012.sql
+++ b/db/routines/vn2008/views/buy_edi_k012.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`buy_edi_k012`
AS SELECT `eek`.`id` AS `buy_edi_k012_id`,
diff --git a/db/routines/vn2008/views/buy_edi_k03.sql b/db/routines/vn2008/views/buy_edi_k03.sql
index 04ca10ef55..aef0fb391e 100644
--- a/db/routines/vn2008/views/buy_edi_k03.sql
+++ b/db/routines/vn2008/views/buy_edi_k03.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`buy_edi_k03`
AS SELECT `eek`.`id` AS `buy_edi_k03_id`,
diff --git a/db/routines/vn2008/views/buy_edi_k04.sql b/db/routines/vn2008/views/buy_edi_k04.sql
index 3c32e3b88b..e207e4317c 100644
--- a/db/routines/vn2008/views/buy_edi_k04.sql
+++ b/db/routines/vn2008/views/buy_edi_k04.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`buy_edi_k04`
AS SELECT `eek`.`id` AS `buy_edi_k04_id`,
diff --git a/db/routines/vn2008/views/cdr.sql b/db/routines/vn2008/views/cdr.sql
index 9d0d2f1720..d13c7dd32b 100644
--- a/db/routines/vn2008/views/cdr.sql
+++ b/db/routines/vn2008/views/cdr.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cdr`
AS SELECT `c`.`call_date` AS `calldate`,
diff --git a/db/routines/vn2008/views/chanel.sql b/db/routines/vn2008/views/chanel.sql
index 9d2ed0d9c6..0480ca5881 100644
--- a/db/routines/vn2008/views/chanel.sql
+++ b/db/routines/vn2008/views/chanel.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`chanel`
AS SELECT `c`.`id` AS `chanel_id`,
diff --git a/db/routines/vn2008/views/cl_act.sql b/db/routines/vn2008/views/cl_act.sql
index a62ac3efe9..9678d2fbbd 100644
--- a/db/routines/vn2008/views/cl_act.sql
+++ b/db/routines/vn2008/views/cl_act.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_act`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_cau.sql b/db/routines/vn2008/views/cl_cau.sql
index a835a94c95..8bb352710e 100644
--- a/db/routines/vn2008/views/cl_cau.sql
+++ b/db/routines/vn2008/views/cl_cau.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_cau`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_con.sql b/db/routines/vn2008/views/cl_con.sql
index b4f596d566..c224a01aa9 100644
--- a/db/routines/vn2008/views/cl_con.sql
+++ b/db/routines/vn2008/views/cl_con.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_con`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_det.sql b/db/routines/vn2008/views/cl_det.sql
index cef5c821d3..80c87c51ea 100644
--- a/db/routines/vn2008/views/cl_det.sql
+++ b/db/routines/vn2008/views/cl_det.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_det`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_main.sql b/db/routines/vn2008/views/cl_main.sql
index ef0c2cb8ab..04d0e10cdd 100644
--- a/db/routines/vn2008/views/cl_main.sql
+++ b/db/routines/vn2008/views/cl_main.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_main`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_mot.sql b/db/routines/vn2008/views/cl_mot.sql
index 60fb27041f..6dfdb702af 100644
--- a/db/routines/vn2008/views/cl_mot.sql
+++ b/db/routines/vn2008/views/cl_mot.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_mot`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_res.sql b/db/routines/vn2008/views/cl_res.sql
index e82ee73b0d..31c1da6c18 100644
--- a/db/routines/vn2008/views/cl_res.sql
+++ b/db/routines/vn2008/views/cl_res.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_res`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/cl_sol.sql b/db/routines/vn2008/views/cl_sol.sql
index 23f2b8594e..3321ce0e4f 100644
--- a/db/routines/vn2008/views/cl_sol.sql
+++ b/db/routines/vn2008/views/cl_sol.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`cl_sol`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/config_host.sql b/db/routines/vn2008/views/config_host.sql
index 2d4d6fa4c0..b9dbaae359 100644
--- a/db/routines/vn2008/views/config_host.sql
+++ b/db/routines/vn2008/views/config_host.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`config_host`
AS SELECT `vn`.`host`.`code` AS `config_host_id`,
diff --git a/db/routines/vn2008/views/consignatarios_observation.sql b/db/routines/vn2008/views/consignatarios_observation.sql
index 1f4c2eeb22..13bbe431a2 100644
--- a/db/routines/vn2008/views/consignatarios_observation.sql
+++ b/db/routines/vn2008/views/consignatarios_observation.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`consignatarios_observation`
AS SELECT `co`.`id` AS `consignatarios_observation_id`,
diff --git a/db/routines/vn2008/views/credit.sql b/db/routines/vn2008/views/credit.sql
index 0de60b9679..e1f71e267d 100644
--- a/db/routines/vn2008/views/credit.sql
+++ b/db/routines/vn2008/views/credit.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`credit`
AS SELECT
diff --git a/db/routines/vn2008/views/definitivo.sql b/db/routines/vn2008/views/definitivo.sql
index 1bc5541614..397b33dbd6 100644
--- a/db/routines/vn2008/views/definitivo.sql
+++ b/db/routines/vn2008/views/definitivo.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`definitivo`
AS SELECT `d`.`id` AS `definitivo_id`,
diff --git a/db/routines/vn2008/views/edi_article.sql b/db/routines/vn2008/views/edi_article.sql
index 34bb641498..68c7a581a1 100644
--- a/db/routines/vn2008/views/edi_article.sql
+++ b/db/routines/vn2008/views/edi_article.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`edi_article`
AS SELECT `edi`.`item`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/edi_bucket.sql b/db/routines/vn2008/views/edi_bucket.sql
index 1af487a6c0..0d744e6a73 100644
--- a/db/routines/vn2008/views/edi_bucket.sql
+++ b/db/routines/vn2008/views/edi_bucket.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`edi_bucket`
AS SELECT cast(
diff --git a/db/routines/vn2008/views/edi_bucket_type.sql b/db/routines/vn2008/views/edi_bucket_type.sql
index 8e3af20801..845124d495 100644
--- a/db/routines/vn2008/views/edi_bucket_type.sql
+++ b/db/routines/vn2008/views/edi_bucket_type.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`edi_bucket_type`
AS SELECT `edi`.`bucket_type`.`bucket_type_id` AS `bucket_type_id`,
diff --git a/db/routines/vn2008/views/edi_specie.sql b/db/routines/vn2008/views/edi_specie.sql
index 33e38482ed..c25a5601c9 100644
--- a/db/routines/vn2008/views/edi_specie.sql
+++ b/db/routines/vn2008/views/edi_specie.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`edi_specie`
AS SELECT `edi`.`specie`.`specie_id` AS `specie_id`,
diff --git a/db/routines/vn2008/views/edi_supplier.sql b/db/routines/vn2008/views/edi_supplier.sql
index 51f96b83d6..d7dd6c3538 100644
--- a/db/routines/vn2008/views/edi_supplier.sql
+++ b/db/routines/vn2008/views/edi_supplier.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`edi_supplier`
AS SELECT `edi`.`supplier`.`supplier_id` AS `supplier_id`,
diff --git a/db/routines/vn2008/views/empresa.sql b/db/routines/vn2008/views/empresa.sql
index 8c80a06e82..6c93cb910a 100644
--- a/db/routines/vn2008/views/empresa.sql
+++ b/db/routines/vn2008/views/empresa.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`empresa`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/empresa_grupo.sql b/db/routines/vn2008/views/empresa_grupo.sql
index 35ba272793..a626f2c60d 100644
--- a/db/routines/vn2008/views/empresa_grupo.sql
+++ b/db/routines/vn2008/views/empresa_grupo.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`empresa_grupo`
AS SELECT `vn`.`companyGroup`.`id` AS `empresa_grupo_id`,
diff --git a/db/routines/vn2008/views/entrySource.sql b/db/routines/vn2008/views/entrySource.sql
index 7326036177..5657748403 100644
--- a/db/routines/vn2008/views/entrySource.sql
+++ b/db/routines/vn2008/views/entrySource.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`entrySource`
AS SELECT `e`.`gestDocFk` AS `gestdoc_id`,
diff --git a/db/routines/vn2008/views/financialProductType.sql b/db/routines/vn2008/views/financialProductType.sql
index 89a0638569..10a8ece21e 100644
--- a/db/routines/vn2008/views/financialProductType.sql
+++ b/db/routines/vn2008/views/financialProductType.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`financialProductType`AS
SELECT * FROM vn.financialProductType;
\ No newline at end of file
diff --git a/db/routines/vn2008/views/flight.sql b/db/routines/vn2008/views/flight.sql
index 2df5362f77..194cb5a94d 100644
--- a/db/routines/vn2008/views/flight.sql
+++ b/db/routines/vn2008/views/flight.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`flight`
AS SELECT
diff --git a/db/routines/vn2008/views/gastos_resumen.sql b/db/routines/vn2008/views/gastos_resumen.sql
index d40d6d229c..8db91c1b60 100644
--- a/db/routines/vn2008/views/gastos_resumen.sql
+++ b/db/routines/vn2008/views/gastos_resumen.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`gastos_resumen`
AS SELECT
diff --git a/db/routines/vn2008/views/integra2.sql b/db/routines/vn2008/views/integra2.sql
index 05840d6bbd..cb0847e8a5 100644
--- a/db/routines/vn2008/views/integra2.sql
+++ b/db/routines/vn2008/views/integra2.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`integra2`
AS SELECT
diff --git a/db/routines/vn2008/views/integra2_province.sql b/db/routines/vn2008/views/integra2_province.sql
index bc099adb32..f0a5e13ee4 100644
--- a/db/routines/vn2008/views/integra2_province.sql
+++ b/db/routines/vn2008/views/integra2_province.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`integra2_province`
AS SELECT
diff --git a/db/routines/vn2008/views/mail.sql b/db/routines/vn2008/views/mail.sql
index 3074dfa95d..c0d4de6026 100644
--- a/db/routines/vn2008/views/mail.sql
+++ b/db/routines/vn2008/views/mail.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`mail`
AS SELECT `m`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/mandato.sql b/db/routines/vn2008/views/mandato.sql
index dde43b48dc..a2dbc4be62 100644
--- a/db/routines/vn2008/views/mandato.sql
+++ b/db/routines/vn2008/views/mandato.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`mandato`
AS SELECT `m`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/mandato_tipo.sql b/db/routines/vn2008/views/mandato_tipo.sql
index bc3f746328..b2c5a3990c 100644
--- a/db/routines/vn2008/views/mandato_tipo.sql
+++ b/db/routines/vn2008/views/mandato_tipo.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`mandato_tipo`
AS SELECT `m`.`id` AS `idmandato_tipo`,
diff --git a/db/routines/vn2008/views/pago.sql b/db/routines/vn2008/views/pago.sql
index 546496070b..08506afda7 100644
--- a/db/routines/vn2008/views/pago.sql
+++ b/db/routines/vn2008/views/pago.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`pago`
AS SELECT `p`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/pago_sdc.sql b/db/routines/vn2008/views/pago_sdc.sql
index 29480e3769..ef75741fb2 100644
--- a/db/routines/vn2008/views/pago_sdc.sql
+++ b/db/routines/vn2008/views/pago_sdc.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`pago_sdc`
AS SELECT `ei`.`id` AS `pago_sdc_id`,
diff --git a/db/routines/vn2008/views/pay_dem.sql b/db/routines/vn2008/views/pay_dem.sql
index 1ef00d645d..55468d6e33 100644
--- a/db/routines/vn2008/views/pay_dem.sql
+++ b/db/routines/vn2008/views/pay_dem.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`pay_dem`
AS SELECT `pd`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/pay_dem_det.sql b/db/routines/vn2008/views/pay_dem_det.sql
index 822897ed85..b9b4485d93 100644
--- a/db/routines/vn2008/views/pay_dem_det.sql
+++ b/db/routines/vn2008/views/pay_dem_det.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`pay_dem_det`
AS SELECT `pdd`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/pay_met.sql b/db/routines/vn2008/views/pay_met.sql
index 63e2b30e06..c64d01ce47 100644
--- a/db/routines/vn2008/views/pay_met.sql
+++ b/db/routines/vn2008/views/pay_met.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`pay_met`
AS SELECT `pm`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/payrollWorker.sql b/db/routines/vn2008/views/payrollWorker.sql
index 6199e98b89..7557d61ec5 100644
--- a/db/routines/vn2008/views/payrollWorker.sql
+++ b/db/routines/vn2008/views/payrollWorker.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`payroll_employee` AS
SELECT
diff --git a/db/routines/vn2008/views/payroll_categorias.sql b/db/routines/vn2008/views/payroll_categorias.sql
index b71e69019f..b1eb5f5960 100644
--- a/db/routines/vn2008/views/payroll_categorias.sql
+++ b/db/routines/vn2008/views/payroll_categorias.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`payroll_categorias`
AS SELECT `pc`.`id` AS `codcategoria`,
diff --git a/db/routines/vn2008/views/payroll_centros.sql b/db/routines/vn2008/views/payroll_centros.sql
index b7e162f906..2160234671 100644
--- a/db/routines/vn2008/views/payroll_centros.sql
+++ b/db/routines/vn2008/views/payroll_centros.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`payroll_centros`
AS SELECT `pwc`.`workCenterFkA3` AS `cod_centro`,
diff --git a/db/routines/vn2008/views/payroll_conceptos.sql b/db/routines/vn2008/views/payroll_conceptos.sql
index a7c6ece5bd..e96ca1d29f 100644
--- a/db/routines/vn2008/views/payroll_conceptos.sql
+++ b/db/routines/vn2008/views/payroll_conceptos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`payroll_conceptos`
AS SELECT `pc`.`id` AS `conceptoid`,
diff --git a/db/routines/vn2008/views/plantpassport.sql b/db/routines/vn2008/views/plantpassport.sql
index b1be6a80b2..c983fab0a8 100644
--- a/db/routines/vn2008/views/plantpassport.sql
+++ b/db/routines/vn2008/views/plantpassport.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`plantpassport`
AS SELECT `pp`.`producerFk` AS `producer_id`,
diff --git a/db/routines/vn2008/views/plantpassport_authority.sql b/db/routines/vn2008/views/plantpassport_authority.sql
index 4548bbeded..b8566a8f3a 100644
--- a/db/routines/vn2008/views/plantpassport_authority.sql
+++ b/db/routines/vn2008/views/plantpassport_authority.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`plantpassport_authority`
AS SELECT `ppa`.`id` AS `plantpassport_authority_id`,
diff --git a/db/routines/vn2008/views/price_fixed.sql b/db/routines/vn2008/views/price_fixed.sql
index ce8170e7c7..306e9d8878 100644
--- a/db/routines/vn2008/views/price_fixed.sql
+++ b/db/routines/vn2008/views/price_fixed.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`price_fixed`
AS SELECT `pf`.`itemFk` AS `item_id`,
diff --git a/db/routines/vn2008/views/producer.sql b/db/routines/vn2008/views/producer.sql
index babfb887ea..dbf7833ca6 100644
--- a/db/routines/vn2008/views/producer.sql
+++ b/db/routines/vn2008/views/producer.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`producer`
AS SELECT `p`.`id` AS `producer_id`,
diff --git a/db/routines/vn2008/views/promissoryNote.sql b/db/routines/vn2008/views/promissoryNote.sql
index 0db0fa86f0..e8d3b8718f 100644
--- a/db/routines/vn2008/views/promissoryNote.sql
+++ b/db/routines/vn2008/views/promissoryNote.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Pagares`
AS SELECT `p`.`id` AS `Id_Pagare`,
diff --git a/db/routines/vn2008/views/proveedores_clientes.sql b/db/routines/vn2008/views/proveedores_clientes.sql
index e08f4a3a7c..1e5c75f544 100644
--- a/db/routines/vn2008/views/proveedores_clientes.sql
+++ b/db/routines/vn2008/views/proveedores_clientes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`proveedores_clientes`
AS SELECT `Proveedores`.`Id_Proveedor` AS `Id_Proveedor`,
diff --git a/db/routines/vn2008/views/province.sql b/db/routines/vn2008/views/province.sql
index 1477ec8034..1a08497bc0 100644
--- a/db/routines/vn2008/views/province.sql
+++ b/db/routines/vn2008/views/province.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`province`
AS SELECT `p`.`id` AS `province_id`,
diff --git a/db/routines/vn2008/views/recibida.sql b/db/routines/vn2008/views/recibida.sql
index 76b86505e1..ae48debb6d 100644
--- a/db/routines/vn2008/views/recibida.sql
+++ b/db/routines/vn2008/views/recibida.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`recibida`
AS SELECT `r`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/recibida_intrastat.sql b/db/routines/vn2008/views/recibida_intrastat.sql
index 402781931e..fd472c55aa 100644
--- a/db/routines/vn2008/views/recibida_intrastat.sql
+++ b/db/routines/vn2008/views/recibida_intrastat.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`recibida_intrastat`
AS SELECT `i`.`invoiceInFk` AS `recibida_id`,
diff --git a/db/routines/vn2008/views/recibida_iva.sql b/db/routines/vn2008/views/recibida_iva.sql
index 7d948a6ffb..96f5c1736e 100644
--- a/db/routines/vn2008/views/recibida_iva.sql
+++ b/db/routines/vn2008/views/recibida_iva.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`recibida_iva`
AS SELECT `i`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/recibida_vencimiento.sql b/db/routines/vn2008/views/recibida_vencimiento.sql
index 813ae40d7a..d06230e37a 100644
--- a/db/routines/vn2008/views/recibida_vencimiento.sql
+++ b/db/routines/vn2008/views/recibida_vencimiento.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`recibida_vencimiento`
AS SELECT `r`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/recovery.sql b/db/routines/vn2008/views/recovery.sql
index 5bbff31247..905ffc347c 100644
--- a/db/routines/vn2008/views/recovery.sql
+++ b/db/routines/vn2008/views/recovery.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`recovery`
AS SELECT `r`.`id` AS `recovery_id`,
diff --git a/db/routines/vn2008/views/reference_rate.sql b/db/routines/vn2008/views/reference_rate.sql
index eb0f1c25ec..e0d09db58e 100644
--- a/db/routines/vn2008/views/reference_rate.sql
+++ b/db/routines/vn2008/views/reference_rate.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`reference_rate`
AS SELECT `rr`.`currencyFk` AS `moneda_id`,
diff --git a/db/routines/vn2008/views/reinos.sql b/db/routines/vn2008/views/reinos.sql
index 4d98d1f09b..3b1299bb02 100644
--- a/db/routines/vn2008/views/reinos.sql
+++ b/db/routines/vn2008/views/reinos.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`reinos`
AS SELECT `r`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/state.sql b/db/routines/vn2008/views/state.sql
index 9f7fcccd81..3602e257d2 100644
--- a/db/routines/vn2008/views/state.sql
+++ b/db/routines/vn2008/views/state.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`state`
AS SELECT `s`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/tag.sql b/db/routines/vn2008/views/tag.sql
index 25b3ab82e1..9a1c5c6753 100644
--- a/db/routines/vn2008/views/tag.sql
+++ b/db/routines/vn2008/views/tag.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tag`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/tarifa_componentes.sql b/db/routines/vn2008/views/tarifa_componentes.sql
index bec53abd94..72f15bfeef 100644
--- a/db/routines/vn2008/views/tarifa_componentes.sql
+++ b/db/routines/vn2008/views/tarifa_componentes.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tarifa_componentes`
AS SELECT `tarifa_componentes`.`Id_Componente` AS `Id_Componente`,
diff --git a/db/routines/vn2008/views/tarifa_componentes_series.sql b/db/routines/vn2008/views/tarifa_componentes_series.sql
index a1d1887094..ecf425b198 100644
--- a/db/routines/vn2008/views/tarifa_componentes_series.sql
+++ b/db/routines/vn2008/views/tarifa_componentes_series.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tarifa_componentes_series`
AS SELECT `tarifa_componentes_series`.`tarifa_componentes_series_id` AS `tarifa_componentes_series_id`,
diff --git a/db/routines/vn2008/views/tblContadores.sql b/db/routines/vn2008/views/tblContadores.sql
index 129d3ce8be..360171a8b3 100644
--- a/db/routines/vn2008/views/tblContadores.sql
+++ b/db/routines/vn2008/views/tblContadores.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tblContadores`
AS SELECT `c`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/thermograph.sql b/db/routines/vn2008/views/thermograph.sql
index f51b83d243..209d89e912 100644
--- a/db/routines/vn2008/views/thermograph.sql
+++ b/db/routines/vn2008/views/thermograph.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`thermograph`
AS SELECT `t`.`id` AS `thermograph_id`,
diff --git a/db/routines/vn2008/views/ticket_observation.sql b/db/routines/vn2008/views/ticket_observation.sql
index deb85e4b6b..d2aa4733b3 100644
--- a/db/routines/vn2008/views/ticket_observation.sql
+++ b/db/routines/vn2008/views/ticket_observation.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`ticket_observation`
AS SELECT `to`.`id` AS `ticket_observation_id`,
diff --git a/db/routines/vn2008/views/tickets_gestdoc.sql b/db/routines/vn2008/views/tickets_gestdoc.sql
index a8682db577..707ca8ad86 100644
--- a/db/routines/vn2008/views/tickets_gestdoc.sql
+++ b/db/routines/vn2008/views/tickets_gestdoc.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tickets_gestdoc`
AS SELECT `td`.`ticketFk` AS `Id_Ticket`,
diff --git a/db/routines/vn2008/views/time.sql b/db/routines/vn2008/views/time.sql
index f3bbc86076..72104e5706 100644
--- a/db/routines/vn2008/views/time.sql
+++ b/db/routines/vn2008/views/time.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`time`
AS SELECT `t`.`dated` AS `date`,
diff --git a/db/routines/vn2008/views/travel.sql b/db/routines/vn2008/views/travel.sql
index 5dc993d330..3c27f6566a 100644
--- a/db/routines/vn2008/views/travel.sql
+++ b/db/routines/vn2008/views/travel.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`travel`
AS SELECT `t`.`id` AS `id`,
diff --git a/db/routines/vn2008/views/v_Articles_botanical.sql b/db/routines/vn2008/views/v_Articles_botanical.sql
index 8640bb6380..18db5bf2e3 100644
--- a/db/routines/vn2008/views/v_Articles_botanical.sql
+++ b/db/routines/vn2008/views/v_Articles_botanical.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_Articles_botanical`
AS SELECT `ib`.`itemFk` AS `itemFk`,
diff --git a/db/routines/vn2008/views/v_compres.sql b/db/routines/vn2008/views/v_compres.sql
index 633feb4717..8d9c6b96b7 100644
--- a/db/routines/vn2008/views/v_compres.sql
+++ b/db/routines/vn2008/views/v_compres.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_compres`
AS SELECT `TP`.`Id_Tipo` AS `Familia`,
diff --git a/db/routines/vn2008/views/v_empresa.sql b/db/routines/vn2008/views/v_empresa.sql
index 5a6d6e0f59..16c9646c23 100644
--- a/db/routines/vn2008/views/v_empresa.sql
+++ b/db/routines/vn2008/views/v_empresa.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_empresa`
AS SELECT `e`.`logo` AS `logo`,
diff --git a/db/routines/vn2008/views/versiones.sql b/db/routines/vn2008/views/versiones.sql
index 3d27f4f927..3066327c9c 100644
--- a/db/routines/vn2008/views/versiones.sql
+++ b/db/routines/vn2008/views/versiones.sql
@@ -1,4 +1,4 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`versiones`
AS SELECT `m`.`app` AS `programa`,
diff --git a/db/routines/vn2008/views/warehouse_pickup.sql b/db/routines/vn2008/views/warehouse_pickup.sql
index c3a7268a17..739d6d9750 100644
--- a/db/routines/vn2008/views/warehouse_pickup.sql
+++ b/db/routines/vn2008/views/warehouse_pickup.sql
@@ -1,5 +1,5 @@
-CREATE OR REPLACE DEFINER=`root`@`localhost`
+CREATE OR REPLACE DEFINER=`vn`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`warehouse_pickup`
AS SELECT
diff --git a/db/versions/10936-wheatAnthurium/00-updateACL.sql b/db/versions/10936-wheatAnthurium/00-updateACL.sql
new file mode 100644
index 0000000000..16073a23d7
--- /dev/null
+++ b/db/versions/10936-wheatAnthurium/00-updateACL.sql
@@ -0,0 +1,6 @@
+INSERT IGNORE INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
+ VALUES
+ ('Ticket','itemLack','READ','ALLOW','ROLE','employee'),
+ ('Ticket','itemLackDetail','READ','ALLOW','ROLE','employee'),
+ ('Ticket','split','WRITE','ALLOW','ROLE','employee'),
+ ('Sale','replaceItem','WRITE','ALLOW','ROLE','employee');
diff --git a/db/versions/11132-aquaDracena/00-firstScript.sql b/db/versions/11132-aquaDracena/00-firstScript.sql
new file mode 100644
index 0000000000..08bfca3edc
--- /dev/null
+++ b/db/versions/11132-aquaDracena/00-firstScript.sql
@@ -0,0 +1,2 @@
+ALTER TABLE vn.ticketConfig ADD lackAlertPrice int(11) DEFAULT 30 NOT NULL COMMENT 'Value to alert when item proposal exceed price';
+ALTER TABLE vn.ticketConfig ADD lackScopeDays int(11) DEFAULT 2 NOT NULL COMMENT 'Number of days to look back for ticket with negatives';
diff --git a/db/versions/11399-bronzeOak/00-firstScript.sql b/db/versions/11399-bronzeOak/00-firstScript.sql
new file mode 100644
index 0000000000..513cc96c5b
--- /dev/null
+++ b/db/versions/11399-bronzeOak/00-firstScript.sql
@@ -0,0 +1,90 @@
+INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
+ VALUES ('Entry','getBuyList','READ','ALLOW','ROLE','buyer'),
+ ('Entry','getBuyUltimate','READ','ALLOW','ROLE','buyer'),
+ ('Entry','search','READ','ALLOW','ROLE','buyer'),
+ ('Entry','create','WRITE','ALLOW','ROLE','buyer'),
+ ('Entry','cloneEntry','WRITE','ALLOW','ROLE','buyer'),
+ ('Entry','deleteEntry','WRITE','ALLOW','ROLE','buyer'),
+ ('Entry','recalcEntryPrices','WRITE','ALLOW','ROLE','buyer'),
+ ('EntryType','find','READ','ALLOW','ROLE','buyer'),
+ ('EntryConfig','findOne','READ','ALLOW','ROLE','buyer');
+
+ALTER TABLE vn.ink ADD IF NOT EXISTS hexJson TEXT NOT NULL;
+
+UPDATE vn.ink
+ SET hexJson = CONCAT('{"value": ["',hex,'"]}');
+
+UPDATE vn.ink
+SET hexJson = CASE `name`
+ WHEN 'Blanco/Naranja' THEN '{"value": ["FFFFFF", "FFA500"]}'
+ WHEN 'Sin especificar' THEN '{"value": ["808080"]}'
+ WHEN '2 Colores' THEN '{"value": ["000000", "FFFFFF"]}'
+ WHEN 'Amarillo/Marrón' THEN '{"value": ["FFFF00", "8B4513"]}'
+ WHEN 'Amarillo/Naranja' THEN '{"value": ["FFFF00", "FFA500"]}'
+ WHEN 'Rosa/Blanco/Amarillo' THEN '{"value": ["FFC0CB", "FFFFFF", "FFFF00"]}'
+ WHEN 'Rosa/Amarillo' THEN '{"value": ["FFC0CB", "FFFF00"]}'
+ WHEN 'Antracita' THEN '{"value": ["2F2F2F"]}'
+ WHEN 'Azul/Amarillo' THEN '{"value": ["0000FF", "FFFF00"]}'
+ WHEN 'Azul Claro' THEN '{"value": ["ADD8E6"]}'
+ WHEN 'Azul/Marron' THEN '{"value": ["0000FF", "8B4513"]}'
+ WHEN 'Azul/Verde' THEN '{"value": ["0000FF", "008000"]}'
+ WHEN 'Blanco/Amarillo' THEN '{"value": ["FFFFFF", "FFFF00"]}'
+ WHEN 'Blaugrana' THEN '{"value": ["A50044", "004D98"]}'
+ WHEN 'Blanco/Negro' THEN '{"value": ["FFFFFF", "000000"]}'
+ WHEN 'Blanco/Verde' THEN '{"value": ["FFFFFF", "008000"]}'
+ WHEN 'Blanco/Azul' THEN '{"value": ["FFFFFF", "0000FF"]}'
+ WHEN 'Blanco/Rosa' THEN '{"value": ["FFFFFF", "FFC0CB"]}'
+ WHEN 'Cognac/Verde' THEN '{"value": ["9A463D", "008000"]}'
+ WHEN 'Champagne/Verde' THEN '{"value": ["F7E7CE", "008000"]}'
+ WHEN 'Camuflaje' THEN '{"value": ["6B8E23", "556B2F", "8B4513"]}'
+ WHEN 'Crema/Rosa' THEN '{"value": ["FFFDD0", "FFC0CB"]}'
+ WHEN 'Fucsia/Amarillo' THEN '{"value": ["FF00FF", "FFFF00"]}'
+ WHEN 'Fucsia/Blanco' THEN '{"value": ["FF00FF", "FFFFFF"]}'
+ WHEN 'Fucsia/Crema' THEN '{"value": ["FF00FF", "FFFDD0"]}'
+ WHEN 'Fucsia/Rosa' THEN '{"value": ["FF00FF", "FFC0CB"]}'
+ WHEN 'Fucsia/Verde' THEN '{"value": ["FF00FF", "008000"]}'
+ WHEN 'Granate/Blanco' THEN '{"value": ["800000", "FFFFFF"]}'
+ WHEN 'Gris Lila' THEN '{"value": ["808080", "C8A2C8"]}'
+ WHEN 'Lavanda/Amarillo' THEN '{"value": ["E6E6FA", "FFFF00"]}'
+ WHEN 'Lavanda/Gris' THEN '{"value": ["E6E6FA", "808080"]}'
+ WHEN 'Lividum' THEN '{"value": ["702963"]}'
+ WHEN 'Morado/Amarillo' THEN '{"value": ["800080", "FFFF00"]}'
+ WHEN 'Marrón/Blanco' THEN '{"value": ["8B4513", "FFFFFF"]}'
+ WHEN 'Marron/Gris' THEN '{"value": ["8B4513", "808080"]}'
+ WHEN 'Marron/Negro' THEN '{"value": ["8B4513", "000000"]}'
+ WHEN 'Marrón/Verde' THEN '{"value": ["8B4513", "008000"]}'
+ WHEN 'Matizado' THEN '{"value": ["D3D3D3", "808080", "FFFFFF"]}'
+ WHEN 'Mixto' THEN '{"value": ["FF0000", "0000FF", "008000", "FFFF00"]}'
+ WHEN 'Marrón Oscuro' THEN '{"value": ["654321"]}'
+ WHEN 'Naranja/Marron' THEN '{"value": ["FFA500", "8B4513"]}'
+ WHEN 'Naranja/Rosa' THEN '{"value": ["FFA500", "FFC0CB"]}'
+ WHEN 'Ocre/Burgundi' THEN '{"value": ["CC7722", "800020"]}'
+ WHEN 'Oro/Plata' THEN '{"value": ["FFD700", "C0C0C0"]}'
+ WHEN 'Oro/Negro' THEN '{"value": ["FFD700", "000000"]}'
+ WHEN 'Oro/Verde' THEN '{"value": ["FFD700", "008000"]}'
+ WHEN 'Purpura/Blanco' THEN '{"value": ["800080", "FFFFFF"]}'
+ WHEN 'Purpura/Rosa' THEN '{"value": ["800080", "FFC0CB"]}'
+ WHEN 'Pastel' THEN '{"value": ["FFB6C1", "87CEFA", "98FB98"]}'
+ WHEN 'Plata' THEN '{"value": ["C0C0C0"]}'
+ WHEN 'Plata/Verde' THEN '{"value": ["C0C0C0", "008000"]}'
+ WHEN 'Rojo/Amarillo' THEN '{"value": ["FF0000", "FFFF00"]}'
+ WHEN 'Rojo/Blanco' THEN '{"value": ["FF0000", "FFFFFF"]}'
+ WHEN 'Rojo/Naranja' THEN '{"value": ["FF0000", "FFA500"]}'
+ WHEN 'Rojo/Oro' THEN '{"value": ["FF0000", "FFD700"]}'
+ WHEN 'Rojo/Verde' THEN '{"value": ["FF0000", "008000"]}'
+ WHEN 'Rosa/Lila' THEN '{"value": ["FFC0CB", "C8A2C8"]}'
+ WHEN 'Rosa/Naranja' THEN '{"value": ["FFC0CB", "FFA500"]}'
+ WHEN 'Rojo/Rosa' THEN '{"value": ["FF0000", "FFC0CB"]}'
+ WHEN 'Rosa empolvado' THEN '{"value": ["E6B8AF"]}'
+ WHEN 'Rosa/Verde' THEN '{"value": ["FFC0CB", "008000"]}'
+ WHEN 'Topo/Blanco' THEN '{"value": ["8B8589", "FFFFFF"]}'
+ WHEN 'Topo' THEN '{"value": ["8B8589"]}'
+ WHEN 'Transparente' THEN '{"value": ["00000000"]}'
+ WHEN 'Verde/Amarillo' THEN '{"value": ["008000", "FFFF00"]}'
+ WHEN 'Verde/Negro' THEN '{"value": ["008000", "000000"]}'
+ WHEN 'Variado' THEN '{"value": ["FF0000", "0000FF", "008000", "FFFF00", "FFA500"]}'
+ WHEN 'Verde Claro/Morado' THEN '{"value": ["90EE90", "800080"]}'
+ WHEN 'Verde/Lila' THEN '{"value": ["008000", "C8A2C8"]}'
+ WHEN 'Vaquero Neon' THEN '{"value": ["1560BD", "FFFF00"]}'
+ ELSE hexJson
+END;
diff --git a/db/versions/11436-bronzeMonstera/00-firstScript.sql b/db/versions/11436-bronzeMonstera/00-firstScript.sql
new file mode 100644
index 0000000000..56c4f01b09
--- /dev/null
+++ b/db/versions/11436-bronzeMonstera/00-firstScript.sql
@@ -0,0 +1,3 @@
+ALTER TABLE vn.roadmap
+ MODIFY COLUMN dollyPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL COMMENT
+ 'Vehículo sin motor diseñado para conectarse a una unidad tractora, un camión o un vehículo tractor con fuerte potencia de tracción';
\ No newline at end of file
diff --git a/db/versions/11436-bronzeMonstera/01-firstScript.sql b/db/versions/11436-bronzeMonstera/01-firstScript.sql
new file mode 100644
index 0000000000..d809f75b1c
--- /dev/null
+++ b/db/versions/11436-bronzeMonstera/01-firstScript.sql
@@ -0,0 +1,3 @@
+ALTER TABLE vn.volumeConfig ADD COLUMN id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST;
+
+GRANT UPDATE (palletM3) ON vn.volumeConfig TO deliveryBoss;
diff --git a/db/versions/11436-bronzeMonstera/02-firstScript.sql b/db/versions/11436-bronzeMonstera/02-firstScript.sql
new file mode 100644
index 0000000000..ee384ac2ce
--- /dev/null
+++ b/db/versions/11436-bronzeMonstera/02-firstScript.sql
@@ -0,0 +1,3 @@
+ALTER TABLE vn.vehicle
+ MODIFY COLUMN typeFk enum('car','van','truck','trailer','tug','dolly','trailerLink')
+ CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT 'van' NOT NULL;
diff --git a/db/versions/11436-bronzeMonstera/03-firstScript.sql b/db/versions/11436-bronzeMonstera/03-firstScript.sql
new file mode 100644
index 0000000000..efd713c3ad
--- /dev/null
+++ b/db/versions/11436-bronzeMonstera/03-firstScript.sql
@@ -0,0 +1 @@
+ALTER TABLE vn.roadmap DROP COLUMN eta;
diff --git a/db/versions/11441-limeCyca/00-firstScript.sql b/db/versions/11441-limeCyca/00-firstScript.sql
new file mode 100644
index 0000000000..ac0e871beb
--- /dev/null
+++ b/db/versions/11441-limeCyca/00-firstScript.sql
@@ -0,0 +1,8 @@
+UPDATE vn.expedition e
+ JOIN (
+ SELECT id
+ FROM vn.expedition
+ WHERE hostFk COLLATE utf8mb3_unicode_ci NOT IN
+ (SELECT code COLLATE utf8mb3_unicode_ci FROM vn.host WHERE code IS NOT NULL)
+ ) s ON e.id = s.id
+ SET e.hostFk = 'pc336';
diff --git a/db/versions/11441-limeCyca/01-firstScript.sql b/db/versions/11441-limeCyca/01-firstScript.sql
new file mode 100644
index 0000000000..f417a2c8ef
--- /dev/null
+++ b/db/versions/11441-limeCyca/01-firstScript.sql
@@ -0,0 +1,9 @@
+ALTER TABLE vn.expedition
+ MODIFY COLUMN hostFk VARCHAR(30) COLLATE utf8mb3_general_ci;
+
+ALTER TABLE vn.expedition
+ ADD CONSTRAINT fk_expedition_host_code
+ FOREIGN KEY (hostFk)
+ REFERENCES host(code)
+ ON UPDATE CASCADE
+ ON DELETE CASCADE;
\ No newline at end of file
diff --git a/db/versions/11445-brownDendro/00-firstScript.sql b/db/versions/11445-brownDendro/00-firstScript.sql
new file mode 100644
index 0000000000..c75a38a0e5
--- /dev/null
+++ b/db/versions/11445-brownDendro/00-firstScript.sql
@@ -0,0 +1,3 @@
+UPDATE vn.zone
+ SET priceOptimum = price
+ WHERE priceOptimum = 0;
diff --git a/db/versions/11447-whiteGalax/00-firstScript.sql b/db/versions/11447-whiteGalax/00-firstScript.sql
new file mode 100644
index 0000000000..9777017a92
--- /dev/null
+++ b/db/versions/11447-whiteGalax/00-firstScript.sql
@@ -0,0 +1,5 @@
+ALTER TABLE vn.volumeConfig
+ MODIFY COLUMN palletM3 decimal(10,2) DEFAULT NULL NULL
+ COMMENT 'metros cúbicos para el warehouse VNH (Se refactorizará en el redmine refs #8637)',
+ ADD localPalletM3 decimal(10,2) NULL
+ COMMENT 'metros cúbicos para el warehouse Algemesi (Se refactorizará en el redmine refs #8637)';
diff --git a/db/versions/11449-limeDracena/00-deprecate.sql b/db/versions/11449-limeDracena/00-deprecate.sql
new file mode 100644
index 0000000000..2ade5cb8bd
--- /dev/null
+++ b/db/versions/11449-limeDracena/00-deprecate.sql
@@ -0,0 +1,10 @@
+ALTER TABLE `account`.`user` DROP COLUMN `recoverPass__`;
+ALTER TABLE `account`.`user` DROP COLUMN `sync__`;
+ALTER TABLE `vn`.`client` DROP COLUMN `gestdocFk__`;
+DROP TABLE `vn`.`itemShelvingLog__`;
+DROP TABLE `vn`.`inventoryFailure__`;
+DROP TABLE `vn`.`entryVirtual__`;
+DROP TABLE `vn`.`machineWorkerConfig__`;
+DROP TABLE `vn`.`machineWorker__`;
+DROP TABLE `vn`.`inventoryFailureCause__`;
+DROP TABLE `vn`.`workerTimeControlParams__`;
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index 923bb57809..0000000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-version: '3.7'
-services:
- front:
- image: registry.verdnatura.es/salix-front:${VERSION:?}
- build:
- context: front
- back:
- image: registry.verdnatura.es/salix-back:${VERSION:?}
- build:
- context: .
- dockerfile: back/Dockerfile
diff --git a/loopback/locale/en.json b/loopback/locale/en.json
index 159f6c3eae..d30b44c839 100644
--- a/loopback/locale/en.json
+++ b/loopback/locale/en.json
@@ -234,6 +234,7 @@
"It has been invoiced but the PDF of refund not be generated": "It has been invoiced but the PDF of refund not be generated",
"Cannot add holidays on this day": "Cannot add holidays on this day",
"Cannot send mail": "Cannot send mail",
+ "This worker already exists": "This worker already exists",
"CONSTRAINT `chkParkingCodeFormat` failed for `vn`.`parking`": "CONSTRAINT `chkParkingCodeFormat` failed for `vn`.`parking`",
"This postcode already exists": "This postcode already exists",
"Original invoice not found": "Original invoice not found",
@@ -254,5 +255,8 @@
"Holidays to past days not available": "Holidays to past days not available",
"Incorrect delivery order alert on route": "Incorrect delivery order alert on route: {{ route }} zone: {{ zone }}",
"Ticket has been delivered out of order": "The ticket {{ticket}} of route {{{fullUrl}}} has been delivered out of order.",
- "clonedFromTicketWeekly": ", that is a cloned sale from ticket {{ ticketWeekly }}"
+ "clonedFromTicketWeekly": ", that is a cloned sale from ticket {{ ticketWeekly }}",
+ "negativeReplaced": "Replaced item [#{{oldItemId}}]({{{oldItemUrl}}}) {{oldItem}} with [#{{newItemId}}]({{{newItemUrl}}}) {{newItem}} from ticket [{{ticketId}}]({{{ticketUrl}}})",
+ "The tag and priority can't be repeated": "The tag and priority can't be repeated",
+ "duplicateWarehouse": "The introduced warehouse already exists"
}
diff --git a/loopback/locale/es.json b/loopback/locale/es.json
index 40eb3cf8fd..e56b089749 100644
--- a/loopback/locale/es.json
+++ b/loopback/locale/es.json
@@ -22,7 +22,7 @@
"Cannot change the payment method if no department": "No se puede cambiar la forma de pago si no hay departamento asignado",
"can't be blank": "El campo no puede estar vacío",
"Observation type must be unique": "El tipo de observación no puede repetirse",
- "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero",
+ "The credit must be an integer greater than or equal to zero": "The credit must be an integer greater than or equal to zero",
"The grade must be similar to the last one": "El grade debe ser similar al último",
"Only manager can change the credit": "Solo el gerente puede cambiar el credito de este cliente",
"Name cannot be blank": "El nombre no puede estar en blanco",
@@ -397,5 +397,7 @@
"Incorrect delivery order alert on route": "Alerta de orden de entrega incorrecta en ruta: {{ route }} zona: {{ zone }}",
"Ticket has been delivered out of order": "El ticket {{ticket}} {{{fullUrl}}} no ha sido entregado en su orden.",
"Price cannot be blank": "El precio no puede estar en blanco",
- "clonedFromTicketWeekly": ", que es una linea clonada del ticket {{ticketWeekly}}"
+ "clonedFromTicketWeekly": ", que es una linea clonada del ticket {{ticketWeekly}}",
+ "negativeReplaced": "Sustituido el articulo [#{{oldItemId}}]({{{oldItemUrl}}}) {{oldItem}} por [#{{newItemId}}]({{{newItemUrl}}}) {{newItem}} del ticket [{{ticketId}}]({{{ticketUrl}}})",
+ "duplicateWarehouse": "El almacén seleccionado ya existe en la zona"
}
diff --git a/loopback/locale/fr.json b/loopback/locale/fr.json
index 3fd84e6240..aa1d328ab6 100644
--- a/loopback/locale/fr.json
+++ b/loopback/locale/fr.json
@@ -368,5 +368,7 @@
"ticketLostExpedition": "Le ticket [{{ticketId}}]({{{ticketUrl}}}) a l'expédition perdue suivante : {{expeditionId}}",
"The web user's email already exists": "L'email de l'internaute existe déjà",
"Incorrect delivery order alert on route": "Alerte de bon de livraison incorrect sur l'itinéraire: {{ route }} zone : {{ zone }}",
- "Ticket has been delivered out of order": "Le ticket {{ticket}} de la route {{{fullUrl}}} a été livré hors service."
+ "Ticket has been delivered out of order": "Le ticket {{ticket}} de la route {{{fullUrl}}} a été livré hors service.",
+ "negativeReplaced": "Remplacé l'article [#{{oldItemId}}]({{{oldItemUrl}}}) {{oldItem}} par [#{{newItemId}}]({{{newItemUrl}}}) {{newItem}} du ticket [{{ticketId}}]({{{ticketUrl}}})"
}
+
diff --git a/loopback/locale/pt.json b/loopback/locale/pt.json
index c9811abbd8..74c19d7cf0 100644
--- a/loopback/locale/pt.json
+++ b/loopback/locale/pt.json
@@ -367,5 +367,6 @@
"ticketLostExpedition": "O ticket [{{ticketId}}]({{{ticketUrl}}}) tem a seguinte expedição perdida: {{expeditionId}}",
"The web user's email already exists": "O e-mail do utilizador da web já existe.",
"Incorrect delivery order alert on route": "Alerta de ordem de entrega incorreta na rota: {{ route }} zona: {{ zone }}",
- "Ticket has been delivered out of order": "O ticket {{ticket}} da rota {{{fullUrl}}} foi entregue fora de ordem."
+ "Ticket has been delivered out of order": "O ticket {{ticket}} da rota {{{fullUrl}}} foi entregue fora de ordem.",
+ "negativeReplaced": "Substituído o artigo [#{{oldItemId}}]({{{oldItemUrl}}}) {{oldItem}} por [#{{newItemId}}]({{{newItemUrl}}}) {{newItem}} do ticket [{{ticketId}}]({{{ticketUrl}}})"
}
diff --git a/modules/entry/back/methods/entry-buys/getBuyList.js b/modules/entry/back/methods/entry-buys/getBuyList.js
new file mode 100644
index 0000000000..a038dca02a
--- /dev/null
+++ b/modules/entry/back/methods/entry-buys/getBuyList.js
@@ -0,0 +1,303 @@
+const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
+const buildFilter = require('vn-loopback/util/filter').buildFilter;
+const mergeFilters = require('vn-loopback/util/filter').mergeFilters;
+
+module.exports = Self => {
+ Self.remoteMethodCtx('getBuyList', {
+ description: 'Returns buys for editing of one entry',
+ accessType: 'READ',
+ accepts: [{
+ arg: 'entryFk',
+ type: 'number',
+ required: true,
+ description: 'The entry id',
+ http: {source: 'path'}
+ },
+ {
+ arg: 'filter',
+ type: 'object',
+ description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string'
+ },
+ {
+ arg: 'isIgnored',
+ type: 'boolean',
+ description: 'check if the buy is ignored',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'itemFk',
+ type: 'number',
+ description: 'item id',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'name',
+ type: 'string',
+ description: 'item name',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'size',
+ type: 'number',
+ description: 'item size',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'stickers',
+ type: 'number',
+ description: 'sticker quantity',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'packagingFk',
+ type: 'number',
+ description: 'packaging id',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'weight',
+ type: 'number',
+ description: 'weight',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'packing',
+ type: 'number',
+ description: 'packing quantity',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'grouping',
+ type: 'number',
+ description: 'grouping quantity',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'quantity',
+ type: 'number',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'buyingValue',
+ type: 'number',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'amount',
+ type: 'number',
+ description: 'buying value * quantity',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'price2',
+ type: 'number',
+ description: 'price for the package',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'price3',
+ type: 'number',
+ description: 'price for the box',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'minPrice',
+ type: 'number',
+ description: 'item minimum price',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'packingOut',
+ type: 'number',
+ description: 'quantity of package on a vn box',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'comment',
+ type: 'string',
+ description: 'item comment',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'subName',
+ type: 'string',
+ description: 'supplier name',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'subName',
+ type: 'string',
+ description: 'supplier name',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'company_name',
+ type: 'string',
+ description: 'company name',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'workerFk',
+ type: 'number',
+ description: 'buyer id',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'itemTypeFk',
+ type: 'number',
+ description: 'item family id',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'groupingMode',
+ type: 'string',
+ description: 'grouping mode',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'hasMinPrice',
+ type: 'boolean',
+ description: 'grouping mode',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'groupBy',
+ type: 'string',
+ description: 'group by',
+ http: {source: 'query'}
+ },
+ ],
+ returns: {
+ type: ['object'],
+ root: true
+ },
+ http: {
+ path: `/:entryFk/getBuyList`,
+ verb: 'GET'
+ }
+ });
+
+ Self.getBuyList = async(ctx, entryFk, filter, options) => {
+ const myOptions = {};
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ let conn = Self.dataSource.connector;
+ let where = buildFilter(ctx.args, (param, value) => {
+ switch (param) {
+ case 'name':
+ case 'subName':
+ case 'company_name':
+ case 'comment':
+ return {[param]: {like: `%${value}%`}};
+ case 'size':
+ case 'isIgnored':
+ case 'itemFk':
+ case 'stickers':
+ case 'packagingFk':
+ case 'weight':
+ case 'packing':
+ case 'grouping':
+ case 'quantity':
+ case 'buyingValue':
+ case 'amount':
+ case 'price2':
+ case 'price3':
+ case 'packingOut':
+ case 'minPrice':
+ case 'workerFk':
+ case 'itemTypeFk':
+ case 'groupingMode':
+ case 'hasMinPrice':
+ return {[param]: value};
+ }
+ });
+
+ filter = mergeFilters(filter, {where});
+
+ let stmts = [];
+ let stmt;
+
+ const selectFields = `b.id,
+ b.isIgnored,
+ b.itemFk,
+ b.printedStickers,
+ b.stickers,
+ b.packagingFk,
+ b.weight,
+ b.packing,
+ b.groupingMode,
+ b.grouping,
+ b.quantity,
+ b.buyingValue,
+ ROUND(b.buyingValue * b.quantity, 2) amount,
+ b.isChecked,
+ b.price2,
+ b.price3,
+ i.name,
+ i.size,
+ i.minPrice,
+ i.hasMinPrice,
+ i.packingOut,
+ i.comment,
+ i.subName,
+ i.tag5,
+ i.value5,
+ i.tag6,
+ i.value6,
+ i.tag7,
+ i.value7,
+ i.tag8,
+ i.value8,
+ i.tag9,
+ i.value9,
+ i.tag10,
+ i.value10,
+ s.company_name,
+ ik.hexJson,
+ it.workerFk,
+ it.id itemTypeFk
+ `;
+
+ const groupByFields = `SUM(b.printedStickers) printedStickers,
+ SUM(b.packing) packing,
+ SUM(b.stickers) stickers,
+ SUM(b.weight) weight,
+ SUM(b.quantity) quantity,
+ SUM(ROUND(b.buyingValue * b.quantity, 2)) amount
+ `;
+
+ const groupBy = ctx.args.groupBy;
+
+ stmt = new ParameterizedSQL(
+ `SELECT *
+ FROM(
+ SELECT
+ ${ groupBy ? groupByFields : selectFields}
+ FROM item i
+ LEFT JOIN ink ik ON ik.id = i.inkFk
+ LEFT JOIN buy b ON b.itemFk = i.id
+ LEFT JOIN edi.ekt e ON e.id = b.ektFk
+ LEFT JOIN edi.supplier s ON e.pro = s.supplier_id
+ LEFT JOIN itemType it ON it.id = i.typeFk
+ WHERE b.entryFk = ?
+ ${groupBy ?? ''}
+ ) sub`,
+ [entryFk]
+ );
+
+ stmt.merge(conn.makeSuffix(filter));
+ let itemsIndex = stmts.push(stmt) - 1;
+
+ let sql = ParameterizedSQL.join(stmts, ';');
+ let result = await conn.executeStmt(sql, myOptions);
+
+ if (groupBy && result.length) {
+ const buys = await Self.app.models.Buy.find({where: {entryFk}}, myOptions);
+ const buysChecked = buys.filter(buy => buy?.isChecked);
+ result[0].isChecked = buysChecked.length === buys.length;
+ }
+ return itemsIndex === 0 ? result : result[itemsIndex];
+ };
+};
diff --git a/modules/entry/back/methods/entry-buys/getBuyUltimate.js b/modules/entry/back/methods/entry-buys/getBuyUltimate.js
new file mode 100644
index 0000000000..7322c43b3b
--- /dev/null
+++ b/modules/entry/back/methods/entry-buys/getBuyUltimate.js
@@ -0,0 +1,46 @@
+module.exports = Self => {
+ Self.remoteMethodCtx('getBuyUltimate', {
+ description: 'Returns the last buy of the item',
+ accessType: 'READ',
+ accepts: [
+ {
+ arg: 'itemFk',
+ type: 'number',
+ required: true
+ }, {
+ arg: 'warehouseFk',
+ type: 'number',
+ required: true
+ }, {
+ arg: 'date',
+ type: 'date',
+ required: true
+ }
+ ],
+ returns: {
+ type: 'object',
+ root: true
+ },
+ http: {
+ path: `/getBuyUltimate`,
+ verb: 'GET'
+ }
+ });
+ Self.getBuyUltimate = async(ctx, itemFk, warehouseFk, date, options) => {
+ const myOptions = {};
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ await Self.rawSql('CALL vn.buy_getUltimate(?, ?, ?)', [itemFk, warehouseFk, date], myOptions);
+ return Self.rawSql(
+ `SELECT b.*
+ FROM cache.last_buy lb
+ JOIN buy b ON b.id = lb.buy_id
+ WHERE lb.item_id = ?
+ ORDER BY (lb.warehouse_id = ?) desc
+ LIMIT 1`,
+ [itemFk, warehouseFk], myOptions
+ );
+ };
+};
diff --git a/modules/entry/back/methods/entry/cloneEntry.js b/modules/entry/back/methods/entry/cloneEntry.js
new file mode 100644
index 0000000000..fa4b479060
--- /dev/null
+++ b/modules/entry/back/methods/entry/cloneEntry.js
@@ -0,0 +1,46 @@
+
+module.exports = Self => {
+ Self.remoteMethodCtx('cloneEntry', {
+ description: 'Clones an entry',
+ accessType: 'WRITE',
+ accepts: [{
+ arg: 'id',
+ type: 'number',
+ required: true,
+ description: 'The entry id',
+ http: {source: 'path'}
+ }],
+ returns: {
+ type: 'object',
+ root: true
+ },
+ http: {
+ path: `/:id/cloneEntry`,
+ verb: 'POST'
+ }
+ });
+
+ Self.cloneEntry = async(ctx, id, options) => {
+ const userId = ctx.req.accessToken.userId;
+ const myOptions = {userId};
+ let tx;
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
+ try {
+ await Self.rawSql('CALL entry_clone(?, @newEntryId)', [id], myOptions);
+ const result = await Self.rawSql('SELECT @newEntryId', [], myOptions);
+ const newEntryId = result[0]['@newEntryId'];
+
+ if (tx) await tx.commit();
+ return newEntryId;
+ } catch (e) {
+ if (tx) await tx.rollback();
+ throw e;
+ }
+ };
+};
diff --git a/modules/entry/back/methods/entry/deleteEntry.js b/modules/entry/back/methods/entry/deleteEntry.js
new file mode 100644
index 0000000000..f1701c3551
--- /dev/null
+++ b/modules/entry/back/methods/entry/deleteEntry.js
@@ -0,0 +1,48 @@
+
+module.exports = Self => {
+ Self.remoteMethodCtx('deleteEntry', {
+ description: 'Clones an entry',
+ accessType: 'WRITE',
+ accepts: [{
+ arg: 'id',
+ type: 'number',
+ required: true,
+ description: 'The entry id',
+ http: {source: 'path'}
+ }],
+ http: {
+ path: `/:id/deleteEntry`,
+ verb: 'POST'
+ }
+ });
+
+ Self.deleteEntry = async(ctx, id, options) => {
+ const userId = ctx.req.accessToken.userId;
+ const myOptions = {userId};
+ let tx;
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
+
+ try {
+ const entry = await Self.findById(id, null, myOptions);
+ await entry.updateAttribute('travelFk', null, myOptions);
+ await Self.rawSql('DELETE FROM vn.duaEntry WHERE entryFk = ?;', [id], myOptions);
+ await Self.rawSql(`
+ DELETE i.*
+ FROM vn.invoiceIn i
+ JOIN vn.entry e ON e.invoiceInFk = i.id
+ WHERE e.id = ?`, [id], myOptions
+ );
+
+ if (tx) await tx.commit();
+ } catch (e) {
+ if (tx) await tx.rollback();
+ throw e;
+ }
+ };
+};
diff --git a/modules/entry/back/methods/entry/filter.js b/modules/entry/back/methods/entry/filter.js
index e5eae85fd3..1f5154d74d 100644
--- a/modules/entry/back/methods/entry/filter.js
+++ b/modules/entry/back/methods/entry/filter.js
@@ -129,7 +129,68 @@ module.exports = Self => {
arg: 'finalTemperature',
type: 'number',
description: 'Final temperature value'
- }
+ },
+ {
+ arg: 'isExcludedFromAvailable',
+ type: 'boolean',
+ description: `landing date`
+ },
+ {
+ arg: 'isReceived',
+ type: 'boolean',
+ description: `travel received`
+ },
+ {
+ arg: 'isRaid',
+ type: 'boolean',
+ description: `travel isRaid`
+ },
+ {
+ arg: 'landed',
+ type: 'date',
+ description: `landing date`
+ },
+ {
+ arg: 'invoiceNumber',
+ type: 'string',
+ description: `entry invoice`
+ },
+ {
+ arg: 'reference',
+ type: 'string',
+ description: `entry reference`
+ },
+ {
+ arg: 'awbCode',
+ type: 'string',
+ description: `awb code`
+ },
+ {
+ arg: 'agencyModeId',
+ type: 'number',
+ description: `agency mode id`
+ },
+ {
+ arg: 'evaNotes',
+ type: 'string',
+ description: `observation`
+ },
+ {
+ arg: 'warehouseInFk',
+ type: 'number',
+ description: `warehouse in id`
+ },
+ {
+ arg: 'warehouseOutFk',
+ type: 'number',
+ description: `warehouse out id`
+ },
+ {
+ arg: 'entryTypeCode',
+ type: 'string',
+ description: 'entry type code'
+ },
+
],
returns: {
type: ['object'],
@@ -156,19 +217,12 @@ module.exports = Self => {
{'s.name': {like: `%${value}%`}},
{'s.nickname': {like: `%${value}%`}}
]};
+ case 'invoiceNumber':
+ case 'reference':
case 'ref':
+ case 'evaNotes':
param = `e.${param}`;
return {[param]: {like: `%${value}%`}};
- case 'created':
- return {'e.created': {gte: value}};
- case 'from':
- return {'t.landed': {gte: value}};
- case 'fromShipped':
- return {'t.shipped': {gte: value}};
- case 'to':
- return {'t.landed': {lte: value}};
- case 'toShipped':
- return {'t.shipped': {lte: value}};
case 'id':
case 'isBooked':
case 'isConfirmed':
@@ -178,8 +232,20 @@ module.exports = Self => {
case 'currencyFk':
case 'supplierFk':
case 'invoiceInFk':
- param = `e.${param}`;
- return {[param]: value};
+ case 'isExcludedFromAvailable':
+ return {[`e.${param}`]: value};
+ case 'isReceived':
+ case 'landed':
+ case 'isRaid':
+ case 'warehouseInFk':
+ case 'warehouseOutFk':
+ return {[`t.${param}`]: value};
+ case 'awbCode':
+ return {'a.code': {like: `%${value}%`}};
+ case 'agencyModeId':
+ return {[`am.id`]: value};
+ case 'entryTypeCode':
+ return {[`et.code`]: value};
case 'initialTemperature':
return {'e.initialTemperature': {lte: value}};
case 'finalTemperature':
@@ -197,15 +263,14 @@ module.exports = Self => {
const stmts = [];
let stmt;
stmt = new ParameterizedSQL(
- `SELECT
- e.id,
+ `SELECT e.id,
e.supplierFk,
e.dated,
e.reference,
e.invoiceNumber,
e.isBooked,
e.isExcludedFromAvailable,
- e.evaNotes observation,
+ e.evaNotes,
e.isConfirmed,
e.isOrdered,
t.isRaid,
@@ -227,15 +292,27 @@ module.exports = Self => {
cu.code currencyCode,
t.shipped,
t.landed,
- t.ref AS travelRef,
+ t.ref travelRef,
t.warehouseInFk,
- w.name warehouseInName
+ w.name warehouseInName,
+ t.warehouseOutFk,
+ w2.name warehouseOutName,
+ a.code awbCode,
+ am.id agencyModeId,
+ am.name agencyModeName,
+ et.code entryTypeCode,
+ et.description entryTypeDescription,
+ t.isReceived
FROM vn.entry e
JOIN vn.supplier s ON s.id = e.supplierFk
- JOIN vn.travel t ON t.id = e.travelFk
- JOIN vn.warehouse w ON w.id = t.warehouseInFk
- JOIN vn.company co ON co.id = e.companyFk
- JOIN vn.currency cu ON cu.id = e.currencyFk`
+ LEFT JOIN vn.travel t ON t.id = e.travelFk
+ LEFT JOIN vn.warehouse w ON w.id = t.warehouseInFk
+ LEFT JOIN vn.warehouse w2 ON w2.id = t.warehouseOutFk
+ LEFT JOIN vn.company co ON co.id = e.companyFk
+ LEFT JOIN vn.currency cu ON cu.id = e.currencyFk
+ LEFT JOIN vn.awb a ON a.id = t.awbFk
+ LEFT JOIN vn.agencyMode am ON am.id = t.agencyModeFk
+ LEFT JOIN vn.entryType et ON et.code = e.typeFk`
);
stmt.merge(conn.makeWhere(filter.where));
diff --git a/modules/entry/back/methods/entry/recalcEntryPrices.js b/modules/entry/back/methods/entry/recalcEntryPrices.js
new file mode 100644
index 0000000000..ef90091ec3
--- /dev/null
+++ b/modules/entry/back/methods/entry/recalcEntryPrices.js
@@ -0,0 +1,49 @@
+
+module.exports = Self => {
+ Self.remoteMethodCtx('recalcEntryPrices', {
+ description: 'Clones an entry',
+ accessType: 'WRITE',
+ accepts: [{
+ arg: 'entryFk',
+ type: 'number',
+ required: true,
+ description: 'The entry id',
+ http: {source: 'path'}
+ }],
+ returns: {
+ type: 'object',
+ root: true
+ },
+ http: {
+ path: `/:entryFk/recalcEntryPrices`,
+ verb: 'POST'
+ }
+ });
+
+ Self.recalcEntryPrices = async(ctx, entryFk, options) => {
+ const userId = ctx.req.accessToken.userId;
+ const myOptions = {userId};
+ let tx;
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
+ const entry = await Self.findById(entryFk, myOptions);
+ const entryConfig = await Self.app.models.EntryConfig.findOne({}, myOptions);
+
+ if (entry.supplierFk === entryConfig.inventorySupplierFk) return;
+
+ try {
+ const result = await Self.rawSql('CALL vn.buy_recalcPricesByEntry(?)', [entryFk], myOptions);
+
+ if (tx) await tx.commit();
+ return result[0];
+ } catch (e) {
+ if (tx) await tx.rollback();
+ throw e;
+ }
+ };
+};
diff --git a/modules/entry/back/methods/stock-bought/getStockBought.js b/modules/entry/back/methods/stock-bought/getStockBought.js
index 9768b58e72..e94f2dfb1a 100644
--- a/modules/entry/back/methods/stock-bought/getStockBought.js
+++ b/modules/entry/back/methods/stock-bought/getStockBought.js
@@ -45,7 +45,7 @@ module.exports = Self => {
{
relation: 'user',
scope: {
- fields: ['id', 'name']
+ fields: ['id', 'nickname']
}
}
]
diff --git a/modules/entry/back/model-config.json b/modules/entry/back/model-config.json
index 49c2df2db8..fed2999124 100644
--- a/modules/entry/back/model-config.json
+++ b/modules/entry/back/model-config.json
@@ -31,5 +31,8 @@
},
"InventoryConfig": {
"dataSource": "vn"
+ },
+ "EntryConfig": {
+ "dataSource": "vn"
}
}
diff --git a/modules/entry/back/models/entry-config.json b/modules/entry/back/models/entry-config.json
new file mode 100644
index 0000000000..39d651ab6b
--- /dev/null
+++ b/modules/entry/back/models/entry-config.json
@@ -0,0 +1,30 @@
+{
+ "name": "EntryConfig",
+ "base": "VnModel",
+ "mixins": {
+ "Loggable": true
+ },
+ "options": {
+ "mysql": {
+ "table": "entryConfig"
+ }
+ },
+ "properties": {
+ "defaultEntry": {
+ "type": "number",
+ "id": true
+ },
+ "mailToNotify": {
+ "type": "string"
+ },
+ "inventorySupplierFk": {
+ "type": "number"
+ },
+ "maxLockTime": {
+ "type": "number"
+ },
+ "defaultSupplierFk": {
+ "type": "number"
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/entry/back/models/entry.js b/modules/entry/back/models/entry.js
index 03cbd6e7f9..03bf1a6e2b 100644
--- a/modules/entry/back/models/entry.js
+++ b/modules/entry/back/models/entry.js
@@ -15,8 +15,13 @@ module.exports = Self => {
require('../methods/entry/transfer')(Self);
require('../methods/entry/labelSupplier')(Self);
require('../methods/entry/buyLabelSupplier')(Self);
+ require('../methods/entry-buys/getBuyList')(Self);
+ require('../methods/entry-buys/getBuyUltimate')(Self);
+ require('../methods/entry/cloneEntry')(Self);
+ require('../methods/entry/deleteEntry')(Self);
+ require('../methods/entry/recalcEntryPrices')(Self);
- Self.observe('before save', async function(ctx, options) {
+ Self.observe('before save', async(ctx, options) => {
if (ctx.isNewInstance) return;
const changes = ctx.data || ctx.instance;
diff --git a/modules/entry/back/models/entry.json b/modules/entry/back/models/entry.json
index 1ff0621196..92bf909f18 100644
--- a/modules/entry/back/models/entry.json
+++ b/modules/entry/back/models/entry.json
@@ -56,8 +56,7 @@
"required": true
},
"travelFk": {
- "type": "number",
- "required": true
+ "type": "number"
},
"companyFk": {
"type": "number",
@@ -74,6 +73,12 @@
},
"finalTemperature": {
"type": "number"
+ },
+ "lockerUserFk":{
+ "type": "number"
+ },
+ "locked":{
+ "type": "date"
}
},
"relations": {
@@ -107,6 +112,16 @@
"type": "belongsTo",
"model": "EntryType",
"foreignKey": "typeFk"
- }
+ },
+ "invoiceIn": {
+ "type": "belongsTo",
+ "model": "InvoiceIn",
+ "foreignKey": "invoiceInFk"
+ },
+ "user": {
+ "type": "belongsTo",
+ "model": "VnUser",
+ "foreignKey": "lockerUserFk"
+ }
}
}
diff --git a/modules/invoiceIn/back/methods/invoice-in/toUnbook.js b/modules/invoiceIn/back/methods/invoice-in/toUnbook.js
index c27354d73e..7d63e6a876 100644
--- a/modules/invoiceIn/back/methods/invoice-in/toUnbook.js
+++ b/modules/invoiceIn/back/methods/invoice-in/toUnbook.js
@@ -48,12 +48,10 @@ module.exports = Self => {
}, myOptions);
let asien = bookEntry?.ASIEN;
+ const invoiceIn = await Self.findById(invoiceInId, myOptions);
if (asien) {
accountingEntries = await models.Xdiario.count({ASIEN: asien}, myOptions);
-
await models.Xdiario.destroyAll({ASIEN: asien}, myOptions);
- const invoiceIn = await Self.findById(invoiceInId, myOptions);
- await invoiceIn.updateAttribute('isBooked', false, myOptions);
} else {
const linkedBookEntry = await models.Xdiario.findOne({
fields: ['ASIEN'],
@@ -66,6 +64,8 @@ module.exports = Self => {
asien = linkedBookEntry?.ASIEN;
isLinked = true;
}
+ await invoiceIn.updateAttribute('isBooked', false, myOptions);
+
if (tx) await tx.commit();
return {
diff --git a/modules/item/back/methods/item/getSimilar.js b/modules/item/back/methods/item/getSimilar.js
new file mode 100644
index 0000000000..2479d08b52
--- /dev/null
+++ b/modules/item/back/methods/item/getSimilar.js
@@ -0,0 +1,43 @@
+module.exports = Self => {
+ Self.remoteMethodCtx('getSimilar', {
+ description: 'Returns list of items with similar item requested',
+ accessType: 'READ',
+ accepts: [
+ {
+ arg: 'filter',
+ type: 'Object',
+ required: true,
+ description: 'Filter defining where and paginated data',
+ http: {source: 'query'}
+ }
+ ],
+ returns: {
+ type: ['Object'],
+ root: true
+ },
+ http: {
+ path: `/getSimilar`,
+ verb: 'GET'
+ }
+ });
+
+ Self.getSimilar = async(ctx, filter, options) => {
+ const myOptions = {userId: ctx.req.accessToken.userId};
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ const {where} = filter;
+
+ const query = [
+ filter.itemFk,
+ where.warehouseFk,
+ where.date,
+ where.showType,
+ where.scopeDays
+ ];
+ const [results] = await Self.rawSql('CALL vn.item_getSimilar(?, ?, ?, ?, ?)', query, myOptions);
+
+ return results;
+ };
+};
diff --git a/modules/item/back/methods/item/search.js b/modules/item/back/methods/item/search.js
new file mode 100644
index 0000000000..447e0fadd4
--- /dev/null
+++ b/modules/item/back/methods/item/search.js
@@ -0,0 +1,38 @@
+const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;
+
+module.exports = Self => {
+ Self.remoteMethodCtx('search', {
+ description: 'Returns an array of search results for a specified item',
+ accepts: [{
+ arg: 'filter',
+ type: 'object',
+ description: 'Filter to define conditions and paginate the data.',
+ required: true
+ }],
+ returns: {
+ type: ['object'],
+ root: true
+ },
+ http: {
+ path: `/search`,
+ verb: 'GET'
+ }
+ });
+
+ Self.search = async(ctx, filter) => {
+ const conn = Self.dataSource.connector;
+
+ const stmt = new ParameterizedSQL(`
+ SELECT *
+ FROM(
+ SELECT i.id, i.name, i.size, p.name producerName
+ FROM item i
+ LEFT JOIN producer p ON p.id = i.producerFk
+ ) sub
+ `);
+
+ stmt.merge(conn.makeSuffix(filter));
+
+ return conn.executeStmt(stmt);
+ };
+};
diff --git a/modules/item/back/methods/item/specs/filter.spec.js b/modules/item/back/methods/item/specs/filter.spec.js
index a8aaca786a..6245abea01 100644
--- a/modules/item/back/methods/item/specs/filter.spec.js
+++ b/modules/item/back/methods/item/specs/filter.spec.js
@@ -89,7 +89,7 @@ describe('item filter()', () => {
const ctx = {args: {filter: filter, workerFk: 16}, req: {accessToken: {userId: 1}}};
const result = await models.Item.filter(ctx, filter, options);
- expect(result.length).toEqual(2);
+ expect(result.length).toEqual(3);
expect(result[0].id).toEqual(16);
expect(result[1].id).toEqual(71);
diff --git a/modules/item/back/methods/item/specs/getSimilar.spec.js b/modules/item/back/methods/item/specs/getSimilar.spec.js
new file mode 100644
index 0000000000..5dec077b66
--- /dev/null
+++ b/modules/item/back/methods/item/specs/getSimilar.spec.js
@@ -0,0 +1,49 @@
+const models = require('vn-loopback/server/server').models;
+
+describe('Item get similar', () => {
+ let options;
+ let tx;
+ const ctx = beforeAll.getCtx();
+ beforeAll.mockLoopBackContext();
+ beforeEach(async() => {
+ tx = await models.Item.beginTransaction({});
+ options = {transaction: tx};
+ });
+
+ afterEach(async() => {
+ if (tx)
+ await tx.rollback();
+ });
+
+ it('should return similar items', async() => {
+ const filter = {
+ itemFk: 88, sales: 43,
+ where: {
+ 'scopeDays': '2',
+ 'showType': true,
+ 'alertLevelCode': 'FREE',
+ 'date': '2001-01-01T11:00:00.000Z',
+ 'warehouseFk': 1
+ }
+ };
+ const result = await models.Item.getSimilar(ctx, filter, options);
+
+ expect(result.length).toEqual(2);
+ });
+
+ it('should return empty array is if not exists', async() => {
+ const filter = {
+ itemFk: 88, sales: 43,
+ where: {
+ 'scopeDays': '2',
+ 'showType': true,
+ 'alertLevelCode': 'FREE',
+ 'date': '2001-01-01T11:00:00.000Z',
+ 'warehouseFk': 60
+ }
+ };
+ const result = await models.Item.getSimilar(ctx, filter, options);
+
+ expect(result.length).toEqual(0);
+ });
+});
diff --git a/modules/item/back/methods/tag/specs/filterValue.spec.js b/modules/item/back/methods/tag/specs/filterValue.spec.js
index 9e5cf2da26..5bac40f61e 100644
--- a/modules/item/back/methods/tag/specs/filterValue.spec.js
+++ b/modules/item/back/methods/tag/specs/filterValue.spec.js
@@ -26,7 +26,7 @@ describe('tag filterValue()', () => {
const filter = {where: {value: 'Blue'}, limit: 5};
const result = await models.Tag.filterValue(colorTagId, filter, options);
- expect(result.length).toEqual(2);
+ expect(result.length).toEqual(3);
expect(result[0].value).toEqual('Blue');
expect(result[1].value).toEqual('Blue/Silver');
diff --git a/modules/item/back/models/ink.json b/modules/item/back/models/ink.json
index 6a39daafe3..4bed79e76c 100644
--- a/modules/item/back/models/ink.json
+++ b/modules/item/back/models/ink.json
@@ -17,6 +17,9 @@
},
"showOrder": {
"type": "number"
+ },
+ "hexJson": {
+ "type": "string"
}
},
"acls": [
diff --git a/modules/item/back/models/item.js b/modules/item/back/models/item.js
index 44a51594cd..5ecd174057 100644
--- a/modules/item/back/models/item.js
+++ b/modules/item/back/models/item.js
@@ -5,6 +5,7 @@ module.exports = Self => {
require('../methods/item/clone')(Self);
require('../methods/item/updateTaxes')(Self);
require('../methods/item/getBalance')(Self);
+ require('../methods/item/getSimilar')(Self);
require('../methods/item/lastEntriesFilter')(Self);
require('../methods/item/getSummary')(Self);
require('../methods/item/getCard')(Self);
@@ -17,6 +18,7 @@ module.exports = Self => {
require('../methods/item/buyerWasteEmail')(Self);
require('../methods/item/setVisibleDiscard')(Self);
require('../methods/item/get')(Self);
+ require('../methods/item/search')(Self);
Self.validatesPresenceOf('originFk', {message: 'Cannot be blank'});
diff --git a/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js b/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js
index 0acc6c1a7b..73264ad546 100644
--- a/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js
+++ b/modules/route/back/methods/route/specs/getSuggestedTickets.spec.js
@@ -31,9 +31,9 @@ describe('route getSuggestedTickets()', () => {
const length = result.length;
const anyResult = result[Math.floor(Math.random() * Math.floor(length))];
- expect(result.length).toEqual(4);
+ expect(result.length).toEqual(5);
expect(anyResult.zoneFk).toEqual(1);
- expect(anyResult.agencyModeFk).toEqual(8);
+ expect([1, 8]).toContain(anyResult.agencyModeFk);
await tx.rollback();
} catch (e) {
diff --git a/modules/route/back/methods/route/specs/unlink.spec.js b/modules/route/back/methods/route/specs/unlink.spec.js
index 808cedccc1..9d1f48be8b 100644
--- a/modules/route/back/methods/route/specs/unlink.spec.js
+++ b/modules/route/back/methods/route/specs/unlink.spec.js
@@ -14,7 +14,7 @@ describe('route unlink()', () => {
let tickets = await models.Route.getSuggestedTickets(routeId, options);
expect(zoneAgencyModes.length).toEqual(4);
- expect(tickets.length).toEqual(3);
+ expect(tickets.length).toEqual(4);
await models.Route.unlink(agencyModeId, zoneId, options);
diff --git a/modules/route/back/models/roadmap.json b/modules/route/back/models/roadmap.json
index 1434b1602f..ff3ff38c11 100644
--- a/modules/route/back/models/roadmap.json
+++ b/modules/route/back/models/roadmap.json
@@ -33,7 +33,7 @@
"observations": {
"type": "string"
},
- "userFk": {
+ "editorFk": {
"type": "number"
},
"price": {
diff --git a/modules/route/back/models/roadmapStop.json b/modules/route/back/models/roadmapStop.json
index d34cee6e50..782a507610 100644
--- a/modules/route/back/models/roadmapStop.json
+++ b/modules/route/back/models/roadmapStop.json
@@ -15,16 +15,13 @@
"roadmapFk": {
"type": "number"
},
- "addressFk": {
- "type": "number"
- },
"eta": {
"type": "date"
},
"description": {
"type": "string"
},
- "userFk": {
+ "editorFk": {
"type": "number"
}
},
@@ -37,7 +34,7 @@
"address": {
"type": "belongsTo",
"model": "RoadmapAddress",
- "foreignKey": "addressFk"
+ "foreignKey": "roadmapAddressFk"
}
}
}
diff --git a/modules/supplier/back/methods/supplier/specs/getItemsPackaging.spec.js b/modules/supplier/back/methods/supplier/specs/getItemsPackaging.spec.js
index 66b328bb08..2bda3f1e85 100644
--- a/modules/supplier/back/methods/supplier/specs/getItemsPackaging.spec.js
+++ b/modules/supplier/back/methods/supplier/specs/getItemsPackaging.spec.js
@@ -7,6 +7,6 @@ describe('Supplier getItemsPackaging()', () => {
expect(item.id).toEqual(1);
expect(item.name).toEqual('Ranged weapon longbow 200cm');
expect(item.quantity).toEqual(5000);
- expect(item.quantityTotal).toEqual(5100);
+ expect(item.quantityTotal).toEqual(5200);
});
});
diff --git a/modules/ticket/back/methods/boxing/getVideo.js b/modules/ticket/back/methods/boxing/getVideo.js
index 6f471e837f..fe951a3705 100644
--- a/modules/ticket/back/methods/boxing/getVideo.js
+++ b/modules/ticket/back/methods/boxing/getVideo.js
@@ -49,7 +49,7 @@ module.exports = Self => {
ps.monitorId,
e.created
FROM expedition e
- JOIN host h ON Convert(h.code USING utf8mb3) COLLATE utf8mb3_unicode_ci = e.hostFk
+ JOIN host h ON h.code = e.hostFk
JOIN packingSite ps ON ps.hostFk = h.id
WHERE e.id = ?;`;
const [expedition] = await models.Expedition.rawSql(query, [id]);
diff --git a/modules/ticket/back/methods/boxing/getVideoList.js b/modules/ticket/back/methods/boxing/getVideoList.js
index ba989936e5..41930c7f7d 100644
--- a/modules/ticket/back/methods/boxing/getVideoList.js
+++ b/modules/ticket/back/methods/boxing/getVideoList.js
@@ -44,12 +44,14 @@ module.exports = Self => {
ps.monitorId,
e.created
FROM expedition e
- JOIN host h ON Convert(h.code USING utf8mb3) COLLATE utf8mb3_unicode_ci = e.hostFk
- JOIN packingSite ps ON ps.hostFk = h.id
+ JOIN host h ON h.code = e.hostFk
+ JOIN packingSite ps ON ps.hostFk = h.id
WHERE e.id = ?;`;
- const [expedition] = await models.PackingSiteConfig.rawSql(query, [id]);
+
+ const [expedition] = await models.PackingSiteConfig.rawSql(query, [id], myOptions);
if (!from && !expedition) return [];
+
let start = new Date(expedition.created);
let end = new Date(start.getTime() + (packingSiteConfig.avgBoxingTime * 1000));
@@ -57,9 +59,13 @@ module.exports = Self => {
start.setHours(from, 0, 0);
end.setHours(to, 0, 0);
}
+
const offset = start.getTimezoneOffset();
start = new Date(start.getTime() - (offset * 60 * 1000));
end = new Date(end.getTime() - (offset * 60 * 1000));
+ const minutes = start.getMinutes();
+ const roundedMinutes = minutes - (minutes % 15);
+ start.setMinutes(roundedMinutes, 0, 0);
const videoUrl =
`/${packingSiteConfig.shinobiToken}/videos/${packingSiteConfig.shinobiGroupKey}/${expedition.monitorId}`;
@@ -73,6 +79,7 @@ module.exports = Self => {
} catch (e) {
return [];
}
+
return response.data.videos.map(video => video.filename);
};
};
diff --git a/modules/ticket/back/methods/boxing/specs/getVideoList.spec.js b/modules/ticket/back/methods/boxing/specs/getVideoList.spec.js
index c6d1a3e07c..82780c5866 100644
--- a/modules/ticket/back/methods/boxing/specs/getVideoList.spec.js
+++ b/modules/ticket/back/methods/boxing/specs/getVideoList.spec.js
@@ -2,35 +2,28 @@ const models = require('vn-loopback/server/server').models;
const axios = require('axios');
describe('boxing getVideoList()', () => {
- it('should return video list', async() => {
- const tx = await models.PackingSiteConfig.beginTransaction({});
+ let tx;
+ let options;
- try {
- const options = {transaction: tx};
+ beforeEach(async() => {
+ tx = await models.PackingSiteConfig.beginTransaction({});
+ options = {transaction: tx};
+ });
- const id = 1;
- const from = 1;
- const to = 2;
+ afterEach(async() => {
+ await tx.rollback();
+ });
- const response = {
- data: {
- videos: [{
- id: 1,
- filename: 'video1.mp4'
- }]
- }
- };
+ it('should make the correct API call', async() => {
+ const expedition = await models.Expedition.findById(15, null, options);
+ await expedition.updateAttribute('created', '2000-12-01 07:07:00', options);
- spyOn(axios, 'get').and.returnValue(new Promise(resolve => resolve(response)));
+ const axiosSpy = spyOn(axios, 'get').and.callThrough();
+ await models.Boxing.getVideoList(expedition.id, undefined, undefined, options);
- const result = await models.Boxing.getVideoList(id, from, to, options);
+ const expectedStartTime = '2000-12-01T07:00:00';
+ const calledUrl = axiosSpy.calls.mostRecent().args[0];
- expect(result[0]).toEqual(response.data.videos[0].filename);
-
- await tx.rollback();
- } catch (e) {
- await tx.rollback();
- throw e;
- }
+ expect(calledUrl).toContain(`start=${expectedStartTime}`);
});
});
diff --git a/modules/ticket/back/methods/sale/replaceItem.js b/modules/ticket/back/methods/sale/replaceItem.js
new file mode 100644
index 0000000000..b1702f17f5
--- /dev/null
+++ b/modules/ticket/back/methods/sale/replaceItem.js
@@ -0,0 +1,99 @@
+
+module.exports = Self => {
+ Self.remoteMethodCtx('replaceItem', {
+ description: 'Replace item from sale',
+ accessType: 'WRITE',
+ accepts: [
+ {
+ arg: 'saleFk',
+ type: 'number',
+ required: true,
+ },
+ {
+ arg: 'substitutionFk',
+ type: 'number',
+ required: true
+ },
+ {
+ arg: 'quantity',
+ type: 'number',
+ required: true
+ }
+ ],
+ returns: {
+ type: 'object',
+ root: true
+ },
+ http: {
+ path: `/replaceItem`,
+ verb: 'POST'
+ }
+ });
+
+ Self.replaceItem = async(ctx, saleFk, substitutionFk, quantity, options) => {
+ const myOptions = {userId: ctx.req.accessToken.userId};
+ let tx;
+ const $t = ctx.req.__;
+
+ const models = Self.app.models;
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
+
+ try {
+ const replaceItemQuery = {
+ sql: 'CALL sale_replaceItem(?,?,?)',
+ query: [saleFk, substitutionFk, quantity]
+ };
+ const resultReplaceItem = await Self.rawSql(replaceItemQuery.sql, replaceItemQuery.query, myOptions);
+ const sale = await models.Sale.findById(saleFk, {
+ fields: ['id', 'ticketFk', 'itemFk', 'quantity', 'price'],
+ include: [
+ {
+ relation: 'ticket',
+ scope: {
+ fields: ['id']
+ },
+ }, {
+ relation: 'item',
+ scope: {
+ fields: ['id', 'name', 'longName']
+ }
+ }
+ ]
+ }, myOptions);
+
+ const salesPersonQuery = {
+ sql: 'SELECT vn.client_getSalesPersonByTicket(?)',
+ query: [sale.ticketFk]
+ };
+ const salesPerson = await Self.rawSql(salesPersonQuery.sql, salesPersonQuery.query, myOptions);
+ const url = await models.Url.getUrl();
+ const substitution = await models.Item.findById(substitutionFk, {
+ fields: ['id', 'name', 'longName']
+ }, myOptions);
+
+ const message = $t('negativeReplaced', {
+ oldItemId: sale.itemFk,
+ oldItem: sale.item().longName,
+ oldItemUrl: `${url}item/${sale.itemFk}/summary`,
+ newItemId: substitution.id,
+ newItem: substitution.longName,
+ newItemUrl: `${url}item/${substitution.id}/summary`,
+ ticketId: sale.ticketFk,
+ ticketUrl: `${url}ticket/${sale.ticketFk}/sale`
+ });
+ await models.Chat.sendCheckingPresence(ctx, salesPerson.id, message);
+
+ return resultReplaceItem;
+ } catch (e) {
+ if (tx) await tx.rollback();
+ throw e;
+ }
+ };
+};
diff --git a/modules/ticket/back/methods/sale/specs/replaceItem.spec.js b/modules/ticket/back/methods/sale/specs/replaceItem.spec.js
new file mode 100644
index 0000000000..6cb91aacef
--- /dev/null
+++ b/modules/ticket/back/methods/sale/specs/replaceItem.spec.js
@@ -0,0 +1,61 @@
+const {models} = require('vn-loopback/server/server');
+
+describe('Sale - replaceItem function', () => {
+ let options;
+ let tx;
+ const ctx = beforeAll.getCtx();
+ beforeAll.mockLoopBackContext();
+ beforeEach(async() => {
+ tx = await models.Sale.beginTransaction({});
+ options = {transaction: tx};
+ });
+
+ afterEach(async() => {
+ if (tx)
+ await tx.rollback();
+ });
+
+ it('should replace full item in sale and send notification', async() => {
+ const saleFk = 43;
+ const substitutionFk = 3;
+ const quantity = 15;
+ const ticketFk = 1000000;
+
+ const salesBefore = await models.Sale.find({where: {ticketFk}}, options);
+ const salesLength = salesBefore.length;
+
+ expect(1).toEqual(salesBefore.length);
+
+ await models.Sale.replaceItem(ctx, saleFk, substitutionFk, quantity, options);
+ const salesAfter = await models.Sale.find({where: {ticketFk}}, options);
+
+ expect(salesLength).toBeLessThan(salesAfter.length);
+ expect(salesAfter[0].id).toEqual(saleFk);
+ expect(salesAfter[salesLength].itemFk).toEqual(substitutionFk);
+ expect(salesAfter[salesLength].quantity).toEqual(quantity);
+ expect(salesAfter[0].quantity).toEqual(0);
+ expect(salesAfter[salesLength].concept).toMatch(/^\+/);
+ });
+
+ it('should replace half item in sale and send notification', async() => {
+ const saleFk = 43;
+ const substitutionFk = 3;
+ const quantity = 10;
+ const ticketFk = 1000000;
+
+ const salesBefore = await models.Sale.find({where: {ticketFk}}, options);
+ const salesLength = salesBefore.length;
+
+ expect(1).toEqual(salesBefore.length);
+
+ await models.Sale.replaceItem(ctx, saleFk, substitutionFk, quantity, options);
+ const salesAfter = await models.Sale.find({where: {ticketFk}}, options);
+
+ expect(salesLength).toBeLessThan(salesAfter.length);
+ expect(salesAfter[0].id).toEqual(saleFk);
+ expect(salesAfter[salesLength].itemFk).toEqual(substitutionFk);
+ expect(salesAfter[salesLength].quantity).toEqual(quantity);
+ expect(salesAfter[0].quantity).toEqual(5);
+ expect(salesAfter[salesLength].concept).toMatch(/^\+/);
+ });
+});
diff --git a/modules/ticket/back/methods/ticket/closeAll.js b/modules/ticket/back/methods/ticket/closeAll.js
index 104be67bc4..932a25776a 100644
--- a/modules/ticket/back/methods/ticket/closeAll.js
+++ b/modules/ticket/back/methods/ticket/closeAll.js
@@ -1,4 +1,5 @@
-const closure = require('./closure');
+const smtp = require('vn-print/core/smtp');
+const config = require('vn-print/core/config');
module.exports = Self => {
Self.remoteMethodCtx('closeAll', {
@@ -25,35 +26,57 @@ module.exports = Self => {
Self.closeAll = async(ctx, options) => {
const userId = ctx.req.accessToken.userId;
const myOptions = {userId};
-
+ let tx;
if (typeof options == 'object')
Object.assign(myOptions, options);
- let tx;
- // IMPORTANT: Due to its high cost in production, wrapping this process in a transaction may cause timeouts.
-
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
const toDate = Date.vnNew();
toDate.setHours(0, 0, 0, 0);
toDate.setDate(toDate.getDate() - 1);
+ const [{dateFrom, dateTo}] = await Self.rawSql(`
+ SELECT ? - INTERVAL closureDaysAgo DAY dateFrom,
+ util.dayEnd(?) dateTo
+ FROM ticketConfig
+ LIMIT 1`, [toDate, toDate], myOptions);
- const tickets = await Self.rawSql(`
- SELECT t.id,
+ await Self.rawSql(`
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket_close;
+ CREATE TEMPORARY TABLE tmp.ticket_close
+ ENGINE = MEMORY
+ WITH wTickets AS(
+ SELECT t.id ticketFk
+ FROM ticket t
+ JOIN warehouse wh ON wh.id = t.warehouseFk AND wh.hasComission
+ WHERE t.shipped BETWEEN ? AND ?
+ AND t.refFk IS NULL
+ ), wTicketsTracking AS(
+ SELECT wt.ticketFk, MAX(tt.id) maxTracking
+ FROM wTickets wt
+ JOIN ticketTracking tt ON tt.ticketFk = wt.ticketFk
+ GROUP BY tt.ticketFk
+ ), wTicketsLastState AS(
+ SELECT wt.ticketFk, tt.stateFk
+ FROM wTicketsTracking wt
+ JOIN ticketTracking tt ON tt.id = wt.maxTracking
+ ) SELECT tls.ticketFk,
t.clientFk,
- t.companyFk,
- c.id clientFk,
c.name clientName,
c.email recipient,
- c.departmentFk,
- c.isToBeMailed,
- c.hasToInvoice,
- co.hasDailyInvoice,
- d.notificationEmail,
- t.addressFk
- FROM ticket t
+ eu.email salesPersonEmail,
+ t.addressFk,
+ c.hasDailyInvoice,
+ c.hasToInvoiceByAddress,
+ t.totalWithVat,
+ t.companyFk
+ FROM wTicketsLastState tls
+ JOIN ticket t ON t.id = tls.ticketFk
+ JOIN state s ON s.id =tls.stateFk
+ JOIN alertLevel al ON al.id = s.alertLevel
JOIN agencyMode am ON am.id = t.agencyModeFk
- JOIN warehouse wh ON wh.id = t.warehouseFk AND wh.hasComission
- JOIN ticketState ts ON ts.ticketFk = t.id
- JOIN alertLevel al ON al.id = ts.alertLevel
JOIN client c ON c.id = t.clientFk
JOIN province p ON p.id = c.provinceFk
JOIN country co ON co.id = p.countryFk
@@ -140,6 +163,10 @@ module.exports = Self => {
FROM ticketNotInvoiceable`, [toDate, toDate], myOptions);
await closure(ctx, Self, tickets, myOptions);
+ LEFT JOIN account.emailUser eu ON eu.userFk = c.salesPersonFk
+ WHERE (al.code = 'PACKED' OR (am.code = 'refund' AND al.code <> 'delivered'));
+ CALL ticket_close();
+ `, [dateFrom, dateTo], myOptions);
await Self.rawSql(`
UPDATE ticket t
@@ -150,17 +177,100 @@ module.exports = Self => {
JOIN ticketConfig tc ON TRUE
LEFT JOIN ticketObservation tob ON tob.ticketFk = t.id
SET t.routeFk = NULL
- WHERE t.shipped BETWEEN ? - INTERVAL tc.closureDaysAgo DAY AND util.dayEnd(?)
+ WHERE t.shipped BETWEEN ? AND ?
AND al.code NOT IN ('DELIVERED', 'PACKED')
AND NOT t.packages
AND tob.id IS NULL
- AND t.routeFk`, [toDate, toDate], myOptions);
+ AND t.routeFk`, [dateFrom, dateTo], myOptions);
+
+ const [clients] = await Self.rawSql(`
+ SELECT clientFk clientId,
+ clientName,
+ recipient,
+ salesPersonEmail,
+ addressFk addressId,
+ companyFk,
+ SUM(totalWithVat) total,
+ 'quick' serialType
+ FROM tmp.ticket_close
+ WHERE hasDailyInvoice
+ GROUP BY IF (hasToInvoiceByAddress, addressFk, clientFk), companyFk
+ HAVING total > 0;
+ DROP TEMPORARY TABLE tmp.ticket_close;
+ `, [], myOptions);
if (tx)
await tx.commit();
+ const failedClients = [];
+ const nestedTransaction = options?.transaction ? myOptions : {};
+ for (const client of clients) {
+ ctx.args = {
+ ...client,
+ invoiceDate: Date.vnNew(),
+ maxShipped: toDate
+ };
+ try {
+ const id = await Self.app.models.InvoiceOut.invoiceClient(ctx, nestedTransaction);
+ if (id)
+ await Self.app.models.InvoiceOut.makePdfAndNotify(ctx, id, null, nestedTransaction);
+ } catch (error) {
+ await Self.rawSql(`
+ INSERT INTO util.debug (variable, value)
+ VALUES ('invoicingTicketError', ?)
+ `, [client.clientId + ' - ' + error]);
+
+ if (error.responseCode == 450) {
+ await invalidEmail(client);
+ continue;
+ }
+
+ failedClients.push({
+ id: client.clientId,
+ address: client.addressId,
+ error
+ });
+ }
+ }
+
+ if (failedClients.length > 0) {
+ let body = 'This following tickets have failed:
';
+
+ for (const client of failedClients) {
+ body += `Client: ${client.id}
+ Address: ${client.address}
+
${client.error}
`;
+ }
+
+ smtp.send({
+ to: config.app.reportEmail,
+ subject: '[API] Nightly ticket closure report',
+ html: body,
+ }).catch(err => console.error(err));
+ }
+
return {
message: 'Success'
};
};
+
+ async function invalidEmail(client) {
+ await Self.rawSql(
+ `UPDATE client SET email = NULL WHERE id = ?`,
+ [client.clientId],
+ myOptions
+ );
+
+ const body = `No se ha podido facturar al cliente ${client.clientId} - ${client.clientName}
+ porque la dirección de email "${client.recipient}" no es correcta
+ o no está disponible.
+ Para evitar que se repita este error, se ha eliminado la dirección de email de la ficha del cliente.
+ Actualiza la dirección de email con una correcta.`;
+
+ smtp.send({
+ to: client.salesPersonEmail,
+ subject: 'No se ha podido enviar el albarán',
+ html: body,
+ }).catch(err => console.error(err));
+ }
};
diff --git a/modules/ticket/back/methods/ticket/getSales.js b/modules/ticket/back/methods/ticket/getSales.js
index 3b5ee21a67..574fd36732 100644
--- a/modules/ticket/back/methods/ticket/getSales.js
+++ b/modules/ticket/back/methods/ticket/getSales.js
@@ -98,6 +98,7 @@ module.exports = Self => {
for (let sale of sales) {
const problems = saleProblems.get(sale.id);
+ sale.claim = claimedSales.get(sale.id);
if (problems) {
for (const problem in problems)
sale[problem] = problems[problem];
diff --git a/modules/ticket/back/methods/ticket/itemLack.js b/modules/ticket/back/methods/ticket/itemLack.js
new file mode 100644
index 0000000000..7cda324598
--- /dev/null
+++ b/modules/ticket/back/methods/ticket/itemLack.js
@@ -0,0 +1,111 @@
+module.exports = Self => {
+ Self.remoteMethod('itemLack', {
+ description: 'Get tickets as negative status',
+ accessType: 'READ',
+ accepts: [
+ {
+ arg: 'ctx',
+ type: 'object',
+ http: {source: 'context'}
+ },
+ {
+ arg: 'filter',
+ type: 'object',
+ description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
+ http: {source: 'query'}
+ },
+ {
+ arg: 'id',
+ type: 'number',
+ description: 'The item id',
+ },
+ {
+ arg: 'longname',
+ type: 'string',
+ description: 'Article name',
+ },
+ {
+ arg: 'supplier',
+ type: 'string',
+ description: 'Supplier id',
+ },
+ {
+ arg: 'colour',
+ type: 'string',
+ description: 'Colour\'s item',
+ },
+ {
+ arg: 'size',
+ type: 'string',
+ description: 'Size\'s item',
+ },
+ {
+ arg: 'origen',
+ type: 'string',
+ description: 'origen id',
+ },
+ {
+ arg: 'warehouseFk',
+ type: 'number',
+ description: 'The warehouse id',
+ },
+ {
+ arg: 'lack',
+ type: 'number',
+ description: 'The item id',
+ },
+ {
+ arg: 'days',
+ type: 'number',
+ description: 'The range days',
+ }
+ ],
+ returns: [
+ {
+ arg: 'body',
+ type: ['object'],
+ root: true
+ }
+ ],
+ http: {
+ path: `/itemLack`,
+ verb: 'GET'
+ }
+ });
+
+ Self.itemLack = async(ctx, filter, options) => {
+ const myOptions = {};
+
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ const filterKeyOrder = [
+ 'id', 'force', 'days', 'longname', 'supplier',
+ 'colour', 'size', 'originFk',
+ 'lack', 'warehouseFk'
+ ];
+
+ delete ctx?.args?.ctx;
+
+ delete ctx?.args?.filter;
+
+ Object.assign(filter, ctx.args ?? {});
+
+ let procedureParams = [];
+ procedureParams.push(...filterKeyOrder.map(clave => filter[clave] ?? null));
+
+ // Default values
+ const forceIndex = filterKeyOrder.indexOf('force');
+ if (!procedureParams[forceIndex])procedureParams[forceIndex] = true;
+ const daysIndex = filterKeyOrder.indexOf('days');
+ if (!procedureParams[daysIndex])procedureParams[daysIndex] = 2;
+ const procedureArgs = Array(procedureParams.length).fill('?').join(', ');
+
+ let query = `CALL vn.item_getLack(${procedureArgs})`;
+
+ const result = await Self.rawSql(query, procedureParams, myOptions);
+
+ const itemsIndex = 0;
+ return result[itemsIndex];
+ };
+};
diff --git a/modules/ticket/back/methods/ticket/itemLackDetail.js b/modules/ticket/back/methods/ticket/itemLackDetail.js
new file mode 100644
index 0000000000..fb8ce682f6
--- /dev/null
+++ b/modules/ticket/back/methods/ticket/itemLackDetail.js
@@ -0,0 +1,167 @@
+const {ParameterizedSQL} = require('loopback-connector');
+
+module.exports = Self => {
+ Self.remoteMethod('itemLackDetail', {
+ description: 'Retrieve detail from ticket as negative',
+ accessType: 'READ',
+ accepts: [
+ {
+ arg: 'itemFk',
+ type: 'number',
+ description: 'The item as negative status',
+ },
+ {
+ arg: 'filter',
+ type: 'object',
+ description: 'Filter defining where, order, offset, and limit - must be a JSON-encoded string',
+ http: {source: 'query'}
+ }
+ ],
+ returns: [
+ {
+ arg: 'body',
+ type: ['object'],
+ root: true,
+ },
+ ],
+ http: {
+ path: `/itemLack/:itemFk`,
+ verb: 'GET',
+ },
+ });
+
+ Self.itemLackDetail = async(itemFk, filter, options) => {
+ const conn = Self.dataSource.connector;
+
+ const myOptions = {};
+ if (typeof options == 'object') Object.assign(myOptions, options);
+ const vDated = (Date.vnNew());
+ vDated.setHours(0, 0, 0, 0);
+ const scopeDays = filter.where.scopeDays ?? 0;
+ let alertLevels = filter.where.alertLevelCode;
+
+ if (!alertLevels)
+ alertLevels = (await Self.app.models.AlertLevel.find({fields: ['code']})).map(({code}) => code);
+
+ const stmt = new ParameterizedSQL(`
+ SELECT s.id,
+ st.code,
+ t.id,
+ t.nickname,
+ c.id customerId,
+ t.shipped,
+ s.quantity,
+ ag.name,
+ ag.id agencyFk,
+ tls.alertLevel alertLevel,
+ st.name stateName,
+ s.id saleFk,
+ s.itemFk,
+ s.price price,
+ al.code alertLevelCode,
+ z.name zoneName,
+ z.id zoneFk,
+ z.hour theoreticalhour,
+ cn.isRookie,
+ sc.saleClonedFk turno,
+ tr.saleFk peticionCompra,
+ DATE_FORMAT(IF(HOUR(t.shipped), t.shipped, IF(zc.hour, zc.hour, z.hour)),'%H:%i') minTimed,
+ FALSE isBasket,
+ substitution.hasObservation,
+ (d.code = 'spainTeamVip') hasToIgnore
+ FROM sale s
+ LEFT JOIN saleGroupDetail sgd ON sgd.saleFk = s.id
+ JOIN ticket t ON t.id = s.ticketFk
+ LEFT JOIN zone z ON z.id = t.zoneFk
+ LEFT JOIN zoneClosure zc ON zc.zoneFk = t.zoneFk
+ AND t.shipped BETWEEN zc.dated AND util.dayEnd(t.shipped)
+ JOIN client c ON c.id=t.clientFk
+ LEFT JOIN bs.clientNewBorn cn ON cn.clientFk=c.id
+ JOIN agencyMode ag ON ag.id=t.agencyModeFk
+ JOIN ticketState tls ON tls.ticketFk=t.id
+ LEFT JOIN state st ON st.id=tls.state
+ LEFT JOIN alertLevel al ON al.id = st.alertLevel
+ LEFT JOIN saleCloned sc ON sc.saleClonedFk = s.id
+ LEFT JOIN ticketRequest tr ON tr.saleFk = s.id
+ LEFT JOIN workerDepartment wd ON wd.workerFk = c.salesPersonFk
+ LEFT JOIN department d ON d.id = wd.departmentFk
+ LEFT JOIN (
+ SELECT co.clientFk, COUNT(*) hasObservation
+ FROM clientObservation co
+ JOIN observationType ot ON ot.id = co.observationTypeFk
+ WHERE ot.code = 'substitution'
+ GROUP BY co.clientFk
+ ) substitution ON substitution.clientFk = c.id
+ WHERE t.warehouseFk = ?
+ AND s.itemFk = ?
+ AND s.quantity <> 0
+
+ AND t.shipped BETWEEN ? AND (? + INTERVAL ? DAY)
+
+ AND sgd.saleFk IS NULL
+ AND (al.code IN (?) OR al.id IS NULL)
+ UNION ALL
+ SELECT r.id,
+ NULL,
+ r.orderFk,
+ c.name customerName,
+ c.id customerId,
+ r.shipment,
+ r.amount,
+ ag.name,
+ ag.id,
+ NULL,
+ NULL,
+ NULL,
+ r.itemFk,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ cn.isRookie,
+ NULL,
+ NULL,
+ NULL,
+ TRUE,
+ substitution.hasObservation,
+ d.code = 'spainTeamVip'
+ FROM hedera.orderRow r
+ JOIN hedera.order o ON o.id = r.orderFk
+ JOIN client c ON c.id = o.customer_id
+ JOIN agencyMode ag ON ag.id=o.agency_id
+ LEFT JOIN bs.clientNewBorn cn ON cn.clientFk=c.id
+ LEFT JOIN workerDepartment wd ON wd.workerFk = c.salesPersonFk
+ LEFT JOIN department d ON d.id = wd.departmentFk
+ LEFT JOIN (
+ SELECT co.clientFk, COUNT(*) hasObservation
+ FROM clientObservation co
+ JOIN observationType ot ON ot.id = co.observationTypeFk
+ WHERE ot.code = 'substitution'
+ GROUP BY co.clientFk
+ ) substitution ON substitution.clientFk = c.id
+ WHERE r.shipment BETWEEN ? AND ? + INTERVAL ? DAY
+ AND r.created >= ?
+ AND r.warehouseFk = ?
+ AND NOT o.confirmed
+ AND r.itemFk = ?
+ AND r.amount
+ ORDER BY hasToIgnore, isBasket
+ `,
+ [
+ filter.where.warehouseFk,
+ itemFk,
+ vDated, vDated,
+ scopeDays,
+ alertLevels,
+ scopeDays,
+ vDated, vDated, vDated,
+ filter.where.warehouseFk,
+ itemFk
+ ]);
+
+ const sql = ParameterizedSQL.join([stmt], ';');
+ const result = await conn.executeStmt(sql, myOptions);
+ return result;
+ };
+};
diff --git a/modules/ticket/back/methods/ticket/specs/itemLack.spec.js b/modules/ticket/back/methods/ticket/specs/itemLack.spec.js
new file mode 100644
index 0000000000..c746d989d9
--- /dev/null
+++ b/modules/ticket/back/methods/ticket/specs/itemLack.spec.js
@@ -0,0 +1,80 @@
+const {models} = require('vn-loopback/server/server');
+
+describe('Item Lack', () => {
+ let options;
+ let tx;
+ const ctx = beforeAll.getCtx();
+ beforeAll.mockLoopBackContext();
+
+ beforeEach(async() => {
+ tx = await models.Ticket.beginTransaction({});
+ options = {transaction: tx};
+ });
+
+ afterEach(async() => {
+ if (tx)
+ await tx.rollback();
+ });
+
+ it('should return data with NO filters', async() => {
+ const filter = {};
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(2);
+ });
+
+ it('should return data with filter.id', async() => {
+ const filter = {
+ id: 5
+ };
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(1);
+ });
+
+ it('should return data with filter.longname', async() => {
+ const filter = {
+ longname: 'Ranged weapon pistol 9mm'
+ };
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(1);
+ });
+
+ it('should return data with filter.color', async() => {
+ const filter = {
+ colour: 'WHT'
+ };
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(1);
+ });
+
+ it('should return data with filter.origen', async() => {
+ const filter = {
+ originFk: 1
+ };
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(2);
+ });
+
+ it('should return data with filter.size', async() => {
+ const filter = {
+ size: '15'
+ };
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(1);
+ });
+
+ it('should return data with filter.lack', async() => {
+ const filter = {
+ lack: '-15'
+ };
+
+ const result = await models.Ticket.itemLack(ctx, filter, options);
+
+ expect(result.length).toEqual(1);
+ });
+});
diff --git a/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js b/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js
new file mode 100644
index 0000000000..4e7b68bdce
--- /dev/null
+++ b/modules/ticket/back/methods/ticket/specs/itemLackDetail.spec.js
@@ -0,0 +1,55 @@
+const models = require('vn-loopback/server/server').models;
+
+describe('Item Lack Detail', () => {
+ it('should return false if id is null', async() => {
+ const tx = await models.Ticket.beginTransaction({});
+
+ try {
+ const options = {transaction: tx};
+ const itemFk = null;
+
+ const filter = {where: {warehouseFk: 60}};
+ const result = await models.Ticket.itemLackDetail(itemFk, filter, options);
+
+ expect(result.length).toEqual(0);
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+
+ it('should return data if id exists', async() => {
+ const tx = await models.Ticket.beginTransaction({});
+
+ try {
+ const options = {transaction: tx};
+ const itemFk = 1167;
+ const filter = {where: {warehouseFk: 60}};
+ const result = await models.Ticket.itemLackDetail(itemFk, filter, options);
+
+ expect(result.length).toEqual(0);
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+
+ it('should return error is if not exists', async() => {
+ const tx = await models.Ticket.beginTransaction({});
+
+ try {
+ const options = {transaction: tx};
+ const itemFk = 0;
+ const filter = {where: {warehouseFk: 60}};
+ const result = await models.Ticket.itemLackDetail(itemFk, filter, options);
+
+ expect(result.length).toEqual(0);
+ await tx.rollback();
+ } catch (e) {
+ await tx.rollback();
+ throw e;
+ }
+ });
+});
diff --git a/modules/ticket/back/methods/ticket/specs/split.spec.js b/modules/ticket/back/methods/ticket/specs/split.spec.js
new file mode 100644
index 0000000000..7543e47d65
--- /dev/null
+++ b/modules/ticket/back/methods/ticket/specs/split.spec.js
@@ -0,0 +1,47 @@
+const {models} = require('vn-loopback/server/server');
+
+describe('Split', () => {
+ let options;
+ let tx;
+ const ctx = beforeAll.getCtx();
+ beforeAll.mockLoopBackContext();
+
+ beforeEach(async() => {
+ tx = await models.Ticket.beginTransaction({});
+ options = {transaction: tx};
+ });
+
+ afterEach(async() => {
+ if (tx)
+ await tx.rollback();
+ });
+
+ it('should split tickets with count 1', async() => {
+ const data =
+ {ticketFk: 7, sales: [1]};
+ const result = await models.Ticket.split(ctx, data, options);
+
+ expect(data.ticketFk).toEqual(result.ticket);
+ expect('noSplit').toEqual(result.status);
+ });
+
+ it('should split tickets with count 2 and error', async() => {
+ const data =
+ {ticketFk: 11, sales: [7]}
+ ;
+ const result = await models.Ticket.split(ctx, data, options);
+
+ expect(data.ticketFk).toEqual(result.ticket);
+ expect('error').toEqual(result.status);
+ expect('Can\'t transfer claimed sales').toEqual(result.message);
+ });
+
+ it('should split tickets with count 2 and success', async() => {
+ const data =
+ {ticketFk: 14, sales: [33]};
+ const result = await models.Ticket.split(ctx, data, options);
+
+ expect(data.ticketFk).toEqual(result.ticket);
+ expect('split').toEqual(result.status);
+ });
+});
diff --git a/modules/ticket/back/methods/ticket/split.js b/modules/ticket/back/methods/ticket/split.js
new file mode 100644
index 0000000000..23223db7d7
--- /dev/null
+++ b/modules/ticket/back/methods/ticket/split.js
@@ -0,0 +1,73 @@
+module.exports = Self => {
+ Self.remoteMethodCtx('split', {
+ description: 'Split ticket with custom date',
+ accessType: 'WRITE',
+ accepts: [
+ {
+ arg: 'ticket',
+ type: 'Object',
+ required: true,
+ http: {source: 'body'}
+ },
+ {
+ arg: 'date',
+ type: 'date',
+ required: true,
+ }
+ ],
+ returns: {
+ type: ['Object'],
+ root: true
+ },
+ http: {
+ path: `/split`,
+ verb: 'POST'
+ }
+ });
+
+ Self.split = async(ctx, ticket, options) => {
+ const {ticketFk} = ticket;
+ const models = Self.app.models;
+ const myOptions = {};
+ let tx;
+ let result = [];
+ if (typeof options == 'object')
+ Object.assign(myOptions, options);
+
+ if (!myOptions.transaction) {
+ tx = await Self.beginTransaction({});
+ myOptions.transaction = tx;
+ }
+ try {
+ const count = await models.Sale.count({
+ ticketFk
+ }, myOptions);
+ if (count === 1)
+ return {ticket: ticketFk, status: 'noSplit'};
+
+ const [, [{vNewTicket}]] = await Self.rawSql(`
+ CALL vn.ticket_clone(?, @vNewTicket);
+ SELECT @vNewTicket vNewTicket;`,
+ [ticketFk], myOptions);
+
+ if (vNewTicket === 0) return result;
+ const sales = await models.Sale.find({
+ where: {id: {inq: ticket.sales}}
+ }, myOptions);
+
+ const updateIsPicked = sales.map(({sid}) => Self.rawSql(`
+ UPDATE vn.sale SET isPicked = (id = ?) WHERE ticketFk = ?`,
+ [sid, ticketFk], myOptions));
+
+ await Promise.all(updateIsPicked);
+ await Self.transferSales(ctx, ticketFk, vNewTicket, sales, myOptions);
+
+ await Self.rawSql(`CALL vn.ticket_setState(?, ?)`, [ticketFk, 'FIXING'], myOptions);
+ if (tx) await tx.commit();
+ return {ticket: ticketFk, newTicket: vNewTicket, status: 'split'};
+ } catch (e) {
+ if (tx) await tx.rollback();
+ return {ticket: ticketFk, status: 'error', message: e.message};
+ }
+ };
+};
diff --git a/modules/ticket/back/models/sale.js b/modules/ticket/back/models/sale.js
index 9f92f65ba1..40fa8cae8a 100644
--- a/modules/ticket/back/models/sale.js
+++ b/modules/ticket/back/models/sale.js
@@ -12,6 +12,7 @@ module.exports = Self => {
require('../methods/sale/usesMana')(Self);
require('../methods/sale/clone')(Self);
require('../methods/sale/getFromSectorCollection')(Self);
+ require('../methods/sale/replaceItem')(Self);
Self.validatesPresenceOf('concept', {
message: `Concept cannot be blank`
diff --git a/modules/ticket/back/models/ticket-config.json b/modules/ticket/back/models/ticket-config.json
index 6dd2808eac..7a008f97e3 100644
--- a/modules/ticket/back/models/ticket-config.json
+++ b/modules/ticket/back/models/ticket-config.json
@@ -26,6 +26,12 @@
},
"defaultAttenderFk": {
"type": "number"
+ },
+ "lackAlertPrice": {
+ "type": "number"
+ },
+ "lackScopeDays": {
+ "type": "number"
}
},
"relations": {
diff --git a/modules/ticket/back/models/ticket-methods.js b/modules/ticket/back/models/ticket-methods.js
index afed2436a8..46be8e46b6 100644
--- a/modules/ticket/back/models/ticket-methods.js
+++ b/modules/ticket/back/models/ticket-methods.js
@@ -46,5 +46,8 @@ module.exports = function(Self) {
require('../methods/ticket/docuwareDownload')(Self);
require('../methods/ticket/myLastModified')(Self);
require('../methods/ticket/setWeight')(Self);
+ require('../methods/ticket/itemLack')(Self);
+ require('../methods/ticket/itemLackDetail')(Self);
+ require('../methods/ticket/split')(Self);
require('../methods/ticket/getTicketProblems')(Self);
};
diff --git a/modules/ticket/front/future/index.html b/modules/ticket/front/future/index.html
index cceca266f7..dec8e1e855 100644
--- a/modules/ticket/front/future/index.html
+++ b/modules/ticket/front/future/index.html
@@ -92,7 +92,7 @@
diff --git a/modules/ticket/front/index/index.html b/modules/ticket/front/index/index.html
index 9c22760f1e..c038364e0b 100644
--- a/modules/ticket/front/index/index.html
+++ b/modules/ticket/front/index/index.html
@@ -40,7 +40,7 @@
diff --git a/modules/travel/back/methods/travel/extraCommunityFilter.js b/modules/travel/back/methods/travel/extraCommunityFilter.js
index 2f3f998d6e..5c294a9651 100644
--- a/modules/travel/back/methods/travel/extraCommunityFilter.js
+++ b/modules/travel/back/methods/travel/extraCommunityFilter.js
@@ -67,6 +67,11 @@ module.exports = Self => {
type: 'number',
description: 'The freighter supplier id'
},
+ {
+ arg: 'entrySupplierFk',
+ type: 'number',
+ description: 'The supplier of the entry(not freighter) id'
+ },
],
returns: {
type: ['Object'],
@@ -94,6 +99,8 @@ module.exports = Self => {
return {'t.landed': {lte: value}};
case 'continent':
return {'cnt.code': value};
+ case 'entrySupplierFk':
+ return {'e.supplierFk': value};
case 'id':
case 'agencyModeFk':
case 'warehouseOutFk':
diff --git a/modules/travel/back/methods/travel/filter.js b/modules/travel/back/methods/travel/filter.js
index 837e30b305..ad7a71d11d 100644
--- a/modules/travel/back/methods/travel/filter.js
+++ b/modules/travel/back/methods/travel/filter.js
@@ -173,6 +173,7 @@ module.exports = Self => {
t.isRaid,
t.daysInForward,
t.awbFk,
+ t.availabled,
am.name agencyModeName,
a.code awbCode,
win.name warehouseInName,
diff --git a/modules/travel/back/models/travel.json b/modules/travel/back/models/travel.json
index a2a9e478e3..feeb24f698 100644
--- a/modules/travel/back/models/travel.json
+++ b/modules/travel/back/models/travel.json
@@ -56,6 +56,9 @@
},
"daysInForward": {
"type": "number"
+ },
+ "availabled": {
+ "type": "date"
}
},
"relations": {
diff --git a/modules/worker/back/models/operator.json b/modules/worker/back/models/operator.json
index b75bf67325..799c8bb6c8 100644
--- a/modules/worker/back/models/operator.json
+++ b/modules/worker/back/models/operator.json
@@ -16,13 +16,16 @@
"type": "number"
},
"trainFk": {
- "type": "number"
+ "type": "number",
+ "required": true
},
"itemPackingTypeFk": {
- "type": "string"
+ "type": "string",
+ "required": true
},
"warehouseFk": {
- "type": "number"
+ "type": "number",
+ "required": true
},
"sectorFk": {
"type": "number"
diff --git a/modules/worker/back/models/worker.json b/modules/worker/back/models/worker.json
index f464ede5c5..daec48530d 100644
--- a/modules/worker/back/models/worker.json
+++ b/modules/worker/back/models/worker.json
@@ -274,39 +274,6 @@
}
}
},
- {
- "relation": "business",
- "scope": {
- "fields": [
- "id",
- "started",
- "ended",
- "reasonEndFk",
- "departmentFk",
- "workerBusinessProfessionalCategoryFk"
- ],
- "include":[
- {
- "relation": "department",
- "scope": {
- "fields": ["id", "name"]
- }
- },
- {
- "relation": "reasonEnd",
- "scope": {
- "fields": ["id", "reason"]
- }
- },
- {
- "relation": "workerBusinessProfessionalCategory",
- "scope": {
- "fields": ["id", "description"]
- }
- }
- ]
- }
- },
{
"relation": "boss",
"scope": {
diff --git a/modules/zone/back/models/zone-warehouse.js b/modules/zone/back/models/zone-warehouse.js
new file mode 100644
index 0000000000..9cb0e2a1cb
--- /dev/null
+++ b/modules/zone/back/models/zone-warehouse.js
@@ -0,0 +1,9 @@
+let UserError = require('vn-loopback/util/user-error');
+
+module.exports = Self => {
+ Self.rewriteDbError(function(err) {
+ if (err.code === 'ER_DUP_ENTRY')
+ return new UserError(`duplicateWarehouse`);
+ return err;
+ });
+};
diff --git a/package.json b/package.json
index 3568fd6ee9..f4b1cfb4a1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "salix-back",
- "version": "25.08.0",
+ "version": "25.10.0",
"author": "Verdnatura Levante SL",
"description": "Salix backend",
"license": "GPL-3.0",
diff --git a/print/templates/email/invoice/locale/fr.yml b/print/templates/email/invoice/locale/fr.yml
index 9efbdf5a03..937976f390 100644
--- a/print/templates/email/invoice/locale/fr.yml
+++ b/print/templates/email/invoice/locale/fr.yml
@@ -1,9 +1,8 @@
subject: Votre facture
title: Votre facture
-dear: Cher client,
-description: Le facture {0} correspondant à la commande {1} est maintenant disponible.
- Vous pouvez le télécharger en cliquant sur la pièce jointe dans cet email.
-poll: Si vous le souhaitez, vous pouvez répondre à notre questionaire de satisfaction
- pour nous aider à améliorer notre service. Votre avis est très important pour nous!
-help: N'hésitez pas nous envoyer toute doute ou question, nous sommes là pour vous aider!
+dear: Chère cliente, cher client
+description: La facture {0} correspondant à votre commande {1} est maintenant disponible.
+ Vous pouvez la télécharger en cliquant sur la pièce jointe.
+poll:
+help: En cas de besoin d'eclaircissement, n'hésitez pas à nous contacter, nous sommes là pour vous aider!
conclusion: Merci pour votre attention!
diff --git a/print/templates/reports/delivery-note/delivery-note.html b/print/templates/reports/delivery-note/delivery-note.html
index 89bc07488e..4f5d71106e 100644
--- a/print/templates/reports/delivery-note/delivery-note.html
+++ b/print/templates/reports/delivery-note/delivery-note.html
@@ -70,7 +70,7 @@
{{sale.itemFk}} |
{{sale.quantity}} |
{{sale.concept}} |
- {{sale.subName}} |
+ {{sale.subName}} |
{{sale.price | currency('EUR', $i18n.locale)}} |
{{(sale.discount / 100) | percentage}} |
{{sale.vatType}} |
|