Merge branch 'dev' of https://gitea.verdnatura.es/verdnatura/salix into 5890-itemShelving_asignado

This commit is contained in:
Sergio De la torre 2024-02-01 09:28:08 +01:00
commit 39d07b3b59
60 changed files with 267 additions and 694 deletions

161
Jenkinsfile vendored
View File

@ -1,9 +1,17 @@
#!/usr/bin/env groovy #!/usr/bin/env groovy
def PROTECTED_BRANCH
def FROM_GIT
def RUN_TESTS
pipeline { pipeline {
agent any agent any
options { options {
disableConcurrentBuilds() disableConcurrentBuilds()
} }
tools {
nodejs 'node-v20'
}
environment { environment {
PROJECT_NAME = 'salix' PROJECT_NAME = 'salix'
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}" STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
@ -13,24 +21,37 @@ pipeline {
steps { steps {
script { script {
switch (env.BRANCH_NAME) { switch (env.BRANCH_NAME) {
case 'master': case 'dev':
env.NODE_ENV = 'production' env.NODE_ENV = 'dev'
env.BACK_REPLICAS = 4 env.BACK_REPLICAS = 1
break break
case 'test': case 'test':
env.NODE_ENV = 'test' env.NODE_ENV = 'test'
env.BACK_REPLICAS = 2 env.BACK_REPLICAS = 2
break break
} case 'master':
env.NODE_ENV = 'production'
env.BACK_REPLICAS = 4
break
} }
configFileProvider([ def packageJson = readJSON file: 'package.json'
configFile(fileId: "salix.groovy", env.VERSION = packageJson.version
variable: 'GROOVY_FILE')
]) {
load env.GROOVY_FILE
}
env.GIT_COMMIT_MSG = sh(
script: 'git log -1 --pretty=%B ${GIT_COMMIT}',
returnStdout: true
).trim()
PROTECTED_BRANCH = [
'dev',
'test',
'master'
].contains(env.BRANCH_NAME)
FROM_GIT = JOB_NAME.startsWith('gitea/')
RUN_TESTS = !PROTECTED_BRANCH && FROM_GIT
}
setEnv() setEnv()
} }
} }
@ -38,60 +59,85 @@ pipeline {
environment { environment {
NODE_ENV = "" NODE_ENV = ""
} }
parallel {
stage('Backend') {
steps { steps {
nodejs('node-v20') {
sh 'npm install --no-audit --prefer-offline' sh 'npm install --no-audit --prefer-offline'
sh 'gulp install --ci' }
}
stage('Frontend') {
when {
expression { return FROM_GIT }
}
steps {
sh 'npm install --no-audit --prefer-offline --prefix=front'
}
}
stage('Print') {
when {
expression { return FROM_GIT }
}
steps {
sh 'npm install --no-audit --prefer-offline --prefix=print'
}
} }
} }
} }
stage('Test') { stage('Test') {
when { not { anyOf { when {
branch 'test' expression { return RUN_TESTS }
branch 'master' }
}}}
environment { environment {
NODE_ENV = "" NODE_ENV = ""
TZ = 'Europe/Madrid' TZ = 'Europe/Madrid'
} }
parallel { parallel {
stage('Frontend') {
steps {
nodejs('node-v20') {
sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=4'
}
}
}
stage('Backend') { stage('Backend') {
steps { steps {
nodejs('node-v20') {
sh 'npm run test:back:ci' sh 'npm run test:back:ci'
} }
} }
stage('Frontend') {
steps {
sh 'jest --ci --reporters=default --reporters=jest-junit --maxWorkers=6'
}
} }
} }
} }
stage('Build') { stage('Build') {
when { anyOf { when {
branch 'test' expression { return PROTECTED_BRANCH && FROM_GIT }
branch 'master' }
}}
environment { environment {
CREDENTIALS = credentials('docker-registry') CREDENTIALS = credentials('docker-registry')
} }
steps { steps {
nodejs('node-v20') {
sh 'gulp build' sh 'gulp build'
}
dockerBuild() dockerBuild()
} }
} }
stage('Deploy') { stage('Deploy') {
when { anyOf { when {
branch 'test' expression { return PROTECTED_BRANCH }
branch 'master' }
}} parallel {
stage('Database') {
steps {
configFileProvider([
configFile(fileId: "config.${env.NODE_ENV}.ini",
variable: 'MYSQL_CONFIG')
]) {
sh 'mkdir -p db/remotes'
sh 'cp "$MYSQL_CONFIG" db/remotes/$NODE_ENV.ini'
}
sh 'npx myt push $NODE_ENV --force --commit'
}
}
stage('Docker') {
when {
expression { return FROM_GIT }
}
environment { environment {
DOCKER_HOST = "${env.SWARM_HOST}" DOCKER_HOST = "${env.SWARM_HOST}"
} }
@ -99,30 +145,13 @@ pipeline {
sh "docker stack deploy --with-registry-auth --compose-file docker-compose.yml ${env.STACK_NAME}" sh "docker stack deploy --with-registry-auth --compose-file docker-compose.yml ${env.STACK_NAME}"
} }
} }
stage('Database') {
when { anyOf {
branch 'dev'
branch 'test'
branch 'master'
}}
steps {
configFileProvider([
configFile(fileId: "config.${NODE_ENV}.ini",
variable: 'MYSQL_CONFIG')
]) {
sh 'mkdir -p db/remotes'
sh 'cp "$MYSQL_CONFIG" db/remotes/$NODE_ENV.ini'
}
nodejs('node-v20') {
sh 'npx myt push $NODE_ENV --force --commit'
}
} }
} }
} }
post { post {
always { always {
script { script {
if (!['master', 'test'].contains(env.BRANCH_NAME)) { if (RUN_TESTS) {
try { try {
junit 'junitresults.xml' junit 'junitresults.xml'
junit 'junit.xml' junit 'junit.xml'
@ -130,18 +159,28 @@ pipeline {
echo e.toString() echo e.toString()
} }
} }
}
}
success {
script {
if (env.BRANCH_NAME == 'master' && FROM_GIT) {
String message = env.GIT_COMMIT_MSG
int index = message.indexOf('\n')
if (index != -1)
message = message.substring(0, index)
if (!env.COMMITTER_EMAIL || currentBuild.currentResult == 'SUCCESS') return; rocketSend(
try { channel: 'vn-database',
mail( message: "*DB version uploaded:* ${message}"
to: env.COMMITTER_EMAIL, +"\n$COMMITTER_EMAIL ($BRANCH_NAME)"
subject: "Pipeline: ${env.JOB_NAME} (${env.BUILD_NUMBER}): ${currentBuild.currentResult}", +"\n$GIT_URL/commit/$GIT_COMMIT",
body: "Check status at ${env.BUILD_URL}" rawMessage: true
) )
} catch (e) {
echo e.toString()
} }
} }
} }
unsuccessful {
sendEmail()
}
} }
} }

View File

@ -942,25 +942,25 @@ INSERT INTO `vn`.`itemFamily`(`code`, `description`)
('VT', 'Sales'); ('VT', 'Sales');
INSERT INTO `vn`.`item`(`id`, `typeFk`, `stems`, `originFk`, `description`, `producerFk`, `intrastatFk`, `expenseFk`, INSERT INTO `vn`.`item`(`id`, `typeFk`, `stems`, `originFk`, `description`, `producerFk`, `intrastatFk`, `expenseFk`,
`comment`, `relevancy`, `image`, `subName`, `minPrice`, `family`, `isFloramondo`, `genericFk`, `itemPackingTypeFk`, `hasMinPrice`, `packingShelve`, `weightByPiece`) `comment`, `relevancy`, `image`, `subName`, `minPrice`, `family`, `isFloramondo`, `genericFk`, `itemPackingTypeFk`, `hasMinPrice`, `weightByPiece`)
VALUES VALUES
(1, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '1', NULL, 0, 'EMB', 0, NULL, 'V', 0, 15,3), (1, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '1', NULL, 0, 'EMB', 0, NULL, 'V', 0, 3),
(2, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '2', NULL, 0, 'VT', 0, NULL, 'H', 0, 10,2), (2, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '2', NULL, 0, 'VT', 0, NULL, 'H', 0, 2),
(3, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '3', NULL, 0, 'VT', 0, NULL, NULL, 0, 5,5), (3, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '3', NULL, 0, 'VT', 0, NULL, NULL, 0, 5),
(4, 1, 1, 1, 'Increases block', 1, 05080000, 4751000000, NULL, 0, '4', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (4, 1, 1, 1, 'Increases block', 1, 05080000, 4751000000, NULL, 0, '4', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(5, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '5', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (5, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '5', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(6, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '6', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (6, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '6', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(7, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '7', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (7, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '7', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(8, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '8', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (8, 2, 1, 1, NULL, 1, 06021010, 2000000000, NULL, 0, '8', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(9, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '9', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL,NULL), (9, 2, 1, 2, NULL, 1, 06021010, 2000000000, NULL, 0, '9', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL),
(10, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '10', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (10, 1, 1, 3, NULL, 1, 05080000, 4751000000, NULL, 0, '10', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(11, 1, 1, 1, NULL, 1, 05080000, 4751000000, NULL, 0, '11', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (11, 1, 1, 1, NULL, 1, 05080000, 4751000000, NULL, 0, '11', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(12, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '12', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL), (12, 3, 1, 2, NULL, 2, 06021010, 4751000000, NULL, 0, '12', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL),
(13, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 1, 'VT', 1, NULL, NULL, 1, NULL,NULL), (13, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '13', NULL, 1, 'VT', 1, NULL, NULL, 1, NULL),
(14, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL,NULL), (14, 5, 1, 2, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 1, NULL, NULL, 0, NULL),
(15, 4, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL,NULL), (15, 4, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL),
(16, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL,NULL), (16, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'EMB', 0, NULL, NULL, 0, NULL),
(71, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL,NULL); (71, 6, NULL, 1, NULL, NULL, 06021010, 4751000000, NULL, 0, '', NULL, 0, 'VT', 0, NULL, NULL, 0, NULL);
-- Update the taxClass after insert of the items -- Update the taxClass after insert of the items
UPDATE `vn`.`itemTaxCountry` SET `taxClassFk` = 2 UPDATE `vn`.`itemTaxCountry` SET `taxClassFk` = 2

View File

@ -32,7 +32,7 @@ BEGIN
tm.year AS Año, tm.year AS Año,
tm.month AS Mes, tm.month AS Mes,
tm.week AS Semana, tm.week AS Semana,
v.vista AS Vista, dm.description AS Vista,
bt.importe AS Importe bt.importe AS Importe
FROM bs.ventas bt FROM bs.ventas bt
LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = bt.tipo_id LEFT JOIN vn2008.Tipos tp ON tp.tipo_id = bt.tipo_id
@ -44,7 +44,7 @@ BEGIN
JOIN vn2008.Movimientos m ON m.Id_Movimiento = bt.Id_Movimiento JOIN vn2008.Movimientos m ON m.Id_Movimiento = bt.Id_Movimiento
LEFT JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket LEFT JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia JOIN vn2008.Agencias a ON a.Id_Agencia = t.Id_Agencia
LEFT JOIN vn2008.Vistas v ON v.vista_id = a.Vista LEFT JOIN vn.deliveryMethod dm ON dm.id = a.Vista
LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna LEFT JOIN vn2008.Consignatarios cs ON cs.Id_Consigna = t.Id_Consigna
LEFT JOIN vn2008.province p ON p.province_id = cs.province_id LEFT JOIN vn2008.province p ON p.province_id = cs.province_id
LEFT JOIN vn2008.warehouse w ON w.id = t.warehouse_id LEFT JOIN vn2008.warehouse w ON w.id = t.warehouse_id

View File

@ -1,17 +0,0 @@
DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`item_updatePackingShelve`(vSelf INT, vPacking INT)
BEGIN
/**
* Actualiza el valor de item.packingShelve
*
* @param vSelf Identificador de vn.item
* @param vPacking Cantidad de unidades de venta que caben en una bandeja
*/
UPDATE vn.item i
SET i.packingShelve = vPacking
WHERE i.id = vSelf;
END$$
DELIMITER ;

View File

@ -77,7 +77,6 @@ DECLARE vIsCollection BOOL;
s.isAdded, s.isAdded,
IF(c.workerFk IS NULL, getUser(), c.workerFk) workerFk, IF(c.workerFk IS NULL, getUser(), c.workerFk) workerFk,
IF(SUM(iss.quantity) IS NULL, 0, SUM(iss.quantity)) pickedQuantity, IF(SUM(iss.quantity) IS NULL, 0, SUM(iss.quantity)) pickedQuantity,
i.packingShelve,
MIN(iss.created) picked, MIN(iss.created) picked,
IF(sm.id, TRUE, FALSE) hasMistake, IF(sm.id, TRUE, FALSE) hasMistake,
sg.sectorFk sg.sectorFk

View File

@ -2,15 +2,17 @@ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`workerTimeControl_clockIn`( CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`workerTimeControl_clockIn`(
vWorkerFk INT, vWorkerFk INT,
vTimed DATETIME, vTimed DATETIME,
vDirection VARCHAR(10) vDirection VARCHAR(10),
vDevice VARCHAR(255)
) )
BEGIN BEGIN
/** /**
* Verifica si el empleado puede fichar * Verifica si el empleado puede fichar
* @param vWorkerFk Identificador del trabajador * @param vWorkerFk Identificador del trabajador
* @param vTimed valor de la fichada, IF vTimed IS NULL vTimed = NOW * @param vTimed Balor de la fichada, IF vTimed IS NULL vTimed = NOW
* @param vDirection solo se pueden pasa los valores del campo * @param vDirection Solo se pueden pasa los valores del campo
* workerTimeControl.direction ENUM('in', 'out', 'middle') * workerTimeControl.direction ENUM('in', 'out', 'middle')
* @param vDevice Dispositivo en el que se ha fichado
* @return Si todo es correcto, retorna el número de id la tabla workerTimeControl. * @return Si todo es correcto, retorna el número de id la tabla workerTimeControl.
* Si hay algún problema, devuelve el mesaje que se debe mostrar al usuario * Si hay algún problema, devuelve el mesaje que se debe mostrar al usuario
* Solo retorna el primer problema, en caso de no ocurrir ningún error se añadirá * Solo retorna el primer problema, en caso de no ocurrir ningún error se añadirá
@ -276,9 +278,9 @@ BEGIN
END IF; END IF;
END IF; END IF;
-- SE PERMITE FICHAR -- Se permite fichar
INSERT INTO workerTimeControl(userFk, timed, direction, `manual`) INSERT INTO workerTimeControl(userFk, timed, direction, device, `manual`)
VALUES(vWorkerFk, vTimed, vDirection, vIsManual); VALUES(vWorkerFk, vTimed, vDirection, vDevice, vIsManual);
SELECT LAST_INSERT_ID() id; SELECT LAST_INSERT_ID() id;

View File

@ -7,14 +7,6 @@ BEGIN
SET NEW.editorFk = account.myUser_getId(); SET NEW.editorFk = account.myUser_getId();
IF ISNULL(NEW.packingShelve) AND NOT ISNULL(NEW.packingOut) THEN
SELECT NEW.packingOut * vc.shelveVolume / vc.standardFlowerBox
INTO vNewPackingShelve
FROM vn.volumeConfig vc;
SET NEW.packingShelve = vNewPackingShelve;
END IF;
IF NEW.itemPackingTypeFk = '' THEN IF NEW.itemPackingTypeFk = '' THEN
SET NEW.itemPackingTypeFk = NULL; SET NEW.itemPackingTypeFk = NULL;
END IF; END IF;

View File

@ -31,7 +31,7 @@ FROM (
) )
JOIN `vn`.`route` `r` ON(`r`.`id` = `t`.`routeFk`) JOIN `vn`.`route` `r` ON(`r`.`id` = `t`.`routeFk`)
) )
LEFT JOIN `vn2008`.`Rutas_monitor` `rm` ON(`rm`.`Id_Ruta` = `r`.`id`) LEFT JOIN `vn`.`routesMonitor` `rm` ON(`rm`.`routeFk` = `r`.`id`)
) )
LEFT JOIN `vn`.`expeditionTruck` `et2` ON(`et2`.`id` = `rm`.`expeditionTruckFk`) LEFT JOIN `vn`.`expeditionTruck` `et2` ON(`et2`.`id` = `rm`.`expeditionTruckFk`)
) )

View File

@ -20,14 +20,12 @@ proc: BEGIN
SET vDate2000 = util.VN_CURDATE() + INTERVAL (2000 - YEAR(util.VN_CURDATE())) YEAR; SET vDate2000 = util.VN_CURDATE() + INTERVAL (2000 - YEAR(util.VN_CURDATE())) YEAR;
SET vRangeDeleteTicket = 60; SET vRangeDeleteTicket = 60;
DELETE FROM Rutas_monitor WHERE fecha < vDate;
DELETE FROM cdr WHERE calldate < vDate18; DELETE FROM cdr WHERE calldate < vDate18;
DELETE FROM Monitoring WHERE ODBC_TIME < vDate; DELETE FROM Monitoring WHERE ODBC_TIME < vDate;
DELETE FROM Conteo WHERE Fecha < vDate; DELETE FROM Conteo WHERE Fecha < vDate;
DELETE FROM XDiario WHERE FECHA < vDate3 OR FECHA IS NULL; DELETE FROM XDiario WHERE FECHA < vDate3 OR FECHA IS NULL;
DELETE FROM mail WHERE DATE_ODBC < vDate; DELETE FROM mail WHERE DATE_ODBC < vDate;
DELETE FROM expeditions_deleted WHERE odbc_date < vDate26; DELETE FROM expeditions_deleted WHERE odbc_date < vDate26;
DELETE FROM sms WHERE DATE_ODBC < vDate18;
DELETE FROM Movimientos_mark WHERE odbc_date < vDate; DELETE FROM Movimientos_mark WHERE odbc_date < vDate;
DELETE FROM Splits WHERE Fecha < vDate18; DELETE FROM Splits WHERE Fecha < vDate18;
@ -47,8 +45,6 @@ proc: BEGIN
JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < vDate; JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < vDate;
DELETE FROM Remesas WHERE `Fecha Remesa` < vDate18; DELETE FROM Remesas WHERE `Fecha Remesa` < vDate18;
DELETE FROM sharingcart where datEND < vDate;
DELETE FROM sharingclient where datEND < vDate;
DELETE tt.* DELETE tt.*
FROM Tickets_turno tt FROM Tickets_turno tt

View File

@ -17,7 +17,20 @@ BEGIN
SELECT t.Id_Ticket, Alias, cast(amount as decimal(10,2)) Importe, Domicilio, POBLACION SELECT t.Id_Ticket, Alias, cast(amount as decimal(10,2)) Importe, Domicilio, POBLACION
FROM Tickets t FROM Tickets t
JOIN Consignatarios cs ON t.Id_Consigna = cs.Id_Consigna JOIN Consignatarios cs ON t.Id_Consigna = cs.Id_Consigna
JOIN v_ticket_amount v ON v.Id_Ticket = t.Id_Ticket JOIN (
SELECT `Movimientos`.`Id_Ticket` AS `Id_Ticket`,
sum(
`Movimientos`.`Cantidad` * `Movimientos`.`Preu` * (100 - `Movimientos`.`Descuento`) / 100
) AS `amount`
FROM (
`vn2008`.`Movimientos`
JOIN `vn2008`.`Tickets` ON(
`Movimientos`.`Id_Ticket` = `Tickets`.`Id_Ticket`
)
)
WHERE `Tickets`.`Fecha` >= `util`.`VN_CURDATE`() + INTERVAL -6 MONTH
GROUP BY `Movimientos`.`Id_Ticket`
) v ON v.Id_Ticket = t.Id_Ticket
WHERE t.Fecha BETWEEN v_Date AND util.dayEnd(v_Date) WHERE t.Fecha BETWEEN v_Date AND util.dayEnd(v_Date)
AND t.Id_Cliente = v_Client_Id; AND t.Id_Cliente = v_Client_Id;

View File

@ -1,24 +0,0 @@
CREATE OR REPLACE DEFINER = `root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Rutas_Master`
AS SELECT
`rm`.`id` AS `id`,
`rm`.`warehoseFk` AS `warehouse_id`,
`rm`.`km` AS `km`,
`rm`.`packages` AS `bultos`,
`rm`.`vehicleCost` AS `vehiculos_coste`,
`rm`.`staffCost` AS `personal_coste`,
`rm`.`vehicle` AS `vehiculos_numero`,
`rm`.`staff` AS `personal_numero`,
`rm`.`fuel` AS `gasoil`,
`rm`.`freelancers` AS `autonomos`,
`rm`.`year` AS `año`,
`rm`.`mounth` AS `mes`,
`rm`.`expense` AS `gastos`,
`rm`.`freelancersPackages` AS `bultos_autonomos`,
`rm`.`kmCost` AS `coste_km`,
`rm`.`packageCost` AS `coste_bulto`,
`rm`.`freelancerPackageCost` AS `coste_bulto_autonomo` ,
`rm`.`created` AS `odbc_date`
FROM `vn`.`routeMaster` `rm`

View File

@ -1,22 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Rutas_Master`
AS SELECT `rm`.`id` AS `id`,
`rm`.`warehouseFk` AS `warehouse_id`,
`rm`.`km` AS `km`,
`rm`.`packages` AS `bultos`,
`rm`.`vehicleCost` AS `vehiculos_coste`,
`rm`.`staffCost` AS `personal_coste`,
`rm`.`vehicle` AS `vehiculos_numero`,
`rm`.`staff` AS `personal_numero`,
`rm`.`fuel` AS `gasoil`,
`rm`.`freelancers` AS `autonomos`,
`rm`.`year` AS `año`,
`rm`.`month` AS `mes`,
`rm`.`expense` AS `gastos`,
`rm`.`freelancersPackages` AS `bultos_autonomos`,
`rm`.`kmCost` AS `coste_km`,
`rm`.`packageCost` AS `coste_bulto`,
`rm`.`freelancerPackageCost` AS `coste_bulto_autonomo`,
`rm`.`created` AS `odbc_date`
FROM `vn`.`routeMaster` `rm`

View File

@ -1,18 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Rutas_monitor`
AS SELECT `vn`.`routesMonitor`.`routeFk` AS `Id_Ruta`,
`vn`.`routesMonitor`.`name` AS `name`,
`vn`.`routesMonitor`.`beachFk` AS `Ubicacion`,
`vn`.`routesMonitor`.`ticketPacked` AS `pedidosEncajados`,
`vn`.`routesMonitor`.`ticketFree` AS `pedidosLibres`,
`vn`.`routesMonitor`.`ticketProduction` AS `pedidosProduccion`,
`vn`.`routesMonitor`.`packages` AS `bultos`,
`vn`.`routesMonitor`.`note` AS `notas`,
`vn`.`routesMonitor`.`dated` AS `fecha`,
`vn`.`routesMonitor`.`dockFk` AS `dockFk`,
`vn`.`routesMonitor`.`m3` AS `m3`,
`vn`.`routesMonitor`.`priority` AS `priority`,
`vn`.`routesMonitor`.`etd` AS `etd`,
`vn`.`routesMonitor`.`expeditionTruckFk` AS `expeditionTruckFk`
FROM `vn`.`routesMonitor`

View File

@ -1,17 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`VerEspionaje`
AS SELECT `Trabajadores`.`CodigoTrabajador` AS `CodigoTrabajador`,
`vn2008`.`Espionajes`.`Fecha` AS `Fecha`,
`vn2008`.`Espionajes`.`HoraEntrada` AS `HoraEntrada`,
`vn2008`.`Espionajes`.`HoraSalida` AS `HoraSalida`,
`vn2008`.`Espionajes`.`Id_Equipo` AS `Id_Equipo`,
`Trabajadores`.`Id_Trabajador` AS `Id_Trabajador`
FROM (
`vn2008`.`Espionajes`
JOIN `vn2008`.`Trabajadores` ON(
`vn2008`.`Espionajes`.`Id_Trabajador` = `Trabajadores`.`Id_Trabajador`
)
)
ORDER BY `Trabajadores`.`CodigoTrabajador`,
`vn2008`.`Espionajes`.`Fecha`

View File

@ -1,7 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`Vistas`
AS SELECT `dm`.`id` AS `vista_id`,
`dm`.`code` AS `code`,
`dm`.`description` AS `vista`
FROM `vn`.`deliveryMethod` `dm`

View File

@ -1,10 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`sharingcart`
AS SELECT `sc`.`id` AS `id`,
`sc`.`workerFk` AS `Id_Trabajador`,
`sc`.`started` AS `datSTART`,
`sc`.`ended` AS `datEND`,
`sc`.`workerSubstitute` AS `Id_Suplente`,
`sc`.`created` AS `odbc_date`
FROM `vn`.`sharingCart` `sc`

View File

@ -1,9 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`sharingclient`
AS SELECT `sc`.`id` AS `id`,
`sc`.`workerFk` AS `Id_Trabajador`,
`sc`.`started` AS `datSTART`,
`sc`.`ended` AS `datEND`,
`sc`.`clientFk` AS `Id_Cliente`
FROM `vn`.`sharingClient` `sc`

View File

@ -1,12 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`sms`
AS SELECT `t`.`id` AS `id`,
`t`.`senderFk` AS `Id_trabajador`,
`t`.`sender` AS `from`,
`t`.`destination` AS `to`,
`t`.`message` AS `text`,
`t`.`statusCode` AS `sent`,
`t`.`status` AS `response`,
`t`.`created` AS `DATE_ODBC`
FROM `vn`.`sms` `t`

View File

@ -1,11 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tarifas`
AS SELECT `r`.`id` AS `tarifa_id`,
`r`.`dated` AS `fecha`,
`r`.`warehouseFk` AS `warehouse_id`,
`r`.`rate0` AS `t0`,
`r`.`rate1` AS `t1`,
`r`.`rate2` AS `t2`,
`r`.`rate3` AS `t3`
FROM `vn`.`rate` `r`

View File

@ -1,9 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`ticketCreationData`
AS SELECT dayname(`h`.`confirm_date`) AS `DiadelaSemana`,
HOUR(`h`.`confirm_date`) AS `Hora`,
cast(`h`.`confirm_date` AS date) AS `Fecha`,
`h`.`source_app` AS `Dispositivo`
FROM `hedera`.`order` `h`
WHERE `h`.`confirm_date` <> 0

View File

@ -1,38 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`ticketMRW`
AS SELECT `Tickets`.`Id_Agencia` AS `id_Agencia`,
`Tickets`.`empresa_id` AS `empresa_id`,
`Consignatarios`.`consignatario` AS `Consignatario`,
`Consignatarios`.`domicilio` AS `DOMICILIO`,
`Consignatarios`.`poblacion` AS `POBLACION`,
`Consignatarios`.`codPostal` AS `CODPOSTAL`,
`Consignatarios`.`telefono` AS `telefono`,
`Consignatarios`.`movil` AS `movil`,
`Clientes`.`if` AS `IF`,
`Tickets`.`Id_Ticket` AS `Id_Ticket`,
`Tickets`.`warehouse_id` AS `warehouse_id`,
`Consignatarios`.`id_consigna` AS `Id_Consigna`,
`Paises`.`Codigo` AS `CodigoPais`,
`Tickets`.`Fecha` AS `Fecha`,
`province`.`province_id` AS `province_id`,
`Tickets`.`landing` AS `landing`
FROM (
(
(
(
`vn2008`.`Clientes`
JOIN `vn2008`.`Consignatarios` ON(
`Clientes`.`id_cliente` = `Consignatarios`.`Id_cliente`
)
)
JOIN `vn2008`.`Tickets` ON(
`Consignatarios`.`id_consigna` = `Tickets`.`Id_Consigna`
)
)
JOIN `vn2008`.`province` ON(
`Consignatarios`.`province_id` = `province`.`province_id`
)
)
JOIN `vn2008`.`Paises` ON(`province`.`Paises_Id` = `Paises`.`Id`)
)

View File

@ -1,19 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`tr2`
AS SELECT `vn`.`travel`.`id` AS `id`,
`vn`.`travel`.`shipped` AS `shipped`,
`vn`.`travel`.`shipmentHour` AS `shipmentHour`,
`vn`.`travel`.`landed` AS `landed`,
`vn`.`travel`.`landingHour` AS `landingHour`,
`vn`.`travel`.`warehouseInFk` AS `warehouseInFk`,
`vn`.`travel`.`warehouseOutFk` AS `warehouseOutFk`,
`vn`.`travel`.`agencyModeFk` AS `agencyFk`,
`vn`.`travel`.`ref` AS `ref`,
`vn`.`travel`.`isDelivered` AS `isDelivered`,
`vn`.`travel`.`isReceived` AS `isReceived`,
`vn`.`travel`.`m3` AS `m3`,
`vn`.`travel`.`kg` AS `kg`,
`vn`.`travel`.`cargoSupplierFk` AS `cargoSupplierFk`,
`vn`.`travel`.`totalEntries` AS `totalEntries`
FROM `vn`.`travel`

View File

@ -1,11 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`travel_thermograph`
AS SELECT `tt`.`thermographFk` AS `thermograph_id`,
`tt`.`created` AS `odbc_date`,
`tt`.`warehouseFk` AS `warehouse_id`,
`tt`.`travelFk` AS `travel_id`,
`tt`.`temperatureFk` AS `temperature`,
`tt`.`result` AS `result`,
`tt`.`dmsFk` AS `gestdoc_id`
FROM `vn`.`travelThermograph` `tt`

View File

@ -1,5 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_account`
AS SELECT `a`.`id` AS `user_id`
FROM `account`.`account` `a`

View File

@ -1,15 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_analisis_ventas`
AS SELECT `bi`.`analisis_ventas`.`Familia` AS `Familia`,
`bi`.`analisis_ventas`.`Reino` AS `Reino`,
`bi`.`analisis_ventas`.`Comercial` AS `Comercial`,
`bi`.`analisis_ventas`.`Comprador` AS `Comprador`,
`bi`.`analisis_ventas`.`Provincia` AS `Provincia`,
`bi`.`analisis_ventas`.`almacen` AS `almacen`,
`bi`.`analisis_ventas`.`Año` AS `Año`,
`bi`.`analisis_ventas`.`Mes` AS `Mes`,
`bi`.`analisis_ventas`.`Semana` AS `Semana`,
`bi`.`analisis_ventas`.`Vista` AS `Vista`,
`bi`.`analisis_ventas`.`Importe` AS `Importe`
FROM `bi`.`analisis_ventas`

View File

@ -1,21 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_barcodes`
AS SELECT `Articles`.`Id_Article` AS `code`,
`Articles`.`Id_Article` AS `Id_Article`
FROM `vn2008`.`Articles`
UNION ALL
SELECT `barcodes`.`code` AS `code`,
`barcodes`.`Id_Article` AS `Id_Article`
FROM `vn2008`.`barcodes`
UNION ALL
SELECT `c`.`Id_Compra` AS `Id_Compra`,
`c`.`Id_Article` AS `Id_Article`
FROM (
(
`vn2008`.`Compres` `c`
JOIN `vn2008`.`Entradas` `e` ON(`c`.`Id_Entrada` = `e`.`Id_Entrada`)
)
JOIN `vn2008`.`travel` `tr` ON(`tr`.`id` = `e`.`travel_id`)
)
WHERE `tr`.`landing` >= `util`.`VN_CURDATE`() + INTERVAL -15 DAY

View File

@ -1,8 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_departure_limit`
AS SELECT `cache`.`departure_limit`.`warehouse_id` AS `warehouse_id`,
`cache`.`departure_limit`.`fecha` AS `fecha`,
`cache`.`departure_limit`.`hora` AS `hora`,
`cache`.`departure_limit`.`minSpeed` AS `minSpeed`
FROM `cache`.`departure_limit`

View File

@ -1,41 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_descuadre_bionic`
AS SELECT `t`.`Id_Ticket` AS `Id_Ticket`,
`t`.`Alias` AS `Alias`,
`m`.`Concepte` AS `Concepte`,
sum(`mc`.`Valor`) AS `suma_componente`,
`m`.`Preu` AS `Preu`,
`m`.`Descuento` AS `Descuento`,
`m`.`Preu` * (100 - `m`.`Descuento`) / 100 - sum(`mc`.`Valor`) AS `diferencia`,
`t`.`Fecha` AS `Fecha`,
`m`.`Preu` > 0
AND `tp`.`reino_id` <> 6
AND `a`.`tipo_id` NOT IN (7, 115) AS `benvenut`
FROM (
(
(
(
(
(
`vn2008`.`Movimientos` `m`
JOIN `vn2008`.`Tickets` `t` ON(`m`.`Id_Ticket` = `t`.`Id_Ticket`)
)
JOIN `vn2008`.`Clientes` `c` ON(`t`.`Id_Cliente` = `c`.`id_cliente`)
)
JOIN `vn2008`.`warehouse` `w` ON(`w`.`id` = `t`.`warehouse_id`)
)
JOIN `vn2008`.`Articles` `a` ON(`m`.`Id_Article` = `a`.`Id_Article`)
)
JOIN `vn2008`.`Tipos` `tp` ON(`a`.`tipo_id` = `tp`.`tipo_id`)
)
LEFT JOIN `vn2008`.`Movimientos_componentes` `mc` ON(`m`.`Id_Movimiento` = `mc`.`Id_Movimiento`)
)
WHERE `t`.`Fecha` >= '2015-09-01'
AND `t`.`empresa_id` IN (442, 791, 567)
AND `w`.`reserve` <> 0
AND `c`.`real` <> 0
AND `tp`.`reino_id` <> 6
GROUP BY `m`.`Id_Movimiento`
HAVING abs(`diferencia`) > 0.01
OR `diferencia` IS NULL

View File

@ -1,11 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_inter`
AS SELECT `tt`.`id` AS `inter_id`,
`tt`.`stateFk` AS `state_id`,
`tt`.`notes` AS `nota`,
`tt`.`created` AS `odbc_date`,
`tt`.`ticketFk` AS `Id_Ticket`,
`tt`.`userFk` AS `Id_Trabajador`,
`tt`.`supervisorFk` AS `Id_supervisor`
FROM `vn`.`ticketTracking` `tt`

View File

@ -1,23 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_miriam`
AS SELECT `M`.`Id_Article` AS `Id_Article`,
`M`.`Concepte` AS `Concepte`,
`M`.`Cantidad` AS `Cantidad`,
`M`.`Preu` AS `Preu`,
`M`.`Descuento` AS `Descuento`,
`T`.`Fecha` AS `Fecha`,
`T`.`Id_Cliente` AS `Id_Cliente`,
`M`.`Cantidad` * `M`.`Preu` * (100 - `M`.`Descuento`) / 100 AS `Importe`
FROM (
(
(
`vn2008`.`Tickets` `T`
JOIN `vn2008`.`Movimientos` `M` ON(`T`.`Id_Ticket` = `M`.`Id_Ticket`)
)
JOIN `vn2008`.`Articles` `A` ON(`M`.`Id_Article` = `A`.`Id_Article`)
)
JOIN `vn2008`.`Tipos` `TP` ON(`A`.`tipo_id` = `TP`.`tipo_id`)
)
WHERE `T`.`Fecha` >= '2011-01-01'
AND `A`.`tipo_id` = 7

View File

@ -1,35 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_price_fixed`
AS SELECT `pf`.`warehouse_id` AS `warehouse_id`,
`pf`.`item_id` AS `item_id`,
`pf`.`rate_0` AS `rate_0`,
`pf`.`rate_1` AS `rate_1`,
`pf`.`rate_2` AS `rate_2`,
`pf`.`rate_3` AS `rate_3`,
`pf`.`date_start` AS `date_start`,
`pf`.`date_end` AS `date_end`,
`pf`.`bonus` AS `bonus`,
`pf`.`grouping` AS `grouping`,
`pf`.`Packing` AS `Packing`,
`pf`.`caja` AS `caja`
FROM `vn2008`.`price_fixed` `pf`
WHERE `pf`.`warehouse_id` < 1000
UNION ALL
SELECT `wg`.`warehouse_id` AS `warehouse_id`,
`pf`.`item_id` AS `item_id`,
`pf`.`rate_0` AS `rate_0`,
`pf`.`rate_1` AS `rate_1`,
`pf`.`rate_2` AS `rate_2`,
`pf`.`rate_3` AS `rate_3`,
`pf`.`date_start` AS `date_start`,
`pf`.`date_end` AS `date_end`,
`pf`.`bonus` AS `bonus`,
`pf`.`grouping` AS `grouping`,
`pf`.`Packing` AS `Packing`,
`pf`.`caja` AS `caja`
FROM (
`vn2008`.`price_fixed` `pf`
JOIN `vn2008`.`warehouse_group` `wg`
)
WHERE `wg`.`warehouse_alias_id` + 1000 = `pf`.`warehouse_id`

View File

@ -1,20 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_price_fixed_group`
AS SELECT `pf`.`warehouse_id` AS `warehouse_id`,
`pf`.`item_id` AS `item_id`,
`pf`.`rate_0` AS `rate_0`,
`pf`.`rate_1` AS `rate_1`,
`pf`.`rate_2` AS `rate_2`,
`pf`.`rate_3` AS `rate_3`,
`pf`.`date_start` AS `date_start`,
`pf`.`date_end` AS `date_end`,
`pf`.`bonus` AS `bonus`,
`pf`.`grouping` AS `grouping`,
`pf`.`Packing` AS `Packing`,
`pf`.`caja` AS `caja`
FROM `vn2008`.`v_price_fixed` `pf`
GROUP BY `pf`.`warehouse_id`,
`pf`.`item_id`,
`pf`.`date_start`,
`pf`.`date_end`

View File

@ -1,15 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_ticket_amount`
AS SELECT `Movimientos`.`Id_Ticket` AS `Id_Ticket`,
sum(
`Movimientos`.`Cantidad` * `Movimientos`.`Preu` * (100 - `Movimientos`.`Descuento`) / 100
) AS `amount`
FROM (
`vn2008`.`Movimientos`
JOIN `vn2008`.`Tickets` ON(
`Movimientos`.`Id_Ticket` = `Tickets`.`Id_Ticket`
)
)
WHERE `Tickets`.`Fecha` >= `util`.`VN_CURDATE`() + INTERVAL -6 MONTH
GROUP BY `Movimientos`.`Id_Ticket`

View File

@ -1,10 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_warehouse`
AS SELECT `warehouse`.`id` AS `id`,
`warehouse`.`name` AS `almacen`
FROM `vn2008`.`warehouse`
UNION ALL
SELECT 1000 + `warehouse_alias`.`warehouse_alias_id` AS `warehouse_alias_id`,
concat(`warehouse_alias`.`alias`, '(G)') AS `concat(alias, '(G)')`
FROM `vn2008`.`warehouse_alias`

View File

@ -1,12 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_xsubclien`
AS SELECT DISTINCT `Facturas`.`Id_Cliente` AS `Id_Cliente`,
`Facturas`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`Facturas`
WHERE `Facturas`.`Fecha` > `util`.`VN_CURDATE`() + INTERVAL -2 MONTH
UNION
SELECT `Recibos`.`Id_Cliente` AS `Id_Cliente`,
`Recibos`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`Recibos`
WHERE `Recibos`.`Fechacobro` > `util`.`VN_CURDATE`() + INTERVAL -2 MONTH

View File

@ -17,7 +17,7 @@ AS SELECT `Clientes`.`Cuenta` AS `COD`,
`province`.`name` AS `PROVINCIA`, `province`.`name` AS `PROVINCIA`,
`Clientes`.`codPostal` AS `CODPOSTAL`, `Clientes`.`codPostal` AS `CODPOSTAL`,
`p`.`Codigo` AS `country_code`, `p`.`Codigo` AS `country_code`,
`v_xsubclien`.`empresa_id` AS `empresa_id`, sub.`empresa_id` AS `empresa_id`,
substr( substr(
`Clientes`.`e-mail`, `Clientes`.`e-mail`,
1, 1,
@ -39,8 +39,18 @@ FROM (
( (
( (
`vn2008`.`Clientes` `vn2008`.`Clientes`
JOIN `vn2008`.`v_xsubclien` ON( JOIN (
`Clientes`.`id_cliente` = `v_xsubclien`.`Id_Cliente` SELECT DISTINCT `Facturas`.`Id_Cliente` AS `Id_Cliente`,
`Facturas`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`Facturas`
WHERE `Facturas`.`Fecha` > `util`.`VN_CURDATE`() + INTERVAL -2 MONTH
UNION
SELECT `Recibos`.`Id_Cliente` AS `Id_Cliente`,
`Recibos`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`Recibos`
WHERE `Recibos`.`Fechacobro` > `util`.`VN_CURDATE`() + INTERVAL -2 MONTH
) sub ON(
`Clientes`.`id_cliente` = sub.`Id_Cliente`
) )
) )
LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Clientes`.`Id_Pais`) LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Clientes`.`Id_Pais`)
@ -50,7 +60,7 @@ FROM (
) )
) )
GROUP BY `Clientes`.`id_cliente`, GROUP BY `Clientes`.`id_cliente`,
`v_xsubclien`.`empresa_id` sub.`empresa_id`
UNION ALL UNION ALL
SELECT `Proveedores`.`cuenta` AS `Cuenta`, SELECT `Proveedores`.`cuenta` AS `Cuenta`,
`Proveedores`.`Proveedor` AS `Proveedor`, `Proveedores`.`Proveedor` AS `Proveedor`,
@ -68,7 +78,7 @@ SELECT `Proveedores`.`cuenta` AS `Cuenta`,
`prov`.`name` AS `Provincia`, `prov`.`name` AS `Provincia`,
`Proveedores`.`codpos` AS `CP`, `Proveedores`.`codpos` AS `CP`,
`p`.`Codigo` AS `country_code`, `p`.`Codigo` AS `country_code`,
`v_xsubprov`.`empresa_id` AS `empresa_id`, sub.`empresa_id` AS `empresa_id`,
substr( substr(
`c`.`email`, `c`.`email`,
1, 1,
@ -80,8 +90,22 @@ FROM (
( (
( (
`vn2008`.`Proveedores` `vn2008`.`Proveedores`
JOIN `vn2008`.`v_xsubprov` ON( JOIN (
`Proveedores`.`Id_Proveedor` = `v_xsubprov`.`proveedor_id` SELECT `recibida`.`proveedor_id` AS `proveedor_id`,
`recibida`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`recibida`
WHERE `recibida`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
GROUP BY `recibida`.`proveedor_id`,
`recibida`.`empresa_id`
UNION ALL
SELECT `pago`.`id_proveedor` AS `id_proveedor`,
`pago`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`pago`
WHERE `pago`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
GROUP BY `pago`.`id_proveedor`,
`pago`.`empresa_id`
) sub ON(
`Proveedores`.`Id_Proveedor` = sub.`proveedor_id`
) )
) )
LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Proveedores`.`pais_id`) LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Proveedores`.`pais_id`)
@ -93,8 +117,8 @@ FROM (
LEFT JOIN `vn`.`supplierContact` `c` ON(`c`.`supplierFk` = `Proveedores`.`Id_Proveedor`) LEFT JOIN `vn`.`supplierContact` `c` ON(`c`.`supplierFk` = `Proveedores`.`Id_Proveedor`)
) )
WHERE `Proveedores`.`oficial` <> 0 WHERE `Proveedores`.`oficial` <> 0
GROUP BY `v_xsubprov`.`proveedor_id`, GROUP BY sub.`proveedor_id`,
`v_xsubprov`.`empresa_id` sub.`empresa_id`
UNION ALL UNION ALL
SELECT `Gastos`.`Id_Gasto` COLLATE utf8mb3_unicode_ci AS `Id_Gasto`, SELECT `Gastos`.`Id_Gasto` COLLATE utf8mb3_unicode_ci AS `Id_Gasto`,
`Gastos`.`Gasto` COLLATE utf8mb3_unicode_ci AS `Gasto`, `Gastos`.`Gasto` COLLATE utf8mb3_unicode_ci AS `Gasto`,
@ -136,7 +160,7 @@ SELECT lpad(right(`Proveedores`.`cuenta`, 5), 10, '47510000') AS `Cuenta`,
`prov`.`name` AS `Provincia`, `prov`.`name` AS `Provincia`,
`Proveedores`.`codpos` AS `CP`, `Proveedores`.`codpos` AS `CP`,
`p`.`Codigo` AS `country_code`, `p`.`Codigo` AS `country_code`,
`v_xsubprov`.`empresa_id` AS `empresa_id`, sub.`empresa_id` AS `empresa_id`,
substr( substr(
`c`.`email`, `c`.`email`,
1, 1,
@ -148,8 +172,22 @@ FROM (
( (
( (
`vn2008`.`Proveedores` `vn2008`.`Proveedores`
JOIN `vn2008`.`v_xsubprov` ON( JOIN (
`Proveedores`.`Id_Proveedor` = `v_xsubprov`.`proveedor_id` SELECT `recibida`.`proveedor_id` AS `proveedor_id`,
`recibida`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`recibida`
WHERE `recibida`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
GROUP BY `recibida`.`proveedor_id`,
`recibida`.`empresa_id`
UNION ALL
SELECT `pago`.`id_proveedor` AS `id_proveedor`,
`pago`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`pago`
WHERE `pago`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
GROUP BY `pago`.`id_proveedor`,
`pago`.`empresa_id`
) sub ON(
`Proveedores`.`Id_Proveedor` = sub.`proveedor_id`
) )
) )
LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Proveedores`.`pais_id`) LEFT JOIN `vn2008`.`Paises` `p` ON(`p`.`Id` = `Proveedores`.`pais_id`)
@ -165,5 +203,5 @@ WHERE (
OR `Proveedores`.`cuenta` LIKE '_____2____' OR `Proveedores`.`cuenta` LIKE '_____2____'
) )
AND `Proveedores`.`oficial` = 1 AND `Proveedores`.`oficial` = 1
GROUP BY `v_xsubprov`.`proveedor_id`, GROUP BY sub.`proveedor_id`,
`v_xsubprov`.`empresa_id` sub.`empresa_id`

View File

@ -1,16 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`v_xsubprov`
AS SELECT `recibida`.`proveedor_id` AS `proveedor_id`,
`recibida`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`recibida`
WHERE `recibida`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
GROUP BY `recibida`.`proveedor_id`,
`recibida`.`empresa_id`
UNION ALL
SELECT `pago`.`id_proveedor` AS `id_proveedor`,
`pago`.`empresa_id` AS `empresa_id`
FROM `vn2008`.`pago`
WHERE `pago`.`fecha` > `util`.`VN_CURDATE`() + INTERVAL -3 MONTH
GROUP BY `pago`.`id_proveedor`,
`pago`.`empresa_id`

View File

@ -1,8 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`vnCreditClassification`
AS SELECT `vn`.`creditClassification`.`id` AS `id`,
`vn`.`creditClassification`.`client` AS `client`,
`vn`.`creditClassification`.`dateStart` AS `dateStart`,
`vn`.`creditClassification`.`dateEnd` AS `dateEnd`
FROM `vn`.`creditClassification`

View File

@ -1,9 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`vnCreditInsurance`
AS SELECT `vn`.`creditInsurance`.`id` AS `id`,
`vn`.`creditInsurance`.`creditClassification` AS `creditClassification`,
`vn`.`creditInsurance`.`credit` AS `credit`,
`vn`.`creditInsurance`.`creationDate` AS `creationDate`,
`vn`.`creditInsurance`.`grade` AS `grade`
FROM `vn`.`creditInsurance`

View File

@ -1,8 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`vnSolunionCAP`
AS SELECT `vn`.`solunionCAP`.`creditInsurance` AS `creditInsurance`,
`vn`.`solunionCAP`.`dateStart` AS `dateStart`,
`vn`.`solunionCAP`.`dateEnd` AS `dateEnd`,
`vn`.`solunionCAP`.`dateLeaving` AS `dateLeaving`
FROM `vn`.`solunionCAP`

View File

@ -1,6 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`warehouse_alias`
AS SELECT `wa`.`id` AS `warehouse_alias_id`,
`wa`.`name` AS `alias`
FROM `vn`.`warehouseAlias` `wa`

View File

@ -1,7 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`workcenter_holiday`
AS SELECT `wh`.`workCenterFk` AS `workcenter_id`,
`wh`.`days` AS `day`,
`wh`.`year` AS `year`
FROM `vn`.`workCenterHoliday` `wh`

View File

@ -1,19 +0,0 @@
CREATE OR REPLACE DEFINER=`root`@`localhost`
SQL SECURITY DEFINER
VIEW `vn2008`.`zoneNickname`
AS SELECT `ap`.`warehouse_id` AS `warehouse_id`,
`ap`.`agency_id` AS `agency_id`,
`ap`.`zona` AS `zona`,
concat(
'ZONA ',
`ap`.`zona`,
' ',
IF(`ap`.`zona` = 20, 'Madrid', `p`.`name`)
) AS `alias`
FROM (
`vn2008`.`Agencias_province` `ap`
JOIN `vn2008`.`province` `p` ON(`p`.`province_id` = `ap`.`province_id`)
)
GROUP BY `ap`.`zona`,
`ap`.`warehouse_id`,
`ap`.`agency_id`

View File

@ -0,0 +1 @@
ALTER TABLE vn.workerTimeControl ADD device varchar(255) DEFAULT NULL NULL COMMENT 'Dispositivo en el que se ha fichado' AFTER `order`;

View File

@ -0,0 +1 @@
ALTER TABLE vn.workerTimeControl CHANGE direction direction enum('in','out','middle') CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT 'middle' NULL AFTER timed;

View File

@ -0,0 +1,6 @@
-- Place your SQL code here
USE vn;
ALTER TABLE vn.item CHANGE packingShelve packingShelve__ int(11) DEFAULT NULL NULL COMMENT '@deprecated 2024-31-01';

View File

@ -0,0 +1,4 @@
REVOKE SELECT, INSERT, UPDATE ON TABLE vn2008.Rutas_Master FROM productionAssi;
REVOKE SELECT ON TABLE vn2008.Rutas_monitor FROM employee;
REVOKE SELECT, INSERT, UPDATE, DELETE ON TABLE vn2008.tarifas FROM buyer;
REVOKE SELECT, UPDATE ON TABLE vn2008.tarifas FROM buyerBoss;

View File

@ -0,0 +1 @@
REVOKE SELECT ON TABLE vn2008.Vistas FROM employee;

View File

@ -1,7 +1,7 @@
version: '3.7' version: '3.7'
services: services:
front: front:
image: registry.verdnatura.es/salix-front:${BRANCH_NAME:?} image: registry.verdnatura.es/salix-front:${VERSION:?}
build: build:
context: . context: .
dockerfile: front/Dockerfile dockerfile: front/Dockerfile
@ -16,7 +16,7 @@ services:
limits: limits:
memory: 1G memory: 1G
back: back:
image: registry.verdnatura.es/salix-back:${BRANCH_NAME:?} image: registry.verdnatura.es/salix-back:${VERSION:?}
build: . build: .
ports: ports:
- 3000 - 3000

View File

@ -333,7 +333,7 @@
"It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}", "It was not able to remove the next expeditions:": "No se pudo eliminar las siguientes expediciones: {{expeditions}}",
"This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada", "This claim has been updated": "La reclamación con Id: {{claimId}}, ha sido actualizada",
"This user does not have an assigned tablet": "Este usuario no tiene tablet asignada", "This user does not have an assigned tablet": "Este usuario no tiene tablet asignada",
"Incorrect pin": "Pin incorrecto.", "Incorrect pin": "Pin incorrecto",
"You already have the mailAlias": "Ya tienes este alias de correo", "You already have the mailAlias": "Ya tienes este alias de correo",
"The alias cant be modified": "Este alias de correo no puede ser modificado", "The alias cant be modified": "Este alias de correo no puede ser modificado",
"No tickets to invoice": "No hay tickets para facturar" "No tickets to invoice": "No hay tickets para facturar"

View File

@ -1,6 +1,6 @@
import './index'; import './index';
fdescribe('component vnRoleCard', () => { describe('component vnRoleCard', () => {
let controller; let controller;
let $httpBackend; let $httpBackend;

View File

@ -1,6 +1,6 @@
import './index'; import './index';
fdescribe('component vnRoleDescriptor', () => { describe('component vnRoleDescriptor', () => {
let controller; let controller;
let $httpBackend; let $httpBackend;

View File

@ -143,9 +143,6 @@
"isFloramondo": { "isFloramondo": {
"type": "boolean" "type": "boolean"
}, },
"packingShelve": {
"type": "number"
},
"isLaid": { "isLaid": {
"type": "boolean" "type": "boolean"
}, },

View File

@ -46,6 +46,6 @@ module.exports = Self => {
if (!isSubordinate || (isHimself && !isTeamBoss)) if (!isSubordinate || (isHimself && !isTeamBoss))
throw new UserError(`You don't have enough privileges`); throw new UserError(`You don't have enough privileges`);
return Self.clockIn(workerId, args.timed, args.direction, myOptions); return Self.clockIn(workerId, args.timed, args.direction, null, myOptions);
}; };
}; };

View File

@ -18,7 +18,10 @@ module.exports = Self => {
arg: 'direction', arg: 'direction',
type: 'string' type: 'string'
}, },
{
arg: 'device',
type: 'string'
},
], ],
http: { http: {
path: `/clockIn`, path: `/clockIn`,
@ -30,13 +33,19 @@ module.exports = Self => {
} }
}); });
Self.clockIn = async(workerFk, timed, direction, options) => { Self.clockIn = async(workerFk, timed, direction, device, options) => {
const myOptions = {}; const myOptions = {};
if (typeof options == 'object') if (typeof options == 'object')
Object.assign(myOptions, options); Object.assign(myOptions, options);
const query = 'CALL vn.workerTimeControl_clockIn(?, ?, ?)'; const query = 'CALL vn.workerTimeControl_clockIn(?, ?, ?, ?)';
const [[response]] = await Self.rawSql(query, [workerFk, timed, direction], myOptions); const [[response]] = await Self.rawSql(query, [
workerFk,
timed,
direction,
(device || null)],
myOptions);
if (response && response.error) if (response && response.error)
throw new UserError(response.error); throw new UserError(response.error);

View File

@ -1,7 +1,7 @@
const UserError = require('vn-loopback/util/user-error'); const UserError = require('vn-loopback/util/user-error');
module.exports = Self => { module.exports = Self => {
Self.remoteMethodCtx('login', { Self.remoteMethod('login', {
description: 'Consult the user\'s information and the buttons that must be activated after logging in', description: 'Consult the user\'s information and the buttons that must be activated after logging in',
accessType: 'READ', accessType: 'READ',
accepts: [ accepts: [
@ -21,15 +21,14 @@ module.exports = Self => {
} }
}); });
Self.login = async(ctx, pin, options) => { Self.login = async(pin, options) => {
const myOptions = {}; const myOptions = {};
const $t = ctx.req.__;
if (typeof options == 'object') if (typeof options == 'object')
Object.assign(myOptions, options); Object.assign(myOptions, options);
const query = `CALL vn.workerTimeControl_login(?)`; const query = `CALL vn.workerTimeControl_login(?)`;
const [[user]] = await Self.rawSql(query, [pin], myOptions); const [[user]] = await Self.rawSql(query, [pin], myOptions);
if (!user) throw new UserError($t('Incorrect pin')); if (!user) throw new UserError('Incorrect pin');
return user; return user;
}; };
}; };

View File

@ -30,7 +30,7 @@ describe('workerTimeControl clockIn()', () => {
try { try {
const options = {transaction: tx}; const options = {transaction: tx};
await models.WorkerTimeControl.clockIn(workerId, inTime, 'in', options); await models.WorkerTimeControl.clockIn(workerId, inTime, 'in', 'test', options);
const isClockIn = await models.WorkerTimeControl.findOne({ const isClockIn = await models.WorkerTimeControl.findOne({
where: { where: {
userFk: workerId userFk: workerId

View File

@ -3,29 +3,15 @@ const LoopBackContext = require('loopback-context');
const UserError = require('vn-loopback/util/user-error'); const UserError = require('vn-loopback/util/user-error');
describe('workerTimeControl login()', () => { describe('workerTimeControl login()', () => {
let ctx;
beforeAll(async() => {
ctx = {
accessToken: {userId: 9},
req: {
headers: {origin: 'http://localhost'},
__: key => key
}
};
spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
active: ctx
});
});
it('should correctly login', async() => { it('should correctly login', async() => {
const response = await models.WorkerTimeControl.login(ctx, 9); const response = await models.WorkerTimeControl.login(9);
expect(response.name).toBe('developer'); expect(response.name).toBe('developer');
}); });
it('should throw UserError if pin is not provided', async() => { it('should throw UserError if pin is not provided', async() => {
try { try {
await models.WorkerTimeControl.login(ctx); await models.WorkerTimeControl.login();
} catch (error) { } catch (error) {
expect(error).toBeInstanceOf(UserError); expect(error).toBeInstanceOf(UserError);
expect(error.message).toBe('Incorrect pin'); expect(error.message).toBe('Incorrect pin');

View File

@ -14,13 +14,16 @@
"timed": { "timed": {
"type": "date" "type": "date"
}, },
"direction": {
"type": "string"
},
"manual": { "manual": {
"type": "boolean" "type": "boolean"
}, },
"order": { "order": {
"type": "number" "type": "number"
}, },
"direction": { "device": {
"type": "string" "type": "string"
}, },
"isSendMail": { "isSendMail": {

View File

@ -1,6 +1,6 @@
{ {
"name": "salix-back", "name": "salix-back",
"version": "24.06.01", "version": "24.6.0",
"author": "Verdnatura Levante SL", "author": "Verdnatura Levante SL",
"description": "Salix backend", "description": "Salix backend",
"license": "GPL-3.0", "license": "GPL-3.0",
@ -41,7 +41,7 @@
"node-ssh": "^11.0.0", "node-ssh": "^11.0.0",
"object-diff": "0.0.4", "object-diff": "0.0.4",
"object.pick": "^1.3.0", "object.pick": "^1.3.0",
"puppeteer": "^20.3.0", "puppeteer": "^21.10.0",
"read-chunk": "^3.2.0", "read-chunk": "^3.2.0",
"require-yaml": "0.0.1", "require-yaml": "0.0.1",
"smbhash": "0.0.1", "smbhash": "0.0.1",