Merge branch 'dev' into 6270-electronicInvoiceBack
gitea/salix/pipeline/pr-dev This commit looks good Details

This commit is contained in:
Carlos Satorres 2024-02-01 10:51:11 +00:00
commit 91c3c8f04d
56 changed files with 3629 additions and 1196 deletions

View File

@ -40,11 +40,11 @@ RUN apt-get update \
WORKDIR /salix
COPY print/package.json print/package-lock.json print/
RUN npm --prefix ./print install --omit=dev ./print
RUN npm install --no-audit --prefer-offline --omit=dev --prefix=print
COPY package.json package-lock.json ./
COPY loopback/package.json loopback/
RUN npm install --omit=dev
RUN npm install --no-audit --prefer-offline --omit=dev
COPY loopback loopback
COPY back back

6
Jenkinsfile vendored
View File

@ -9,13 +9,13 @@ pipeline {
options {
disableConcurrentBuilds()
}
tools {
nodejs 'node-v20'
}
environment {
PROJECT_NAME = 'salix'
STACK_NAME = "${env.PROJECT_NAME}-${env.BRANCH_NAME}"
}
tools {
nodejs 'node-v20'
}
stages {
stage('Checkout') {
steps {

View File

@ -32,7 +32,7 @@ BEGIN
tm.year AS Año,
tm.month AS Mes,
tm.week AS Semana,
v.vista AS Vista,
dm.description AS Vista,
bt.importe AS Importe
FROM bs.ventas bt
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
LEFT JOIN vn2008.Tickets t ON t.Id_Ticket = m.Id_Ticket
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.province p ON p.province_id = cs.province_id
LEFT JOIN vn2008.warehouse w ON w.id = t.warehouse_id

View File

@ -2,20 +2,22 @@ DELIMITER $$
CREATE OR REPLACE DEFINER=`root`@`localhost` PROCEDURE `vn`.`workerTimeControl_clockIn`(
vWorkerFk INT,
vTimed DATETIME,
vDirection VARCHAR(10)
vDirection VARCHAR(10),
vDevice VARCHAR(255)
)
BEGIN
/**
* Verifica si el empleado puede fichar
* @param vWorkerFk Identificador del trabajador
* @param vTimed valor de la fichada, IF vTimed IS NULL vTimed = NOW
* @param vDirection solo se pueden pasa los valores del campo
* workerTimeControl.direction ENUM('in', 'out', 'middle')
* @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
* Solo retorna el primer problema, en caso de no ocurrir ningún error se añadirá
* fichada a la tabla vn.workerTimeControl
*/
* Verifica si el empleado puede fichar
* @param vWorkerFk Identificador del trabajador
* @param vTimed Balor de la fichada, IF vTimed IS NULL vTimed = NOW
* @param vDirection Solo se pueden pasa los valores del campo
* 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.
* 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á
* fichada a la tabla vn.workerTimeControl
*/
DECLARE vLastIn DATETIME;
DECLARE vLastOut DATETIME;
@ -276,9 +278,9 @@ BEGIN
END IF;
END IF;
-- SE PERMITE FICHAR
INSERT INTO workerTimeControl(userFk, timed, direction, `manual`)
VALUES(vWorkerFk, vTimed, vDirection, vIsManual);
-- Se permite fichar
INSERT INTO workerTimeControl(userFk, timed, direction, device, `manual`)
VALUES(vWorkerFk, vTimed, vDirection, vDevice, vIsManual);
SELECT LAST_INSERT_ID() id;

View File

@ -31,7 +31,7 @@ FROM (
)
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`)
)

View File

@ -20,14 +20,12 @@ proc: BEGIN
SET vDate2000 = util.VN_CURDATE() + INTERVAL (2000 - YEAR(util.VN_CURDATE())) YEAR;
SET vRangeDeleteTicket = 60;
DELETE FROM Rutas_monitor WHERE fecha < vDate;
DELETE FROM cdr WHERE calldate < vDate18;
DELETE FROM Monitoring WHERE ODBC_TIME < vDate;
DELETE FROM Conteo WHERE Fecha < vDate;
DELETE FROM XDiario WHERE FECHA < vDate3 OR FECHA IS NULL;
DELETE FROM mail WHERE DATE_ODBC < vDate;
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 Splits WHERE Fecha < vDate18;
@ -47,8 +45,6 @@ proc: BEGIN
JOIN Tickets t ON m.Id_Ticket = t.Id_Ticket WHERE t.Fecha < vDate;
DELETE FROM Remesas WHERE `Fecha Remesa` < vDate18;
DELETE FROM sharingcart where datEND < vDate;
DELETE FROM sharingclient where datEND < vDate;
DELETE 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
FROM Tickets t
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)
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`,
`Clientes`.`codPostal` AS `CODPOSTAL`,
`p`.`Codigo` AS `country_code`,
`v_xsubclien`.`empresa_id` AS `empresa_id`,
sub.`empresa_id` AS `empresa_id`,
substr(
`Clientes`.`e-mail`,
1,
@ -39,8 +39,18 @@ FROM (
(
(
`vn2008`.`Clientes`
JOIN `vn2008`.`v_xsubclien` ON(
`Clientes`.`id_cliente` = `v_xsubclien`.`Id_Cliente`
JOIN (
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`)
@ -50,7 +60,7 @@ FROM (
)
)
GROUP BY `Clientes`.`id_cliente`,
`v_xsubclien`.`empresa_id`
sub.`empresa_id`
UNION ALL
SELECT `Proveedores`.`cuenta` AS `Cuenta`,
`Proveedores`.`Proveedor` AS `Proveedor`,
@ -68,7 +78,7 @@ SELECT `Proveedores`.`cuenta` AS `Cuenta`,
`prov`.`name` AS `Provincia`,
`Proveedores`.`codpos` AS `CP`,
`p`.`Codigo` AS `country_code`,
`v_xsubprov`.`empresa_id` AS `empresa_id`,
sub.`empresa_id` AS `empresa_id`,
substr(
`c`.`email`,
1,
@ -80,8 +90,22 @@ FROM (
(
(
`vn2008`.`Proveedores`
JOIN `vn2008`.`v_xsubprov` ON(
`Proveedores`.`Id_Proveedor` = `v_xsubprov`.`proveedor_id`
JOIN (
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`)
@ -93,8 +117,8 @@ FROM (
LEFT JOIN `vn`.`supplierContact` `c` ON(`c`.`supplierFk` = `Proveedores`.`Id_Proveedor`)
)
WHERE `Proveedores`.`oficial` <> 0
GROUP BY `v_xsubprov`.`proveedor_id`,
`v_xsubprov`.`empresa_id`
GROUP BY sub.`proveedor_id`,
sub.`empresa_id`
UNION ALL
SELECT `Gastos`.`Id_Gasto` COLLATE utf8mb3_unicode_ci AS `Id_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`,
`Proveedores`.`codpos` AS `CP`,
`p`.`Codigo` AS `country_code`,
`v_xsubprov`.`empresa_id` AS `empresa_id`,
sub.`empresa_id` AS `empresa_id`,
substr(
`c`.`email`,
1,
@ -148,8 +172,22 @@ FROM (
(
(
`vn2008`.`Proveedores`
JOIN `vn2008`.`v_xsubprov` ON(
`Proveedores`.`Id_Proveedor` = `v_xsubprov`.`proveedor_id`
JOIN (
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`)
@ -165,5 +203,5 @@ WHERE (
OR `Proveedores`.`cuenta` LIKE '_____2____'
)
AND `Proveedores`.`oficial` = 1
GROUP BY `v_xsubprov`.`proveedor_id`,
`v_xsubprov`.`empresa_id`
GROUP BY sub.`proveedor_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,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

@ -333,7 +333,7 @@
"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 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",
"The alias cant be modified": "Este alias de correo no puede ser modificado",
"No tickets to invoice": "No hay tickets para facturar"

View File

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

View File

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

View File

@ -46,6 +46,6 @@ module.exports = Self => {
if (!isSubordinate || (isHimself && !isTeamBoss))
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',
type: 'string'
},
{
arg: 'device',
type: 'string'
},
],
http: {
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 = {};
if (typeof options == 'object')
Object.assign(myOptions, options);
const query = 'CALL vn.workerTimeControl_clockIn(?, ?, ?)';
const [[response]] = await Self.rawSql(query, [workerFk, timed, direction], myOptions);
const query = 'CALL vn.workerTimeControl_clockIn(?, ?, ?, ?)';
const [[response]] = await Self.rawSql(query, [
workerFk,
timed,
direction,
(device || null)],
myOptions);
if (response && response.error)
throw new UserError(response.error);

View File

@ -1,7 +1,7 @@
const UserError = require('vn-loopback/util/user-error');
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',
accessType: 'READ',
accepts: [
@ -21,15 +21,14 @@ module.exports = Self => {
}
});
Self.login = async(ctx, pin, options) => {
Self.login = async(pin, options) => {
const myOptions = {};
const $t = ctx.req.__;
if (typeof options == 'object')
Object.assign(myOptions, options);
const query = `CALL vn.workerTimeControl_login(?)`;
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;
};
};

View File

@ -30,7 +30,7 @@ describe('workerTimeControl clockIn()', () => {
try {
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({
where: {
userFk: workerId

View File

@ -3,29 +3,15 @@ const LoopBackContext = require('loopback-context');
const UserError = require('vn-loopback/util/user-error');
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() => {
const response = await models.WorkerTimeControl.login(ctx, 9);
const response = await models.WorkerTimeControl.login(9);
expect(response.name).toBe('developer');
});
it('should throw UserError if pin is not provided', async() => {
try {
await models.WorkerTimeControl.login(ctx);
await models.WorkerTimeControl.login();
} catch (error) {
expect(error).toBeInstanceOf(UserError);
expect(error.message).toBe('Incorrect pin');

View File

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

1384
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -41,7 +41,7 @@
"node-ssh": "^11.0.0",
"object-diff": "0.0.4",
"object.pick": "^1.3.0",
"puppeteer": "^20.3.0",
"puppeteer": "^21.10.0",
"read-chunk": "^3.2.0",
"require-yaml": "0.0.1",
"smbhash": "0.0.1",

2732
print/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff