Compare commits
66 Commits
8227-roadm
...
dev
Author | SHA1 | Date |
---|---|---|
Ivan Mas | 074fe5b0ac | |
Ivan Mas | 2e4c5fe401 | |
Ivan Mas | 83228d481d | |
Ivan Mas | 3fa74a18de | |
Ivan Mas | 45ccf8da28 | |
Ivan Mas | fa9b9cc5a3 | |
Ivan Mas | 66a08f7641 | |
Jon Elias | 923fef444c | |
Ivan Mas | a2258a005a | |
Carlos Satorres | 3fede6d586 | |
Ivan Mas | da5e395450 | |
Carlos Satorres | e1125dc46d | |
Jon Elias | 53ee0c1617 | |
Ivan Mas | 4d210b34c7 | |
Ivan Mas | f68f62543d | |
Ivan Mas | 148072b39d | |
Ivan Mas | 9e95afa190 | |
Ivan Mas | e0e72272a7 | |
Ivan Mas | ecc92792da | |
Ivan Mas | 85c3dc54fa | |
Jon Elias | ef8e206520 | |
Jon Elias | 0a89a6a6fd | |
Ivan Mas | 2a7795d432 | |
Ivan Mas | 70d286df80 | |
Ivan Mas | dfcc155ef9 | |
Ivan Mas | 821e2cbe4d | |
Carlos Satorres | b14beb83f4 | |
Carlos Satorres | 10a6626a65 | |
Carlos Satorres | 024ab8602d | |
Carlos Satorres | 6ef0d2625d | |
Carlos Satorres | 60f0b169d4 | |
Carlos Satorres | a4f9d62504 | |
Carlos Satorres | 358f93c454 | |
Carlos Satorres | 978914aa71 | |
Carlos Satorres | c8d57a1efa | |
Carlos Satorres | 209bd21548 | |
Carlos Satorres | bd1cee6d8b | |
Carlos Satorres | a139c9849c | |
Carlos Satorres | ddecfee24b | |
Carlos Satorres | 6f16974320 | |
Carlos Satorres | e2a4c5339a | |
Carlos Satorres | c1b9032534 | |
Carlos Satorres | 4bc475d132 | |
Carlos Satorres | d1aa164aea | |
Carlos Satorres | 601909e853 | |
Carlos Satorres | 4b9a39e6ba | |
Carlos Satorres | 2aa0e2af2a | |
Carlos Satorres | c3c60b1fa7 | |
Carlos Satorres | ff328c9f0d | |
Carlos Satorres | a27e3ed60f | |
Carlos Satorres | 5e5a8078ca | |
Carlos Satorres | cf651dc2e1 | |
Alex Moreno | 36b4c7fb74 | |
Alex Moreno | 3362d7562f | |
Carlos Satorres | cc8af9d14a | |
Carlos Satorres | be0de3511b | |
Carlos Satorres | 0486c40454 | |
Alex Moreno | 4f7b625a4f | |
Alex Moreno | a9ad3df592 | |
Alex Moreno | e8d0ebe91d | |
Carlos Satorres | 41fabecc9b | |
Carlos Satorres | 06fe0f5cef | |
Carlos Satorres | 5d73af5392 | |
Carlos Satorres | 11d1cd8eb3 | |
Carlos Satorres | a5ffdddb53 | |
Carlos Satorres | 3e1b296b29 |
|
@ -750,15 +750,17 @@ INSERT INTO `vn`.`zoneClosure` (`zoneFk`, `dated`, `hour`)
|
|||
|
||||
INSERT INTO `vn`.`zoneConfig` (`id`, `scope`) VALUES (1, '1');
|
||||
|
||||
INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `dated`)
|
||||
INSERT INTO `vn`.`route`(`id`, `time`, `workerFk`, `created`, `vehicleFk`, `agencyModeFk`, `description`, `m3`, `cost`, `started`, `finished`, `zoneFk`, `dated`)
|
||||
VALUES
|
||||
(1, '1899-12-30 12:15:00', 56, util.VN_CURDATE(), 1, 1, 'first route', 1.8, 10, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE()),
|
||||
(2, '1899-12-30 13:20:00', 56, util.VN_CURDATE(), 1, 2, 'second route', 0.2, 20, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE()),
|
||||
(3, '1899-12-30 14:30:00', 56, util.VN_CURDATE(), 2, 3, 'third route', 0.5, 30, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE()),
|
||||
(4, '1899-12-30 15:45:00', 56, util.VN_CURDATE(), 3, 4, 'fourth route', 0, 40, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE()),
|
||||
(5, '1899-12-30 16:00:00', 56, util.VN_CURDATE(), 4, 5, 'fifth route', 0.1, 50, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE()),
|
||||
(6, NULL, 57, util.VN_CURDATE(), 5, 7, 'sixth route', 1.7, 60, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), util.VN_CURDATE()),
|
||||
(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());
|
||||
(1, '1899-12-30 12:15:00', 133, util.VN_CURDATE(), 1, 1, 'first route', 1.8, 10, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1, util.VN_CURDATE()),
|
||||
(2, '1899-12-30 13:20:00', 56, util.VN_CURDATE(), 1, 2, 'second route', 0.2, 20, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 9, util.VN_CURDATE()),
|
||||
(3, '1899-12-30 14:30:00', 56, util.VN_CURDATE(), 2, 3, 'third route', 0.5, 30, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 10, util.VN_CURDATE()),
|
||||
(4, '1899-12-30 15:45:00', 56, util.VN_CURDATE(), 3, 4, 'fourth route', 0, 40, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 12, util.VN_CURDATE()),
|
||||
(5, '1899-12-30 16:00:00', 56, util.VN_CURDATE(), 4, 5, 'fifth route', 0.1, 50, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 13, util.VN_CURDATE()),
|
||||
(6, NULL, 57, util.VN_CURDATE(), 5, 7, 'sixth route', 1.7, 60, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 3, util.VN_CURDATE()),
|
||||
(7, NULL, 57, util.VN_CURDATE(), 6, 8, 'seventh route', 0, 70, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 5, util.VN_CURDATE()),
|
||||
(8, NULL, 133, util.VN_CURDATE(), 1, 1, 'eighth route', 1.8, 10.0, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 1, util.VN_CURDATE()),
|
||||
(9, NULL, 133, util.VN_CURDATE(), 1, 2, 'ninth route', 0.2, 20.0, util.VN_CURDATE(), DATE_ADD(util.VN_CURDATE(), INTERVAL + 1 DAY), 9, 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
|
||||
|
@ -2754,13 +2756,13 @@ 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`, `userFk`, `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 2 DAY), 'observations...', 2, 25, 'Driverman');
|
||||
|
||||
INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `roadmapAddressFk`, `eta`, `description`, `editorFk`)
|
||||
INSERT INTO `vn`.`roadmapStop` (`id`, `roadmapFk`, `addressFk`, `eta`, `description`, `userFk`)
|
||||
VALUES
|
||||
(1, 1, 1, DATE_ADD(util.VN_NOW(), INTERVAL 1 DAY), 'Best truck in fleet', 1),
|
||||
(2, 1, 2, DATE_ADD(util.VN_NOW(), INTERVAL '1 2' DAY_HOUR), 'Second truck in fleet', 1),
|
||||
|
@ -3205,7 +3207,7 @@ UPDATE vn.department
|
|||
SET workerFk = null;
|
||||
|
||||
INSERT INTO vn.packaging
|
||||
VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0,0,1);
|
||||
VALUES('--', 2745600.00, 100.00, 120.00, 220.00, 0.00, 1, '2001-01-01 00:00:00.000', NULL, NULL, NULL, 0.00, 16, 0.00, 0, NULL, 0.00, NULL, NULL, 0, NULL, 0, 0,0,1,0);
|
||||
|
||||
|
||||
INSERT IGNORE INTO vn.intrastat
|
||||
|
|
|
@ -1,62 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` FUNCTION `vn`.`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 ;
|
|
@ -1,71 +0,0 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`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 vNextRoadmapId INT;
|
||||
|
||||
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;
|
||||
|
||||
SELECT AUTO_INCREMENT INTO vNextRoadmapId
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 'roadmap'
|
||||
AND table_schema = 'vn';
|
||||
|
||||
CREATE OR REPLACE TEMPORARY TABLE tmp.roadmapsToCopy
|
||||
ENGINE = MEMORY
|
||||
SELECT ROW_NUMBER() OVER(ORDER BY id) rowOrder,
|
||||
id,
|
||||
`name`,
|
||||
roadmapAddressFk,
|
||||
etd,
|
||||
eta,
|
||||
observations,
|
||||
price
|
||||
FROM roadmap
|
||||
WHERE etd BETWEEN vDateToCopy AND util.dayEnd(vDateToCopy);
|
||||
|
||||
INSERT INTO roadmap (`name`, roadmapAddressFk, etd, eta, observations, price)
|
||||
SELECT `name`,
|
||||
roadmapAddressFk,
|
||||
etd + INTERVAL vDaysDiff DAY,
|
||||
eta + INTERVAL vDaysDiff DAY,
|
||||
observations,
|
||||
price
|
||||
FROM tmp.roadmapsToCopy;
|
||||
|
||||
INSERT INTO roadmapStop (roadmapFk, roadmapAddressFk, eta, `description`, bufferFk)
|
||||
SELECT (rtc.rowOrder - 1) + vNextRoadmapId,
|
||||
rs.roadmapAddressFk,
|
||||
rs.eta + INTERVAL vDaysDiff DAY,
|
||||
rs.description,
|
||||
rs.bufferFk
|
||||
FROM tmp.roadmapsToCopy rtc
|
||||
JOIN roadmapStop rs ON rs.roadmapFk = rtc.id;
|
||||
|
||||
COMMIT;
|
||||
|
||||
DROP TEMPORARY TABLE tmp.roadmapsToCopy;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -1,21 +1,14 @@
|
|||
DELIMITER $$
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`vehicle_checkNumberPlate`(
|
||||
vNumberPlate VARCHAR(10),
|
||||
vCountryCodeFk VARCHAR(2)
|
||||
)
|
||||
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`vehicle_checkNumberPlate`(vNumberPlate VARCHAR(10), vCountryCodeFk VARCHAR(2))
|
||||
BEGIN
|
||||
/**
|
||||
* 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
|
||||
* Comprueba si la matricula pasada tiene el formato correcto dependiendo del pais del vehiculo
|
||||
*/
|
||||
DECLARE vRegex VARCHAR(45);
|
||||
|
||||
SELECT regex INTO vRegex
|
||||
FROM vehiclePlateRegex
|
||||
WHERE countryCodeFk = vCountryCodeFk;
|
||||
SELECT vp.regex INTO vRegex
|
||||
FROM vehiclePlateRegex vp
|
||||
WHERE vp.countryCodeFk = vCountryCodeFk;
|
||||
|
||||
IF NOT vNumberPlate REGEXP BINARY (vRegex)THEN
|
||||
CALL util.throw(CONCAT('Error: la matricula ', vNumberPlate, ' no es valida para ',vCountryCodeFk));
|
||||
|
|
|
@ -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 ;
|
|
@ -3,30 +3,8 @@ 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();
|
||||
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;
|
||||
|
||||
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 ;
|
|
@ -3,40 +3,8 @@ 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();
|
||||
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) AND NEW.roadmapFk IS NOT NULL)
|
||||
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 ;
|
||||
|
|
|
@ -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 ;
|
|
@ -3,31 +3,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeInsert`
|
|||
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 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);
|
||||
SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk);
|
||||
ELSE
|
||||
SET NEW.driverName = NULL;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -3,39 +3,10 @@ CREATE OR REPLACE DEFINER=`vn`@`localhost` TRIGGER `vn`.`roadmap_beforeUpdate`
|
|||
BEFORE UPDATE ON `roadmap`
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
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);
|
||||
IF NEW.driver1Fk IS NOT NULL THEN
|
||||
SET NEW.driverName = (SELECT firstName FROM worker WHERE id = NEW.driver1Fk);
|
||||
ELSE
|
||||
SET NEW.driverName = NULL;
|
||||
END IF;
|
||||
END$$
|
||||
DELIMITER ;
|
|
@ -18,5 +18,6 @@ AS SELECT `p`.`id` AS `Id_Cubo`,
|
|||
`p`.`base` AS `Base`,
|
||||
`p`.`isBox` AS `box`,
|
||||
`p`.`returnCost` AS `costeRetorno`,
|
||||
`p`.`isActive` AS `isActive`
|
||||
`p`.`isActive` AS `isActive`,
|
||||
`p`.`flippingCost` AS `flippingCost`
|
||||
FROM `vn`.`packaging` `p`
|
||||
|
|
|
@ -29,5 +29,6 @@ AS SELECT `a`.`id` AS `id`,
|
|||
`a`.`invoiceInPaletizedFk` AS `invoiceInPaletizedFk`,
|
||||
`a`.`observation` AS `observation`,
|
||||
`a`.`hasFreightPrepaid` AS `hasFreightPrepaid`,
|
||||
`a`.`propertyNumber` AS `propertyNumber`
|
||||
`a`.`propertyNumber` AS `propertyNumber`,
|
||||
`a`.`costPerKg` AS `costPerKg`
|
||||
FROM `vn`.`awb` `a`
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
ALTER TABLE vn.business
|
||||
ADD CONSTRAINT `business_companyCodeFk` FOREIGN KEY (`companyCodeFk`) REFERENCES `company` (`code`) ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- Auto-generated SQL script. Actual values for binary/complex data types may differ - what you see is the default string representation of values.
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('BusinessReasonEnd','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('CalendarType','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('OccupationCode','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('BusinessReasonEnd','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('WorkerBusinessProfessionalCategory','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('WorkerBusinessAgreement','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('WorkerBusinessType','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('PayrollCategory','find','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Worker','__get__business','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Worker','__create__business','*','ALLOW','ROLE','hr');
|
||||
INSERT INTO salix.ACL (model,property,accessType,permission,principalType,principalId)
|
||||
VALUES ('Business','crud','*','ALLOW','ROLE','hr');
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
ALTER TABLE vn.roadmap
|
||||
DROP FOREIGN KEY roadmap_worker_FK_2,
|
||||
DROP FOREIGN KEY roadmap_worker_FK,
|
||||
DROP FOREIGN KEY roadmap_ibfk_2;
|
|
@ -1,20 +0,0 @@
|
|||
ALTER TABLE vn.roadmap
|
||||
COMMENT='Rutas troncales (trailers)',
|
||||
MODIFY COLUMN m3 int(10) unsigned DEFAULT NULL NULL COMMENT 'Capacidad máxima del remolque',
|
||||
MODIFY COLUMN trailerPlate varchar(10) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci DEFAULT NULL NULL,
|
||||
MODIFY COLUMN etd datetime NOT NULL COMMENT 'Tiempo estimado de salida',
|
||||
MODIFY COLUMN `name` varchar(45) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL,
|
||||
MODIFY COLUMN driver1Fk int(10) unsigned DEFAULT NULL NULL AFTER driverName,
|
||||
MODIFY COLUMN driver2Fk int(10) unsigned DEFAULT NULL NULL AFTER driver1Fk,
|
||||
ADD eta datetime DEFAULT NULL NULL COMMENT 'Tiempo estimado de llegada' AFTER etd,
|
||||
ADD roadmapAddressFk int(11) DEFAULT NULL NULL AFTER `name`,
|
||||
ADD dollyPlate varchar(10) DEFAULT NULL AFTER trailerPlate,
|
||||
ADD tugPlate varchar(10) DEFAULT NULL AFTER dollyPlate,
|
||||
ADD driverChangeName varchar(45) DEFAULT NULL AFTER driver2Fk,
|
||||
ADD driverChangeFk int(10) unsigned DEFAULT NULL NULL AFTER driverChangeName;
|
||||
|
||||
-- Separamos los CHANGE por que si no arriba no se aplican
|
||||
ALTER TABLE vn.roadmap
|
||||
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER m3;
|
||||
|
||||
CREATE INDEX roadmap_etd_IDX USING BTREE ON vn.roadmap (etd);
|
|
@ -1,15 +0,0 @@
|
|||
UPDATE vn.roadmap
|
||||
SET roadmapAddressFk = (SELECT MIN(addressFk) FROM vn.roadmapAddress),
|
||||
eta = etd + INTERVAL 1 DAY;
|
||||
|
||||
ALTER TABLE vn.roadmap
|
||||
ADD CONSTRAINT roadmap_roadmapAddress_FK FOREIGN KEY (roadmapAddressFk)
|
||||
REFERENCES vn.roadmapAddress(addressFk) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT roadmap_driver_FK FOREIGN KEY (driver1Fk)
|
||||
REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT roadmap_driver_FK2 FOREIGN KEY (driver2Fk)
|
||||
REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT roadmap_driverChange_FK FOREIGN KEY (driverChangeFk)
|
||||
REFERENCES vn.worker(id) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
ADD CONSTRAINT roadmap_user_Fk FOREIGN KEY (editorFk)
|
||||
REFERENCES account.user(id) ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
@ -1,7 +0,0 @@
|
|||
ALTER TABLE vn.roadmapStop
|
||||
CHANGE userFk editorFk int(10) unsigned DEFAULT NULL NULL,
|
||||
CHANGE addressFk roadmapAddressFk int(11) DEFAULT NULL NULL,
|
||||
DROP FOREIGN KEY expeditionTruck_FK_2;
|
||||
|
||||
ALTER TABLE vn.roadmapStop ADD CONSTRAINT roadmapStop_roadmap_FK
|
||||
FOREIGN KEY (roadmapFk) REFERENCES vn.roadmap(id) ON DELETE CASCADE ON UPDATE CASCADE;
|
|
@ -1,4 +0,0 @@
|
|||
ALTER TABLE vn.route
|
||||
ADD roadmapStopFk int(11) NULL,
|
||||
ADD CONSTRAINT route_roadmapStop_FK FOREIGN KEY (roadmapStopFk) REFERENCES vn.roadmapStop(id) ON DELETE RESTRICT ON UPDATE CASCADE,
|
||||
CHANGE editorFk editorFk int(10) unsigned DEFAULT NULL NULL AFTER roadmapStopFk;
|
|
@ -1,2 +0,0 @@
|
|||
ALTER TABLE vn.roadmapAddress
|
||||
COMMENT='Direcciones de los troncales o también llamados puntos de distribución';
|
|
@ -1,11 +0,0 @@
|
|||
GRANT SELECT ON TABLE vn.roadmap TO 'delivery';
|
||||
GRANT SELECT ON TABLE vn.roadmapStop TO 'delivery';
|
||||
GRANT SELECT ON TABLE vn.roadmapAddress TO 'delivery';
|
||||
|
||||
GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmap TO 'deliveryBoss';
|
||||
GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmapStop TO 'deliveryBoss';
|
||||
GRANT DELETE, UPDATE, INSERT ON TABLE vn.roadmapAddress TO 'deliveryBoss';
|
||||
|
||||
-- Comentado debido a que da error porque ejecuta primero el script de la versión
|
||||
-- GRANT EXECUTE ON PROCEDURE vn.roadmap_cloneDay TO 'deliveryBoss';
|
||||
-- GRANT EXECUTE ON FUNCTION vn.getTimeBetweenRoadmapAddresses TO 'deliveryBoss';
|
|
@ -1,2 +0,0 @@
|
|||
ALTER TABLE vn.route DROP FOREIGN KEY fk_route_1;
|
||||
ALTER TABLE vn.route DROP COLUMN zoneFk;
|
|
@ -1,2 +0,0 @@
|
|||
ALTER TABLE vn.vehicle
|
||||
ADD typeFk enum('car','van','truck','trailer','tug', 'tugDolly','dolly') DEFAULT 'van' NOT NULL;
|
|
@ -1 +0,0 @@
|
|||
CREATE INDEX route_dated_IDX USING BTREE ON vn.route (dated);
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE vn.packaging
|
||||
ADD COLUMN flippingCost decimal(10, 2) NOT NULL DEFAULT 0.00
|
|
@ -0,0 +1 @@
|
|||
ALTER TABLE vn.travel CHANGE appointment appointment__ datetime DEFAULT NULL COMMENT '@deprecated 2025-01-28';
|
|
@ -0,0 +1,2 @@
|
|||
ALTER TABLE `vn`.`awb`
|
||||
ADD COLUMN `costPerKg` DECIMAL(10, 2) UNSIGNED DEFAULT NULL COMMENT 'Tarifa que indica a cuanto cuesta el kilo en ese vuelo';
|
|
@ -158,10 +158,12 @@ module.exports = Self => {
|
|||
a.provinceFk AS provinceAddressFk,
|
||||
p.name AS province,
|
||||
u.id AS salesPersonFk,
|
||||
u.name AS salesPerson
|
||||
u.name AS salesPerson,
|
||||
co.name AS country
|
||||
FROM client c
|
||||
LEFT JOIN account.user u ON u.id = c.salesPersonFk
|
||||
LEFT JOIN province p ON p.id = c.provinceFk
|
||||
LEFT JOIN country co ON co.id = c.countryFk
|
||||
JOIN address a ON a.clientFk = c.id
|
||||
`
|
||||
);
|
||||
|
|
|
@ -139,5 +139,23 @@
|
|||
},
|
||||
"Xdiario": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"BusinessReasonEnd": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"OccupationCode": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"WorkerBusinessProfessionalCategory": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"CalendarType": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"WorkerBusinessType": {
|
||||
"dataSource": "vn"
|
||||
},
|
||||
"PayrollCategory": {
|
||||
"dataSource": "vn"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"name": "BusinessReasonEnd",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "businessReasonEnd"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"reason": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -13,6 +13,63 @@
|
|||
},
|
||||
"workcenterFk" : {
|
||||
"type": "number"
|
||||
},
|
||||
"companyCodeFk" : {
|
||||
"type": "string"
|
||||
},
|
||||
"started" : {
|
||||
"type": "date"
|
||||
},
|
||||
"ended" : {
|
||||
"type": "date"
|
||||
},
|
||||
"workerBusiness" : {
|
||||
"type": "string"
|
||||
},
|
||||
"reasonEndFk" : {
|
||||
"type": "number"
|
||||
},
|
||||
"payedHolidays" : {
|
||||
"type": "number"
|
||||
},
|
||||
"occupationCodeFk" : {
|
||||
"type": "string"
|
||||
},
|
||||
"workerFk" : {
|
||||
"type": "number"
|
||||
},
|
||||
"notes" : {
|
||||
"type": "string"
|
||||
},
|
||||
"departmentFk": {
|
||||
"type": "string"
|
||||
},
|
||||
"workerBusinessProfessionalCategoryFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"calendarTypeFk": {
|
||||
"type": "string"
|
||||
},
|
||||
"isHourlyLabor": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"rate": {
|
||||
"type": "number"
|
||||
},
|
||||
"workerBusinessCategoryFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"workerBusinessTypeFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"amount": {
|
||||
"type": "number"
|
||||
},
|
||||
"workerBusinessAgreementFk": {
|
||||
"type": "number"
|
||||
},
|
||||
"basicSalary": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
@ -25,6 +82,59 @@
|
|||
"type": "belongsTo",
|
||||
"model": "Department",
|
||||
"foreignKey": "departmentFk"
|
||||
},
|
||||
"workCenter": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkCenter",
|
||||
"foreignKey": "workcenterFk"
|
||||
},
|
||||
"companyCode": {
|
||||
"type": "belongsTo",
|
||||
"model": "Company",
|
||||
"foreignKey": "companyCodeFk",
|
||||
"primaryKey": "code"
|
||||
},
|
||||
"reasonEnd": {
|
||||
"type": "belongsTo",
|
||||
"model": "BusinessReasonEnd",
|
||||
"foreignKey": "reasonEndFk"
|
||||
},
|
||||
"occupationCode": {
|
||||
"type": "belongsTo",
|
||||
"model": "OccupationCode",
|
||||
"foreignKey":"occupationCodeFk",
|
||||
"primaryKey": "code"
|
||||
},
|
||||
"payrollCategory": {
|
||||
"type": "belongsTo",
|
||||
"model": "PayrollCategory",
|
||||
"foreignKey":"workerBusinessCategoryFk"
|
||||
},
|
||||
"workerBusinessProfessionalCategory": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessProfessionalCategory",
|
||||
"foreignKey": "workerBusinessProfessionalCategoryFk"
|
||||
},
|
||||
"calendarType": {
|
||||
"type": "belongsTo",
|
||||
"model": "CalendarType",
|
||||
"foreignKey": "calendarTypeFk"
|
||||
},
|
||||
"workerBusinessCategory": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessCategory",
|
||||
"foreignKey": "workerBusinessCategoryFk"
|
||||
},
|
||||
"workerBusinessType": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessType",
|
||||
"foreignKey": "workerBusinessTypeFk"
|
||||
},
|
||||
"workerBusinessAgreement": {
|
||||
"type": "belongsTo",
|
||||
"model": "WorkerBusinessAgreement",
|
||||
"foreignKey": "workerBusinessAgreementFk"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "CalendarType",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "calendarType"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"hoursWeek": {
|
||||
"type": "number"
|
||||
},
|
||||
"isPartial": "number"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"name": "OccupationCode",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "occupationCode"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "string",
|
||||
"id": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "PayrollCategory",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "payrollCategories"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"rate": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "WorkerBusinessProfessionalCategory",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "professionalCategory"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"code": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"name": "WorkerBusinessAgreement",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "workerBusinessAgreement"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"monthHolidays": {
|
||||
"type": "number"
|
||||
},
|
||||
"yearsHours": {
|
||||
"type": "number"
|
||||
},
|
||||
"started": {
|
||||
"type": "date"
|
||||
},
|
||||
"ended": {
|
||||
"type": "date"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "WorkerBusinessType",
|
||||
"base": "VnModel",
|
||||
"options": {
|
||||
"mysql": {
|
||||
"table": "workerBusinessType"
|
||||
}
|
||||
},
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "number",
|
||||
"id": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"isFullTime": {
|
||||
"type": "number"
|
||||
},
|
||||
"isPermanent": {
|
||||
"type": "number"
|
||||
},
|
||||
"hasHolidayEntitlement": {
|
||||
"type": "number"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -75,6 +75,11 @@
|
|||
"type": "hasMany",
|
||||
"model": "Ticket",
|
||||
"foreignKey": "routeFk"
|
||||
}
|
||||
},
|
||||
"zone": {
|
||||
"type": "belongsTo",
|
||||
"model": "Zone",
|
||||
"foreignKey": "zoneFk"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
module.exports = Self => {
|
||||
const validateTin = require('vn-loopback/util/validateTin');
|
||||
require('../methods/worker/filter')(Self);
|
||||
require('../methods/worker/mySubordinates')(Self);
|
||||
require('../methods/worker/isSubordinate')(Self);
|
||||
|
@ -23,26 +22,10 @@ module.exports = Self => {
|
|||
require('../methods/worker/getAvailablePda')(Self);
|
||||
require('../methods/worker/myTeam')(Self);
|
||||
|
||||
Self.validateAsync('fi', tinIsValid, {
|
||||
message: 'Invalid TIN'
|
||||
});
|
||||
|
||||
Self.canModifyAbsenceInPast = async(ctx, time) => {
|
||||
const hasPrivs = await Self.app.models.ACL.checkAccessAcl(ctx, 'Worker', 'canModifyAbsenceInPast', 'WRITE');
|
||||
const today = Date.vnNew();
|
||||
today.setHours(0, 0, 0, 0);
|
||||
return hasPrivs || today.getTime() < time;
|
||||
};
|
||||
|
||||
async function tinIsValid(err, done) {
|
||||
const country = await Self.app.models.Country.findOne({
|
||||
fields: ['code'],
|
||||
where: {id: this.originCountryFk}
|
||||
});
|
||||
const code = country ? country.code.toLowerCase() : null;
|
||||
|
||||
if (!this.fi || !validateTin(this.fi, code))
|
||||
err();
|
||||
done();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -75,6 +75,9 @@
|
|||
},
|
||||
"isSsDiscounted": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"businessFk": {
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"relations": {
|
||||
|
@ -103,6 +106,11 @@
|
|||
"model": "WorkerDepartment",
|
||||
"foreignKey": "id"
|
||||
},
|
||||
"currentBusiness": {
|
||||
"type": "belongsTo",
|
||||
"model": "Business",
|
||||
"foreignKey": "businessFk"
|
||||
},
|
||||
"collegues": {
|
||||
"type": "hasMany",
|
||||
"model": "WorkerTeamCollegues",
|
||||
|
@ -113,6 +121,11 @@
|
|||
"model": "Locker",
|
||||
"foreignKey": "workerFk"
|
||||
},
|
||||
"business": {
|
||||
"type": "hasMany",
|
||||
"model": "Business",
|
||||
"foreignKey": "workerFk"
|
||||
},
|
||||
"medicalReview": {
|
||||
"type": "hasMany",
|
||||
"model": "MedicalReview",
|
||||
|
@ -259,12 +272,36 @@
|
|||
"relation": "department",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"name"
|
||||
"id"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "business",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"started",
|
||||
"ended",
|
||||
"reasonEndFk",
|
||||
"departmentFk",
|
||||
"workerBusinessProfessionalCategoryFk"
|
||||
],
|
||||
"include": [
|
||||
{
|
||||
"relation": "reasonEnd",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"reason"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "boss",
|
||||
"scope": {
|
||||
|
@ -312,7 +349,8 @@
|
|||
"educationLevelFk",
|
||||
"originCountryFk",
|
||||
"maritalStatus",
|
||||
"SSN"
|
||||
"SSN",
|
||||
"businessFk"
|
||||
],
|
||||
"include": [
|
||||
{
|
||||
|
@ -323,6 +361,48 @@
|
|||
"phone"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "currentBusiness",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"started",
|
||||
"ended",
|
||||
"reasonEndFk",
|
||||
"departmentFk",
|
||||
"workerBusinessProfessionalCategoryFk"
|
||||
],
|
||||
"include": [
|
||||
{
|
||||
"relation": "reasonEnd",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"reason"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "department",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"name"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"relation": "workerBusinessProfessionalCategory",
|
||||
"scope": {
|
||||
"fields": [
|
||||
"id",
|
||||
"description"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue