diff --git a/back/methods/collection/collectionFaults.js b/back/methods/collection/collectionFaults.js
deleted file mode 100644
index 395c7e581..000000000
--- a/back/methods/collection/collectionFaults.js
+++ /dev/null
@@ -1,35 +0,0 @@
-module.exports = Self => {
- Self.remoteMethod('collectionFaults', {
- description: 'Update sale of a collection',
- accessType: 'WRITE',
- accepts: [{
- arg: 'shelvingFk',
- type: 'String',
- required: true,
- description: 'The shalving id'
- }, {
- arg: 'quantity',
- type: 'Number',
- required: true,
- description: 'The quantity to sale'
- }, {
- arg: 'itemFk',
- type: 'Number',
- required: true,
- description: 'The ticket id'
- }],
- returns: {
- type: 'Object',
- root: true
- },
- http: {
- path: `/collectionFaults`,
- verb: 'POST'
- }
- });
-
- Self.collectionFaults = async(shelvingFk, quantity, itemFk) => {
- query = `CALL vn.collection_faults(?,?,?)`;
- return await Self.rawSql(query, [shelvingFk, quantity, itemFk]);
- };
-};
diff --git a/back/methods/collection/spec/collectionFauls.spec.js b/back/methods/collection/spec/collectionFauls.spec.js
deleted file mode 100644
index 210dcdf63..000000000
--- a/back/methods/collection/spec/collectionFauls.spec.js
+++ /dev/null
@@ -1,9 +0,0 @@
-const app = require('vn-loopback/server/server');
-describe('collectionFaults()', () => {
- it('return shelving afected', async() => {
- let response = await app.models.Collection.collectionFaults('UXN', 0, 1);
-
- expect(response.length).toBeGreaterThan(0);
- expect(response[0][0].shelvingFk).toEqual('UXN');
- });
-});
diff --git a/back/models/collection.js b/back/models/collection.js
index 29a0c4c32..436414f62 100644
--- a/back/models/collection.js
+++ b/back/models/collection.js
@@ -3,5 +3,4 @@ module.exports = Self => {
require('../methods/collection/newCollection')(Self);
require('../methods/collection/getSectors')(Self);
require('../methods/collection/setSaleQuantity')(Self);
- require('../methods/collection/collectionFaults')(Self);
};
diff --git a/db/dump/fixtures.sql b/db/dump/fixtures.sql
index c2e42d140..a83632740 100644
--- a/db/dump/fixtures.sql
+++ b/db/dump/fixtures.sql
@@ -54,28 +54,7 @@ INSERT INTO `vn`.`educationLevel` (`id`, `name`)
INSERT INTO `vn`.`worker`(`id`,`code`, `firstName`, `lastName`, `userFk`, `bossFk`)
SELECT id,UPPER(LPAD(role, 3, '0')), name, name, id, 9
- FROM `vn`.`user`;
-
-ALTER TABLE `vn`.`worker` ADD `originCountryFk` mediumint(8) unsigned NULL COMMENT 'País de origen';
-ALTER TABLE `vn`.`worker` ADD `educationLevelFk` SMALLINT NULL;
-ALTER TABLE `vn`.`worker` ADD `SSN` varchar(15) NULL;
-ALTER TABLE `vn`.`worker` CHANGE `maritalStatus__` `maritalStatus` enum('S','M') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
-ALTER TABLE `vn`.`worker` MODIFY COLUMN `maritalStatus` enum('S','M') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL;
-ALTER TABLE `vn`.`worker` CHANGE `maritalStatus` maritalStatus enum('S','M') CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL AFTER sectorFk;
-ALTER TABLE `vn`.`worker` ADD CONSTRAINT `worker_FK_2` FOREIGN KEY (`educationLevelFk`) REFERENCES `vn`.`educationLevel`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
-ALTER TABLE `vn`.`worker` ADD CONSTRAINT `worker_FK_1` FOREIGN KEY (`originCountryFk`) REFERENCES `vn`.`country`(`id`) ON DELETE RESTRICT ON UPDATE CASCADE;
-
-UPDATE `vn`.`worker` `w`
- SET `maritalStatus` = 'S';
-
-UPDATE `vn`.`worker` `w`
- SET `originCountryFk` = '1';
-
-UPDATE `vn`.`worker` `w`
- SET `educationLevelFk` = '2';
-
-UPDATE `vn`.`worker` `w`
- SET `SSN` = '123456789123';
+ FROM `vn`.`user`;
UPDATE `vn`.`worker` SET bossFk = NULL WHERE id = 20;
UPDATE `vn`.`worker` SET bossFk = 20 WHERE id = 1 OR id = 9;
@@ -173,8 +152,9 @@ INSERT INTO `vn`.`parking` (`id`, `column`, `row`, `sectorFk`, `code`, `pickingO
INSERT INTO `vn`.`shelving` (`code`, `parkingFk`, `isPrinted`, `priority`, `parked`, `userFk`)
VALUES
- ('GVC', '1', '0', '1', '0', '1106'),
- ('HEJ', '2', '0', '1', '0', '1106');
+ ('GVC', 1, 0, 1, 0, 1106),
+ ('HEJ', 2, 0, 1, 0, 1106),
+ ('UXN', 1, 0, 1, 0, 1106);
INSERT INTO `vn`.`accountingType`(`id`, `description`, `receiptDescription`,`code`, `maxAmount`)
VALUES
@@ -1069,10 +1049,11 @@ INSERT INTO `vn`.`saleComponent`(`saleFk`, `componentFk`, `value`)
(32, 36, -92.324),
(32, 39, 0.994);
-INSERT INTO `vn`.`itemShelving` (`id`, `itemFk`, `shelvingFk`, `shelve`, `deep`, `quantity`, `visible`, `available`, `grouping`, `packing`, `level`, `userFk`)
+INSERT INTO `vn`.`itemShelving` (`itemFk`, `shelvingFk`, `shelve`, `visible`, `grouping`, `packing`, `userFk`)
VALUES
- ('1', '2', 'GVC', 'A', '0', '1', '1', '1', '1', '1', '1', '1106'),
- ('2', '4', 'HEJ', 'A', '0', '2', '1', '1', '1', '1', '1', '1106');
+ (2, 'GVC', 'A', 1, 1, 1, 1106),
+ (4, 'HEJ', 'A', 1, 1, 1, 1106),
+ (1, 'UXN', 'A', 2, 12, 12, 1106);
INSERT INTO `vn`.`itemShelvingSale` (`itemShelvingFk`, `saleFk`, `quantity`, `created`, `userFk`)
VALUES
@@ -1126,14 +1107,6 @@ INSERT INTO `vn`.`parking` (`column`, `row`, `sectorFk`, `code`, `pickingOrder`)
VALUES
('100', '01', 1, '100-01', 1);
-INSERT INTO `vn`.`shelving` (`code`, `parkingFk`, `priority`, `userFk`)
- VALUES
- ('UXN', 1, 1, 1106);
-
-INSERT INTO `vn`.`itemShelving` (`itemFk`, `shelvingFk`, `shelve`, `deep`, `quantity`, `visible`, `available`, `grouping`, `packing`, `level`, `userFk`)
- VALUES
- (1, 'UXN', 'A', 2, 12, 12, 12, 12, 12, 1, 1106);
-
INSERT INTO `vn`.`ticketCollection` (`ticketFk`, `collectionFk`, `level`)
VALUES
(1, 1, 1);
@@ -2523,7 +2496,7 @@ INSERT INTO `bs`.`sale` (`saleFk`, `amount`, `dated`, `typeFk`, `clientFk`)
INSERT INTO `vn`.`docuware` (`code`, `fileCabinetName`, `dialogName` , `find`)
VALUES
- ('deliveryClientTest', 'deliveryClientTest', 'findTest', 'word');
+ ('deliveryClient', 'deliveryClient', 'findTicket', 'word');
INSERT INTO `vn`.`docuwareConfig` (`url`)
VALUES
diff --git a/db/dump/structure.sql b/db/dump/structure.sql
index 74bcd8966..fdd7e1151 100644
--- a/db/dump/structure.sql
+++ b/db/dump/structure.sql
@@ -920,52 +920,52 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `passwordGenerate`() RETURNS text CHARSET utf8 COLLATE utf8_unicode_ci
READS SQL DATA
-BEGIN
-/**
- * Generates a random password that meets the minimum requirements.
- *
- * @return Generated password
- */
- DECLARE vMinLength TINYINT;
- DECLARE vMinAlpha TINYINT;
- DECLARE vMinUpper TINYINT;
- DECLARE vMinDigits TINYINT;
- DECLARE vMinPunct TINYINT;
- DECLARE vAlpha TINYINT DEFAULT 0;
- DECLARE vUpper TINYINT DEFAULT 0;
- DECLARE vDigits TINYINT DEFAULT 0;
- DECLARE vPunct TINYINT DEFAULT 0;
- DECLARE vRandIndex INT;
- DECLARE vPwd TEXT DEFAULT '';
-
- DECLARE vAlphaChars TEXT DEFAULT 'abcdefghijklmnopqrstuvwxyz';
- DECLARE vUpperChars TEXT DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
- DECLARE vDigitChars TEXT DEFAULT '1234567890';
- DECLARE vPunctChars TEXT DEFAULT '!$%&()=.';
-
- SELECT length, nAlpha, nUpper, nDigits, nPunct
- INTO vMinLength, vMinAlpha, vMinUpper, vMinDigits, vMinPunct FROM userPassword;
-
- WHILE LENGTH(vPwd) < vMinLength OR vAlpha < vMinAlpha
- OR vUpper < vMinUpper OR vDigits < vMinDigits OR vPunct < vMinPunct DO
- SET vRandIndex = FLOOR((RAND() * 4) + 1);
-
- CASE
- WHEN vRandIndex = 1 THEN
- SET vPwd = CONCAT(vPwd, SUBSTRING(vAlphaChars, FLOOR((RAND() * 26) + 1), 1));
- SET vAlpha = vAlpha + 1;
- WHEN vRandIndex = 2 THEN
- SET vPwd = CONCAT(vPwd, SUBSTRING(vUpperChars, FLOOR((RAND() * 26) + 1), 1));
- SET vUpper = vUpper + 1;
- WHEN vRandIndex = 3 THEN
- SET vPwd = CONCAT(vPwd, SUBSTRING(vDigitChars, FLOOR((RAND() * 10) + 1), 1));
- SET vDigits = vDigits + 1;
- WHEN vRandIndex = 4 THEN
- SET vPwd = CONCAT(vPwd, SUBSTRING(vPunctChars, FLOOR((RAND() * LENGTH(vPunctChars)) + 1), 1));
- SET vPunct = vPunct + 1;
- END CASE;
- END WHILE;
- RETURN vPwd;
+BEGIN
+/**
+ * Generates a random password that meets the minimum requirements.
+ *
+ * @return Generated password
+ */
+ DECLARE vMinLength TINYINT;
+ DECLARE vMinAlpha TINYINT;
+ DECLARE vMinUpper TINYINT;
+ DECLARE vMinDigits TINYINT;
+ DECLARE vMinPunct TINYINT;
+ DECLARE vAlpha TINYINT DEFAULT 0;
+ DECLARE vUpper TINYINT DEFAULT 0;
+ DECLARE vDigits TINYINT DEFAULT 0;
+ DECLARE vPunct TINYINT DEFAULT 0;
+ DECLARE vRandIndex INT;
+ DECLARE vPwd TEXT DEFAULT '';
+
+ DECLARE vAlphaChars TEXT DEFAULT 'abcdefghijklmnopqrstuvwxyz';
+ DECLARE vUpperChars TEXT DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ DECLARE vDigitChars TEXT DEFAULT '1234567890';
+ DECLARE vPunctChars TEXT DEFAULT '!$%&()=.';
+
+ SELECT length, nAlpha, nUpper, nDigits, nPunct
+ INTO vMinLength, vMinAlpha, vMinUpper, vMinDigits, vMinPunct FROM userPassword;
+
+ WHILE LENGTH(vPwd) < vMinLength OR vAlpha < vMinAlpha
+ OR vUpper < vMinUpper OR vDigits < vMinDigits OR vPunct < vMinPunct DO
+ SET vRandIndex = FLOOR((RAND() * 4) + 1);
+
+ CASE
+ WHEN vRandIndex = 1 THEN
+ SET vPwd = CONCAT(vPwd, SUBSTRING(vAlphaChars, FLOOR((RAND() * 26) + 1), 1));
+ SET vAlpha = vAlpha + 1;
+ WHEN vRandIndex = 2 THEN
+ SET vPwd = CONCAT(vPwd, SUBSTRING(vUpperChars, FLOOR((RAND() * 26) + 1), 1));
+ SET vUpper = vUpper + 1;
+ WHEN vRandIndex = 3 THEN
+ SET vPwd = CONCAT(vPwd, SUBSTRING(vDigitChars, FLOOR((RAND() * 10) + 1), 1));
+ SET vDigits = vDigits + 1;
+ WHEN vRandIndex = 4 THEN
+ SET vPwd = CONCAT(vPwd, SUBSTRING(vPunctChars, FLOOR((RAND() * LENGTH(vPunctChars)) + 1), 1));
+ SET vPunct = vPunct + 1;
+ END CASE;
+ END WHILE;
+ RETURN vPwd;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -1104,23 +1104,23 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `user_getMysqlRole`(vUserName VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 COLLATE utf8_unicode_ci
DETERMINISTIC
-BEGIN
-/**
- * From a username, it returns the associated MySQL wich should be used when
- * using external authentication systems.
- *
- * @param vUserName The user name
- * @return The associated MySQL role
- */
- DECLARE vRole VARCHAR(255);
-
- SELECT CONCAT(IF(r.hasLogin, c.rolePrefix, ''), r.name) INTO vRole
- FROM role r
- JOIN user u ON u.role = r.id
- JOIN roleConfig c
- WHERE u.name = vUserName;
-
- RETURN vRole;
+BEGIN
+/**
+ * From a username, it returns the associated MySQL wich should be used when
+ * using external authentication systems.
+ *
+ * @param vUserName The user name
+ * @return The associated MySQL role
+ */
+ DECLARE vRole VARCHAR(255);
+
+ SELECT CONCAT(IF(r.hasLogin, c.rolePrefix, ''), r.name) INTO vRole
+ FROM role r
+ JOIN user u ON u.role = r.id
+ JOIN roleConfig c
+ WHERE u.name = vUserName;
+
+ RETURN vRole;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -1139,20 +1139,20 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `user_getNameFromId`(vSelf INT) RETURNS varchar(30) CHARSET utf8 COLLATE utf8_unicode_ci
DETERMINISTIC
-BEGIN
-/**
- * Gets user name from it's id.
- *
- * @param vSelf The user id
- * @return The user name
- */
- DECLARE vName VARCHAR(30);
-
- SELECT `name` INTO vName
- FROM user
- WHERE id = vSelf;
-
- RETURN vName;
+BEGIN
+/**
+ * Gets user name from it's id.
+ *
+ * @param vSelf The user id
+ * @return The user name
+ */
+ DECLARE vName VARCHAR(30);
+
+ SELECT `name` INTO vName
+ FROM user
+ WHERE id = vSelf;
+
+ RETURN vName;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -4091,21 +4091,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `carteras_add`()
-BEGIN
-/**
- * Inserta en @bs.carteras.
- */
- DELETE FROM bs.carteras
- WHERE Año >= YEAR(CURDATE()) - 1;
-
- INSERT INTO bs.carteras(Año,Mes,CodigoTrabajador,Peso)
- SELECT t.year AS Año, t.month AS Mes, w.code AS CodigoTrabajador, SUM(v.importe) AS Peso
- FROM vn.time t
- JOIN bs.ventas v on t.dated = v.fecha
- JOIN vn.client c on c.id = v.Id_Cliente
- JOIN vn.worker w ON w.id = c.salesPersonFk
- WHERE t.year >= YEAR(CURDATE()) - 1
- GROUP BY w.code, t.year , t.month;
+BEGIN
+/**
+ * Inserta en @bs.carteras.
+ */
+ DELETE FROM bs.carteras
+ WHERE Año >= YEAR(CURDATE()) - 1;
+
+ INSERT INTO bs.carteras(Año,Mes,CodigoTrabajador,Peso)
+ SELECT t.year AS Año, t.month AS Mes, w.code AS CodigoTrabajador, SUM(v.importe) AS Peso
+ FROM vn.time t
+ JOIN bs.ventas v on t.dated = v.fecha
+ JOIN vn.client c on c.id = v.Id_Cliente
+ JOIN vn.worker w ON w.id = c.salesPersonFk
+ WHERE t.year >= YEAR(CURDATE()) - 1
+ GROUP BY w.code, t.year , t.month;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -6444,104 +6444,104 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ventas_contables_add`(IN vYear INT, IN vMonth INT)
-BEGIN
-
- /**
- * Reemplaza las ventas contables del último año.
- * Es el origen de datos para el balance de Entradas
- *
- * @param vYear Año a reemplazar
- * @param vMonth Mes a reemplazar
- *
- **/
-
- DECLARE TIPO_PATRIMONIAL INT DEFAULT 188;
-
- DELETE FROM bs.ventas_contables
- WHERE year = vYear
- AND month = vMonth;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
- CREATE TEMPORARY TABLE tmp.ticket_list
- (PRIMARY KEY (Id_Ticket))
- ENGINE = MEMORY
- SELECT Id_Ticket
- FROM vn2008.Tickets t
- JOIN vn2008.Facturas f ON f.Id_Factura = t.Factura
- WHERE year(f.Fecha) = vYear
- AND month(f.Fecha) = vMonth;
-
- INSERT INTO bs.ventas_contables(year
- , month
- , venta
- , grupo
- , reino_id
- , tipo_id
- , empresa_id
- , gasto)
-
- SELECT vYear
- , vMonth
- , round(sum(Cantidad * Preu * (100 - m.Descuento)/100))
- , IF(
- e.empresa_grupo = e2.empresa_grupo
- ,1
- ,IF(e2.empresa_grupo,2,0)
- ) as grupo
- , tp.reino_id
- , a.tipo_id
- , t.empresa_id
- , 7000000000
- + IF(e.empresa_grupo = e2.empresa_grupo
- ,1
- ,IF(e2.empresa_grupo,2,0)
- ) * 1000000
- + tp.reino_id * 10000 as Gasto
- FROM vn2008.Movimientos m
- JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket
- JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
- JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
- JOIN tmp.ticket_list tt on tt.Id_Ticket = t.Id_Ticket
- JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
- JOIN vn2008.empresa e on e.id = t.empresa_id
- LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
- JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
- WHERE Cantidad <> 0
- AND Preu <> 0
- AND m.Descuento <> 100
- AND a.tipo_id != TIPO_PATRIMONIAL
- GROUP BY grupo, reino_id, tipo_id, empresa_id, Gasto;
-
- INSERT INTO bs.ventas_contables(year
- , month
- , venta
- , grupo
- , reino_id
- , tipo_id
- , empresa_id
- , gasto)
- SELECT vYear
- , vMonth
- , sum(ts.quantity * ts.price)
- , IF(
- c.companyGroupFk = c2.companyGroupFk
- ,1
- ,IF(c2.companyGroupFk, 2, 0)
- ) as grupo
- , NULL
- , NULL
- , t.companyFk
- , 7050000000
- FROM vn.ticketService ts
- JOIN vn.ticket t ON ts.ticketFk = t.id
- JOIN vn.address a on a.id = t.addressFk
- JOIN vn.client cl on cl.id = a.clientFk
- JOIN tmp.ticket_list tt on tt.Id_Ticket = t.id
- JOIN vn.company c on c.id = t.companyFk
- LEFT JOIN vn.company c2 on c2.clientFk = cl.id
- GROUP BY grupo, t.companyFk ;
-
- DROP TEMPORARY TABLE tmp.ticket_list;
+BEGIN
+
+ /**
+ * Reemplaza las ventas contables del último año.
+ * Es el origen de datos para el balance de Entradas
+ *
+ * @param vYear Año a reemplazar
+ * @param vMonth Mes a reemplazar
+ *
+ **/
+
+ DECLARE TIPO_PATRIMONIAL INT DEFAULT 188;
+
+ DELETE FROM bs.ventas_contables
+ WHERE year = vYear
+ AND month = vMonth;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket_list;
+ CREATE TEMPORARY TABLE tmp.ticket_list
+ (PRIMARY KEY (Id_Ticket))
+ ENGINE = MEMORY
+ SELECT Id_Ticket
+ FROM vn2008.Tickets t
+ JOIN vn2008.Facturas f ON f.Id_Factura = t.Factura
+ WHERE year(f.Fecha) = vYear
+ AND month(f.Fecha) = vMonth;
+
+ INSERT INTO bs.ventas_contables(year
+ , month
+ , venta
+ , grupo
+ , reino_id
+ , tipo_id
+ , empresa_id
+ , gasto)
+
+ SELECT vYear
+ , vMonth
+ , round(sum(Cantidad * Preu * (100 - m.Descuento)/100))
+ , IF(
+ e.empresa_grupo = e2.empresa_grupo
+ ,1
+ ,IF(e2.empresa_grupo,2,0)
+ ) as grupo
+ , tp.reino_id
+ , a.tipo_id
+ , t.empresa_id
+ , 7000000000
+ + IF(e.empresa_grupo = e2.empresa_grupo
+ ,1
+ ,IF(e2.empresa_grupo,2,0)
+ ) * 1000000
+ + tp.reino_id * 10000 as Gasto
+ FROM vn2008.Movimientos m
+ JOIN vn2008.Tickets t on t.Id_Ticket = m.Id_Ticket
+ JOIN vn2008.Consignatarios cs on cs.Id_Consigna = t.Id_Consigna
+ JOIN vn2008.Clientes c on c.Id_Cliente = cs.Id_Cliente
+ JOIN tmp.ticket_list tt on tt.Id_Ticket = t.Id_Ticket
+ JOIN vn2008.Articles a on m.Id_Article = a.Id_Article
+ JOIN vn2008.empresa e on e.id = t.empresa_id
+ LEFT JOIN vn2008.empresa e2 on e2.Id_Cliente = c.Id_Cliente
+ JOIN vn2008.Tipos tp on tp.tipo_id = a.tipo_id
+ WHERE Cantidad <> 0
+ AND Preu <> 0
+ AND m.Descuento <> 100
+ AND a.tipo_id != TIPO_PATRIMONIAL
+ GROUP BY grupo, reino_id, tipo_id, empresa_id, Gasto;
+
+ INSERT INTO bs.ventas_contables(year
+ , month
+ , venta
+ , grupo
+ , reino_id
+ , tipo_id
+ , empresa_id
+ , gasto)
+ SELECT vYear
+ , vMonth
+ , sum(ts.quantity * ts.price)
+ , IF(
+ c.companyGroupFk = c2.companyGroupFk
+ ,1
+ ,IF(c2.companyGroupFk, 2, 0)
+ ) as grupo
+ , NULL
+ , NULL
+ , t.companyFk
+ , 7050000000
+ FROM vn.ticketService ts
+ JOIN vn.ticket t ON ts.ticketFk = t.id
+ JOIN vn.address a on a.id = t.addressFk
+ JOIN vn.client cl on cl.id = a.clientFk
+ JOIN tmp.ticket_list tt on tt.Id_Ticket = t.id
+ JOIN vn.company c on c.id = t.companyFk
+ LEFT JOIN vn.company c2 on c2.clientFk = cl.id
+ GROUP BY grupo, t.companyFk ;
+
+ DROP TEMPORARY TABLE tmp.ticket_list;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -6852,33 +6852,33 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `waste_addSales_lastWeek__`()
-BEGIN
- DECLARE vWeek INT;
- DECLARE vYear INT;
-
- SELECT week, year
- INTO vWeek, vYear
- FROM vn.time
- WHERE dated = TIMESTAMPADD(WEEK, -1, CURDATE());
-
- REPLACE bs.waste
- SELECT *, 100 * mermas / total as porcentaje
- FROM (
- SELECT buyer,
- year,
- week,
- family,
- itemFk,
- itemTypeFk,
- floor(sum(value)) as total,
- floor(sum(IF(clientTypeFk = 'loses', value, 0))) as mermas
- FROM vn.saleValue
- where year = vYear and week = vWeek
-
- GROUP BY family, itemFk
-
- ) sub
- ORDER BY mermas DESC;
+BEGIN
+ DECLARE vWeek INT;
+ DECLARE vYear INT;
+
+ SELECT week, year
+ INTO vWeek, vYear
+ FROM vn.time
+ WHERE dated = TIMESTAMPADD(WEEK, -1, CURDATE());
+
+ REPLACE bs.waste
+ SELECT *, 100 * mermas / total as porcentaje
+ FROM (
+ SELECT buyer,
+ year,
+ week,
+ family,
+ itemFk,
+ itemTypeFk,
+ floor(sum(value)) as total,
+ floor(sum(IF(clientTypeFk = 'loses', value, 0))) as mermas
+ FROM vn.saleValue
+ where year = vYear and week = vWeek
+
+ GROUP BY family, itemFk
+
+ ) sub
+ ORDER BY mermas DESC;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -7605,147 +7605,147 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `availableNoRaids_refresh`(OUT `vCalc` INT, IN `vRefresh` INT, IN `vWarehouse` INT, IN `vDate` DATE)
-proc: BEGIN
- DECLARE vStartDate DATE;
- DECLARE vEndDate DATETIME;
- DECLARE vReserveDate DATETIME;
- DECLARE vParams CHAR(100);
- DECLARE vInventoryDate DATE;
-
- DECLARE EXIT HANDLER FOR SQLEXCEPTION
- BEGIN
- CALL cache_calc_unlock (vCalc);
- RESIGNAL;
- END;
-
- IF vDate < CURDATE() THEN
- LEAVE proc;
- END IF;
-
- CALL vn.itemStock (vWarehouse, vDate, NULL);
-
- SET vParams = CONCAT_WS('/', vWarehouse, vDate);
- CALL cache_calc_start (vCalc, vRefresh, 'availableNoRaids', vParams);
-
- IF !vRefresh THEN
- LEAVE proc;
- END IF;
-
- -- Calcula algunos parámetros necesarios
-
- SET vStartDate = TIMESTAMP(vDate, '00:00:00');
- SET vEndDate = TIMESTAMP(TIMESTAMPADD(DAY, 4, vDate), '23:59:59');
-
- SELECT inventoried INTO vInventoryDate FROM vn.config;
-
- SELECT SUBTIME(NOW(), reserveTime) INTO vReserveDate
- FROM hedera.orderConfig;
-
- -- Calcula el ultimo dia de vida para cada producto
-
- DROP TEMPORARY TABLE IF EXISTS item_range;
- CREATE TEMPORARY TABLE item_range
- (PRIMARY KEY (item_id))
- ENGINE = MEMORY
- SELECT c.item_id, IF(it.life IS NULL, NULL,
- TIMESTAMP(TIMESTAMPADD(DAY, it.life, c.landing), '23:59:59')) AS date_end
- FROM (
- SELECT b.itemFk item_id, MAX(t.landed) landing
- FROM vn.buy b
- JOIN vn.entry e ON b.entryFk = e.id
- JOIN vn.travel t ON t.id = e.travelFk
- JOIN vn.warehouse w ON w.id = t.warehouseInFk
- JOIN vn.supplier s ON s.id = e.supplierFk
- WHERE t.landed BETWEEN vInventoryDate AND vStartDate
- AND t.warehouseInFk = vWarehouse
- AND s.name != 'INVENTARIO'
- AND NOT e.isRaid
- GROUP BY b.itemFk
- ) c
- JOIN vn.item i ON i.id = c.item_id
- JOIN vn.itemType it ON it.id = i.typeFk
- HAVING date_end >= vStartDate OR date_end IS NULL;
-
- -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
-
- DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
- CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
- INSERT INTO item_range_copy1
- SELECT * FROM item_range;
-
- DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
- CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range;
- INSERT INTO item_range_copy2
- SELECT * FROM item_range;
-
- DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
- CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range;
- INSERT INTO item_range_copy3
- SELECT * FROM item_range;
-
- DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
- CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range;
- INSERT INTO item_range_copy4
- SELECT * FROM item_range;
-
- -- Calcula el ATP
-
- DELETE FROM availableNoRaids WHERE calc_id = vCalc;
-
- INSERT INTO availableNoRaids (calc_id, item_id, available)
- SELECT vCalc, t.item_id, SUM(stock) amount FROM (
- SELECT il.itemFk AS item_id, stock
- FROM tmp.itemList il
- JOIN item_range ir ON ir.item_id = il.itemFk
- UNION ALL
- SELECT t.item_id, minacum(dt, amount, vDate) AS available FROM (
- SELECT itemFk AS item_id, DATE(dat) dt, SUM(quantity) amount FROM (
- SELECT i.itemFk, i.shipped AS dat, i.quantity
- FROM vn.itemTicketOut i
- JOIN item_range_copy1 ir ON ir.item_id = i.itemFk
- WHERE i.shipped >= vStartDate
- AND (ir.date_end IS NULL OR i.shipped <= ir.date_end)
- AND i.warehouseFk = vWarehouse
- UNION ALL
- SELECT i.itemFk, i.landed AS dat, i.quantity
- FROM vn.itemEntryIn i
- JOIN item_range_copy2 ir ON ir.item_id = i.itemFk
- WHERE i.landed >= vStartDate
- AND (ir.date_end IS NULL OR i.landed <= ir.date_end)
- AND i.warehouseInFk = vWarehouse
- AND i.isVirtualStock = FALSE
- UNION ALL
- SELECT i.itemFk, i.shipped AS dat, i.quantity
- FROM vn.itemEntryOut i
- JOIN item_range_copy3 ir ON ir.item_id = i.itemFk
- WHERE i.shipped >= vStartDate
- AND (ir.date_end IS NULL OR i.shipped <= ir.date_end)
- AND i.warehouseOutFk = vWarehouse
- UNION ALL
- SELECT r.item_id, r.shipment, -r.amount
- FROM hedera.order_row r
- JOIN hedera.`order` o ON o.id = r.order_id
- JOIN item_range_copy4 ir ON ir.item_id = r.item_id
- WHERE r.shipment >= vStartDate
- AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
- AND r.warehouse_id = vWarehouse
- AND r.created >= vReserveDate
- AND NOT o.confirmed
- ) t
- GROUP BY item_id, dt
- ) t
- GROUP BY t.item_id
- ) t GROUP BY t.item_id;
-
- DROP TEMPORARY TABLE IF EXISTS
- tmp.itemList
- ,item_range
- ,item_range_copy1
- ,item_range_copy2
- ,item_range_copy3
- ,item_range_copy4;
-
- CALL cache_calc_end (vCalc);
+proc: BEGIN
+ DECLARE vStartDate DATE;
+ DECLARE vEndDate DATETIME;
+ DECLARE vReserveDate DATETIME;
+ DECLARE vParams CHAR(100);
+ DECLARE vInventoryDate DATE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ CALL cache_calc_unlock (vCalc);
+ RESIGNAL;
+ END;
+
+ IF vDate < CURDATE() THEN
+ LEAVE proc;
+ END IF;
+
+ CALL vn.itemStock (vWarehouse, vDate, NULL);
+
+ SET vParams = CONCAT_WS('/', vWarehouse, vDate);
+ CALL cache_calc_start (vCalc, vRefresh, 'availableNoRaids', vParams);
+
+ IF !vRefresh THEN
+ LEAVE proc;
+ END IF;
+
+ -- Calcula algunos parámetros necesarios
+
+ SET vStartDate = TIMESTAMP(vDate, '00:00:00');
+ SET vEndDate = TIMESTAMP(TIMESTAMPADD(DAY, 4, vDate), '23:59:59');
+
+ SELECT inventoried INTO vInventoryDate FROM vn.config;
+
+ SELECT SUBTIME(NOW(), reserveTime) INTO vReserveDate
+ FROM hedera.orderConfig;
+
+ -- Calcula el ultimo dia de vida para cada producto
+
+ DROP TEMPORARY TABLE IF EXISTS item_range;
+ CREATE TEMPORARY TABLE item_range
+ (PRIMARY KEY (item_id))
+ ENGINE = MEMORY
+ SELECT c.item_id, IF(it.life IS NULL, NULL,
+ TIMESTAMP(TIMESTAMPADD(DAY, it.life, c.landing), '23:59:59')) AS date_end
+ FROM (
+ SELECT b.itemFk item_id, MAX(t.landed) landing
+ FROM vn.buy b
+ JOIN vn.entry e ON b.entryFk = e.id
+ JOIN vn.travel t ON t.id = e.travelFk
+ JOIN vn.warehouse w ON w.id = t.warehouseInFk
+ JOIN vn.supplier s ON s.id = e.supplierFk
+ WHERE t.landed BETWEEN vInventoryDate AND vStartDate
+ AND t.warehouseInFk = vWarehouse
+ AND s.name != 'INVENTARIO'
+ AND NOT e.isRaid
+ GROUP BY b.itemFk
+ ) c
+ JOIN vn.item i ON i.id = c.item_id
+ JOIN vn.itemType it ON it.id = i.typeFk
+ HAVING date_end >= vStartDate OR date_end IS NULL;
+
+ -- Replica la tabla item_range para poder usarla varias veces en la misma consulta
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy1;
+ CREATE TEMPORARY TABLE item_range_copy1 LIKE item_range;
+ INSERT INTO item_range_copy1
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy2;
+ CREATE TEMPORARY TABLE item_range_copy2 LIKE item_range;
+ INSERT INTO item_range_copy2
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy3;
+ CREATE TEMPORARY TABLE item_range_copy3 LIKE item_range;
+ INSERT INTO item_range_copy3
+ SELECT * FROM item_range;
+
+ DROP TEMPORARY TABLE IF EXISTS item_range_copy4;
+ CREATE TEMPORARY TABLE item_range_copy4 LIKE item_range;
+ INSERT INTO item_range_copy4
+ SELECT * FROM item_range;
+
+ -- Calcula el ATP
+
+ DELETE FROM availableNoRaids WHERE calc_id = vCalc;
+
+ INSERT INTO availableNoRaids (calc_id, item_id, available)
+ SELECT vCalc, t.item_id, SUM(stock) amount FROM (
+ SELECT il.itemFk AS item_id, stock
+ FROM tmp.itemList il
+ JOIN item_range ir ON ir.item_id = il.itemFk
+ UNION ALL
+ SELECT t.item_id, minacum(dt, amount, vDate) AS available FROM (
+ SELECT itemFk AS item_id, DATE(dat) dt, SUM(quantity) amount FROM (
+ SELECT i.itemFk, i.shipped AS dat, i.quantity
+ FROM vn.itemTicketOut i
+ JOIN item_range_copy1 ir ON ir.item_id = i.itemFk
+ WHERE i.shipped >= vStartDate
+ AND (ir.date_end IS NULL OR i.shipped <= ir.date_end)
+ AND i.warehouseFk = vWarehouse
+ UNION ALL
+ SELECT i.itemFk, i.landed AS dat, i.quantity
+ FROM vn.itemEntryIn i
+ JOIN item_range_copy2 ir ON ir.item_id = i.itemFk
+ WHERE i.landed >= vStartDate
+ AND (ir.date_end IS NULL OR i.landed <= ir.date_end)
+ AND i.warehouseInFk = vWarehouse
+ AND i.isVirtualStock = FALSE
+ UNION ALL
+ SELECT i.itemFk, i.shipped AS dat, i.quantity
+ FROM vn.itemEntryOut i
+ JOIN item_range_copy3 ir ON ir.item_id = i.itemFk
+ WHERE i.shipped >= vStartDate
+ AND (ir.date_end IS NULL OR i.shipped <= ir.date_end)
+ AND i.warehouseOutFk = vWarehouse
+ UNION ALL
+ SELECT r.item_id, r.shipment, -r.amount
+ FROM hedera.order_row r
+ JOIN hedera.`order` o ON o.id = r.order_id
+ JOIN item_range_copy4 ir ON ir.item_id = r.item_id
+ WHERE r.shipment >= vStartDate
+ AND (ir.date_end IS NULL OR r.shipment <= ir.date_end)
+ AND r.warehouse_id = vWarehouse
+ AND r.created >= vReserveDate
+ AND NOT o.confirmed
+ ) t
+ GROUP BY item_id, dt
+ ) t
+ GROUP BY t.item_id
+ ) t GROUP BY t.item_id;
+
+ DROP TEMPORARY TABLE IF EXISTS
+ tmp.itemList
+ ,item_range
+ ,item_range_copy1
+ ,item_range_copy2
+ ,item_range_copy3
+ ,item_range_copy4;
+
+ CALL cache_calc_end (vCalc);
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -7989,27 +7989,27 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `cache_calc_end`(IN `v_calc` INT)
-BEGIN
- DECLARE v_cache_name VARCHAR(255);
- DECLARE v_params VARCHAR(255);
-
- -- Libera el bloqueo y actualiza la fecha de ultimo refresco.
-
- UPDATE cache_calc cc JOIN cache c ON c.id = cc.cache_id
- SET
- cc.last_refresh = NOW(),
- cc.expires = LEAST(ADDTIME(NOW(), c.lifetime), util.midNight()),
- cc.connection_id = NULL
- WHERE cc.id = v_calc;
-
- SELECT c.name, ca.params INTO v_cache_name, v_params
- FROM cache c
- JOIN cache_calc ca ON c.id = ca.cache_id
- WHERE ca.id = v_calc;
-
- IF v_cache_name IS NOT NULL THEN
- DO RELEASE_LOCK(CONCAT_WS('/', v_cache_name, IFNULL(v_params, '')));
- END IF;
+BEGIN
+ DECLARE v_cache_name VARCHAR(255);
+ DECLARE v_params VARCHAR(255);
+
+ -- Libera el bloqueo y actualiza la fecha de ultimo refresco.
+
+ UPDATE cache_calc cc JOIN cache c ON c.id = cc.cache_id
+ SET
+ cc.last_refresh = NOW(),
+ cc.expires = LEAST(ADDTIME(NOW(), c.lifetime), util.midNight()),
+ cc.connection_id = NULL
+ WHERE cc.id = v_calc;
+
+ SELECT c.name, ca.params INTO v_cache_name, v_params
+ FROM cache c
+ JOIN cache_calc ca ON c.id = ca.cache_id
+ WHERE ca.id = v_calc;
+
+ IF v_cache_name IS NOT NULL THEN
+ DO RELEASE_LOCK(CONCAT_WS('/', v_cache_name, IFNULL(v_params, '')));
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -8027,88 +8027,88 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `cache_calc_start`(OUT `v_calc` INT, INOUT `v_refresh` INT, IN `v_cache_name` VARCHAR(50), IN `v_params` VARCHAR(100))
-proc: BEGIN
- DECLARE v_valid BOOL;
- DECLARE v_lock_id VARCHAR(100);
- DECLARE v_cache_id INT;
- DECLARE v_expires DATETIME;
- DECLARE v_clean_time DATETIME;
-
- DECLARE EXIT HANDLER FOR SQLEXCEPTION
- BEGIN
- IF v_lock_id IS NOT NULL THEN
- DO RELEASE_LOCK(v_lock_id);
- END IF;
-
- RESIGNAL;
- END;
-
- SET v_params = IFNULL(v_params, '');
-
- -- Si el servidor se ha reiniciado invalida todos los calculos.
-
- SELECT COUNT(*) > 0 INTO v_valid FROM cache_valid;
-
- IF !v_valid
- THEN
- DELETE FROM cache_calc;
- INSERT INTO cache_valid (valid) VALUES (TRUE);
- END IF;
-
- -- Obtiene un bloqueo exclusivo para que no haya problemas de concurrencia.
-
- SET v_lock_id = CONCAT_WS('/', v_cache_name, v_params);
-
- IF !GET_LOCK(v_lock_id, 30)
- THEN
- SET v_calc = NULL;
- SET v_refresh = FALSE;
- LEAVE proc;
- END IF;
-
- -- Comprueba si el calculo solicitado existe y esta actualizado.
-
- SELECT c.id, ca.id, ca.expires
- INTO v_cache_id, v_calc, v_expires
- FROM cache c
- LEFT JOIN cache_calc ca
- ON ca.cache_id = c.id AND ca.params = v_params COLLATE 'utf8_general_ci'
- WHERE c.name = v_cache_name COLLATE 'utf8_general_ci';
-
- -- Si existe una calculo valido libera el bloqueo y devuelve su identificador.
-
- IF !v_refresh AND NOW() < v_expires
- THEN
- DO RELEASE_LOCK(v_lock_id);
- SET v_refresh = FALSE;
- LEAVE proc;
- END IF;
-
- -- Si el calculo no existe le crea una entrada en la tabla de calculos.
-
- IF v_calc IS NULL
- THEN
- INSERT INTO cache_calc SET
- cache_id = v_cache_id,
- cacheName = v_cache_name,
- params = v_params,
- last_refresh = NULL,
- expires = NULL,
- connection_id = CONNECTION_ID();
-
- SET v_calc = LAST_INSERT_ID();
- ELSE
- UPDATE cache_calc
- SET
- last_refresh = NULL,
- expires = NULL,
- connection_id = CONNECTION_ID()
- WHERE id = v_calc;
- END IF;
-
- -- Si se debe recalcular mantiene el bloqueo y devuelve su identificador.
-
- SET v_refresh = TRUE;
+proc: BEGIN
+ DECLARE v_valid BOOL;
+ DECLARE v_lock_id VARCHAR(100);
+ DECLARE v_cache_id INT;
+ DECLARE v_expires DATETIME;
+ DECLARE v_clean_time DATETIME;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION
+ BEGIN
+ IF v_lock_id IS NOT NULL THEN
+ DO RELEASE_LOCK(v_lock_id);
+ END IF;
+
+ RESIGNAL;
+ END;
+
+ SET v_params = IFNULL(v_params, '');
+
+ -- Si el servidor se ha reiniciado invalida todos los calculos.
+
+ SELECT COUNT(*) > 0 INTO v_valid FROM cache_valid;
+
+ IF !v_valid
+ THEN
+ DELETE FROM cache_calc;
+ INSERT INTO cache_valid (valid) VALUES (TRUE);
+ END IF;
+
+ -- Obtiene un bloqueo exclusivo para que no haya problemas de concurrencia.
+
+ SET v_lock_id = CONCAT_WS('/', v_cache_name, v_params);
+
+ IF !GET_LOCK(v_lock_id, 30)
+ THEN
+ SET v_calc = NULL;
+ SET v_refresh = FALSE;
+ LEAVE proc;
+ END IF;
+
+ -- Comprueba si el calculo solicitado existe y esta actualizado.
+
+ SELECT c.id, ca.id, ca.expires
+ INTO v_cache_id, v_calc, v_expires
+ FROM cache c
+ LEFT JOIN cache_calc ca
+ ON ca.cache_id = c.id AND ca.params = v_params COLLATE 'utf8_general_ci'
+ WHERE c.name = v_cache_name COLLATE 'utf8_general_ci';
+
+ -- Si existe una calculo valido libera el bloqueo y devuelve su identificador.
+
+ IF !v_refresh AND NOW() < v_expires
+ THEN
+ DO RELEASE_LOCK(v_lock_id);
+ SET v_refresh = FALSE;
+ LEAVE proc;
+ END IF;
+
+ -- Si el calculo no existe le crea una entrada en la tabla de calculos.
+
+ IF v_calc IS NULL
+ THEN
+ INSERT INTO cache_calc SET
+ cache_id = v_cache_id,
+ cacheName = v_cache_name,
+ params = v_params,
+ last_refresh = NULL,
+ expires = NULL,
+ connection_id = CONNECTION_ID();
+
+ SET v_calc = LAST_INSERT_ID();
+ ELSE
+ UPDATE cache_calc
+ SET
+ last_refresh = NULL,
+ expires = NULL,
+ connection_id = CONNECTION_ID()
+ WHERE id = v_calc;
+ END IF;
+
+ -- Si se debe recalcular mantiene el bloqueo y devuelve su identificador.
+
+ SET v_refresh = TRUE;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -8126,24 +8126,24 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `cache_calc_unlock`(IN `v_calc` INT)
-proc: BEGIN
- DECLARE v_cache_name VARCHAR(50);
- DECLARE v_params VARCHAR(100);
-
- IF v_calc IS NULL THEN
- LEAVE proc;
- END IF;
-
- SELECT c.name, ca.params INTO v_cache_name, v_params
- FROM cache c
- JOIN cache_calc ca ON c.id = ca.cache_id
- WHERE ca.id = v_calc;
-
- DELETE FROM cache_calc WHERE id = v_calc;
-
- IF v_cache_name IS NOT NULL THEN
- DO RELEASE_LOCK(CONCAT_WS('/', v_cache_name, IFNULL(v_params, '')));
- END IF;
+proc: BEGIN
+ DECLARE v_cache_name VARCHAR(50);
+ DECLARE v_params VARCHAR(100);
+
+ IF v_calc IS NULL THEN
+ LEAVE proc;
+ END IF;
+
+ SELECT c.name, ca.params INTO v_cache_name, v_params
+ FROM cache c
+ JOIN cache_calc ca ON c.id = ca.cache_id
+ WHERE ca.id = v_calc;
+
+ DELETE FROM cache_calc WHERE id = v_calc;
+
+ IF v_cache_name IS NOT NULL THEN
+ DO RELEASE_LOCK(CONCAT_WS('/', v_cache_name, IFNULL(v_params, '')));
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -8182,13 +8182,13 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `clean`()
-BEGIN
-
- DECLARE vDateShort DATETIME;
-
- SET vDateShort = TIMESTAMPADD(MONTH, -1, CURDATE());
-
- DELETE FROM cache.departure_limit WHERE Fecha < vDateShort;
+BEGIN
+
+ DECLARE vDateShort DATETIME;
+
+ SET vDateShort = TIMESTAMPADD(MONTH, -1, CURDATE());
+
+ DELETE FROM cache.departure_limit WHERE Fecha < vDateShort;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -10002,22 +10002,22 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `imageName`(vPictureReference VARCHAR(255)) RETURNS varchar(255) CHARSET utf8 COLLATE utf8_unicode_ci
DETERMINISTIC
-BEGIN
-
- SET vPictureReference = REPLACE(vPictureReference,'.','');
-
- SET vPictureReference = REPLACE(vPictureReference,'/','');
-
- SET vPictureReference = REPLACE(vPictureReference,'%','');
-
- SET vPictureReference = REPLACE(vPictureReference,':','');
-
- SET vPictureReference = REPLACE(vPictureReference,'?','');
-
- SET vPictureReference = REPLACE(vPictureReference,'=','');
-
- RETURN vPictureReference;
-
+BEGIN
+
+ SET vPictureReference = REPLACE(vPictureReference,'.','');
+
+ SET vPictureReference = REPLACE(vPictureReference,'/','');
+
+ SET vPictureReference = REPLACE(vPictureReference,'%','');
+
+ SET vPictureReference = REPLACE(vPictureReference,':','');
+
+ SET vPictureReference = REPLACE(vPictureReference,'?','');
+
+ SET vPictureReference = REPLACE(vPictureReference,'=','');
+
+ RETURN vPictureReference;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -10067,28 +10067,28 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `deliveryInformation_Delete`()
-BEGIN
-
- DECLARE vID INT;
- DECLARE vGap INT DEFAULT 100;
- DECLARE vTope INT;
-
- SELECT MIN(ID), MAX(ID)
- INTO vID, vTope
- FROM edi.deliveryInformation;
-
- WHILE vID <= vTope DO
-
- SET vID = vID + vGap;
-
- DELETE
- FROM edi.deliveryInformation
- WHERE ID < vID
- AND EarliestDespatchDateTime IS NULL;
-
- END WHILE;
-
-
+BEGIN
+
+ DECLARE vID INT;
+ DECLARE vGap INT DEFAULT 100;
+ DECLARE vTope INT;
+
+ SELECT MIN(ID), MAX(ID)
+ INTO vID, vTope
+ FROM edi.deliveryInformation;
+
+ WHILE vID <= vTope DO
+
+ SET vID = vID + vGap;
+
+ DELETE
+ FROM edi.deliveryInformation
+ WHERE ID < vID
+ AND EarliestDespatchDateTime IS NULL;
+
+ END WHILE;
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -10473,38 +10473,38 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ekt_loadNotBuy`()
-BEGIN
-
- /**
- * Ejecuta ekt_load para aquellos ekt de hoy que no tienen vn.buy
- */
-
- DECLARE vEktFk INTEGER;
- DECLARE done BOOL;
-
-
- DECLARE cursor1 CURSOR FOR SELECT e.id
- FROM edi.ekt e
- LEFT JOIN vn.buy b ON b.ektFk = e.id
- WHERE e.fec >= CURDATE()
- AND ISNULL(b.ektFk);
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
-
- OPEN cursor1;
- bucle: LOOP
-
- FETCH cursor1 INTO vEktFk;
-
- IF done THEN
- LEAVE bucle;
- END IF;
-
- CALL edi.ekt_load(vEktFk);
-
- END LOOP bucle;
- CLOSE cursor1;
-
+BEGIN
+
+ /**
+ * Ejecuta ekt_load para aquellos ekt de hoy que no tienen vn.buy
+ */
+
+ DECLARE vEktFk INTEGER;
+ DECLARE done BOOL;
+
+
+ DECLARE cursor1 CURSOR FOR SELECT e.id
+ FROM edi.ekt e
+ LEFT JOIN vn.buy b ON b.ektFk = e.id
+ WHERE e.fec >= CURDATE()
+ AND ISNULL(b.ektFk);
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
+
+ OPEN cursor1;
+ bucle: LOOP
+
+ FETCH cursor1 INTO vEktFk;
+
+ IF done THEN
+ LEAVE bucle;
+ END IF;
+
+ CALL edi.ekt_load(vEktFk);
+
+ END LOOP bucle;
+ CLOSE cursor1;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -12168,56 +12168,56 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_freeAdd`()
-BEGIN
-
- /**
- * Rellena la tabla item_free con los id ausentes en vn.item
- *
- */
-
- DECLARE vCounter INT DEFAULT 400000;
-
- DECLARE vCounterNewItems INT DEFAULT 0;
-
- DECLARE vMaxItem INT;
-
- DECLARE vExists BOOLEAN DEFAULT FALSE;
-
- SELECT MAX(id)
- INTO vMaxItem
- FROM vn.item;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.itemBusy;
- CREATE TEMPORARY TABLE tmp.itemBusy
- (id INT PRIMARY KEY)
- SELECT i.id
- FROM vn.item i
- WHERE id >= 400000
- UNION ALL
- SELECT ifr.id
- FROM edi.item_free ifr;
-
- WHILE vCounter < vMaxItem DO
-
- SET vCounter = vCounter + 1;
-
- SELECT count(*) INTO vExists
- FROM tmp.itemBusy
- WHERE id = vCounter;
-
- IF NOT vExists THEN
-
- SET vCounterNewItems = vCounterNewItems + 1;
-
- INSERT INTO edi.item_free(id)
- VALUES (vCounter);
-
- END IF;
-
- END WHILE;
-
- DROP TEMPORARY TABLE tmp.itemBusy;
-
+BEGIN
+
+ /**
+ * Rellena la tabla item_free con los id ausentes en vn.item
+ *
+ */
+
+ DECLARE vCounter INT DEFAULT 400000;
+
+ DECLARE vCounterNewItems INT DEFAULT 0;
+
+ DECLARE vMaxItem INT;
+
+ DECLARE vExists BOOLEAN DEFAULT FALSE;
+
+ SELECT MAX(id)
+ INTO vMaxItem
+ FROM vn.item;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.itemBusy;
+ CREATE TEMPORARY TABLE tmp.itemBusy
+ (id INT PRIMARY KEY)
+ SELECT i.id
+ FROM vn.item i
+ WHERE id >= 400000
+ UNION ALL
+ SELECT ifr.id
+ FROM edi.item_free ifr;
+
+ WHILE vCounter < vMaxItem DO
+
+ SET vCounter = vCounter + 1;
+
+ SELECT count(*) INTO vExists
+ FROM tmp.itemBusy
+ WHERE id = vCounter;
+
+ IF NOT vExists THEN
+
+ SET vCounterNewItems = vCounterNewItems + 1;
+
+ INSERT INTO edi.item_free(id)
+ VALUES (vCounter);
+
+ END IF;
+
+ END WHILE;
+
+ DROP TEMPORARY TABLE tmp.itemBusy;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -12480,49 +12480,49 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `orderLog__`(vItemFk INT)
-BEGIN
-
- DECLARE vSupplyResponseFk INT;
- DECLARE vDescription VARCHAR(100);
-
- SELECT supplyResponseFk, CONCAT(id, ' ',longName) INTO vSupplyResponseFk, vDescription
- FROM vn.item
- WHERE id = vItemFk;
-
- SELECT * FROM
- (
- SELECT 'Cliente confirma' accion, or2.created hora, amount Cantidad
- FROM hedera.order_row or2
- JOIN vn.item i ON i.id = or2.item_id
- WHERE i.supplyResponseFk = vSupplyResponseFk
-
- UNION ALL
-
- SELECT vDescription, NULL, NULL
-
- UNION ALL
-
- SELECT 'Cliente se conecta' , o.date_make , NULL
- FROM hedera.`order` o
- JOIN hedera.order_row or2 ON or2.order_id = o.id
- JOIN vn.item i ON i.id = or2.item_id
- WHERE i.supplyResponseFk = vSupplyResponseFk
-
- UNION ALL
-
- SELECT DISTINCT 'Subasta cambia cantidad', srl.created, srl.NumberOfUnitsNew * sr.NumberOfItemsPerCask
- FROM edi.supplyResponseLog srl
- JOIN edi.supplyResponse sr ON sr.ID = srl.supplyResponseFk
- WHERE srl.supplyResponseFk = vSupplyResponseFk
-
- UNION ALL
-
- SELECT 'Linea de venta definitiva', s.created, s.quantity
- FROM vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- WHERE i.supplyResponseFk = vSupplyResponseFk) sub
- ORDER BY hora;
-
+BEGIN
+
+ DECLARE vSupplyResponseFk INT;
+ DECLARE vDescription VARCHAR(100);
+
+ SELECT supplyResponseFk, CONCAT(id, ' ',longName) INTO vSupplyResponseFk, vDescription
+ FROM vn.item
+ WHERE id = vItemFk;
+
+ SELECT * FROM
+ (
+ SELECT 'Cliente confirma' accion, or2.created hora, amount Cantidad
+ FROM hedera.order_row or2
+ JOIN vn.item i ON i.id = or2.item_id
+ WHERE i.supplyResponseFk = vSupplyResponseFk
+
+ UNION ALL
+
+ SELECT vDescription, NULL, NULL
+
+ UNION ALL
+
+ SELECT 'Cliente se conecta' , o.date_make , NULL
+ FROM hedera.`order` o
+ JOIN hedera.order_row or2 ON or2.order_id = o.id
+ JOIN vn.item i ON i.id = or2.item_id
+ WHERE i.supplyResponseFk = vSupplyResponseFk
+
+ UNION ALL
+
+ SELECT DISTINCT 'Subasta cambia cantidad', srl.created, srl.NumberOfUnitsNew * sr.NumberOfItemsPerCask
+ FROM edi.supplyResponseLog srl
+ JOIN edi.supplyResponse sr ON sr.ID = srl.supplyResponseFk
+ WHERE srl.supplyResponseFk = vSupplyResponseFk
+
+ UNION ALL
+
+ SELECT 'Linea de venta definitiva', s.created, s.quantity
+ FROM vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ WHERE i.supplyResponseFk = vSupplyResponseFk) sub
+ ORDER BY hora;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -12540,55 +12540,55 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_calcCompByFloramondo`(vSelf INT)
-BEGIN
-
- /**
- * Recalcula "a pelo" los componentes para un ticket de Floramondo
- *
- * Pendiente de concretar la solución cuando Logiflora conteste.
- *
- * @param vSelf Identificador de vn.ticket
- */
-
- CALL cache.last_buy_refresh(TRUE);
-
- DELETE sc.*
- FROM vn.saleComponent sc
- JOIN vn.sale s ON s.id = sc.saleFk
- WHERE s.ticketFk = vSelf;
-
- UPDATE vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- JOIN edi.floraHollandConfig fhc
- LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
- LEFT JOIN vn.buy b ON b.id = lb.buy_id
- LEFT JOIN vn.warehouse w ON w.id = lb.warehouse_id AND w.name = 'Floramondo'
- SET s.price = b.buyingValue * (1 + fhc.floramondoMargin)
- WHERE s.ticketFk = vSelf;
-
- INSERT INTO vn.saleComponent(saleFk, componentFk, value)
- SELECT s.id, c.id, MAX(b.buyingValue)
- FROM vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
- LEFT JOIN vn.buy b ON b.id = lb.buy_id
- LEFT JOIN vn.warehouse w ON w.id = lb.warehouse_id AND w.name = 'Floramondo'
- JOIN vn.component c ON c.code = 'purchaseValue'
- WHERE s.ticketFk = vSelf
- GROUP BY s.id;
-
- INSERT INTO vn.saleComponent(saleFk, componentFk, value)
- SELECT s.id, c.id, MAX(b.buyingValue) * fhc.floramondoMargin
- FROM vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- JOIN edi.floraHollandConfig fhc
- LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
- LEFT JOIN vn.buy b ON b.id = lb.buy_id
- LEFT JOIN vn.warehouse w ON w.id = lb.warehouse_id AND w.name = 'Floramondo'
- JOIN vn.component c ON c.code = 'margin'
- WHERE s.ticketFk = vSelf
- GROUP BY s.id;
-
+BEGIN
+
+ /**
+ * Recalcula "a pelo" los componentes para un ticket de Floramondo
+ *
+ * Pendiente de concretar la solución cuando Logiflora conteste.
+ *
+ * @param vSelf Identificador de vn.ticket
+ */
+
+ CALL cache.last_buy_refresh(TRUE);
+
+ DELETE sc.*
+ FROM vn.saleComponent sc
+ JOIN vn.sale s ON s.id = sc.saleFk
+ WHERE s.ticketFk = vSelf;
+
+ UPDATE vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN edi.floraHollandConfig fhc
+ LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
+ LEFT JOIN vn.buy b ON b.id = lb.buy_id
+ LEFT JOIN vn.warehouse w ON w.id = lb.warehouse_id AND w.name = 'Floramondo'
+ SET s.price = b.buyingValue * (1 + fhc.floramondoMargin)
+ WHERE s.ticketFk = vSelf;
+
+ INSERT INTO vn.saleComponent(saleFk, componentFk, value)
+ SELECT s.id, c.id, MAX(b.buyingValue)
+ FROM vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
+ LEFT JOIN vn.buy b ON b.id = lb.buy_id
+ LEFT JOIN vn.warehouse w ON w.id = lb.warehouse_id AND w.name = 'Floramondo'
+ JOIN vn.component c ON c.code = 'purchaseValue'
+ WHERE s.ticketFk = vSelf
+ GROUP BY s.id;
+
+ INSERT INTO vn.saleComponent(saleFk, componentFk, value)
+ SELECT s.id, c.id, MAX(b.buyingValue) * fhc.floramondoMargin
+ FROM vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN edi.floraHollandConfig fhc
+ LEFT JOIN cache.last_buy lb ON lb.item_id = i.id
+ LEFT JOIN vn.buy b ON b.id = lb.buy_id
+ LEFT JOIN vn.warehouse w ON w.id = lb.warehouse_id AND w.name = 'Floramondo'
+ JOIN vn.component c ON c.code = 'margin'
+ WHERE s.ticketFk = vSelf
+ GROUP BY s.id;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -13470,24 +13470,24 @@ DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `hedera`.`order_afterUpdate`
AFTER UPDATE ON `order`
FOR EACH ROW
-BEGIN
- CALL stock.log_add('order', NEW.id, OLD.id);
-
- IF !(OLD.address_id <=> NEW.address_id)
- OR !(OLD.company_id <=> NEW.company_id)
- OR !(OLD.customer_id <=> NEW.customer_id) THEN
- CALL order_requestRecalc(NEW.id);
- END IF;
-
- IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
- -- Fallo que se actualiza no se sabe como tickets en este cliente
- CALL vn.mail_insert(
- 'jgallego@verdnatura.es',
- 'noreply@verdnatura.es',
- 'Actualizada order al address 2850',
- CONCAT(account.myUserGetName(), ' ha creado la order ',NEW.id)
- );
- END IF;
+BEGIN
+ CALL stock.log_add('order', NEW.id, OLD.id);
+
+ IF !(OLD.address_id <=> NEW.address_id)
+ OR !(OLD.company_id <=> NEW.company_id)
+ OR !(OLD.customer_id <=> NEW.customer_id) THEN
+ CALL order_requestRecalc(NEW.id);
+ END IF;
+
+ IF !(OLD.address_id <=> NEW.address_id) AND NEW.address_id = 2850 THEN
+ -- Fallo que se actualiza no se sabe como tickets en este cliente
+ CALL vn.mail_insert(
+ 'jgallego@verdnatura.es',
+ 'noreply@verdnatura.es',
+ 'Actualizada order al address 2850',
+ CONCAT(account.myUserGetName(), ' ha creado la order ',NEW.id)
+ );
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -14881,30 +14881,30 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_listAllocation`(IN `vWh` TINYINT, IN `vDate` DATE, IN `vType` INT, IN `vPrefix` VARCHAR(255), IN `vUseIds` BOOLEAN)
-BEGIN
-/**
- * Lists visible items and it's box sizes of the specified
- * type at specified date.
- *
- * @param vWh The warehouse id
- * @param vDate The visible date
- * @param vType The type id
- * @param vPrefix The article prefix to filter or %NULL for all
- * @param vUseIds Whether to order the result by item id
- * @select List of visible items with it's box sizes
- */
- CALL item_getVisible(vWh, vDate, vType, vPrefix);
-
- IF vUseIds
- THEN
- SELECT * FROM tmp.itemVisible
- ORDER BY Id_Article;
- ELSE
- SELECT * FROM tmp.itemVisible
- ORDER BY Article, packing;
- END IF;
-
- DROP TEMPORARY TABLE tmp.itemVisible;
+BEGIN
+/**
+ * Lists visible items and it's box sizes of the specified
+ * type at specified date.
+ *
+ * @param vWh The warehouse id
+ * @param vDate The visible date
+ * @param vType The type id
+ * @param vPrefix The article prefix to filter or %NULL for all
+ * @param vUseIds Whether to order the result by item id
+ * @select List of visible items with it's box sizes
+ */
+ CALL item_getVisible(vWh, vDate, vType, vPrefix);
+
+ IF vUseIds
+ THEN
+ SELECT * FROM tmp.itemVisible
+ ORDER BY Id_Article;
+ ELSE
+ SELECT * FROM tmp.itemVisible
+ ORDER BY Article, packing;
+ END IF;
+
+ DROP TEMPORARY TABLE tmp.itemVisible;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -15051,82 +15051,82 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `myBasket_configure`(
- vDelivery DATE,
- vDeliveryMethod VARCHAR(45),
- vAgency INT,
+CREATE DEFINER=`root`@`localhost` PROCEDURE `myBasket_configure`(
+ vDelivery DATE,
+ vDeliveryMethod VARCHAR(45),
+ vAgency INT,
vAddress INT)
-BEGIN
-/**
- * Configura la cesta de la compra utilizando los parámetros
- * pasados. Si los parámetros no son válidos devuelve un error.
- *
- * @param vDelivery Fecha de recogida
- * @param vAgency Id de la agencia
- * @param vAddress Id de dirección de envío, @NULL si es recogida
- */
- DECLARE vSelf INT;
- DECLARE vCompany INT;
- DECLARE vDeliveryMethodId INT;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
- DECLARE EXIT HANDLER FOR SQLSTATE '45000'
- BEGIN
- ROLLBACK;
- RESIGNAL;
- END;
-
- START TRANSACTION;
-
- SELECT id INTO vDeliveryMethodId
- FROM vn.deliveryMethod
- WHERE code = vDeliveryMethod;
-
- IF vDeliveryMethod = 'PICKUP' AND vAddress IS NULL
- THEN
- SELECT defaultAddressFk INTO vAddress
- FROM myClient;
- END IF;
-
- SET vSelf = myBasket_getId();
-
- IF vSelf IS NULL
- THEN
-
- SELECT defaultCompanyFk INTO vCompany
- FROM orderConfig;
-
- INSERT INTO `order`
- SET
- customer_id = account.userGetId(),
- date_send = vDelivery,
- delivery_method_id = vDeliveryMethodId,
- agency_id = vAgency,
- address_id = vAddress,
- source_app = 'WEB',
- company_id = vCompany;
-
- SET vSelf = LAST_INSERT_ID();
-
- INSERT INTO basketOrder SET
- clientFk = account.userGetId(),
- orderFk = vSelf;
- ELSE
- UPDATE `order`
- SET
- date_send = vDelivery,
- delivery_method_id = vDeliveryMethodId,
- agency_id = vAgency,
- address_id = vAddress
- WHERE
- id = vSelf;
-
- CALL order_update(vSelf);
- END IF;
-
- CALL order_checkConfig(vSelf);
-
- COMMIT;
+BEGIN
+/**
+ * Configura la cesta de la compra utilizando los parámetros
+ * pasados. Si los parámetros no son válidos devuelve un error.
+ *
+ * @param vDelivery Fecha de recogida
+ * @param vAgency Id de la agencia
+ * @param vAddress Id de dirección de envío, @NULL si es recogida
+ */
+ DECLARE vSelf INT;
+ DECLARE vCompany INT;
+ DECLARE vDeliveryMethodId INT;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
+ DECLARE EXIT HANDLER FOR SQLSTATE '45000'
+ BEGIN
+ ROLLBACK;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT id INTO vDeliveryMethodId
+ FROM vn.deliveryMethod
+ WHERE code = vDeliveryMethod;
+
+ IF vDeliveryMethod = 'PICKUP' AND vAddress IS NULL
+ THEN
+ SELECT defaultAddressFk INTO vAddress
+ FROM myClient;
+ END IF;
+
+ SET vSelf = myBasket_getId();
+
+ IF vSelf IS NULL
+ THEN
+
+ SELECT defaultCompanyFk INTO vCompany
+ FROM orderConfig;
+
+ INSERT INTO `order`
+ SET
+ customer_id = account.userGetId(),
+ date_send = vDelivery,
+ delivery_method_id = vDeliveryMethodId,
+ agency_id = vAgency,
+ address_id = vAddress,
+ source_app = 'WEB',
+ company_id = vCompany;
+
+ SET vSelf = LAST_INSERT_ID();
+
+ INSERT INTO basketOrder SET
+ clientFk = account.userGetId(),
+ orderFk = vSelf;
+ ELSE
+ UPDATE `order`
+ SET
+ date_send = vDelivery,
+ delivery_method_id = vDeliveryMethodId,
+ agency_id = vAgency,
+ address_id = vAddress
+ WHERE
+ id = vSelf;
+
+ CALL order_update(vSelf);
+ END IF;
+
+ CALL order_checkConfig(vSelf);
+
+ COMMIT;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -15351,62 +15351,62 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `myOrder_newWithAddress`(
- OUT vSelf INT,
- vLandingDate DATE,
+CREATE DEFINER=`root`@`localhost` PROCEDURE `myOrder_newWithAddress`(
+ OUT vSelf INT,
+ vLandingDate DATE,
vAddressFk INT)
-BEGIN
-/**
- * Crea una nueva orden para el usuario actual especificando
- * una fecha de entrega.
- *
- * @param vSelf Id de la nueva orden
- * @param vLandingDate Fecha de entrega
- */
- DECLARE vCompany INT;
- DECLARE vDeliveryMethodId INT;
- DECLARE vAgencyMode INT;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
- DECLARE EXIT HANDLER FOR SQLSTATE '45000'
- BEGIN
- ROLLBACK;
- SET vSelf = NULL;
- RESIGNAL;
- END;
-
- START TRANSACTION;
-
- SELECT a.agencyModeFk, a.id
- INTO vAgencyMode, vAddressFk
- FROM vn.address a
- WHERE a.id = vAddressFk;
-
- SELECT deliveryMethodFk INTO vDeliveryMethodId
- FROM vn.agencyMode am
- WHERE am.id = vAgencyMode;
-
- IF vCompany IS NULL
- THEN
- SELECT defaultCompanyFk INTO vCompany
- FROM orderConfig;
- END IF;
-
- INSERT INTO `order`
- SET
- customer_id = account.userGetId(),
- date_send = vLandingDate,
- delivery_method_id = vDeliveryMethodId,
- agency_id = vAgencyMode,
- address_id = vAddressFk,
- source_app = 'WEB',
- company_id = vCompany;
-
- SET vSelf = LAST_INSERT_ID();
-
- CALL order_checkConfig(vSelf);
-
- COMMIT;
+BEGIN
+/**
+ * Crea una nueva orden para el usuario actual especificando
+ * una fecha de entrega.
+ *
+ * @param vSelf Id de la nueva orden
+ * @param vLandingDate Fecha de entrega
+ */
+ DECLARE vCompany INT;
+ DECLARE vDeliveryMethodId INT;
+ DECLARE vAgencyMode INT;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
+ DECLARE EXIT HANDLER FOR SQLSTATE '45000'
+ BEGIN
+ ROLLBACK;
+ SET vSelf = NULL;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT a.agencyModeFk, a.id
+ INTO vAgencyMode, vAddressFk
+ FROM vn.address a
+ WHERE a.id = vAddressFk;
+
+ SELECT deliveryMethodFk INTO vDeliveryMethodId
+ FROM vn.agencyMode am
+ WHERE am.id = vAgencyMode;
+
+ IF vCompany IS NULL
+ THEN
+ SELECT defaultCompanyFk INTO vCompany
+ FROM orderConfig;
+ END IF;
+
+ INSERT INTO `order`
+ SET
+ customer_id = account.userGetId(),
+ date_send = vLandingDate,
+ delivery_method_id = vDeliveryMethodId,
+ agency_id = vAgencyMode,
+ address_id = vAddressFk,
+ source_app = 'WEB',
+ company_id = vCompany;
+
+ SET vSelf = LAST_INSERT_ID();
+
+ CALL order_checkConfig(vSelf);
+
+ COMMIT;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -15423,62 +15423,62 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `myOrder_newWithDate`(
- OUT vSelf INT,
+CREATE DEFINER=`root`@`localhost` PROCEDURE `myOrder_newWithDate`(
+ OUT vSelf INT,
vLandingDate DATE)
-BEGIN
-/**
- * Crea una nueva orden para el usuario actual especificando
- * una fecha de entrega.
- *
- * @param vSelf Id de la nueva orden
- * @param vLandingDate Fecha de entrega
- */
- DECLARE vCompany INT;
- DECLARE vDeliveryMethodId INT;
- DECLARE vAgencyMode INT;
- DECLARE vAddress INT;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
- DECLARE EXIT HANDLER FOR SQLSTATE '45000'
- BEGIN
- ROLLBACK;
- SET vSelf = NULL;
- RESIGNAL;
- END;
-
- START TRANSACTION;
-
- SELECT a.agencyModeFk, a.id
- INTO vAgencyMode, vAddress
- FROM myClient c
- JOIN vn.address a ON a.id = c.defaultAddressFk;
-
- SELECT deliveryMethodFk INTO vDeliveryMethodId
- FROM vn.agencyMode am
- WHERE am.id = vAgencyMode;
-
- IF vCompany IS NULL
- THEN
- SELECT defaultCompanyFk INTO vCompany
- FROM orderConfig;
- END IF;
-
- INSERT INTO `order`
- SET
- customer_id = account.userGetId(),
- date_send = vLandingDate,
- delivery_method_id = vDeliveryMethodId,
- agency_id = vAgencyMode,
- address_id = vAddress,
- source_app = 'WEB',
- company_id = vCompany;
-
- SET vSelf = LAST_INSERT_ID();
-
- CALL order_checkConfig(vSelf);
-
- COMMIT;
+BEGIN
+/**
+ * Crea una nueva orden para el usuario actual especificando
+ * una fecha de entrega.
+ *
+ * @param vSelf Id de la nueva orden
+ * @param vLandingDate Fecha de entrega
+ */
+ DECLARE vCompany INT;
+ DECLARE vDeliveryMethodId INT;
+ DECLARE vAgencyMode INT;
+ DECLARE vAddress INT;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vSelf = NULL;
+ DECLARE EXIT HANDLER FOR SQLSTATE '45000'
+ BEGIN
+ ROLLBACK;
+ SET vSelf = NULL;
+ RESIGNAL;
+ END;
+
+ START TRANSACTION;
+
+ SELECT a.agencyModeFk, a.id
+ INTO vAgencyMode, vAddress
+ FROM myClient c
+ JOIN vn.address a ON a.id = c.defaultAddressFk;
+
+ SELECT deliveryMethodFk INTO vDeliveryMethodId
+ FROM vn.agencyMode am
+ WHERE am.id = vAgencyMode;
+
+ IF vCompany IS NULL
+ THEN
+ SELECT defaultCompanyFk INTO vCompany
+ FROM orderConfig;
+ END IF;
+
+ INSERT INTO `order`
+ SET
+ customer_id = account.userGetId(),
+ date_send = vLandingDate,
+ delivery_method_id = vDeliveryMethodId,
+ agency_id = vAgencyMode,
+ address_id = vAddress,
+ source_app = 'WEB',
+ company_id = vCompany;
+
+ SET vSelf = LAST_INSERT_ID();
+
+ CALL order_checkConfig(vSelf);
+
+ COMMIT;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -18569,19 +18569,19 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sip_getExtension`(vUserId INT(10))
-BEGIN
-
- /*
- * Devuelve la extensión pbx del usuario
- *
- * @param vUserId Id del usuario
- *
- */
-
- SELECT extension
- FROM sip s
- WHERE s.user_id = vUserId;
-
+BEGIN
+
+ /*
+ * Devuelve la extensión pbx del usuario
+ *
+ * @param vUserId Id del usuario
+ *
+ */
+
+ SELECT extension
+ FROM sip s
+ WHERE s.user_id = vUserId;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -18793,32 +18793,32 @@ CREATE TABLE `business` (
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `postgresql`.`business_beforeUpdate`
- BEFORE UPDATE ON `business`
- FOR EACH ROW
-BEGIN
- DECLARE isOverlapping BOOL;
-
- IF !(OLD.date_start <=> NEW.date_start AND OLD.date_end <=> NEW.date_end) THEN
-
- SELECT COUNT(*) > 0 INTO isOverlapping
- FROM business b
- WHERE (util.hasDateOverlapped(
- NEW.date_start,
- IFNULL(NEW.date_end,b.date_start),
- b.date_start,
- IFNULL(b.date_end,NEW.date_start))
- OR (NEW.date_end <=> NULL AND b.date_end <=> NULL))
- AND b.business_id <> OLD.business_id
- AND client_id = OLD.client_id
- ;
-
- IF isOverlapping THEN
- CALL util.throw ('IS_OVERLAPPING');
- END IF;
-
- END IF;
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `postgresql`.`business_beforeUpdate`
+ BEFORE UPDATE ON `business`
+ FOR EACH ROW
+BEGIN
+ DECLARE isOverlapping BOOL;
+
+ IF !(OLD.date_start <=> NEW.date_start AND OLD.date_end <=> NEW.date_end) THEN
+
+ SELECT COUNT(*) > 0 INTO isOverlapping
+ FROM business b
+ WHERE (util.hasDateOverlapped(
+ NEW.date_start,
+ IFNULL(NEW.date_end,b.date_start),
+ b.date_start,
+ IFNULL(b.date_end,NEW.date_start))
+ OR (NEW.date_end <=> NULL AND b.date_end <=> NULL))
+ AND b.business_id <> OLD.business_id
+ AND client_id = OLD.client_id
+ ;
+
+ IF isOverlapping THEN
+ CALL util.throw ('IS_OVERLAPPING');
+ END IF;
+
+ END IF;
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -24914,7 +24914,7 @@ DROP TABLE IF EXISTS `versionLog`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `versionLog` (
- `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
+ `code` varchar(200) COLLATE utf8_unicode_ci NOT NULL,
`number` char(11) COLLATE utf8_unicode_ci NOT NULL,
`file` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`user` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
@@ -25935,20 +25935,20 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `slowLog_prune`()
-BEGIN
-/**
- * Prunes MySQL slow query log table deleting all records older than one week.
- */
- DECLARE vSlowQueryLog INT DEFAULT @@slow_query_log;
-
- SET GLOBAL slow_query_log = 'OFF';
- RENAME TABLE `mysql`.`slow_log` TO `mysql`.`slow_log_temp`;
-
- DELETE FROM `mysql`.`slow_log_temp`
- WHERE start_time < TIMESTAMPADD(WEEK, -1, NOW());
-
- RENAME TABLE `mysql`.`slow_log_temp` TO `mysql`.`slow_log`;
- SET GLOBAL slow_query_log = vSlowQueryLog;
+BEGIN
+/**
+ * Prunes MySQL slow query log table deleting all records older than one week.
+ */
+ DECLARE vSlowQueryLog INT DEFAULT @@slow_query_log;
+
+ SET GLOBAL slow_query_log = 'OFF';
+ RENAME TABLE `mysql`.`slow_log` TO `mysql`.`slow_log_temp`;
+
+ DELETE FROM `mysql`.`slow_log_temp`
+ WHERE start_time < TIMESTAMPADD(WEEK, -1, NOW());
+
+ RENAME TABLE `mysql`.`slow_log_temp` TO `mysql`.`slow_log`;
+ SET GLOBAL slow_query_log = vSlowQueryLog;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -27417,71 +27417,71 @@ CREATE TABLE `buy` (
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`buy_beforeInsert`
- BEFORE INSERT ON `buy`
- FOR EACH ROW
-trig: BEGIN
- DECLARE vWarehouse INT;
- DECLARE vLanding DATE;
- DECLARE vGrouping INT;
- DECLARE vGroupingMode TINYINT;
- DECLARE vGenericFk INT;
- DECLARE vGenericInDate BOOL;
-
- IF @isModeInventory THEN
- LEAVE trig;
- END IF;
-
- CALL buy_checkGrouping(NEW.`grouping`);
-
- SELECT t.warehouseInFk, t.landed INTO vWarehouse, vLanding
- FROM entry e
- JOIN travel t ON t.id = e.travelFk
- WHERE e.id = NEW.entryFk;
-
- SELECT b.`grouping`, b.groupingMode INTO vGrouping, vGroupingMode
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed <= vLanding
- AND b.itemFk = NEW.itemFk
- AND !b.isIgnored
- ORDER BY t.warehouseInFk = vWarehouse DESC, t.landed DESC, b.id DESC
- LIMIT 1;
-
- IF NEW.`grouping` IS NULL THEN
- SET NEW.`grouping` = vGrouping;
- END IF;
-
- IF NEW.groupingMode IS NULL THEN
- SET NEW.groupingMode = vGroupingMode;
- END IF;
-
- -- Generics
-
- SELECT i.genericFk INTO vGenericFk
- FROM vn.item i
- WHERE i.id = NEW.itemFk;
-
- IF vGenericFk THEN
-
- SELECT COUNT(*) INTO vGenericInDate
- FROM vn.genericAllocation ga
- JOIN vn.entry e ON e.id = NEW.entryFk
- JOIN vn.travel tr on tr.id = e.travelFk
- WHERE ga.itemFk = vGenericFk
- AND tr.landed BETWEEN ga.startDated AND ga.endDated;
-
- IF vGenericInDate THEN
-
- SET NEW.itemOriginalFk = NEW.itemFk;
-
- SET NEW.itemFk = vGenericFk;
-
- END IF;
-
- END IF;
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`buy_beforeInsert`
+ BEFORE INSERT ON `buy`
+ FOR EACH ROW
+trig: BEGIN
+ DECLARE vWarehouse INT;
+ DECLARE vLanding DATE;
+ DECLARE vGrouping INT;
+ DECLARE vGroupingMode TINYINT;
+ DECLARE vGenericFk INT;
+ DECLARE vGenericInDate BOOL;
+
+ IF @isModeInventory THEN
+ LEAVE trig;
+ END IF;
+
+ CALL buy_checkGrouping(NEW.`grouping`);
+
+ SELECT t.warehouseInFk, t.landed INTO vWarehouse, vLanding
+ FROM entry e
+ JOIN travel t ON t.id = e.travelFk
+ WHERE e.id = NEW.entryFk;
+
+ SELECT b.`grouping`, b.groupingMode INTO vGrouping, vGroupingMode
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed <= vLanding
+ AND b.itemFk = NEW.itemFk
+ AND !b.isIgnored
+ ORDER BY t.warehouseInFk = vWarehouse DESC, t.landed DESC, b.id DESC
+ LIMIT 1;
+
+ IF NEW.`grouping` IS NULL THEN
+ SET NEW.`grouping` = vGrouping;
+ END IF;
+
+ IF NEW.groupingMode IS NULL THEN
+ SET NEW.groupingMode = vGroupingMode;
+ END IF;
+
+ -- Generics
+
+ SELECT i.genericFk INTO vGenericFk
+ FROM vn.item i
+ WHERE i.id = NEW.itemFk;
+
+ IF vGenericFk THEN
+
+ SELECT COUNT(*) INTO vGenericInDate
+ FROM vn.genericAllocation ga
+ JOIN vn.entry e ON e.id = NEW.entryFk
+ JOIN vn.travel tr on tr.id = e.travelFk
+ WHERE ga.itemFk = vGenericFk
+ AND tr.landed BETWEEN ga.startDated AND ga.endDated;
+
+ IF vGenericInDate THEN
+
+ SET NEW.itemOriginalFk = NEW.itemFk;
+
+ SET NEW.itemFk = vGenericFk;
+
+ END IF;
+
+ END IF;
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -27523,47 +27523,47 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`buy_beforeUpdate`
- BEFORE UPDATE ON `buy`
- FOR EACH ROW
-trig:BEGIN
- DECLARE vGenericFk INT;
- DECLARE vGenericInDate BOOL;
-
- IF @isTriggerDisabled THEN
-
- LEAVE trig;
-
- END IF;
-
- IF !(NEW.`grouping` <=> OLD.`grouping`) THEN
- CALL buy_checkGrouping(NEW.`grouping`);
- END IF;
-
- -- Generics
-
- SELECT i.genericFk INTO vGenericFk
- FROM vn.item i
- WHERE i.id = NEW.itemFk;
-
- IF vGenericFk THEN
-
- SELECT COUNT(*) INTO vGenericInDate
- FROM vn.genericAllocation ga
- JOIN vn.entry e ON e.id = NEW.entryFk
- JOIN vn.travel tr on tr.id = e.travelFk
- WHERE ga.itemFk = vGenericFk
- AND tr.landed BETWEEN ga.startDated AND ga.endDated;
-
- IF vGenericInDate THEN
-
- SET NEW.itemOriginalFk = NEW.itemFk;
-
- SET NEW.itemFk = vGenericFk;
-
- END IF;
-
- END IF;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`buy_beforeUpdate`
+ BEFORE UPDATE ON `buy`
+ FOR EACH ROW
+trig:BEGIN
+ DECLARE vGenericFk INT;
+ DECLARE vGenericInDate BOOL;
+
+ IF @isTriggerDisabled THEN
+
+ LEAVE trig;
+
+ END IF;
+
+ IF !(NEW.`grouping` <=> OLD.`grouping`) THEN
+ CALL buy_checkGrouping(NEW.`grouping`);
+ END IF;
+
+ -- Generics
+
+ SELECT i.genericFk INTO vGenericFk
+ FROM vn.item i
+ WHERE i.id = NEW.itemFk;
+
+ IF vGenericFk THEN
+
+ SELECT COUNT(*) INTO vGenericInDate
+ FROM vn.genericAllocation ga
+ JOIN vn.entry e ON e.id = NEW.entryFk
+ JOIN vn.travel tr on tr.id = e.travelFk
+ WHERE ga.itemFk = vGenericFk
+ AND tr.landed BETWEEN ga.startDated AND ga.endDated;
+
+ IF vGenericInDate THEN
+
+ SET NEW.itemOriginalFk = NEW.itemFk;
+
+ SET NEW.itemFk = vGenericFk;
+
+ END IF;
+
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -29133,39 +29133,39 @@ CREATE TABLE `collection` (
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`collection_BEFORE_UPDATE`
- BEFORE UPDATE ON `collection`
- FOR EACH ROW
-BEGIN
-
- DECLARE vStateFk INT;
- DECLARE vTotalLines INT;
- DECLARE vPickedLines INT;
-
- IF NEW.saleTotalCount <= NEW.salePickedCount
- AND (NEW.saleTotalCount != OLD.saleTotalCount
- OR NEW.salePickedCount != OLD.salePickedCount)
- THEN
-
- SELECT id INTO vStateFk
- FROM vn.state
- WHERE code = 'PREPARED';
-
- SET NEW.stateFk = vStateFk;
-
- END IF;
-
- IF NEW.saleTotalCount > NEW.salePickedCount
- AND (NEW.saleTotalCount != OLD.saleTotalCount OR NEW.salePickedCount != OLD.salePickedCount) THEN
-
- SELECT id INTO vStateFk
- FROM vn.state
- WHERE code = 'ON_PREPARATION';
-
- SET NEW.stateFk = vStateFk;
-
- END IF;
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`collection_BEFORE_UPDATE`
+ BEFORE UPDATE ON `collection`
+ FOR EACH ROW
+BEGIN
+
+ DECLARE vStateFk INT;
+ DECLARE vTotalLines INT;
+ DECLARE vPickedLines INT;
+
+ IF NEW.saleTotalCount <= NEW.salePickedCount
+ AND (NEW.saleTotalCount != OLD.saleTotalCount
+ OR NEW.salePickedCount != OLD.salePickedCount)
+ THEN
+
+ SELECT id INTO vStateFk
+ FROM vn.state
+ WHERE code = 'PREPARED';
+
+ SET NEW.stateFk = vStateFk;
+
+ END IF;
+
+ IF NEW.saleTotalCount > NEW.salePickedCount
+ AND (NEW.saleTotalCount != OLD.saleTotalCount OR NEW.salePickedCount != OLD.salePickedCount) THEN
+
+ SELECT id INTO vStateFk
+ FROM vn.state
+ WHERE code = 'ON_PREPARATION';
+
+ SET NEW.stateFk = vStateFk;
+
+ END IF;
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -30641,31 +30641,31 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`dms_beforeUpdate`
- BEFORE UPDATE ON `dms`
- FOR EACH ROW
-BEGIN
- DECLARE vHardCopyNumber INT;
-
- IF (NEW.hasFile <> 0) AND (OLD.hasFile = 0) AND (NEW.hardCopyNumber IS NULL)
- OR
- (NEW.hardCopyNumber = OLD.hardCopyNumber AND OLD.warehouseFk <> NEW.warehouseFk) THEN
-
- IF (SELECT NOT hasDms FROM warehouse WHERE id = NEW.warehouseFk) THEN
- SET NEW.warehouseFk = (SELECT id FROM warehouse WHERE name = 'Algemesi');
- END IF;
-
- SELECT 1 + MAX(hardCopyNumber) INTO vHardCopyNumber
- FROM dms
- WHERE warehouseFk = NEW.warehouseFk;
-
- SET NEW.hardCopyNumber = IFNULL(vHardCopyNumber,1);
- END IF;
-
- IF ((NEW.hardCopyNumber = 0) OR NEW.hardCopyNumber IS NULL) AND (OLD.hardCopyNumber <> 0) THEN
-
- SET NEW.hasFile = 0;
- END IF;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`dms_beforeUpdate`
+ BEFORE UPDATE ON `dms`
+ FOR EACH ROW
+BEGIN
+ DECLARE vHardCopyNumber INT;
+
+ IF (NEW.hasFile <> 0) AND (OLD.hasFile = 0) AND (NEW.hardCopyNumber IS NULL)
+ OR
+ (NEW.hardCopyNumber = OLD.hardCopyNumber AND OLD.warehouseFk <> NEW.warehouseFk) THEN
+
+ IF (SELECT NOT hasDms FROM warehouse WHERE id = NEW.warehouseFk) THEN
+ SET NEW.warehouseFk = (SELECT id FROM warehouse WHERE name = 'Algemesi');
+ END IF;
+
+ SELECT 1 + MAX(hardCopyNumber) INTO vHardCopyNumber
+ FROM dms
+ WHERE warehouseFk = NEW.warehouseFk;
+
+ SET NEW.hardCopyNumber = IFNULL(vHardCopyNumber,1);
+ END IF;
+
+ IF ((NEW.hardCopyNumber = 0) OR NEW.hardCopyNumber IS NULL) AND (OLD.hardCopyNumber <> 0) THEN
+
+ SET NEW.hasFile = 0;
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -33909,26 +33909,26 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`item_afterInsert`
- AFTER INSERT ON `item`
- FOR EACH ROW
-BEGIN
-
- CALL hedera.image_ref('catalog', NEW.image);
-
- INSERT INTO vn.itemTaxCountry(itemFk, countryFk)
- SELECT NEW.id, 1;
-
- INSERT INTO vn.itemTaxCountry(itemFk, countryFk)
- SELECT NEW.id, 5;
-
- INSERT INTO vn.itemTaxCountry(itemFk, countryFk)
- SELECT NEW.id, 30;
-
- DELETE ifr.*
- FROM edi.item_free ifr
- WHERE ifr.id = NEW.id;
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`item_afterInsert`
+ AFTER INSERT ON `item`
+ FOR EACH ROW
+BEGIN
+
+ CALL hedera.image_ref('catalog', NEW.image);
+
+ INSERT INTO vn.itemTaxCountry(itemFk, countryFk)
+ SELECT NEW.id, 1;
+
+ INSERT INTO vn.itemTaxCountry(itemFk, countryFk)
+ SELECT NEW.id, 5;
+
+ INSERT INTO vn.itemTaxCountry(itemFk, countryFk)
+ SELECT NEW.id, 30;
+
+ DELETE ifr.*
+ FROM edi.item_free ifr
+ WHERE ifr.id = NEW.id;
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -37852,19 +37852,19 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`province_afterUpdate`
- AFTER UPDATE ON `province`
- FOR EACH ROW
-BEGIN
- IF !(OLD.autonomyFk <=> NEW.autonomyFk) THEN
- CALL zoneGeo_setParent(NEW.geoFk,
- (SELECT geoFk FROM autonomy WHERE id = NEW.autonomyFk));
- END IF;
-
- IF !(OLD.`name` <=> NEW.`name`) THEN
- UPDATE zoneGeo SET `name` = NEW.`name`
- WHERE id = NEW.geoFk;
- END IF;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`province_afterUpdate`
+ AFTER UPDATE ON `province`
+ FOR EACH ROW
+BEGIN
+ IF !(OLD.autonomyFk <=> NEW.autonomyFk) THEN
+ CALL zoneGeo_setParent(NEW.geoFk,
+ (SELECT geoFk FROM autonomy WHERE id = NEW.autonomyFk));
+ END IF;
+
+ IF !(OLD.`name` <=> NEW.`name`) THEN
+ UPDATE zoneGeo SET `name` = NEW.`name`
+ WHERE id = NEW.geoFk;
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -38064,20 +38064,20 @@ CREATE TABLE `receipt` (
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`receipt_beforeInsert`
- BEFORE INSERT ON `receipt`
- FOR EACH ROW
-BEGIN
- DECLARE vIsAutoConciliated BOOLEAN;
-
- IF NEW.isConciliate = FALSE THEN
- SELECT isAutoConciliated INTO vIsAutoConciliated
- FROM accounting a
- JOIN accountingType at2 ON at2.id = a.accountingTypeFk
- WHERE a.id = NEW.bankFk;
-
- SET NEW.isConciliate = vIsAutoConciliated;
- END IF;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`receipt_beforeInsert`
+ BEFORE INSERT ON `receipt`
+ FOR EACH ROW
+BEGIN
+ DECLARE vIsAutoConciliated BOOLEAN;
+
+ IF NEW.isConciliate = FALSE THEN
+ SELECT isAutoConciliated INTO vIsAutoConciliated
+ FROM accounting a
+ JOIN accountingType at2 ON at2.id = a.accountingTypeFk
+ WHERE a.id = NEW.bankFk;
+
+ SET NEW.isConciliate = vIsAutoConciliated;
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -38133,18 +38133,18 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`receipt_afterUpdate`
- AFTER UPDATE ON `receipt`
- FOR EACH ROW
-BEGIN
- IF NEW.isConciliate = FALSE AND NEW.payed > OLD.payed THEN
- CALL mail_insert(
- 'finanzas@verdnatura.es',
- NULL,
- CONCAT('Cambios de recibos del cliente: ', NEW.clientFk),
- CONCAT('Se ha cambiado el recibo: ', NEW.Id, ' de ', OLD.payed, ' a ', NEW.payed)
- );
- END IF;
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vn`.`receipt_afterUpdate`
+ AFTER UPDATE ON `receipt`
+ FOR EACH ROW
+BEGIN
+ IF NEW.isConciliate = FALSE AND NEW.payed > OLD.payed THEN
+ CALL mail_insert(
+ 'finanzas@verdnatura.es',
+ NULL,
+ CONCAT('Cambios de recibos del cliente: ', NEW.clientFk),
+ CONCAT('Se ha cambiado el recibo: ', NEW.Id, ' de ', OLD.payed, ' a ', NEW.payed)
+ );
+ END IF;
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -40571,23 +40571,23 @@ CREATE TABLE `supplierAccount` (
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER supplierAccount_afterUpdate
- AFTER UPDATE ON supplierAccount
- FOR EACH ROW
-BEGIN
- DECLARE vPayMethodHasVerified BOOL;
-
- SELECT pm.hasVerified INTO vPayMethodHasVerified
- FROM vn.supplier s
- JOIN vn.payMethod pm ON pm.id = s.payMethodFk
- WHERE s.id = OLD.supplierFk;
-
- IF OLD.iban <> NEW.iban OR OLD.bankEntityFk <> NEW.bankEntityFk AND vPayMethodHasVerified THEN
- UPDATE vn.supplier
- SET isPayMethodChecked = FALSE
- WHERE id = OLD.supplierFk;
- END IF;
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER supplierAccount_afterUpdate
+ AFTER UPDATE ON supplierAccount
+ FOR EACH ROW
+BEGIN
+ DECLARE vPayMethodHasVerified BOOL;
+
+ SELECT pm.hasVerified INTO vPayMethodHasVerified
+ FROM vn.supplier s
+ JOIN vn.payMethod pm ON pm.id = s.payMethodFk
+ WHERE s.id = OLD.supplierFk;
+
+ IF OLD.iban <> NEW.iban OR OLD.bankEntityFk <> NEW.bankEntityFk AND vPayMethodHasVerified THEN
+ UPDATE vn.supplier
+ SET isPayMethodChecked = FALSE
+ WHERE id = OLD.supplierFk;
+ END IF;
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -41328,31 +41328,31 @@ CREATE TABLE `ticketCollection` (
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER ticketCollection_afterDelete
-AFTER DELETE
-ON ticketCollection FOR EACH ROW
-BEGIN
-
- DECLARE vSalesRemaining INT;
-
- SELECT count(*) INTO vSalesRemaining
- FROM vn.ticketCollection tc
- JOIN sale s ON s.ticketFk = tc.ticketFk
- WHERE collectionFk = OLD.collectionFk
- AND tc.id != OLD.id;
-
- IF NOT vSalesRemaining THEN
-
- DELETE FROM vn.collection WHERE id = OLD.collectionFk;
-
- ELSE
-
- UPDATE vn.collection
- SET saleTotalCount = vSalesRemaining
- WHERE id = OLD.collectionFk;
-
- END IF;
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER ticketCollection_afterDelete
+AFTER DELETE
+ON ticketCollection FOR EACH ROW
+BEGIN
+
+ DECLARE vSalesRemaining INT;
+
+ SELECT count(*) INTO vSalesRemaining
+ FROM vn.ticketCollection tc
+ JOIN sale s ON s.ticketFk = tc.ticketFk
+ WHERE collectionFk = OLD.collectionFk
+ AND tc.id != OLD.id;
+
+ IF NOT vSalesRemaining THEN
+
+ DELETE FROM vn.collection WHERE id = OLD.collectionFk;
+
+ ELSE
+
+ UPDATE vn.collection
+ SET saleTotalCount = vSalesRemaining
+ WHERE id = OLD.collectionFk;
+
+ END IF;
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -45112,16 +45112,16 @@ DELIMITER ;;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;;
/*!50003 SET @saved_time_zone = @@time_zone */ ;;
/*!50003 SET time_zone = 'SYSTEM' */ ;;
-/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `workerTimeControl_sendMail` ON SCHEDULE EVERY 1 WEEK STARTS '2020-11-25 08:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
- DECLARE vWeek,vYear INT;
-
- SELECT week,year INTO vWeek,vYear
- FROM vn.time
- WHERE dated IN (DATE_ADD(CURDATE(), INTERVAL -10 DAY), DATE_ADD(CURDATE(), INTERVAL -4 DAY))
- GROUP BY year,week
- LIMIT 1;
-
- CALL vn.workerTimeControl_sendMail(vWeek, vYear, NULL);
+/*!50106 CREATE*/ /*!50117 DEFINER=`root`@`localhost`*/ /*!50106 EVENT `workerTimeControl_sendMail` ON SCHEDULE EVERY 1 WEEK STARTS '2020-11-25 08:00:00' ON COMPLETION NOT PRESERVE ENABLE DO BEGIN
+ DECLARE vWeek,vYear INT;
+
+ SELECT week,year INTO vWeek,vYear
+ FROM vn.time
+ WHERE dated IN (DATE_ADD(CURDATE(), INTERVAL -10 DAY), DATE_ADD(CURDATE(), INTERVAL -4 DAY))
+ GROUP BY year,week
+ LIMIT 1;
+
+ CALL vn.workerTimeControl_sendMail(vWeek, vYear, NULL);
END */ ;;
/*!50003 SET time_zone = @saved_time_zone */ ;;
/*!50003 SET sql_mode = @saved_sql_mode */ ;;
@@ -45674,57 +45674,57 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `clientGetDebt`(`vClient` INT, `vDate` DATE) RETURNS decimal(10,2)
READS SQL DATA
-BEGIN
-/**
- * Devuelve el saldo de un cliente.
- *
- * @param vClient Identificador del cliente
- * @param vDate Fecha hasta la que tener en cuenta
- * @return Saldo del cliente
- */
- DECLARE vDateEnd DATETIME;
- DECLARE vDateIni DATETIME;
- DECLARE vDebt DECIMAL(10,2);
- DECLARE vHasDebt BOOLEAN;
-
- SELECT COUNT(*) INTO vHasDebt
- FROM `client` c
- WHERE c.id = vClient AND c.typeFk = 'normal';
-
- IF NOT vHasDebt THEN
- RETURN 0;
- END IF;
-
- SET vDate = IFNULL(vDate, CURDATE());
-
- SET vDateIni = TIMESTAMPADD(MONTH, -2, CURDATE());
- SET vDateEnd = TIMESTAMP(vDate, '23:59:59');
-
- SELECT IFNULL(SUM(t.amount), 0) INTO vDebt
- FROM (
- SELECT SUM(IFNULL(totalWithVat,0)) amount
- FROM ticket
- WHERE clientFk = vClient
- AND refFk IS NULL
- AND shipped BETWEEN vDateIni AND vDateEnd
- UNION ALL
- SELECT SUM(amountPaid) amount
- FROM receipt
- WHERE clientFk = vClient
- AND payed > vDateEnd
- UNION ALL
- SELECT SUM(amount)
- FROM clientRisk
- WHERE clientFk = vClient
- UNION ALL
- SELECT CAST(-SUM(amount) / 100 AS DECIMAL(10,2))
- FROM hedera.tpvTransaction
- WHERE clientFk = vClient
- AND receiptFk IS NULL
- AND `status` = 'ok'
- ) t;
-
- RETURN vDebt;
+BEGIN
+/**
+ * Devuelve el saldo de un cliente.
+ *
+ * @param vClient Identificador del cliente
+ * @param vDate Fecha hasta la que tener en cuenta
+ * @return Saldo del cliente
+ */
+ DECLARE vDateEnd DATETIME;
+ DECLARE vDateIni DATETIME;
+ DECLARE vDebt DECIMAL(10,2);
+ DECLARE vHasDebt BOOLEAN;
+
+ SELECT COUNT(*) INTO vHasDebt
+ FROM `client` c
+ WHERE c.id = vClient AND c.typeFk = 'normal';
+
+ IF NOT vHasDebt THEN
+ RETURN 0;
+ END IF;
+
+ SET vDate = IFNULL(vDate, CURDATE());
+
+ SET vDateIni = TIMESTAMPADD(MONTH, -2, CURDATE());
+ SET vDateEnd = TIMESTAMP(vDate, '23:59:59');
+
+ SELECT IFNULL(SUM(t.amount), 0) INTO vDebt
+ FROM (
+ SELECT SUM(IFNULL(totalWithVat,0)) amount
+ FROM ticket
+ WHERE clientFk = vClient
+ AND refFk IS NULL
+ AND shipped BETWEEN vDateIni AND vDateEnd
+ UNION ALL
+ SELECT SUM(amountPaid) amount
+ FROM receipt
+ WHERE clientFk = vClient
+ AND payed > vDateEnd
+ UNION ALL
+ SELECT SUM(amount)
+ FROM clientRisk
+ WHERE clientFk = vClient
+ UNION ALL
+ SELECT CAST(-SUM(amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpvTransaction
+ WHERE clientFk = vClient
+ AND receiptFk IS NULL
+ AND `status` = 'ok'
+ ) t;
+
+ RETURN vDebt;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -46149,29 +46149,29 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `collectionExpeditionLacks`(vCollectionFk INT) RETURNS varchar(100) CHARSET utf8 COLLATE utf8_unicode_ci
DETERMINISTIC
-BEGIN
-
- DECLARE vExpeditionLacks BOOL;
- DECLARE vAnswer VARCHAR(100) DEFAULT '';
-
- SELECT (COUNT(*) > 0) INTO vExpeditionLacks
- FROM vn.ticketCollection tc
- LEFT JOIN vn.expedition e ON e.ticketFk = tc.ticketFk
- WHERE tc.collectionFk = vCollectionFk
- AND ISNULL(e.id);
-
- IF vExpeditionLacks THEN
-
- SELECT CONCAT('Colección: ',tc.collectionFk,' Tickets: ' , GROUP_CONCAT(tc.ticketFk) ) INTO vAnswer
- FROM vn.ticketCollection tc
- LEFT JOIN vn.expedition e ON e.ticketFk = tc.ticketFk
- WHERE tc.collectionFk = vCollectionFk
- AND ISNULL(e.id);
-
- END IF;
-
- RETURN vAnswer;
-
+BEGIN
+
+ DECLARE vExpeditionLacks BOOL;
+ DECLARE vAnswer VARCHAR(100) DEFAULT '';
+
+ SELECT (COUNT(*) > 0) INTO vExpeditionLacks
+ FROM vn.ticketCollection tc
+ LEFT JOIN vn.expedition e ON e.ticketFk = tc.ticketFk
+ WHERE tc.collectionFk = vCollectionFk
+ AND ISNULL(e.id);
+
+ IF vExpeditionLacks THEN
+
+ SELECT CONCAT('Colección: ',tc.collectionFk,' Tickets: ' , GROUP_CONCAT(tc.ticketFk) ) INTO vAnswer
+ FROM vn.ticketCollection tc
+ LEFT JOIN vn.expedition e ON e.ticketFk = tc.ticketFk
+ WHERE tc.collectionFk = vCollectionFk
+ AND ISNULL(e.id);
+
+ END IF;
+
+ RETURN vAnswer;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -46298,79 +46298,79 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `ekt_getEntry`(vEktFk INT) RETURNS int(11)
READS SQL DATA
-BEGIN
-
- /**
- * Devuelve el numero de entrada para el ekt
- *
- * @param vEktFk Identificador de edi.ekt
- */
-
- DECLARE vTravelFk INT;
- DECLARE vEntryFk INT DEFAULT 0;
- DECLARE vEntryAssignFk INT;
-
- SET vTravelFk = vn.ekt_getTravel(vEktFk);
-
- IF vTravelFk THEN
-
- SELECT ea.id INTO vEntryAssignFk
- FROM edi.ekt e
- JOIN vn.travel tr ON tr.id = vTravelFk
- JOIN vn.ektEntryAssign ea ON ea.warehouseOutFk = tr.warehouseOutFk
- AND ea.warehouseInFk = tr.warehouseInFk
- AND ea.agencyModeFk = tr.agencyFk
- AND IFNULL(ea.sub, e.sub) <=> e.sub
- AND IFNULL(ea.kop, e.kop) <=> e.kop
- AND IFNULL(ea.pro, e.pro) <=> e.pro
- WHERE e.id = vEktFk
- ORDER BY ea.sub <=> e.sub AND ea.kop <=> e.kop AND ea.pro <=> e.pro DESC,
- ea.sub <=> e.sub AND ea.kop <=> e.kop AND ISNULL(ea.pro) DESC,
- ea.sub <=> e.sub AND ISNULL(ea.kop) AND ea.pro <=> e.pro DESC,
- ea.sub <=> e.sub AND ISNULL(ea.kop) AND ISNULL(ea.pro) DESC,
- ISNULL(ea.sub) AND ea.kop <=> e.kop AND ea.pro <=> e.pro DESC,
- ISNULL(ea.sub) AND ea.kop <=> e.kop AND ISNULL(ea.pro) DESC,
- ISNULL(ea.sub) AND ISNULL(ea.kop) AND ea.pro <=> e.pro DESC
- LIMIT 1;
-
- SELECT MAX(e.id) INTO vEntryFk
- FROM vn.entry e
- JOIN vn.ektEntryAssign ea ON ea.id = vEntryAssignFk
- WHERE e.travelFk = vTravelFk
- AND e.sub <=> ea.sub
- AND e.kop <=> ea.kop
- AND e.pro <=> ea.pro;
-
-
- IF IFNULL(vEntryFk,0) = 0 THEN
-
- INSERT INTO vn.entry(travelFk, supplierFk, companyFk, currencyFk, kop, sub, ref, pro)
- SELECT vTravelFk, ea.supplierFk, c.id, cu.id, ea.kop, ea.sub, ea.ref, ea.pro
- FROM vn.ektEntryAssign ea
- JOIN vn.company c ON c.code = 'VNL'
- JOIN vn.currency cu ON cu.code = 'EUR'
- WHERE ea.id = vEntryAssignFk;
-
- SELECT MAX(id) INTO vEntryFk
- FROM vn.entry
- WHERE travelFk = vTravelFk;
-
- END IF;
-
- UPDATE vn.ektEntryAssign
- SET entryFk = vEntryFk
- WHERE id = vEntryAssignFk;
-
- ELSE
-
- SELECT ec.defaultEntry INTO vEntryFk
- FROM vn.entryConfig ec;
-
- INSERT IGNORE INTO vn.entry(id) VALUES(vEntryFk);
-
- END IF;
-
- RETURN vEntryFk;
+BEGIN
+
+ /**
+ * Devuelve el numero de entrada para el ekt
+ *
+ * @param vEktFk Identificador de edi.ekt
+ */
+
+ DECLARE vTravelFk INT;
+ DECLARE vEntryFk INT DEFAULT 0;
+ DECLARE vEntryAssignFk INT;
+
+ SET vTravelFk = vn.ekt_getTravel(vEktFk);
+
+ IF vTravelFk THEN
+
+ SELECT ea.id INTO vEntryAssignFk
+ FROM edi.ekt e
+ JOIN vn.travel tr ON tr.id = vTravelFk
+ JOIN vn.ektEntryAssign ea ON ea.warehouseOutFk = tr.warehouseOutFk
+ AND ea.warehouseInFk = tr.warehouseInFk
+ AND ea.agencyModeFk = tr.agencyFk
+ AND IFNULL(ea.sub, e.sub) <=> e.sub
+ AND IFNULL(ea.kop, e.kop) <=> e.kop
+ AND IFNULL(ea.pro, e.pro) <=> e.pro
+ WHERE e.id = vEktFk
+ ORDER BY ea.sub <=> e.sub AND ea.kop <=> e.kop AND ea.pro <=> e.pro DESC,
+ ea.sub <=> e.sub AND ea.kop <=> e.kop AND ISNULL(ea.pro) DESC,
+ ea.sub <=> e.sub AND ISNULL(ea.kop) AND ea.pro <=> e.pro DESC,
+ ea.sub <=> e.sub AND ISNULL(ea.kop) AND ISNULL(ea.pro) DESC,
+ ISNULL(ea.sub) AND ea.kop <=> e.kop AND ea.pro <=> e.pro DESC,
+ ISNULL(ea.sub) AND ea.kop <=> e.kop AND ISNULL(ea.pro) DESC,
+ ISNULL(ea.sub) AND ISNULL(ea.kop) AND ea.pro <=> e.pro DESC
+ LIMIT 1;
+
+ SELECT MAX(e.id) INTO vEntryFk
+ FROM vn.entry e
+ JOIN vn.ektEntryAssign ea ON ea.id = vEntryAssignFk
+ WHERE e.travelFk = vTravelFk
+ AND e.sub <=> ea.sub
+ AND e.kop <=> ea.kop
+ AND e.pro <=> ea.pro;
+
+
+ IF IFNULL(vEntryFk,0) = 0 THEN
+
+ INSERT INTO vn.entry(travelFk, supplierFk, companyFk, currencyFk, kop, sub, ref, pro)
+ SELECT vTravelFk, ea.supplierFk, c.id, cu.id, ea.kop, ea.sub, ea.ref, ea.pro
+ FROM vn.ektEntryAssign ea
+ JOIN vn.company c ON c.code = 'VNL'
+ JOIN vn.currency cu ON cu.code = 'EUR'
+ WHERE ea.id = vEntryAssignFk;
+
+ SELECT MAX(id) INTO vEntryFk
+ FROM vn.entry
+ WHERE travelFk = vTravelFk;
+
+ END IF;
+
+ UPDATE vn.ektEntryAssign
+ SET entryFk = vEntryFk
+ WHERE id = vEntryAssignFk;
+
+ ELSE
+
+ SELECT ec.defaultEntry INTO vEntryFk
+ FROM vn.entryConfig ec;
+
+ INSERT IGNORE INTO vn.entry(id) VALUES(vEntryFk);
+
+ END IF;
+
+ RETURN vEntryFk;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -46749,32 +46749,32 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `expedition_checkRoute`(vPalletFk INT,vExpeditionFk INT) RETURNS tinyint(1)
DETERMINISTIC
-BEGIN
-/**
-* Comprueba si las expediciones del pallet son todas
-* de la misma ruta.
-*
-* @param vExpeditionFk numero de expedition a comprobar
-* @param vPalletFk numero de pallet
-* @return vHasDistinctRoutes
-*/
- DECLARE vRouteFk INT;
- DECLARE vHasDistinctRoutes BOOL;
-
- SELECT t.routeFk INTO vRouteFk
- FROM vn.expedition e
- JOIN vn.ticket t ON e.ticketFk = t.id
- WHERE e.id = vExpeditionFk;
-
- SELECT COUNT(*) > 0 INTO vHasDistinctRoutes
- FROM vn.expeditionScan es
- JOIN vn.expedition e ON es.expeditionFk = e.id
- JOIN vn.ticket t ON e.ticketFk = t.id
- WHERE es.palletFk = vPalletFk
- AND t.routeFk <> vRouteFk;
-
- RETURN vHasDistinctRoutes;
-
+BEGIN
+/**
+* Comprueba si las expediciones del pallet son todas
+* de la misma ruta.
+*
+* @param vExpeditionFk numero de expedition a comprobar
+* @param vPalletFk numero de pallet
+* @return vHasDistinctRoutes
+*/
+ DECLARE vRouteFk INT;
+ DECLARE vHasDistinctRoutes BOOL;
+
+ SELECT t.routeFk INTO vRouteFk
+ FROM vn.expedition e
+ JOIN vn.ticket t ON e.ticketFk = t.id
+ WHERE e.id = vExpeditionFk;
+
+ SELECT COUNT(*) > 0 INTO vHasDistinctRoutes
+ FROM vn.expeditionScan es
+ JOIN vn.expedition e ON es.expeditionFk = e.id
+ JOIN vn.ticket t ON e.ticketFk = t.id
+ WHERE es.palletFk = vPalletFk
+ AND t.routeFk <> vRouteFk;
+
+ RETURN vHasDistinctRoutes;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -47057,30 +47057,30 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `getNextDueDate`(vDated DATE, vGapDays INT, vPayDay INT) RETURNS date
NO SQL
-BEGIN
-
- DECLARE vReturn DATE;
- DECLARE vDuaDate DATE;
- DECLARE vDuaDateDay INT;
-
- SELECT TIMESTAMPADD(DAY, vGapDays, vDated) INTO vDuaDate;
-
- IF vDuaDate = CONCAT(YEAR(vDuaDate), '-03-01') THEN
- SET vDuaDate = TIMESTAMPADD (DAY , -1, vDuaDate);
- ELSEIF vDuaDate = CONCAT(YEAR(vDuaDate), '-02-29') THEN
- SET vDuaDate = TIMESTAMPADD (DAY , -2, vDuaDate);
- END IF;
-
- IF MONTH(vDuaDate) = 2 AND vPayDay = 30 THEN
- IF util.isLeapYear(YEAR(vDuaDate)) THEN
- SET vPayDay = 29;
- ELSE
- SET vPayDay = 28;
- END IF;
- END IF;
-
- SELECT DAY(vDuaDate) INTO vDuaDateDay;
- RETURN TIMESTAMPADD(MONTH, (vDuaDateDay > vPayDay), DATE_FORMAT(vDuaDate, CONCAT('%y/%m/', vPayDay)));
+BEGIN
+
+ DECLARE vReturn DATE;
+ DECLARE vDuaDate DATE;
+ DECLARE vDuaDateDay INT;
+
+ SELECT TIMESTAMPADD(DAY, vGapDays, vDated) INTO vDuaDate;
+
+ IF vDuaDate = CONCAT(YEAR(vDuaDate), '-03-01') THEN
+ SET vDuaDate = TIMESTAMPADD (DAY , -1, vDuaDate);
+ ELSEIF vDuaDate = CONCAT(YEAR(vDuaDate), '-02-29') THEN
+ SET vDuaDate = TIMESTAMPADD (DAY , -2, vDuaDate);
+ END IF;
+
+ IF MONTH(vDuaDate) = 2 AND vPayDay = 30 THEN
+ IF util.isLeapYear(YEAR(vDuaDate)) THEN
+ SET vPayDay = 29;
+ ELSE
+ SET vPayDay = 28;
+ END IF;
+ END IF;
+
+ SELECT DAY(vDuaDate) INTO vDuaDateDay;
+ RETURN TIMESTAMPADD(MONTH, (vDuaDateDay > vPayDay), DATE_FORMAT(vDuaDate, CONCAT('%y/%m/', vPayDay)));
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -47848,19 +47848,19 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `isLogifloraDay`(vShipped DATE, vWarehouse INT) RETURNS tinyint(1)
DETERMINISTIC
-BEGIN
-
- DECLARE vIsLogifloraDay BOOLEAN;
-
- SELECT COUNT(*) INTO vIsLogifloraDay
- FROM edi.warehouseFloramondo wf
- JOIN vn.floramondoConfig fc
- WHERE wf.warehouseFk = vWarehouse
- AND vShipped BETWEEN DATE(TIMESTAMPADD(DAY, wf.travellingDays , fc.nextLanded))
- AND DATE(TIMESTAMPADD(DAY, wf.travellingDays + wf.dayRange , fc.nextLanded));
-
- RETURN vIsLogifloraDay;
-
+BEGIN
+
+ DECLARE vIsLogifloraDay BOOLEAN;
+
+ SELECT COUNT(*) INTO vIsLogifloraDay
+ FROM edi.warehouseFloramondo wf
+ JOIN vn.floramondoConfig fc
+ WHERE wf.warehouseFk = vWarehouse
+ AND vShipped BETWEEN DATE(TIMESTAMPADD(DAY, wf.travellingDays , fc.nextLanded))
+ AND DATE(TIMESTAMPADD(DAY, wf.travellingDays + wf.dayRange , fc.nextLanded));
+
+ RETURN vIsLogifloraDay;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48098,17 +48098,17 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `item_getFhImage`(itemFk INT) RETURNS varchar(255) CHARSET utf8 COLLATE utf8_unicode_ci
DETERMINISTIC
-BEGIN
- DECLARE vImageUrl VARCHAR(255);
- SELECT sr.PictureReference INTO vImageUrl
- FROM vn.buy b
- JOIN edi.ekt e ON b.ektFk = e.id
- JOIN edi.supplyResponse sr ON sr.Item_ArticleCode =e.`ref`
- JOIN vn.item i ON i.id = b.itemFk
- WHERE b.itemFk = itemFk
- ORDER BY (sr.EmbalageCode = e.package) DESC
- LIMIT 1;
- RETURN vImageUrl;
+BEGIN
+ DECLARE vImageUrl VARCHAR(255);
+ SELECT sr.PictureReference INTO vImageUrl
+ FROM vn.buy b
+ JOIN edi.ekt e ON b.ektFk = e.id
+ JOIN edi.supplyResponse sr ON sr.Item_ArticleCode =e.`ref`
+ JOIN vn.item i ON i.id = b.itemFk
+ WHERE b.itemFk = itemFk
+ ORDER BY (sr.EmbalageCode = e.package) DESC
+ LIMIT 1;
+ RETURN vImageUrl;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48127,30 +48127,30 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `item_getPackage`(vItemFk INT) RETURNS varchar(50) CHARSET utf8 COLLATE utf8_unicode_ci
DETERMINISTIC
-BEGIN
-
- DECLARE vDiameter INT;
- DECLARE vPackageFk VARCHAR(50);
- DECLARE vCoeficient DOUBLE DEFAULT 1.08;
-
- SELECT MAX(LEFT(value,3)) INTO vDiameter
- FROM vn.itemTag it
- JOIN vn.tag t ON t.id = it.tagFk
- WHERE it.itemFk = vItemFk
- AND t.overwrite = 'diameter';
-
- SELECT 8000 + FLOOR(vc.ccLength * vc.ccWidth / (vCoeficient * PI() * (vDiameter / 2) * (vDiameter / 2)))
- INTO vPackageFk
- FROM vn.volumeConfig vc;
-
- INSERT IGNORE INTO vn.packaging(id, width, `depth`)
- SELECT vPackageFk,
- FLOOR(vc.ccWidth / FLOOR(vc.ccWidth / vDiameter)),
- FLOOR(vc.ccLength / FLOOR(vc.ccLength / vDiameter))
- FROM vn.volumeConfig vc;
-
- RETURN vPackageFk;
-
+BEGIN
+
+ DECLARE vDiameter INT;
+ DECLARE vPackageFk VARCHAR(50);
+ DECLARE vCoeficient DOUBLE DEFAULT 1.08;
+
+ SELECT MAX(LEFT(value,3)) INTO vDiameter
+ FROM vn.itemTag it
+ JOIN vn.tag t ON t.id = it.tagFk
+ WHERE it.itemFk = vItemFk
+ AND t.overwrite = 'diameter';
+
+ SELECT 8000 + FLOOR(vc.ccLength * vc.ccWidth / (vCoeficient * PI() * (vDiameter / 2) * (vDiameter / 2)))
+ INTO vPackageFk
+ FROM vn.volumeConfig vc;
+
+ INSERT IGNORE INTO vn.packaging(id, width, `depth`)
+ SELECT vPackageFk,
+ FLOOR(vc.ccWidth / FLOOR(vc.ccWidth / vDiameter)),
+ FLOOR(vc.ccLength / FLOOR(vc.ccLength / vDiameter))
+ FROM vn.volumeConfig vc;
+
+ RETURN vPackageFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48244,23 +48244,23 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `machineWorker_Worker`(vWorkerFk VARCHAR(10)) RETURNS varchar(20) CHARSET utf8 COLLATE utf8_unicode_ci
READS SQL DATA
-BEGIN
-/**
- * Comprueba si existen registros en las últimas 12 horas del trabajador vWorkerFk y si tiene a nulo la hora outTimed (indica la hora que deja el vehículo)
- *
- * @param vWorkerFk id del trabajador
- * @return Devuelve REGISTERED/UNREGISTERED en caso de que haya registros
- */
-
- IF (SELECT COUNT(*)
- FROM machineWorker m
- WHERE m.workerFk = vWorkerFk
- AND m.inTimed >= TIMESTAMPADD(HOUR , -12,NOW()) AND ISNULL(m.outTimed))
- THEN
- RETURN "REGISTERED";
- ELSE
- RETURN "UNREGISTERED";
- END IF;
+BEGIN
+/**
+ * Comprueba si existen registros en las últimas 12 horas del trabajador vWorkerFk y si tiene a nulo la hora outTimed (indica la hora que deja el vehículo)
+ *
+ * @param vWorkerFk id del trabajador
+ * @return Devuelve REGISTERED/UNREGISTERED en caso de que haya registros
+ */
+
+ IF (SELECT COUNT(*)
+ FROM machineWorker m
+ WHERE m.workerFk = vWorkerFk
+ AND m.inTimed >= TIMESTAMPADD(HOUR , -12,NOW()) AND ISNULL(m.outTimed))
+ THEN
+ RETURN "REGISTERED";
+ ELSE
+ RETURN "UNREGISTERED";
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48279,23 +48279,23 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `machine_checkPlate`(vPlate VARCHAR(10)) RETURNS tinyint(1)
READS SQL DATA
-BEGIN
-/**
- * Comprueba si existe matrícula
- *
- * @param vPlate matrícula del vehículo
- * @return Devuelve TRUE en caso de que exista
- *
- */
-
- IF (SELECT COUNT(*)
- FROM machine m
- WHERE m.plate = vPlate
- ) THEN
- RETURN TRUE;
- ELSE
- RETURN FALSE;
- END IF;
+BEGIN
+/**
+ * Comprueba si existe matrícula
+ *
+ * @param vPlate matrícula del vehículo
+ * @return Devuelve TRUE en caso de que exista
+ *
+ */
+
+ IF (SELECT COUNT(*)
+ FROM machine m
+ WHERE m.plate = vPlate
+ ) THEN
+ RETURN TRUE;
+ ELSE
+ RETURN FALSE;
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48778,27 +48778,27 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `specie_IsForbidden`(vItemFk INT, vAddressFk INT) RETURNS tinyint(1)
READS SQL DATA
-BEGIN
-
- DECLARE vIsForbbiden BOOL;
- DECLARE vLeft INT;
-
- SELECT zg.lft INTO vLeft
- FROM vn.address a
- JOIN vn.zoneGeo zg ON zg.name = a.postalCode
- WHERE a.id = vAddressFk;
-
- SELECT sgi.isForbidden INTO vIsForbbiden
- FROM vn.specieGeoInvasive sgi
- JOIN vn.zoneGeo zg ON zg.id = sgi.zoneGeofk
- JOIN vn.itemBotanical ib ON ib.genusFk = sgi.genusFk AND sgi.specieFk IN ('sp.',ib.specieFk)
- WHERE vLeft BETWEEN zg.lft AND zg.rgt
- AND ib.itemFk = vItemFk
- ORDER BY zg.`depth` DESC
- LIMIT 1;
-
- RETURN IFNULL(vIsForbbiden, FALSE);
-
+BEGIN
+
+ DECLARE vIsForbbiden BOOL;
+ DECLARE vLeft INT;
+
+ SELECT zg.lft INTO vLeft
+ FROM vn.address a
+ JOIN vn.zoneGeo zg ON zg.name = a.postalCode
+ WHERE a.id = vAddressFk;
+
+ SELECT sgi.isForbidden INTO vIsForbbiden
+ FROM vn.specieGeoInvasive sgi
+ JOIN vn.zoneGeo zg ON zg.id = sgi.zoneGeofk
+ JOIN vn.itemBotanical ib ON ib.genusFk = sgi.genusFk AND sgi.specieFk IN ('sp.',ib.specieFk)
+ WHERE vLeft BETWEEN zg.lft AND zg.rgt
+ AND ib.itemFk = vItemFk
+ ORDER BY zg.`depth` DESC
+ LIMIT 1;
+
+ RETURN IFNULL(vIsForbbiden, FALSE);
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48902,55 +48902,55 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `testNIE`(vNIE VARCHAR(9)) RETURNS tinyint(1)
DETERMINISTIC
-BEGIN
-
- DECLARE vIndice INT;
- DECLARE vNumero VARCHAR(7);
- DECLARE vOperador VARCHAR(9);
- DECLARE vParteNumerica DECIMAL(8,0);
- DECLARE vLetraInicial VARCHAR(1);
- DECLARE vLetraFinal VARCHAR(1);
- DECLARE vLetrasFinalesPosibles VARCHAR(24) DEFAULT "TRWAGMYFPDXBNJZSQVHLCKE";
- DECLARE vLetraInicialEsIncorrecta BOOL DEFAULT FALSE;
-
- SET vLetraInicial = SUBSTR(vNIE, 1, 1);
- SET vLetraFinal = SUBSTR(vNIE, 9, 1);
- SET vNumero = SUBSTR(vNIE, 2, 7);
-
- CASE vLetraInicial
-
- WHEN 'X' THEN
-
- SET vOperador = "0";
-
- WHEN 'Y' THEN
-
- SET vOperador = "1";
-
- WHEN 'Z' THEN
-
- SET vOperador = "2";
-
- ELSE
-
- SET vLetraInicialEsIncorrecta = TRUE;
-
- END CASE;
-
- SET vOperador = CONCAT(vOperador, vNumero);
- SET vParteNumerica = CAST(vOperador AS DECIMAL(8,0));
- SET vIndice = Round(vParteNumerica Mod 23, 0) + 1;
-
- IF SUBSTR(vLetrasFinalesPosibles, vIndice, 1) = vLetraFinal AND vLetraInicialEsIncorrecta = FALSE THEN
-
- RETURN TRUE;
-
- ELSE
-
- RETURN FALSE;
-
- END IF;
-
+BEGIN
+
+ DECLARE vIndice INT;
+ DECLARE vNumero VARCHAR(7);
+ DECLARE vOperador VARCHAR(9);
+ DECLARE vParteNumerica DECIMAL(8,0);
+ DECLARE vLetraInicial VARCHAR(1);
+ DECLARE vLetraFinal VARCHAR(1);
+ DECLARE vLetrasFinalesPosibles VARCHAR(24) DEFAULT "TRWAGMYFPDXBNJZSQVHLCKE";
+ DECLARE vLetraInicialEsIncorrecta BOOL DEFAULT FALSE;
+
+ SET vLetraInicial = SUBSTR(vNIE, 1, 1);
+ SET vLetraFinal = SUBSTR(vNIE, 9, 1);
+ SET vNumero = SUBSTR(vNIE, 2, 7);
+
+ CASE vLetraInicial
+
+ WHEN 'X' THEN
+
+ SET vOperador = "0";
+
+ WHEN 'Y' THEN
+
+ SET vOperador = "1";
+
+ WHEN 'Z' THEN
+
+ SET vOperador = "2";
+
+ ELSE
+
+ SET vLetraInicialEsIncorrecta = TRUE;
+
+ END CASE;
+
+ SET vOperador = CONCAT(vOperador, vNumero);
+ SET vParteNumerica = CAST(vOperador AS DECIMAL(8,0));
+ SET vIndice = Round(vParteNumerica Mod 23, 0) + 1;
+
+ IF SUBSTR(vLetrasFinalesPosibles, vIndice, 1) = vLetraFinal AND vLetraInicialEsIncorrecta = FALSE THEN
+
+ RETURN TRUE;
+
+ ELSE
+
+ RETURN FALSE;
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -48969,29 +48969,29 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `testNIF`(vNIF VARCHAR(9)) RETURNS tinyint(1)
DETERMINISTIC
-BEGIN
-
- DECLARE vIndice INT;
- DECLARE vParteNumerica DECIMAL(8,0);
- DECLARE vLetra VARCHAR(1);
- DECLARE vLetrasPosibles VARCHAR(24) DEFAULT "TRWAGMYFPDXBNJZSQVHLCKE";
-
- SET vLetra = SUBSTRING(vNIF, 9, 1);
-
- SET vParteNumerica = CAST(SUBSTRING(vNIF, 1, 8) AS DECIMAL(8,0));
-
- SET vIndice = Round(vParteNumerica MOD 23, 0) + 1;
-
- If SUBSTRING(vLetrasPosibles, vIndice, 1) = vLetra Then
-
- RETURN TRUE;
-
- ELSE
-
- RETURN FALSE;
-
- END IF;
-
+BEGIN
+
+ DECLARE vIndice INT;
+ DECLARE vParteNumerica DECIMAL(8,0);
+ DECLARE vLetra VARCHAR(1);
+ DECLARE vLetrasPosibles VARCHAR(24) DEFAULT "TRWAGMYFPDXBNJZSQVHLCKE";
+
+ SET vLetra = SUBSTRING(vNIF, 9, 1);
+
+ SET vParteNumerica = CAST(SUBSTRING(vNIF, 1, 8) AS DECIMAL(8,0));
+
+ SET vIndice = Round(vParteNumerica MOD 23, 0) + 1;
+
+ If SUBSTRING(vLetrasPosibles, vIndice, 1) = vLetra Then
+
+ RETURN TRUE;
+
+ ELSE
+
+ RETURN FALSE;
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -49053,79 +49053,79 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `ticketPositionInPath`(vTicketId INT) RETURNS varchar(10) CHARSET utf8
DETERMINISTIC
-BEGIN
-
- DECLARE vRestTicketsMaxOrder INT;
- DECLARE vRestTicketsMinOrder INT;
- DECLARE vRestTicketsPacking INT;
- DECLARE vMyProductionOrder INT;
- DECLARE vPosition VARCHAR(10) DEFAULT 'MID';
- DECLARE vMyPath INT;
- DECLARE vMyWarehouse INT;
- DECLARE PACKING_ORDER INT;
- DECLARE vExpeditionsCount INT;
- DECLARE vIsValenciaPath BOOLEAN DEFAULT FALSE;
-
-SELECT `order`
- INTO PACKING_ORDER
- FROM state
- WHERE code = 'PACKING';
-
-SELECT t.routeFk, t.warehouseFk, IFNULL(ts.productionOrder,0)
- INTO vMyPath, vMyWarehouse, vMyProductionOrder
- FROM ticket t
- LEFT JOIN ticketState ts on ts.ticket = t.id
- WHERE t.id = vTicketId;
-
-SELECT (ag.`name` = 'VN_VALENCIA')
- INTO vIsValenciaPath
- FROM vn2008.Rutas r
- JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
- JOIN vn2008.agency ag on ag.agency_id = a.agency_id
- WHERE r.Id_Ruta = vMyPath;
-
-IF vIsValenciaPath THEN -- Rutas Valencia
-
- SELECT COUNT(*)
- INTO vExpeditionsCount
- FROM expedition e
- JOIN ticket t ON t.id = e.ticketFk
- WHERE t.routeFk = vMyPath;
-
- SELECT MAX(ts.productionOrder), MIN(ts.productionOrder)
- INTO vRestTicketsMaxOrder, vRestTicketsMinOrder
- FROM ticket t
- LEFT JOIN ticketState ts on t.id = ts.ticket
- WHERE t.routeFk = vMyPath
- AND t.warehouseFk = vMyWarehouse
- AND t.id != vTicketid;
-
- SELECT COUNT(*)
- INTO vRestTicketsPacking
- FROM ticket t
- LEFT JOIN ticketState ts on t.id = ts.ticket
- WHERE ts.productionOrder = PACKING_ORDER
- AND t.routeFk = vMyPath
- AND t.warehouseFk = vMyWarehouse
- AND t.id != vTicketid;
-
- IF vExpeditionsCount = 1 THEN
- SET vPosition = 'FIRST';
- ELSEIF vRestTicketsMinOrder > PACKING_ORDER THEN
- SET vPosition = 'LAST';
- ELSEIF vRestTicketsPacking THEN
- SET vPosition = 'SHARED';
- ELSE
- SET vPosition = 'MID';
- END IF;
-
-ELSE
- SET vPosition = 'MID';
-
-END IF;
-
-RETURN vPosition;
-
+BEGIN
+
+ DECLARE vRestTicketsMaxOrder INT;
+ DECLARE vRestTicketsMinOrder INT;
+ DECLARE vRestTicketsPacking INT;
+ DECLARE vMyProductionOrder INT;
+ DECLARE vPosition VARCHAR(10) DEFAULT 'MID';
+ DECLARE vMyPath INT;
+ DECLARE vMyWarehouse INT;
+ DECLARE PACKING_ORDER INT;
+ DECLARE vExpeditionsCount INT;
+ DECLARE vIsValenciaPath BOOLEAN DEFAULT FALSE;
+
+SELECT `order`
+ INTO PACKING_ORDER
+ FROM state
+ WHERE code = 'PACKING';
+
+SELECT t.routeFk, t.warehouseFk, IFNULL(ts.productionOrder,0)
+ INTO vMyPath, vMyWarehouse, vMyProductionOrder
+ FROM ticket t
+ LEFT JOIN ticketState ts on ts.ticket = t.id
+ WHERE t.id = vTicketId;
+
+SELECT (ag.`name` = 'VN_VALENCIA')
+ INTO vIsValenciaPath
+ FROM vn2008.Rutas r
+ JOIN vn2008.Agencias a on a.Id_Agencia = r.Id_Agencia
+ JOIN vn2008.agency ag on ag.agency_id = a.agency_id
+ WHERE r.Id_Ruta = vMyPath;
+
+IF vIsValenciaPath THEN -- Rutas Valencia
+
+ SELECT COUNT(*)
+ INTO vExpeditionsCount
+ FROM expedition e
+ JOIN ticket t ON t.id = e.ticketFk
+ WHERE t.routeFk = vMyPath;
+
+ SELECT MAX(ts.productionOrder), MIN(ts.productionOrder)
+ INTO vRestTicketsMaxOrder, vRestTicketsMinOrder
+ FROM ticket t
+ LEFT JOIN ticketState ts on t.id = ts.ticket
+ WHERE t.routeFk = vMyPath
+ AND t.warehouseFk = vMyWarehouse
+ AND t.id != vTicketid;
+
+ SELECT COUNT(*)
+ INTO vRestTicketsPacking
+ FROM ticket t
+ LEFT JOIN ticketState ts on t.id = ts.ticket
+ WHERE ts.productionOrder = PACKING_ORDER
+ AND t.routeFk = vMyPath
+ AND t.warehouseFk = vMyWarehouse
+ AND t.id != vTicketid;
+
+ IF vExpeditionsCount = 1 THEN
+ SET vPosition = 'FIRST';
+ ELSEIF vRestTicketsMinOrder > PACKING_ORDER THEN
+ SET vPosition = 'LAST';
+ ELSEIF vRestTicketsPacking THEN
+ SET vPosition = 'SHARED';
+ ELSE
+ SET vPosition = 'MID';
+ END IF;
+
+ELSE
+ SET vPosition = 'MID';
+
+END IF;
+
+RETURN vPosition;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -49267,21 +49267,21 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `ticket_CC_volume`(vTicketFk INT) RETURNS decimal(10,1)
READS SQL DATA
-BEGIN
-
- DECLARE vCC DECIMAL(10,1);
-
- SELECT sum(sv.volume * IF(i.itemPackingTypeFk = 'H', vc.dutchCompressionRate, 1)) / (p.volume / 1000000)
- INTO vCC
- FROM vn.saleVolume sv
- JOIN vn.sale s ON s.id = sv.saleFk
- JOIN vn.item i ON i.id = s.itemFk
- JOIN vn.packaging p ON p.id = 'CC'
- JOIN vn.volumeConfig vc
- WHERE sv.ticketFk = vTicketFk;
-
- RETURN vCC;
-
+BEGIN
+
+ DECLARE vCC DECIMAL(10,1);
+
+ SELECT sum(sv.volume * IF(i.itemPackingTypeFk = 'H', vc.dutchCompressionRate, 1)) / (p.volume / 1000000)
+ INTO vCC
+ FROM vn.saleVolume sv
+ JOIN vn.sale s ON s.id = sv.saleFk
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN vn.packaging p ON p.id = 'CC'
+ JOIN vn.volumeConfig vc
+ WHERE sv.ticketFk = vTicketFk;
+
+ RETURN vCC;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -49415,21 +49415,21 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `ticket_getWeight`(vTicketFk INT) RETURNS decimal(10,3)
READS SQL DATA
-BEGIN
-/**
- * Devuelve el peso total del ticket
- *
- * @return Total peso
- */
-
- DECLARE vWeight DECIMAL(10,3);
-
- SELECT sum(weight) INTO vWeight
- FROM saleVolume
- WHERE ticketFk = vTicketFk;
-
- RETURN vWeight;
-
+BEGIN
+/**
+ * Devuelve el peso total del ticket
+ *
+ * @return Total peso
+ */
+
+ DECLARE vWeight DECIMAL(10,3);
+
+ SELECT sum(weight) INTO vWeight
+ FROM saleVolume
+ WHERE ticketFk = vTicketFk;
+
+ RETURN vWeight;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -49507,18 +49507,18 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `ticket_HasUbication`(vTicketFk INT) RETURNS tinyint(1)
READS SQL DATA
-BEGIN
-
- DECLARE hasUbication BOOL;
-
- SELECT COUNT(*) INTO hasUbication
- FROM vn.ticket t
- JOIN vn.routesMonitor rm ON rm.routeFk = t.routeFk
- WHERE rm.beachFk
- AND t.id = vTicketFk;
-
- RETURN hasUbication;
-
+BEGIN
+
+ DECLARE hasUbication BOOL;
+
+ SELECT COUNT(*) INTO hasUbication
+ FROM vn.ticket t
+ JOIN vn.routesMonitor rm ON rm.routeFk = t.routeFk
+ WHERE rm.beachFk
+ AND t.id = vTicketFk;
+
+ RETURN hasUbication;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -49934,24 +49934,24 @@ DELIMITER ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` FUNCTION `workerMachinery_isRegistered`(vWorkerFk VARCHAR(10)) RETURNS tinyint(1)
READS SQL DATA
-BEGIN
-/**
- * Comprueba si existen registros en las últimas horas (maxHours de machineWorkerConfig) del trabajador vWorkerFk y si tiene a nulo la hora outTimed (indica la hora que deja el vehículo)
- *
- * @param vWorkerFk id del trabajador
- * @return Devuelve TRUE/FALSE en caso de que haya o no registros
- */
-
- IF (SELECT COUNT(*)
- FROM machineWorker m
- WHERE m.workerFk = vWorkerFk
- AND m.inTimed >= TIMESTAMPADD(HOUR , -(SELECT maxHours from machineWorkerConfig), NOW()) AND ISNULL(m.outTimed))
- THEN
- RETURN TRUE;
- ELSE
- RETURN FALSE;
- END IF;
-
+BEGIN
+/**
+ * Comprueba si existen registros en las últimas horas (maxHours de machineWorkerConfig) del trabajador vWorkerFk y si tiene a nulo la hora outTimed (indica la hora que deja el vehículo)
+ *
+ * @param vWorkerFk id del trabajador
+ * @return Devuelve TRUE/FALSE en caso de que haya o no registros
+ */
+
+ IF (SELECT COUNT(*)
+ FROM machineWorker m
+ WHERE m.workerFk = vWorkerFk
+ AND m.inTimed >= TIMESTAMPADD(HOUR , -(SELECT maxHours from machineWorkerConfig), NOW()) AND ISNULL(m.outTimed))
+ THEN
+ RETURN TRUE;
+ ELSE
+ RETURN FALSE;
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -50570,23 +50570,23 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `agencyVolume__`(vDated DATE, vAgency INT)
-BEGIN
-
- SELECT ELT(it.temperature + 1,'Calientes','Frios','Secos') AS Temp,
- CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
- vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.carro / 1000000 ,1) AS DECIMAL(10,2)) AS carros ,
- CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
- vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.espai / 1000000,1) AS DECIMAL(10,2)) AS espais
- FROM vn.buy b
- INNER JOIN vn.entry e ON e.id = b.entryFk
- INNER JOIN vn.travel tr ON tr.id = e.travelFk
- INNER JOIN vn.volumeConfig vc
- INNER JOIN vn.item i ON i.id = b.itemFk
- INNER JOIN vn.itemType it ON it.id = i.typeFk
- WHERE tr.landed = vDated
- AND tr.agencyFk IN (0, vAgency)
- GROUP BY Temp;
-
+BEGIN
+
+ SELECT ELT(it.temperature + 1,'Calientes','Frios','Secos') AS Temp,
+ CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
+ vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.carro / 1000000 ,1) AS DECIMAL(10,2)) AS carros ,
+ CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
+ vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.espai / 1000000,1) AS DECIMAL(10,2)) AS espais
+ FROM vn.buy b
+ INNER JOIN vn.entry e ON e.id = b.entryFk
+ INNER JOIN vn.travel tr ON tr.id = e.travelFk
+ INNER JOIN vn.volumeConfig vc
+ INNER JOIN vn.item i ON i.id = b.itemFk
+ INNER JOIN vn.itemType it ON it.id = i.typeFk
+ WHERE tr.landed = vDated
+ AND tr.agencyFk IN (0, vAgency)
+ GROUP BY Temp;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -50779,39 +50779,39 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `buyUltimate`(vWarehouseFk SMALLINT, vDated DATE)
-BEGIN
-/**
- * Calcula las últimas compras realizadas hasta una fecha
- *
- * @param vWarehouseFk Id del almacén
- * @param vDated Compras hasta fecha
- * @return tmp.buyUltimate
- */
- CALL cache.last_buy_refresh (FALSE);
-
- DROP TEMPORARY TABLE IF EXISTS tmp.buyUltimate;
- CREATE TEMPORARY TABLE tmp.buyUltimate
- (PRIMARY KEY (itemFk, warehouseFk),
- INDEX(itemFk))
- ENGINE = MEMORY
- SELECT item_id itemFk, buy_id buyFk, warehouse_id warehouseFk, landing
- FROM cache.last_buy
- WHERE warehouse_id = vWarehouseFk OR vWarehouseFk IS NULL;
-
- CALL buyUltimateFromInterval(vWarehouseFk, CURDATE(), vDated);
-
- REPLACE INTO tmp.buyUltimate
- SELECT itemFk, buyFk, warehouseFk, landed landing
- FROM tmp.buyUltimateFromInterval
- WHERE (warehouseFk = vWarehouseFk OR vWarehouseFk IS NULL)
- AND landed <= vDated;
-
- INSERT IGNORE INTO tmp.buyUltimate
- SELECT itemFk, buyFk, warehouseFk, landed landing
- FROM tmp.buyUltimateFromInterval
- WHERE (warehouseFk = vWarehouseFk OR vWarehouseFk IS NULL)
- AND landed > vDated;
-
+BEGIN
+/**
+ * Calcula las últimas compras realizadas hasta una fecha
+ *
+ * @param vWarehouseFk Id del almacén
+ * @param vDated Compras hasta fecha
+ * @return tmp.buyUltimate
+ */
+ CALL cache.last_buy_refresh (FALSE);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.buyUltimate;
+ CREATE TEMPORARY TABLE tmp.buyUltimate
+ (PRIMARY KEY (itemFk, warehouseFk),
+ INDEX(itemFk))
+ ENGINE = MEMORY
+ SELECT item_id itemFk, buy_id buyFk, warehouse_id warehouseFk, landing
+ FROM cache.last_buy
+ WHERE warehouse_id = vWarehouseFk OR vWarehouseFk IS NULL;
+
+ CALL buyUltimateFromInterval(vWarehouseFk, CURDATE(), vDated);
+
+ REPLACE INTO tmp.buyUltimate
+ SELECT itemFk, buyFk, warehouseFk, landed landing
+ FROM tmp.buyUltimateFromInterval
+ WHERE (warehouseFk = vWarehouseFk OR vWarehouseFk IS NULL)
+ AND landed <= vDated;
+
+ INSERT IGNORE INTO tmp.buyUltimate
+ SELECT itemFk, buyFk, warehouseFk, landed landing
+ FROM tmp.buyUltimateFromInterval
+ WHERE (warehouseFk = vWarehouseFk OR vWarehouseFk IS NULL)
+ AND landed > vDated;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -50829,126 +50829,126 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `buyUltimateFromInterval`(vWarehouseFk SMALLINT, vStarted DATE, vEnded DATE)
-BEGIN
-/**
- * Calcula las últimas compras realizadas
- * desde un rango de fechas.
- *
- * @param vWarehouseFk Id del almacén si es NULL se actualizan todos
- * @param vStarted Fecha inicial
- * @param vEnded Fecha fin
- * @return tmp.buyUltimateFromInterval
- */
- IF vEnded IS NULL THEN
- SET vEnded = vStarted;
- END IF;
-
- IF vEnded < vStarted THEN
- SET vStarted = TIMESTAMPADD(MONTH, -1, vEnded);
- END IF;
-
- -- Item
-
- DROP TEMPORARY TABLE IF EXISTS tmp.buyUltimateFromInterval;
- CREATE TEMPORARY TABLE tmp.buyUltimateFromInterval
- (PRIMARY KEY (itemFk, warehouseFk), INDEX(buyFk), INDEX(landed), INDEX(warehouseFk), INDEX(itemFk))
- ENGINE = MEMORY
- SELECT
- b.itemFk,
- t.warehouseInFk warehouseFk,
- MULTIMAX(t.landed, b.id) buyFk,
- MAX(t.landed) landed
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed BETWEEN vStarted AND vEnded
- AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
- AND b.price2 > 0
- AND NOT b.isIgnored
- AND b.quantity > 0
- GROUP BY itemFk, warehouseInFk;
-
- INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
- SELECT
- b.itemFk,
- t.warehouseInFk warehouseFk,
- b.id buyFk,
- t.landed
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed > vEnded
- AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
- AND b.price2 > 0
- AND NOT b.isIgnored
- GROUP BY itemFk, warehouseInFk;
-
- INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
- SELECT
- b.itemFk,
- t.warehouseInFk warehouseFk,
- b.id buyFk,
- t.landed
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed BETWEEN vStarted AND vEnded
- AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
- AND b.quantity = 0
- GROUP BY itemFk, warehouseInFk;
-
-
-
- -- ItemOriginal
-
- INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
- SELECT
- b.itemFk,
- t.warehouseInFk warehouseFk,
- MULTIMAX(t.landed, b.id) buyFk,
- MAX(t.landed) landed
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed BETWEEN vStarted AND vEnded
- AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
- AND b.price2 > 0
- AND NOT b.isIgnored
- AND b.quantity > 0
- AND itemOriginalFk
- GROUP BY itemOriginalFk, warehouseInFk;
-
- INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
- SELECT
- b.itemFk,
- t.warehouseInFk warehouseFk,
- b.id buyFk,
- t.landed
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed > vEnded
- AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
- AND b.price2 > 0
- AND NOT b.isIgnored
- AND itemOriginalFk
- GROUP BY itemOriginalFk, warehouseInFk;
-
- INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
- SELECT
- b.itemFk,
- t.warehouseInFk warehouseFk,
- b.id buyFk,
- t.landed
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel t ON t.id = e.travelFk
- WHERE t.landed BETWEEN vStarted AND vEnded
- AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
- AND b.quantity = 0
- AND itemOriginalFk
- GROUP BY itemOriginalFk, warehouseInFk;
-
+BEGIN
+/**
+ * Calcula las últimas compras realizadas
+ * desde un rango de fechas.
+ *
+ * @param vWarehouseFk Id del almacén si es NULL se actualizan todos
+ * @param vStarted Fecha inicial
+ * @param vEnded Fecha fin
+ * @return tmp.buyUltimateFromInterval
+ */
+ IF vEnded IS NULL THEN
+ SET vEnded = vStarted;
+ END IF;
+
+ IF vEnded < vStarted THEN
+ SET vStarted = TIMESTAMPADD(MONTH, -1, vEnded);
+ END IF;
+
+ -- Item
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.buyUltimateFromInterval;
+ CREATE TEMPORARY TABLE tmp.buyUltimateFromInterval
+ (PRIMARY KEY (itemFk, warehouseFk), INDEX(buyFk), INDEX(landed), INDEX(warehouseFk), INDEX(itemFk))
+ ENGINE = MEMORY
+ SELECT
+ b.itemFk,
+ t.warehouseInFk warehouseFk,
+ MULTIMAX(t.landed, b.id) buyFk,
+ MAX(t.landed) landed
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed BETWEEN vStarted AND vEnded
+ AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
+ AND b.price2 > 0
+ AND NOT b.isIgnored
+ AND b.quantity > 0
+ GROUP BY itemFk, warehouseInFk;
+
+ INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
+ SELECT
+ b.itemFk,
+ t.warehouseInFk warehouseFk,
+ b.id buyFk,
+ t.landed
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed > vEnded
+ AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
+ AND b.price2 > 0
+ AND NOT b.isIgnored
+ GROUP BY itemFk, warehouseInFk;
+
+ INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
+ SELECT
+ b.itemFk,
+ t.warehouseInFk warehouseFk,
+ b.id buyFk,
+ t.landed
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed BETWEEN vStarted AND vEnded
+ AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
+ AND b.quantity = 0
+ GROUP BY itemFk, warehouseInFk;
+
+
+
+ -- ItemOriginal
+
+ INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
+ SELECT
+ b.itemFk,
+ t.warehouseInFk warehouseFk,
+ MULTIMAX(t.landed, b.id) buyFk,
+ MAX(t.landed) landed
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed BETWEEN vStarted AND vEnded
+ AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
+ AND b.price2 > 0
+ AND NOT b.isIgnored
+ AND b.quantity > 0
+ AND itemOriginalFk
+ GROUP BY itemOriginalFk, warehouseInFk;
+
+ INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
+ SELECT
+ b.itemFk,
+ t.warehouseInFk warehouseFk,
+ b.id buyFk,
+ t.landed
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed > vEnded
+ AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
+ AND b.price2 > 0
+ AND NOT b.isIgnored
+ AND itemOriginalFk
+ GROUP BY itemOriginalFk, warehouseInFk;
+
+ INSERT IGNORE INTO tmp.buyUltimateFromInterval(itemFk, warehouseFk, buyFk, landed)
+ SELECT
+ b.itemFk,
+ t.warehouseInFk warehouseFk,
+ b.id buyFk,
+ t.landed
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel t ON t.id = e.travelFk
+ WHERE t.landed BETWEEN vStarted AND vEnded
+ AND (vWarehouseFk IS NULL OR t.warehouseInFk = vWarehouseFk)
+ AND b.quantity = 0
+ AND itemOriginalFk
+ GROUP BY itemOriginalFk, warehouseInFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -51017,67 +51017,67 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_afterUpsert`(vSelf INT)
-BEGIN
-/**
- * Triggered actions when a buy is updated or inserted.
- *
- * @param vSelf The buy reference
- */
- DECLARE vEntryFk INT;
- DECLARE vItemFk INT;
- DECLARE vPackingOut DECIMAL(10,2);
- DECLARE vWarehouse INT;
- DECLARE vStandardFlowerBox INT;
- DECLARE vWarehouseOut INT;
- DECLARE vIsMerchandise BOOL;
- DECLARE vIsFeedStock BOOL;
-
- SELECT b.entryFk, b.itemFk, i.packingOut, ic.merchandise, vc.standardFlowerBox
- INTO vEntryFk, vItemFk, vPackingOut, vIsMerchandise, vStandardFlowerBox
- FROM buy b
- LEFT JOIN item i ON i.id = b.itemFk
- LEFT JOIN itemType it ON it.id = i.typeFk
- LEFT JOIN itemCategory ic ON ic.id = it.categoryFk
- LEFT JOIN packaging p ON p.id = b.packageFk AND NOT p.isBox
- JOIN volumeConfig vc ON TRUE
- WHERE b.id = vSelf;
-
- SELECT t.warehouseInFk, t.warehouseOutFk
- INTO vWarehouse, vWarehouseOut
- FROM entry e
- JOIN travel t ON t.id = e.travelFk
- WHERE e.id = vEntryFk;
-
- IF vIsMerchandise THEN
-
- REPLACE itemCost SET
- itemFk = vItemFk,
- warehouseFk = vWarehouse,
- cm3 = buy_getUnitVolume(vSelf),
- cm3Delivery = IFNULL((vStandardFlowerBox * 1000) / vPackingOut, buy_getUnitVolume(vSelf));
-
- UPDATE vn.itemCost ic
- JOIN cache.last_buy lb ON lb.item_id = ic.itemFk AND lb.warehouse_id = ic.warehouseFk
- JOIN vn.buy b ON b.id = lb.buy_id
- SET ic.grams = b.weight * 1000 / b.packing
- WHERE ic.itemFk = vItemFk AND
- ic.warehouseFk = vWarehouse;
-
- END IF;
-
- SELECT isFeedStock INTO vIsFeedStock
- FROM warehouse WHERE id = vWarehouseOut AND id <> 13;
-
- IF vIsFeedStock THEN
- INSERT IGNORE INTO producer(`name`)
- SELECT es.company_name
- FROM buy b
- JOIN edi.ekt be ON be.id = b.ektFk
- JOIN edi.supplier es ON es.supplier_id = be.pro
- WHERE b.id = vSelf;
-
- END IF;
-
+BEGIN
+/**
+ * Triggered actions when a buy is updated or inserted.
+ *
+ * @param vSelf The buy reference
+ */
+ DECLARE vEntryFk INT;
+ DECLARE vItemFk INT;
+ DECLARE vPackingOut DECIMAL(10,2);
+ DECLARE vWarehouse INT;
+ DECLARE vStandardFlowerBox INT;
+ DECLARE vWarehouseOut INT;
+ DECLARE vIsMerchandise BOOL;
+ DECLARE vIsFeedStock BOOL;
+
+ SELECT b.entryFk, b.itemFk, i.packingOut, ic.merchandise, vc.standardFlowerBox
+ INTO vEntryFk, vItemFk, vPackingOut, vIsMerchandise, vStandardFlowerBox
+ FROM buy b
+ LEFT JOIN item i ON i.id = b.itemFk
+ LEFT JOIN itemType it ON it.id = i.typeFk
+ LEFT JOIN itemCategory ic ON ic.id = it.categoryFk
+ LEFT JOIN packaging p ON p.id = b.packageFk AND NOT p.isBox
+ JOIN volumeConfig vc ON TRUE
+ WHERE b.id = vSelf;
+
+ SELECT t.warehouseInFk, t.warehouseOutFk
+ INTO vWarehouse, vWarehouseOut
+ FROM entry e
+ JOIN travel t ON t.id = e.travelFk
+ WHERE e.id = vEntryFk;
+
+ IF vIsMerchandise THEN
+
+ REPLACE itemCost SET
+ itemFk = vItemFk,
+ warehouseFk = vWarehouse,
+ cm3 = buy_getUnitVolume(vSelf),
+ cm3Delivery = IFNULL((vStandardFlowerBox * 1000) / vPackingOut, buy_getUnitVolume(vSelf));
+
+ UPDATE vn.itemCost ic
+ JOIN cache.last_buy lb ON lb.item_id = ic.itemFk AND lb.warehouse_id = ic.warehouseFk
+ JOIN vn.buy b ON b.id = lb.buy_id
+ SET ic.grams = b.weight * 1000 / b.packing
+ WHERE ic.itemFk = vItemFk AND
+ ic.warehouseFk = vWarehouse;
+
+ END IF;
+
+ SELECT isFeedStock INTO vIsFeedStock
+ FROM warehouse WHERE id = vWarehouseOut AND id <> 13;
+
+ IF vIsFeedStock THEN
+ INSERT IGNORE INTO producer(`name`)
+ SELECT es.company_name
+ FROM buy b
+ JOIN edi.ekt be ON be.id = b.ektFk
+ JOIN edi.supplier es ON es.supplier_id = be.pro
+ WHERE b.id = vSelf;
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -51343,24 +51343,24 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `buy_updateGrouping`(vWarehouseFk INT, vItemFk INT, vGrouping INT)
-BEGIN
-/**
- * Actualiza el grouping de las últimas compras de un artículo
- *
- * @param vWarehouseFk Id del almacén
- * @param vItemFk Id del Artículo
- * @param vGrouping Cantidad de grouping
- */
-
- CALL vn.buyUltimate(vWarehouseFk, CURDATE());
-
- UPDATE vn.buy b
- JOIN tmp.buyUltimate bu ON b.id = bu.buyFk
- SET b.`grouping` = vGrouping
- WHERE bu.warehouseFk = vWarehouseFk
- AND bu.itemFk = vItemFk;
-
- DROP TEMPORARY TABLE tmp.buyUltimate;
+BEGIN
+/**
+ * Actualiza el grouping de las últimas compras de un artículo
+ *
+ * @param vWarehouseFk Id del almacén
+ * @param vItemFk Id del Artículo
+ * @param vGrouping Cantidad de grouping
+ */
+
+ CALL vn.buyUltimate(vWarehouseFk, CURDATE());
+
+ UPDATE vn.buy b
+ JOIN tmp.buyUltimate bu ON b.id = bu.buyFk
+ SET b.`grouping` = vGrouping
+ WHERE bu.warehouseFk = vWarehouseFk
+ AND bu.itemFk = vItemFk;
+
+ DROP TEMPORARY TABLE tmp.buyUltimate;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -52682,87 +52682,87 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `clean_logiflora`()
-BEGIN
- /* partir en 2 procedimientos, uno que borre compras y otro articulos
- * item_clean, buy_clean
- * */
-
- DECLARE vMaxDated DATE DEFAULT TIMESTAMPADD(DAY, - 7, CURDATE());
- DECLARE vDone INT DEFAULT FALSE;
- DECLARE vBuyFk INT;
- DECLARE cur1 CURSOR FOR SELECT id FROM tmp.buy;
- DECLARE cur2 CURSOR FOR SELECT id FROM tmp.item;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.buy;
-
- CREATE TEMPORARY TABLE tmp.buy
- ENGINE = MEMORY
- SELECT b.id
- FROM vn.buy b
- JOIN vn.entry e ON e.id = b.entryFk
- JOIN vn.travel tr ON tr.id = e.travelFk
- JOIN vn.agencyMode am ON am.id = tr.agencyFk
- WHERE b.quantity = 0
- AND am.name = 'LOGIFLORA'
- AND e.isRaid;
-
- OPEN cur1;
-
- read_loop: LOOP
-
- SET vDone = FALSE;
-
- FETCH cur1 INTO vBuyFk;
-
- IF vDone THEN
- LEAVE read_loop;
- END IF;
-
- DELETE FROM vn.buy WHERE id = vBuyFk;
-
- END LOOP;
-
- CLOSE cur1;
-
- DROP TEMPORARY TABLE tmp.buy;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.item;
-
- CREATE TEMPORARY TABLE tmp.item
- ENGINE = MEMORY
- SELECT DISTINCT i.id
- FROM vn.item i
- LEFT JOIN hedera.orderRow o ON o.itemFk = i.id
- LEFT JOIN vn.sale s ON s.itemFk = i.id
- LEFT JOIN vn.buy b ON b.itemFk = i.id
- WHERE i.supplyResponseFk
- AND o.id IS NULL
- AND b.id IS NULL
- AND s.id IS NULL
- AND i.created < vMaxDated;
-
- OPEN cur2;
-
- read_loop: LOOP
-
- SET vDone = FALSE;
-
- FETCH cur2 INTO vBuyFk;
-
- IF vDone THEN
- LEAVE read_loop;
- END IF;
-
- DELETE FROM vn.item WHERE id = vBuyFk;
-
- END LOOP;
-
- CLOSE cur2;
-
- DROP TEMPORARY TABLE tmp.item;
-
+BEGIN
+ /* partir en 2 procedimientos, uno que borre compras y otro articulos
+ * item_clean, buy_clean
+ * */
+
+ DECLARE vMaxDated DATE DEFAULT TIMESTAMPADD(DAY, - 7, CURDATE());
+ DECLARE vDone INT DEFAULT FALSE;
+ DECLARE vBuyFk INT;
+ DECLARE cur1 CURSOR FOR SELECT id FROM tmp.buy;
+ DECLARE cur2 CURSOR FOR SELECT id FROM tmp.item;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.buy;
+
+ CREATE TEMPORARY TABLE tmp.buy
+ ENGINE = MEMORY
+ SELECT b.id
+ FROM vn.buy b
+ JOIN vn.entry e ON e.id = b.entryFk
+ JOIN vn.travel tr ON tr.id = e.travelFk
+ JOIN vn.agencyMode am ON am.id = tr.agencyFk
+ WHERE b.quantity = 0
+ AND am.name = 'LOGIFLORA'
+ AND e.isRaid;
+
+ OPEN cur1;
+
+ read_loop: LOOP
+
+ SET vDone = FALSE;
+
+ FETCH cur1 INTO vBuyFk;
+
+ IF vDone THEN
+ LEAVE read_loop;
+ END IF;
+
+ DELETE FROM vn.buy WHERE id = vBuyFk;
+
+ END LOOP;
+
+ CLOSE cur1;
+
+ DROP TEMPORARY TABLE tmp.buy;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.item;
+
+ CREATE TEMPORARY TABLE tmp.item
+ ENGINE = MEMORY
+ SELECT DISTINCT i.id
+ FROM vn.item i
+ LEFT JOIN hedera.orderRow o ON o.itemFk = i.id
+ LEFT JOIN vn.sale s ON s.itemFk = i.id
+ LEFT JOIN vn.buy b ON b.itemFk = i.id
+ WHERE i.supplyResponseFk
+ AND o.id IS NULL
+ AND b.id IS NULL
+ AND s.id IS NULL
+ AND i.created < vMaxDated;
+
+ OPEN cur2;
+
+ read_loop: LOOP
+
+ SET vDone = FALSE;
+
+ FETCH cur2 INTO vBuyFk;
+
+ IF vDone THEN
+ LEAVE read_loop;
+ END IF;
+
+ DELETE FROM vn.item WHERE id = vBuyFk;
+
+ END LOOP;
+
+ CLOSE cur2;
+
+ DROP TEMPORARY TABLE tmp.item;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -52802,76 +52802,76 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `clientCreate`(
- vFirstname VARCHAR(50),
- vSurnames VARCHAR(50),
- vFi VARCHAR(9),
- vAddress TEXT,
- vPostcode CHAR(5),
- vCity VARCHAR(25),
- vProvinceFk SMALLINT(5),
- vCompanyFk SMALLINT(5),
- vPhone VARCHAR(11),
- vEmail VARCHAR(255),
+CREATE DEFINER=`root`@`localhost` PROCEDURE `clientCreate`(
+ vFirstname VARCHAR(50),
+ vSurnames VARCHAR(50),
+ vFi VARCHAR(9),
+ vAddress TEXT,
+ vPostcode CHAR(5),
+ vCity VARCHAR(25),
+ vProvinceFk SMALLINT(5),
+ vCompanyFk SMALLINT(5),
+ vPhone VARCHAR(11),
+ vEmail VARCHAR(255),
vUserFk INT)
-BEGIN
-/**
- * Create new client
- *
- */
- DECLARE vPayMethodFk INT DEFAULT 4;
- DECLARE vDueDay INT DEFAULT 5;
- DECLARE vDefaultCredit DECIMAL(10, 2) DEFAULT 300.00;
- DECLARE vIsTaxDataChecked TINYINT(1) DEFAULT 1;
- DECLARE vHasCoreVnl BOOLEAN DEFAULT TRUE;
- DECLARE vMandateTypeFk INT DEFAULT 2;
-
- INSERT INTO `client` (
- id,
- name,
- street,
- fi,
- phone,
- email,
- provinceFk,
- city,
- postcode,
- socialName,
- payMethodFk,
- dueDay,
- credit,
- isTaxDataChecked,
- hasCoreVnl,
- isEqualizated)
- VALUES (
- vUserFk,
- CONCAT('TR ', vFirstname, ' ', vSurnames),
- vAddress,
- TRIM(vFi),
- vPhone,
- vEmail,
- vProvinceFk,
- vCity,
- vPostcode,
- CONCAT(vSurnames, ' ', vFirstname),
- vPayMethodFk,
- vDueDay,
- vDefaultCredit,
- vIsTaxDataChecked,
- vHasCoreVnl,
- FALSE
- ) ON duplicate key update
- payMethodFk = vPayMethodFk,
- dueDay = vDueDay,
- credit = vDefaultCredit,
- isTaxDataChecked = vIsTaxDataChecked,
- hasCoreVnl = vHasCoreVnl,
- isActive = TRUE;
-
- IF (SELECT COUNT(*) FROM mandate WHERE clientFk = vUserFk AND companyFk = vCompanyFk AND mandateTypeFk = vMandateTypeFk) = 0 THEN
- INSERT INTO mandate (clientFk, companyFk, mandateTypeFk)
- VALUES (vUserFk, vCompanyFk, vMandateTypeFk);
- END IF;
+BEGIN
+/**
+ * Create new client
+ *
+ */
+ DECLARE vPayMethodFk INT DEFAULT 4;
+ DECLARE vDueDay INT DEFAULT 5;
+ DECLARE vDefaultCredit DECIMAL(10, 2) DEFAULT 300.00;
+ DECLARE vIsTaxDataChecked TINYINT(1) DEFAULT 1;
+ DECLARE vHasCoreVnl BOOLEAN DEFAULT TRUE;
+ DECLARE vMandateTypeFk INT DEFAULT 2;
+
+ INSERT INTO `client` (
+ id,
+ name,
+ street,
+ fi,
+ phone,
+ email,
+ provinceFk,
+ city,
+ postcode,
+ socialName,
+ payMethodFk,
+ dueDay,
+ credit,
+ isTaxDataChecked,
+ hasCoreVnl,
+ isEqualizated)
+ VALUES (
+ vUserFk,
+ CONCAT('TR ', vFirstname, ' ', vSurnames),
+ vAddress,
+ TRIM(vFi),
+ vPhone,
+ vEmail,
+ vProvinceFk,
+ vCity,
+ vPostcode,
+ CONCAT(vSurnames, ' ', vFirstname),
+ vPayMethodFk,
+ vDueDay,
+ vDefaultCredit,
+ vIsTaxDataChecked,
+ vHasCoreVnl,
+ FALSE
+ ) ON duplicate key update
+ payMethodFk = vPayMethodFk,
+ dueDay = vDueDay,
+ credit = vDefaultCredit,
+ isTaxDataChecked = vIsTaxDataChecked,
+ hasCoreVnl = vHasCoreVnl,
+ isActive = TRUE;
+
+ IF (SELECT COUNT(*) FROM mandate WHERE clientFk = vUserFk AND companyFk = vCompanyFk AND mandateTypeFk = vMandateTypeFk) = 0 THEN
+ INSERT INTO mandate (clientFk, companyFk, mandateTypeFk)
+ VALUES (vUserFk, vCompanyFk, vMandateTypeFk);
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -52931,50 +52931,50 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `clientFreeze`()
-BEGIN
-/**
- * Congela diariamente aquellos clientes que son morosos sin recobro,
- * pero que no sean trabajadores,
- * y que el riesgo no sea menor que cero
- * hasta que no se gire la remesa no se congelan a los clientes de giro
- */
-
- DECLARE vIsRemittanced BOOLEAN;
-
- SELECT id into vIsRemittanced
- FROM receipt
- WHERE invoiceFk LIKE 'REMESA%'
- AND payed > util.firstDayOfMonth(CURDATE())
- limit 1;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt;
- CREATE TEMPORARY TABLE tmp.clientGetDebt
- SELECT clientFk
- FROM bs.defaulter
- WHERE created = CURDATE()
- AND amount;
-
- CALL clientGetDebt(CURDATE());
-
- UPDATE client c
- JOIN bi.defaulters d ON d.client = c.id AND d.date = CURDATE()
- JOIN config ON TRUE
- LEFT JOIN account.`user` u ON u.id = c.id AND u.active
- LEFT JOIN worker w ON w.id = u.id
- LEFT JOIN recovery r ON r.clientFk = c.id AND r.finished IS NULL
- LEFT JOIN payMethod pm ON pm.id = c.payMethodFk
- LEFT JOIN tmp.risk rk ON rk.clientFk = c.id
- SET c.isFreezed = TRUE,
- d.frozened = CURDATE(),
- u.active = FALSE
- WHERE (d.amount > config.defaultersMaxAmount
- AND rk.risk > 0)
- AND c.typeFk = 'normal'
- AND r.id IS NULL
- AND w.id IS NULL
- AND (vIsRemittanced OR pm.code <> 'bankDraft');
-
- DROP TEMPORARY TABLE tmp.clientGetDebt;
+BEGIN
+/**
+ * Congela diariamente aquellos clientes que son morosos sin recobro,
+ * pero que no sean trabajadores,
+ * y que el riesgo no sea menor que cero
+ * hasta que no se gire la remesa no se congelan a los clientes de giro
+ */
+
+ DECLARE vIsRemittanced BOOLEAN;
+
+ SELECT id into vIsRemittanced
+ FROM receipt
+ WHERE invoiceFk LIKE 'REMESA%'
+ AND payed > util.firstDayOfMonth(CURDATE())
+ limit 1;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt;
+ CREATE TEMPORARY TABLE tmp.clientGetDebt
+ SELECT clientFk
+ FROM bs.defaulter
+ WHERE created = CURDATE()
+ AND amount;
+
+ CALL clientGetDebt(CURDATE());
+
+ UPDATE client c
+ JOIN bi.defaulters d ON d.client = c.id AND d.date = CURDATE()
+ JOIN config ON TRUE
+ LEFT JOIN account.`user` u ON u.id = c.id AND u.active
+ LEFT JOIN worker w ON w.id = u.id
+ LEFT JOIN recovery r ON r.clientFk = c.id AND r.finished IS NULL
+ LEFT JOIN payMethod pm ON pm.id = c.payMethodFk
+ LEFT JOIN tmp.risk rk ON rk.clientFk = c.id
+ SET c.isFreezed = TRUE,
+ d.frozened = CURDATE(),
+ u.active = FALSE
+ WHERE (d.amount > config.defaultersMaxAmount
+ AND rk.risk > 0)
+ AND c.typeFk = 'normal'
+ AND r.id IS NULL
+ AND w.id IS NULL
+ AND (vIsRemittanced OR pm.code <> 'bankDraft');
+
+ DROP TEMPORARY TABLE tmp.clientGetDebt;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -52992,59 +52992,59 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `clientGetDebt`(vDate DATE)
-BEGIN
-/**
- * Calcula el riesgo para los clientes activos
- *
- * @table tmp.clientGetDebt(clientFk)
- * @param vDate Fecha maxima de los registros
- * @return tmp.risk
- */
- DECLARE vStarted DATETIME DEFAULT TIMESTAMPADD(DAY, -35, CURDATE());
- DECLARE vEnded DATETIME;
-
- SET vEnded = TIMESTAMP(IFNULL(vDate, CURDATE()), '23:59:59');
-
- DROP TEMPORARY TABLE IF EXISTS tClientRisk;
- CREATE TEMPORARY TABLE tClientRisk
- ENGINE = MEMORY
- SELECT cr.clientFk, SUM(cr.amount) amount
- FROM clientRisk cr
- JOIN tmp.clientGetDebt c ON c.clientFk = cr.clientFk
- GROUP BY cr.clientFk;
-
- INSERT INTO tClientRisk
- SELECT c.clientFk, SUM(r.amountPaid)
- FROM receipt r
- JOIN tmp.clientGetDebt c ON c.clientFk = r.clientFk
- WHERE r.payed > vEnded
- GROUP BY c.clientFk;
-
- INSERT INTO tClientRisk
- SELECT t.clientFk, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
- FROM hedera.tpvTransaction t
- JOIN tmp.clientGetDebt c ON c.clientFk = t.clientFk
- WHERE t.receiptFk IS NULL
- AND t.status = 'ok'
- GROUP BY t.clientFk;
-
- INSERT INTO tClientRisk
- SELECT t.clientFk, totalWithVat
- FROM ticket t
- JOIN tmp.clientGetDebt c ON c.clientFk = t.clientFk
- WHERE refFk IS NULL
- AND shipped BETWEEN vStarted AND vEnded;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.risk;
- CREATE TEMPORARY TABLE tmp.risk
- (PRIMARY KEY (clientFk))
- ENGINE = MEMORY
- SELECT clientFk, SUM(amount) risk
- FROM client c
- JOIN tClientRisk cr ON cr.clientFk = c.id
- GROUP BY c.id;
-
- DROP TEMPORARY TABLE tClientRisk;
+BEGIN
+/**
+ * Calcula el riesgo para los clientes activos
+ *
+ * @table tmp.clientGetDebt(clientFk)
+ * @param vDate Fecha maxima de los registros
+ * @return tmp.risk
+ */
+ DECLARE vStarted DATETIME DEFAULT TIMESTAMPADD(DAY, -35, CURDATE());
+ DECLARE vEnded DATETIME;
+
+ SET vEnded = TIMESTAMP(IFNULL(vDate, CURDATE()), '23:59:59');
+
+ DROP TEMPORARY TABLE IF EXISTS tClientRisk;
+ CREATE TEMPORARY TABLE tClientRisk
+ ENGINE = MEMORY
+ SELECT cr.clientFk, SUM(cr.amount) amount
+ FROM clientRisk cr
+ JOIN tmp.clientGetDebt c ON c.clientFk = cr.clientFk
+ GROUP BY cr.clientFk;
+
+ INSERT INTO tClientRisk
+ SELECT c.clientFk, SUM(r.amountPaid)
+ FROM receipt r
+ JOIN tmp.clientGetDebt c ON c.clientFk = r.clientFk
+ WHERE r.payed > vEnded
+ GROUP BY c.clientFk;
+
+ INSERT INTO tClientRisk
+ SELECT t.clientFk, CAST(-SUM(t.amount) / 100 AS DECIMAL(10,2))
+ FROM hedera.tpvTransaction t
+ JOIN tmp.clientGetDebt c ON c.clientFk = t.clientFk
+ WHERE t.receiptFk IS NULL
+ AND t.status = 'ok'
+ GROUP BY t.clientFk;
+
+ INSERT INTO tClientRisk
+ SELECT t.clientFk, totalWithVat
+ FROM ticket t
+ JOIN tmp.clientGetDebt c ON c.clientFk = t.clientFk
+ WHERE refFk IS NULL
+ AND shipped BETWEEN vStarted AND vEnded;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+ CREATE TEMPORARY TABLE tmp.risk
+ (PRIMARY KEY (clientFk))
+ ENGINE = MEMORY
+ SELECT clientFk, SUM(amount) risk
+ FROM client c
+ JOIN tClientRisk cr ON cr.clientFk = c.id
+ GROUP BY c.id;
+
+ DROP TEMPORARY TABLE tClientRisk;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -54017,33 +54017,33 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `collectionOrTicket_printSticker`(vParam INT, vSectorFk INT)
-BEGIN
-
- /*Imprime una etiqueta amarilla a partir de una colección o ticket
- *
- * @param vParam colección o ticket a imprimir
- * @param vSectorFk id del sector
- */
-
- DECLARE vLabelReport INT;
-
- SELECT labelReportFk INTO vLabelReport
- FROM sector
- WHERE id = vSectorFk;
-
- IF vLabelReport THEN
-
- INSERT INTO ticketTrolley(ticket, labelCount)
- SELECT ticketFk, 1
- FROM ticketCollection
- WHERE collectionFk = vParam OR ticketFK = vParam
- ON DUPLICATE KEY UPDATE labelCount = labelCount + 1;
-
- INSERT INTO printServerQueue(labelReportFk, param1, workerFk)
- SELECT vLabelReport, vParam, getUser();
-
- END IF;
-
+BEGIN
+
+ /*Imprime una etiqueta amarilla a partir de una colección o ticket
+ *
+ * @param vParam colección o ticket a imprimir
+ * @param vSectorFk id del sector
+ */
+
+ DECLARE vLabelReport INT;
+
+ SELECT labelReportFk INTO vLabelReport
+ FROM sector
+ WHERE id = vSectorFk;
+
+ IF vLabelReport THEN
+
+ INSERT INTO ticketTrolley(ticket, labelCount)
+ SELECT ticketFk, 1
+ FROM ticketCollection
+ WHERE collectionFk = vParam OR ticketFK = vParam
+ ON DUPLICATE KEY UPDATE labelCount = labelCount + 1;
+
+ INSERT INTO printServerQueue(labelReportFk, param1, workerFk)
+ SELECT vLabelReport, vParam, getUser();
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -54436,20 +54436,20 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `collection_get_`(vWorkerFk INT)
-BEGIN
-
- /* Obtiene colección del sacador si tiene líneas pendientes
- *
- * @param vWorkerFk id del worker
- */
-
- SELECT c.id AS collectionFk, date(c.created) AS created
- FROM vn.collection c
- LEFT JOIN vn.state s ON c.stateFk = s.id
- WHERE c.workerFk = vWorkerFk AND s.code = 'ON_PREPARATION'
- AND created >= TIMESTAMPADD(HOUR , -6,NOW());
-
-
+BEGIN
+
+ /* Obtiene colección del sacador si tiene líneas pendientes
+ *
+ * @param vWorkerFk id del worker
+ */
+
+ SELECT c.id AS collectionFk, date(c.created) AS created
+ FROM vn.collection c
+ LEFT JOIN vn.state s ON c.stateFk = s.id
+ WHERE c.workerFk = vWorkerFk AND s.code = 'ON_PREPARATION'
+ AND created >= TIMESTAMPADD(HOUR , -6,NOW());
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -54467,21 +54467,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `collection_kill`(vSelf INT)
-BEGIN
-
- /* Elimina una coleccion y coloca sus tickets en OK
- *
- */
-
- INSERT INTO vncontrol.inter(state_id, Id_Ticket)
- SELECT s.id, ticketFk
- FROM vn.ticketCollection tc
- JOIN vn.state s ON s.code = 'OK'
- WHERE tc.collectionFk = vSelf;
-
- DELETE FROM vn.collection
- WHERE id = vSelf;
-
+BEGIN
+
+ /* Elimina una coleccion y coloca sus tickets en OK
+ *
+ */
+
+ INSERT INTO vncontrol.inter(state_id, Id_Ticket)
+ SELECT s.id, ticketFk
+ FROM vn.ticketCollection tc
+ JOIN vn.state s ON s.code = 'OK'
+ WHERE tc.collectionFk = vSelf;
+
+ DELETE FROM vn.collection
+ WHERE id = vSelf;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -56428,27 +56428,27 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `company_getFiscaldata`(workerFk INT)
-BEGIN
-
-DECLARE vCompanyFk INT;
-
- SELECT IFNULL(uc.companyFk, rc.defaultCompanyFk)
- INTO vCompanyFk
- FROM vn.routeConfig rc
- LEFT JOIN userConfig uc ON uc.userFk = workerFk;
-
-
- SELECT
- s.name AS name ,
- s.NIF AS nif ,
- s.street AS street ,
- s.city AS city ,
- s.postCode AS postCode
-
- FROM vn.company c
- JOIN vn.worker w ON w.id = c.workerManagerFk
- JOIN vn.supplier s ON s.id = c.id
- WHERE c.id = vCompanyFk;
+BEGIN
+
+DECLARE vCompanyFk INT;
+
+ SELECT IFNULL(uc.companyFk, rc.defaultCompanyFk)
+ INTO vCompanyFk
+ FROM vn.routeConfig rc
+ LEFT JOIN userConfig uc ON uc.userFk = workerFk;
+
+
+ SELECT
+ s.name AS name ,
+ s.NIF AS nif ,
+ s.street AS street ,
+ s.city AS city ,
+ s.postCode AS postCode
+
+ FROM vn.company c
+ JOIN vn.worker w ON w.id = c.workerManagerFk
+ JOIN vn.supplier s ON s.id = c.id
+ WHERE c.id = vCompanyFk;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -57101,18 +57101,18 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `department_getHasMistake`()
-BEGIN
-
-/**
- * Obtiene los sectores a los cuales les ponemos errores
- *
- */
-
- SELECT id, name
- FROM department
- WHERE hasToMistake <> FALSE;
-
-
+BEGIN
+
+/**
+ * Obtiene los sectores a los cuales les ponemos errores
+ *
+ */
+
+ SELECT id, name
+ FROM department
+ WHERE hasToMistake <> FALSE;
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -57221,18 +57221,18 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `deviceLog_add`(vWorkerFk INT, vAppName VARCHAR(45), vAppVersion VARCHAR(45), vAndroid_id VARCHAR(100))
-BEGIN
-/*
- * Inserta registro en tabla devicelog el log del usuario conectado
- * @param vAppName es el nombre de la app
- * @param vAppVersion es la versión de la app
- * @param vAndroid_id es el android_id del dispositivo que se ha logueado
- */
-
- INSERT INTO deviceLog (userFK, nameApp, versionApp, android_id)
- VALUES(vWorkerFk, vAppName, vAppVersion, vAndroid_id);
-
-
+BEGIN
+/*
+ * Inserta registro en tabla devicelog el log del usuario conectado
+ * @param vAppName es el nombre de la app
+ * @param vAppVersion es la versión de la app
+ * @param vAndroid_id es el android_id del dispositivo que se ha logueado
+ */
+
+ INSERT INTO deviceLog (userFK, nameApp, versionApp, android_id)
+ VALUES(vWorkerFk, vAppName, vAppVersion, vAndroid_id);
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -57274,19 +57274,19 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `deviceProductionUser_getWorker`(vAndroid_id VARCHAR(50))
-BEGIN
-/**
- * Selecciona si hay registrado un device con un android_id
- *
- * @param vAndroid_id el número android_id del dispositivo
- *
- */
- SELECT 103;
-/* SELECT account.user_getNameFromId(dpu.userFk)
- FROM deviceProductionUser dpu
- JOIN deviceProduction dp ON dpu.deviceProductionFk = dp.id
- WHERE dp.android_id = vAndroid_id;*/
-
+BEGIN
+/**
+ * Selecciona si hay registrado un device con un android_id
+ *
+ * @param vAndroid_id el número android_id del dispositivo
+ *
+ */
+ SELECT 103;
+/* SELECT account.user_getNameFromId(dpu.userFk)
+ FROM deviceProductionUser dpu
+ JOIN deviceProduction dp ON dpu.deviceProductionFk = dp.id
+ WHERE dp.android_id = vAndroid_id;*/
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -57304,18 +57304,18 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `deviceProduction_getnameDevice`(vAndroid_id VARCHAR(50))
-BEGIN
-/**
- * Selecciona el id del dispositivo que corresponde al vAndroid_id
- *
- * @param vAndroid_id el número android_id del dispositivo
- *
- */
-
- SELECT dp.id
- FROM deviceProduction dp
- WHERE dp.android_id = vAndroid_id;
-
+BEGIN
+/**
+ * Selecciona el id del dispositivo que corresponde al vAndroid_id
+ *
+ * @param vAndroid_id el número android_id del dispositivo
+ *
+ */
+
+ SELECT dp.id
+ FROM deviceProduction dp
+ WHERE dp.android_id = vAndroid_id;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -58137,15 +58137,15 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ediTables_Update`()
-BEGIN
-
- INSERT IGNORE INTO vn.genus(name)
- SELECT latin_genus_name
- FROM edi.genus ;
-
- INSERT IGNORE INTO vn.specie(name)
- SELECT LCASE(latin_species_name)
- FROM edi.specie ;
+BEGIN
+
+ INSERT IGNORE INTO vn.genus(name)
+ SELECT latin_genus_name
+ FROM edi.genus ;
+
+ INSERT IGNORE INTO vn.specie(name)
+ SELECT LCASE(latin_species_name)
+ FROM edi.specie ;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -58288,65 +58288,65 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ekt_add__`(vPutOrderFk INT)
-BEGIN
-
-/**
- * Añade ekt para las ordenes de compra de proveedores que no envian el ekt por email
- *
- * @param vPutOrderFk PutOrderId de donde coger los datos
- **/
-
- INSERT INTO edi.ekt(entryYear,
- deliveryNumber,
- fec,
- hor,
- item,
- pac,
- qty,
- ori,
- cat,
- pro,
- pri,
- package,
- s1,
- s2,
- s3,
- s4,
- s5,
- s6,
- putOrderFk,
- `ref`,
- kop)
- SELECT year(curdate()) entryYear,
- p.id deliveryNumber ,
- CURDATE() fec,
- CURTIME() hor,
- i.longName item,
- sr.NumberOfItemsPerCask pac,
- p.quantity qty,
- o.code ori,
- i.category cat,
- mp.supplierFk pro,
- sr.Price pri,
- sr.EmbalageCode package,
- i.value5 s1,
- i.value6 s2,
- i.value7 s3,
- i.value8 s4,
- i.value9 s5,
- i.value10 s6,
- p.id putOrderFk,
- sr.Item_ArticleCode,
- sr.vmpID
- FROM edi.putOrder p
- JOIN edi.supplyResponse sr ON sr.ID = p.supplyResponseID
- JOIN edi.marketPlace mp ON mp.id = sr.MarketPlaceID
- JOIN vn.item i ON i.supplyResponseFk = sr.ID
- JOIN vn.origin o ON o.id = i.originFk
- WHERE p.id = vPutOrderFk;
-
- CALL edi.ekt_load(LAST_INSERT_ID());
-
+BEGIN
+
+/**
+ * Añade ekt para las ordenes de compra de proveedores que no envian el ekt por email
+ *
+ * @param vPutOrderFk PutOrderId de donde coger los datos
+ **/
+
+ INSERT INTO edi.ekt(entryYear,
+ deliveryNumber,
+ fec,
+ hor,
+ item,
+ pac,
+ qty,
+ ori,
+ cat,
+ pro,
+ pri,
+ package,
+ s1,
+ s2,
+ s3,
+ s4,
+ s5,
+ s6,
+ putOrderFk,
+ `ref`,
+ kop)
+ SELECT year(curdate()) entryYear,
+ p.id deliveryNumber ,
+ CURDATE() fec,
+ CURTIME() hor,
+ i.longName item,
+ sr.NumberOfItemsPerCask pac,
+ p.quantity qty,
+ o.code ori,
+ i.category cat,
+ mp.supplierFk pro,
+ sr.Price pri,
+ sr.EmbalageCode package,
+ i.value5 s1,
+ i.value6 s2,
+ i.value7 s3,
+ i.value8 s4,
+ i.value9 s5,
+ i.value10 s6,
+ p.id putOrderFk,
+ sr.Item_ArticleCode,
+ sr.vmpID
+ FROM edi.putOrder p
+ JOIN edi.supplyResponse sr ON sr.ID = p.supplyResponseID
+ JOIN edi.marketPlace mp ON mp.id = sr.MarketPlaceID
+ JOIN vn.item i ON i.supplyResponseFk = sr.ID
+ JOIN vn.origin o ON o.id = i.originFk
+ WHERE p.id = vPutOrderFk;
+
+ CALL edi.ekt_load(LAST_INSERT_ID());
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -58397,216 +58397,216 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entryConverter__`(IN `vEntry` INT)
-BEGIN
-
- DECLARE vWarehouseIn INT;
- DECLARE vWarehouseOut INT;
- DECLARE vTravel INT;
-
- DECLARE done BOOL DEFAULT FALSE;
-
- DECLARE vId_Entrada INT;
- DECLARE vId_Article INT;
- DECLARE vEtiquetas INT;
- DECLARE vId_Cubo VARCHAR(10);
- DECLARE vPacking INT;
- DECLARE vGrouping INT;
- DECLARE vCantidad INT;
- DECLARE vCostefijo DECIMAL(10,3);
- DECLARE vPortefijo DECIMAL(10,3);
- DECLARE vEmbalajefijo DECIMAL(10);
- DECLARE vComisionfija DECIMAL(10,3);
- DECLARE vCaja INT;
- DECLARE vNicho VARCHAR(5);
- DECLARE vTarifa1 DECIMAL(10,2);
- DECLARE vTarifa2 DECIMAL(10,2);
- DECLARE vTarifa3 DECIMAL(10,2);
- DECLARE vPVP DECIMAL(10,2);
- DECLARE vCompra INT;
-
- DECLARE rs CURSOR FOR
- SELECT
- b.Id_Entrada,
- b.Id_Article,
- b.Etiquetas,
- b.Id_Cubo,
- b.Packing,
- b.`grouping`,
- b.Cantidad,
- b.Costefijo,
- b.Portefijo,
- b.Embalajefijo,
- b.Comisionfija,
- b.caja,
- b.Nicho,
- b.Tarifa1,
- b.Tarifa2,
- b.Tarifa3,
- b.PVP
- FROM vn2008.Compres b
- JOIN vn.itemConversor ic ON ic.espItemFk = b.Id_Article
- WHERE Id_Entrada = vEntry;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-
- SELECT warehouseInFk, warehouseOutFk, tr.id
- INTO vWarehouseIn, vWarehouseOut, vTravel
- FROM travel tr
- JOIN entry e ON e.travelFk = tr.id
- WHERE e.id = vEntry;
-
- UPDATE travel
- SET warehouseInFk = vWarehouseOut,
- warehouseOutFk = vWarehouseIn
- WHERE id = vTravel;
-
- UPDATE vn2008.Compres c
- LEFT JOIN vn.itemConversor ic ON ic.espItemFk = c.Id_Article
- SET Etiquetas = 0, Cantidad = 0
- WHERE c.Id_Entrada = vEntry
- AND ic.espItemFk IS NULL;
-
- OPEN rs;
-
- DELETE FROM vn2008.Compres WHERE Id_Entrada = vEntry;
-
- FETCH rs INTO
- vId_Entrada,
- vId_Article,
- vEtiquetas,
- vId_Cubo,
- vPacking,
- vGrouping,
- vCantidad,
- vCostefijo,
- vPortefijo,
- vEmbalajefijo,
- vComisionfija,
- vCaja,
- vNicho,
- vTarifa1,
- vTarifa2,
- vTarifa3,
- vPVP;
-
- WHILE NOT done DO
-
- -- Primero la linea original con las cantidades invertidas
- INSERT INTO vn2008.Compres
- (
- Id_Entrada,
- Id_Article,
- Etiquetas,
- Id_Cubo,
- Packing,
- `grouping`,
- Cantidad,
- Costefijo,
- Portefijo,
- Embalajefijo,
- Comisionfija,
- caja,
- Nicho,
- Tarifa1,
- Tarifa2,
- Tarifa3,
- PVP
- )
- VALUES
- (
- vId_Entrada,
- vId_Article,
- - vEtiquetas,
- vId_Cubo,
- vPacking,
- vGrouping,
- - vCantidad,
- vCostefijo,
- vPortefijo,
- vEmbalajefijo,
- vComisionfija,
- vCaja,
- vNicho,
- vTarifa1,
- vTarifa2,
- vTarifa3,
- vPVP);
-
- -- Ahora la linea nueva, con el item genérico
- INSERT INTO vn2008.Compres
- (
- Id_Entrada,
- Id_Article,
- Etiquetas,
- Id_Cubo,
- Packing,
- `grouping`,
- Cantidad,
- Costefijo,
- Portefijo,
- Embalajefijo,
- Comisionfija,
- caja,
- Nicho,
- Tarifa1,
- Tarifa2,
- Tarifa3,
- PVP
- )
- SELECT
- vId_Entrada,
- genItemFk as Id_Article,
- vEtiquetas,
- vId_Cubo,
- vPacking,
- vGrouping,
- vCantidad,
- vCostefijo,
- vPortefijo,
- vEmbalajefijo,
- vComisionfija,
- vCaja,
- vNicho,
- vTarifa1,
- vTarifa2,
- vTarifa3,
- vPVP
- FROM itemConversor
- WHERE espItemFk = vId_Article;
-
- SELECT LAST_INSERT_ID()
- INTO vCompra;
-
- REPLACE vn2008.Compres_mark(Id_Compra,`comment`)
- SELECT vCompra, vId_Article;
-
-
- FETCH rs INTO
- vId_Entrada,
- vId_Article,
- vEtiquetas,
- vId_Cubo,
- vPacking,
- vGrouping,
- vCantidad,
- vCostefijo,
- vPortefijo,
- vEmbalajefijo,
- vComisionfija,
- vCaja,
- vNicho,
- vTarifa1,
- vTarifa2,
- vTarifa3,
- vPVP;
-
- END WHILE;
-
-
- CLOSE rs;
-
-
-
+BEGIN
+
+ DECLARE vWarehouseIn INT;
+ DECLARE vWarehouseOut INT;
+ DECLARE vTravel INT;
+
+ DECLARE done BOOL DEFAULT FALSE;
+
+ DECLARE vId_Entrada INT;
+ DECLARE vId_Article INT;
+ DECLARE vEtiquetas INT;
+ DECLARE vId_Cubo VARCHAR(10);
+ DECLARE vPacking INT;
+ DECLARE vGrouping INT;
+ DECLARE vCantidad INT;
+ DECLARE vCostefijo DECIMAL(10,3);
+ DECLARE vPortefijo DECIMAL(10,3);
+ DECLARE vEmbalajefijo DECIMAL(10);
+ DECLARE vComisionfija DECIMAL(10,3);
+ DECLARE vCaja INT;
+ DECLARE vNicho VARCHAR(5);
+ DECLARE vTarifa1 DECIMAL(10,2);
+ DECLARE vTarifa2 DECIMAL(10,2);
+ DECLARE vTarifa3 DECIMAL(10,2);
+ DECLARE vPVP DECIMAL(10,2);
+ DECLARE vCompra INT;
+
+ DECLARE rs CURSOR FOR
+ SELECT
+ b.Id_Entrada,
+ b.Id_Article,
+ b.Etiquetas,
+ b.Id_Cubo,
+ b.Packing,
+ b.`grouping`,
+ b.Cantidad,
+ b.Costefijo,
+ b.Portefijo,
+ b.Embalajefijo,
+ b.Comisionfija,
+ b.caja,
+ b.Nicho,
+ b.Tarifa1,
+ b.Tarifa2,
+ b.Tarifa3,
+ b.PVP
+ FROM vn2008.Compres b
+ JOIN vn.itemConversor ic ON ic.espItemFk = b.Id_Article
+ WHERE Id_Entrada = vEntry;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ SELECT warehouseInFk, warehouseOutFk, tr.id
+ INTO vWarehouseIn, vWarehouseOut, vTravel
+ FROM travel tr
+ JOIN entry e ON e.travelFk = tr.id
+ WHERE e.id = vEntry;
+
+ UPDATE travel
+ SET warehouseInFk = vWarehouseOut,
+ warehouseOutFk = vWarehouseIn
+ WHERE id = vTravel;
+
+ UPDATE vn2008.Compres c
+ LEFT JOIN vn.itemConversor ic ON ic.espItemFk = c.Id_Article
+ SET Etiquetas = 0, Cantidad = 0
+ WHERE c.Id_Entrada = vEntry
+ AND ic.espItemFk IS NULL;
+
+ OPEN rs;
+
+ DELETE FROM vn2008.Compres WHERE Id_Entrada = vEntry;
+
+ FETCH rs INTO
+ vId_Entrada,
+ vId_Article,
+ vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP;
+
+ WHILE NOT done DO
+
+ -- Primero la linea original con las cantidades invertidas
+ INSERT INTO vn2008.Compres
+ (
+ Id_Entrada,
+ Id_Article,
+ Etiquetas,
+ Id_Cubo,
+ Packing,
+ `grouping`,
+ Cantidad,
+ Costefijo,
+ Portefijo,
+ Embalajefijo,
+ Comisionfija,
+ caja,
+ Nicho,
+ Tarifa1,
+ Tarifa2,
+ Tarifa3,
+ PVP
+ )
+ VALUES
+ (
+ vId_Entrada,
+ vId_Article,
+ - vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ - vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP);
+
+ -- Ahora la linea nueva, con el item genérico
+ INSERT INTO vn2008.Compres
+ (
+ Id_Entrada,
+ Id_Article,
+ Etiquetas,
+ Id_Cubo,
+ Packing,
+ `grouping`,
+ Cantidad,
+ Costefijo,
+ Portefijo,
+ Embalajefijo,
+ Comisionfija,
+ caja,
+ Nicho,
+ Tarifa1,
+ Tarifa2,
+ Tarifa3,
+ PVP
+ )
+ SELECT
+ vId_Entrada,
+ genItemFk as Id_Article,
+ vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP
+ FROM itemConversor
+ WHERE espItemFk = vId_Article;
+
+ SELECT LAST_INSERT_ID()
+ INTO vCompra;
+
+ REPLACE vn2008.Compres_mark(Id_Compra,`comment`)
+ SELECT vCompra, vId_Article;
+
+
+ FETCH rs INTO
+ vId_Entrada,
+ vId_Article,
+ vEtiquetas,
+ vId_Cubo,
+ vPacking,
+ vGrouping,
+ vCantidad,
+ vCostefijo,
+ vPortefijo,
+ vEmbalajefijo,
+ vComisionfija,
+ vCaja,
+ vNicho,
+ vTarifa1,
+ vTarifa2,
+ vTarifa3,
+ vPVP;
+
+ END WHILE;
+
+
+ CLOSE rs;
+
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -58668,62 +58668,62 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entryPrepare__`(IN `idE` BIGINT)
-BEGIN
- SELECT
- b.quantity / b.packing AS Paquetes,
- b.packing AS `Grouping`,
- barcode,
- 'ASEGURADO' AS asegurado,
- ic.name,
- ic.order,
- s.name AS Consignatario,
- e.supplierFk AS Id_Cliente,
- e.isOrdered,
- e.isConfirmed,
- 10 AS Calidad,
- LPAD(IFNULL(cpd.id, ip.code),
- 5,
- '0') AS path,
- b.entryFk AS Id_Ticket,
- t.landed AS Fecha,
- b.itemFk,
- b.quantity,
- i.name AS Concepte,
- i.size,
- i.inkFk,
- i.category,
- o.code AS Origen,
- 0 AS Bultos,
- wIn.`name` AS Tipo,
- 0 AS OK,
- 0 AS Reservado,
- i.stems,
- b.id AS Id_Movimiento,
- ip.code,
- 'PEDIDO ASEGURADO' AS MSG,
- 0 AS Seguro,
- i.image,
- pr.name AS producer
- FROM vn.buy b
- JOIN vn.entry e ON b.entryFk = e.id
- JOIN vn.travel t ON t.id = e.travelFk
- JOIN vn.warehouse wIn ON wIn.id = t.warehouseInFk
- JOIN vn.warehouse wOut ON wOut.id = t.warehouseOutFk
- JOIN vn.item i ON i.id = b.itemFk
- JOIN vn.itemType it ON it.id =i.typeFk
- JOIN vn.itemCategory ic ON ic.id = it.categoryFk
- JOIN vn.packaging pkg ON pkg.id = b.packageFk
- LEFT JOIN vn.itemPlacement ip ON i.id = ip.itemFk AND ip.warehouseFk = wIn.id AND ip.warehouseFk = t.warehouseOutFk
- LEFT JOIN (SELECT itemFk, code AS barcode FROM vn.itemBarcode GROUP BY itemFk) ib ON ib.itemFk = b.itemFk
- LEFT JOIN vn.origin o ON o.id = i.originFk
- LEFT JOIN vn.supplier s ON s.id = e.supplierFk
- LEFT JOIN vn.producer pr on pr.id = i.producerFk
- LEFT JOIN vn.coolerPathDetail cpd ON LEFT(ip.code, 3) = cpd.hallway
- WHERE
- NOT wIn.isFeedStock AND NOT e.isInventory AND NOT e.isRaid
- AND e.id = 158772
- AND i.typeFk IS NOT NULL
- AND ic.display IS NOT FALSE;
+BEGIN
+ SELECT
+ b.quantity / b.packing AS Paquetes,
+ b.packing AS `Grouping`,
+ barcode,
+ 'ASEGURADO' AS asegurado,
+ ic.name,
+ ic.order,
+ s.name AS Consignatario,
+ e.supplierFk AS Id_Cliente,
+ e.isOrdered,
+ e.isConfirmed,
+ 10 AS Calidad,
+ LPAD(IFNULL(cpd.id, ip.code),
+ 5,
+ '0') AS path,
+ b.entryFk AS Id_Ticket,
+ t.landed AS Fecha,
+ b.itemFk,
+ b.quantity,
+ i.name AS Concepte,
+ i.size,
+ i.inkFk,
+ i.category,
+ o.code AS Origen,
+ 0 AS Bultos,
+ wIn.`name` AS Tipo,
+ 0 AS OK,
+ 0 AS Reservado,
+ i.stems,
+ b.id AS Id_Movimiento,
+ ip.code,
+ 'PEDIDO ASEGURADO' AS MSG,
+ 0 AS Seguro,
+ i.image,
+ pr.name AS producer
+ FROM vn.buy b
+ JOIN vn.entry e ON b.entryFk = e.id
+ JOIN vn.travel t ON t.id = e.travelFk
+ JOIN vn.warehouse wIn ON wIn.id = t.warehouseInFk
+ JOIN vn.warehouse wOut ON wOut.id = t.warehouseOutFk
+ JOIN vn.item i ON i.id = b.itemFk
+ JOIN vn.itemType it ON it.id =i.typeFk
+ JOIN vn.itemCategory ic ON ic.id = it.categoryFk
+ JOIN vn.packaging pkg ON pkg.id = b.packageFk
+ LEFT JOIN vn.itemPlacement ip ON i.id = ip.itemFk AND ip.warehouseFk = wIn.id AND ip.warehouseFk = t.warehouseOutFk
+ LEFT JOIN (SELECT itemFk, code AS barcode FROM vn.itemBarcode GROUP BY itemFk) ib ON ib.itemFk = b.itemFk
+ LEFT JOIN vn.origin o ON o.id = i.originFk
+ LEFT JOIN vn.supplier s ON s.id = e.supplierFk
+ LEFT JOIN vn.producer pr on pr.id = i.producerFk
+ LEFT JOIN vn.coolerPathDetail cpd ON LEFT(ip.code, 3) = cpd.hallway
+ WHERE
+ NOT wIn.isFeedStock AND NOT e.isInventory AND NOT e.isRaid
+ AND e.id = 158772
+ AND i.typeFk IS NOT NULL
+ AND ic.display IS NOT FALSE;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -58814,22 +58814,22 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entryVolume__`(vEntryFk INT)
-BEGIN
-
- SELECT ELT(it.temperature + 1,'Calientes','Frios','Secos') AS Temp,
- CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
- vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.carro / 1000000 ,1) AS DECIMAL(10,2)) AS carros ,
- CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
- vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.espai / 1000000,1) AS DECIMAL(10,2)) AS espais
- FROM vn.buy b
- INNER JOIN vn.entry e ON e.id = b.entryFk
- INNER JOIN vn.travel tr ON tr.id = e.travelFk
- INNER JOIN vn.volumeConfig vc
- INNER JOIN vn.item i ON i.id = b.itemFk
- INNER JOIN vn.itemType it ON it.id = i.typeFk
- WHERE e.id = vEntryFk
- GROUP BY Temp;
-
+BEGIN
+
+ SELECT ELT(it.temperature + 1,'Calientes','Frios','Secos') AS Temp,
+ CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
+ vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.carro / 1000000 ,1) AS DECIMAL(10,2)) AS carros ,
+ CAST(ROUND(SUM(GREATEST(b.stickers ,b.quantity /b.packing ) *
+ vn.item_getVolume(b.itemFk ,b.packageFk)) / vc.espai / 1000000,1) AS DECIMAL(10,2)) AS espais
+ FROM vn.buy b
+ INNER JOIN vn.entry e ON e.id = b.entryFk
+ INNER JOIN vn.travel tr ON tr.id = e.travelFk
+ INNER JOIN vn.volumeConfig vc
+ INNER JOIN vn.item i ON i.id = b.itemFk
+ INNER JOIN vn.itemType it ON it.id = i.typeFk
+ WHERE e.id = vEntryFk
+ GROUP BY Temp;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -58983,67 +58983,67 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entry_clone`(vSelf INT)
-BEGIN
-
-/*
- * Clona una entrada
- *
- * @param vSelf Identificador de vn.entry
- */
-
- DECLARE vNewEntryFk INT;
-
- CALL vn.entry_cloneWithoutBuy(vSelf, vNewEntryFk);
-
- INSERT INTO vn.buy( entryFk,
- itemFk,
- quantity,
- buyingValue,
- freightValue,
- isIgnored,
- stickers,
- packing,
- `grouping`,
- groupingMode,
- containerFk,
- comissionValue,
- packageValue,
- packageFk,
- price1,
- price2,
- price3,
- minPrice,
- producer,
- workerFk,
- weight,
- itemOriginalFk)
- SELECT vNewEntryFk,
- itemFk,
- quantity,
- buyingValue,
- freightValue,
- isIgnored,
- stickers,
- packing,
- `grouping`,
- groupingMode,
- containerFk,
- comissionValue,
- packageValue,
- packageFk,
- price1,
- price2,
- price3,
- minPrice,
- producer,
- workerFk,
- weight,
- itemOriginalFk
- FROM vn.buy b
- WHERE b.entryFk = vSelf;
-
- SELECT vNewEntryFk;
-
+BEGIN
+
+/*
+ * Clona una entrada
+ *
+ * @param vSelf Identificador de vn.entry
+ */
+
+ DECLARE vNewEntryFk INT;
+
+ CALL vn.entry_cloneWithoutBuy(vSelf, vNewEntryFk);
+
+ INSERT INTO vn.buy( entryFk,
+ itemFk,
+ quantity,
+ buyingValue,
+ freightValue,
+ isIgnored,
+ stickers,
+ packing,
+ `grouping`,
+ groupingMode,
+ containerFk,
+ comissionValue,
+ packageValue,
+ packageFk,
+ price1,
+ price2,
+ price3,
+ minPrice,
+ producer,
+ workerFk,
+ weight,
+ itemOriginalFk)
+ SELECT vNewEntryFk,
+ itemFk,
+ quantity,
+ buyingValue,
+ freightValue,
+ isIgnored,
+ stickers,
+ packing,
+ `grouping`,
+ groupingMode,
+ containerFk,
+ comissionValue,
+ packageValue,
+ packageFk,
+ price1,
+ price2,
+ price3,
+ minPrice,
+ producer,
+ workerFk,
+ weight,
+ itemOriginalFk
+ FROM vn.buy b
+ WHERE b.entryFk = vSelf;
+
+ SELECT vNewEntryFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -59061,45 +59061,45 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entry_cloneWithoutBuy`(vSelf INT, OUT vNewEntryFk INT)
-BEGIN
-
-/**
- * Clona una entrada sin compras
- *
- * @param vSelf Identificador de vn.entry
- *
- * @return vNewEntryFk Identificador de la nueva entrada
- */
-
- START TRANSACTION;
-
- INSERT INTO vn.entry(supplierFk,
- dated,
- isInventory,
- notes,
- isRaid,
- commission,
- travelFk,
- currencyFk,
- companyFk,
- loadPriority)
- SELECT supplierFk,
- dated,
- isInventory,
- notes,
- isRaid,
- commission,
- travelFk,
- currencyFk,
- companyFk,
- loadPriority
- FROM vn.entry e
- WHERE e.id = vSelf;
-
- SET vNewEntryFk = LAST_INSERT_ID();
-
- COMMIT;
-
+BEGIN
+
+/**
+ * Clona una entrada sin compras
+ *
+ * @param vSelf Identificador de vn.entry
+ *
+ * @return vNewEntryFk Identificador de la nueva entrada
+ */
+
+ START TRANSACTION;
+
+ INSERT INTO vn.entry(supplierFk,
+ dated,
+ isInventory,
+ notes,
+ isRaid,
+ commission,
+ travelFk,
+ currencyFk,
+ companyFk,
+ loadPriority)
+ SELECT supplierFk,
+ dated,
+ isInventory,
+ notes,
+ isRaid,
+ commission,
+ travelFk,
+ currencyFk,
+ companyFk,
+ loadPriority
+ FROM vn.entry e
+ WHERE e.id = vSelf;
+
+ SET vNewEntryFk = LAST_INSERT_ID();
+
+ COMMIT;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -59117,62 +59117,62 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entry_fixMisfit`(vSelf INT)
-BEGIN
-/**
- * Arregla el descuadre de una entrada, agregando registros en vn.buy
- * para compensar la diferencia * entre las etiquetas impresas y las esperadas
- *
- * @param vSelf Identificador de la entrada
- */
- INSERT INTO vn.buy(entryFk, itemFk)
- SELECT vSelf, i.id
- FROM vn.item i
- WHERE i.description = 'MISFIT'
- LIMIT 1;
-
- INSERT INTO vn.buy(entryFk,
- itemFk,
- quantity,
- buyingValue,
- freightValue,
- isIgnored,
- stickers,
- packing,
- `grouping`,
- groupingMode,
- containerFk,
- comissionValue,
- packageValue,
- location,
- packageFk,
- price1,
- price2,
- price3,
- minPrice,
- producer)
- SELECT vSelf,
- itemFk,
- (printedStickers - stickers) * packing quantity,
- buyingValue,
- freightValue,
- TRUE isIgnored,
- printedStickers - stickers,
- packing,
- `grouping`,
- groupingMode,
- containerFk,
- comissionValue,
- packageValue,
- location,
- packageFk,
- price1,
- price2,
- price3,
- minPrice,
- producer
- FROM vn.buy b
- WHERE b.entryFk = vSelf
- AND b.printedStickers != b.stickers;
+BEGIN
+/**
+ * Arregla el descuadre de una entrada, agregando registros en vn.buy
+ * para compensar la diferencia * entre las etiquetas impresas y las esperadas
+ *
+ * @param vSelf Identificador de la entrada
+ */
+ INSERT INTO vn.buy(entryFk, itemFk)
+ SELECT vSelf, i.id
+ FROM vn.item i
+ WHERE i.description = 'MISFIT'
+ LIMIT 1;
+
+ INSERT INTO vn.buy(entryFk,
+ itemFk,
+ quantity,
+ buyingValue,
+ freightValue,
+ isIgnored,
+ stickers,
+ packing,
+ `grouping`,
+ groupingMode,
+ containerFk,
+ comissionValue,
+ packageValue,
+ location,
+ packageFk,
+ price1,
+ price2,
+ price3,
+ minPrice,
+ producer)
+ SELECT vSelf,
+ itemFk,
+ (printedStickers - stickers) * packing quantity,
+ buyingValue,
+ freightValue,
+ TRUE isIgnored,
+ printedStickers - stickers,
+ packing,
+ `grouping`,
+ groupingMode,
+ containerFk,
+ comissionValue,
+ packageValue,
+ location,
+ packageFk,
+ price1,
+ price2,
+ price3,
+ minPrice,
+ producer
+ FROM vn.buy b
+ WHERE b.entryFk = vSelf
+ AND b.printedStickers != b.stickers;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -59585,36 +59585,36 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `entry_splitMisfit`(vSelf INT)
-BEGIN
-
- /* Divide una entrada, pasando los registros que ha insertado vn.entry_fixMisfit de la entrada original
- * a la nueva
- */
-
- DECLARE vNewEntryFk INT;
- DECLARE vBuyFk INT;
-
- SELECT MAX(b.id) INTO vBuyFk
- FROM vn.buy b
- JOIN vn.item i ON i.id = b.itemFk
- WHERE b.entryFk = vSelf
- AND i.description = 'MISFIT';
-
- INSERT INTO vn.entry(supplierFk, dated, notes, travelFk, currencyFk, companyFk)
- SELECT supplierFk, dated, CONCAT('E:',vSelf), travelFk, currencyFk, companyFk
- FROM vn.entry e
- WHERE e.id = vSelf;
-
- SET vNewEntryFk = LAST_INSERT_ID();
-
- UPDATE vn.buy b
- SET b.entryFk = vNewEntryFk
- WHERE b.entryFk = vSelf
- AND b.id > vBuyFk;
-
- SELECT vNewEntryFk;
-
-
+BEGIN
+
+ /* Divide una entrada, pasando los registros que ha insertado vn.entry_fixMisfit de la entrada original
+ * a la nueva
+ */
+
+ DECLARE vNewEntryFk INT;
+ DECLARE vBuyFk INT;
+
+ SELECT MAX(b.id) INTO vBuyFk
+ FROM vn.buy b
+ JOIN vn.item i ON i.id = b.itemFk
+ WHERE b.entryFk = vSelf
+ AND i.description = 'MISFIT';
+
+ INSERT INTO vn.entry(supplierFk, dated, notes, travelFk, currencyFk, companyFk)
+ SELECT supplierFk, dated, CONCAT('E:',vSelf), travelFk, currencyFk, companyFk
+ FROM vn.entry e
+ WHERE e.id = vSelf;
+
+ SET vNewEntryFk = LAST_INSERT_ID();
+
+ UPDATE vn.buy b
+ SET b.entryFk = vNewEntryFk
+ WHERE b.entryFk = vSelf
+ AND b.id > vBuyFk;
+
+ SELECT vNewEntryFk;
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60245,33 +60245,33 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `expeditionState_add`(vParam INT, vStateCode VARCHAR(100))
-BEGIN
-
- /**
- * Inserta nuevos registros en la tabla vn.expeditionState, segun el parámetro
- *
- * @param vParam Identificador de vn.expedition o de vn.route
- * @param vStateCode Corresponde a vn.expeditionStateType.code
- */
-
- IF (SELECT COUNT(*) FROM vn.route r WHERE r.id = vParam) THEN
-
- INSERT INTO vn.expeditionState(expeditionFk, typeFk)
- SELECT e.id, est.id
- FROM vn.expedition e
- JOIN vn.ticket t ON t.id = e.ticketFk
- JOIN vn.expeditionStateType est ON est.code = vStateCode
- WHERE t.routeFk = vParam;
-
- ELSE
-
- INSERT INTO vn.expeditionState(expeditionFk, typeFk)
- SELECT vParam, est.id
- FROM vn.expeditionStateType est
- WHERE est.code = vStateCode;
-
- END IF;
-
+BEGIN
+
+ /**
+ * Inserta nuevos registros en la tabla vn.expeditionState, segun el parámetro
+ *
+ * @param vParam Identificador de vn.expedition o de vn.route
+ * @param vStateCode Corresponde a vn.expeditionStateType.code
+ */
+
+ IF (SELECT COUNT(*) FROM vn.route r WHERE r.id = vParam) THEN
+
+ INSERT INTO vn.expeditionState(expeditionFk, typeFk)
+ SELECT e.id, est.id
+ FROM vn.expedition e
+ JOIN vn.ticket t ON t.id = e.ticketFk
+ JOIN vn.expeditionStateType est ON est.code = vStateCode
+ WHERE t.routeFk = vParam;
+
+ ELSE
+
+ INSERT INTO vn.expeditionState(expeditionFk, typeFk)
+ SELECT vParam, est.id
+ FROM vn.expeditionStateType est
+ WHERE est.code = vStateCode;
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60289,23 +60289,23 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `expeditionState_addByAdress`(vAdressFk INT, vRouteFk INT, vStateCode VARCHAR(100))
-BEGIN
-
- /**
- * Inserta nuevos registros en la tabla vn.expeditionState
- *
- * @param vAdressFk Identificador de vn.ticket
- * @param vRouteFk Identificador de vn.route
- * @param vStateCode Corresponde a vn.expeditionStateType.code
- */
-
- INSERT INTO vn.expeditionState(expeditionFk, typeFk)
- SELECT e.id, est.id
- FROM vn.expedition e
- JOIN vn.expeditionStateType est ON est.code = vStateCode
- JOIN vn.ticket t ON t.id = e.ticketFk
- WHERE t.addressFk = vAdressFk AND t.routeFk = vRouteFk;
-
+BEGIN
+
+ /**
+ * Inserta nuevos registros en la tabla vn.expeditionState
+ *
+ * @param vAdressFk Identificador de vn.ticket
+ * @param vRouteFk Identificador de vn.route
+ * @param vStateCode Corresponde a vn.expeditionStateType.code
+ */
+
+ INSERT INTO vn.expeditionState(expeditionFk, typeFk)
+ SELECT e.id, est.id
+ FROM vn.expedition e
+ JOIN vn.expeditionStateType est ON est.code = vStateCode
+ JOIN vn.ticket t ON t.id = e.ticketFk
+ WHERE t.addressFk = vAdressFk AND t.routeFk = vRouteFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60323,20 +60323,20 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `expeditionState_addByExpedition`(vExpeditionFk INT, vStateCode VARCHAR(100))
-BEGIN
-
- /**
- * Inserta nuevos registros en la tabla vn.expeditionState
- *
- * @param vExpeditionFk Identificador de vn.expedition
- * @param vStateCode Corresponde a vn.expeditionStateType.code
- */
-
- INSERT INTO vn.expeditionState(expeditionFk, typeFk)
- SELECT vExpeditionFk, est.id
- FROM vn.expeditionStateType est
- WHERE est.code = vStateCode;
-
+BEGIN
+
+ /**
+ * Inserta nuevos registros en la tabla vn.expeditionState
+ *
+ * @param vExpeditionFk Identificador de vn.expedition
+ * @param vStateCode Corresponde a vn.expeditionStateType.code
+ */
+
+ INSERT INTO vn.expeditionState(expeditionFk, typeFk)
+ SELECT vExpeditionFk, est.id
+ FROM vn.expeditionStateType est
+ WHERE est.code = vStateCode;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60390,22 +60390,22 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `expeditionState_addByRoute`(vRouteFk INT, vStateCode VARCHAR(100))
-BEGIN
-
- /**
- * Inserta nuevos registros en la tabla vn.expeditionState, por rutas
- *
- * @param vRouteFk Identificador de vn.route
- * @param vStateCode Corresponde a vn.expeditionStateType.code
- */
-
- INSERT INTO vn.expeditionState(expeditionFk, typeFk)
- SELECT e.id, est.id
- FROM vn.expedition e
- JOIN vn.ticket t ON t.id = e.ticketFk
- JOIN vn.expeditionStateType est ON est.code = vStateCode
- WHERE t.routeFk = vRouteFk;
-
+BEGIN
+
+ /**
+ * Inserta nuevos registros en la tabla vn.expeditionState, por rutas
+ *
+ * @param vRouteFk Identificador de vn.route
+ * @param vStateCode Corresponde a vn.expeditionStateType.code
+ */
+
+ INSERT INTO vn.expeditionState(expeditionFk, typeFk)
+ SELECT e.id, est.id
+ FROM vn.expedition e
+ JOIN vn.ticket t ON t.id = e.ticketFk
+ JOIN vn.expeditionStateType est ON est.code = vStateCode
+ WHERE t.routeFk = vRouteFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60792,15 +60792,15 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `freelance_getInfo`(workerFk INT)
-BEGIN
- SELECT s.name, s.street, s.city, s.nif, s.postCode
- FROM route r
- JOIN agencyMode am ON r.agencyModeFk = am.id
- JOIN agency a ON am.agencyFk = a.id
- JOIN supplier s ON a.supplierFk = s.id
- WHERE r.workerFk = workerFk
- ORDER BY r.id DESC
- LIMIT 1;
+BEGIN
+ SELECT s.name, s.street, s.city, s.nif, s.postCode
+ FROM route r
+ JOIN agencyMode am ON r.agencyModeFk = am.id
+ JOIN agency a ON am.agencyFk = a.id
+ JOIN supplier s ON a.supplierFk = s.id
+ WHERE r.workerFk = workerFk
+ ORDER BY r.id DESC
+ LIMIT 1;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60818,81 +60818,81 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `fustControl`(vFromDated DATE, vToDated DATE)
-BEGIN
-
- DECLARE vSijsnerClientFk INT DEFAULT 19752;
-
- DECLARE vDateStart DATETIME;
- DECLARE vDateEnd DATETIME;
-
- SET vDateStart = vFromDated;
- SET vDateEnd = util.Dayend(vToDated);
-
- SELECT p.id FustCode,
- CAST(sent.stucks AS DECIMAL(10,0)) FH,
- CAST(tp.stucks AS DECIMAL(10,0)) Tickets,
- CAST(-sj.stucks AS DECIMAL(10,0)) Sijsner,
- CAST(IFNULL(sent.stucks,0) - IFNULL(tp.stucks,0) + IFNULL(sj.stucks,0) AS DECIMAL(10,0)) saldo
- FROM vn.packaging p
- LEFT JOIN (
- SELECT FustCode, sum(fustQuantity) stucks
- FROM (
- SELECT IFNULL(pe.equivalentFk ,b.packageFk) FustCode, s.quantity / b.packing AS fustQuantity
- FROM vn.sale s
- JOIN vn.ticket t ON t.id = s.ticketFk
- JOIN vn.warehouse w ON w.id = t.warehouseFk
- JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
- JOIN cache.last_buy lb ON lb.item_id = s.itemFk AND lb.warehouse_id = t.warehouseFk
- JOIN vn.buy b ON b.id = lb.buy_id
- JOIN vn.packaging p ON p.id = b.packageFk
- LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
- JOIN vn.address a ON a.id = t.addressFk
- JOIN vn.province p2 ON p2.id = a.provinceFk
- JOIN vn.country c ON c.id = p2.countryFk
- WHERE t.shipped BETWEEN vDateStart AND vDateEnd
- AND wa.name = 'VNH'
- AND p.isPackageReturnable
- AND c.country = 'FRANCIA') sub
- GROUP BY FustCode) sent ON sent.FustCode = p.id
- LEFT JOIN (
- SELECT FustCode, sum(quantity) stucks
- FROM (
- SELECT IFNULL(pe.equivalentFk ,tp.packagingFk) FustCode, tp.quantity
- FROM vn.ticketPackaging tp
- JOIN vn.ticket t ON t.id = tp.ticketFk
- JOIN vn.warehouse w ON w.id = t.warehouseFk
- JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
- JOIN vn.packaging p ON p.id = tp.packagingFk
- LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
- JOIN vn.address a ON a.id = t.addressFk
- JOIN vn.province p2 ON p2.id = a.provinceFk
- JOIN vn.country c ON c.id = p2.countryFk
- WHERE t.shipped BETWEEN vDateStart AND vDateEnd
- AND wa.name = 'VNH'
- AND p.isPackageReturnable
- AND c.country = 'FRANCIA'
- AND t.clientFk != vSijsnerClientFk
- AND tp.quantity > 0) sub
- GROUP BY FustCode) tp ON tp.FustCode = p.id
- LEFT JOIN (
- SELECT FustCode, sum(quantity) stucks
- FROM (
- SELECT IFNULL(pe.equivalentFk ,tp.packagingFk) FustCode, tp.quantity
- FROM vn.ticketPackaging tp
- JOIN vn.ticket t ON t.id = tp.ticketFk
- JOIN vn.warehouse w ON w.id = t.warehouseFk
- JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
- JOIN vn.packaging p ON p.id = tp.packagingFk
- LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
- WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, 1, vDateStart ) AND TIMESTAMPADD(DAY, 1, vDateEnd )
- AND wa.name = 'VNH'
- AND p.isPackageReturnable
- AND t.clientFk = vSijsnerClientFk) sub
- GROUP BY FustCode) sj ON sj.FustCode = p.id
- WHERE sent.stucks
- OR tp.stucks
- OR sj.stucks;
-
+BEGIN
+
+ DECLARE vSijsnerClientFk INT DEFAULT 19752;
+
+ DECLARE vDateStart DATETIME;
+ DECLARE vDateEnd DATETIME;
+
+ SET vDateStart = vFromDated;
+ SET vDateEnd = util.Dayend(vToDated);
+
+ SELECT p.id FustCode,
+ CAST(sent.stucks AS DECIMAL(10,0)) FH,
+ CAST(tp.stucks AS DECIMAL(10,0)) Tickets,
+ CAST(-sj.stucks AS DECIMAL(10,0)) Sijsner,
+ CAST(IFNULL(sent.stucks,0) - IFNULL(tp.stucks,0) + IFNULL(sj.stucks,0) AS DECIMAL(10,0)) saldo
+ FROM vn.packaging p
+ LEFT JOIN (
+ SELECT FustCode, sum(fustQuantity) stucks
+ FROM (
+ SELECT IFNULL(pe.equivalentFk ,b.packageFk) FustCode, s.quantity / b.packing AS fustQuantity
+ FROM vn.sale s
+ JOIN vn.ticket t ON t.id = s.ticketFk
+ JOIN vn.warehouse w ON w.id = t.warehouseFk
+ JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
+ JOIN cache.last_buy lb ON lb.item_id = s.itemFk AND lb.warehouse_id = t.warehouseFk
+ JOIN vn.buy b ON b.id = lb.buy_id
+ JOIN vn.packaging p ON p.id = b.packageFk
+ LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.province p2 ON p2.id = a.provinceFk
+ JOIN vn.country c ON c.id = p2.countryFk
+ WHERE t.shipped BETWEEN vDateStart AND vDateEnd
+ AND wa.name = 'VNH'
+ AND p.isPackageReturnable
+ AND c.country = 'FRANCIA') sub
+ GROUP BY FustCode) sent ON sent.FustCode = p.id
+ LEFT JOIN (
+ SELECT FustCode, sum(quantity) stucks
+ FROM (
+ SELECT IFNULL(pe.equivalentFk ,tp.packagingFk) FustCode, tp.quantity
+ FROM vn.ticketPackaging tp
+ JOIN vn.ticket t ON t.id = tp.ticketFk
+ JOIN vn.warehouse w ON w.id = t.warehouseFk
+ JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
+ JOIN vn.packaging p ON p.id = tp.packagingFk
+ LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.province p2 ON p2.id = a.provinceFk
+ JOIN vn.country c ON c.id = p2.countryFk
+ WHERE t.shipped BETWEEN vDateStart AND vDateEnd
+ AND wa.name = 'VNH'
+ AND p.isPackageReturnable
+ AND c.country = 'FRANCIA'
+ AND t.clientFk != vSijsnerClientFk
+ AND tp.quantity > 0) sub
+ GROUP BY FustCode) tp ON tp.FustCode = p.id
+ LEFT JOIN (
+ SELECT FustCode, sum(quantity) stucks
+ FROM (
+ SELECT IFNULL(pe.equivalentFk ,tp.packagingFk) FustCode, tp.quantity
+ FROM vn.ticketPackaging tp
+ JOIN vn.ticket t ON t.id = tp.ticketFk
+ JOIN vn.warehouse w ON w.id = t.warehouseFk
+ JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
+ JOIN vn.packaging p ON p.id = tp.packagingFk
+ LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
+ WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, 1, vDateStart ) AND TIMESTAMPADD(DAY, 1, vDateEnd )
+ AND wa.name = 'VNH'
+ AND p.isPackageReturnable
+ AND t.clientFk = vSijsnerClientFk) sub
+ GROUP BY FustCode) sj ON sj.FustCode = p.id
+ WHERE sent.stucks
+ OR tp.stucks
+ OR sj.stucks;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -60910,38 +60910,38 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `fustControlDetail`(vFromDated DATE, vToDated DATE)
-BEGIN
-
- DECLARE vSijsnerClientFk INT DEFAULT 19752;
-
- DECLARE vDateStart DATETIME;
- DECLARE vDateEnd DATETIME;
-
- SET vDateStart = vFromDated;
- SET vDateEnd = util.Dayend(vToDated);
-
- SELECT a.nickname shopName,
- a.city ,
- IFNULL(pe.equivalentFk ,tp.packagingFk) FustCode,
- tp.quantity,
- tp.ticketFk,
- CONCAT('From ', vFromDated,' to ', vToDated) AS dateRange
- FROM vn.ticketPackaging tp
- JOIN vn.ticket t ON t.id = tp.ticketFk
- JOIN vn.warehouse w ON w.id = t.warehouseFk
- JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
- JOIN vn.packaging p ON p.id = tp.packagingFk
- LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
- JOIN vn.address a ON a.id = t.addressFk
- JOIN vn.province p2 ON p2.id = a.provinceFk
- JOIN vn.country c ON c.id = p2.countryFk
- WHERE t.shipped BETWEEN vFromDated AND util.dayend(vToDated)
- AND wa.name = 'VNH'
- AND p.isPackageReturnable
- AND c.country = 'FRANCIA'
- AND t.clientFk != vSijsnerClientFk
- AND tp.quantity > 0;
-
+BEGIN
+
+ DECLARE vSijsnerClientFk INT DEFAULT 19752;
+
+ DECLARE vDateStart DATETIME;
+ DECLARE vDateEnd DATETIME;
+
+ SET vDateStart = vFromDated;
+ SET vDateEnd = util.Dayend(vToDated);
+
+ SELECT a.nickname shopName,
+ a.city ,
+ IFNULL(pe.equivalentFk ,tp.packagingFk) FustCode,
+ tp.quantity,
+ tp.ticketFk,
+ CONCAT('From ', vFromDated,' to ', vToDated) AS dateRange
+ FROM vn.ticketPackaging tp
+ JOIN vn.ticket t ON t.id = tp.ticketFk
+ JOIN vn.warehouse w ON w.id = t.warehouseFk
+ JOIN vn.warehouseAlias wa ON wa.id = w.aliasFk
+ JOIN vn.packaging p ON p.id = tp.packagingFk
+ LEFT JOIN vn.packageEquivalent pe ON pe.packagingFk = p.id
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.province p2 ON p2.id = a.provinceFk
+ JOIN vn.country c ON c.id = p2.countryFk
+ WHERE t.shipped BETWEEN vFromDated AND util.dayend(vToDated)
+ AND wa.name = 'VNH'
+ AND p.isPackageReturnable
+ AND c.country = 'FRANCIA'
+ AND t.clientFk != vSijsnerClientFk
+ AND tp.quantity > 0;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -61232,25 +61232,25 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `intrastat_data_neto_Update`(IN vInvoiceInFk INT)
-BEGIN
-
- UPDATE vn2008.intrastat_data id
- JOIN (
- SELECT i.intrastatFk,
- LEAST(SUM(b.quantity) * IFNULL(it.gramsMax,100000) / 1000,
- SUM(ic.cm3 * b.quantity) * IF(i.density, i.density, it.density) / 1000000) as neto
- FROM entry e
- JOIN travel tr ON tr.id = e.travelFk
- JOIN buy b ON b.entryFk = e.id
- JOIN item i ON i.id = b.itemFk
- join itemType it ON it.id = i.typeFk
- JOIN itemCost ic ON ic.itemFk = i.id AND tr.warehouseInFk = ic.warehouseFk
- WHERE e.invoiceInFk = vinvoiceInFk
- GROUP BY i.intrastatFk) sub ON sub.intrastatFk = id.intrastat_id
- SET id.neto = ROUND(sub.neto, 1)
- WHERE id.recibida_id = vInvoiceInFk;
-
-
+BEGIN
+
+ UPDATE vn2008.intrastat_data id
+ JOIN (
+ SELECT i.intrastatFk,
+ LEAST(SUM(b.quantity) * IFNULL(it.gramsMax,100000) / 1000,
+ SUM(ic.cm3 * b.quantity) * IF(i.density, i.density, it.density) / 1000000) as neto
+ FROM entry e
+ JOIN travel tr ON tr.id = e.travelFk
+ JOIN buy b ON b.entryFk = e.id
+ JOIN item i ON i.id = b.itemFk
+ join itemType it ON it.id = i.typeFk
+ JOIN itemCost ic ON ic.itemFk = i.id AND tr.warehouseInFk = ic.warehouseFk
+ WHERE e.invoiceInFk = vinvoiceInFk
+ GROUP BY i.intrastatFk) sub ON sub.intrastatFk = id.intrastat_id
+ SET id.neto = ROUND(sub.neto, 1)
+ WHERE id.recibida_id = vInvoiceInFk;
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -63024,46 +63024,46 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `invoiceInDueDay_calculate`(vInvoiceInFk INT)
-BEGIN
-
- IF !(SELECT COUNT(*)
- FROM invoiceInDueDay iid
- WHERE iid.invoiceInFk = vInvoiceInFk) THEN
-
- INSERT INTO invoiceInDueDay (invoiceInFk,
- dueDated,
- amount,
- foreignValue)
- SELECT vInvoiceInFk,
- IF(payDay,
- IF(vn.getNextDueDate(issued, detail, payDay) < DATE_ADD(created, INTERVAL 2 DAY),
- DATE_ADD(created, INTERVAL 2 DAY),
- vn.getNextDueDate(issued, detail, payDay)),
- GREATEST(TIMESTAMPADD(DAY, 2, created), TIMESTAMPADD(DAY, detail, issued))),
- IF((@cont:=@cont + 1) < cont, TRUNCATE(venc / cont, 2),venc-(TRUNCATE(venc / cont, 2) * (cont - 1))),
- IF(@cont < cont, TRUNCATE(foreignValue / cont, 2), foreignValue - (TRUNCATE(foreignValue / cont, 2) * (cont - 1)))
- FROM ( SELECT SUM((1 + (IFNULL(ti.PorcentajeIva, 0) / 100)*(s.countryFk = s2.countryFk)) * iit.taxableBase)/COUNT(DISTINCT(pdd.detail)) venc,
- SUM(iit.foreignValue)/COUNT(DISTINCT(pdd.detail)) foreignValue,
- s.payDemFk,
- ii.companyFk,
- COUNT(DISTINCT(pdd.detail)) cont,
- s.payDay,
- ii.issued,
- DATE(ii.created) created
- FROM invoiceIn ii
- JOIN invoiceInTax iit ON iit.invoiceInFk = ii.id
- LEFT JOIN sage.TiposIva AS ti ON ti.CodigoIva= iit.taxTypeSageFk
- JOIN supplier s ON s.id = ii.supplierFk
- JOIN supplier s2 ON s2.id = ii.companyFk
- JOIN vn.payDemDetail pdd ON pdd.id = s.payDemFk
- WHERE ii.id = vInvoiceInFk
- GROUP BY ii.id
- ) sub
- JOIN (SELECT @cont:=0) sub2
- JOIN vn.payDemDetail pdd ON pdd.id = sub.payDemFk
- GROUP BY detail;
- END IF;
-
+BEGIN
+
+ IF !(SELECT COUNT(*)
+ FROM invoiceInDueDay iid
+ WHERE iid.invoiceInFk = vInvoiceInFk) THEN
+
+ INSERT INTO invoiceInDueDay (invoiceInFk,
+ dueDated,
+ amount,
+ foreignValue)
+ SELECT vInvoiceInFk,
+ IF(payDay,
+ IF(vn.getNextDueDate(issued, detail, payDay) < DATE_ADD(created, INTERVAL 2 DAY),
+ DATE_ADD(created, INTERVAL 2 DAY),
+ vn.getNextDueDate(issued, detail, payDay)),
+ GREATEST(TIMESTAMPADD(DAY, 2, created), TIMESTAMPADD(DAY, detail, issued))),
+ IF((@cont:=@cont + 1) < cont, TRUNCATE(venc / cont, 2),venc-(TRUNCATE(venc / cont, 2) * (cont - 1))),
+ IF(@cont < cont, TRUNCATE(foreignValue / cont, 2), foreignValue - (TRUNCATE(foreignValue / cont, 2) * (cont - 1)))
+ FROM ( SELECT SUM((1 + (IFNULL(ti.PorcentajeIva, 0) / 100)*(s.countryFk = s2.countryFk)) * iit.taxableBase)/COUNT(DISTINCT(pdd.detail)) venc,
+ SUM(iit.foreignValue)/COUNT(DISTINCT(pdd.detail)) foreignValue,
+ s.payDemFk,
+ ii.companyFk,
+ COUNT(DISTINCT(pdd.detail)) cont,
+ s.payDay,
+ ii.issued,
+ DATE(ii.created) created
+ FROM invoiceIn ii
+ JOIN invoiceInTax iit ON iit.invoiceInFk = ii.id
+ LEFT JOIN sage.TiposIva AS ti ON ti.CodigoIva= iit.taxTypeSageFk
+ JOIN supplier s ON s.id = ii.supplierFk
+ JOIN supplier s2 ON s2.id = ii.companyFk
+ JOIN vn.payDemDetail pdd ON pdd.id = s.payDemFk
+ WHERE ii.id = vInvoiceInFk
+ GROUP BY ii.id
+ ) sub
+ JOIN (SELECT @cont:=0) sub2
+ JOIN vn.payDemDetail pdd ON pdd.id = sub.payDemFk
+ GROUP BY detail;
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -63970,225 +63970,225 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `invoiceOut_new`(
- vSerial VARCHAR(255),
- vInvoiceDate DATETIME,
- vTaxArea VARCHAR(25),
+CREATE DEFINER=`root`@`localhost` PROCEDURE `invoiceOut_new`(
+ vSerial VARCHAR(255),
+ vInvoiceDate DATETIME,
+ vTaxArea VARCHAR(25),
OUT vNewInvoiceId INT)
-BEGIN
-
-/* Creación de facturas emitidas.
-* requiere previamente tabla ticketToInvoice(id).
-*
-* @param vSerial serie a la cual se hace la factura
-* @param vInvoiceDate fecha de la factura
-* @param vTaxArea tipo de iva en relacion a la empresa y al cliente
-* @param vNewInvoiceId id de la factura que se acaba de generar
-*
-* @return vNewInvoiceId
-*/
-
- DECLARE vSpainCountryCode INT DEFAULT 1;
- DECLARE vIsAnySaleToInvoice BOOL;
- DECLARE vIsAnyServiceToInvoice BOOL;
- DECLARE vNewRef VARCHAR(255);
- DECLARE vWorker INT DEFAULT account.myUser_getId();
- DECLARE vCompany INT;
- DECLARE vSupplier INT;
- DECLARE vClient INT;
- DECLARE vCplusStandardInvoiceTypeFk INT DEFAULT 1;
- DECLARE vCplusCorrectingInvoiceTypeFk INT DEFAULT 6;
- DECLARE vCplusSimplifiedInvoiceTypeFk INT DEFAULT 2;
- DECLARE vCorrectingSerial VARCHAR(1) DEFAULT 'R';
- DECLARE vSimplifiedSerial VARCHAR(1) DEFAULT 'S';
- DECLARE vNewInvoiceInId INT;
- DECLARE vIsInterCompany BOOL;
-
- SET vInvoiceDate = IFNULL(vInvoiceDate,CURDATE());
-
- SELECT t.clientFk, t.companyFk
- INTO vClient, vCompany
- FROM ticketToInvoice tt
- JOIN ticket t ON t.id = tt.id
- LIMIT 1;
-
- -- Eliminem de ticketToInvoice els tickets que no han de ser facturats
- DELETE ti.*
- FROM ticketToInvoice ti
- JOIN ticket t ON t.id = ti.id
- JOIN client c ON c.id = t.clientFk
- WHERE YEAR(t.shipped) < 2001
- OR c.isTaxDataChecked = FALSE
- OR t.isDeleted
- OR c.hasToInvoice = FALSE;
-
- SELECT SUM(s.quantity * s.price * (100 - s.discount)/100), ts.id
- INTO vIsAnySaleToInvoice, vIsAnyServiceToInvoice
- FROM ticketToInvoice t
- LEFT JOIN sale s ON s.ticketFk = t.id
- LEFT JOIN ticketService ts ON ts.ticketFk = t.id;
-
- IF (vIsAnySaleToInvoice OR vIsAnyServiceToInvoice)
- AND (vCorrectingSerial = vSerial OR NOT hasAnyNegativeBase())
- THEN
-
- -- el trigger añade el siguiente Id_Factura correspondiente a la vSerial
- INSERT INTO invoiceOut
- (
- ref,
- serial,
- issued,
- clientFk,
- dued,
- companyFk,
- cplusInvoiceType477Fk
- )
- SELECT
- 1,
- vSerial,
- vInvoiceDate,
- vClient,
- getDueDate(vInvoiceDate, dueDay),
- vCompany,
- IF(vSerial = vCorrectingSerial,
- vCplusCorrectingInvoiceTypeFk,
- IF(vSerial = vSimplifiedSerial,
- vCplusSimplifiedInvoiceTypeFk,
- vCplusStandardInvoiceTypeFk))
- FROM client
- WHERE id = vClient;
-
-
- SET vNewInvoiceId = LAST_INSERT_ID();
-
- SELECT `ref`
- INTO vNewRef
- FROM invoiceOut
- WHERE id = vNewInvoiceId;
-
- UPDATE ticket t
- JOIN ticketToInvoice ti ON ti.id = t.id
- SET t.refFk = vNewRef;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.updateInter;
- CREATE TEMPORARY TABLE tmp.updateInter ENGINE = MEMORY
- SELECT s.id,ti.id ticket_id,vWorker Id_Trabajador
- FROM ticketToInvoice ti
- LEFT JOIN vn.ticketState ts ON ti.id = ts.ticket
- JOIN state s
- WHERE IFNULL(ts.alertLevel,0) < 3 and s.`code` = vn.getAlert3State(ti.id);
-
- INSERT INTO vncontrol.inter(state_id,Id_Ticket,Id_Trabajador)
- SELECT * FROM tmp.updateInter;
-
-
- INSERT INTO ticketLog (action, userFk,originFk, description)
- SELECT 'UPDATE',account.userGetId(),ti.id, CONCAT('Crea factura ',vNewRef)
- FROM ticketToInvoice ti;
-
- CALL invoiceExpenceMake(vNewInvoiceId);
- CALL invoiceTaxMake(vNewInvoiceId,vTaxArea);
-
- UPDATE invoiceOut io
- JOIN (
- SELECT SUM(amount) AS total
- FROM invoiceOutExpence
- WHERE invoiceOutFk = vNewInvoiceId
- ) base
- JOIN (
- SELECT SUM(vat) AS total
- FROM invoiceOutTax
- WHERE invoiceOutFk = vNewInvoiceId
- ) vat
- SET io.amount = base.total + vat.total
- WHERE io.id = vNewInvoiceId;
-
- DROP TEMPORARY TABLE tmp.updateInter;
-
- SELECT ios.isCEE INTO vIsInterCompany
- FROM vn.ticket t
- JOIN vn.company c ON c.clientFk = t.clientFk
- JOIN vn.invoiceOut io ON io.`ref` = t.refFk
- JOIN vn.invoiceOutSerial ios ON ios.code = io.serial
- WHERE t.refFk = vNewRef;
-
- IF (vIsInterCompany) THEN
-
- SELECT vCompany INTO vSupplier;
- SELECT id INTO vCompany FROM company WHERE clientFk = vClient;
-
- INSERT INTO invoiceIn(supplierFk, supplierRef, issued, companyFk)
- SELECT vSupplier, vNewRef, vInvoiceDate, vCompany;
-
- SET vNewInvoiceInId = LAST_INSERT_ID();
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
- CREATE TEMPORARY TABLE tmp.ticket
- (KEY (ticketFk))
- ENGINE = MEMORY
- SELECT id ticketFk
- FROM ticketToInvoice;
-
- CALL `ticket_getTax`('NATIONAL');
-
- SET @vTaxableBaseServices := 0.00;
- SET @vTaxCodeGeneral := NULL;
-
- INSERT INTO vn.invoiceInTax(invoiceInFk, taxableBase, expenceFk, taxTypeSageFk, transactionTypeSageFk)
- SELECT vNewInvoiceInId, @vTaxableBaseServices, sub.expenceFk, sub.taxTypeSageFk , sub.transactionTypeSageFk
- FROM (
- SELECT @vTaxableBaseServices := SUM(tst.taxableBase) taxableBase, i.expenceFk, i.taxTypeSageFk , i.transactionTypeSageFk, @vTaxCodeGeneral := i.taxClassCodeFk
- FROM tmp.ticketServiceTax tst
- JOIN vn.invoiceOutTaxConfig i ON i.taxClassCodeFk = tst.code
- WHERE i.isService
- HAVING taxableBase
- ) sub;
-
- INSERT INTO vn.invoiceInTax(invoiceInFk, taxableBase, expenceFk, taxTypeSageFk, transactionTypeSageFk)
- SELECT vNewInvoiceInId, SUM(tt.taxableBase) - IF(tt.code = @vTaxCodeGeneral, @vTaxableBaseServices, 0) taxableBase, i.expenceFk, i.taxTypeSageFk , i.transactionTypeSageFk
- FROM tmp.ticketTax tt
- JOIN vn.invoiceOutTaxConfig i ON i.taxClassCodeFk = tt.code
- WHERE !i.isService
- GROUP BY tt.pgcFk
- HAVING taxableBase
- ORDER BY tt.priority;
-
- CALL `vn`.`invoiceInDueDay_calculate`(vNewInvoiceInId);
-
- INSERT INTO vn2008.intrastat_data (recibida_id, intrastat_id, importe, unidades, Paises_Id, neto)
- SELECT
- vNewInvoiceInId,
- i.intrastatFk,
- CAST(SUM((s.quantity * s.price * (100 - s.discount) / 100)) AS DECIMAL(10,2)) importe,
- CAST(SUM(IFNULL(i.stems, 1) * s.quantity) AS DECIMAL (10 , 2 )) stems,
- s2.countryFk,
- CAST(SUM(IF(sv.physicalWeight, sv.physicalWeight, i.density * sub.cm3delivery/1000000)) AS DECIMAL(10,2)) neto
- FROM vn.sale s
- LEFT JOIN (SELECT ic.itemFk, ic.cm3delivery
- FROM vn.itemCost ic
- WHERE ic.cm3
- GROUP BY ic.itemFk) sub ON s.itemFk = sub.itemFk
- LEFT JOIN vn.saleVolume sv ON sv.saleFk = s.id
- LEFT JOIN vn.ticket t ON s.ticketFk = t.id
- LEFT JOIN vn.supplier s2 ON s2.id = t.companyFk
- LEFT JOIN vn.item i ON i.id = s.itemFk
- LEFT JOIN vn.intrastat it ON it.id = i.intrastatFk
- JOIN vn.invoiceOut iOut ON iOut.ref = t.refFk
- WHERE iOut.`ref` = vNewRef
- GROUP BY i.intrastatFk
- ORDER BY i.intrastatFk;
-
-
- DROP TEMPORARY TABLE tmp.ticket;
- DROP TEMPORARY TABLE tmp.ticketAmount;
- DROP TEMPORARY TABLE tmp.ticketTax;
- DROP TEMPORARY TABLE tmp.ticketServiceTax;
-
- END IF;
-
- END IF;
-
- DROP TEMPORARY TABLE `ticketToInvoice`;
+BEGIN
+
+/* Creación de facturas emitidas.
+* requiere previamente tabla ticketToInvoice(id).
+*
+* @param vSerial serie a la cual se hace la factura
+* @param vInvoiceDate fecha de la factura
+* @param vTaxArea tipo de iva en relacion a la empresa y al cliente
+* @param vNewInvoiceId id de la factura que se acaba de generar
+*
+* @return vNewInvoiceId
+*/
+
+ DECLARE vSpainCountryCode INT DEFAULT 1;
+ DECLARE vIsAnySaleToInvoice BOOL;
+ DECLARE vIsAnyServiceToInvoice BOOL;
+ DECLARE vNewRef VARCHAR(255);
+ DECLARE vWorker INT DEFAULT account.myUser_getId();
+ DECLARE vCompany INT;
+ DECLARE vSupplier INT;
+ DECLARE vClient INT;
+ DECLARE vCplusStandardInvoiceTypeFk INT DEFAULT 1;
+ DECLARE vCplusCorrectingInvoiceTypeFk INT DEFAULT 6;
+ DECLARE vCplusSimplifiedInvoiceTypeFk INT DEFAULT 2;
+ DECLARE vCorrectingSerial VARCHAR(1) DEFAULT 'R';
+ DECLARE vSimplifiedSerial VARCHAR(1) DEFAULT 'S';
+ DECLARE vNewInvoiceInId INT;
+ DECLARE vIsInterCompany BOOL;
+
+ SET vInvoiceDate = IFNULL(vInvoiceDate,CURDATE());
+
+ SELECT t.clientFk, t.companyFk
+ INTO vClient, vCompany
+ FROM ticketToInvoice tt
+ JOIN ticket t ON t.id = tt.id
+ LIMIT 1;
+
+ -- Eliminem de ticketToInvoice els tickets que no han de ser facturats
+ DELETE ti.*
+ FROM ticketToInvoice ti
+ JOIN ticket t ON t.id = ti.id
+ JOIN client c ON c.id = t.clientFk
+ WHERE YEAR(t.shipped) < 2001
+ OR c.isTaxDataChecked = FALSE
+ OR t.isDeleted
+ OR c.hasToInvoice = FALSE;
+
+ SELECT SUM(s.quantity * s.price * (100 - s.discount)/100), ts.id
+ INTO vIsAnySaleToInvoice, vIsAnyServiceToInvoice
+ FROM ticketToInvoice t
+ LEFT JOIN sale s ON s.ticketFk = t.id
+ LEFT JOIN ticketService ts ON ts.ticketFk = t.id;
+
+ IF (vIsAnySaleToInvoice OR vIsAnyServiceToInvoice)
+ AND (vCorrectingSerial = vSerial OR NOT hasAnyNegativeBase())
+ THEN
+
+ -- el trigger añade el siguiente Id_Factura correspondiente a la vSerial
+ INSERT INTO invoiceOut
+ (
+ ref,
+ serial,
+ issued,
+ clientFk,
+ dued,
+ companyFk,
+ cplusInvoiceType477Fk
+ )
+ SELECT
+ 1,
+ vSerial,
+ vInvoiceDate,
+ vClient,
+ getDueDate(vInvoiceDate, dueDay),
+ vCompany,
+ IF(vSerial = vCorrectingSerial,
+ vCplusCorrectingInvoiceTypeFk,
+ IF(vSerial = vSimplifiedSerial,
+ vCplusSimplifiedInvoiceTypeFk,
+ vCplusStandardInvoiceTypeFk))
+ FROM client
+ WHERE id = vClient;
+
+
+ SET vNewInvoiceId = LAST_INSERT_ID();
+
+ SELECT `ref`
+ INTO vNewRef
+ FROM invoiceOut
+ WHERE id = vNewInvoiceId;
+
+ UPDATE ticket t
+ JOIN ticketToInvoice ti ON ti.id = t.id
+ SET t.refFk = vNewRef;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.updateInter;
+ CREATE TEMPORARY TABLE tmp.updateInter ENGINE = MEMORY
+ SELECT s.id,ti.id ticket_id,vWorker Id_Trabajador
+ FROM ticketToInvoice ti
+ LEFT JOIN vn.ticketState ts ON ti.id = ts.ticket
+ JOIN state s
+ WHERE IFNULL(ts.alertLevel,0) < 3 and s.`code` = vn.getAlert3State(ti.id);
+
+ INSERT INTO vncontrol.inter(state_id,Id_Ticket,Id_Trabajador)
+ SELECT * FROM tmp.updateInter;
+
+
+ INSERT INTO ticketLog (action, userFk,originFk, description)
+ SELECT 'UPDATE',account.userGetId(),ti.id, CONCAT('Crea factura ',vNewRef)
+ FROM ticketToInvoice ti;
+
+ CALL invoiceExpenceMake(vNewInvoiceId);
+ CALL invoiceTaxMake(vNewInvoiceId,vTaxArea);
+
+ UPDATE invoiceOut io
+ JOIN (
+ SELECT SUM(amount) AS total
+ FROM invoiceOutExpence
+ WHERE invoiceOutFk = vNewInvoiceId
+ ) base
+ JOIN (
+ SELECT SUM(vat) AS total
+ FROM invoiceOutTax
+ WHERE invoiceOutFk = vNewInvoiceId
+ ) vat
+ SET io.amount = base.total + vat.total
+ WHERE io.id = vNewInvoiceId;
+
+ DROP TEMPORARY TABLE tmp.updateInter;
+
+ SELECT ios.isCEE INTO vIsInterCompany
+ FROM vn.ticket t
+ JOIN vn.company c ON c.clientFk = t.clientFk
+ JOIN vn.invoiceOut io ON io.`ref` = t.refFk
+ JOIN vn.invoiceOutSerial ios ON ios.code = io.serial
+ WHERE t.refFk = vNewRef;
+
+ IF (vIsInterCompany) THEN
+
+ SELECT vCompany INTO vSupplier;
+ SELECT id INTO vCompany FROM company WHERE clientFk = vClient;
+
+ INSERT INTO invoiceIn(supplierFk, supplierRef, issued, companyFk)
+ SELECT vSupplier, vNewRef, vInvoiceDate, vCompany;
+
+ SET vNewInvoiceInId = LAST_INSERT_ID();
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
+ CREATE TEMPORARY TABLE tmp.ticket
+ (KEY (ticketFk))
+ ENGINE = MEMORY
+ SELECT id ticketFk
+ FROM ticketToInvoice;
+
+ CALL `ticket_getTax`('NATIONAL');
+
+ SET @vTaxableBaseServices := 0.00;
+ SET @vTaxCodeGeneral := NULL;
+
+ INSERT INTO vn.invoiceInTax(invoiceInFk, taxableBase, expenceFk, taxTypeSageFk, transactionTypeSageFk)
+ SELECT vNewInvoiceInId, @vTaxableBaseServices, sub.expenceFk, sub.taxTypeSageFk , sub.transactionTypeSageFk
+ FROM (
+ SELECT @vTaxableBaseServices := SUM(tst.taxableBase) taxableBase, i.expenceFk, i.taxTypeSageFk , i.transactionTypeSageFk, @vTaxCodeGeneral := i.taxClassCodeFk
+ FROM tmp.ticketServiceTax tst
+ JOIN vn.invoiceOutTaxConfig i ON i.taxClassCodeFk = tst.code
+ WHERE i.isService
+ HAVING taxableBase
+ ) sub;
+
+ INSERT INTO vn.invoiceInTax(invoiceInFk, taxableBase, expenceFk, taxTypeSageFk, transactionTypeSageFk)
+ SELECT vNewInvoiceInId, SUM(tt.taxableBase) - IF(tt.code = @vTaxCodeGeneral, @vTaxableBaseServices, 0) taxableBase, i.expenceFk, i.taxTypeSageFk , i.transactionTypeSageFk
+ FROM tmp.ticketTax tt
+ JOIN vn.invoiceOutTaxConfig i ON i.taxClassCodeFk = tt.code
+ WHERE !i.isService
+ GROUP BY tt.pgcFk
+ HAVING taxableBase
+ ORDER BY tt.priority;
+
+ CALL `vn`.`invoiceInDueDay_calculate`(vNewInvoiceInId);
+
+ INSERT INTO vn2008.intrastat_data (recibida_id, intrastat_id, importe, unidades, Paises_Id, neto)
+ SELECT
+ vNewInvoiceInId,
+ i.intrastatFk,
+ CAST(SUM((s.quantity * s.price * (100 - s.discount) / 100)) AS DECIMAL(10,2)) importe,
+ CAST(SUM(IFNULL(i.stems, 1) * s.quantity) AS DECIMAL (10 , 2 )) stems,
+ s2.countryFk,
+ CAST(SUM(IF(sv.physicalWeight, sv.physicalWeight, i.density * sub.cm3delivery/1000000)) AS DECIMAL(10,2)) neto
+ FROM vn.sale s
+ LEFT JOIN (SELECT ic.itemFk, ic.cm3delivery
+ FROM vn.itemCost ic
+ WHERE ic.cm3
+ GROUP BY ic.itemFk) sub ON s.itemFk = sub.itemFk
+ LEFT JOIN vn.saleVolume sv ON sv.saleFk = s.id
+ LEFT JOIN vn.ticket t ON s.ticketFk = t.id
+ LEFT JOIN vn.supplier s2 ON s2.id = t.companyFk
+ LEFT JOIN vn.item i ON i.id = s.itemFk
+ LEFT JOIN vn.intrastat it ON it.id = i.intrastatFk
+ JOIN vn.invoiceOut iOut ON iOut.ref = t.refFk
+ WHERE iOut.`ref` = vNewRef
+ GROUP BY i.intrastatFk
+ ORDER BY i.intrastatFk;
+
+
+ DROP TEMPORARY TABLE tmp.ticket;
+ DROP TEMPORARY TABLE tmp.ticketAmount;
+ DROP TEMPORARY TABLE tmp.ticketTax;
+ DROP TEMPORARY TABLE tmp.ticketServiceTax;
+
+ END IF;
+
+ END IF;
+
+ DROP TEMPORARY TABLE `ticketToInvoice`;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -64596,84 +64596,84 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `itemCard`(IN `vBarcode` VARCHAR(22), IN `vWarehouseFk` INT, IN isBarcode BOOL)
-BEGIN
-
- /*
- * @deprecated: Utilizar item_getInfo
- */
-
- DECLARE vCacheVisibleFk INT;
- DECLARE vCacheAvailableFk INT;
- DECLARE vVisibleAltillo INT;
- DECLARE vItemFk INT;
-
- IF isBarcode THEN
- SELECT vn.barcodeToItem(vBarcode) INTO vItemFk;
- ELSE
- SELECT i.id INTO vItemFk
- FROM vn.item i
- WHERE i.name LIKE CONCAT('%',vBarcode,'%')
- ORDER BY i.id ASC
- LIMIT 1;
- END IF;
-
- IF vItemFk IS NULL THEN
- SELECT vn.barcodeToItem(vBarcode) INTO vItemFk;
- END IF;
-
- CALL cache.visible_refresh(vCacheVisibleFk, FALSE,vWarehouseFk);
- CALL cache.available_refresh(vCacheAvailableFk, FALSE,vWarehouseFk, CURDATE());
-
- SELECT SUM(visible) INTO vVisibleAltillo
- FROM vn.itemShelvingStock
- WHERE itemFk = vItemFk AND warehouseFk = vWarehouseFk;
-
- CALL vn.buyUltimate(vWarehouseFk, CURDATE());
-
- SELECT i.id,
- i.longName,
- i.tag5,
- i.value5,
- i.tag6,
- i.value6,
- i.tag7,
- i.value7,
- i.image,
- i.size,
- i.stems,
- i.category,
- i.minimum as min,
- i.upToDown as repo,
- p.name as producer,
- o.code as origin,
- ip.code as nicho,
- ip.reserve as reserva,
- v.visible - IFNULL(vVisibleAltillo,0) as enNicho,
- a.available,
- vVisibleAltillo as enAltillo,
- v.visible as total,
- c.`grouping` as `grouping`,
- c.Packing as packing,
- CONCAT('https://verdnatura.es/vn-image-data/catalog/200x200/', i.image) as urlImage200,
- CONCAT('https://verdnatura.es/vn-image-data/catalog/1600x900/', i.image) as urlImage,
- i.itemPackingTypeFk,
- i.comment as referencia
- FROM vn.item i
- LEFT JOIN vn.producer p ON p.id = i.producerFk
- LEFT JOIN vn.origin o ON o.id = i.originFk
- LEFT JOIN vn.itemPlacement ip ON ip.itemFk = i.id
- LEFT JOIN cache.visible v ON v.calc_id = vCacheVisibleFk AND v.item_id = i.id
- LEFT JOIN cache.available a ON a.calc_id = vCacheAvailableFk AND a.item_id = i.id
- LEFT JOIN (
- SELECT b.itemFk, b2.`grouping`, b2.packing
- FROM tmp.buyUltimate b
- JOIN vn.buy b2 ON b2.id = b.buyFk
- WHERE b.warehouseFk = vWarehouseFk
- ) c ON i.id = c.itemFk
- WHERE i.id = vItemFk;
-
- DROP TEMPORARY TABLE tmp.buyUltimate;
-
+BEGIN
+
+ /*
+ * @deprecated: Utilizar item_getInfo
+ */
+
+ DECLARE vCacheVisibleFk INT;
+ DECLARE vCacheAvailableFk INT;
+ DECLARE vVisibleAltillo INT;
+ DECLARE vItemFk INT;
+
+ IF isBarcode THEN
+ SELECT vn.barcodeToItem(vBarcode) INTO vItemFk;
+ ELSE
+ SELECT i.id INTO vItemFk
+ FROM vn.item i
+ WHERE i.name LIKE CONCAT('%',vBarcode,'%')
+ ORDER BY i.id ASC
+ LIMIT 1;
+ END IF;
+
+ IF vItemFk IS NULL THEN
+ SELECT vn.barcodeToItem(vBarcode) INTO vItemFk;
+ END IF;
+
+ CALL cache.visible_refresh(vCacheVisibleFk, FALSE,vWarehouseFk);
+ CALL cache.available_refresh(vCacheAvailableFk, FALSE,vWarehouseFk, CURDATE());
+
+ SELECT SUM(visible) INTO vVisibleAltillo
+ FROM vn.itemShelvingStock
+ WHERE itemFk = vItemFk AND warehouseFk = vWarehouseFk;
+
+ CALL vn.buyUltimate(vWarehouseFk, CURDATE());
+
+ SELECT i.id,
+ i.longName,
+ i.tag5,
+ i.value5,
+ i.tag6,
+ i.value6,
+ i.tag7,
+ i.value7,
+ i.image,
+ i.size,
+ i.stems,
+ i.category,
+ i.minimum as min,
+ i.upToDown as repo,
+ p.name as producer,
+ o.code as origin,
+ ip.code as nicho,
+ ip.reserve as reserva,
+ v.visible - IFNULL(vVisibleAltillo,0) as enNicho,
+ a.available,
+ vVisibleAltillo as enAltillo,
+ v.visible as total,
+ c.`grouping` as `grouping`,
+ c.Packing as packing,
+ CONCAT('https://verdnatura.es/vn-image-data/catalog/200x200/', i.image) as urlImage200,
+ CONCAT('https://verdnatura.es/vn-image-data/catalog/1600x900/', i.image) as urlImage,
+ i.itemPackingTypeFk,
+ i.comment as referencia
+ FROM vn.item i
+ LEFT JOIN vn.producer p ON p.id = i.producerFk
+ LEFT JOIN vn.origin o ON o.id = i.originFk
+ LEFT JOIN vn.itemPlacement ip ON ip.itemFk = i.id
+ LEFT JOIN cache.visible v ON v.calc_id = vCacheVisibleFk AND v.item_id = i.id
+ LEFT JOIN cache.available a ON a.calc_id = vCacheAvailableFk AND a.item_id = i.id
+ LEFT JOIN (
+ SELECT b.itemFk, b2.`grouping`, b2.packing
+ FROM tmp.buyUltimate b
+ JOIN vn.buy b2 ON b2.id = b.buyFk
+ WHERE b.warehouseFk = vWarehouseFk
+ ) c ON i.id = c.itemFk
+ WHERE i.id = vItemFk;
+
+ DROP TEMPORARY TABLE tmp.buyUltimate;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -64781,119 +64781,119 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `itemDiary__`(IN vItemId INT, IN vWarehouse INT)
-BEGIN
- DECLARE vDateInventory DATETIME;
- DECLARE vCurdate DATE DEFAULT CURDATE();
- DECLARE vDayEnd DATETIME DEFAULT util.dayEnd(vCurdate);
-
- SELECT vn.barcodeToItem(vItemId) INTO vItemId;
-
- -- traduccion: date, alertLevel, origin, reference, name, In, Out, Balance
- SELECT inventoried INTO vDateInventory FROM config;
- SET @a = 0;
- SELECT DATE(date) AS date,
- alertLevel,
- stateName,
- origin,
- reference,
- clientFk,
- name,
- `in`,
- `out`,
- @a := @a + IFNULL(`in`,0) - IFNULL(`out`,0) as balance,
- isPicked,
- isTicket,
- `in` as invalue
- FROM
- ( SELECT tr.landed as date,
- b.quantity as `in`,
- NULL as `out`,
- IF(tr.isReceived != FALSE,3, IF(tr.isDelivered,1,0)) as alertLevel,
- st.name AS stateName,
- s.name as name,
- e.ref as reference,
- e.id as origin,
- s.id as clientFk,
- TRUE isPicked,
- FALSE AS isTicket
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel tr ON tr.id = e.travelFk
- JOIN supplier s ON s.id = e.supplierFk
- JOIN alertLevel al ON al.id =
- CASE
- WHEN tr.isReceived != FALSE THEN 3
- WHEN tr.isDelivered THEN 1
- ELSE 0
- END
- JOIN state st ON st.code = al.code
- WHERE tr.landed >= vDateInventory
- AND vWarehouse = tr.warehouseInFk
- AND b.itemFk = vItemId
- AND e.isInventory = 0
- AND e.isRaid = 0
- UNION ALL
-
- SELECT tr.shipped as date,
- NULL as `in`,
- b.quantity as `out`,
- IF(tr.isReceived != FALSE,3, IF(tr.isDelivered,1,0)) as alertLevel,
- st.name AS stateName,
- s.name as name,
- e.ref as reference,
- e.id as origin,
- s.id as clientFk,
- TRUE isPicked,
- FALSE AS isTicket
- FROM buy b
- JOIN entry e ON e.id = b.entryFk
- JOIN travel tr ON tr.id = e.travelFk
- JOIN warehouse w ON w.id = tr.warehouseOutFk
- JOIN supplier s ON s.id = e.supplierFk
- JOIN alertLevel al ON al.id =
- CASE
- WHEN tr.isReceived != FALSE THEN 3
- WHEN tr.isDelivered THEN 1
- ELSE 0
- END
- JOIN state st ON st.code = al.code
- WHERE tr.shipped >= vDateInventory
- AND vWarehouse =tr.warehouseOutFk
- AND s.id <> 4
- AND b.itemFk = vItemId
- AND e.isInventory = 0
- AND w.isFeedStock = 0
- AND e.isRaid = 0
- UNION ALL
-
- SELECT t.shipped as date,
- NULL as `in`,
- s.quantity as `out`,
- al.id as alertLevel,
- st.name AS stateName,
- t.nickname as name,
- t.refFk as reference,
- t.id as origin,
- t.clientFk,
- stk.id as isPicked, -- TRUE as isPicked
- TRUE as isTicket
- FROM sale s
- JOIN ticket t ON t.id = s.ticketFk
- LEFT JOIN ticketState ts ON ts.ticket = t.id
- LEFT JOIN state st ON st.code = ts.code
- JOIN client c ON c.id = t.clientFk
- JOIN alertLevel al ON al.id =
- CASE
- WHEN t.shipped < vCurdate THEN 3
- WHEN t.shipped > vDayEnd THEN 0
- ELSE IFNULL(ts.alertLevel, 0)
- END
- LEFT JOIN saleTracking stk ON stk.saleFk = s.id AND stk.stateFk = 14 -- comentar
- WHERE t.shipped >= vDateInventory
- AND s.itemFk = vItemId
- AND vWarehouse =t.warehouseFk
- ) AS itemDiary
- ORDER BY date, isTicket, alertLevel DESC, isPicked DESC, `in` DESC, `out` DESC;
+BEGIN
+ DECLARE vDateInventory DATETIME;
+ DECLARE vCurdate DATE DEFAULT CURDATE();
+ DECLARE vDayEnd DATETIME DEFAULT util.dayEnd(vCurdate);
+
+ SELECT vn.barcodeToItem(vItemId) INTO vItemId;
+
+ -- traduccion: date, alertLevel, origin, reference, name, In, Out, Balance
+ SELECT inventoried INTO vDateInventory FROM config;
+ SET @a = 0;
+ SELECT DATE(date) AS date,
+ alertLevel,
+ stateName,
+ origin,
+ reference,
+ clientFk,
+ name,
+ `in`,
+ `out`,
+ @a := @a + IFNULL(`in`,0) - IFNULL(`out`,0) as balance,
+ isPicked,
+ isTicket,
+ `in` as invalue
+ FROM
+ ( SELECT tr.landed as date,
+ b.quantity as `in`,
+ NULL as `out`,
+ IF(tr.isReceived != FALSE,3, IF(tr.isDelivered,1,0)) as alertLevel,
+ st.name AS stateName,
+ s.name as name,
+ e.ref as reference,
+ e.id as origin,
+ s.id as clientFk,
+ TRUE isPicked,
+ FALSE AS isTicket
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel tr ON tr.id = e.travelFk
+ JOIN supplier s ON s.id = e.supplierFk
+ JOIN alertLevel al ON al.id =
+ CASE
+ WHEN tr.isReceived != FALSE THEN 3
+ WHEN tr.isDelivered THEN 1
+ ELSE 0
+ END
+ JOIN state st ON st.code = al.code
+ WHERE tr.landed >= vDateInventory
+ AND vWarehouse = tr.warehouseInFk
+ AND b.itemFk = vItemId
+ AND e.isInventory = 0
+ AND e.isRaid = 0
+ UNION ALL
+
+ SELECT tr.shipped as date,
+ NULL as `in`,
+ b.quantity as `out`,
+ IF(tr.isReceived != FALSE,3, IF(tr.isDelivered,1,0)) as alertLevel,
+ st.name AS stateName,
+ s.name as name,
+ e.ref as reference,
+ e.id as origin,
+ s.id as clientFk,
+ TRUE isPicked,
+ FALSE AS isTicket
+ FROM buy b
+ JOIN entry e ON e.id = b.entryFk
+ JOIN travel tr ON tr.id = e.travelFk
+ JOIN warehouse w ON w.id = tr.warehouseOutFk
+ JOIN supplier s ON s.id = e.supplierFk
+ JOIN alertLevel al ON al.id =
+ CASE
+ WHEN tr.isReceived != FALSE THEN 3
+ WHEN tr.isDelivered THEN 1
+ ELSE 0
+ END
+ JOIN state st ON st.code = al.code
+ WHERE tr.shipped >= vDateInventory
+ AND vWarehouse =tr.warehouseOutFk
+ AND s.id <> 4
+ AND b.itemFk = vItemId
+ AND e.isInventory = 0
+ AND w.isFeedStock = 0
+ AND e.isRaid = 0
+ UNION ALL
+
+ SELECT t.shipped as date,
+ NULL as `in`,
+ s.quantity as `out`,
+ al.id as alertLevel,
+ st.name AS stateName,
+ t.nickname as name,
+ t.refFk as reference,
+ t.id as origin,
+ t.clientFk,
+ stk.id as isPicked, -- TRUE as isPicked
+ TRUE as isTicket
+ FROM sale s
+ JOIN ticket t ON t.id = s.ticketFk
+ LEFT JOIN ticketState ts ON ts.ticket = t.id
+ LEFT JOIN state st ON st.code = ts.code
+ JOIN client c ON c.id = t.clientFk
+ JOIN alertLevel al ON al.id =
+ CASE
+ WHEN t.shipped < vCurdate THEN 3
+ WHEN t.shipped > vDayEnd THEN 0
+ ELSE IFNULL(ts.alertLevel, 0)
+ END
+ LEFT JOIN saleTracking stk ON stk.saleFk = s.id AND stk.stateFk = 14 -- comentar
+ WHERE t.shipped >= vDateInventory
+ AND s.itemFk = vItemId
+ AND vWarehouse =t.warehouseFk
+ ) AS itemDiary
+ ORDER BY date, isTicket, alertLevel DESC, isPicked DESC, `in` DESC, `out` DESC;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -66882,31 +66882,31 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `itemShelvingSaleSupplyAdd`(vItemShelvingFk INT, saleFk INT, vQuantity INT)
-BEGIN
-/**
- * Añade línea a itemShelvingSale y regulariza el carro
- *
- * @param vItemShelvingFk Id itemShelving
- * @param saleFk Id de sale
- * @param vQuantity cantidad a regularizar
- */
- INSERT INTO itemShelvingSale(itemShelvingFk,
- saleFk,
- quantity,
- userFk)
- VALUES (vItemShelvingFk,
- saleFk,
- vQuantity,
- getUser());
-
- UPDATE itemShelving
- SET visible = visible - vQuantity
- WHERE id = vItemShelvingFk;
-
- UPDATE vn2008.Movimientos_mark
- SET valor = 1
- WHERE Id_Movimiento = saleFk;
-
+BEGIN
+/**
+ * Añade línea a itemShelvingSale y regulariza el carro
+ *
+ * @param vItemShelvingFk Id itemShelving
+ * @param saleFk Id de sale
+ * @param vQuantity cantidad a regularizar
+ */
+ INSERT INTO itemShelvingSale(itemShelvingFk,
+ saleFk,
+ quantity,
+ userFk)
+ VALUES (vItemShelvingFk,
+ saleFk,
+ vQuantity,
+ getUser());
+
+ UPDATE itemShelving
+ SET visible = visible - vQuantity
+ WHERE id = vItemShelvingFk;
+
+ UPDATE vn2008.Movimientos_mark
+ SET valor = 1
+ WHERE Id_Movimiento = saleFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -67415,46 +67415,46 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `itemShelving_inventory`(vParkingFromFk INT, vParkingToFk INT)
-BEGIN
-
- /**
- * Devuelve un listado de ubicaciones a revisar
- *
- * @param vParkingFromFk Parking de partida, identificador de vn.parking
- * @param vParkingToFk Parking de llegada, identificador de vn.parking
- */
-
- DECLARE vSectorFk INT;
- DECLARE vPickingOrderFrom INT;
- DECLARE vPickingOrderTo INT;
-
- SELECT p.sectorFk, p.pickingOrder INTO vSectorFk, vPickingOrderFrom
- FROM vn.parking p
- WHERE p.id = vParkingFromFk;
-
- SELECT p.pickingOrder INTO vPickingOrderTo
- FROM vn.parking p
- WHERE p.id = vParkingToFk;
-
- CALL vn.visible_getMisfit(vSectorFk);
-
- SELECT p.code parking ,
- ish.shelvingFk ,
- ish.itemFk,
- i.longName,
- ish.visible ,
- ish.visible / ish.packing packs,
- ish.packing,
- sm.visible - sm.parked faltan
- FROM vn.itemShelving ish
- JOIN vn.item i ON i.id = ish.itemFk
- JOIN tmp.stockMisfit sm ON sm.itemFk = ish.itemFk
- JOIN vn.shelving sh ON sh.code = ish.shelvingFk
- JOIN vn.parking p ON p.id = sh.parkingFk
- WHERE p.pickingOrder BETWEEN vPickingOrderFrom AND vPickingOrderTo
- AND p.sectorFk = vSectorFk
- ORDER BY p.pickingOrder ;
-
+BEGIN
+
+ /**
+ * Devuelve un listado de ubicaciones a revisar
+ *
+ * @param vParkingFromFk Parking de partida, identificador de vn.parking
+ * @param vParkingToFk Parking de llegada, identificador de vn.parking
+ */
+
+ DECLARE vSectorFk INT;
+ DECLARE vPickingOrderFrom INT;
+ DECLARE vPickingOrderTo INT;
+
+ SELECT p.sectorFk, p.pickingOrder INTO vSectorFk, vPickingOrderFrom
+ FROM vn.parking p
+ WHERE p.id = vParkingFromFk;
+
+ SELECT p.pickingOrder INTO vPickingOrderTo
+ FROM vn.parking p
+ WHERE p.id = vParkingToFk;
+
+ CALL vn.visible_getMisfit(vSectorFk);
+
+ SELECT p.code parking ,
+ ish.shelvingFk ,
+ ish.itemFk,
+ i.longName,
+ ish.visible ,
+ ish.visible / ish.packing packs,
+ ish.packing,
+ sm.visible - sm.parked faltan
+ FROM vn.itemShelving ish
+ JOIN vn.item i ON i.id = ish.itemFk
+ JOIN tmp.stockMisfit sm ON sm.itemFk = ish.itemFk
+ JOIN vn.shelving sh ON sh.code = ish.shelvingFk
+ JOIN vn.parking p ON p.id = sh.parkingFk
+ WHERE p.pickingOrder BETWEEN vPickingOrderFrom AND vPickingOrderTo
+ AND p.sectorFk = vSectorFk
+ ORDER BY p.pickingOrder ;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -67595,74 +67595,74 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `itemStockUpdate__`(
- vItemFk INT,
- vWarehouseFk INT,
- vNewVisible INT,
+CREATE DEFINER=`root`@`localhost` PROCEDURE `itemStockUpdate__`(
+ vItemFk INT,
+ vWarehouseFk INT,
+ vNewVisible INT,
vIsTrash BOOLEAN)
-BEGIN
-
- DECLARE vTicketFk INT;
- DECLARE vClientFk INT;
- DECLARE vCompanyVnlFk INT DEFAULT 442;
- DECLARE vVisible INT DEFAULT 0;
- DECLARE vCalc INT;
- DECLARE vParkedStuff INT;
-
- SELECT barcodeToItem(vItemFk) INTO vItemFk;
-
- CALL cache.visible_refresh(vCalc, TRUE, vWarehouseFk);
-
- SELECT IFNULL(visible,0) INTO vVisible
- FROM cache.visible
- WHERE calc_id = vCalc
- AND item_id = vItemFk;
-
- SELECT sum(visible) INTO vParkedStuff
- FROM itemShelvingStock
- WHERE warehouseFk = vWarehouseFk
- AND itemFk = vItemFk;
-
- SET vNewVisible = vNewVisible + IFNULL(vParkedStuff,0);
-
- SELECT IF(vIsTrash, 200, 400) INTO vClientFk;
-
- SELECT t.id INTO vTicketFk
- FROM ticket t
- JOIN address a ON a.id=t.addressFk
- WHERE t.warehouseFk = vWarehouseFk
- AND t.clientFk = vClientFk
- AND DATE(t.shipped) = CURDATE()
- AND a.isDefaultAddress
- LIMIT 1;
-
- IF vTicketFk IS NULL THEN
-
- CALL ticket_add(
- vClientFk,
- CURDATE(),
- vWarehouseFk,
- vCompanyVnlFk,
- NULL,
- NULL,
- NULL,
- CURDATE(),
- account.userGetId(),
- FALSE,
- vTicketFk);
-
- END IF;
-
- INSERT INTO sale(ticketFk, itemFk, concept, quantity, price, discount)
- SELECT vTicketFk, vItemFk, CONCAT(longName,' ', getWorkerCode(), ' ',LEFT(CAST(NOW() AS TIME),5)), vVisible - vNewVisible, 0, 0
- FROM item
- WHERE id = vItemFk;
-
- UPDATE cache.visible
- SET visible = vNewVisible
- WHERE calc_id = vCalc
- AND item_id = vItemFk;
-
+BEGIN
+
+ DECLARE vTicketFk INT;
+ DECLARE vClientFk INT;
+ DECLARE vCompanyVnlFk INT DEFAULT 442;
+ DECLARE vVisible INT DEFAULT 0;
+ DECLARE vCalc INT;
+ DECLARE vParkedStuff INT;
+
+ SELECT barcodeToItem(vItemFk) INTO vItemFk;
+
+ CALL cache.visible_refresh(vCalc, TRUE, vWarehouseFk);
+
+ SELECT IFNULL(visible,0) INTO vVisible
+ FROM cache.visible
+ WHERE calc_id = vCalc
+ AND item_id = vItemFk;
+
+ SELECT sum(visible) INTO vParkedStuff
+ FROM itemShelvingStock
+ WHERE warehouseFk = vWarehouseFk
+ AND itemFk = vItemFk;
+
+ SET vNewVisible = vNewVisible + IFNULL(vParkedStuff,0);
+
+ SELECT IF(vIsTrash, 200, 400) INTO vClientFk;
+
+ SELECT t.id INTO vTicketFk
+ FROM ticket t
+ JOIN address a ON a.id=t.addressFk
+ WHERE t.warehouseFk = vWarehouseFk
+ AND t.clientFk = vClientFk
+ AND DATE(t.shipped) = CURDATE()
+ AND a.isDefaultAddress
+ LIMIT 1;
+
+ IF vTicketFk IS NULL THEN
+
+ CALL ticket_add(
+ vClientFk,
+ CURDATE(),
+ vWarehouseFk,
+ vCompanyVnlFk,
+ NULL,
+ NULL,
+ NULL,
+ CURDATE(),
+ account.userGetId(),
+ FALSE,
+ vTicketFk);
+
+ END IF;
+
+ INSERT INTO sale(ticketFk, itemFk, concept, quantity, price, discount)
+ SELECT vTicketFk, vItemFk, CONCAT(longName,' ', getWorkerCode(), ' ',LEFT(CAST(NOW() AS TIME),5)), vVisible - vNewVisible, 0, 0
+ FROM item
+ WHERE id = vItemFk;
+
+ UPDATE cache.visible
+ SET visible = vNewVisible
+ WHERE calc_id = vCalc
+ AND item_id = vItemFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -67965,37 +67965,37 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `itemTag_replace`(vItemFromFk INT, vItemToFk INT, vPicture VARCHAR(100))
-BEGIN
-
- /* Reemplaza los tags de un artículo por los de otro, así como su imagen
- *
- * @param vItemFromFk id de vn.item con el artículo del que se toman los tags
- * @param vItemToFk id de vn.item con el artículo del que se toman los tags
- * @param vPicture imagen del artículo. Opcional. Si no se especifica, hereada la del vItemFromFk
- */
-
- DELETE FROM vn.itemTag
- WHERE itemFk = vItemToFk;
-
- INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
- SELECT vItemToFk, tagFk, value, priority
- FROM vn.itemTag
- WHERE itemFk = vItemFromFk;
-
- IF ISNULL(vPicture) THEN
-
- SELECT image INTO vPicture
- FROM vn.item
- WHERE id = vItemFromFk;
-
- END IF;
-
- UPDATE vn.item i
- SET i.image = vPicture
- WHERE i.id = vItemToFk;
-
- CALL vn.itemRefreshTags(vItemToFk);
-
+BEGIN
+
+ /* Reemplaza los tags de un artículo por los de otro, así como su imagen
+ *
+ * @param vItemFromFk id de vn.item con el artículo del que se toman los tags
+ * @param vItemToFk id de vn.item con el artículo del que se toman los tags
+ * @param vPicture imagen del artículo. Opcional. Si no se especifica, hereada la del vItemFromFk
+ */
+
+ DELETE FROM vn.itemTag
+ WHERE itemFk = vItemToFk;
+
+ INSERT INTO vn.itemTag(itemFk, tagFk, value, priority)
+ SELECT vItemToFk, tagFk, value, priority
+ FROM vn.itemTag
+ WHERE itemFk = vItemFromFk;
+
+ IF ISNULL(vPicture) THEN
+
+ SELECT image INTO vPicture
+ FROM vn.item
+ WHERE id = vItemFromFk;
+
+ END IF;
+
+ UPDATE vn.item i
+ SET i.image = vPicture
+ WHERE i.id = vItemToFk;
+
+ CALL vn.itemRefreshTags(vItemToFk);
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -68088,62 +68088,62 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `itemTrash`(
- vItemFk INT,
- vWarehouseFk INT,
- vQuantity INT,
+CREATE DEFINER=`root`@`localhost` PROCEDURE `itemTrash`(
+ vItemFk INT,
+ vWarehouseFk INT,
+ vQuantity INT,
vIsTrash BOOLEAN)
-BEGIN
-
- DECLARE vTicketFk INT;
- DECLARE vClientFk INT;
- DECLARE vCompanyVnlFk INT DEFAULT 442;
- DECLARE vCalc INT;
-
- SELECT barcodeToItem(vItemFk) INTO vItemFk;
-
- SELECT IF(vIsTrash, 200, 400) INTO vClientFk;
-
- SELECT t.id INTO vTicketFk
- FROM ticket t
- JOIN address a ON a.id=t.addressFk
- WHERE t.warehouseFk = vWarehouseFk
- AND t.clientFk = vClientFk
- AND DATE(t.shipped) = CURDATE()
- AND a.isDefaultAddress
- LIMIT 1;
-
- CALL cache.visible_refresh(vCalc, TRUE, vWarehouseFk);
-
- IF vTicketFk IS NULL THEN
-
- CALL ticket_add(
- vClientFk,
- CURDATE(),
- vWarehouseFk,
- vCompanyVnlFk,
- NULL,
- NULL,
- NULL,
- CURDATE(),
- account.userGetId(),
- FALSE,
- vTicketFk);
- END IF;
-
- INSERT INTO sale(ticketFk, itemFk, concept, quantity)
- SELECT vTicketFk,
- vItemFk,
- CONCAT(longName,' ',getWorkerCode(), ' ', LEFT(CAST(NOW() AS TIME),5)),
- vQuantity
- FROM item
- WHERE id = vItemFk;
-
- UPDATE cache.visible
- SET visible = visible - vQuantity
- WHERE calc_id = vCalc
- AND item_id = vItemFk;
-
+BEGIN
+
+ DECLARE vTicketFk INT;
+ DECLARE vClientFk INT;
+ DECLARE vCompanyVnlFk INT DEFAULT 442;
+ DECLARE vCalc INT;
+
+ SELECT barcodeToItem(vItemFk) INTO vItemFk;
+
+ SELECT IF(vIsTrash, 200, 400) INTO vClientFk;
+
+ SELECT t.id INTO vTicketFk
+ FROM ticket t
+ JOIN address a ON a.id=t.addressFk
+ WHERE t.warehouseFk = vWarehouseFk
+ AND t.clientFk = vClientFk
+ AND DATE(t.shipped) = CURDATE()
+ AND a.isDefaultAddress
+ LIMIT 1;
+
+ CALL cache.visible_refresh(vCalc, TRUE, vWarehouseFk);
+
+ IF vTicketFk IS NULL THEN
+
+ CALL ticket_add(
+ vClientFk,
+ CURDATE(),
+ vWarehouseFk,
+ vCompanyVnlFk,
+ NULL,
+ NULL,
+ NULL,
+ CURDATE(),
+ account.userGetId(),
+ FALSE,
+ vTicketFk);
+ END IF;
+
+ INSERT INTO sale(ticketFk, itemFk, concept, quantity)
+ SELECT vTicketFk,
+ vItemFk,
+ CONCAT(longName,' ',getWorkerCode(), ' ', LEFT(CAST(NOW() AS TIME),5)),
+ vQuantity
+ FROM item
+ WHERE id = vItemFk;
+
+ UPDATE cache.visible
+ SET visible = visible - vQuantity
+ WHERE calc_id = vCalc
+ AND item_id = vItemFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -68215,126 +68215,126 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_clean`(vItemFrom INT, vItemTo INT)
-BEGIN
-
-/*
- * Elimina todos los items repetidos y los sustituye por el que tiene menor id
- */
-
- START TRANSACTION;
-
- SET @isModeInventory:= TRUE;
-
- -- Deletes
-
- UPDATE IGNORE vn.itemCost ic
- JOIN tmp.itemsToReplace itr ON ic.itemFk = itr.idOld
- SET ic.itemFk = itr.idNew;
-
- DELETE ic.*
- FROM vn.itemCost ic
- JOIN tmp.itemsToReplace itr ON ic.itemFk = itr.idOld;
-
- DELETE rt.*
- FROM vn2008.rec_translator rt
- JOIN tmp.itemsToReplace itr ON rt.Id_Article = itr.idOld;
-
- DELETE w.*
- FROM bs.waste w
- JOIN tmp.itemsToReplace itr ON w.itemFk = itr.idOld;
-
- DELETE pf.*
- FROM vn.priceFixed pf
- JOIN tmp.itemsToReplace itr ON pf.itemFk = itr.idOld;
-
- DELETE imp.*
- FROM vn.itemMatchProperties imp
- JOIN tmp.itemsToReplace itr ON imp.itemFk = itr.idOld;
-
- DELETE ib.*
- FROM vn.itemBotanical ib
- JOIN tmp.itemsToReplace itr ON ib.itemFk = itr.idOld;
-
- DELETE ip.*
- FROM vn.itemProposal ip
- JOIN tmp.itemsToReplace itr ON ip.itemFk = itr.idOld;
-
- DELETE it.*
- FROM vn.itemTag it
- JOIN tmp.itemsToReplace itr ON it.itemFk = itr.idOld;
-
- DELETE ib.*
- FROM vn.itemBarcode ib
- JOIN tmp.itemsToReplace itr ON ib.itemFk = itr.idOld;
-
- DELETE itc.*
- FROM vn.itemTaxCountry itc
- JOIN tmp.itemsToReplace itr ON itc.itemFk = itr.idOld;
-
- DELETE ip.*
- FROM vn.itemPlacement ip
- JOIN tmp.itemsToReplace itr ON ip.itemFk = itr.idOld;
-
- -- Updates
-
- UPDATE vn.buy b
- JOIN tmp.itemsToReplace itr ON b.itemFk = itr.idOld
- SET b.itemFk = itr.idNew;
-
- UPDATE vn.sale s
- JOIN tmp.itemsToReplace itr ON s.itemFk = itr.idOld
- SET s.itemFk = itr.idNew;
-
- UPDATE vn.specialPrice sp
- JOIN tmp.itemsToReplace itr ON sp.itemFk = itr.idOld
- SET sp.itemFk = itr.idNew;
-
- UPDATE vn.packaging p
- JOIN tmp.itemsToReplace itr ON p.itemFk = itr.idOld
- SET p.itemFk = itr.idNew;
-
- UPDATE vn.packaging p
- JOIN tmp.itemsToReplace itr ON p.freightItemFk = itr.idOld
- SET p.freightItemFk = itr.idNew;
-
- UPDATE hedera.orderRow o
- JOIN tmp.itemsToReplace itr ON o.itemFk = itr.idOld
- SET o.itemFk = itr.idNew;
-
- UPDATE vn.itemLog il
- JOIN tmp.itemsToReplace itr ON il.originFk = itr.idOld
- SET il.originFk = itr.idNew;
-
- UPDATE vn.itemShelving ish
- JOIN tmp.itemsToReplace itr ON ish.itemFk = itr.idOld
- SET ish.itemFk = itr.idNew;
-
- UPDATE vn.ticketPackagingStartingStock tpss
- JOIN tmp.itemsToReplace itr ON tpss.itemFk = itr.idOld
- SET tpss.itemFk = itr.idNew;
-
- UPDATE vn.inventoryFailure ifa
- JOIN tmp.itemsToReplace itr ON ifa.itemFk = itr.idOld
- SET ifa.itemFk = itr.idNew;
-
- UPDATE vn.genericAllocation ga
- JOIN tmp.itemsToReplace itr ON ga.itemFk = itr.idOld
- SET ga.itemFk = itr.idNew;
-
- UPDATE vn.itemPlacementSupply ips
- JOIN tmp.itemsToReplace itr ON ips.itemFk = itr.idOld
- SET ips.itemFk = itr.idNew;
-
- -- Eliminamos los items repetidos
-
- DELETE i.*
- FROM vn.item i
- JOIN tmp.itemsToReplace itr ON i.id = itr.idOld;
-
- SET @isModeInventory:= FALSE;
-
- COMMIT;
-
+BEGIN
+
+/*
+ * Elimina todos los items repetidos y los sustituye por el que tiene menor id
+ */
+
+ START TRANSACTION;
+
+ SET @isModeInventory:= TRUE;
+
+ -- Deletes
+
+ UPDATE IGNORE vn.itemCost ic
+ JOIN tmp.itemsToReplace itr ON ic.itemFk = itr.idOld
+ SET ic.itemFk = itr.idNew;
+
+ DELETE ic.*
+ FROM vn.itemCost ic
+ JOIN tmp.itemsToReplace itr ON ic.itemFk = itr.idOld;
+
+ DELETE rt.*
+ FROM vn2008.rec_translator rt
+ JOIN tmp.itemsToReplace itr ON rt.Id_Article = itr.idOld;
+
+ DELETE w.*
+ FROM bs.waste w
+ JOIN tmp.itemsToReplace itr ON w.itemFk = itr.idOld;
+
+ DELETE pf.*
+ FROM vn.priceFixed pf
+ JOIN tmp.itemsToReplace itr ON pf.itemFk = itr.idOld;
+
+ DELETE imp.*
+ FROM vn.itemMatchProperties imp
+ JOIN tmp.itemsToReplace itr ON imp.itemFk = itr.idOld;
+
+ DELETE ib.*
+ FROM vn.itemBotanical ib
+ JOIN tmp.itemsToReplace itr ON ib.itemFk = itr.idOld;
+
+ DELETE ip.*
+ FROM vn.itemProposal ip
+ JOIN tmp.itemsToReplace itr ON ip.itemFk = itr.idOld;
+
+ DELETE it.*
+ FROM vn.itemTag it
+ JOIN tmp.itemsToReplace itr ON it.itemFk = itr.idOld;
+
+ DELETE ib.*
+ FROM vn.itemBarcode ib
+ JOIN tmp.itemsToReplace itr ON ib.itemFk = itr.idOld;
+
+ DELETE itc.*
+ FROM vn.itemTaxCountry itc
+ JOIN tmp.itemsToReplace itr ON itc.itemFk = itr.idOld;
+
+ DELETE ip.*
+ FROM vn.itemPlacement ip
+ JOIN tmp.itemsToReplace itr ON ip.itemFk = itr.idOld;
+
+ -- Updates
+
+ UPDATE vn.buy b
+ JOIN tmp.itemsToReplace itr ON b.itemFk = itr.idOld
+ SET b.itemFk = itr.idNew;
+
+ UPDATE vn.sale s
+ JOIN tmp.itemsToReplace itr ON s.itemFk = itr.idOld
+ SET s.itemFk = itr.idNew;
+
+ UPDATE vn.specialPrice sp
+ JOIN tmp.itemsToReplace itr ON sp.itemFk = itr.idOld
+ SET sp.itemFk = itr.idNew;
+
+ UPDATE vn.packaging p
+ JOIN tmp.itemsToReplace itr ON p.itemFk = itr.idOld
+ SET p.itemFk = itr.idNew;
+
+ UPDATE vn.packaging p
+ JOIN tmp.itemsToReplace itr ON p.freightItemFk = itr.idOld
+ SET p.freightItemFk = itr.idNew;
+
+ UPDATE hedera.orderRow o
+ JOIN tmp.itemsToReplace itr ON o.itemFk = itr.idOld
+ SET o.itemFk = itr.idNew;
+
+ UPDATE vn.itemLog il
+ JOIN tmp.itemsToReplace itr ON il.originFk = itr.idOld
+ SET il.originFk = itr.idNew;
+
+ UPDATE vn.itemShelving ish
+ JOIN tmp.itemsToReplace itr ON ish.itemFk = itr.idOld
+ SET ish.itemFk = itr.idNew;
+
+ UPDATE vn.ticketPackagingStartingStock tpss
+ JOIN tmp.itemsToReplace itr ON tpss.itemFk = itr.idOld
+ SET tpss.itemFk = itr.idNew;
+
+ UPDATE vn.inventoryFailure ifa
+ JOIN tmp.itemsToReplace itr ON ifa.itemFk = itr.idOld
+ SET ifa.itemFk = itr.idNew;
+
+ UPDATE vn.genericAllocation ga
+ JOIN tmp.itemsToReplace itr ON ga.itemFk = itr.idOld
+ SET ga.itemFk = itr.idNew;
+
+ UPDATE vn.itemPlacementSupply ips
+ JOIN tmp.itemsToReplace itr ON ips.itemFk = itr.idOld
+ SET ips.itemFk = itr.idNew;
+
+ -- Eliminamos los items repetidos
+
+ DELETE i.*
+ FROM vn.item i
+ JOIN tmp.itemsToReplace itr ON i.id = itr.idOld;
+
+ SET @isModeInventory:= FALSE;
+
+ COMMIT;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -68618,71 +68618,71 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_getInfo`(IN `vBarcode` VARCHAR(22), IN `vWarehouseFk` INT)
-BEGIN
-
- /*
- * Devuelve información relativa al item correspondiente del vBarcode pasado
- *
- * @param vBarcode código relativo al ítem
- * @param vWarehouseFk código del almacén
- */
-
- DECLARE vCacheVisibleFk INT;
- DECLARE vCacheAvailableFk INT;
- DECLARE vVisibleItemShelving INT;
- DECLARE vItemFk INT;
-
- SELECT vn.barcodeToItem(vBarcode) INTO vItemFk;
-
- CALL cache.visible_refresh(vCacheVisibleFk, FALSE,vWarehouseFk);
- CALL cache.available_refresh(vCacheAvailableFk, FALSE,vWarehouseFk, CURDATE());
-
- SELECT SUM(visible) INTO vVisibleItemShelving
- FROM vn.itemShelvingStock
- WHERE itemFk = vItemFk AND warehouseFk = vWarehouseFk;
-
- CALL vn.buyUltimate(vWarehouseFk, CURDATE());
-
- SELECT i.id,
- i.longName,
- i.tag5,
- i.value5,
- i.tag6,
- i.value6,
- i.tag7,
- i.value7,
- i.image,
- i.size,
- i.stems,
- i.category,
- i.minimum as min,
- p.name as producer,
- o.code as origin,
- v.visible - IFNULL(vVisibleItemShelving,0) as unlocated,
- a.available,
- vVisibleItemShelving,
- v.visible,
- c.`grouping`,
- c.packing,
- CONCAT('https://verdnatura.es/vn-image-data/catalog/200x200/', i.image) as urlImage200,
- CONCAT('https://verdnatura.es/vn-image-data/catalog/1600x900/', i.image) as urlImage,
- i.itemPackingTypeFk,
- i.comment as reference
- FROM vn.item i
- LEFT JOIN vn.producer p ON p.id = i.producerFk
- LEFT JOIN vn.origin o ON o.id = i.originFk
- LEFT JOIN cache.visible v ON v.calc_id = vCacheVisibleFk AND v.item_id = i.id
- LEFT JOIN cache.available a ON a.calc_id = vCacheAvailableFk AND a.item_id = i.id
- LEFT JOIN (
- SELECT b.itemFk, b2.`grouping`, b2.packing
- FROM tmp.buyUltimate b
- JOIN vn.buy b2 ON b2.id = b.buyFk
- WHERE b.warehouseFk = vWarehouseFk
- ) c ON i.id = c.itemFk
- WHERE i.id = vItemFk;
-
- DROP TEMPORARY TABLE tmp.buyUltimate;
-
+BEGIN
+
+ /*
+ * Devuelve información relativa al item correspondiente del vBarcode pasado
+ *
+ * @param vBarcode código relativo al ítem
+ * @param vWarehouseFk código del almacén
+ */
+
+ DECLARE vCacheVisibleFk INT;
+ DECLARE vCacheAvailableFk INT;
+ DECLARE vVisibleItemShelving INT;
+ DECLARE vItemFk INT;
+
+ SELECT vn.barcodeToItem(vBarcode) INTO vItemFk;
+
+ CALL cache.visible_refresh(vCacheVisibleFk, FALSE,vWarehouseFk);
+ CALL cache.available_refresh(vCacheAvailableFk, FALSE,vWarehouseFk, CURDATE());
+
+ SELECT SUM(visible) INTO vVisibleItemShelving
+ FROM vn.itemShelvingStock
+ WHERE itemFk = vItemFk AND warehouseFk = vWarehouseFk;
+
+ CALL vn.buyUltimate(vWarehouseFk, CURDATE());
+
+ SELECT i.id,
+ i.longName,
+ i.tag5,
+ i.value5,
+ i.tag6,
+ i.value6,
+ i.tag7,
+ i.value7,
+ i.image,
+ i.size,
+ i.stems,
+ i.category,
+ i.minimum as min,
+ p.name as producer,
+ o.code as origin,
+ v.visible - IFNULL(vVisibleItemShelving,0) as unlocated,
+ a.available,
+ vVisibleItemShelving,
+ v.visible,
+ c.`grouping`,
+ c.packing,
+ CONCAT('https://verdnatura.es/vn-image-data/catalog/200x200/', i.image) as urlImage200,
+ CONCAT('https://verdnatura.es/vn-image-data/catalog/1600x900/', i.image) as urlImage,
+ i.itemPackingTypeFk,
+ i.comment as reference
+ FROM vn.item i
+ LEFT JOIN vn.producer p ON p.id = i.producerFk
+ LEFT JOIN vn.origin o ON o.id = i.originFk
+ LEFT JOIN cache.visible v ON v.calc_id = vCacheVisibleFk AND v.item_id = i.id
+ LEFT JOIN cache.available a ON a.calc_id = vCacheAvailableFk AND a.item_id = i.id
+ LEFT JOIN (
+ SELECT b.itemFk, b2.`grouping`, b2.packing
+ FROM tmp.buyUltimate b
+ JOIN vn.buy b2 ON b2.id = b.buyFk
+ WHERE b.warehouseFk = vWarehouseFk
+ ) c ON i.id = c.itemFk
+ WHERE i.id = vItemFk;
+
+ DROP TEMPORARY TABLE tmp.buyUltimate;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -69547,21 +69547,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_saveReference`(vBarcode VARCHAR(22), vReference VARCHAR(150))
-BEGIN
-
-/**
- * Actualiza la referencia del item
- *
- * @param vBarcode del item
- * @param vReference referencia a actualizar
- */
-
- DECLARE vItemFk INT;
-
- SELECT barcodeToItem(vBarcode) INTO vItemFk;
-
- UPDATE item SET comment = vReference WHERE id = vItemFk;
-
+BEGIN
+
+/**
+ * Actualiza la referencia del item
+ *
+ * @param vBarcode del item
+ * @param vReference referencia a actualizar
+ */
+
+ DECLARE vItemFk INT;
+
+ SELECT barcodeToItem(vBarcode) INTO vItemFk;
+
+ UPDATE item SET comment = vReference WHERE id = vItemFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -69643,47 +69643,47 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_setGeneric`(vSelf INT)
-BEGIN
-/**
- * Asigna el código genérico a un item, salvo que sea un código de item genérico.
- *
- * @param vSelf identificador de vn.item
- */
- DECLARE vGenericFk INT;
-
- SELECT itemFk INTO vGenericFk
- FROM (
- SELECT itemFk, (sum(matches) = maxMatches) `match`
- FROM (
- SELECT ga.id gaid,
- ga.itemFk,
- (it.value <=> ga.origin)
- + (it.value <=> ga.color)
- + (it.value <=> ga.quality)
- + (it.value <=> ga.numFlores)
- + (it.value <=> ga.category)
- + (it.value <=> ga.productor) matches,
- !ISNULL(ga.origin)
- +!ISNULL(ga.color)
- +!ISNULL(ga.quality)
- +!ISNULL(ga.numFlores)
- +!ISNULL(ga.category)
- +!ISNULL(ga.productor) maxMatches
- FROM vn.item i
- JOIN vn.itemTag it ON it.itemFk = i.id
- JOIN vn.genericAllocation ga
- ON (i.typeFk = ga.typeFk OR ga.typeFk IS NULL)
- AND (i.longName = ga.longName OR ga.longName IS NULL)
- AND (i.`size` = ga.`size` OR ga.`size` IS NULL)
- AND i.id != ga.itemFk
- WHERE i.id = vSelf
- AND NOT i.isFloramondo) sub
- GROUP BY gaid
- HAVING `match`) sub2;
-
- UPDATE vn.item
- SET genericFk = vGenericFk
- WHERE id = vSelf;
+BEGIN
+/**
+ * Asigna el código genérico a un item, salvo que sea un código de item genérico.
+ *
+ * @param vSelf identificador de vn.item
+ */
+ DECLARE vGenericFk INT;
+
+ SELECT itemFk INTO vGenericFk
+ FROM (
+ SELECT itemFk, (sum(matches) = maxMatches) `match`
+ FROM (
+ SELECT ga.id gaid,
+ ga.itemFk,
+ (it.value <=> ga.origin)
+ + (it.value <=> ga.color)
+ + (it.value <=> ga.quality)
+ + (it.value <=> ga.numFlores)
+ + (it.value <=> ga.category)
+ + (it.value <=> ga.productor) matches,
+ !ISNULL(ga.origin)
+ +!ISNULL(ga.color)
+ +!ISNULL(ga.quality)
+ +!ISNULL(ga.numFlores)
+ +!ISNULL(ga.category)
+ +!ISNULL(ga.productor) maxMatches
+ FROM vn.item i
+ JOIN vn.itemTag it ON it.itemFk = i.id
+ JOIN vn.genericAllocation ga
+ ON (i.typeFk = ga.typeFk OR ga.typeFk IS NULL)
+ AND (i.longName = ga.longName OR ga.longName IS NULL)
+ AND (i.`size` = ga.`size` OR ga.`size` IS NULL)
+ AND i.id != ga.itemFk
+ WHERE i.id = vSelf
+ AND NOT i.isFloramondo) sub
+ GROUP BY gaid
+ HAVING `match`) sub2;
+
+ UPDATE vn.item
+ SET genericFk = vGenericFk
+ WHERE id = vSelf;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -69701,19 +69701,19 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_updatePackingShelve`(vSelf INT, vPacking INT)
-BEGIN
-
+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;
-
+ * 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 ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -69731,15 +69731,15 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `item_updatePackingType`(vItem INT, vItemPackingTypeFk VARCHAR(1))
-BEGIN
-/**
- * Update the packing type of an item
- *
- * @param vItem id del item a actualizar
- * @param vItemPackingTypeFk packing type
- */
- UPDATE item SET itemPackingTypeFk = vItemPackingTypeFk WHERE id = vItem;
-
+BEGIN
+/**
+ * Update the packing type of an item
+ *
+ * @param vItem id del item a actualizar
+ * @param vItemPackingTypeFk packing type
+ */
+ UPDATE item SET itemPackingTypeFk = vItemPackingTypeFk WHERE id = vItem;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -70556,22 +70556,22 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `machine_getWorkerPlate`(vWorkerFk INT)
-BEGIN
-/**
- * Selecciona la matrícula del vehículo del workerfk
- *
- * @param vWorkerFk el id del trabajador
- *
- *
- **/
-
- SELECT m.plate
- FROM machine m
- JOIN machineWorker mw ON mw.machineFk = m.id
- WHERE mw.inTimed >= TIMESTAMPADD(HOUR , -12,NOW())
- AND ISNULL(mw.outTimed)
- AND mw.workerFk = vWorkerFk;
-
+BEGIN
+/**
+ * Selecciona la matrícula del vehículo del workerfk
+ *
+ * @param vWorkerFk el id del trabajador
+ *
+ *
+ **/
+
+ SELECT m.plate
+ FROM machine m
+ JOIN machineWorker mw ON mw.machineFk = m.id
+ WHERE mw.inTimed >= TIMESTAMPADD(HOUR , -12,NOW())
+ AND ISNULL(mw.outTimed)
+ AND mw.workerFk = vWorkerFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -71897,29 +71897,29 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `parking_setOrder`(vWarehouseFk INT)
-BEGIN
-
- /*
- * Ordena el orden de preparacion de los parking de acuerdo con la tabla vn.corridor
- */
-
- UPDATE vn.parking p
- JOIN (
- SELECT code,
- @orden := @orden + 10 AS po
- FROM (
- SELECT c.prepOrder,
- p.code,
- @orden := 0,
- IF(c.isAscendent, 1,-1) * CAST(SUBSTRING(p.code,3,2) AS DECIMAL(2,0)) subCorridor ,
- CAST(IF(LENGTH(p.code) > 5, SUBSTRING(p.code,6,2), 0) AS DECIMAL(2,0)) ubication
- FROM vn.parking p
- JOIN vn.sector s ON s.id = p.sectorFk
- JOIN vn.corridor c ON c.code = LEFT(p.code,1) COLLATE utf8_general_ci
- WHERE s.warehouseFk = vWarehouseFk) sub
- ORDER BY sub.prepOrder, subCorridor, ubication) sub2 ON sub2.code = p.code
- SET p.pickingOrder = sub2.po;
-
+BEGIN
+
+ /*
+ * Ordena el orden de preparacion de los parking de acuerdo con la tabla vn.corridor
+ */
+
+ UPDATE vn.parking p
+ JOIN (
+ SELECT code,
+ @orden := @orden + 10 AS po
+ FROM (
+ SELECT c.prepOrder,
+ p.code,
+ @orden := 0,
+ IF(c.isAscendent, 1,-1) * CAST(SUBSTRING(p.code,3,2) AS DECIMAL(2,0)) subCorridor ,
+ CAST(IF(LENGTH(p.code) > 5, SUBSTRING(p.code,6,2), 0) AS DECIMAL(2,0)) ubication
+ FROM vn.parking p
+ JOIN vn.sector s ON s.id = p.sectorFk
+ JOIN vn.corridor c ON c.code = LEFT(p.code,1) COLLATE utf8_general_ci
+ WHERE s.warehouseFk = vWarehouseFk) sub
+ ORDER BY sub.prepOrder, subCorridor, ubication) sub2 ON sub2.code = p.code
+ SET p.pickingOrder = sub2.po;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -72012,180 +72012,180 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `placement_test`(vParamFk INT(11))
-BEGIN
-
- DECLARE vCalcFk INT;
- DECLARE vWarehouseFk INT;
- DECLARE vWarehouseAliasFk INT;
- DECLARE vCurrentYear INT DEFAULT YEAR(NOW());
-
- DROP TEMPORARY TABLE IF EXISTS tmp.sale;
- CREATE TEMPORARY TABLE tmp.sale
- ENGINE = MEMORY
- SELECT 0000000 as ticketFk,
- 0000000 as saleFk,
- 0000000 as itemFk,
- FALSE as isStowaway,
- 0 as quantity;
-
- INSERT INTO tmp.sale(ticketFk, saleFk, itemFk, isStowaway)
- SELECT s.ticketFk, s.id, s.itemFk, FALSE
- FROM vn.ticketCollection tc
- JOIN vn.collection c ON c.id = tc.collectionFk
- JOIN vn.sale s ON s.ticketFk = tc.ticketFk
- JOIN vn.item i ON i.id = s.itemFk
- WHERE tc.collectionFk = vParamFk
- AND (i.itemPackingTypeFk = c.itemPackingTypeFk OR ISNULL(c.itemPackingTypeFk))
- UNION ALL
- SELECT s.ticketFk, s.id, s.itemFk, FALSE
- FROM vn.sale s
- WHERE s.ticketFk = vParamFk;
-
-
- /* UNION ALL
- SELECT sw.shipFk, s.id, s.itemFk, TRUE
- FROM vn.sale s
- JOIN vn.stowaway sw ON sw.id = s.ticketFk
- JOIN vn.ticketCollection tc ON tc.ticketFk = sw.shipFk
- WHERE tc.collectionFk = vParamFk;
-
- INSERT INTO tmp.sale(ticketFk, saleFk, itemFk, isStowaway)
- SELECT s.ticketFk, s.id, s.itemFk, FALSE
- FROM vn.sale s
- JOIN vn.ticket t ON t.id = s.ticketFk
- WHERE s.ticketFk = vParamFk
- AND t.shipped > '2020-01-01'
- UNION ALL
- SELECT sw.shipFk, s.id, s.itemFk, TRUE
- FROM vn.sale s
- JOIN vn.stowaway sw ON sw.id = s.ticketFk
- WHERE sw.shipFk = vParamFk;
-
- DELETE FROM tmp.sale
- WHERE saleFk = 0;
- */
- SELECT t.warehouseFk, w.aliasFk
- INTO vWarehouseFk, vWarehouseAliasFk
- FROM vn.ticket t
- JOIN tmp.sale ts ON ts.ticketFk = t.id
- JOIN vn.warehouse w ON w.id = t.warehouseFk
- LIMIT 1;
-
- CALL cache.visible_refresh(vCalcFk,FALSE,vWarehouseFk);
-
- UPDATE tmp.sale ts
- JOIN ( SELECT itemFk, sum(visible) as visible
- FROM vn.itemShelvingStock iss
- JOIN vn.warehouse w ON w.id = iss.warehouseFk
- WHERE w.aliasFk = vWarehouseAliasFk
- GROUP BY iss.itemFk ) iss ON iss.itemFk = ts.itemFk
- SET ts.quantity = iss.visible;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.sale2;
- CREATE TEMPORARY TABLE tmp.sale2
- ENGINE = MEMORY
- SELECT * FROM tmp.sale;
-
-
- DROP TEMPORARY TABLE IF EXISTS tmp.`grouping`;
- CREATE TEMPORARY TABLE tmp.`grouping`
- (PRIMARY KEY (itemFk))
- ENGINE = MEMORY
- SELECT b.itemFk,
- CASE b.groupingMode
- WHEN 0 THEN 1
- WHEN 2 THEN b.packing
- ELSE b.`grouping`
- END AS `grouping`
- FROM buy b
- JOIN cache.last_buy lb ON lb.buy_id = b.id
- WHERE lb.warehouse_id = vWarehouseFk
- ;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.grouping2;
- CREATE TEMPORARY TABLE tmp.grouping2
- ENGINE = MEMORY
- SELECT * FROM tmp.`grouping`;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.salePlacementList;
- CREATE TEMPORARY TABLE tmp.salePlacementList
- ENGINE = MEMORY
-
- SELECT ts.saleFk,
- ts.itemFk,
- CONCAT(
- IF( iss.id,
- CONCAT('< ', IFNULL(wk.`code`, '---'),' > '),
- ''),
- p.`code`) COLLATE utf8_general_ci as placement ,
- sh.code COLLATE utf8_general_ci as shelving,
- ish.created,
- ish.visible,
- IF(ts.isStowaway, - 100000, IF(ish.visible > 0 OR iss.id, 1, 100000)) * p.pickingOrder as `order`,
- IFNULL(IF(sc.isPreviousPreparedByPacking, ish.packing, g.`grouping`),1) as `grouping`,
- IF(iss.id, TO_SECONDS(TIMESTAMPADD(YEAR,-vCurrentYear,iss.created)), TO_SECONDS(TIMESTAMPADD(YEAR,- year(ish.created),ish.created)) + TO_SECONDS(TIMESTAMPADD(YEAR,-vCurrentYear,NOW()))) as priority,
- 0 as saleOrder,
- sc.isPreviousPrepared,
- iss.id as itemShelvingSaleFk,
- ts.ticketFk
- ,iss.id
- , st.saleFk as salePreviousPrepared
- , iss.userFk
- FROM tmp.sale ts
- LEFT JOIN (SELECT DISTINCT saleFk
- FROM vn.saleTracking st
- JOIN vn.state s ON s.id = st.stateFk
- WHERE st.isChecked
- AND s.semaphore = 1) st ON st.saleFk = ts.saleFk
- JOIN vn.itemShelving ish ON ish.itemFk = ts.itemFk
- JOIN vn.shelving sh ON sh.code = ish.shelvingFk
- JOIN vn.parking p ON p.id = sh.parkingFk
- JOIN vn.sector sc ON sc.id = p.sectorFk
- JOIN vn.warehouse w ON w.id = sc.warehouseFk
- LEFT JOIN tmp.`grouping` g ON g.itemFk = ts.itemFk
- LEFT JOIN vn.itemShelvingSale iss ON iss.saleFk = ts.saleFk AND iss.itemShelvingFk = ish.id
- LEFT JOIN vn.worker wk ON wk.id = iss.userFk
- WHERE w.aliasFk = vWarehouseAliasFk
- HAVING (iss.id AND st.saleFk) OR salePreviousPrepared IS NULL
- ;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.salePlacementList_2;
- CREATE TEMPORARY TABLE tmp.salePlacementList_2
- ENGINE MEMORY
- SELECT saleFk, priority as olderPriority
- FROM (SELECT saleFk, priority
- FROM tmp.salePlacementList
- ORDER BY IF(isPreviousPrepared,2,1), IF(visible > 0 OR itemShelvingSaleFk,1,2), priority
- ) sub
- GROUP BY saleFk;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.salePlacementList_3;
- CREATE TEMPORARY TABLE tmp.salePlacementList_3
- ENGINE MEMORY
- SELECT s1.saleFk, `order`as saleOrder
- FROM tmp.salePlacementList s1
- JOIN tmp.salePlacementList_2 s2 ON s2.saleFk = s1.saleFk AND s2.olderPriority = s1.priority;
-
- UPDATE tmp.salePlacementList s1
- JOIN tmp.salePlacementList_3 s3 ON s3.saleFk = s1.saleFk
- SET s1.saleOrder = s3.saleOrder;
- /*
- -- Anula el orden de antigüedad y ordena por ubicación */
- UPDATE tmp.salePlacementList
- SET saleOrder = `order`;
-
- SELECT *
- FROM tmp.salePlacementList
- ORDER BY visible <> 0 DESC,saleOrder, IF(isPreviousPrepared,2,1), IF(itemShelvingSaleFk,1,2),priority;
-
- DROP TEMPORARY TABLE
- tmp.sale,
- tmp.sale2,
- tmp.`grouping`,
- tmp.grouping2,
- tmp.salePlacementList_2,
- tmp.salePlacementList_3;
-
+BEGIN
+
+ DECLARE vCalcFk INT;
+ DECLARE vWarehouseFk INT;
+ DECLARE vWarehouseAliasFk INT;
+ DECLARE vCurrentYear INT DEFAULT YEAR(NOW());
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.sale;
+ CREATE TEMPORARY TABLE tmp.sale
+ ENGINE = MEMORY
+ SELECT 0000000 as ticketFk,
+ 0000000 as saleFk,
+ 0000000 as itemFk,
+ FALSE as isStowaway,
+ 0 as quantity;
+
+ INSERT INTO tmp.sale(ticketFk, saleFk, itemFk, isStowaway)
+ SELECT s.ticketFk, s.id, s.itemFk, FALSE
+ FROM vn.ticketCollection tc
+ JOIN vn.collection c ON c.id = tc.collectionFk
+ JOIN vn.sale s ON s.ticketFk = tc.ticketFk
+ JOIN vn.item i ON i.id = s.itemFk
+ WHERE tc.collectionFk = vParamFk
+ AND (i.itemPackingTypeFk = c.itemPackingTypeFk OR ISNULL(c.itemPackingTypeFk))
+ UNION ALL
+ SELECT s.ticketFk, s.id, s.itemFk, FALSE
+ FROM vn.sale s
+ WHERE s.ticketFk = vParamFk;
+
+
+ /* UNION ALL
+ SELECT sw.shipFk, s.id, s.itemFk, TRUE
+ FROM vn.sale s
+ JOIN vn.stowaway sw ON sw.id = s.ticketFk
+ JOIN vn.ticketCollection tc ON tc.ticketFk = sw.shipFk
+ WHERE tc.collectionFk = vParamFk;
+
+ INSERT INTO tmp.sale(ticketFk, saleFk, itemFk, isStowaway)
+ SELECT s.ticketFk, s.id, s.itemFk, FALSE
+ FROM vn.sale s
+ JOIN vn.ticket t ON t.id = s.ticketFk
+ WHERE s.ticketFk = vParamFk
+ AND t.shipped > '2020-01-01'
+ UNION ALL
+ SELECT sw.shipFk, s.id, s.itemFk, TRUE
+ FROM vn.sale s
+ JOIN vn.stowaway sw ON sw.id = s.ticketFk
+ WHERE sw.shipFk = vParamFk;
+
+ DELETE FROM tmp.sale
+ WHERE saleFk = 0;
+ */
+ SELECT t.warehouseFk, w.aliasFk
+ INTO vWarehouseFk, vWarehouseAliasFk
+ FROM vn.ticket t
+ JOIN tmp.sale ts ON ts.ticketFk = t.id
+ JOIN vn.warehouse w ON w.id = t.warehouseFk
+ LIMIT 1;
+
+ CALL cache.visible_refresh(vCalcFk,FALSE,vWarehouseFk);
+
+ UPDATE tmp.sale ts
+ JOIN ( SELECT itemFk, sum(visible) as visible
+ FROM vn.itemShelvingStock iss
+ JOIN vn.warehouse w ON w.id = iss.warehouseFk
+ WHERE w.aliasFk = vWarehouseAliasFk
+ GROUP BY iss.itemFk ) iss ON iss.itemFk = ts.itemFk
+ SET ts.quantity = iss.visible;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.sale2;
+ CREATE TEMPORARY TABLE tmp.sale2
+ ENGINE = MEMORY
+ SELECT * FROM tmp.sale;
+
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.`grouping`;
+ CREATE TEMPORARY TABLE tmp.`grouping`
+ (PRIMARY KEY (itemFk))
+ ENGINE = MEMORY
+ SELECT b.itemFk,
+ CASE b.groupingMode
+ WHEN 0 THEN 1
+ WHEN 2 THEN b.packing
+ ELSE b.`grouping`
+ END AS `grouping`
+ FROM buy b
+ JOIN cache.last_buy lb ON lb.buy_id = b.id
+ WHERE lb.warehouse_id = vWarehouseFk
+ ;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.grouping2;
+ CREATE TEMPORARY TABLE tmp.grouping2
+ ENGINE = MEMORY
+ SELECT * FROM tmp.`grouping`;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.salePlacementList;
+ CREATE TEMPORARY TABLE tmp.salePlacementList
+ ENGINE = MEMORY
+
+ SELECT ts.saleFk,
+ ts.itemFk,
+ CONCAT(
+ IF( iss.id,
+ CONCAT('< ', IFNULL(wk.`code`, '---'),' > '),
+ ''),
+ p.`code`) COLLATE utf8_general_ci as placement ,
+ sh.code COLLATE utf8_general_ci as shelving,
+ ish.created,
+ ish.visible,
+ IF(ts.isStowaway, - 100000, IF(ish.visible > 0 OR iss.id, 1, 100000)) * p.pickingOrder as `order`,
+ IFNULL(IF(sc.isPreviousPreparedByPacking, ish.packing, g.`grouping`),1) as `grouping`,
+ IF(iss.id, TO_SECONDS(TIMESTAMPADD(YEAR,-vCurrentYear,iss.created)), TO_SECONDS(TIMESTAMPADD(YEAR,- year(ish.created),ish.created)) + TO_SECONDS(TIMESTAMPADD(YEAR,-vCurrentYear,NOW()))) as priority,
+ 0 as saleOrder,
+ sc.isPreviousPrepared,
+ iss.id as itemShelvingSaleFk,
+ ts.ticketFk
+ ,iss.id
+ , st.saleFk as salePreviousPrepared
+ , iss.userFk
+ FROM tmp.sale ts
+ LEFT JOIN (SELECT DISTINCT saleFk
+ FROM vn.saleTracking st
+ JOIN vn.state s ON s.id = st.stateFk
+ WHERE st.isChecked
+ AND s.semaphore = 1) st ON st.saleFk = ts.saleFk
+ JOIN vn.itemShelving ish ON ish.itemFk = ts.itemFk
+ JOIN vn.shelving sh ON sh.code = ish.shelvingFk
+ JOIN vn.parking p ON p.id = sh.parkingFk
+ JOIN vn.sector sc ON sc.id = p.sectorFk
+ JOIN vn.warehouse w ON w.id = sc.warehouseFk
+ LEFT JOIN tmp.`grouping` g ON g.itemFk = ts.itemFk
+ LEFT JOIN vn.itemShelvingSale iss ON iss.saleFk = ts.saleFk AND iss.itemShelvingFk = ish.id
+ LEFT JOIN vn.worker wk ON wk.id = iss.userFk
+ WHERE w.aliasFk = vWarehouseAliasFk
+ HAVING (iss.id AND st.saleFk) OR salePreviousPrepared IS NULL
+ ;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.salePlacementList_2;
+ CREATE TEMPORARY TABLE tmp.salePlacementList_2
+ ENGINE MEMORY
+ SELECT saleFk, priority as olderPriority
+ FROM (SELECT saleFk, priority
+ FROM tmp.salePlacementList
+ ORDER BY IF(isPreviousPrepared,2,1), IF(visible > 0 OR itemShelvingSaleFk,1,2), priority
+ ) sub
+ GROUP BY saleFk;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.salePlacementList_3;
+ CREATE TEMPORARY TABLE tmp.salePlacementList_3
+ ENGINE MEMORY
+ SELECT s1.saleFk, `order`as saleOrder
+ FROM tmp.salePlacementList s1
+ JOIN tmp.salePlacementList_2 s2 ON s2.saleFk = s1.saleFk AND s2.olderPriority = s1.priority;
+
+ UPDATE tmp.salePlacementList s1
+ JOIN tmp.salePlacementList_3 s3 ON s3.saleFk = s1.saleFk
+ SET s1.saleOrder = s3.saleOrder;
+ /*
+ -- Anula el orden de antigüedad y ordena por ubicación */
+ UPDATE tmp.salePlacementList
+ SET saleOrder = `order`;
+
+ SELECT *
+ FROM tmp.salePlacementList
+ ORDER BY visible <> 0 DESC,saleOrder, IF(isPreviousPrepared,2,1), IF(itemShelvingSaleFk,1,2),priority;
+
+ DROP TEMPORARY TABLE
+ tmp.sale,
+ tmp.sale2,
+ tmp.`grouping`,
+ tmp.grouping2,
+ tmp.salePlacementList_2,
+ tmp.salePlacementList_3;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -72203,18 +72203,18 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `prepareClientList`()
-BEGIN
-
- /*
- * Require la tabla tmp.ticket(id,clientFk)
- */
-
- DROP TEMPORARY TABLE IF EXISTS tmp.client;
- CREATE TEMPORARY TABLE tmp.client
- (PRIMARY KEY (id))
- ENGINE = MEMORY
- SELECT DISTINCT clientFk id
- FROM tmp.ticket;
+BEGIN
+
+ /*
+ * Require la tabla tmp.ticket(id,clientFk)
+ */
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.client;
+ CREATE TEMPORARY TABLE tmp.client
+ (PRIMARY KEY (id))
+ ENGINE = MEMORY
+ SELECT DISTINCT clientFk id
+ FROM tmp.ticket;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -72232,25 +72232,25 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `prepareTicketList`(vStartingDate DATETIME, vEndingDate DATETIME)
-BEGIN
-
- DROP TEMPORARY TABLE IF EXISTS tmp.productionTicket;
- CREATE TEMPORARY TABLE tmp.productionTicket
- (PRIMARY KEY (ticketFk))
- ENGINE = MEMORY
- SELECT t.id ticketFk, t.clientFk
- FROM vn.ticket t
- LEFT JOIN vn.ticketState ts ON ts.ticket = t.id
- JOIN vn.client c ON c.id = t.clientFk
- WHERE c.typeFk IN ('normal','handMaking','internalUse')
- AND (
- t.shipped BETWEEN CURDATE() AND vEndingDate
- OR (
- ts.alertLevel < 3
- AND t.shipped >= vStartingDate
- AND t.shipped < CURDATE()
- )
- );
+BEGIN
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.productionTicket;
+ CREATE TEMPORARY TABLE tmp.productionTicket
+ (PRIMARY KEY (ticketFk))
+ ENGINE = MEMORY
+ SELECT t.id ticketFk, t.clientFk
+ FROM vn.ticket t
+ LEFT JOIN vn.ticketState ts ON ts.ticket = t.id
+ JOIN vn.client c ON c.id = t.clientFk
+ WHERE c.typeFk IN ('normal','handMaking','internalUse')
+ AND (
+ t.shipped BETWEEN CURDATE() AND vEndingDate
+ OR (
+ ts.alertLevel < 3
+ AND t.shipped >= vStartingDate
+ AND t.shipped < CURDATE()
+ )
+ );
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -72424,225 +72424,225 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `prod`(vWarehouseFk INT, vScopeDays INT)
-proc: BEGIN
-
- DECLARE vEndingDate DATETIME DEFAULT TIMESTAMPADD(DAY,vScopeDays,util.dayEnd(CURDATE()));
-
- DECLARE vIsTodayRelative BOOLEAN;
-
- SELECT isTodayRelative INTO vIsTodayRelative
- FROM vn.worker
- WHERE userFk = vn.getUser();
-
- CALL vn.prepareTicketList(TIMESTAMPADD(DAY,-1,CURDATE()), vEndingDate);
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
- CREATE TEMPORARY TABLE tmp.ticket
- SELECT * FROM tmp.productionTicket;
-
- CALL vn.prepareClientList();
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticketGetProblems;
- CREATE TEMPORARY TABLE tmp.ticketGetProblems
- (INDEX (ticketFk)) ENGINE = MEMORY
- SELECT tt.ticketFk, tt.clientFk, t.warehouseFk, t.shipped
- FROM tmp.productionTicket tt
- JOIN vn.ticket t ON t.id = tt.ticketFk;
-
- CALL vn.ticketGetProblems(vIsTodayRelative);
-
- DROP TEMPORARY TABLE IF EXISTS tmp.productionBuffer;
- CREATE TEMPORARY TABLE tmp.productionBuffer
- (PRIMARY KEY(ticketFk))
- ENGINE = MEMORY
- SELECT tt.ticketFk
- , tt.clientFk
- , t.warehouseFk
- , t.nickname
- , t.packages
- , IF(HOUR(t.shipped), HOUR(t.shipped), IFNULL(HOUR(zc.hour),HOUR(z.hour))) as HH
- , IFNULL(HOUR(zc.hour),HOUR(z.hour)) as Departure
- , IF(MINUTE(t.shipped), MINUTE(t.shipped), IFNULL(MINUTE(zc.hour), MINUTE(z.hour))) as mm
- , t.routeFk
- , IF(am.deliveryMethodFk = 2,z.`id`,0) as zona
- , t.nickname addressNickname
- , a.postalCode
- , a.city
- , p.name province
- , CONCAT(z.`name`,' ',IFNULL(RIGHT(t.routeFk,3),'')) agency
- , am.id agencyModeFk
- , 0 AS `lines`
- , CAST( 0 AS DECIMAL(5,2)) AS m3
- , CAST( 0 AS DECIMAL(5,2)) AS preparationRate
- , "" as problem
- , IFNULL(tls.state,2) AS state
- , w.code workerCode
- , DATE(t.shipped) shipped
- , wk.code AS salesPersonCode
- , p.id provinceFk
- , tls.productionOrder
- , ifnull(tls.alertLevel,0) alertLevel
- , t.isBoxed as palletized
- , rg.deviceId ubicacion
- , tlu.lastUpdated
- -- , tls.updated lastUpdated
- , ifnull(st.graphCategory,0) graphCategory
- , pk.code as parking
- , 0 AS H
- , 0 AS V
- , 0 AS F
- , 0 AS P
- , st.isOk
- , ag.isOwn
- FROM tmp.productionTicket tt
- JOIN vn.ticket t on tt.ticketFk = t.id
- LEFT JOIN vn.ticketStateToday tst ON tst.ticket = t.id
- LEFT JOIN vn.state st ON st.id = tst.state
- LEFT JOIN vn.client c ON c.id = t.clientFk
- LEFT JOIN vn.worker wk ON wk.id = c.salesPersonFk
- JOIN vn.address a on a.id = t.addressFk
- LEFT JOIN vn.province p on p.id = a.provinceFk
- JOIN vn.agencyMode am ON am.id = t.agencyModeFk
- JOIN vn.agency ag ON ag.id = am.agencyFk
- LEFT JOIN vn.ticketState tls on tls.ticket = tt.ticketFk
- LEFT JOIN vn.ticketLastUpdated tlu ON tlu.ticketFk = tt.ticketFk
- LEFT JOIN vn.worker w on w.id = tls.worker
- LEFT JOIN vn.routeGate rg ON rg.routeFk = t.routeFk
- LEFT JOIN vn.zone z ON z.id = t.zoneFk
- LEFT JOIN vn.zoneClosure zc ON zc.zoneFk = t.zoneFk AND date(t.shipped) = zc.dated
- LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
- LEFT JOIN vn.parking pk ON pk.id = tp.parkingFk
- WHERE t.warehouseFk = vWarehouseFk
- AND am.deliveryMethodFk IN (1,2,3);
-
- ALTER TABLE tmp.productionBuffer
- CHANGE COLUMN `problem` `problem` VARCHAR(255),
- ADD COLUMN `collectionH` INT,
- ADD COLUMN `collectionV` INT,
- ADD COLUMN `collectionF` INT,
- ADD COLUMN `collectionP` INT;
-
- -- Líneas y volumen por ticket
- UPDATE tmp.productionBuffer pb
- JOIN (
- SELECT tt.ticketFk,
- COUNT(*) as `lines`,
- sum(sv.volume) as m3,
- IFNULL(sum(IF(sv.isPicked,sv.volume,0)) / sum(sv.volume),0) as rate
- FROM tmp.productionTicket tt
- JOIN vn.saleVolume sv on sv.ticketFk = tt.ticketFk
- GROUP BY tt.ticketFk
- ) m on m.ticketFk = pb.ticketFk
- SET pb.`lines` = m.`lines`,
- pb.m3 = m.m3,
- pb.preparationRate = m.rate;
-
- DELETE FROM tmp.productionBuffer
- WHERE `lines`= 0;
-
- -- Lineas por linea de encajado
- UPDATE tmp.productionBuffer pb
- JOIN ( SELECT ticketFk,
- sum(sub.H) H,
- sum(sub.V) V,
- sum(sub.F) F,
- sum(sub.P) P
- FROM (
- SELECT t.ticketFk,
- sum(i.itemPackingTypeFk = 'H') H,
- sum(i.itemPackingTypeFk = 'V') V,
- sum(i.itemPackingTypeFk = 'F') F,
- sum(i.itemPackingTypeFk = 'P') P
- FROM tmp.productionTicket t
- JOIN vn.sale s ON s.ticketFk = t.ticketFk
- JOIN vn.item i ON i.id = s.itemFk
- GROUP BY t.ticketFk, i.itemPackingTypeFk) sub
- GROUP BY ticketFk
- ) sub2 ON sub2.ticketFk = pb.ticketFk
- SET pb.H = sub2.H,
- pb.V = sub2.V,
- pb.F = sub2.F,
- pb.P = sub2.P;
-
- -- Colecciones segun tipo de encajado
- UPDATE tmp.productionBuffer pb
- JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
- JOIN vn.collection c ON c.id = tc.collectionFk
- SET pb.collectionH = c.id
- WHERE c.itemPackingTypeFk = 'H' OR ISNULL(c.itemPackingTypeFk);
-
- UPDATE tmp.productionBuffer pb
- JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
- JOIN vn.collection c ON c.id = tc.collectionFk
- SET pb.collectionV = c.id
- WHERE c.itemPackingTypeFk = 'V' OR ISNULL(c.itemPackingTypeFk);
-
- UPDATE tmp.productionBuffer pb
- JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
- JOIN vn.collection c ON c.id = tc.collectionFk
- SET pb.collectionF = c.id
- WHERE c.itemPackingTypeFk = 'F' OR ISNULL(c.itemPackingTypeFk);
-
- UPDATE tmp.productionBuffer pb
- JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
- JOIN vn.collection c ON c.id = tc.collectionFk
- SET pb.collectionP = c.id
- WHERE c.itemPackingTypeFk = 'P' OR ISNULL(c.itemPackingTypeFk);
-
- -- Cajas
- ALTER TABLE tmp.productionBuffer
- ADD Cajas DOUBLE DEFAULT NULL;
- /*
- -- Problemas por ticket
- UPDATE tmp.productionBuffer pb
- JOIN tmp.ticketProblems tp ON tp.ticketFk = pb.ticketFk
- SET pb.problem = CAST(CONCAT( IFNULL(tp.itemShortage,''),
- IFNULL(tp.itemDelay,''),
- IF(tp.isFreezed,' CONGELADO',''),
- IF(tp.risk,' RIESGO',''),
- IF(tp.hasTicketRequest, ' COD 100',''),
- IF(tp.isTaxDataChecked, '',' FICHA INCOMPLETA'),
- IF(tp.componentLack,' COMPONENTES', '')
- ) as char(255));
- */
- -- Refresca la caché para el cierre dinámico de agencias
- -- CALL cache.departure_timing(vWarehouseFk);
-/*
- -- Tickets de recogida
- REPLACE tmp.productionBuffer(
- shipped
- , ticketFk
- , agency
- , clientFk
- , addressNickname
- , state
- , workerCode
- , alertLevel
- , warehouseFk
- )
- SELECT DATE(t.shipped)
- , t.id
- , am.name
- , t.clientFk
- , a.nickname
- , s.id as state
- , w.code
- , ifnull(tls.alertLevel,0) alert_level
- , vWarehouseFk
- FROM vn.ticket t
- JOIN vn.address a on a.id = t.addressFk
- JOIN vn.agencyMode am ON am.id = t.agencyModeFk
- LEFT JOIN vn2008.warehouse_pickup wp ON wp.agency_id = am.id
- LEFT JOIN vn.ticketState tls on tls.ticket = t.id
- LEFT JOIN vn.state s ON s.id = tls.state
- LEFT JOIN vn.worker w on w.id = tls.worker
- WHERE t.shipped between TIMESTAMPADD(WEEK,-1,CURDATE()) AND util.dayend(TIMESTAMPADD(DAY,-1,CURDATE()))
- AND wp.warehouse_id = vWarehouseFk;
-*/
- DROP TEMPORARY TABLE tmp.productionTicket;
- DROP TEMPORARY TABLE tmp.ticket;
- DROP TEMPORARY TABLE IF EXISTS tmp.risk;
-
+proc: BEGIN
+
+ DECLARE vEndingDate DATETIME DEFAULT TIMESTAMPADD(DAY,vScopeDays,util.dayEnd(CURDATE()));
+
+ DECLARE vIsTodayRelative BOOLEAN;
+
+ SELECT isTodayRelative INTO vIsTodayRelative
+ FROM vn.worker
+ WHERE userFk = vn.getUser();
+
+ CALL vn.prepareTicketList(TIMESTAMPADD(DAY,-1,CURDATE()), vEndingDate);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
+ CREATE TEMPORARY TABLE tmp.ticket
+ SELECT * FROM tmp.productionTicket;
+
+ CALL vn.prepareClientList();
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticketGetProblems;
+ CREATE TEMPORARY TABLE tmp.ticketGetProblems
+ (INDEX (ticketFk)) ENGINE = MEMORY
+ SELECT tt.ticketFk, tt.clientFk, t.warehouseFk, t.shipped
+ FROM tmp.productionTicket tt
+ JOIN vn.ticket t ON t.id = tt.ticketFk;
+
+ CALL vn.ticketGetProblems(vIsTodayRelative);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.productionBuffer;
+ CREATE TEMPORARY TABLE tmp.productionBuffer
+ (PRIMARY KEY(ticketFk))
+ ENGINE = MEMORY
+ SELECT tt.ticketFk
+ , tt.clientFk
+ , t.warehouseFk
+ , t.nickname
+ , t.packages
+ , IF(HOUR(t.shipped), HOUR(t.shipped), IFNULL(HOUR(zc.hour),HOUR(z.hour))) as HH
+ , IFNULL(HOUR(zc.hour),HOUR(z.hour)) as Departure
+ , IF(MINUTE(t.shipped), MINUTE(t.shipped), IFNULL(MINUTE(zc.hour), MINUTE(z.hour))) as mm
+ , t.routeFk
+ , IF(am.deliveryMethodFk = 2,z.`id`,0) as zona
+ , t.nickname addressNickname
+ , a.postalCode
+ , a.city
+ , p.name province
+ , CONCAT(z.`name`,' ',IFNULL(RIGHT(t.routeFk,3),'')) agency
+ , am.id agencyModeFk
+ , 0 AS `lines`
+ , CAST( 0 AS DECIMAL(5,2)) AS m3
+ , CAST( 0 AS DECIMAL(5,2)) AS preparationRate
+ , "" as problem
+ , IFNULL(tls.state,2) AS state
+ , w.code workerCode
+ , DATE(t.shipped) shipped
+ , wk.code AS salesPersonCode
+ , p.id provinceFk
+ , tls.productionOrder
+ , ifnull(tls.alertLevel,0) alertLevel
+ , t.isBoxed as palletized
+ , rg.deviceId ubicacion
+ , tlu.lastUpdated
+ -- , tls.updated lastUpdated
+ , ifnull(st.graphCategory,0) graphCategory
+ , pk.code as parking
+ , 0 AS H
+ , 0 AS V
+ , 0 AS F
+ , 0 AS P
+ , st.isOk
+ , ag.isOwn
+ FROM tmp.productionTicket tt
+ JOIN vn.ticket t on tt.ticketFk = t.id
+ LEFT JOIN vn.ticketStateToday tst ON tst.ticket = t.id
+ LEFT JOIN vn.state st ON st.id = tst.state
+ LEFT JOIN vn.client c ON c.id = t.clientFk
+ LEFT JOIN vn.worker wk ON wk.id = c.salesPersonFk
+ JOIN vn.address a on a.id = t.addressFk
+ LEFT JOIN vn.province p on p.id = a.provinceFk
+ JOIN vn.agencyMode am ON am.id = t.agencyModeFk
+ JOIN vn.agency ag ON ag.id = am.agencyFk
+ LEFT JOIN vn.ticketState tls on tls.ticket = tt.ticketFk
+ LEFT JOIN vn.ticketLastUpdated tlu ON tlu.ticketFk = tt.ticketFk
+ LEFT JOIN vn.worker w on w.id = tls.worker
+ LEFT JOIN vn.routeGate rg ON rg.routeFk = t.routeFk
+ LEFT JOIN vn.zone z ON z.id = t.zoneFk
+ LEFT JOIN vn.zoneClosure zc ON zc.zoneFk = t.zoneFk AND date(t.shipped) = zc.dated
+ LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
+ LEFT JOIN vn.parking pk ON pk.id = tp.parkingFk
+ WHERE t.warehouseFk = vWarehouseFk
+ AND am.deliveryMethodFk IN (1,2,3);
+
+ ALTER TABLE tmp.productionBuffer
+ CHANGE COLUMN `problem` `problem` VARCHAR(255),
+ ADD COLUMN `collectionH` INT,
+ ADD COLUMN `collectionV` INT,
+ ADD COLUMN `collectionF` INT,
+ ADD COLUMN `collectionP` INT;
+
+ -- Líneas y volumen por ticket
+ UPDATE tmp.productionBuffer pb
+ JOIN (
+ SELECT tt.ticketFk,
+ COUNT(*) as `lines`,
+ sum(sv.volume) as m3,
+ IFNULL(sum(IF(sv.isPicked,sv.volume,0)) / sum(sv.volume),0) as rate
+ FROM tmp.productionTicket tt
+ JOIN vn.saleVolume sv on sv.ticketFk = tt.ticketFk
+ GROUP BY tt.ticketFk
+ ) m on m.ticketFk = pb.ticketFk
+ SET pb.`lines` = m.`lines`,
+ pb.m3 = m.m3,
+ pb.preparationRate = m.rate;
+
+ DELETE FROM tmp.productionBuffer
+ WHERE `lines`= 0;
+
+ -- Lineas por linea de encajado
+ UPDATE tmp.productionBuffer pb
+ JOIN ( SELECT ticketFk,
+ sum(sub.H) H,
+ sum(sub.V) V,
+ sum(sub.F) F,
+ sum(sub.P) P
+ FROM (
+ SELECT t.ticketFk,
+ sum(i.itemPackingTypeFk = 'H') H,
+ sum(i.itemPackingTypeFk = 'V') V,
+ sum(i.itemPackingTypeFk = 'F') F,
+ sum(i.itemPackingTypeFk = 'P') P
+ FROM tmp.productionTicket t
+ JOIN vn.sale s ON s.ticketFk = t.ticketFk
+ JOIN vn.item i ON i.id = s.itemFk
+ GROUP BY t.ticketFk, i.itemPackingTypeFk) sub
+ GROUP BY ticketFk
+ ) sub2 ON sub2.ticketFk = pb.ticketFk
+ SET pb.H = sub2.H,
+ pb.V = sub2.V,
+ pb.F = sub2.F,
+ pb.P = sub2.P;
+
+ -- Colecciones segun tipo de encajado
+ UPDATE tmp.productionBuffer pb
+ JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
+ JOIN vn.collection c ON c.id = tc.collectionFk
+ SET pb.collectionH = c.id
+ WHERE c.itemPackingTypeFk = 'H' OR ISNULL(c.itemPackingTypeFk);
+
+ UPDATE tmp.productionBuffer pb
+ JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
+ JOIN vn.collection c ON c.id = tc.collectionFk
+ SET pb.collectionV = c.id
+ WHERE c.itemPackingTypeFk = 'V' OR ISNULL(c.itemPackingTypeFk);
+
+ UPDATE tmp.productionBuffer pb
+ JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
+ JOIN vn.collection c ON c.id = tc.collectionFk
+ SET pb.collectionF = c.id
+ WHERE c.itemPackingTypeFk = 'F' OR ISNULL(c.itemPackingTypeFk);
+
+ UPDATE tmp.productionBuffer pb
+ JOIN vn.ticketCollection tc ON pb.ticketFk = tc.ticketFk
+ JOIN vn.collection c ON c.id = tc.collectionFk
+ SET pb.collectionP = c.id
+ WHERE c.itemPackingTypeFk = 'P' OR ISNULL(c.itemPackingTypeFk);
+
+ -- Cajas
+ ALTER TABLE tmp.productionBuffer
+ ADD Cajas DOUBLE DEFAULT NULL;
+ /*
+ -- Problemas por ticket
+ UPDATE tmp.productionBuffer pb
+ JOIN tmp.ticketProblems tp ON tp.ticketFk = pb.ticketFk
+ SET pb.problem = CAST(CONCAT( IFNULL(tp.itemShortage,''),
+ IFNULL(tp.itemDelay,''),
+ IF(tp.isFreezed,' CONGELADO',''),
+ IF(tp.risk,' RIESGO',''),
+ IF(tp.hasTicketRequest, ' COD 100',''),
+ IF(tp.isTaxDataChecked, '',' FICHA INCOMPLETA'),
+ IF(tp.componentLack,' COMPONENTES', '')
+ ) as char(255));
+ */
+ -- Refresca la caché para el cierre dinámico de agencias
+ -- CALL cache.departure_timing(vWarehouseFk);
+/*
+ -- Tickets de recogida
+ REPLACE tmp.productionBuffer(
+ shipped
+ , ticketFk
+ , agency
+ , clientFk
+ , addressNickname
+ , state
+ , workerCode
+ , alertLevel
+ , warehouseFk
+ )
+ SELECT DATE(t.shipped)
+ , t.id
+ , am.name
+ , t.clientFk
+ , a.nickname
+ , s.id as state
+ , w.code
+ , ifnull(tls.alertLevel,0) alert_level
+ , vWarehouseFk
+ FROM vn.ticket t
+ JOIN vn.address a on a.id = t.addressFk
+ JOIN vn.agencyMode am ON am.id = t.agencyModeFk
+ LEFT JOIN vn2008.warehouse_pickup wp ON wp.agency_id = am.id
+ LEFT JOIN vn.ticketState tls on tls.ticket = t.id
+ LEFT JOIN vn.state s ON s.id = tls.state
+ LEFT JOIN vn.worker w on w.id = tls.worker
+ WHERE t.shipped between TIMESTAMPADD(WEEK,-1,CURDATE()) AND util.dayend(TIMESTAMPADD(DAY,-1,CURDATE()))
+ AND wp.warehouse_id = vWarehouseFk;
+*/
+ DROP TEMPORARY TABLE tmp.productionTicket;
+ DROP TEMPORARY TABLE tmp.ticket;
+ DROP TEMPORARY TABLE IF EXISTS tmp.risk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -73915,52 +73915,52 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `reportLabelCollection_get`(vParam INT)
-BEGIN
-/**
- * Obtiene los datos de etiquetas a partir de de un ticket o colección.
- *
- * @param vParam Ticket/Colección del que sacar los datos
- */
- DECLARE vIsTicket BOOL;
-
- SELECT IF(id, TRUE, FALSE) INTO vIsTicket
- FROM ticket
- WHERE created > (CURRENT_DATE() - INTERVAL 1 MONTH)
- AND id = vParam;
-
- SELECT c.itemPackingTypeFk,
- CONCAT(tc.collectionFk, ' ', LEFT(cc.code, 4)) color,
- CONCAT(tc.collectionFk, ' ', SUBSTRING('ABCDEFGH',tc.wagon, 1), '-', tc.`level`) levelV,
- tc.ticketFk,
- LEFT(IF(t.routeFk IS NULL, am.name, zo.name ), 12) agencyDescription,
- am.name,
- t.clientFk,
- CONCAT(CAST(SUM(sv.volume) AS DECIMAL(5, 2)), 'm³') m3 ,
- CAST(IF(ic.code = 'plant', CONCAT(MAX(i.`size`),' cm'), COUNT(*)) AS CHAR) size,
- w.code workerCode,
- tt.labelCount,
- IF(HOUR(t.shipped), TIME(t.shipped), TIME(zo.`hour`)) agencyHour,
- t.shipped,
- COUNT(*) lineCount,
- t.nickName
- FROM ticket t
- JOIN ticketCollection tc ON tc.ticketFk = t.id
- JOIN collection c ON c.id = tc.collectionFk
- JOIN collectionColors cc ON cc.shelve = tc.`level`
- AND cc.wagon = tc.wagon
- AND cc.trainFk = c.trainFk
- JOIN sale s ON s.ticketFk = t.id
- LEFT JOIN saleVolume sv ON sv.saleFk = s.id
- JOIN item i ON i.id = s.itemFk
- JOIN itemType it ON it.id = i.typeFk
- JOIN itemCategory ic ON ic.id = it.categoryFk
- JOIN worker w ON w.id = c.workerFk
- JOIN agencyMode am ON am.id = t.agencyModeFk
- LEFT JOIN ticketTrolley tt ON tt.ticket = t.id
- LEFT JOIN `zone` zo ON t.zoneFk = zo.id
- WHERE IF(vIsTicket, tc.ticketFk = vParam, tc.collectionFk = vParam)
- GROUP BY t.id
- ORDER BY cc.`code`;
+BEGIN
+/**
+ * Obtiene los datos de etiquetas a partir de de un ticket o colección.
+ *
+ * @param vParam Ticket/Colección del que sacar los datos
+ */
+ DECLARE vIsTicket BOOL;
+
+ SELECT IF(id, TRUE, FALSE) INTO vIsTicket
+ FROM ticket
+ WHERE created > (CURRENT_DATE() - INTERVAL 1 MONTH)
+ AND id = vParam;
+
+ SELECT c.itemPackingTypeFk,
+ CONCAT(tc.collectionFk, ' ', LEFT(cc.code, 4)) color,
+ CONCAT(tc.collectionFk, ' ', SUBSTRING('ABCDEFGH',tc.wagon, 1), '-', tc.`level`) levelV,
+ tc.ticketFk,
+ LEFT(IF(t.routeFk IS NULL, am.name, zo.name ), 12) agencyDescription,
+ am.name,
+ t.clientFk,
+ CONCAT(CAST(SUM(sv.volume) AS DECIMAL(5, 2)), 'm³') m3 ,
+ CAST(IF(ic.code = 'plant', CONCAT(MAX(i.`size`),' cm'), COUNT(*)) AS CHAR) size,
+ w.code workerCode,
+ tt.labelCount,
+ IF(HOUR(t.shipped), TIME(t.shipped), TIME(zo.`hour`)) agencyHour,
+ t.shipped,
+ COUNT(*) lineCount,
+ t.nickName
+ FROM ticket t
+ JOIN ticketCollection tc ON tc.ticketFk = t.id
+ JOIN collection c ON c.id = tc.collectionFk
+ JOIN collectionColors cc ON cc.shelve = tc.`level`
+ AND cc.wagon = tc.wagon
+ AND cc.trainFk = c.trainFk
+ JOIN sale s ON s.ticketFk = t.id
+ LEFT JOIN saleVolume sv ON sv.saleFk = s.id
+ JOIN item i ON i.id = s.itemFk
+ JOIN itemType it ON it.id = i.typeFk
+ JOIN itemCategory ic ON ic.id = it.categoryFk
+ JOIN worker w ON w.id = c.workerFk
+ JOIN agencyMode am ON am.id = t.agencyModeFk
+ LEFT JOIN ticketTrolley tt ON tt.ticket = t.id
+ LEFT JOIN `zone` zo ON t.zoneFk = zo.id
+ WHERE IF(vIsTicket, tc.ticketFk = vParam, tc.collectionFk = vParam)
+ GROUP BY t.id
+ ORDER BY cc.`code`;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -74112,25 +74112,25 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `routeGate_assignDevice`(vDevice VARCHAR(30), vRouteFk INT)
-BEGIN
-/**
- * Asigna el dispositivo la ruta
- *
- * @param vDevice Dispositivo a remplazar
- * @param vRouteFk Ruta a la cual asignarlo
- */
- IF ISNULL(vDevice) THEN
-
- DELETE FROM routeGate
- WHERE routeFk = vRouteFk;
-
- ELSE
-
- REPLACE routeGate(routeFk, deviceId)
- VALUES(vRouteFk, vDevice);
-
- END IF;
-
+BEGIN
+/**
+ * Asigna el dispositivo la ruta
+ *
+ * @param vDevice Dispositivo a remplazar
+ * @param vRouteFk Ruta a la cual asignarlo
+ */
+ IF ISNULL(vDevice) THEN
+
+ DELETE FROM routeGate
+ WHERE routeFk = vRouteFk;
+
+ ELSE
+
+ REPLACE routeGate(routeFk, deviceId)
+ VALUES(vRouteFk, vDevice);
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -74447,64 +74447,64 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `route_getTickets`(vRouteFk INT)
-BEGIN
-/**
- * Pasado un RouteFk devuelve la información
- * de sus tickets.
- *
- * @param vRouteFk
- *
- * @select Información de los tickets
- */
-
- SELECT
- t.id AS Id,
- t.clientFk AS Client,
- a.id AS Address,
- a.nickname AS ClientName,
- t.packages AS Packages,
- a.street AS AddressName,
- a.postalCode AS PostalCode,
- a.city AS City,
- sub2.itemPackingTypeFk AS PackingType,
- c.phone AS ClientPhone,
- c.mobile AS ClientMobile,
- a.phone AS AddressPhone,
- a.mobile AS AddressMobile,
- tl.longitude AS Longitude,
- tl.latitude AS Latitude,
- wm.mediaValue AS SalePersonPhone,
- tob.Note AS Note,
- t.isSigned AS Signed,
- st.id AS Polizon
- FROM ticket t
- JOIN client c ON t.clientFk = c.id
- JOIN address a ON t.addressFk = a.id
- LEFT JOIN ticketLocation tl ON tl.ticketFk = t.id
- LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk
- LEFT JOIN
- (SELECT tob.description AS Note, t.id
- FROM ticketObservation tob
- JOIN ticket t ON tob.ticketFk = t.id
- JOIN observationType ot ON ot.id = tob.observationTypeFk
- WHERE t.routeFk = vRouteFk
- AND ot.code = 'delivery'
- )tob ON tob.id = t.id
- LEFT JOIN stowaway st ON st.shipFk = t.id
- LEFT JOIN
- (SELECT sub.ticketFk,
- CONCAT('(', GROUP_CONCAT(DISTINCT sub.itemPackingTypeFk ORDER BY sub.items DESC SEPARATOR ','), ') ') itemPackingTypeFk
- FROM (SELECT s.ticketFk , i.itemPackingTypeFk, COUNT(*) items
- FROM ticket t
- JOIN sale s ON s.ticketFk = t.id
- JOIN item i ON i.id = s.itemFk
- WHERE t.routeFk = vRouteFk
- GROUP BY t.id,i.itemPackingTypeFk)sub
- GROUP BY sub.ticketFk
- ) sub2 ON sub2.ticketFk = t.id
- WHERE t.routeFk = vRouteFk
- GROUP BY t.id
- ORDER BY t.priority;
+BEGIN
+/**
+ * Pasado un RouteFk devuelve la información
+ * de sus tickets.
+ *
+ * @param vRouteFk
+ *
+ * @select Información de los tickets
+ */
+
+ SELECT
+ t.id AS Id,
+ t.clientFk AS Client,
+ a.id AS Address,
+ a.nickname AS ClientName,
+ t.packages AS Packages,
+ a.street AS AddressName,
+ a.postalCode AS PostalCode,
+ a.city AS City,
+ sub2.itemPackingTypeFk AS PackingType,
+ c.phone AS ClientPhone,
+ c.mobile AS ClientMobile,
+ a.phone AS AddressPhone,
+ a.mobile AS AddressMobile,
+ tl.longitude AS Longitude,
+ tl.latitude AS Latitude,
+ wm.mediaValue AS SalePersonPhone,
+ tob.Note AS Note,
+ t.isSigned AS Signed,
+ st.id AS Polizon
+ FROM ticket t
+ JOIN client c ON t.clientFk = c.id
+ JOIN address a ON t.addressFk = a.id
+ LEFT JOIN ticketLocation tl ON tl.ticketFk = t.id
+ LEFT JOIN workerMedia wm ON wm.workerFk = c.salesPersonFk
+ LEFT JOIN
+ (SELECT tob.description AS Note, t.id
+ FROM ticketObservation tob
+ JOIN ticket t ON tob.ticketFk = t.id
+ JOIN observationType ot ON ot.id = tob.observationTypeFk
+ WHERE t.routeFk = vRouteFk
+ AND ot.code = 'delivery'
+ )tob ON tob.id = t.id
+ LEFT JOIN stowaway st ON st.shipFk = t.id
+ LEFT JOIN
+ (SELECT sub.ticketFk,
+ CONCAT('(', GROUP_CONCAT(DISTINCT sub.itemPackingTypeFk ORDER BY sub.items DESC SEPARATOR ','), ') ') itemPackingTypeFk
+ FROM (SELECT s.ticketFk , i.itemPackingTypeFk, COUNT(*) items
+ FROM ticket t
+ JOIN sale s ON s.ticketFk = t.id
+ JOIN item i ON i.id = s.itemFk
+ WHERE t.routeFk = vRouteFk
+ GROUP BY t.id,i.itemPackingTypeFk)sub
+ GROUP BY sub.ticketFk
+ ) sub2 ON sub2.ticketFk = t.id
+ WHERE t.routeFk = vRouteFk
+ GROUP BY t.id
+ ORDER BY t.priority;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -74727,28 +74727,28 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleBuy_Add`(vSaleFk INT, vBuyFk INT)
-BEGIN
-
- /* Añade un registro a la tabla saleBuy en el caso de que sea posible mantener la trazabilidad
- *
- * @param vSaleFk clave primaria de vn.sale
- * @param vBuyFk clave primaria de vn.buy
- */
- /*IF (SELECT COUNT(*)
- FROM vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- JOIN vn.itemType it ON it.id = i.typeFk
- JOIN vn.itemCategory ic ON ic.id = it.categoryFk
- WHERE s.id = vSaleFk
- AND ic.code = 'fruit') THEN */
-
- IF (SELECT COUNT(*) FROM vn.buy WHERE id = vBuyFk AND itemOriginalFk) THEN
-
- INSERT INTO vn.saleBuy (saleFk, buyFk)
- VALUES(vSaleFk, vBuyFk);
-
- END IF;
-
+BEGIN
+
+ /* Añade un registro a la tabla saleBuy en el caso de que sea posible mantener la trazabilidad
+ *
+ * @param vSaleFk clave primaria de vn.sale
+ * @param vBuyFk clave primaria de vn.buy
+ */
+ /*IF (SELECT COUNT(*)
+ FROM vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN vn.itemType it ON it.id = i.typeFk
+ JOIN vn.itemCategory ic ON ic.id = it.categoryFk
+ WHERE s.id = vSaleFk
+ AND ic.code = 'fruit') THEN */
+
+ IF (SELECT COUNT(*) FROM vn.buy WHERE id = vBuyFk AND itemOriginalFk) THEN
+
+ INSERT INTO vn.saleBuy (saleFk, buyFk)
+ VALUES(vSaleFk, vBuyFk);
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -74766,16 +74766,16 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleGroup_add`(vSectorFk INT)
-BEGIN
-/**
- * Añade un nuevo registro a la tabla y devuelve su id.
- *
- * @param vSectorFk Identificador de vn.sector
- */
- INSERT INTO vn.saleGroup(userFk, sectorFk)
- VALUES (account.myUser_getId(), vSectorFk);
-
- SELECT LAST_INSERT_ID();
+BEGIN
+/**
+ * Añade un nuevo registro a la tabla y devuelve su id.
+ *
+ * @param vSectorFk Identificador de vn.sector
+ */
+ INSERT INTO vn.saleGroup(userFk, sectorFk)
+ VALUES (account.myUser_getId(), vSectorFk);
+
+ SELECT LAST_INSERT_ID();
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -74857,77 +74857,77 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleItemShelvingMake__`(IN `vTicketFk` INT, IN `vSectorFk` INT)
-BEGIN
-
- SET @rest:= CAST(0 AS DECIMAL(10,0));
- SET @saleFk := CAST(0 AS DECIMAL(10,0));
- SET @reserved := CAST(0 AS DECIMAL(10,0));
-
- UPDATE vn.itemShelving ish
- JOIN vn.saleItemShelving sis ON sis.itemShelvingFk = ish.id
- JOIN sale s ON s.id = sis.saleFk
- SET ish.visible = sis.quantity + ish.visible,
- ish.available = sis.quantity + ish.visible
- WHERE s.ticketFk = vTicketFk;
-
- DELETE sis.*
- FROM saleItemShelving sis
- JOIN sale s ON s.id = sis.saleFk
- WHERE s.ticketFk = vTicketFk;
-
- INSERT INTO saleItemShelving( saleFk,
- itemShelvingFk,
- quantity,
- ubication)
- SELECT saleFk,
- itemShelvingFk,
- CAST(Reserved as DECIMAL(10,0)) as Reserved,
- ubication
- FROM
- (SELECT saleFk,
- itemShelvingFk,
- ubication,
- @rest := IF(@saleFk = saleFk, @rest, quantity) as Falta,
- @reserved := IF(available < @rest, available, IF(@rest < packing,0,@rest)) as Reserved,
- @rest := @rest - @reserved,
- @saleFk := saleFk
- FROM
- ( SELECT s.id as saleFk,
- ish.created,
- ish.id as itemShelvingFk,
- ish.available,
- s.quantity,
- ish.packing,
- CONCAT(p.`column`, '-',p.`row`,': ', sh.code ) as ubication
- FROM vn.sale s
- JOIN vn.ticket t ON t.id = s.ticketFk
- JOIN vn.sector sc ON sc.warehouseFk = t.warehouseFk
- JOIN vn.parking p ON p.sectorFk = sc.id
- JOIN vn.shelving sh ON sh.parkingFk = p.id
- JOIN vn.itemShelving ish ON ish.shelvingFk = sh.code AND ish.itemFk = s.itemFk
- WHERE t.id = vTicketFk
- AND sc.id = vSectorFk
- AND s.quantity MOD ish.packing = 0
- AND s.quantity >= ish.packing
- ORDER BY s.id,
- sh.priority DESC,
- ish.packing DESC,
- ish.created
- ) sub
- ) sub2
- WHERE Reserved > 0;
-
- UPDATE vn.itemShelving ish
- JOIN vn.saleItemShelving sis ON sis.itemShelvingFk = ish.id
- JOIN vn.sale s ON s.id = sis.saleFk
- SET ish.available = ish.visible - sis.quantity,
- ish.visible = ish.visible - sis.quantity
- WHERE s.ticketFk = vTicketFk
- AND s.isPicked = FALSE;
-
- CALL vn.saleItemShelvingIsPicked(vTicketFk, TRUE);
-
-
+BEGIN
+
+ SET @rest:= CAST(0 AS DECIMAL(10,0));
+ SET @saleFk := CAST(0 AS DECIMAL(10,0));
+ SET @reserved := CAST(0 AS DECIMAL(10,0));
+
+ UPDATE vn.itemShelving ish
+ JOIN vn.saleItemShelving sis ON sis.itemShelvingFk = ish.id
+ JOIN sale s ON s.id = sis.saleFk
+ SET ish.visible = sis.quantity + ish.visible,
+ ish.available = sis.quantity + ish.visible
+ WHERE s.ticketFk = vTicketFk;
+
+ DELETE sis.*
+ FROM saleItemShelving sis
+ JOIN sale s ON s.id = sis.saleFk
+ WHERE s.ticketFk = vTicketFk;
+
+ INSERT INTO saleItemShelving( saleFk,
+ itemShelvingFk,
+ quantity,
+ ubication)
+ SELECT saleFk,
+ itemShelvingFk,
+ CAST(Reserved as DECIMAL(10,0)) as Reserved,
+ ubication
+ FROM
+ (SELECT saleFk,
+ itemShelvingFk,
+ ubication,
+ @rest := IF(@saleFk = saleFk, @rest, quantity) as Falta,
+ @reserved := IF(available < @rest, available, IF(@rest < packing,0,@rest)) as Reserved,
+ @rest := @rest - @reserved,
+ @saleFk := saleFk
+ FROM
+ ( SELECT s.id as saleFk,
+ ish.created,
+ ish.id as itemShelvingFk,
+ ish.available,
+ s.quantity,
+ ish.packing,
+ CONCAT(p.`column`, '-',p.`row`,': ', sh.code ) as ubication
+ FROM vn.sale s
+ JOIN vn.ticket t ON t.id = s.ticketFk
+ JOIN vn.sector sc ON sc.warehouseFk = t.warehouseFk
+ JOIN vn.parking p ON p.sectorFk = sc.id
+ JOIN vn.shelving sh ON sh.parkingFk = p.id
+ JOIN vn.itemShelving ish ON ish.shelvingFk = sh.code AND ish.itemFk = s.itemFk
+ WHERE t.id = vTicketFk
+ AND sc.id = vSectorFk
+ AND s.quantity MOD ish.packing = 0
+ AND s.quantity >= ish.packing
+ ORDER BY s.id,
+ sh.priority DESC,
+ ish.packing DESC,
+ ish.created
+ ) sub
+ ) sub2
+ WHERE Reserved > 0;
+
+ UPDATE vn.itemShelving ish
+ JOIN vn.saleItemShelving sis ON sis.itemShelvingFk = ish.id
+ JOIN vn.sale s ON s.id = sis.saleFk
+ SET ish.available = ish.visible - sis.quantity,
+ ish.visible = ish.visible - sis.quantity
+ WHERE s.ticketFk = vTicketFk
+ AND s.isPicked = FALSE;
+
+ CALL vn.saleItemShelvingIsPicked(vTicketFk, TRUE);
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -75058,20 +75058,20 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleParking_add__`(vSaleFk INT, vParkingCode VARCHAR(10))
-BEGIN
-
- /*
- * Inserta registro en saleParking
- *
- * vSaleFk Identificador de vn.sale
- * vParkingCode Code de vn.parking
- */
-
- INSERT INTO vn.saleParking(saleFk, parkingFk, userFk)
- SELECT vSaleFk, p.id, account.myUser_getId()
- FROM vn.parking p
- WHERE p.code = vParkingCode COLLATE utf8_unicode_ci;
-
+BEGIN
+
+ /*
+ * Inserta registro en saleParking
+ *
+ * vSaleFk Identificador de vn.sale
+ * vParkingCode Code de vn.parking
+ */
+
+ INSERT INTO vn.saleParking(saleFk, parkingFk, userFk)
+ SELECT vSaleFk, p.id, account.myUser_getId()
+ FROM vn.parking p
+ WHERE p.code = vParkingCode COLLATE utf8_unicode_ci;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -75295,28 +75295,28 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleTracking_add`(vSaleGroupFk INT)
-BEGIN
-
- /* Inserta en vn.saleTracking las lineas de una previa
- *
- * @param vSaleGroupFk Identificador de vn.saleGroup
- */
-
- REPLACE vn.saleTracking(saleFk,
- isChecked,
- workerFk,
- actionFk,
- stateFk)
- SELECT sgd.saleFk ,
- TRUE,
- account.myUser_getId(),
- a.accion_id,
- s.id
- FROM vn.saleGroupDetail sgd
- JOIN vncontrol.accion a ON a.accion = 'SACAR'
- JOIN vn.state s ON s.code = 'ON_PREPARATION'
- WHERE sgd.saleGroupFk = vSaleGroupFk;
-
+BEGIN
+
+ /* Inserta en vn.saleTracking las lineas de una previa
+ *
+ * @param vSaleGroupFk Identificador de vn.saleGroup
+ */
+
+ REPLACE vn.saleTracking(saleFk,
+ isChecked,
+ workerFk,
+ actionFk,
+ stateFk)
+ SELECT sgd.saleFk ,
+ TRUE,
+ account.myUser_getId(),
+ a.accion_id,
+ s.id
+ FROM vn.saleGroupDetail sgd
+ JOIN vncontrol.accion a ON a.accion = 'SACAR'
+ JOIN vn.state s ON s.code = 'ON_PREPARATION'
+ WHERE sgd.saleGroupFk = vSaleGroupFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -75334,21 +75334,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleTracking_addPreparedSaleGroup`(vSaleGroupFk INT)
-BEGIN
-
- /**
- * Inserta lineas de vn.saleTracking para un saleGroup (previa) que escanea un sacador
- *
- * @param vSaleGroupFk Identificador de vn.saleGroup
- */
-
- REPLACE vn.saleTracking(saleFk, isChecked, workerFk, actionFk, stateFk)
- SELECT sgd.saleFk, TRUE, account.myUser_getId(), a.accion_id id, s.id
- FROM vn.saleGroupDetail sgd
- JOIN vncontrol.accion a ON a.accion = 'SACAR'
- JOIN vn.state s ON s.code = 'PREPARED'
- WHERE sgd.saleGroupFk = vSaleGroupFk;
-
+BEGIN
+
+ /**
+ * Inserta lineas de vn.saleTracking para un saleGroup (previa) que escanea un sacador
+ *
+ * @param vSaleGroupFk Identificador de vn.saleGroup
+ */
+
+ REPLACE vn.saleTracking(saleFk, isChecked, workerFk, actionFk, stateFk)
+ SELECT sgd.saleFk, TRUE, account.myUser_getId(), a.accion_id id, s.id
+ FROM vn.saleGroupDetail sgd
+ JOIN vncontrol.accion a ON a.accion = 'SACAR'
+ JOIN vn.state s ON s.code = 'PREPARED'
+ WHERE sgd.saleGroupFk = vSaleGroupFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -75366,31 +75366,31 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `saleTracking_addPrevOK`(vSectorCollectionFk INT)
-BEGIN
-
- /**
- * Inserta los registros de la colección de sector con el estado PREVIA OK
- *
- * @param vSectorCollectionFk Identificador de vn.sectorCollection
- */
-
- REPLACE vn.saleTracking(saleFk,
- isChecked,
- workerFk,
- actionFk,
- stateFk)
- SELECT sgd.saleFk,
- TRUE,
- sc.userFk,
- a.accion_id,
- s.id
- FROM vn.sectorCollection sc
- JOIN vn.sectorCollectionSaleGroup scsg ON scsg.sectorCollectionFk = sc.id
- JOIN vn.saleGroupDetail sgd ON sgd.saleGroupFk = scsg.saleGroupFk
- JOIN vn.state s ON s.code = 'OK PREVIOUS'
- JOIN vncontrol.accion a ON a.accion = 'PRESACAR'
- WHERE sc.id = vSectorCollectionFk;
-
+BEGIN
+
+ /**
+ * Inserta los registros de la colección de sector con el estado PREVIA OK
+ *
+ * @param vSectorCollectionFk Identificador de vn.sectorCollection
+ */
+
+ REPLACE vn.saleTracking(saleFk,
+ isChecked,
+ workerFk,
+ actionFk,
+ stateFk)
+ SELECT sgd.saleFk,
+ TRUE,
+ sc.userFk,
+ a.accion_id,
+ s.id
+ FROM vn.sectorCollection sc
+ JOIN vn.sectorCollectionSaleGroup scsg ON scsg.sectorCollectionFk = sc.id
+ JOIN vn.saleGroupDetail sgd ON sgd.saleGroupFk = scsg.saleGroupFk
+ JOIN vn.state s ON s.code = 'OK PREVIOUS'
+ JOIN vncontrol.accion a ON a.accion = 'PRESACAR'
+ WHERE sc.id = vSectorCollectionFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -75916,42 +75916,42 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sale_getForSijsner__`(vDated DATE)
-BEGIN
-
- /**
- * Devuelve el listado de ventas que tiene que etiquetar Sijsner para la fecha dada
- *
- * @param vDated Fecha de preparación de los tickets
- */
-
- SELECT b.printedStickers OR s.isPicked isPrinted,
- t.shipped ,
- t.nickname ,
- s.ticketFk ,
- s.itemFk ,
- FLOOR(s.quantity / e.pac) stickers,
- CONCAT(FLOOR(s.quantity / e.pac) , ' x ', e.pac ) amount,
- s.concept,
- e.kop,
- e.sub,
- sp.company_name supplier,
- b.id buyFk
- FROM vn.sale s
- JOIN vn.ticket t ON t.id = s.ticketFk
- JOIN vn.warehouse w ON w.id = t.warehouseFk
- JOIN vn.address a ON a.id = t.addressFk
- JOIN vn.province p ON p.id = a.provinceFk
- JOIN vn.country c ON c.id = p.countryFk
- JOIN vn.item i ON i.id = s.itemFk
- JOIN cache.last_buy lb ON lb.item_id = s.itemFk AND lb.warehouse_id = t.warehouseFk
- JOIN vn.buy b ON b.id = lb.buy_id
- LEFT JOIN edi.ekt e ON e.id = b.ektFk
- LEFT JOIN edi.supplier sp ON sp.supplier_id = e.pro
- WHERE t.shipped BETWEEN vDated AND TIMESTAMPADD(HOUR,23,vDated)
- AND c.code != 'ES'
- AND w.code IN ('FLM','VNH')
- AND s.quantity ;
-
+BEGIN
+
+ /**
+ * Devuelve el listado de ventas que tiene que etiquetar Sijsner para la fecha dada
+ *
+ * @param vDated Fecha de preparación de los tickets
+ */
+
+ SELECT b.printedStickers OR s.isPicked isPrinted,
+ t.shipped ,
+ t.nickname ,
+ s.ticketFk ,
+ s.itemFk ,
+ FLOOR(s.quantity / e.pac) stickers,
+ CONCAT(FLOOR(s.quantity / e.pac) , ' x ', e.pac ) amount,
+ s.concept,
+ e.kop,
+ e.sub,
+ sp.company_name supplier,
+ b.id buyFk
+ FROM vn.sale s
+ JOIN vn.ticket t ON t.id = s.ticketFk
+ JOIN vn.warehouse w ON w.id = t.warehouseFk
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.province p ON p.id = a.provinceFk
+ JOIN vn.country c ON c.id = p.countryFk
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN cache.last_buy lb ON lb.item_id = s.itemFk AND lb.warehouse_id = t.warehouseFk
+ JOIN vn.buy b ON b.id = lb.buy_id
+ LEFT JOIN edi.ekt e ON e.id = b.ektFk
+ LEFT JOIN edi.supplier sp ON sp.supplier_id = e.pro
+ WHERE t.shipped BETWEEN vDated AND TIMESTAMPADD(HOUR,23,vDated)
+ AND c.code != 'ES'
+ AND w.code IN ('FLM','VNH')
+ AND s.quantity ;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -75969,115 +75969,115 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sale_getFromTicketOrCollection`(vParam INT)
-BEGIN
-/**
- * Visualizar lineas de la tabla sale a través del parámetro vParam que puede
- * ser ticket o collection.
- *
- * @param vParam Identificador de ticket o collection
- */
- DECLARE vItemPackingTypeFk VARCHAR(1);
- DECLARE vIsCollection BOOL;
-
- SELECT COUNT(*) INTO vIsCollection
- FROM collection c
- WHERE c.id = vParam;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket2;
-
- IF vIsCollection THEN
- CREATE TEMPORARY TABLE tmp.ticket
- (INDEX (id))
- ENGINE = MEMORY
- SELECT tc.ticketFk id
- FROM ticketCollection tc
- JOIN ticket t ON t.id = tc.ticketFk
- WHERE tc.collectionFk = vParam;
-
- CREATE TEMPORARY TABLE tmp.ticket2
- (INDEX (id))
- ENGINE = MEMORY
- SELECT tc.ticketFk id
- FROM ticketCollection tc
- JOIN ticket t ON t.id = tc.ticketFk
- WHERE tc.collectionFk = vParam;
- ELSE
- CREATE TEMPORARY TABLE tmp.ticket
- (INDEX (id))
- ENGINE = MEMORY
- SELECT vParam id;
-
- CREATE TEMPORARY TABLE tmp.ticket2
- (INDEX (id))
- ENGINE = MEMORY
- SELECT vParam id;
- END IF;
-
- SELECT s.ticketFk,
- sgd.saleGroupFk,
- s.id as saleFk,
- s.itemFk,
- s.quantity,
- i.longName,
- i.size,
- s.reserved,
- MAX(IF(st.semaphore <=> 1, TRUE, FALSE)) as isPreviousPrepared,
- MAX(IF(st.semaphore <=> 2, TRUE, FALSE)) as isPrepared,
- MAX(IF(st.semaphore <=> 3, TRUE, FALSE)) as isControlled,
- MAX(IF(st.semaphore <=> 4, TRUE, FALSE)) as isPreControlled,
- ic.color,
- ip.productor,
- s.discount,
- s.price,
- i.stems,
- i.category,
- o.code origin,
- tt.clientFk,
- s.originalQuantity,
- TRIM(CONCAT(LPAD(s.concept,30,' '), ' ',
- RPAD(IFNULL(i.size,''),5,' '))) line1,
- '' cel1,
- TRIM(CONCAT(LPAD(IFNULL(ip.productor,''),30,' '), ' ',LPAD(IFNULL(o.code,''),4,' '))) line2,
- IF(s.quantity MOD IFNULL(b.packing,s.quantity + 1),
- CONCAT(CAST(s.quantity/IFNULL(b.`grouping`,1) AS DECIMAL(10,0)),' x ',IFNULL(b.`grouping`,1)),
- CONCAT(CAST(s.quantity / IFNULL(b.packing,1) AS DECIMAL(10,0)),' pack de ',IFNULL(b.packing,1))) cel2,
- TRIM(CONCAT(ic.color)) line3,
- p.code cel3,
- s.isAdded,
- sub2.originalQuantity as startQuantity, -- eliminar cuando tengamos la nueva apk
- IFNULL(c.workerFk,getUser()) as workerFk,
- IFNULL(SUM(iss.quantity),0) as pickedQuantity,
- i.packingShelve,
- MIN(iss.created) picked
- FROM tmp.ticket t
- JOIN sale s ON s.ticketFk = t.id
- JOIN ticket tt ON tt.id = t.id
- LEFT JOIN cache.last_buy lb ON lb.item_id = s.itemFk AND lb.warehouse_id = tt.warehouseFk
- LEFT JOIN buy b ON b.id = lb.buy_id
- JOIN item i ON i.id = s.itemFk
- LEFT JOIN ticketCollection tc ON tc.ticketFk = t.id
- LEFT JOIN collection c ON c.id = tc.collectionFk
- LEFT JOIN (SELECT sub.saleFk, sub.isChecked, sub.stateFk, sub.originalQuantity
- FROM (SELECT DISTINCT st.id, st.saleFk, st.isChecked, st.stateFk, st.originalQuantity
- FROM tmp.ticket2 t
- JOIN sale s ON s.ticketFk = t.id
- JOIN saleTracking st ON st.saleFk = s.id
- ORDER BY st.id DESC) sub
- GROUP BY sub.saleFk, sub.stateFK) sub2 ON sub2.saleFk = s.id AND sub2.isChecked = 1
- LEFT JOIN itemShelvingSale iss ON iss.saleFk = s.id
- LEFT JOIN state st ON st.id = sub2.stateFk
- LEFT JOIN itemColor ic ON ic.itemFk = s.itemFk
- LEFT JOIN itemProductor ip ON ip.itemFk = s.itemFk
- LEFT JOIN origin o ON o.id = i.originFk
- LEFT JOIN saleGroupDetail sgd ON sgd.saleFk = s.id
- LEFT JOIN saleGroup sg ON sg.id = sgd.saleGroupFk
- LEFT JOIN parking p ON p.id = sg.parkingFk
- GROUP BY s.id;
-
- DROP TEMPORARY TABLE
- tmp.ticket,
- tmp.ticket2;
+BEGIN
+/**
+ * Visualizar lineas de la tabla sale a través del parámetro vParam que puede
+ * ser ticket o collection.
+ *
+ * @param vParam Identificador de ticket o collection
+ */
+ DECLARE vItemPackingTypeFk VARCHAR(1);
+ DECLARE vIsCollection BOOL;
+
+ SELECT COUNT(*) INTO vIsCollection
+ FROM collection c
+ WHERE c.id = vParam;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket2;
+
+ IF vIsCollection THEN
+ CREATE TEMPORARY TABLE tmp.ticket
+ (INDEX (id))
+ ENGINE = MEMORY
+ SELECT tc.ticketFk id
+ FROM ticketCollection tc
+ JOIN ticket t ON t.id = tc.ticketFk
+ WHERE tc.collectionFk = vParam;
+
+ CREATE TEMPORARY TABLE tmp.ticket2
+ (INDEX (id))
+ ENGINE = MEMORY
+ SELECT tc.ticketFk id
+ FROM ticketCollection tc
+ JOIN ticket t ON t.id = tc.ticketFk
+ WHERE tc.collectionFk = vParam;
+ ELSE
+ CREATE TEMPORARY TABLE tmp.ticket
+ (INDEX (id))
+ ENGINE = MEMORY
+ SELECT vParam id;
+
+ CREATE TEMPORARY TABLE tmp.ticket2
+ (INDEX (id))
+ ENGINE = MEMORY
+ SELECT vParam id;
+ END IF;
+
+ SELECT s.ticketFk,
+ sgd.saleGroupFk,
+ s.id as saleFk,
+ s.itemFk,
+ s.quantity,
+ i.longName,
+ i.size,
+ s.reserved,
+ MAX(IF(st.semaphore <=> 1, TRUE, FALSE)) as isPreviousPrepared,
+ MAX(IF(st.semaphore <=> 2, TRUE, FALSE)) as isPrepared,
+ MAX(IF(st.semaphore <=> 3, TRUE, FALSE)) as isControlled,
+ MAX(IF(st.semaphore <=> 4, TRUE, FALSE)) as isPreControlled,
+ ic.color,
+ ip.productor,
+ s.discount,
+ s.price,
+ i.stems,
+ i.category,
+ o.code origin,
+ tt.clientFk,
+ s.originalQuantity,
+ TRIM(CONCAT(LPAD(s.concept,30,' '), ' ',
+ RPAD(IFNULL(i.size,''),5,' '))) line1,
+ '' cel1,
+ TRIM(CONCAT(LPAD(IFNULL(ip.productor,''),30,' '), ' ',LPAD(IFNULL(o.code,''),4,' '))) line2,
+ IF(s.quantity MOD IFNULL(b.packing,s.quantity + 1),
+ CONCAT(CAST(s.quantity/IFNULL(b.`grouping`,1) AS DECIMAL(10,0)),' x ',IFNULL(b.`grouping`,1)),
+ CONCAT(CAST(s.quantity / IFNULL(b.packing,1) AS DECIMAL(10,0)),' pack de ',IFNULL(b.packing,1))) cel2,
+ TRIM(CONCAT(ic.color)) line3,
+ p.code cel3,
+ s.isAdded,
+ sub2.originalQuantity as startQuantity, -- eliminar cuando tengamos la nueva apk
+ IFNULL(c.workerFk,getUser()) as workerFk,
+ IFNULL(SUM(iss.quantity),0) as pickedQuantity,
+ i.packingShelve,
+ MIN(iss.created) picked
+ FROM tmp.ticket t
+ JOIN sale s ON s.ticketFk = t.id
+ JOIN ticket tt ON tt.id = t.id
+ LEFT JOIN cache.last_buy lb ON lb.item_id = s.itemFk AND lb.warehouse_id = tt.warehouseFk
+ LEFT JOIN buy b ON b.id = lb.buy_id
+ JOIN item i ON i.id = s.itemFk
+ LEFT JOIN ticketCollection tc ON tc.ticketFk = t.id
+ LEFT JOIN collection c ON c.id = tc.collectionFk
+ LEFT JOIN (SELECT sub.saleFk, sub.isChecked, sub.stateFk, sub.originalQuantity
+ FROM (SELECT DISTINCT st.id, st.saleFk, st.isChecked, st.stateFk, st.originalQuantity
+ FROM tmp.ticket2 t
+ JOIN sale s ON s.ticketFk = t.id
+ JOIN saleTracking st ON st.saleFk = s.id
+ ORDER BY st.id DESC) sub
+ GROUP BY sub.saleFk, sub.stateFK) sub2 ON sub2.saleFk = s.id AND sub2.isChecked = 1
+ LEFT JOIN itemShelvingSale iss ON iss.saleFk = s.id
+ LEFT JOIN state st ON st.id = sub2.stateFk
+ LEFT JOIN itemColor ic ON ic.itemFk = s.itemFk
+ LEFT JOIN itemProductor ip ON ip.itemFk = s.itemFk
+ LEFT JOIN origin o ON o.id = i.originFk
+ LEFT JOIN saleGroupDetail sgd ON sgd.saleFk = s.id
+ LEFT JOIN saleGroup sg ON sg.id = sgd.saleGroupFk
+ LEFT JOIN parking p ON p.id = sg.parkingFk
+ GROUP BY s.id;
+
+ DROP TEMPORARY TABLE
+ tmp.ticket,
+ tmp.ticket2;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -76627,24 +76627,24 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sale_PriceFix`(vTicketFk INT)
-BEGIN
-
- DELETE sc.*
- FROM vn.saleComponent sc
- JOIN vn.sale s ON s.id = sc.saleFk
- JOIN vn.component c ON c.id = sc.componentFk
- JOIN vn.componentType ct ON ct.id = c.typeFk
- WHERE s.ticketFk = vTicketFk
- AND ct.`type` = 'otros';
-
- UPDATE vn.sale s
- JOIN (
- SELECT sc.saleFk, sum(sc.value ) price
- FROM vn.saleComponent sc
- JOIN vn.sale s ON s.id = sc.saleFk
- WHERE s.ticketFk = vTicketFk
- GROUP BY sc.saleFk) sub ON sub.saleFk = s.id
- SET s.price = sub.price;
+BEGIN
+
+ DELETE sc.*
+ FROM vn.saleComponent sc
+ JOIN vn.sale s ON s.id = sc.saleFk
+ JOIN vn.component c ON c.id = sc.componentFk
+ JOIN vn.componentType ct ON ct.id = c.typeFk
+ WHERE s.ticketFk = vTicketFk
+ AND ct.`type` = 'otros';
+
+ UPDATE vn.sale s
+ JOIN (
+ SELECT sc.saleFk, sum(sc.value ) price
+ FROM vn.saleComponent sc
+ JOIN vn.sale s ON s.id = sc.saleFk
+ WHERE s.ticketFk = vTicketFk
+ GROUP BY sc.saleFk) sub ON sub.saleFk = s.id
+ SET s.price = sub.price;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -76791,31 +76791,31 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sale_setQuantity`(vSaleFk INT, vQuantity INT)
-BEGIN
-/*
- * Actualiza la cantidad de la línea de venta
- *
- * @vSaleFk id de la línea de venta
- * @vQuantity cantidad a modificar
- *
- */
-
- DECLARE vDescription VARCHAR(100);
- DECLARE vOrigin INT;
-
- SELECT CONCAT("Cambio cantidad ",concept," de ", quantity," a ", vQuantity) INTO vDescription
- FROM sale
- WHERE id = vSaleFk;
-
- SELECT ticketFk INTO vOrigin FROM sale WHERE id = vSaleFk;
-
- CALL logAdd(vOrigin, 'update', 'ticket', vDescription);
-
- UPDATE sale
- SET originalQuantity = quantity,
- quantity = vQuantity
- WHERE id = vSaleFk;
-
+BEGIN
+/*
+ * Actualiza la cantidad de la línea de venta
+ *
+ * @vSaleFk id de la línea de venta
+ * @vQuantity cantidad a modificar
+ *
+ */
+
+ DECLARE vDescription VARCHAR(100);
+ DECLARE vOrigin INT;
+
+ SELECT CONCAT("Cambio cantidad ",concept," de ", quantity," a ", vQuantity) INTO vDescription
+ FROM sale
+ WHERE id = vSaleFk;
+
+ SELECT ticketFk INTO vOrigin FROM sale WHERE id = vSaleFk;
+
+ CALL logAdd(vOrigin, 'update', 'ticket', vDescription);
+
+ UPDATE sale
+ SET originalQuantity = quantity,
+ quantity = vQuantity
+ WHERE id = vSaleFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -76880,33 +76880,33 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `scanTreeCreate__`()
-BEGIN
- CALL nestTree(
- 'vn2008',
- 'scan',
- 'vn2008',
- 'scanTree'
- );
-
- UPDATE vn2008.scanTree st
- JOIN (
- SELECT sl.scan_id,
- MAX(sl.odbc_date) lastScanned,
- COUNT(DISTINCT t.routeFk) routeCount,
- MIN(t.routeFk) mod 1000 as minRoute,
- MAX(t.routeFk) mod 1000 as maxRoute,
- COUNT(sl.scan_line_id) as scanned
- FROM vn2008.scan_line sl
- JOIN expedition e ON e.id = sl.`code`
- JOIN ticket t ON t.id = e.ticketFk
- WHERE t.routeFk
- GROUP BY sl.scan_id
- ) rs ON rs.scan_id = st.id
- SET st.lastScanned = rs.lastScanned,
- st.routeCount = rs.routeCount,
- st.minRoute = rs.minRoute,
- st.maxRoute = IF(rs.minRoute != rs.maxRoute, rs.maxRoute,NULL),
- st.scanned = rs.scanned;
+BEGIN
+ CALL nestTree(
+ 'vn2008',
+ 'scan',
+ 'vn2008',
+ 'scanTree'
+ );
+
+ UPDATE vn2008.scanTree st
+ JOIN (
+ SELECT sl.scan_id,
+ MAX(sl.odbc_date) lastScanned,
+ COUNT(DISTINCT t.routeFk) routeCount,
+ MIN(t.routeFk) mod 1000 as minRoute,
+ MAX(t.routeFk) mod 1000 as maxRoute,
+ COUNT(sl.scan_line_id) as scanned
+ FROM vn2008.scan_line sl
+ JOIN expedition e ON e.id = sl.`code`
+ JOIN ticket t ON t.id = e.ticketFk
+ WHERE t.routeFk
+ GROUP BY sl.scan_id
+ ) rs ON rs.scan_id = st.id
+ SET st.lastScanned = rs.lastScanned,
+ st.routeCount = rs.routeCount,
+ st.minRoute = rs.minRoute,
+ st.maxRoute = IF(rs.minRoute != rs.maxRoute, rs.maxRoute,NULL),
+ st.scanned = rs.scanned;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -76983,27 +76983,27 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sectorCollection_get`(vSectorFk INT)
-BEGIN
-
- /**
- * Devuelve las colecciones del sector que corresponden al usuario conectado, y que estan incompletas
- *
- * @param vSectorFk Identificador de vn.sector
- */
-
- SELECT DISTINCT sc.id collectionFk, sc.created
- FROM vn.sectorCollection sc
- JOIN vn.state s ON s.code = 'PREVIOUS_PREPARATION'
- LEFT JOIN vn.sectorCollectionSaleGroup scsg ON scsg.sectorCollectionFk = sc.id
- LEFT JOIN vn.saleGroupDetail sgd ON sgd.saleGroupFk = scsg.saleGroupFk
+BEGIN
+
+ /**
+ * Devuelve las colecciones del sector que corresponden al usuario conectado, y que estan incompletas
+ *
+ * @param vSectorFk Identificador de vn.sector
+ */
+
+ SELECT DISTINCT sc.id collectionFk, sc.created
+ FROM vn.sectorCollection sc
+ JOIN vn.state s ON s.code = 'PREVIOUS_PREPARATION'
+ LEFT JOIN vn.sectorCollectionSaleGroup scsg ON scsg.sectorCollectionFk = sc.id
+ LEFT JOIN vn.saleGroupDetail sgd ON sgd.saleGroupFk = scsg.saleGroupFk
LEFT JOIN vn.saleTracking st ON st.saleFk = sgd.saleFk AND st.stateFk = s.id AND st.workerFk = sc.userFk
- LEFT JOIN vn.sale sl ON sl.id = st.saleFk
- WHERE sc.userFk = account.myUser_getId()
- AND (ISNULL(scsg.sectorCollectionFk)
+ LEFT JOIN vn.sale sl ON sl.id = st.saleFk
+ WHERE sc.userFk = account.myUser_getId()
+ AND (ISNULL(scsg.sectorCollectionFk)
OR
(NOT st.isChecked AND sl.quantity > 0))
- AND sc.created > CURDATE();
-
+ AND sc.created > CURDATE();
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -77021,36 +77021,36 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sectorCollection_getSale`(vSelf INT)
-BEGIN
-
- /**
- * Devuelve las lineas de venta correspondientes a esa coleccion de sector
- *
- * @param vSelf Identificador de vn.sectorCollection
- */
-
- SELECT s.ticketFk,
- s.itemFk,
- i.longName,
- IFNULL(i.itemPackingTypeFk,' ') itemPackingTypeFk,
- IFNULL(i.subName ,' ') subName,
- s.quantity,
- w.code workerCode,
- sgd.saleFk,
- IFNULL(iss.quantity,0) pickedQuantity,
- c.salesPersonFk
- FROM vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
- JOIN vn.sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sgd.saleGroupFk
- JOIN vn.saleTracking st ON st.saleFk = s.id
- JOIN vn.state stt ON stt.id = st.stateFk AND stt.code = 'PREVIOUS_PREPARATION'
- JOIN vn.worker w ON w.id = st.workerFk
- JOIN vn.ticket t ON t.id= s.ticketFk
- JOIN vn.client c ON c.id=t.clientFk
- LEFT JOIN vn.itemShelvingSaleSum iss ON iss.saleFk = s.id
- WHERE scsg.sectorCollectionFk = vSelf;
-
+BEGIN
+
+ /**
+ * Devuelve las lineas de venta correspondientes a esa coleccion de sector
+ *
+ * @param vSelf Identificador de vn.sectorCollection
+ */
+
+ SELECT s.ticketFk,
+ s.itemFk,
+ i.longName,
+ IFNULL(i.itemPackingTypeFk,' ') itemPackingTypeFk,
+ IFNULL(i.subName ,' ') subName,
+ s.quantity,
+ w.code workerCode,
+ sgd.saleFk,
+ IFNULL(iss.quantity,0) pickedQuantity,
+ c.salesPersonFk
+ FROM vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
+ JOIN vn.sectorCollectionSaleGroup scsg ON scsg.saleGroupFk = sgd.saleGroupFk
+ JOIN vn.saleTracking st ON st.saleFk = s.id
+ JOIN vn.state stt ON stt.id = st.stateFk AND stt.code = 'PREVIOUS_PREPARATION'
+ JOIN vn.worker w ON w.id = st.workerFk
+ JOIN vn.ticket t ON t.id= s.ticketFk
+ JOIN vn.client c ON c.id=t.clientFk
+ LEFT JOIN vn.itemShelvingSaleSum iss ON iss.saleFk = s.id
+ WHERE scsg.sectorCollectionFk = vSelf;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -77068,31 +77068,31 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `sectorCollection_new`(vSectorFk INT)
-BEGIN
-
-/**
- * Inserta una nueva colección, si el usuario no tiene ninguna vacia.
- * Esto se hace para evitar que por error se generen colecciones sin sentido.
- *
- * @param vSectorFk Identificador de vn.sector
- */
- DECLARE hasEmptyCollections BOOL;
- DECLARE vUserFk INT;
-
- SET vUserFk = account.myUser_getId();
-
- SELECT (COUNT(sc.id) > 0) INTO hasEmptyCollections
- FROM vn.sectorCollection sc
- LEFT JOIN vn.sectorCollectionSaleGroup scsg ON scsg.sectorCollectionFk = sc.id
- WHERE ISNULL(scsg.id)
- AND sc.userFk = vUserFk
- AND sc.sectorFk = vSectorFk
- AND sc.created >= CURDATE();
-
- IF NOT hasEmptyCollections THEN
- INSERT INTO vn.sectorCollection(userFk, sectorFk)
- VALUES(vUserFk, vSectorFk);
- END IF;
+BEGIN
+
+/**
+ * Inserta una nueva colección, si el usuario no tiene ninguna vacia.
+ * Esto se hace para evitar que por error se generen colecciones sin sentido.
+ *
+ * @param vSectorFk Identificador de vn.sector
+ */
+ DECLARE hasEmptyCollections BOOL;
+ DECLARE vUserFk INT;
+
+ SET vUserFk = account.myUser_getId();
+
+ SELECT (COUNT(sc.id) > 0) INTO hasEmptyCollections
+ FROM vn.sectorCollection sc
+ LEFT JOIN vn.sectorCollectionSaleGroup scsg ON scsg.sectorCollectionFk = sc.id
+ WHERE ISNULL(scsg.id)
+ AND sc.userFk = vUserFk
+ AND sc.sectorFk = vSectorFk
+ AND sc.created >= CURDATE();
+
+ IF NOT hasEmptyCollections THEN
+ INSERT INTO vn.sectorCollection(userFk, sectorFk)
+ VALUES(vUserFk, vSectorFk);
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -77879,88 +77879,88 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `shelving_getSpam`(vDated DATE, vWarehouseFk INT)
-BEGIN
-
- /**
- * Devuelve las matrículas con productos que no son necesarios para la venta hasta la fecha señalada
- *
- * @param vDated Fecha hasta la que se puede pasar sin esos productos.
- * @param vWarehouse Identificador único de vn.warehouse
- */
-
- DROP TEMPORARY TABLE IF EXISTS tmp.stock;
-
- CALL cache.stock_refresh(FALSE);
-
- CREATE TEMPORARY TABLE tmp.stock
- SELECT i.id itemFk,
- v.amount - IFNULL(fue.reserva,0) as visible,
- fue.reserva,
- sale.venta,
- IFNULL(buy.compra,0) + IFNULL(mov.traslado,0) as compra,
- IFNULL(v.amount,0) + IFNULL(sale.venta,0) + IFNULL(buy.compra,0) + IFNULL(mov.traslado,0) - IFNULL(fue.reserva,0) as saldo
- FROM vn.item i
- JOIN vn.itemType it ON it.id = i.typeFk
- JOIN vn.itemCategory ic ON ic.id = it.categoryFk
- LEFT JOIN (
- SELECT ish.itemFk, CAST(SUM(ish.visible) AS DECIMAL(10,0)) AS reserva
- FROM vn.itemShelving ish
- JOIN vn.shelving sh ON sh.code = ish.shelvingFk
- JOIN vn.parking p ON p.id = sh.parkingFk
- JOIN vn.sector s ON s.id = p.sectorFk
- WHERE s.code = 'FUENTES_PICASSE'
- OR sh.isSpam
- GROUP BY ish.itemFk
- ) fue ON fue.itemFk = i.id
- LEFT JOIN cache.stock v ON i.id = v.item_id AND v.warehouse_id = vWarehouseFk
- LEFT JOIN (
- SELECT item_id, CAST(sum(amount)AS DECIMAL(10,0)) as venta
- FROM vn2008.item_out
- WHERE dat BETWEEN CURDATE() AND util.dayend(vDated)
- AND warehouse_id = vWarehouseFk
- GROUP BY item_id
- ) sale ON sale.item_id = i.id
- LEFT JOIN (
- SELECT item_id, CAST(sum(amount)AS DECIMAL(10,0)) as compra
- FROM vn2008.item_entry_in
- WHERE dat BETWEEN CURDATE() AND util.dayend(vDated)
- AND warehouse_id = vWarehouseFk
- AND isVirtualStock = FALSE
- GROUP BY item_id
- ) buy ON buy.item_id = i.id
- LEFT JOIN (
- SELECT item_id, CAST(sum(amount)AS DECIMAL(10,0)) as traslado
- FROM vn2008.item_entry_out
- WHERE dat BETWEEN CURDATE() AND util.dayend(vDated)
- AND warehouse_id = vWarehouseFk
- GROUP BY item_id
- ) mov ON mov.item_id = i.id
- WHERE v.amount;
-
- SELECT ish.shelvingFk matricula,
- i.longName articulo,
- ish.visible,
- count(*) lineas,
- sum(ish.visible <= s.saldo) spam,
- p.code parking,
- s.description sector ,
- w.name AS almacen,
- sh.isSpam
- FROM vn.itemShelving ish
- JOIN vn.item i ON i.id = ish.itemFk
- JOIN vn.shelving sh ON sh.code = ish.shelvingFk
- JOIN vn.parking p ON p.id = sh.parkingFk
- JOIN vn.sector s ON s.id = p.sectorFk
- JOIN vn.warehouse w ON w.id = s.warehouseFk
- LEFT JOIN tmp.stock s ON s.itemFk = ish.itemFk
- WHERE (w.name = 'Algemesi'
- OR (w.name = 'NuncaJamas' AND ish.created < curdate()))
- AND ish.visible
- GROUP BY ish.shelvingFk
- HAVING lineas = spam OR isSpam;
-
- DROP TEMPORARY TABLE tmp.stock;
-
+BEGIN
+
+ /**
+ * Devuelve las matrículas con productos que no son necesarios para la venta hasta la fecha señalada
+ *
+ * @param vDated Fecha hasta la que se puede pasar sin esos productos.
+ * @param vWarehouse Identificador único de vn.warehouse
+ */
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.stock;
+
+ CALL cache.stock_refresh(FALSE);
+
+ CREATE TEMPORARY TABLE tmp.stock
+ SELECT i.id itemFk,
+ v.amount - IFNULL(fue.reserva,0) as visible,
+ fue.reserva,
+ sale.venta,
+ IFNULL(buy.compra,0) + IFNULL(mov.traslado,0) as compra,
+ IFNULL(v.amount,0) + IFNULL(sale.venta,0) + IFNULL(buy.compra,0) + IFNULL(mov.traslado,0) - IFNULL(fue.reserva,0) as saldo
+ FROM vn.item i
+ JOIN vn.itemType it ON it.id = i.typeFk
+ JOIN vn.itemCategory ic ON ic.id = it.categoryFk
+ LEFT JOIN (
+ SELECT ish.itemFk, CAST(SUM(ish.visible) AS DECIMAL(10,0)) AS reserva
+ FROM vn.itemShelving ish
+ JOIN vn.shelving sh ON sh.code = ish.shelvingFk
+ JOIN vn.parking p ON p.id = sh.parkingFk
+ JOIN vn.sector s ON s.id = p.sectorFk
+ WHERE s.code = 'FUENTES_PICASSE'
+ OR sh.isSpam
+ GROUP BY ish.itemFk
+ ) fue ON fue.itemFk = i.id
+ LEFT JOIN cache.stock v ON i.id = v.item_id AND v.warehouse_id = vWarehouseFk
+ LEFT JOIN (
+ SELECT item_id, CAST(sum(amount)AS DECIMAL(10,0)) as venta
+ FROM vn2008.item_out
+ WHERE dat BETWEEN CURDATE() AND util.dayend(vDated)
+ AND warehouse_id = vWarehouseFk
+ GROUP BY item_id
+ ) sale ON sale.item_id = i.id
+ LEFT JOIN (
+ SELECT item_id, CAST(sum(amount)AS DECIMAL(10,0)) as compra
+ FROM vn2008.item_entry_in
+ WHERE dat BETWEEN CURDATE() AND util.dayend(vDated)
+ AND warehouse_id = vWarehouseFk
+ AND isVirtualStock = FALSE
+ GROUP BY item_id
+ ) buy ON buy.item_id = i.id
+ LEFT JOIN (
+ SELECT item_id, CAST(sum(amount)AS DECIMAL(10,0)) as traslado
+ FROM vn2008.item_entry_out
+ WHERE dat BETWEEN CURDATE() AND util.dayend(vDated)
+ AND warehouse_id = vWarehouseFk
+ GROUP BY item_id
+ ) mov ON mov.item_id = i.id
+ WHERE v.amount;
+
+ SELECT ish.shelvingFk matricula,
+ i.longName articulo,
+ ish.visible,
+ count(*) lineas,
+ sum(ish.visible <= s.saldo) spam,
+ p.code parking,
+ s.description sector ,
+ w.name AS almacen,
+ sh.isSpam
+ FROM vn.itemShelving ish
+ JOIN vn.item i ON i.id = ish.itemFk
+ JOIN vn.shelving sh ON sh.code = ish.shelvingFk
+ JOIN vn.parking p ON p.id = sh.parkingFk
+ JOIN vn.sector s ON s.id = p.sectorFk
+ JOIN vn.warehouse w ON w.id = s.warehouseFk
+ LEFT JOIN tmp.stock s ON s.itemFk = ish.itemFk
+ WHERE (w.name = 'Algemesi'
+ OR (w.name = 'NuncaJamas' AND ish.created < curdate()))
+ AND ish.visible
+ GROUP BY ish.shelvingFk
+ HAVING lineas = spam OR isSpam;
+
+ DROP TEMPORARY TABLE tmp.stock;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -79840,19 +79840,19 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketCollection_setUsedShelves`(vTicketFk INT, vUsedShelves INT)
-BEGIN
-
- /*
- * Inserta número de baldas que ocupa un ticket
- *
- * @param vTicketFk Identificador de ticket
- * @param vUsedShelves Número de baldas
- */
-
- UPDATE ticketCollection tc
- SET tc.usedShelves = vUsedShelves
- WHERE tc.ticketFk = vTicketFk;
-
+BEGIN
+
+ /*
+ * Inserta número de baldas que ocupa un ticket
+ *
+ * @param vTicketFk Identificador de ticket
+ * @param vUsedShelves Número de baldas
+ */
+
+ UPDATE ticketCollection tc
+ SET tc.usedShelves = vUsedShelves
+ WHERE tc.ticketFk = vTicketFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -80832,25 +80832,25 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketManaToPromo`(vTicketFk INT)
-BEGIN
-
- DECLARE vManaComponent INT;
-
- DECLARE vPromoComponent INT;
-
- SELECT id INTO vManaComponent
- FROM vn.component c
- WHERE c.code = 'mana';
-
- SELECT id INTO vPromoComponent
- FROM vn.component c
- WHERE c.code = 'floramondoPromo';
-
- UPDATE vn.saleComponent sc
- JOIN vn.sale s ON s.id = sc.saleFk
- SET componentFk = vPromoComponent
- WHERE componentFk = vManaComponent
- AND s.ticketFk = vTicketFk;
+BEGIN
+
+ DECLARE vManaComponent INT;
+
+ DECLARE vPromoComponent INT;
+
+ SELECT id INTO vManaComponent
+ FROM vn.component c
+ WHERE c.code = 'mana';
+
+ SELECT id INTO vPromoComponent
+ FROM vn.component c
+ WHERE c.code = 'floramondoPromo';
+
+ UPDATE vn.saleComponent sc
+ JOIN vn.sale s ON s.id = sc.saleFk
+ SET componentFk = vPromoComponent
+ WHERE componentFk = vManaComponent
+ AND s.ticketFk = vTicketFk;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -80973,22 +80973,22 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketObservation_addNewBorn`(vTicketFk INT)
-BEGIN
-
- /**
- * Inserta observaciones para los tickets con clientes nuevos o recuperados
- *
- * @param vTicketFk Identificador de vn.ticket
- */
-
- DECLARE vDescription VARCHAR(20) DEFAULT '¡Cliente NUEVO! ';
-
+BEGIN
+
+ /**
+ * Inserta observaciones para los tickets con clientes nuevos o recuperados
+ *
+ * @param vTicketFk Identificador de vn.ticket
+ */
+
+ DECLARE vDescription VARCHAR(20) DEFAULT '¡Cliente NUEVO! ';
+
INSERT INTO vn.ticketObservation(ticketFk, observationTypeFk, description)
SELECT vTicketFk, ot.id, vDescription
FROM vn.observationType ot
WHERE ot.hasNewBornMessage
ON DUPLICATE KEY UPDATE description = CONCAT(vDescription, ticketObservation.description);
-
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81075,66 +81075,66 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketParking_findSkipped`(vTicketFk INT, vItemPackingTypeFk VARCHAR(1))
-BEGIN
-
-/**
- * Averigua los tickets que se han saltado por un error en el proceso encajado
- * @param vTicketFk Ticket
- * @param vItemPackingTypeFk Modo de encajado
- * @return un select con los tickets afectados
- */
-
- DECLARE vParkingFk INT;
- DECLARE vParked DATETIME;
- DECLARE vLevel INT;
- DECLARE vWagon INT;
- DECLARE vCollectionFk INT;
-
- SELECT IFNULL(`level`,0), IFNULL(`wagon`,0),IFNULL(collectionFk,0)
- INTO vLevel, vWagon, vCollectionFk
- FROM vn.ticketCollection tc
- JOIN vn.collection c ON c.id = tc.collectionFk AND c.itemPackingTypeFk = vItemPackingTypeFk
- WHERE ticketFk = vTicketFk
- ORDER BY c.id DESC
- LIMIT 1;
-
- SELECT created, parkingFk
- INTO vParked, vParkingFk
- FROM vn.ticketParking tp
- JOIN vn.parking p ON p.id = tp.parkingFk
- JOIN vn.sector s ON s.id = p.sectorFk
- WHERE ticketFk = vTicketFk
- AND s.itemPackingTypeFk = vItemPackingTypeFk
- AND s.isPackagingArea ;
-
- SELECT tp.ticketFk, CONCAT(tc.collectionFk, ' ', tc.wagon, ' - ', tc.level) coleccion, tp.created, p.code, am.name as Agencia
- FROM vn.ticketParking tp
- JOIN vn.parking p ON p.id = tp.parkingFk
- JOIN vn.sector sc ON sc.id = p.sectorFk
- LEFT JOIN vn.ticketCollection tc ON tc.ticketFk = tp.ticketFk
- JOIN vn.ticketStateToday tst ON tst.ticket = tp.ticketFk
- JOIN vn.ticket t ON t.id = tp.ticketFk
- JOIN vn.zone z ON z.id = t.zoneFk
- JOIN vn.agencyMode am ON am.id = z.agencyModeFk
- JOIN vn.state s ON s.id = tst.state
- WHERE (s.alertLevel < 2
- AND tp.parkingFk = vParkingFk
- AND sc.isPackagingArea
- AND (
- ( IFNULL(tc.collectionFk,-1) != IFNULL(@vCollectionFk,0) AND tp.created < vParked )
- OR
- ( tc.collectionFk = vCollectionFk
- AND (LEFT(tc.wagon,1) < LEFT(vWagon,1)
- OR (LEFT(tc.wagon,1) = LEFT(vWagon,1) AND LEFT(tc.level,1) < LEFT(vLevel,1)))
- )
- )
- ) -- Etiquetas que no se han escaneado y ya estamos con una posterior
- OR
- (s.alertLevel > 1
- AND tp.parkingFk = vParkingFk
- AND sc.isPackagingArea
- AND tp.created < vParked
- AND t.packages <=> 0);
+BEGIN
+
+/**
+ * Averigua los tickets que se han saltado por un error en el proceso encajado
+ * @param vTicketFk Ticket
+ * @param vItemPackingTypeFk Modo de encajado
+ * @return un select con los tickets afectados
+ */
+
+ DECLARE vParkingFk INT;
+ DECLARE vParked DATETIME;
+ DECLARE vLevel INT;
+ DECLARE vWagon INT;
+ DECLARE vCollectionFk INT;
+
+ SELECT IFNULL(`level`,0), IFNULL(`wagon`,0),IFNULL(collectionFk,0)
+ INTO vLevel, vWagon, vCollectionFk
+ FROM vn.ticketCollection tc
+ JOIN vn.collection c ON c.id = tc.collectionFk AND c.itemPackingTypeFk = vItemPackingTypeFk
+ WHERE ticketFk = vTicketFk
+ ORDER BY c.id DESC
+ LIMIT 1;
+
+ SELECT created, parkingFk
+ INTO vParked, vParkingFk
+ FROM vn.ticketParking tp
+ JOIN vn.parking p ON p.id = tp.parkingFk
+ JOIN vn.sector s ON s.id = p.sectorFk
+ WHERE ticketFk = vTicketFk
+ AND s.itemPackingTypeFk = vItemPackingTypeFk
+ AND s.isPackagingArea ;
+
+ SELECT tp.ticketFk, CONCAT(tc.collectionFk, ' ', tc.wagon, ' - ', tc.level) coleccion, tp.created, p.code, am.name as Agencia
+ FROM vn.ticketParking tp
+ JOIN vn.parking p ON p.id = tp.parkingFk
+ JOIN vn.sector sc ON sc.id = p.sectorFk
+ LEFT JOIN vn.ticketCollection tc ON tc.ticketFk = tp.ticketFk
+ JOIN vn.ticketStateToday tst ON tst.ticket = tp.ticketFk
+ JOIN vn.ticket t ON t.id = tp.ticketFk
+ JOIN vn.zone z ON z.id = t.zoneFk
+ JOIN vn.agencyMode am ON am.id = z.agencyModeFk
+ JOIN vn.state s ON s.id = tst.state
+ WHERE (s.alertLevel < 2
+ AND tp.parkingFk = vParkingFk
+ AND sc.isPackagingArea
+ AND (
+ ( IFNULL(tc.collectionFk,-1) != IFNULL(@vCollectionFk,0) AND tp.created < vParked )
+ OR
+ ( tc.collectionFk = vCollectionFk
+ AND (LEFT(tc.wagon,1) < LEFT(vWagon,1)
+ OR (LEFT(tc.wagon,1) = LEFT(vWagon,1) AND LEFT(tc.level,1) < LEFT(vLevel,1)))
+ )
+ )
+ ) -- Etiquetas que no se han escaneado y ya estamos con una posterior
+ OR
+ (s.alertLevel > 1
+ AND tp.parkingFk = vParkingFk
+ AND sc.isPackagingArea
+ AND tp.created < vParked
+ AND t.packages <=> 0);
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81279,25 +81279,25 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketStateToday_setOnchecking__`(vParamFk INT)
-BEGIN
- /*
- * @deprecated:utilizar ticketStateToday_setState
- */
-
- DECLARE vAlertLevel INT;
-
- SELECT s.alertLevel INTO vAlertLevel
- FROM vn.state s
- JOIN vn.ticketStateToday tst ON tst.state = s.id
- WHERE tst.ticket = vParamFk
- LIMIT 1;
-
- IF vAlertLevel < 2 THEN
-
- CALL vn.ticketStateUpdate(vParamFk, 'ON_CHECKING');
-
- END IF;
-
+BEGIN
+ /*
+ * @deprecated:utilizar ticketStateToday_setState
+ */
+
+ DECLARE vAlertLevel INT;
+
+ SELECT s.alertLevel INTO vAlertLevel
+ FROM vn.state s
+ JOIN vn.ticketStateToday tst ON tst.state = s.id
+ WHERE tst.ticket = vParamFk
+ LIMIT 1;
+
+ IF vAlertLevel < 2 THEN
+
+ CALL vn.ticketStateUpdate(vParamFk, 'ON_CHECKING');
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81315,33 +81315,33 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketStateToday_setOnPreviousChecking__`(vParamFk INT)
-BEGIN
-
- /*
- * @deprecated:utilizar ticketStateToday_setState
- */
-
-
- /*
- * Cambia el estado del ticket al estado de "control previa"
- *
- * @param vParamFk ticket a cambiar el estado
- *
- */
- DECLARE vAlertLevel INT;
-
- SELECT s.alertLevel INTO vAlertLevel
- FROM state s
- JOIN ticketStateToday tst ON tst.state = s.id
- WHERE tst.ticket = vParamFk
- LIMIT 1;
-
- IF vAlertLevel < 2 THEN
-
- CALL ticketStateUpdate(vParamFk, 'PREVIOUS_CONTROL');
-
- END IF;
-
+BEGIN
+
+ /*
+ * @deprecated:utilizar ticketStateToday_setState
+ */
+
+
+ /*
+ * Cambia el estado del ticket al estado de "control previa"
+ *
+ * @param vParamFk ticket a cambiar el estado
+ *
+ */
+ DECLARE vAlertLevel INT;
+
+ SELECT s.alertLevel INTO vAlertLevel
+ FROM state s
+ JOIN ticketStateToday tst ON tst.state = s.id
+ WHERE tst.ticket = vParamFk
+ LIMIT 1;
+
+ IF vAlertLevel < 2 THEN
+
+ CALL ticketStateUpdate(vParamFk, 'PREVIOUS_CONTROL');
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81359,29 +81359,29 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketStateToday_setState`(vTicketFk INT, vStateCode VARCHAR(45))
-BEGIN
-
- /* Modifica el estado de un ticket de hoy
- *
- * @param vTicketFk el id del ticket
- * @param vStateCode estado a modificar del ticket
- *
- */
-
- DECLARE vAlertLevel INT;
-
- SELECT s.alertLevel INTO vAlertLevel
- FROM state s
- JOIN ticketStateToday tst ON tst.state = s.id
- WHERE tst.ticket = vTicketFk
- LIMIT 1;
-
- IF vAlertLevel < 2 THEN
-
- CALL vn.ticket_setState(vTicketFk, vStateCode);
-
- END IF;
-
+BEGIN
+
+ /* Modifica el estado de un ticket de hoy
+ *
+ * @param vTicketFk el id del ticket
+ * @param vStateCode estado a modificar del ticket
+ *
+ */
+
+ DECLARE vAlertLevel INT;
+
+ SELECT s.alertLevel INTO vAlertLevel
+ FROM state s
+ JOIN ticketStateToday tst ON tst.state = s.id
+ WHERE tst.ticket = vTicketFk
+ LIMIT 1;
+
+ IF vAlertLevel < 2 THEN
+
+ CALL vn.ticket_setState(vTicketFk, vStateCode);
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81570,63 +81570,63 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticketToPrePrepare`(IN vSaleGroupFk INT, IN vSectorFk INT)
-BEGIN
-
-/* Devuelve las lineas de vn.sale para preparación previa según el saleGroup
- *
- *
- * @param vSaleGroupFk Identificador de vn.saleGroup
-*/
- DECLARE vIsResetCode BOOLEAN;
-
- SELECT (vSaleGroupFk = 2000000) INTO vIsResetCode;
-
- IF vIsResetCode THEN
-
- UPDATE vn.saleTracking st
- JOIN vn.state s ON s.code = 'OK PREVIOUS'
- JOIN vn.state s2 ON s2.id = st.stateFk
- SET st.stateFk = s.id
- WHERE workerFk = vn.getUser()
- AND s2.code = 'PREVIOUS_PREPARATION';
-
- ELSE
-
- UPDATE vn.saleTracking st
- JOIN vn.saleGroupDetail sgd ON sgd.saleFk = st.saleFk
- SET workerFk = vn.getUser()
- WHERE sgd.saleGroupFk = vSaleGroupFk;
-
- UPDATE vn.saleGroup sg
- SET sg.userFk = vn.getUser()
- WHERE sg.id = vSaleGroupFk;
-
- SELECT s.ticketFk,
- s.itemFk,
- i.longName,
- IFNULL(i.itemPackingTypeFk,' ') itemPackingTypeFk,
- IFNULL(i.subName ,' ') subName,
- s.quantity originalQuantity ,
- s.quantity,
- w.code workerCode,
- sgd.saleFk,
- IFNULL(iss.quantity,0) pickedQuantity,
- vSectorFk,
- c.salesPersonFk
- FROM vn.sale s
- JOIN vn.item i ON i.id = s.itemFk
- JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
- JOIN vn.saleTracking st ON st.saleFk = s.id
- JOIN vn.state stt ON stt.id = st.stateFk
- JOIN vn.worker w ON w.id = st.workerFk
- LEFT JOIN vn.itemShelvingSaleSum iss ON iss.saleFk = s.id
- JOIN vn.ticket t ON t.id= s.ticketFk
- JOIN vn.client c ON c.id=t.clientFk
- WHERE st.workerFk = account.myUser_getId()
- AND stt.code = 'PREVIOUS_PREPARATION';
-
- END IF;
-
+BEGIN
+
+/* Devuelve las lineas de vn.sale para preparación previa según el saleGroup
+ *
+ *
+ * @param vSaleGroupFk Identificador de vn.saleGroup
+*/
+ DECLARE vIsResetCode BOOLEAN;
+
+ SELECT (vSaleGroupFk = 2000000) INTO vIsResetCode;
+
+ IF vIsResetCode THEN
+
+ UPDATE vn.saleTracking st
+ JOIN vn.state s ON s.code = 'OK PREVIOUS'
+ JOIN vn.state s2 ON s2.id = st.stateFk
+ SET st.stateFk = s.id
+ WHERE workerFk = vn.getUser()
+ AND s2.code = 'PREVIOUS_PREPARATION';
+
+ ELSE
+
+ UPDATE vn.saleTracking st
+ JOIN vn.saleGroupDetail sgd ON sgd.saleFk = st.saleFk
+ SET workerFk = vn.getUser()
+ WHERE sgd.saleGroupFk = vSaleGroupFk;
+
+ UPDATE vn.saleGroup sg
+ SET sg.userFk = vn.getUser()
+ WHERE sg.id = vSaleGroupFk;
+
+ SELECT s.ticketFk,
+ s.itemFk,
+ i.longName,
+ IFNULL(i.itemPackingTypeFk,' ') itemPackingTypeFk,
+ IFNULL(i.subName ,' ') subName,
+ s.quantity originalQuantity ,
+ s.quantity,
+ w.code workerCode,
+ sgd.saleFk,
+ IFNULL(iss.quantity,0) pickedQuantity,
+ vSectorFk,
+ c.salesPersonFk
+ FROM vn.sale s
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
+ JOIN vn.saleTracking st ON st.saleFk = s.id
+ JOIN vn.state stt ON stt.id = st.stateFk
+ JOIN vn.worker w ON w.id = st.workerFk
+ LEFT JOIN vn.itemShelvingSaleSum iss ON iss.saleFk = s.id
+ JOIN vn.ticket t ON t.id= s.ticketFk
+ JOIN vn.client c ON c.id=t.clientFk
+ WHERE st.workerFk = account.myUser_getId()
+ AND stt.code = 'PREVIOUS_PREPARATION';
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81873,102 +81873,102 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_add`(
- vClientId INT
- ,vShipped DATE
- ,vWarehouseFk INT
- ,vCompanyFk INT
- ,vAddressFk INT
- ,vAgencyModeFk INT
- ,vRouteFk INT
- ,vlanded DATE
- ,vUserId INT
- ,vIsRequiredZone INT
+CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_add`(
+ vClientId INT
+ ,vShipped DATE
+ ,vWarehouseFk INT
+ ,vCompanyFk INT
+ ,vAddressFk INT
+ ,vAgencyModeFk INT
+ ,vRouteFk INT
+ ,vlanded DATE
+ ,vUserId INT
+ ,vIsRequiredZone INT
,OUT vNewTicket INT)
-BEGIN
-
- DECLARE vZoneFk INT;
- DECLARE vPrice DECIMAL(10,2);
- DECLARE vBonus DECIMAL(10,2);
-
- IF vClientId IS NULL THEN
- CALL util.throw ('CLIENT_NOT_ESPECIFIED');
- END IF;
-
- IF NOT vAddressFk OR vAddressFk IS NULL THEN
- SELECT id INTO vAddressFk
- FROM address
- WHERE clientFk = vClientId AND isDefaultAddress;
- END IF;
-
- IF vAgencyModeFk IS NOT NULL THEN
-
- CALL vn.zone_getShipped (vlanded, vAddressFk, vAgencyModeFk, TRUE);
-
- SELECT zoneFk, price, bonus INTO vZoneFk, vPrice, vBonus
- FROM tmp.zoneGetShipped
- WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1;
-
- IF (vZoneFk IS NULL OR vZoneFk = 0) AND vIsRequiredZone THEN
- CALL util.throw ('NOT_ZONE_WITH_THIS_PARAMETERS');
- END IF;
- END IF;
- INSERT INTO ticket (
- clientFk,
- shipped,
- addressFk,
- agencyModeFk,
- nickname,
- warehouseFk,
- routeFk,
- companyFk,
- landed,
- zoneFk,
- zonePrice,
- zoneBonus
- )
- SELECT
- vClientId,
- vShipped,
- a.id,
- vAgencyModeFk,
- a.nickname,
- vWarehouseFk,
- IF(vRouteFk,vRouteFk,NULL),
- vCompanyFk,
- vlanded,
- vZoneFk,
- vPrice,
- vBonus
- FROM address a
- JOIN agencyMode am ON am.id = a.agencyModeFk
- WHERE a.id = vAddressFk;
-
- SET vNewTicket = LAST_INSERT_ID();
-
- INSERT INTO ticketObservation(ticketFk, observationTypeFk, description)
- SELECT vNewTicket, ao.observationTypeFk, ao.description
- FROM addressObservation ao
- JOIN address a ON a.id = ao.addressFk
- WHERE a.id = vAddressFk;
-
- IF (SELECT COUNT(*) FROM bs.clientNewBorn cnb
- WHERE cnb.clientFk = vClientId
- AND NOT cnb.isRookie) = 0 THEN
-
- CALL vn.ticketObservation_addNewBorn(vNewTicket);
-
- END IF;
-
- INSERT INTO vn.ticketLog
- SET originFk = vNewTicket, userFk = vUserId, `action` = 'insert', description = CONCAT('Ha creado el ticket:', ' ', vNewTicket);
-
- IF (SELECT ct.isCreatedAsServed FROM vn.clientType ct JOIN vn.client c ON c.typeFk = ct.code WHERE c.id = vClientId ) <> FALSE THEN
- INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
- SELECT id, vNewTicket, account.myUser_getId()
- FROM state
- WHERE `code` = 'DELIVERED';
- END IF;
+BEGIN
+
+ DECLARE vZoneFk INT;
+ DECLARE vPrice DECIMAL(10,2);
+ DECLARE vBonus DECIMAL(10,2);
+
+ IF vClientId IS NULL THEN
+ CALL util.throw ('CLIENT_NOT_ESPECIFIED');
+ END IF;
+
+ IF NOT vAddressFk OR vAddressFk IS NULL THEN
+ SELECT id INTO vAddressFk
+ FROM address
+ WHERE clientFk = vClientId AND isDefaultAddress;
+ END IF;
+
+ IF vAgencyModeFk IS NOT NULL THEN
+
+ CALL vn.zone_getShipped (vlanded, vAddressFk, vAgencyModeFk, TRUE);
+
+ SELECT zoneFk, price, bonus INTO vZoneFk, vPrice, vBonus
+ FROM tmp.zoneGetShipped
+ WHERE shipped = vShipped AND warehouseFk = vWarehouseFk LIMIT 1;
+
+ IF (vZoneFk IS NULL OR vZoneFk = 0) AND vIsRequiredZone THEN
+ CALL util.throw ('NOT_ZONE_WITH_THIS_PARAMETERS');
+ END IF;
+ END IF;
+ INSERT INTO ticket (
+ clientFk,
+ shipped,
+ addressFk,
+ agencyModeFk,
+ nickname,
+ warehouseFk,
+ routeFk,
+ companyFk,
+ landed,
+ zoneFk,
+ zonePrice,
+ zoneBonus
+ )
+ SELECT
+ vClientId,
+ vShipped,
+ a.id,
+ vAgencyModeFk,
+ a.nickname,
+ vWarehouseFk,
+ IF(vRouteFk,vRouteFk,NULL),
+ vCompanyFk,
+ vlanded,
+ vZoneFk,
+ vPrice,
+ vBonus
+ FROM address a
+ JOIN agencyMode am ON am.id = a.agencyModeFk
+ WHERE a.id = vAddressFk;
+
+ SET vNewTicket = LAST_INSERT_ID();
+
+ INSERT INTO ticketObservation(ticketFk, observationTypeFk, description)
+ SELECT vNewTicket, ao.observationTypeFk, ao.description
+ FROM addressObservation ao
+ JOIN address a ON a.id = ao.addressFk
+ WHERE a.id = vAddressFk;
+
+ IF (SELECT COUNT(*) FROM bs.clientNewBorn cnb
+ WHERE cnb.clientFk = vClientId
+ AND NOT cnb.isRookie) = 0 THEN
+
+ CALL vn.ticketObservation_addNewBorn(vNewTicket);
+
+ END IF;
+
+ INSERT INTO vn.ticketLog
+ SET originFk = vNewTicket, userFk = vUserId, `action` = 'insert', description = CONCAT('Ha creado el ticket:', ' ', vNewTicket);
+
+ IF (SELECT ct.isCreatedAsServed FROM vn.clientType ct JOIN vn.client c ON c.typeFk = ct.code WHERE c.id = vClientId ) <> FALSE THEN
+ INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
+ SELECT id, vNewTicket, account.myUser_getId()
+ FROM state
+ WHERE `code` = 'DELIVERED';
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -81986,21 +81986,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_administrativeCopy`(vOriginalTicket INT, OUT vNewTicket INT)
-BEGIN
-
- INSERT INTO vn.ticket(clientFk, addressFk, shipped, warehouseFk, companyFk, landed)
- SELECT t.clientFk , t.addressFk , t.shipped ,w.id, t.companyFk , t.landed
- FROM vn.ticket t
- JOIN vn.warehouse w ON w.name = 'INVENTARIO'
- WHERE t.id = vOriginalTicket;
-
- SELECT LAST_INSERT_ID() INTO vNewTicket;
-
- INSERT INTO vn.sale(ticketFk, itemFk, concept, quantity, price, discount)
- SELECT vNewTicket, s.itemFk , s.concept , s.quantity , s.price , s.discount
- FROM vn.sale s
- WHERE s.ticketFk = vOriginalTicket;
-
+BEGIN
+
+ INSERT INTO vn.ticket(clientFk, addressFk, shipped, warehouseFk, companyFk, landed)
+ SELECT t.clientFk , t.addressFk , t.shipped ,w.id, t.companyFk , t.landed
+ FROM vn.ticket t
+ JOIN vn.warehouse w ON w.name = 'INVENTARIO'
+ WHERE t.id = vOriginalTicket;
+
+ SELECT LAST_INSERT_ID() INTO vNewTicket;
+
+ INSERT INTO vn.sale(ticketFk, itemFk, concept, quantity, price, discount)
+ SELECT vNewTicket, s.itemFk , s.concept , s.quantity , s.price , s.discount
+ FROM vn.sale s
+ WHERE s.ticketFk = vOriginalTicket;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -82111,62 +82111,62 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_canMerge`(vDated DATE, vScopeDays INT, vLitersMax INT, vLinesMax INT, vWarehouseFk INT)
-BEGIN
-/**
- * Devuelve un listado de tickets susceptibles de fusionarse con otros tickets en el futuro
- *
- * @param vDated Fecha en cuestión
- * @param vScopeDays Dias en el futuro a sondear
- * @param vLitersMax Volumen máximo de los tickets a catapultar
- * @param vLinesMax Número máximo de lineas de los tickets a catapultar
- * @param vWarehouseFk Identificador de vn.warehouse
- */
- SELECT sv.ticketFk ,
- GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) ipt,
- CAST(sum(litros) AS DECIMAL(10,0)) liters,
- CAST(count(*) AS DECIMAL(10,0)) `lines`,
- st.name state,
- sub2.id ticketFuture,
- sub2.shipped,
- sub2.iptd tfIpt,
- sub2.state tfState
- FROM vn.saleVolume sv
- JOIN vn.sale s ON s.id = sv.saleFk
- JOIN vn.item i ON i.id = s.itemFk
- JOIN vn.ticket t ON t.id = sv.ticketFk
- JOIN vn.address a ON a.id = t.addressFk
- JOIN vn.province p ON p.id = a.provinceFk
- JOIN vn.country c ON c.id = p.countryFk
- JOIN vn.ticketState ts ON ts.ticketFk = t.id
- JOIN vn.state st ON st.id = ts.stateFk
- JOIN vn.alertLevel al ON al.id = ts.alertLevel
- LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
- LEFT JOIN (
- SELECT * FROM (
- SELECT
- t.addressFk ,
- t.id,
- t.shipped,
- st.name state,
- GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) iptd
- FROM vn.ticket t
- JOIN vn.ticketState ts ON ts.ticketFk = t.id
- JOIN vn.state st ON st.id = ts.stateFk
- JOIN vn.sale s ON s.ticketFk = t.id
- JOIN vn.item i ON i.id = s.itemFk
- WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, vScopeDays,vDated)
- AND util.dayend(TIMESTAMPADD(DAY, vScopeDays,vDated))
- AND t.warehouseFk = vWarehouseFk
- GROUP BY t.id
- ) sub
- GROUP BY sub.addressFk
- ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id
- WHERE t.shipped BETWEEN vDated AND util.dayend(vDated)
- AND t.warehouseFk = vWarehouseFk
- AND al.code = 'FREE'
- AND tp.ticketFk IS NULL
- GROUP BY sv.ticketFk
- HAVING liters <= vLitersMax AND `lines` <= vLinesMax AND ticketFuture;
+BEGIN
+/**
+ * Devuelve un listado de tickets susceptibles de fusionarse con otros tickets en el futuro
+ *
+ * @param vDated Fecha en cuestión
+ * @param vScopeDays Dias en el futuro a sondear
+ * @param vLitersMax Volumen máximo de los tickets a catapultar
+ * @param vLinesMax Número máximo de lineas de los tickets a catapultar
+ * @param vWarehouseFk Identificador de vn.warehouse
+ */
+ SELECT sv.ticketFk ,
+ GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) ipt,
+ CAST(sum(litros) AS DECIMAL(10,0)) liters,
+ CAST(count(*) AS DECIMAL(10,0)) `lines`,
+ st.name state,
+ sub2.id ticketFuture,
+ sub2.shipped,
+ sub2.iptd tfIpt,
+ sub2.state tfState
+ FROM vn.saleVolume sv
+ JOIN vn.sale s ON s.id = sv.saleFk
+ JOIN vn.item i ON i.id = s.itemFk
+ JOIN vn.ticket t ON t.id = sv.ticketFk
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.province p ON p.id = a.provinceFk
+ JOIN vn.country c ON c.id = p.countryFk
+ JOIN vn.ticketState ts ON ts.ticketFk = t.id
+ JOIN vn.state st ON st.id = ts.stateFk
+ JOIN vn.alertLevel al ON al.id = ts.alertLevel
+ LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
+ LEFT JOIN (
+ SELECT * FROM (
+ SELECT
+ t.addressFk ,
+ t.id,
+ t.shipped,
+ st.name state,
+ GROUP_CONCAT(DISTINCT i.itemPackingTypeFk ORDER BY i.itemPackingTypeFk) iptd
+ FROM vn.ticket t
+ JOIN vn.ticketState ts ON ts.ticketFk = t.id
+ JOIN vn.state st ON st.id = ts.stateFk
+ JOIN vn.sale s ON s.ticketFk = t.id
+ JOIN vn.item i ON i.id = s.itemFk
+ WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, vScopeDays,vDated)
+ AND util.dayend(TIMESTAMPADD(DAY, vScopeDays,vDated))
+ AND t.warehouseFk = vWarehouseFk
+ GROUP BY t.id
+ ) sub
+ GROUP BY sub.addressFk
+ ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id
+ WHERE t.shipped BETWEEN vDated AND util.dayend(vDated)
+ AND t.warehouseFk = vWarehouseFk
+ AND al.code = 'FREE'
+ AND tp.ticketFk IS NULL
+ GROUP BY sv.ticketFk
+ HAVING liters <= vLitersMax AND `lines` <= vLinesMax AND ticketFuture;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -82184,49 +82184,49 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_canMerge__`(vDated DATE, vScopeDays INT, vLitersMax INT, vLinesMax INT, vWarehouseFk INT)
-BEGIN
-
- /* Devuelve un listado de tickets susceptibles de fusionarse con otros tickets en el futuro
- *
- * @param vDated Fecha en cuestión
- * @param vScopeDays Dias en el futuro a sondear
- * @param vLitersMax Volumen máximo de los tickets a catapultar
- * @param vLinesMax Número máximo de lineas de los tickets a catapultar
- * @param vWarehouseFk Identificador de vn.warehouse
- */
-
- SELECT sv.ticketFk ,
- CAST(sum(litros) AS DECIMAL(10,0)) liters,
- CAST(count(*) AS DECIMAL(10,0)) `lines`,
- sub2.id ticketFuture,
- sub2.shipped
- FROM vn.saleVolume sv
- JOIN vn.ticket t ON t.id = sv.ticketFk
- JOIN vn.address a ON a.id = t.addressFk
- JOIN vn.province p ON p.id = a.provinceFk
- JOIN vn.country c ON c.id = p.countryFk
- JOIN vn.ticketState ts ON ts.ticketFk = t.id
- JOIN vn.alertLevel al ON al.id = ts.alertLevel
- LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
- LEFT JOIN tmp.routeDayMove ra ON ra.routeFk = t.routeFk
- LEFT JOIN (
- SELECT * FROM (
- SELECT t.addressFk , t.id, t.shipped
- FROM vn.ticket t
- WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, vScopeDays,vDated)
- AND util.dayend(TIMESTAMPADD(DAY, vScopeDays,vDated))
- AND t.warehouseFk = vWarehouseFk
- ) sub
- GROUP BY sub.addressFk
- ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id
- WHERE t.shipped BETWEEN vDated AND util.dayend(vDated)
- AND t.warehouseFk = vWarehouseFk
- AND al.code = 'FREE'
- AND tp.ticketFk IS NULL
- AND ra.routeFk IS NULL
- GROUP BY sv.ticketFk
- HAVING liters <= vLitersMax AND `lines` <= vLinesMax AND ticketFuture;
-
+BEGIN
+
+ /* Devuelve un listado de tickets susceptibles de fusionarse con otros tickets en el futuro
+ *
+ * @param vDated Fecha en cuestión
+ * @param vScopeDays Dias en el futuro a sondear
+ * @param vLitersMax Volumen máximo de los tickets a catapultar
+ * @param vLinesMax Número máximo de lineas de los tickets a catapultar
+ * @param vWarehouseFk Identificador de vn.warehouse
+ */
+
+ SELECT sv.ticketFk ,
+ CAST(sum(litros) AS DECIMAL(10,0)) liters,
+ CAST(count(*) AS DECIMAL(10,0)) `lines`,
+ sub2.id ticketFuture,
+ sub2.shipped
+ FROM vn.saleVolume sv
+ JOIN vn.ticket t ON t.id = sv.ticketFk
+ JOIN vn.address a ON a.id = t.addressFk
+ JOIN vn.province p ON p.id = a.provinceFk
+ JOIN vn.country c ON c.id = p.countryFk
+ JOIN vn.ticketState ts ON ts.ticketFk = t.id
+ JOIN vn.alertLevel al ON al.id = ts.alertLevel
+ LEFT JOIN vn.ticketParking tp ON tp.ticketFk = t.id
+ LEFT JOIN tmp.routeDayMove ra ON ra.routeFk = t.routeFk
+ LEFT JOIN (
+ SELECT * FROM (
+ SELECT t.addressFk , t.id, t.shipped
+ FROM vn.ticket t
+ WHERE t.shipped BETWEEN TIMESTAMPADD(DAY, vScopeDays,vDated)
+ AND util.dayend(TIMESTAMPADD(DAY, vScopeDays,vDated))
+ AND t.warehouseFk = vWarehouseFk
+ ) sub
+ GROUP BY sub.addressFk
+ ) sub2 ON sub2.addressFk = t.addressFk AND t.id != sub2.id
+ WHERE t.shipped BETWEEN vDated AND util.dayend(vDated)
+ AND t.warehouseFk = vWarehouseFk
+ AND al.code = 'FREE'
+ AND tp.ticketFk IS NULL
+ AND ra.routeFk IS NULL
+ GROUP BY sv.ticketFk
+ HAVING liters <= vLitersMax AND `lines` <= vLinesMax AND ticketFuture;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -82244,36 +82244,36 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_changeClient`(vNewClient INT, vUserFk INT)
-BEGIN
-
-/**
- * Dado un conjunto de tickets
- * cambia el cliente al nuevo cliente dado
- *
- * params @vNewClient nuevo cliente
- * params @vUserFk usuario que realiza el cambio
- *
- * table @tmp.ticket(ticketFk) conjunto de tickets
- */
-
- INSERT INTO ticketLog (originFk, userFk, `action`, changedModel, oldInstance, newInstance)
- SELECT t.id, vUserFk, 'update', 'Ticket', CONCAT('{"clientFk":',t.clientFk,'}'), CONCAT('{"clientFk":',vNewClient,'}')
- FROM ticket t
- JOIN tmp.ticket tt
- ON t.id = tt.ticketFk;
-
- UPDATE ticket t
- JOIN tmp.ticket tt
- ON t.id = tt.ticketFk
- SET t.clientFk = vNewClient;
-
- UPDATE ticket t
- JOIN tmp.ticket tt
- ON t.id = tt.ticketFk
- JOIN stowaway s
- ON s.shipFk = tt.ticketFk
- SET t.clientFk = vNewClient;
-
+BEGIN
+
+/**
+ * Dado un conjunto de tickets
+ * cambia el cliente al nuevo cliente dado
+ *
+ * params @vNewClient nuevo cliente
+ * params @vUserFk usuario que realiza el cambio
+ *
+ * table @tmp.ticket(ticketFk) conjunto de tickets
+ */
+
+ INSERT INTO ticketLog (originFk, userFk, `action`, changedModel, oldInstance, newInstance)
+ SELECT t.id, vUserFk, 'update', 'Ticket', CONCAT('{"clientFk":',t.clientFk,'}'), CONCAT('{"clientFk":',vNewClient,'}')
+ FROM ticket t
+ JOIN tmp.ticket tt
+ ON t.id = tt.ticketFk;
+
+ UPDATE ticket t
+ JOIN tmp.ticket tt
+ ON t.id = tt.ticketFk
+ SET t.clientFk = vNewClient;
+
+ UPDATE ticket t
+ JOIN tmp.ticket tt
+ ON t.id = tt.ticketFk
+ JOIN stowaway s
+ ON s.shipFk = tt.ticketFk
+ SET t.clientFk = vNewClient;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -83359,41 +83359,41 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_DelayTruck`(vWarehouserFk INT, vHour INT, vMinute INT)
-BEGIN
-
- DECLARE done INT DEFAULT FALSE;
- DECLARE vTicketFk INT;
- DECLARE cur1 CURSOR FOR SELECT ticketFk FROM tmp.ticket;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-
- CALL vn.productionControl(vWarehouserFk,0) ;
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
- CREATE TEMPORARY TABLE tmp.ticket
- SELECT ticketFk
- FROM tmp.productionBuffer
- WHERE shipped = curdate()
- AND problem LIKE '%I:%'
- AND (HH <= vHour OR HH = vHour AND mm < vMinute)
- AND alertLevel = 0;
-
- OPEN cur1;
-
- read_loop: LOOP
-
- FETCH cur1 INTO vTicketFk;
-
- IF done THEN
- LEAVE read_loop;
- END IF;
-
- CALL vn.ticket_DelayTruckSplit(vTicketFk);
-
- END LOOP;
-
- CLOSE cur1;
-
+BEGIN
+
+ DECLARE done INT DEFAULT FALSE;
+ DECLARE vTicketFk INT;
+ DECLARE cur1 CURSOR FOR SELECT ticketFk FROM tmp.ticket;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
+
+ CALL vn.productionControl(vWarehouserFk,0) ;
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
+ CREATE TEMPORARY TABLE tmp.ticket
+ SELECT ticketFk
+ FROM tmp.productionBuffer
+ WHERE shipped = curdate()
+ AND problem LIKE '%I:%'
+ AND (HH <= vHour OR HH = vHour AND mm < vMinute)
+ AND alertLevel = 0;
+
+ OPEN cur1;
+
+ read_loop: LOOP
+
+ FETCH cur1 INTO vTicketFk;
+
+ IF done THEN
+ LEAVE read_loop;
+ END IF;
+
+ CALL vn.ticket_DelayTruckSplit(vTicketFk);
+
+ END LOOP;
+
+ CLOSE cur1;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -83665,106 +83665,106 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_getFromFloramondo`(vDateFrom DATE, vDateTo DATE)
-BEGIN
-
-/**
- * Genera una tabla con la lista de tickets de Floramondo para una fecha determinada
- * @param vDated Fecha de preparación de los pedidos
- * @return tmp.ticketFloramondo(ticketFk, clientName, agencyName, freight, expeditionCount, margin, trolleys, pallets)
- */
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticketFloramondo;
- CREATE TEMPORARY TABLE tmp.ticketFloramondo
- (ticketFk INT PRIMARY KEY,
- clientName VARCHAR(50),
- agencyName VARCHAR(50),
- freight DECIMAL(10,2) DEFAULT 0,
- expeditionCount INT,
- margin DECIMAL(10,3) DEFAULT 0,
- trolleys INT DEFAULT 0,
- shipped DATE,
- pallets INT DEFAULT 0)
- ENGINE = MEMORY;
-
- INSERT INTO tmp.ticketFloramondo(ticketFk, clientName, agencyName, shipped)
- SELECT t.id ticketFk, t.nickname , am.name, t.shipped
- FROM vn.ticket t
- JOIN vn.agencyMode am ON am.id = t.agencyModeFk
- JOIN vn.warehouse w ON w.id = t.warehouseFk AND w.code IN ('VNH','FLM')
- AND t.shipped BETWEEN vDateFrom AND TIMESTAMPADD(HOUR, 23, vDateTo);
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
- CREATE TEMPORARY TABLE tmp.ticket
- (ticketFk INT(11) PRIMARY KEY)
- SELECT ticketFk
- FROM tmp.ticketFloramondo;
-
- -- Freight
- UPDATE tmp.ticketFloramondo tf
- JOIN (SELECT SUM(sc.value * s.quantity) freight, t.ticketFk
- FROM vn.saleComponent sc
- JOIN vn.component c ON c.id = sc.componentFk
- JOIN vn.componentType ct ON ct.id = c.typeFk
- JOIN vn.sale s ON s.id = sc.saleFk
- JOIN tmp.ticket t ON t.ticketFk = s.ticketFk
- WHERE ct.code = 'FREIGHT'
- GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
- SET tf.freight = sb.freight;
-
- -- Freight service
- UPDATE tmp.ticketFloramondo tf
- JOIN (SELECT SUM(ts.price * ts.quantity) service, t.ticketFk
- FROM vn.ticketService ts
- JOIN tmp.ticket t ON t.ticketFk = ts.ticketFk
- GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
- SET tf.freight = tf.freight + sb.service;
-
- -- Expedition Count
- UPDATE tmp.ticketFloramondo tf
- JOIN (SELECT COUNT(e.id) expeditionCount, t.ticketFk
- FROM vn.expedition e
- RIGHT JOIN tmp.ticket t ON t.ticketFk = e.ticketFk
- GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
- SET tf.expeditionCount = sb.expeditionCount;
-
- -- Margin
- UPDATE tmp.ticketFloramondo tf
- JOIN (SELECT SUM(IF(ct.code = 'COST',sc.value, 0)) cost,
- SUM(IF(ct.isMargin, sc.value, 0)) margin,
- t.ticketFk
- FROM vn.saleComponent sc
- JOIN vn.component c ON c.id = sc.componentFk
- JOIN vn.componentType ct ON ct.id = c.typeFk
- JOIN vn.sale s ON s.id = sc.saleFk
- JOIN tmp.ticket t ON t.ticketFk = s.ticketFk
- GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
- SET tf.margin = sb.margin / sb.cost;
-
- -- Trolleys
- UPDATE tmp.ticketFloramondo tf
- JOIN (SELECT SUM(tp.quantity) trolleys, t.ticketFk
- FROM vn.ticketPackaging tp
- JOIN tmp.ticket t ON t.ticketFk = tp.ticketFk
- JOIN vn.packaging p ON p.id = tp.packagingFk
- WHERE p.isTrolley
- GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
- SET tf.trolleys = sb.trolleys;
-
- -- Pallets
- UPDATE tmp.ticketFloramondo tf
- JOIN (SELECT SUM(tp.quantity) pallets, t.ticketFk
- FROM vn.ticketPackaging tp
- JOIN tmp.ticket t ON t.ticketFk = tp.ticketFk
- JOIN vn.packaging p ON p.id = tp.packagingFk
- WHERE p.isPallet
- GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
- SET tf.pallets = sb.pallets;
-
- SELECT * FROM tmp.ticketFloramondo;
-
- DROP TEMPORARY TABLE tmp.ticket;
- DROP TEMPORARY TABLE tmp.ticketFloramondo;
-
+BEGIN
+
+/**
+ * Genera una tabla con la lista de tickets de Floramondo para una fecha determinada
+ * @param vDated Fecha de preparación de los pedidos
+ * @return tmp.ticketFloramondo(ticketFk, clientName, agencyName, freight, expeditionCount, margin, trolleys, pallets)
+ */
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticketFloramondo;
+ CREATE TEMPORARY TABLE tmp.ticketFloramondo
+ (ticketFk INT PRIMARY KEY,
+ clientName VARCHAR(50),
+ agencyName VARCHAR(50),
+ freight DECIMAL(10,2) DEFAULT 0,
+ expeditionCount INT,
+ margin DECIMAL(10,3) DEFAULT 0,
+ trolleys INT DEFAULT 0,
+ shipped DATE,
+ pallets INT DEFAULT 0)
+ ENGINE = MEMORY;
+
+ INSERT INTO tmp.ticketFloramondo(ticketFk, clientName, agencyName, shipped)
+ SELECT t.id ticketFk, t.nickname , am.name, t.shipped
+ FROM vn.ticket t
+ JOIN vn.agencyMode am ON am.id = t.agencyModeFk
+ JOIN vn.warehouse w ON w.id = t.warehouseFk AND w.code IN ('VNH','FLM')
+ AND t.shipped BETWEEN vDateFrom AND TIMESTAMPADD(HOUR, 23, vDateTo);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
+ CREATE TEMPORARY TABLE tmp.ticket
+ (ticketFk INT(11) PRIMARY KEY)
+ SELECT ticketFk
+ FROM tmp.ticketFloramondo;
+
+ -- Freight
+ UPDATE tmp.ticketFloramondo tf
+ JOIN (SELECT SUM(sc.value * s.quantity) freight, t.ticketFk
+ FROM vn.saleComponent sc
+ JOIN vn.component c ON c.id = sc.componentFk
+ JOIN vn.componentType ct ON ct.id = c.typeFk
+ JOIN vn.sale s ON s.id = sc.saleFk
+ JOIN tmp.ticket t ON t.ticketFk = s.ticketFk
+ WHERE ct.code = 'FREIGHT'
+ GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
+ SET tf.freight = sb.freight;
+
+ -- Freight service
+ UPDATE tmp.ticketFloramondo tf
+ JOIN (SELECT SUM(ts.price * ts.quantity) service, t.ticketFk
+ FROM vn.ticketService ts
+ JOIN tmp.ticket t ON t.ticketFk = ts.ticketFk
+ GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
+ SET tf.freight = tf.freight + sb.service;
+
+ -- Expedition Count
+ UPDATE tmp.ticketFloramondo tf
+ JOIN (SELECT COUNT(e.id) expeditionCount, t.ticketFk
+ FROM vn.expedition e
+ RIGHT JOIN tmp.ticket t ON t.ticketFk = e.ticketFk
+ GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
+ SET tf.expeditionCount = sb.expeditionCount;
+
+ -- Margin
+ UPDATE tmp.ticketFloramondo tf
+ JOIN (SELECT SUM(IF(ct.code = 'COST',sc.value, 0)) cost,
+ SUM(IF(ct.isMargin, sc.value, 0)) margin,
+ t.ticketFk
+ FROM vn.saleComponent sc
+ JOIN vn.component c ON c.id = sc.componentFk
+ JOIN vn.componentType ct ON ct.id = c.typeFk
+ JOIN vn.sale s ON s.id = sc.saleFk
+ JOIN tmp.ticket t ON t.ticketFk = s.ticketFk
+ GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
+ SET tf.margin = sb.margin / sb.cost;
+
+ -- Trolleys
+ UPDATE tmp.ticketFloramondo tf
+ JOIN (SELECT SUM(tp.quantity) trolleys, t.ticketFk
+ FROM vn.ticketPackaging tp
+ JOIN tmp.ticket t ON t.ticketFk = tp.ticketFk
+ JOIN vn.packaging p ON p.id = tp.packagingFk
+ WHERE p.isTrolley
+ GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
+ SET tf.trolleys = sb.trolleys;
+
+ -- Pallets
+ UPDATE tmp.ticketFloramondo tf
+ JOIN (SELECT SUM(tp.quantity) pallets, t.ticketFk
+ FROM vn.ticketPackaging tp
+ JOIN tmp.ticket t ON t.ticketFk = tp.ticketFk
+ JOIN vn.packaging p ON p.id = tp.packagingFk
+ WHERE p.isPallet
+ GROUP BY t.ticketFk) sb ON sb.ticketFk = tf.ticketFk
+ SET tf.pallets = sb.pallets;
+
+ SELECT * FROM tmp.ticketFloramondo;
+
+ DROP TEMPORARY TABLE tmp.ticket;
+ DROP TEMPORARY TABLE tmp.ticketFloramondo;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84404,24 +84404,24 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_merge`(vSelf INT, vTicketTargetFk INT)
-BEGIN
-
- /**
- * Fusiona el primer ticket al segundo
- *
- * @param vSelf Número de ticket a fusionar
- * @param vTicketTargetFk Ticket destino
- *
- */
-
- UPDATE vn.sale s
- SET s.ticketFk = vTicketTargetFk
- WHERE s.ticketFk = vSelf;
-
- UPDATE vn.ticket t
- SET t.shipped = TIMESTAMPADD(YEAR, - YEAR(NOW()) MOD 2000, t.shipped )
- WHERE t.id = vSelf;
-
+BEGIN
+
+ /**
+ * Fusiona el primer ticket al segundo
+ *
+ * @param vSelf Número de ticket a fusionar
+ * @param vTicketTargetFk Ticket destino
+ *
+ */
+
+ UPDATE vn.sale s
+ SET s.ticketFk = vTicketTargetFk
+ WHERE s.ticketFk = vSelf;
+
+ UPDATE vn.ticket t
+ SET t.shipped = TIMESTAMPADD(YEAR, - YEAR(NOW()) MOD 2000, t.shipped )
+ WHERE t.id = vSelf;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84496,28 +84496,28 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_recalc`(vTicketId INT)
-BEGIN
-/**
- * Calcula y guarda el total con/sin IVA en un ticket.
- *
- * @param vTicketId Identificador del ticket
- */
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
- CREATE TEMPORARY TABLE tmp.ticket
- ENGINE = MEMORY
- SELECT vTicketId ticketFk;
-
- CALL ticketGetTotal;
-
- UPDATE ticket t
- JOIN tmp.ticketTotal tt ON tt.ticketFk = t.id
- SET t.totalWithVat = tt.total,
- t.totalWithoutVat = tt.totalWithoutVat;
-
- DROP TEMPORARY TABLE
- tmp.ticket,
- tmp.ticketTotal;
+BEGIN
+/**
+ * Calcula y guarda el total con/sin IVA en un ticket.
+ *
+ * @param vTicketId Identificador del ticket
+ */
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticket;
+ CREATE TEMPORARY TABLE tmp.ticket
+ ENGINE = MEMORY
+ SELECT vTicketId ticketFk;
+
+ CALL ticketGetTotal;
+
+ UPDATE ticket t
+ JOIN tmp.ticketTotal tt ON tt.ticketFk = t.id
+ SET t.totalWithVat = tt.total,
+ t.totalWithoutVat = tt.totalWithoutVat;
+
+ DROP TEMPORARY TABLE
+ tmp.ticket,
+ tmp.ticketTotal;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84535,91 +84535,91 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_recalcComponents`(IN vTicketFk BIGINT, vIsTicketEditable BOOLEAN)
-proc: BEGIN
-
-/**
- * Este procedimiento recalcula los componentes de un ticket,
- * eliminando los componentes existentes e insertandolos de nuevo
- *
- * @param vTicketFk Id del ticket
- * @param vIsTicketEditable si no se quiere forzar llamar con NULL
- */
- DECLARE vShipped DATE;
- DECLARE vWarehouseFk SMALLINT;
- DECLARE vAgencyModeFk INT;
- DECLARE vAddressFk INT;
- DECLARE vLanded DATE;
- DECLARE vZoneFk INTEGER;
-
- IF vIsTicketEditable IS NULL THEN
- SELECT IFNULL(ts.alertLevel,0) = 0 AND IFNULL(t.refFk,'') = ''
- INTO vIsTicketEditable
- FROM ticket t LEFT JOIN ticketState ts ON t.id = ts.ticket
- WHERE id = vTicketFk;
- END IF;
-
- SELECT t.warehouseFk,
- t.shipped,
- t.addressFk,
- t.agencyModeFk,
- t.landed,
- t.zoneFk
- INTO vWarehouseFk, vShipped, vAddressFk, vAgencyModeFk, vLanded, vZoneFk
- FROM ticket t LEFT JOIN ticketState ts ON t.id = ts.ticket
- WHERE t.id = vTicketFk;
-
- CALL zone_getLanded(vShipped, vAddressFk, vAgencyModeFk, vWarehouseFk, TRUE);
-
- IF (SELECT COUNT(*) FROM tmp.zoneGetLanded LIMIT 1) = 0 THEN
- CALL util.throw('There is no zone for these parameters');
- END IF;
-
- IF vLanded IS NULL OR vZoneFk IS NULL THEN
-
- UPDATE ticket t
- SET t.landed = (SELECT landed FROM tmp.zoneGetLanded LIMIT 1)
- WHERE t.id = vTicketFk AND t.landed IS NULL;
-
- IF vZoneFk IS NULL THEN
- SELECT zoneFk INTO vZoneFk FROM tmp.zoneGetLanded LIMIT 1;
- UPDATE ticket t
- SET t.zoneFk = vZoneFk
- WHERE t.id = vTicketFk AND t.zoneFk IS NULL;
- END IF;
-
- END IF;
-
- DROP TEMPORARY TABLE tmp.zoneGetLanded;
-
- -- rellena la tabla buyUltimate con la ultima compra
- CALL buyUltimate (vWarehouseFk, vShipped);
-
- DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot;
- CREATE TEMPORARY TABLE tmp.ticketLot
- SELECT vWarehouseFk warehouseFk, NULL available,
- s.itemFk, bu.buyFk, vZoneFk zoneFk
- FROM sale s
- LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk
- WHERE s.ticketFk = vTicketFk
- GROUP BY s.itemFk;
-
- CALL catalog_componentPrepare();
- CALL catalog_componentCalculate(vZoneFk, vAddressFk, vShipped, vWarehouseFk);
-
- DROP TEMPORARY TABLE IF EXISTS tmp.sale;
- CREATE TEMPORARY TABLE tmp.sale
- (PRIMARY KEY (saleFk)) ENGINE = MEMORY
- SELECT id saleFk, vWarehouseFk warehouseFk
- FROM sale s
- WHERE s.ticketFk = vTicketFk;
-
- -- si el ticket esta facturado, respeta los precios
- CALL ticketComponentUpdateSale(IF(vIsTicketEditable, 1, 6));
-
- CALL catalog_componentPurge();
- DROP TEMPORARY TABLE
- tmp.buyUltimate,
- tmp.sale;
+proc: BEGIN
+
+/**
+ * Este procedimiento recalcula los componentes de un ticket,
+ * eliminando los componentes existentes e insertandolos de nuevo
+ *
+ * @param vTicketFk Id del ticket
+ * @param vIsTicketEditable si no se quiere forzar llamar con NULL
+ */
+ DECLARE vShipped DATE;
+ DECLARE vWarehouseFk SMALLINT;
+ DECLARE vAgencyModeFk INT;
+ DECLARE vAddressFk INT;
+ DECLARE vLanded DATE;
+ DECLARE vZoneFk INTEGER;
+
+ IF vIsTicketEditable IS NULL THEN
+ SELECT IFNULL(ts.alertLevel,0) = 0 AND IFNULL(t.refFk,'') = ''
+ INTO vIsTicketEditable
+ FROM ticket t LEFT JOIN ticketState ts ON t.id = ts.ticket
+ WHERE id = vTicketFk;
+ END IF;
+
+ SELECT t.warehouseFk,
+ t.shipped,
+ t.addressFk,
+ t.agencyModeFk,
+ t.landed,
+ t.zoneFk
+ INTO vWarehouseFk, vShipped, vAddressFk, vAgencyModeFk, vLanded, vZoneFk
+ FROM ticket t LEFT JOIN ticketState ts ON t.id = ts.ticket
+ WHERE t.id = vTicketFk;
+
+ CALL zone_getLanded(vShipped, vAddressFk, vAgencyModeFk, vWarehouseFk, TRUE);
+
+ IF (SELECT COUNT(*) FROM tmp.zoneGetLanded LIMIT 1) = 0 THEN
+ CALL util.throw('There is no zone for these parameters');
+ END IF;
+
+ IF vLanded IS NULL OR vZoneFk IS NULL THEN
+
+ UPDATE ticket t
+ SET t.landed = (SELECT landed FROM tmp.zoneGetLanded LIMIT 1)
+ WHERE t.id = vTicketFk AND t.landed IS NULL;
+
+ IF vZoneFk IS NULL THEN
+ SELECT zoneFk INTO vZoneFk FROM tmp.zoneGetLanded LIMIT 1;
+ UPDATE ticket t
+ SET t.zoneFk = vZoneFk
+ WHERE t.id = vTicketFk AND t.zoneFk IS NULL;
+ END IF;
+
+ END IF;
+
+ DROP TEMPORARY TABLE tmp.zoneGetLanded;
+
+ -- rellena la tabla buyUltimate con la ultima compra
+ CALL buyUltimate (vWarehouseFk, vShipped);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.ticketLot;
+ CREATE TEMPORARY TABLE tmp.ticketLot
+ SELECT vWarehouseFk warehouseFk, NULL available,
+ s.itemFk, bu.buyFk, vZoneFk zoneFk
+ FROM sale s
+ LEFT JOIN tmp.buyUltimate bu ON bu.itemFk = s.itemFk
+ WHERE s.ticketFk = vTicketFk
+ GROUP BY s.itemFk;
+
+ CALL catalog_componentPrepare();
+ CALL catalog_componentCalculate(vZoneFk, vAddressFk, vShipped, vWarehouseFk);
+
+ DROP TEMPORARY TABLE IF EXISTS tmp.sale;
+ CREATE TEMPORARY TABLE tmp.sale
+ (PRIMARY KEY (saleFk)) ENGINE = MEMORY
+ SELECT id saleFk, vWarehouseFk warehouseFk
+ FROM sale s
+ WHERE s.ticketFk = vTicketFk;
+
+ -- si el ticket esta facturado, respeta los precios
+ CALL ticketComponentUpdateSale(IF(vIsTicketEditable, 1, 6));
+
+ CALL catalog_componentPurge();
+ DROP TEMPORARY TABLE
+ tmp.buyUltimate,
+ tmp.sale;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84832,17 +84832,17 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_requestRecalc`(vSelf INT)
-proc: BEGIN
-/**
- * Adds a request to recalculate the ticket total.
- *
- * @param vSelf The ticket identifier
- */
- IF vSelf IS NULL THEN
- LEAVE proc;
- END IF;
-
- INSERT IGNORE INTO ticketRecalc SET ticketFk = vSelf;
+proc: BEGIN
+/**
+ * Adds a request to recalculate the ticket total.
+ *
+ * @param vSelf The ticket identifier
+ */
+ IF vSelf IS NULL THEN
+ LEAVE proc;
+ END IF;
+
+ INSERT IGNORE INTO ticketRecalc SET ticketFk = vSelf;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84860,27 +84860,27 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_setNextState`(vSelf INT)
-BEGIN
-/**
- * Cambia el estado del ticket al siguiente estado según la tabla state
- *
- * @param vSelf id dle ticket
- */
- DECLARE vStateFk INT;
- DECLARE vNewStateFk INT;
-
- SELECT stateFk INTO vStateFk
- FROM ticketState
- WHERE ticketFk = vSelf;
-
- SELECT nextStateFk INTO vNewStateFk
- FROM state
- WHERE id = vStateFk;
-
- INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
- VALUES (vNewStateFk, vSelf, account.myUser_getId());
-
- SELECT TRUE AS IsUpdated;
+BEGIN
+/**
+ * Cambia el estado del ticket al siguiente estado según la tabla state
+ *
+ * @param vSelf id dle ticket
+ */
+ DECLARE vStateFk INT;
+ DECLARE vNewStateFk INT;
+
+ SELECT stateFk INTO vStateFk
+ FROM ticketState
+ WHERE ticketFk = vSelf;
+
+ SELECT nextStateFk INTO vNewStateFk
+ FROM state
+ WHERE id = vStateFk;
+
+ INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
+ VALUES (vNewStateFk, vSelf, account.myUser_getId());
+
+ SELECT TRUE AS IsUpdated;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84898,40 +84898,40 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_setPreviousState`(vTicketFk INT)
-BEGIN
-
- DECLARE vControlFk INT;
-
- SELECT MAX(inter_id) INTO vControlFk
- FROM vncontrol.inter
- WHERE Id_Ticket = vTicketFk;
-
- IF (SELECT s.code
- FROM vn.state s
- JOIN vncontrol.inter i ON i.state_id = s.id
- WHERE i.inter_id = vControlFk)
- = 'PREVIOUS_PREPARATION' THEN
-
- SELECT inter_id
- INTO vControlFk
- FROM vncontrol.inter i
- JOIN vn.state s ON i.state_id = s.id
- WHERE Id_Ticket = vTicketFk
- AND inter_id < vControlFk
- AND s.code != 'PREVIOUS_PREPARATION'
- ORDER BY inter_id DESC
- LIMIT 1;
-
- INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
- SELECT s.nextStateFk, i.Id_Ticket, account.myUser_getId()
- FROM vncontrol.inter i
- JOIN vn.state s ON i.state_id = s.id
- WHERE inter_id = vControlFk;
-
- END IF;
-
- SELECT TRUE AS IsUpdated;
-
+BEGIN
+
+ DECLARE vControlFk INT;
+
+ SELECT MAX(inter_id) INTO vControlFk
+ FROM vncontrol.inter
+ WHERE Id_Ticket = vTicketFk;
+
+ IF (SELECT s.code
+ FROM vn.state s
+ JOIN vncontrol.inter i ON i.state_id = s.id
+ WHERE i.inter_id = vControlFk)
+ = 'PREVIOUS_PREPARATION' THEN
+
+ SELECT inter_id
+ INTO vControlFk
+ FROM vncontrol.inter i
+ JOIN vn.state s ON i.state_id = s.id
+ WHERE Id_Ticket = vTicketFk
+ AND inter_id < vControlFk
+ AND s.code != 'PREVIOUS_PREPARATION'
+ ORDER BY inter_id DESC
+ LIMIT 1;
+
+ INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
+ SELECT s.nextStateFk, i.Id_Ticket, account.myUser_getId()
+ FROM vncontrol.inter i
+ JOIN vn.state s ON i.state_id = s.id
+ WHERE inter_id = vControlFk;
+
+ END IF;
+
+ SELECT TRUE AS IsUpdated;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -84949,30 +84949,30 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `ticket_setState`(vTicketFk INT, vStateCode VARCHAR(45))
-BEGIN
-
- /* Modifica el estado de un ticket
- *
- * @param vTicketFk el id del ticket
- * @param vStateCode estado a modificar del ticket
- *
- */
-
- DECLARE vAlertLevel INT;
-
- SELECT s.alertLevel INTO vAlertLevel
- FROM vn.state s
- JOIN vn.ticketState ts ON ts.stateFk = s.id
- WHERE ts.ticketFk = vTicketFk;
-
- IF !(vStateCode = 'ON_CHECKING' AND vAlertLevel > 1) THEN
-
- INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
- SELECT id, vTicketFk, account.myUser_getId()
- FROM vn.state
- WHERE `code` = vStateCode collate utf8_unicode_ci;
-
- END IF;
+BEGIN
+
+ /* Modifica el estado de un ticket
+ *
+ * @param vTicketFk el id del ticket
+ * @param vStateCode estado a modificar del ticket
+ *
+ */
+
+ DECLARE vAlertLevel INT;
+
+ SELECT s.alertLevel INTO vAlertLevel
+ FROM vn.state s
+ JOIN vn.ticketState ts ON ts.stateFk = s.id
+ WHERE ts.ticketFk = vTicketFk;
+
+ IF !(vStateCode = 'ON_CHECKING' AND vAlertLevel > 1) THEN
+
+ INSERT INTO vncontrol.inter(state_id, Id_Ticket, Id_Trabajador)
+ SELECT id, vTicketFk, account.myUser_getId()
+ FROM vn.state
+ WHERE `code` = vStateCode collate utf8_unicode_ci;
+
+ END IF;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -86192,27 +86192,27 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `tpvTransaction_checkStatus`()
-BEGIN
-/**
- *
- * Envia mail con los cobros web no
- * trasladados a la ficha del cliente.
- *
- */
- INSERT INTO mail (receiver,replyTo,subject,body)
- SELECT 'administracion@verdnatura.es',
- 'noreply@verdnatura.es',
- CONCAT('Cobro web no trasladado a la ficha del cliente ', t.clientFk),
- CONCAT('Hay un importe de ', t.amount/100, '€ del cliente ', t.clientFk, ' con fecha ', t.created,
- ', que no se ha trasladado a recibos. Si nos ha llegado el importe al banco confirme el pago en
-
- https://salix.verdnatura.es/#!/client/',t.clientFk,'/web-payment')
- FROM hedera.tpvTransaction t
- WHERE t.receiptFk IS NULL
- AND t.status = 'ok'
- AND t.created < DATE_ADD(NOW(),INTERVAL - 2 DAY)
- GROUP BY t.clientFk;
-
+BEGIN
+/**
+ *
+ * Envia mail con los cobros web no
+ * trasladados a la ficha del cliente.
+ *
+ */
+ INSERT INTO mail (receiver,replyTo,subject,body)
+ SELECT 'administracion@verdnatura.es',
+ 'noreply@verdnatura.es',
+ CONCAT('Cobro web no trasladado a la ficha del cliente ', t.clientFk),
+ CONCAT('Hay un importe de ', t.amount/100, '€ del cliente ', t.clientFk, ' con fecha ', t.created,
+ ', que no se ha trasladado a recibos. Si nos ha llegado el importe al banco confirme el pago en
+
+ https://salix.verdnatura.es/#!/client/',t.clientFk,'/web-payment')
+ FROM hedera.tpvTransaction t
+ WHERE t.receiptFk IS NULL
+ AND t.status = 'ok'
+ AND t.created < DATE_ADD(NOW(),INTERVAL - 2 DAY)
+ GROUP BY t.clientFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -86273,21 +86273,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `travelVolume_get`(vFromDated DATE, vToDated DATE, vWarehouseFk INT)
-BEGIN
-
- SELECT tr.landed Fecha,
- a.name Agencia,
- count(DISTINCT e.id) numEntradas,
- FLOOR(sum(item_getVolume(b.itemFk, b.packageFk) * b.stickers / 1000000 )) AS m3
- FROM vn.travel tr
- JOIN vn.agencyMode a ON a.id = tr.agencyFk
- JOIN vn.entry e ON e.travelFk = tr.id
- JOIN vn.buy b ON b.entryFk = e.id
- WHERE tr.landed BETWEEN vFromDated AND vToDated
- AND e.isRaid = FALSE
- AND tr.warehouseInFk = vWarehouseFk
- GROUP BY tr.landed , a.name ;
-
+BEGIN
+
+ SELECT tr.landed Fecha,
+ a.name Agencia,
+ count(DISTINCT e.id) numEntradas,
+ FLOOR(sum(item_getVolume(b.itemFk, b.packageFk) * b.stickers / 1000000 )) AS m3
+ FROM vn.travel tr
+ JOIN vn.agencyMode a ON a.id = tr.agencyFk
+ JOIN vn.entry e ON e.travelFk = tr.id
+ JOIN vn.buy b ON b.entryFk = e.id
+ WHERE tr.landed BETWEEN vFromDated AND vToDated
+ AND e.isRaid = FALSE
+ AND tr.warehouseInFk = vWarehouseFk
+ GROUP BY tr.landed , a.name ;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -86335,54 +86335,54 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `travel_clone`(vSelf INT, vDays INT, OUT vNewTravelFk INT)
-BEGIN
-
- /**
- * Clona un travel el número de dias indicado y devuelve su Id
- *
- * @param vSelf Identificador de vn.travel
- * @param vDays Número de dias a futuro
- *
- * @return vNewTravelFk Nuevo número de travel
- */
-
- SELECT tr.id INTO vNewTravelFk
- FROM vn.travel tr
- JOIN vn.travel tr2 USING(shipped, warehouseInFk, warehouseOutFk, agencyFk, `ref`)
- WHERE tr2.id = vSelf
- AND tr.landed = TIMESTAMPADD(DAY, vDays, tr2.landed);
-
- IF ISNULL(vNewTravelFk) THEN
-
- START TRANSACTION;
-
- INSERT INTO vn.travel( shipped,
- shipmentHour,
- landed,
- landingHour,
- warehouseInFk,
- warehouseOutFk,
- agencyFk,
- `ref`,
- cargoSupplierFk)
- SELECT shipped,
- shipmentHour,
- TIMESTAMPADD(DAY, vDays, landed),
- landingHour,
- warehouseInFk,
- warehouseOutFk,
- agencyFk,
- `ref`,
- cargoSupplierFk
- FROM vn.travel
- WHERE id = vSelf;
-
- SELECT LAST_INSERT_ID() INTO vNewTravelFk;
-
- COMMIT;
-
- END IF;
-
+BEGIN
+
+ /**
+ * Clona un travel el número de dias indicado y devuelve su Id
+ *
+ * @param vSelf Identificador de vn.travel
+ * @param vDays Número de dias a futuro
+ *
+ * @return vNewTravelFk Nuevo número de travel
+ */
+
+ SELECT tr.id INTO vNewTravelFk
+ FROM vn.travel tr
+ JOIN vn.travel tr2 USING(shipped, warehouseInFk, warehouseOutFk, agencyFk, `ref`)
+ WHERE tr2.id = vSelf
+ AND tr.landed = TIMESTAMPADD(DAY, vDays, tr2.landed);
+
+ IF ISNULL(vNewTravelFk) THEN
+
+ START TRANSACTION;
+
+ INSERT INTO vn.travel( shipped,
+ shipmentHour,
+ landed,
+ landingHour,
+ warehouseInFk,
+ warehouseOutFk,
+ agencyFk,
+ `ref`,
+ cargoSupplierFk)
+ SELECT shipped,
+ shipmentHour,
+ TIMESTAMPADD(DAY, vDays, landed),
+ landingHour,
+ warehouseInFk,
+ warehouseOutFk,
+ agencyFk,
+ `ref`,
+ cargoSupplierFk
+ FROM vn.travel
+ WHERE id = vSelf;
+
+ SELECT LAST_INSERT_ID() INTO vNewTravelFk;
+
+ COMMIT;
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -86399,146 +86399,146 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `travel_cloneWithEntries`(
- IN vTravelFk INT,
- IN vDateStart DATE,
- IN vDateEnd DATE,
- IN vWarehouseOutFk INT,
- IN vWarehouseInFk INT,
- IN vRef VARCHAR(255),
- IN vAgencyModeFk INT,
+CREATE DEFINER=`root`@`localhost` PROCEDURE `travel_cloneWithEntries`(
+ IN vTravelFk INT,
+ IN vDateStart DATE,
+ IN vDateEnd DATE,
+ IN vWarehouseOutFk INT,
+ IN vWarehouseInFk INT,
+ IN vRef VARCHAR(255),
+ IN vAgencyModeFk INT,
OUT vNewTravelFk INT)
-BEGIN
-/**
- * Clona un travel junto con sus entradas y compras
- *
- * @param vTravelFk travel plantilla a clonar
- * @param vDateStart fecha del shipment del nuevo travel
- * @param vDateEnd fecha del landing del nuevo travel
- * @param vWarehouseOutFk fecha del salida del nuevo travel
- * @param vWarehouseInFk warehouse de landing del nuevo travel
- * @param vRef referencia del nuevo travel
- * @param vAgencyModeFk del nuevo travel
- * @param vNewTravelFk id del nuevo travel
- */
- DECLARE vEntryNew INT;
- DECLARE vDone BOOLEAN DEFAULT FALSE;
- DECLARE vAuxEntryFk INT;
- DECLARE vRsEntry CURSOR FOR
- SELECT e.id
- FROM entry e
- JOIN travel t
- ON t.id = e.travelFk
- WHERE e.travelFk = vTravelFk;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
-
- DECLARE EXIT HANDLER FOR SQLEXCEPTION/*, 1062 Duplicate key*/
- BEGIN
- ROLLBACK;
-
- END;
-
- START TRANSACTION;
- INSERT INTO travel (shipped, landed, warehouseInFk, warehouseOutFk, agencyFk, `ref`, isDelivered, isReceived, m3, kg)
- SELECT vDateStart, vDateEnd, vWarehouseInFk, vWarehouseOutFk, vAgencyModeFk, vRef, isDelivered, isReceived, m3, kg
- FROM travel
- WHERE id = vTravelFk;
-
- SET vNewTravelFk = LAST_INSERT_ID();
- CALL logAdd(vNewTravelFk, 'insert', 'travel', CONCAT('clona travel ',vTravelFk));
- SET vDone = FALSE;
- SET @isModeInventory = TRUE;
- OPEN vRsEntry ;
- FETCH vRsEntry INTO vAuxEntryFk;
-
- WHILE NOT vDone DO
- INSERT INTO entry (
- supplierFk,
- ref,
- isInventory,
- isConfirmed,
- isOrdered,
- isRaid,
- commission,
- created,
- evaNotes,
- travelFk,
- currencyFk,
- companyFk,
- gestDocFk,
- invoiceInFk)
- SELECT supplierFk,
- ref,
- isInventory,
- isConfirmed,
- isOrdered,
- isRaid,
- commission,
- created,
- evaNotes,
- vNewTravelFk,
- currencyFk,
- companyFk,
- gestDocFk,
- invoiceInFk
- FROM entry
- WHERE id = vAuxEntryFk;
-
- SET vEntryNew = LAST_INSERT_ID();
-
- CALL logAdd(vEntryNew, 'insert', 'entry', CONCAT('clona entrada ',vAuxEntryFk));
- INSERT INTO buy (
- entryFk,
- itemFk,
- quantity,
- buyingValue,
- packageFk,
- stickers,
- freightValue,
- packageValue,
- comissionValue,
- packing,
- `grouping`,
- groupingMode,
- location,
- price1,
- price2,
- price3,
- minPrice,
- producer,
- printedStickers,
- isChecked,
- weight)
- SELECT vEntryNew,
- itemFk,
- quantity,
- buyingValue,
- packageFk,
- stickers,
- freightValue,
- packageValue,
- comissionValue,
- packing,
- `grouping`,
- groupingMode,
- location,
- price1,
- price2,
- price3,
- minPrice,
- producer,
- printedStickers,
- isChecked,
- weight
- FROM buy
- WHERE entryFk = vAuxEntryFk;
-
- FETCH vRsEntry INTO vAuxEntryFk;
- END WHILE;
- SET @isModeInventory = FALSE;
- CLOSE vRsEntry;
- COMMIT;
+BEGIN
+/**
+ * Clona un travel junto con sus entradas y compras
+ *
+ * @param vTravelFk travel plantilla a clonar
+ * @param vDateStart fecha del shipment del nuevo travel
+ * @param vDateEnd fecha del landing del nuevo travel
+ * @param vWarehouseOutFk fecha del salida del nuevo travel
+ * @param vWarehouseInFk warehouse de landing del nuevo travel
+ * @param vRef referencia del nuevo travel
+ * @param vAgencyModeFk del nuevo travel
+ * @param vNewTravelFk id del nuevo travel
+ */
+ DECLARE vEntryNew INT;
+ DECLARE vDone BOOLEAN DEFAULT FALSE;
+ DECLARE vAuxEntryFk INT;
+ DECLARE vRsEntry CURSOR FOR
+ SELECT e.id
+ FROM entry e
+ JOIN travel t
+ ON t.id = e.travelFk
+ WHERE e.travelFk = vTravelFk;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ DECLARE EXIT HANDLER FOR SQLEXCEPTION/*, 1062 Duplicate key*/
+ BEGIN
+ ROLLBACK;
+
+ END;
+
+ START TRANSACTION;
+ INSERT INTO travel (shipped, landed, warehouseInFk, warehouseOutFk, agencyFk, `ref`, isDelivered, isReceived, m3, kg)
+ SELECT vDateStart, vDateEnd, vWarehouseInFk, vWarehouseOutFk, vAgencyModeFk, vRef, isDelivered, isReceived, m3, kg
+ FROM travel
+ WHERE id = vTravelFk;
+
+ SET vNewTravelFk = LAST_INSERT_ID();
+ CALL logAdd(vNewTravelFk, 'insert', 'travel', CONCAT('clona travel ',vTravelFk));
+ SET vDone = FALSE;
+ SET @isModeInventory = TRUE;
+ OPEN vRsEntry ;
+ FETCH vRsEntry INTO vAuxEntryFk;
+
+ WHILE NOT vDone DO
+ INSERT INTO entry (
+ supplierFk,
+ ref,
+ isInventory,
+ isConfirmed,
+ isOrdered,
+ isRaid,
+ commission,
+ created,
+ evaNotes,
+ travelFk,
+ currencyFk,
+ companyFk,
+ gestDocFk,
+ invoiceInFk)
+ SELECT supplierFk,
+ ref,
+ isInventory,
+ isConfirmed,
+ isOrdered,
+ isRaid,
+ commission,
+ created,
+ evaNotes,
+ vNewTravelFk,
+ currencyFk,
+ companyFk,
+ gestDocFk,
+ invoiceInFk
+ FROM entry
+ WHERE id = vAuxEntryFk;
+
+ SET vEntryNew = LAST_INSERT_ID();
+
+ CALL logAdd(vEntryNew, 'insert', 'entry', CONCAT('clona entrada ',vAuxEntryFk));
+ INSERT INTO buy (
+ entryFk,
+ itemFk,
+ quantity,
+ buyingValue,
+ packageFk,
+ stickers,
+ freightValue,
+ packageValue,
+ comissionValue,
+ packing,
+ `grouping`,
+ groupingMode,
+ location,
+ price1,
+ price2,
+ price3,
+ minPrice,
+ producer,
+ printedStickers,
+ isChecked,
+ weight)
+ SELECT vEntryNew,
+ itemFk,
+ quantity,
+ buyingValue,
+ packageFk,
+ stickers,
+ freightValue,
+ packageValue,
+ comissionValue,
+ packing,
+ `grouping`,
+ groupingMode,
+ location,
+ price1,
+ price2,
+ price3,
+ minPrice,
+ producer,
+ printedStickers,
+ isChecked,
+ weight
+ FROM buy
+ WHERE entryFk = vAuxEntryFk;
+
+ FETCH vRsEntry INTO vAuxEntryFk;
+ END WHILE;
+ SET @isModeInventory = FALSE;
+ CLOSE vRsEntry;
+ COMMIT;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -86944,60 +86944,60 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `typeTagMake`(vTypeFk INT)
-BEGIN
-/*
- * Plantilla para modificar reemplazar todos los tags
- * por los valores que tienen los articulos
- *
- * @param vTypeFk tipo a modificar
- *
- */
- DELETE it.*
- FROM itemTag it
- JOIN item i ON i.id = it.itemFk
- WHERE i.typeFk = vTypeFk;
-
- INSERT INTO itemTag(itemFk, tagFk, value, priority)
- SELECT i.id, t.id, CONCAT(i.size,' cm'), 1
- FROM item i
- JOIN tag t ON t.name = 'Longitud' COLLATE utf8_general_ci
- WHERE i.typeFk = vTypeFk;
-
- INSERT INTO itemTag(itemFk, tagFk, value, priority)
- SELECT i.id, t.id, i.category, 5
- FROM item i
- JOIN tag t ON t.name = 'Categoria' COLLATE utf8_general_ci
- WHERE i.typeFk = vTypeFk;
-
- INSERT INTO itemTag(itemFk, tagFk, value, priority)
- SELECT i.id, t.id, ink.name, 2
- FROM item i
- JOIN tag t ON t.name = 'Color' COLLATE utf8_general_ci
- JOIN ink ON ink.id = i.inkFk
- WHERE i.typeFk = vTypeFk;
-
- INSERT INTO itemTag(itemFk, tagFk, value, priority)
- SELECT i.id, t.id, p.name, 3
- FROM item i
- JOIN tag t ON t.name = 'Productor' COLLATE utf8_general_ci
- JOIN producer p ON p.id = i.producerFk
- WHERE i.typeFk = vTypeFk;
-
- INSERT INTO itemTag(itemFk, tagFk, value, priority)
- SELECT i.id, t.id, o.name, 4
- FROM item i
- JOIN tag t ON t.name = 'Origen' COLLATE utf8_general_ci
- JOIN origin o ON o.id = i.originFk
- WHERE i.typeFk = vTypeFk;
- /*
- INSERT INTO itemTag(itemFk, tagFk, value, priority)
- SELECT i.id, t.id, i.stems, 6
- FROM item i
- JOIN tag t ON t.name = 'Tallos' COLLATE utf8_general_ci
- WHERE i.typeFk = vTypeFk;
- */
--- CALL itemTagArrangedUpdate(NULL);
-
+BEGIN
+/*
+ * Plantilla para modificar reemplazar todos los tags
+ * por los valores que tienen los articulos
+ *
+ * @param vTypeFk tipo a modificar
+ *
+ */
+ DELETE it.*
+ FROM itemTag it
+ JOIN item i ON i.id = it.itemFk
+ WHERE i.typeFk = vTypeFk;
+
+ INSERT INTO itemTag(itemFk, tagFk, value, priority)
+ SELECT i.id, t.id, CONCAT(i.size,' cm'), 1
+ FROM item i
+ JOIN tag t ON t.name = 'Longitud' COLLATE utf8_general_ci
+ WHERE i.typeFk = vTypeFk;
+
+ INSERT INTO itemTag(itemFk, tagFk, value, priority)
+ SELECT i.id, t.id, i.category, 5
+ FROM item i
+ JOIN tag t ON t.name = 'Categoria' COLLATE utf8_general_ci
+ WHERE i.typeFk = vTypeFk;
+
+ INSERT INTO itemTag(itemFk, tagFk, value, priority)
+ SELECT i.id, t.id, ink.name, 2
+ FROM item i
+ JOIN tag t ON t.name = 'Color' COLLATE utf8_general_ci
+ JOIN ink ON ink.id = i.inkFk
+ WHERE i.typeFk = vTypeFk;
+
+ INSERT INTO itemTag(itemFk, tagFk, value, priority)
+ SELECT i.id, t.id, p.name, 3
+ FROM item i
+ JOIN tag t ON t.name = 'Productor' COLLATE utf8_general_ci
+ JOIN producer p ON p.id = i.producerFk
+ WHERE i.typeFk = vTypeFk;
+
+ INSERT INTO itemTag(itemFk, tagFk, value, priority)
+ SELECT i.id, t.id, o.name, 4
+ FROM item i
+ JOIN tag t ON t.name = 'Origen' COLLATE utf8_general_ci
+ JOIN origin o ON o.id = i.originFk
+ WHERE i.typeFk = vTypeFk;
+ /*
+ INSERT INTO itemTag(itemFk, tagFk, value, priority)
+ SELECT i.id, t.id, i.stems, 6
+ FROM item i
+ JOIN tag t ON t.name = 'Tallos' COLLATE utf8_general_ci
+ WHERE i.typeFk = vTypeFk;
+ */
+-- CALL itemTagArrangedUpdate(NULL);
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -88547,16 +88547,16 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `workerMistakeType_get`()
-BEGIN
-
-/**
- * Obtiene los tipos de error para los trabajadores
- */
-
- SELECT code, description
- FROM workerMistakeType
- ORDER BY description;
-
+BEGIN
+
+/**
+ * Obtiene los tipos de error para los trabajadores
+ */
+
+ SELECT code, description
+ FROM workerMistakeType
+ ORDER BY description;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -88574,27 +88574,27 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `workerMistake_add`(vWorkerFk INT, vWorkerMistakeTypeFk VARCHAR(10), vUserFk INT )
-BEGIN
-
-/**
- * Añade error al trabajador
- *
- * @param vWorkerFk id del trabajador al cual se le va a añadir error
- * @param vWorkerMistakeTypeFk code del tipo de error
- * @param vUserFk id del usuario que pone el error
- *
- */
- DECLARE vWorkerName VARCHAR(255) DEFAULT account.user_getNameFromId(vUserFk);
-
- IF(account.user_hasRole(vWorkerName,'coolerBoss'))
- THEN
- INSERT INTO vn.workerMistake(userFk, workerMistakeTypeFk)
- VALUES(vWorkerFk, vWorkerMistakeTypeFk);
- ELSE
- CALL util.throw('No tienes permisos para realizar la acción');
-
- END IF;
-
+BEGIN
+
+/**
+ * Añade error al trabajador
+ *
+ * @param vWorkerFk id del trabajador al cual se le va a añadir error
+ * @param vWorkerMistakeTypeFk code del tipo de error
+ * @param vUserFk id del usuario que pone el error
+ *
+ */
+ DECLARE vWorkerName VARCHAR(255) DEFAULT account.user_getNameFromId(vUserFk);
+
+ IF(account.user_hasRole(vWorkerName,'coolerBoss'))
+ THEN
+ INSERT INTO vn.workerMistake(userFk, workerMistakeTypeFk)
+ VALUES(vWorkerFk, vWorkerMistakeTypeFk);
+ ELSE
+ CALL util.throw('No tienes permisos para realizar la acción');
+
+ END IF;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -88612,28 +88612,28 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `workerShelving_Add`(vWorkerFk INT, vBarcode VARCHAR(12))
-BEGIN
-/*
- * Inserta en workerShelving asociando los carros al trabajador
- * @Param vWorkerFk es id del trabajador
- * @Param vBarcode se puede pasar tanto el smarttag como el shelving
- */
- DECLARE vIsShelvingFk BOOL;
-
- SELECT COUNT(*) > 0 INTO vIsShelvingFk
- FROM vn.shelving s
- WHERE s.code = vBarcode COLLATE utf8_general_ci;
-
- IF NOT vIsShelvingFk THEN
-
- SELECT st.shelvingFk INTO vBarcode
- FROM vn.smartTag st
- WHERE st.code = vBarcode COLLATE utf8_general_ci;
-
- END IF;
-
- INSERT INTO vn.workerShelving (workerFk, shelvingFk)
- VALUES(vWorkerFk, vBarcode);
+BEGIN
+/*
+ * Inserta en workerShelving asociando los carros al trabajador
+ * @Param vWorkerFk es id del trabajador
+ * @Param vBarcode se puede pasar tanto el smarttag como el shelving
+ */
+ DECLARE vIsShelvingFk BOOL;
+
+ SELECT COUNT(*) > 0 INTO vIsShelvingFk
+ FROM vn.shelving s
+ WHERE s.code = vBarcode COLLATE utf8_general_ci;
+
+ IF NOT vIsShelvingFk THEN
+
+ SELECT st.shelvingFk INTO vBarcode
+ FROM vn.smartTag st
+ WHERE st.code = vBarcode COLLATE utf8_general_ci;
+
+ END IF;
+
+ INSERT INTO vn.workerShelving (workerFk, shelvingFk)
+ VALUES(vWorkerFk, vBarcode);
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -88651,32 +88651,32 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `workerShelving_delete`(vWorkerFk INT, vBarcode VARCHAR(12))
-BEGIN
-/*
- * Borra de workerShelving el carro o etiqueta insertado por el trabajador
- * @param vWorkerFk es id del trabajador
- * @param vBarcode se puede pasar tanto el smarttag como el shelving
- */
- DECLARE vIsShelvingFk BOOL;
-
-
- SELECT COUNT(*) > 0 INTO vIsShelvingFk
- FROM vn.shelving s
- WHERE s.code = vBarcode COLLATE utf8_general_ci;
-
-
- IF NOT vIsShelvingFk THEN
-
- SELECT st.shelvingFk INTO vBarcode
- FROM vn.smartTag st
- WHERE st.code = vBarcode COLLATE utf8_general_ci;
-
- END IF;
-
- DELETE FROM vn.workerShelving
- WHERE shelvingFk = vBarcode COLLATE utf8_general_ci
- AND workerFk = vWorkerFk ;
-
+BEGIN
+/*
+ * Borra de workerShelving el carro o etiqueta insertado por el trabajador
+ * @param vWorkerFk es id del trabajador
+ * @param vBarcode se puede pasar tanto el smarttag como el shelving
+ */
+ DECLARE vIsShelvingFk BOOL;
+
+
+ SELECT COUNT(*) > 0 INTO vIsShelvingFk
+ FROM vn.shelving s
+ WHERE s.code = vBarcode COLLATE utf8_general_ci;
+
+
+ IF NOT vIsShelvingFk THEN
+
+ SELECT st.shelvingFk INTO vBarcode
+ FROM vn.smartTag st
+ WHERE st.code = vBarcode COLLATE utf8_general_ci;
+
+ END IF;
+
+ DELETE FROM vn.workerShelving
+ WHERE shelvingFk = vBarcode COLLATE utf8_general_ci
+ AND workerFk = vWorkerFk ;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -88954,32 +88954,32 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `workerTimeControl_calculateOddDays`()
-BEGIN
-/*
- * Calculo de las fichadas impares por empleado y dia
- * @return tmp.workerTimeControlOddDays (userFk, dated)
- */
- SET @cont := FALSE;
- SET @lastUserFk:= NULL;
- DROP TEMPORARY TABLE IF EXISTS tmp.workerTimeControlOddDays;
- CREATE TEMPORARY TABLE tmp.workerTimeControlOddDays
- SELECT sub2.userFk workerFk, sub2.dated
- FROM (SELECT userFk,
- dated,
- COUNT(*) cont2
- FROM (SELECT DATE(wtc.timed) dated,
- userFk,
- IFNULL(@cont, @cont := TRUE ),
- IF(direction = 'in' OR userFk <> @lastUserFk, @cont := @cont+1, TRUE),
- @cont cont,
- @lastUserFk := userFk
- FROM workerTimeControl wtc
- WHERE wtc.timed BETWEEN TIMESTAMPADD(YEAR,-1,CURDATE()) AND util.dayEnd(CURDATE())
- ORDER BY userFk, timed)sub
- GROUP BY cont
- HAVING cont2 MOD 2 = 1)sub2
- JOIN worker w ON w.userFk = sub2.userFk;
-
+BEGIN
+/*
+ * Calculo de las fichadas impares por empleado y dia
+ * @return tmp.workerTimeControlOddDays (userFk, dated)
+ */
+ SET @cont := FALSE;
+ SET @lastUserFk:= NULL;
+ DROP TEMPORARY TABLE IF EXISTS tmp.workerTimeControlOddDays;
+ CREATE TEMPORARY TABLE tmp.workerTimeControlOddDays
+ SELECT sub2.userFk workerFk, sub2.dated
+ FROM (SELECT userFk,
+ dated,
+ COUNT(*) cont2
+ FROM (SELECT DATE(wtc.timed) dated,
+ userFk,
+ IFNULL(@cont, @cont := TRUE ),
+ IF(direction = 'in' OR userFk <> @lastUserFk, @cont := @cont+1, TRUE),
+ @cont cont,
+ @lastUserFk := userFk
+ FROM workerTimeControl wtc
+ WHERE wtc.timed BETWEEN TIMESTAMPADD(YEAR,-1,CURDATE()) AND util.dayEnd(CURDATE())
+ ORDER BY userFk, timed)sub
+ GROUP BY cont
+ HAVING cont2 MOD 2 = 1)sub2
+ JOIN worker w ON w.userFk = sub2.userFk;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -89565,314 +89565,314 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `workerTimeControl_clockIn`(vWorker INT, vTimed DATETIME, vDirection VARCHAR(10))
-BEGIN
-/**
- * Verifica si el empleado puede fichar
- * @param vWorker 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 a 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;
- DECLARE vNextIn DATETIME;
- DECLARE vLastDirection VARCHAR(6);
- DECLARE vNextDirection VARCHAR(6);
- DECLARE vDayBreak INT;
- DECLARE vShortWeekBreak INT;
- DECLARE vLongWeekBreak INT;
- DECLARE vWeekScope INT;
- DECLARE vGap INT;
- DECLARE vMailTo VARCHAR(50) DEFAULT NULL;
- DECLARE vUserName VARCHAR(50) DEFAULT NULL;
- DECLARE vIsError BOOLEAN DEFAULT FALSE;
- DECLARE vErrorMessage VARCHAR(255) DEFAULT NULL;
- DECLARE vErrorCode VARCHAR(50);
- DECLARE vDated DATE;
- DECLARE vIsAllowedToWork VARCHAR(50);
- DECLARE vDepartmentFk INT;
- DECLARE vTimedLoop INT;
- DECLARE vTimedLoopPrevious INT;
- DECLARE vHasBreakWeek BOOLEAN DEFAULT FALSE;
- DECLARE vManual BOOLEAN DEFAULT TRUE;
- DECLARE vDone INT DEFAULT FALSE;
-
- DECLARE vCursor CURSOR FOR
- SELECT UNIX_TIMESTAMP(NOW() - INTERVAL vGap SECOND)
- UNION
- SELECT UNIX_TIMESTAMP(NOW())
- UNION
- (SELECT UNIX_TIMESTAMP(timed)
- FROM workerTimeControl
- WHERE timed BETWEEN (vTimed - INTERVAL vGap SECOND) AND vTimed AND
- userFk = vWorker AND
- direction IN ('in', 'out')
- ORDER BY timed ASC);
-
- DECLARE vCursor2 CURSOR FOR
- SELECT UNIX_TIMESTAMP(NOW() - INTERVAL vGap SECOND)
- UNION
- SELECT UNIX_TIMESTAMP(NOW())
- UNION
- SELECT UNIX_TIMESTAMP(timed)
- FROM workerTimeControl
- WHERE timed BETWEEN vTimed AND (vTimed - INTERVAL vGap SECOND) AND
- userFk = vWorker AND
- direction IN ('in', 'out')
- ORDER BY timed ASC;
-
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
-
- DECLARE EXIT HANDLER FOR SQLSTATE '45000'
- BEGIN
-
- SELECT CONCAT(u.name, '@verdnatura.es'), CONCAT(w.firstName, ' ', w.lastName)
- INTO vMailTo, vUserName
- FROM account.user u
- JOIN worker w ON w.bossFk = u.id
- WHERE w.id = vWorker;
-
- CASE vErrorCode
- WHEN 'IS_NOT_ALLOWED_FUTURE' THEN
- SELECT 'No se permite fichar a futuro' INTO vErrorMessage;
- WHEN 'INACTIVE_BUSINESS' THEN
- SELECT 'No hay un contrato en vigor' INTO vErrorMessage;
- WHEN 'IS_NOT_ALLOWED_WORK' THEN
- SELECT 'No está permitido trabajar' INTO vErrorMessage;
- WHEN 'ODD_WORKERTIMECONTROL' THEN
- SELECT 'Fichadas impares' INTO vErrorMessage;
- WHEN 'BREAK_DAY' THEN
- SELECT CONCAT('Descanso diario ', FORMAT(vDayBreak/3600, 0) , 'h.') INTO vErrorMessage;
- WHEN 'BREAK_WEEK' THEN
- SELECT CONCAT('Descanso semanal ',
- FORMAT(vShortWeekBreak / 3600,0) ,'h. / ',
- FORMAT(vLongWeekBreak / 3600, 0) ,'h.') INTO vErrorMessage;
- WHEN 'WRONG_DIRECTION' THEN
- SELECT 'Dirección incorrecta' INTO vErrorMessage;
- ELSE
- SELECT 'Error sin definir'INTO vErrorMessage;
- END CASE;
-
- SELECT vErrorMessage `error`;
- SELECT CONCAT(vUserName, ' no ha podido fichar por el siguiente problema: ', vErrorMessage) INTO vErrorMessage;
- CALL mail_insert( vMailTo, vMailTo, 'Error al fichar', vErrorMessage);
-
- END;
-
- IF (vTimed IS NULL) THEN
- SET vTimed = NOW();
- SET vManual = FALSE;
- END IF;
-
- SET vDated = DATE(vTimed);
-
- SELECT IF(pc.category_name = 'Conductor +3500kg', wc.dayBreakDriver, wc.dayBreak),
- wc.shortWeekBreak,
- wc.longWeekBreak,
- wc.weekScope
- INTO vDayBreak,
- vShortWeekBreak,
- vLongWeekBreak,
- vWeekScope
- FROM workerLabour w
- JOIN postgresql.business_labour bl ON bl.business_id = w.businessFk
- JOIN postgresql.professional_category pc ON pc.professional_category_id = bl.professional_category_id
- JOIN workerTimeControlConfig wc ON TRUE
- WHERE w.workerFk = vWorker
- AND vDated BETWEEN w.started AND IFNULL(w.ended, vDated);
-
- SELECT timed INTO vLastIn
- FROM workerTimeControl
- WHERE userFk = vWorker
- AND direction = 'in'
- AND timed < vTimed
- ORDER BY timed DESC
- LIMIT 1;
-
- SELECT timed INTO vLastOut
- FROM workerTimeControl
- WHERE userFk = vWorker
- AND direction = 'out'
- AND timed < vTimed
- ORDER BY timed DESC
- LIMIT 1;
-
- SELECT timed INTO vNextIn
- FROM workerTimeControl
- WHERE userFk = vWorker
- AND direction = 'in'
- AND timed > vTimed
- ORDER BY timed ASC
- LIMIT 1;
-
- SELECT direction INTO vNextDirection
- FROM workerTimeControl
- WHERE userFk = vWorker
- AND timed > vTimed
- ORDER BY timed ASC
- LIMIT 1;
-
- SELECT direction INTO vLastDirection
- FROM workerTimeControl
- WHERE userFk = vWorker
- AND timed < vTimed
- ORDER BY timed DESC
- LIMIT 1;
-
- -- FICHADAS A FUTURO
- IF vTimed > DATE_ADD(NOW(), INTERVAL 60 SECOND) THEN
- SET vErrorCode = 'IS_NOT_ALLOWED_FUTURE';
- CALL util.throw(vErrorCode);
- END IF;
-
- -- CONTRATO EN VIGOR
- IF vDayBreak IS NULL THEN
- SET vErrorCode = 'INACTIVE_BUSINESS';
- CALL util.throw(vErrorCode);
- END IF;
-
- -- VERIFICAR SI ESTÁ PERMITIDO TRABAJAR
- CALL timeBusiness_calculateByWorker(vWorker, vDated, vDated);
- SELECT isAllowedToWork INTO vIsAllowedToWork
- FROM tmp.timeBusinessCalculate;
- DROP TEMPORARY TABLE tmp.timeBusinessCalculate;
-
- IF NOT vIsAllowedToWork THEN
- SET vErrorCode = 'IS_NOT_ALLOWED_WORK';
- CALL util.throw(vErrorCode);
- END IF;
-
- -- DIRECCION CORRECTA
- CALL vn.workerTimeControl_direction(vWorker, vTimed);
- IF (SELECT IF(IF(option1 IN ('inMiddle', 'outMiddle'), 'middle', option1) <> vDirection
- AND IF(option2 IN ('inMiddle', 'outMiddle'), 'middle', IFNULL(option2, '')) <> vDirection, TRUE , FALSE)
- FROM tmp.workerTimeControlDirection) THEN
- SET vIsError = TRUE;
- END IF;
-
- DROP TEMPORARY TABLE tmp.workerTimeControlDirection;
- IF vIsError = TRUE THEN
- SET vErrorCode = 'WRONG_DIRECTION';
- CALL util.throw(vErrorCode);
- END IF;
-
- -- FICHADAS IMPARES
- IF (SELECT IF(vDirection = 'in', MOD(COUNT(*), 2) , IF (vDirection = 'out', NOT MOD(COUNT(*), 2), FALSE))
- FROM workerTimeControl
- WHERE userFk = vWorker
- AND timed BETWEEN vLastIn AND vTimed
- ) THEN
- SET vErrorCode = 'ODD_WORKERTIMECONTROL';
- CALL util.throw(vErrorCode);
- END IF;
-
- -- DESCANSO DIARIO
- CASE vDirection
- WHEN 'in' THEN
- IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) <= vDayBreak THEN
- SET vIsError = TRUE;
- END IF;
- WHEN 'out' THEN
- IF UNIX_TIMESTAMP(vNextIn) - UNIX_TIMESTAMP(vTimed) <= vDayBreak THEN
- SET vIsError = TRUE;
- END IF;
- ELSE BEGIN END;
- END CASE;
-
- IF vIsError THEN
- SET vErrorCode = 'BREAK_DAY';
- CALL util.throw(vErrorCode);
- END IF;
-
- -- VERIFICAR DESCANSO SEMANAL
- IF (vDirection IN('in', 'out')) THEN
- -- VERIFICA DESCANSO CORTO EN LA ÚLTIMA SEMANA
- SET vGap = vWeekScope;
- SET vTimedLoopPrevious = UNIX_TIMESTAMP((vTimed - INTERVAL vGap SECOND));
- SET vDone = FALSE;
- OPEN vCursor;
- l:LOOP
- FETCH vCursor INTO vTimedLoop;
- IF vDone THEN
- LEAVE l;
- END IF;
- IF vShortWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
- SET vHasBreakWeek = TRUE;
- LEAVE l;
- END IF;
- SET vTimedLoopPrevious = vTimedLoop;
- END LOOP l;
- CLOSE vCursor;
- -- VERIFICA DESCANSO LARGO EN LA ÚLTIMAS 2 SEMANAS
- IF NOT vHasBreakWeek THEN
- SET vGap = vWeekScope * 2;
- SET vTimedLoopPrevious = UNIX_TIMESTAMP((vTimed - INTERVAL vGap SECOND));
- SET vDone = FALSE;
- OPEN vCursor;
- l:LOOP
- FETCH vCursor INTO vTimedLoop;
- IF vDone THEN
- LEAVE l;
- END IF;
- IF vLongWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
- SET vHasBreakWeek = TRUE;
- LEAVE l;
- END IF;
- SET vTimedLoopPrevious = vTimedLoop;
- END LOOP l;
- CLOSE vCursor;
- END IF;
-
- IF vManual THEN
- -- VERIFICA DESCANSO CORTO EN LA PRÓXIMA SEMANA
- SET vGap = vWeekScope;
- SET vTimedLoopPrevious = vTimed;
- SET vDone = FALSE;
- OPEN vCursor;
- l:LOOP
- FETCH vCursor INTO vTimedLoop;
- IF vDone THEN
- LEAVE l;
- END IF;
- IF vShortWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
- SET vHasBreakWeek = TRUE;
- LEAVE l;
- END IF;
- SET vTimedLoopPrevious = vTimedLoop;
- END LOOP l;
- CLOSE vCursor;
- -- VERIFICA DESCANSO LARGO EN LAS PRÓXIMAS 2 SEMANAS
- IF NOT vHasBreakWeek THEN
- SET vGap = vWeekScope * 2;
- SET vTimedLoopPrevious = vTimed;
- SET vDone = FALSE;
- OPEN vCursor;
- l:LOOP
- FETCH vCursor INTO vTimedLoop;
- IF vDone THEN
- LEAVE l;
- END IF;
- IF vShortWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
- SET vHasBreakWeek = TRUE;
- LEAVE l;
- END IF;
- SET vTimedLoopPrevious = vTimedLoop;
- END LOOP l;
- CLOSE vCursor;
- END IF;
- END IF;
- IF NOT vHasBreakWeek THEN
- SET vErrorCode = 'BREAK_WEEK';
- CALL util.throw(vErrorCode);
- END IF;
- END IF;
-
- -- SE PERMITE FICHAR
- INSERT INTO workerTimeControl(userFk, timed, direction, manual)
- VALUES(vWorker, vTimed, vDirection, vManual);
-
- SELECT LAST_INSERT_ID() id;
+BEGIN
+/**
+ * Verifica si el empleado puede fichar
+ * @param vWorker 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 a 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;
+ DECLARE vNextIn DATETIME;
+ DECLARE vLastDirection VARCHAR(6);
+ DECLARE vNextDirection VARCHAR(6);
+ DECLARE vDayBreak INT;
+ DECLARE vShortWeekBreak INT;
+ DECLARE vLongWeekBreak INT;
+ DECLARE vWeekScope INT;
+ DECLARE vGap INT;
+ DECLARE vMailTo VARCHAR(50) DEFAULT NULL;
+ DECLARE vUserName VARCHAR(50) DEFAULT NULL;
+ DECLARE vIsError BOOLEAN DEFAULT FALSE;
+ DECLARE vErrorMessage VARCHAR(255) DEFAULT NULL;
+ DECLARE vErrorCode VARCHAR(50);
+ DECLARE vDated DATE;
+ DECLARE vIsAllowedToWork VARCHAR(50);
+ DECLARE vDepartmentFk INT;
+ DECLARE vTimedLoop INT;
+ DECLARE vTimedLoopPrevious INT;
+ DECLARE vHasBreakWeek BOOLEAN DEFAULT FALSE;
+ DECLARE vManual BOOLEAN DEFAULT TRUE;
+ DECLARE vDone INT DEFAULT FALSE;
+
+ DECLARE vCursor CURSOR FOR
+ SELECT UNIX_TIMESTAMP(NOW() - INTERVAL vGap SECOND)
+ UNION
+ SELECT UNIX_TIMESTAMP(NOW())
+ UNION
+ (SELECT UNIX_TIMESTAMP(timed)
+ FROM workerTimeControl
+ WHERE timed BETWEEN (vTimed - INTERVAL vGap SECOND) AND vTimed AND
+ userFk = vWorker AND
+ direction IN ('in', 'out')
+ ORDER BY timed ASC);
+
+ DECLARE vCursor2 CURSOR FOR
+ SELECT UNIX_TIMESTAMP(NOW() - INTERVAL vGap SECOND)
+ UNION
+ SELECT UNIX_TIMESTAMP(NOW())
+ UNION
+ SELECT UNIX_TIMESTAMP(timed)
+ FROM workerTimeControl
+ WHERE timed BETWEEN vTimed AND (vTimed - INTERVAL vGap SECOND) AND
+ userFk = vWorker AND
+ direction IN ('in', 'out')
+ ORDER BY timed ASC;
+
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
+
+ DECLARE EXIT HANDLER FOR SQLSTATE '45000'
+ BEGIN
+
+ SELECT CONCAT(u.name, '@verdnatura.es'), CONCAT(w.firstName, ' ', w.lastName)
+ INTO vMailTo, vUserName
+ FROM account.user u
+ JOIN worker w ON w.bossFk = u.id
+ WHERE w.id = vWorker;
+
+ CASE vErrorCode
+ WHEN 'IS_NOT_ALLOWED_FUTURE' THEN
+ SELECT 'No se permite fichar a futuro' INTO vErrorMessage;
+ WHEN 'INACTIVE_BUSINESS' THEN
+ SELECT 'No hay un contrato en vigor' INTO vErrorMessage;
+ WHEN 'IS_NOT_ALLOWED_WORK' THEN
+ SELECT 'No está permitido trabajar' INTO vErrorMessage;
+ WHEN 'ODD_WORKERTIMECONTROL' THEN
+ SELECT 'Fichadas impares' INTO vErrorMessage;
+ WHEN 'BREAK_DAY' THEN
+ SELECT CONCAT('Descanso diario ', FORMAT(vDayBreak/3600, 0) , 'h.') INTO vErrorMessage;
+ WHEN 'BREAK_WEEK' THEN
+ SELECT CONCAT('Descanso semanal ',
+ FORMAT(vShortWeekBreak / 3600,0) ,'h. / ',
+ FORMAT(vLongWeekBreak / 3600, 0) ,'h.') INTO vErrorMessage;
+ WHEN 'WRONG_DIRECTION' THEN
+ SELECT 'Dirección incorrecta' INTO vErrorMessage;
+ ELSE
+ SELECT 'Error sin definir'INTO vErrorMessage;
+ END CASE;
+
+ SELECT vErrorMessage `error`;
+ SELECT CONCAT(vUserName, ' no ha podido fichar por el siguiente problema: ', vErrorMessage) INTO vErrorMessage;
+ CALL mail_insert( vMailTo, vMailTo, 'Error al fichar', vErrorMessage);
+
+ END;
+
+ IF (vTimed IS NULL) THEN
+ SET vTimed = NOW();
+ SET vManual = FALSE;
+ END IF;
+
+ SET vDated = DATE(vTimed);
+
+ SELECT IF(pc.category_name = 'Conductor +3500kg', wc.dayBreakDriver, wc.dayBreak),
+ wc.shortWeekBreak,
+ wc.longWeekBreak,
+ wc.weekScope
+ INTO vDayBreak,
+ vShortWeekBreak,
+ vLongWeekBreak,
+ vWeekScope
+ FROM workerLabour w
+ JOIN postgresql.business_labour bl ON bl.business_id = w.businessFk
+ JOIN postgresql.professional_category pc ON pc.professional_category_id = bl.professional_category_id
+ JOIN workerTimeControlConfig wc ON TRUE
+ WHERE w.workerFk = vWorker
+ AND vDated BETWEEN w.started AND IFNULL(w.ended, vDated);
+
+ SELECT timed INTO vLastIn
+ FROM workerTimeControl
+ WHERE userFk = vWorker
+ AND direction = 'in'
+ AND timed < vTimed
+ ORDER BY timed DESC
+ LIMIT 1;
+
+ SELECT timed INTO vLastOut
+ FROM workerTimeControl
+ WHERE userFk = vWorker
+ AND direction = 'out'
+ AND timed < vTimed
+ ORDER BY timed DESC
+ LIMIT 1;
+
+ SELECT timed INTO vNextIn
+ FROM workerTimeControl
+ WHERE userFk = vWorker
+ AND direction = 'in'
+ AND timed > vTimed
+ ORDER BY timed ASC
+ LIMIT 1;
+
+ SELECT direction INTO vNextDirection
+ FROM workerTimeControl
+ WHERE userFk = vWorker
+ AND timed > vTimed
+ ORDER BY timed ASC
+ LIMIT 1;
+
+ SELECT direction INTO vLastDirection
+ FROM workerTimeControl
+ WHERE userFk = vWorker
+ AND timed < vTimed
+ ORDER BY timed DESC
+ LIMIT 1;
+
+ -- FICHADAS A FUTURO
+ IF vTimed > DATE_ADD(NOW(), INTERVAL 60 SECOND) THEN
+ SET vErrorCode = 'IS_NOT_ALLOWED_FUTURE';
+ CALL util.throw(vErrorCode);
+ END IF;
+
+ -- CONTRATO EN VIGOR
+ IF vDayBreak IS NULL THEN
+ SET vErrorCode = 'INACTIVE_BUSINESS';
+ CALL util.throw(vErrorCode);
+ END IF;
+
+ -- VERIFICAR SI ESTÁ PERMITIDO TRABAJAR
+ CALL timeBusiness_calculateByWorker(vWorker, vDated, vDated);
+ SELECT isAllowedToWork INTO vIsAllowedToWork
+ FROM tmp.timeBusinessCalculate;
+ DROP TEMPORARY TABLE tmp.timeBusinessCalculate;
+
+ IF NOT vIsAllowedToWork THEN
+ SET vErrorCode = 'IS_NOT_ALLOWED_WORK';
+ CALL util.throw(vErrorCode);
+ END IF;
+
+ -- DIRECCION CORRECTA
+ CALL vn.workerTimeControl_direction(vWorker, vTimed);
+ IF (SELECT IF(IF(option1 IN ('inMiddle', 'outMiddle'), 'middle', option1) <> vDirection
+ AND IF(option2 IN ('inMiddle', 'outMiddle'), 'middle', IFNULL(option2, '')) <> vDirection, TRUE , FALSE)
+ FROM tmp.workerTimeControlDirection) THEN
+ SET vIsError = TRUE;
+ END IF;
+
+ DROP TEMPORARY TABLE tmp.workerTimeControlDirection;
+ IF vIsError = TRUE THEN
+ SET vErrorCode = 'WRONG_DIRECTION';
+ CALL util.throw(vErrorCode);
+ END IF;
+
+ -- FICHADAS IMPARES
+ IF (SELECT IF(vDirection = 'in', MOD(COUNT(*), 2) , IF (vDirection = 'out', NOT MOD(COUNT(*), 2), FALSE))
+ FROM workerTimeControl
+ WHERE userFk = vWorker
+ AND timed BETWEEN vLastIn AND vTimed
+ ) THEN
+ SET vErrorCode = 'ODD_WORKERTIMECONTROL';
+ CALL util.throw(vErrorCode);
+ END IF;
+
+ -- DESCANSO DIARIO
+ CASE vDirection
+ WHEN 'in' THEN
+ IF UNIX_TIMESTAMP(vTimed) - UNIX_TIMESTAMP(vLastOut) <= vDayBreak THEN
+ SET vIsError = TRUE;
+ END IF;
+ WHEN 'out' THEN
+ IF UNIX_TIMESTAMP(vNextIn) - UNIX_TIMESTAMP(vTimed) <= vDayBreak THEN
+ SET vIsError = TRUE;
+ END IF;
+ ELSE BEGIN END;
+ END CASE;
+
+ IF vIsError THEN
+ SET vErrorCode = 'BREAK_DAY';
+ CALL util.throw(vErrorCode);
+ END IF;
+
+ -- VERIFICAR DESCANSO SEMANAL
+ IF (vDirection IN('in', 'out')) THEN
+ -- VERIFICA DESCANSO CORTO EN LA ÚLTIMA SEMANA
+ SET vGap = vWeekScope;
+ SET vTimedLoopPrevious = UNIX_TIMESTAMP((vTimed - INTERVAL vGap SECOND));
+ SET vDone = FALSE;
+ OPEN vCursor;
+ l:LOOP
+ FETCH vCursor INTO vTimedLoop;
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+ IF vShortWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
+ SET vHasBreakWeek = TRUE;
+ LEAVE l;
+ END IF;
+ SET vTimedLoopPrevious = vTimedLoop;
+ END LOOP l;
+ CLOSE vCursor;
+ -- VERIFICA DESCANSO LARGO EN LA ÚLTIMAS 2 SEMANAS
+ IF NOT vHasBreakWeek THEN
+ SET vGap = vWeekScope * 2;
+ SET vTimedLoopPrevious = UNIX_TIMESTAMP((vTimed - INTERVAL vGap SECOND));
+ SET vDone = FALSE;
+ OPEN vCursor;
+ l:LOOP
+ FETCH vCursor INTO vTimedLoop;
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+ IF vLongWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
+ SET vHasBreakWeek = TRUE;
+ LEAVE l;
+ END IF;
+ SET vTimedLoopPrevious = vTimedLoop;
+ END LOOP l;
+ CLOSE vCursor;
+ END IF;
+
+ IF vManual THEN
+ -- VERIFICA DESCANSO CORTO EN LA PRÓXIMA SEMANA
+ SET vGap = vWeekScope;
+ SET vTimedLoopPrevious = vTimed;
+ SET vDone = FALSE;
+ OPEN vCursor;
+ l:LOOP
+ FETCH vCursor INTO vTimedLoop;
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+ IF vShortWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
+ SET vHasBreakWeek = TRUE;
+ LEAVE l;
+ END IF;
+ SET vTimedLoopPrevious = vTimedLoop;
+ END LOOP l;
+ CLOSE vCursor;
+ -- VERIFICA DESCANSO LARGO EN LAS PRÓXIMAS 2 SEMANAS
+ IF NOT vHasBreakWeek THEN
+ SET vGap = vWeekScope * 2;
+ SET vTimedLoopPrevious = vTimed;
+ SET vDone = FALSE;
+ OPEN vCursor;
+ l:LOOP
+ FETCH vCursor INTO vTimedLoop;
+ IF vDone THEN
+ LEAVE l;
+ END IF;
+ IF vShortWeekBreak - (vTimedLoop - vTimedLoopPrevious) < 0 THEN
+ SET vHasBreakWeek = TRUE;
+ LEAVE l;
+ END IF;
+ SET vTimedLoopPrevious = vTimedLoop;
+ END LOOP l;
+ CLOSE vCursor;
+ END IF;
+ END IF;
+ IF NOT vHasBreakWeek THEN
+ SET vErrorCode = 'BREAK_WEEK';
+ CALL util.throw(vErrorCode);
+ END IF;
+ END IF;
+
+ -- SE PERMITE FICHAR
+ INSERT INTO workerTimeControl(userFk, timed, direction, manual)
+ VALUES(vWorker, vTimed, vDirection, vManual);
+
+ SELECT LAST_INSERT_ID() id;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -91831,21 +91831,21 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `worker_getFromHasMistake`(vDepartmentFk INT)
-BEGIN
-
-/**
- * Obtiene los trabajadores de los departamentos que se les puede poner error
- * @param vDepartmentFk id del departamento
- *
- */
-
- SELECT w.id,w.firstName, w.lastName,d.name
- FROM worker w
- JOIN workerDepartment wd ON wd.workerFk = w.id
- JOIN department d ON d.id = wd.departmentFk
- WHERE d.id = vDepartmentFk
- ORDER BY firstName;
-
+BEGIN
+
+/**
+ * Obtiene los trabajadores de los departamentos que se les puede poner error
+ * @param vDepartmentFk id del departamento
+ *
+ */
+
+ SELECT w.id,w.firstName, w.lastName,d.name
+ FROM worker w
+ JOIN workerDepartment wd ON wd.workerFk = w.id
+ JOIN department d ON d.id = wd.departmentFk
+ WHERE d.id = vDepartmentFk
+ ORDER BY firstName;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -92057,17 +92057,17 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `worker_getSector`()
-BEGIN
-
-/**
- * Obtiene el sector del usuario conectado
-*/
-
- SELECT s.id,s.description,s.warehouseFk
- FROM sector s
- JOIN worker w ON w.sectorFk = s.id
- WHERE w.id = account.userGetId();
-
+BEGIN
+
+/**
+ * Obtiene el sector del usuario conectado
+*/
+
+ SELECT s.id,s.description,s.warehouseFk
+ FROM sector s
+ JOIN worker w ON w.sectorFk = s.id
+ WHERE w.id = account.userGetId();
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -92085,18 +92085,18 @@ DELIMITER ;
/*!50003 SET sql_mode = 'NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `worker_updateSector`(vSectorFk INT)
-BEGIN
-
-/**
- * ACtualiza el sector del usuario conectado
- *
- * @param vSectorFk id del sector
-*/
- UPDATE worker
- SET sectorFk = vSectorFk
- WHERE id = account.userGetId();
-
-
+BEGIN
+
+/**
+ * ACtualiza el sector del usuario conectado
+ *
+ * @param vSectorFk id del sector
+*/
+ UPDATE worker
+ SET sectorFk = vSectorFk
+ WHERE id = account.userGetId();
+
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -92719,23 +92719,23 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `zone_ETD_byTime`()
-BEGIN
-
- SET @m := 0;
-
- DROP TEMPORARY TABLE IF EXISTS tmpZone;
- CREATE TEMPORARY TABLE tmpZone
- SELECT remainingVolume,
- hourTheoretical,
- @m := @m + minutesLess totalMinutes
- FROM zoneEstimatedDelivery ze
- WHERE ze.remainingVolume
- ORDER BY ze.hourTheoretical DESC;
-
- SELECT * FROM tmpZone;
-
- DROP TABLE tmpZone;
-
+BEGIN
+
+ SET @m := 0;
+
+ DROP TEMPORARY TABLE IF EXISTS tmpZone;
+ CREATE TEMPORARY TABLE tmpZone
+ SELECT remainingVolume,
+ hourTheoretical,
+ @m := @m + minutesLess totalMinutes
+ FROM zoneEstimatedDelivery ze
+ WHERE ze.remainingVolume
+ ORDER BY ze.hourTheoretical DESC;
+
+ SELECT * FROM tmpZone;
+
+ DROP TABLE tmpZone;
+
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -93317,106 +93317,106 @@ DELIMITER ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `zone_getLeaves2`(vSelf INT, vParentFk INT, vSearch VARCHAR(255))
-BEGIN
-/**
- * Devuelve los geoFk incluidos en la ruta y que sean hijos de parentFk
- * @param vSelf Id de la zona
- * @param vParentFk Id del geo a calcular
- * @param vSearch cadena a buscar
- *
- * @return tmp.zoneNodes(geoFk, name, parentFk, sons, isChecked, zoneFk)
- *
- */
- DECLARE vIsNumber BOOL;
- DECLARE vIsSearch BOOL DEFAULT vSearch IS NOT NULL AND vSearch != '';
-
- DROP TEMPORARY TABLE IF EXISTS tNodes;
- CREATE TEMPORARY TABLE tNodes
- (UNIQUE (id))
- ENGINE = MEMORY
- SELECT id
- FROM zoneGeo
- LIMIT 0;
-
- IF vIsSearch THEN
- SET vIsNumber = vSearch REGEXP '^[0-9]+$';
-
- INSERT INTO tNodes
- SELECT id
- FROM zoneGeo
- WHERE (vIsNumber AND `name` = vSearch)
- OR (!vIsNumber AND `name` LIKE CONCAT('%', vSearch, '%'))
- LIMIT 1000;
-
- ELSEIF vParentFk IS NULL THEN
- INSERT INTO tNodes
- SELECT geoFk
- FROM zoneIncluded
- WHERE zoneFk = vSelf;
- END IF;
-
- IF vParentFk IS NULL THEN
- DROP TEMPORARY TABLE IF EXISTS tChilds;
- CREATE TEMPORARY TABLE tChilds
- (INDEX(id))
- ENGINE = MEMORY
- SELECT id
- FROM tNodes;
-
- DROP TEMPORARY TABLE IF EXISTS tParents;
- CREATE TEMPORARY TABLE tParents
- (INDEX(id))
- ENGINE = MEMORY
- SELECT id
- FROM zoneGeo
- LIMIT 0;
-
- myLoop: LOOP
- DELETE FROM tParents;
- INSERT INTO tParents
- SELECT parentFk id
- FROM zoneGeo g
- JOIN tChilds c ON c.id = g.id
- WHERE g.parentFk IS NOT NULL;
-
- INSERT IGNORE INTO tNodes
- SELECT id
- FROM tParents;
-
- IF ROW_COUNT() = 0 THEN
- LEAVE myLoop;
- END IF;
-
- DELETE FROM tChilds;
- INSERT INTO tChilds
- SELECT id
- FROM tParents;
- END LOOP;
-
- DROP TEMPORARY TABLE tChilds, tParents;
- END IF;
-
- IF !vIsSearch THEN
- INSERT IGNORE INTO tNodes
- SELECT id
- FROM zoneGeo
- WHERE parentFk <=> vParentFk;
- END IF;
-
- INSERT IGNORE INTO tmp.zoneNodes(geoFk, name, parentFk, sons, isChecked, zoneFk)
- SELECT g.id,
- g.`name`,
- g.parentFk,
- g.sons,
- NOT g.sons OR type = 'country',
- vSelf
- FROM zoneGeo g
- JOIN tNodes n ON n.id = g.id
- LEFT JOIN zoneIncluded i ON i.geoFk = g.id AND i.zoneFk = vSelf
- WHERE i.isIncluded = TRUE
- OR (i.isIncluded IS NULL AND vParentFk IS NOT NULL);
-
- DROP TEMPORARY TABLE tNodes;
+BEGIN
+/**
+ * Devuelve los geoFk incluidos en la ruta y que sean hijos de parentFk
+ * @param vSelf Id de la zona
+ * @param vParentFk Id del geo a calcular
+ * @param vSearch cadena a buscar
+ *
+ * @return tmp.zoneNodes(geoFk, name, parentFk, sons, isChecked, zoneFk)
+ *
+ */
+ DECLARE vIsNumber BOOL;
+ DECLARE vIsSearch BOOL DEFAULT vSearch IS NOT NULL AND vSearch != '';
+
+ DROP TEMPORARY TABLE IF EXISTS tNodes;
+ CREATE TEMPORARY TABLE tNodes
+ (UNIQUE (id))
+ ENGINE = MEMORY
+ SELECT id
+ FROM zoneGeo
+ LIMIT 0;
+
+ IF vIsSearch THEN
+ SET vIsNumber = vSearch REGEXP '^[0-9]+$';
+
+ INSERT INTO tNodes
+ SELECT id
+ FROM zoneGeo
+ WHERE (vIsNumber AND `name` = vSearch)
+ OR (!vIsNumber AND `name` LIKE CONCAT('%', vSearch, '%'))
+ LIMIT 1000;
+
+ ELSEIF vParentFk IS NULL THEN
+ INSERT INTO tNodes
+ SELECT geoFk
+ FROM zoneIncluded
+ WHERE zoneFk = vSelf;
+ END IF;
+
+ IF vParentFk IS NULL THEN
+ DROP TEMPORARY TABLE IF EXISTS tChilds;
+ CREATE TEMPORARY TABLE tChilds
+ (INDEX(id))
+ ENGINE = MEMORY
+ SELECT id
+ FROM tNodes;
+
+ DROP TEMPORARY TABLE IF EXISTS tParents;
+ CREATE TEMPORARY TABLE tParents
+ (INDEX(id))
+ ENGINE = MEMORY
+ SELECT id
+ FROM zoneGeo
+ LIMIT 0;
+
+ myLoop: LOOP
+ DELETE FROM tParents;
+ INSERT INTO tParents
+ SELECT parentFk id
+ FROM zoneGeo g
+ JOIN tChilds c ON c.id = g.id
+ WHERE g.parentFk IS NOT NULL;
+
+ INSERT IGNORE INTO tNodes
+ SELECT id
+ FROM tParents;
+
+ IF ROW_COUNT() = 0 THEN
+ LEAVE myLoop;
+ END IF;
+
+ DELETE FROM tChilds;
+ INSERT INTO tChilds
+ SELECT id
+ FROM tParents;
+ END LOOP;
+
+ DROP TEMPORARY TABLE tChilds, tParents;
+ END IF;
+
+ IF !vIsSearch THEN
+ INSERT IGNORE INTO tNodes
+ SELECT id
+ FROM zoneGeo
+ WHERE parentFk <=> vParentFk;
+ END IF;
+
+ INSERT IGNORE INTO tmp.zoneNodes(geoFk, name, parentFk, sons, isChecked, zoneFk)
+ SELECT g.id,
+ g.`name`,
+ g.parentFk,
+ g.sons,
+ NOT g.sons OR type = 'country',
+ vSelf
+ FROM zoneGeo g
+ JOIN tNodes n ON n.id = g.id
+ LEFT JOIN zoneIncluded i ON i.geoFk = g.id AND i.zoneFk = vSelf
+ WHERE i.isIncluded = TRUE
+ OR (i.isIncluded IS NULL AND vParentFk IS NOT NULL);
+
+ DROP TEMPORARY TABLE tNodes;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -93433,94 +93433,94 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-CREATE DEFINER=`root`@`localhost` PROCEDURE `zone_getLeaves___`(
- vSelf INT,
- vParentFk INT,
- vSearch VARCHAR(255)
+CREATE DEFINER=`root`@`localhost` PROCEDURE `zone_getLeaves___`(
+ vSelf INT,
+ vParentFk INT,
+ vSearch VARCHAR(255)
)
-BEGIN
- DECLARE vIsNumber BOOL;
- DECLARE vIsSearch BOOL DEFAULT vSearch IS NOT NULL AND vSearch != '';
-
- DROP TEMPORARY TABLE IF EXISTS tNodes;
- CREATE TEMPORARY TABLE tNodes
- (UNIQUE (id))
- ENGINE = MEMORY
- SELECT id FROM zoneGeo LIMIT 0;
-
- IF vIsSearch THEN
- SET vIsNumber = vSearch REGEXP '^[0-9]+$';
-
- INSERT INTO tNodes
- SELECT id FROM zoneGeo
- WHERE (vIsNumber AND `name` = vSearch)
- OR (!vIsNumber AND `name` LIKE CONCAT('%', vSearch, '%'))
- LIMIT 1000;
- ELSEIF vParentFk IS NULL THEN
- INSERT INTO tNodes
- SELECT geoFk FROM zoneIncluded
- WHERE zoneFk = vSelf;
- END IF;
-
- IF vParentFk IS NULL THEN
- DROP TEMPORARY TABLE IF EXISTS tChilds;
- CREATE TEMPORARY TABLE tChilds
- ENGINE = MEMORY
- SELECT id FROM tNodes;
-
- DROP TEMPORARY TABLE IF EXISTS tParents;
- CREATE TEMPORARY TABLE tParents
- ENGINE = MEMORY
- SELECT id FROM zoneGeo LIMIT 0;
-
- myLoop: LOOP
- DELETE FROM tParents;
- INSERT INTO tParents
- SELECT parentFk id
- FROM zoneGeo g
- JOIN tChilds c ON c.id = g.id
- WHERE g.parentFk IS NOT NULL;
-
- INSERT IGNORE INTO tNodes
- SELECT id FROM tParents;
-
- IF ROW_COUNT() = 0 THEN
- LEAVE myLoop;
- END IF;
-
- DELETE FROM tChilds;
- INSERT INTO tChilds
- SELECT id FROM tParents;
- END LOOP;
-
- DROP TEMPORARY TABLE
- tChilds,
- tParents;
- END IF;
-
- IF !vIsSearch THEN
- INSERT IGNORE INTO tNodes
- SELECT id FROM zoneGeo
- WHERE parentFk <=> vParentFk;
- END IF;
-
-
- INSERT IGNORE INTO zoneNodes(geoFk, name, parentFk, sons, isChecked, zoneFk)
- SELECT g.id,
- g.`name`,
- g.parentFk,
- g.sons,
- NOT g.sons OR type = 'country',
- vSelf
- FROM zoneGeo g
- JOIN tNodes n ON n.id = g.id
- LEFT JOIN zoneIncluded i
- ON i.geoFk = g.id AND i.zoneFk = vSelf
- WHERE (i.isIncluded = TRUE
- OR (i.isIncluded IS NULL AND vParentFk IS NOT NULL))
- ;
-
- DROP TEMPORARY TABLE tNodes;
+BEGIN
+ DECLARE vIsNumber BOOL;
+ DECLARE vIsSearch BOOL DEFAULT vSearch IS NOT NULL AND vSearch != '';
+
+ DROP TEMPORARY TABLE IF EXISTS tNodes;
+ CREATE TEMPORARY TABLE tNodes
+ (UNIQUE (id))
+ ENGINE = MEMORY
+ SELECT id FROM zoneGeo LIMIT 0;
+
+ IF vIsSearch THEN
+ SET vIsNumber = vSearch REGEXP '^[0-9]+$';
+
+ INSERT INTO tNodes
+ SELECT id FROM zoneGeo
+ WHERE (vIsNumber AND `name` = vSearch)
+ OR (!vIsNumber AND `name` LIKE CONCAT('%', vSearch, '%'))
+ LIMIT 1000;
+ ELSEIF vParentFk IS NULL THEN
+ INSERT INTO tNodes
+ SELECT geoFk FROM zoneIncluded
+ WHERE zoneFk = vSelf;
+ END IF;
+
+ IF vParentFk IS NULL THEN
+ DROP TEMPORARY TABLE IF EXISTS tChilds;
+ CREATE TEMPORARY TABLE tChilds
+ ENGINE = MEMORY
+ SELECT id FROM tNodes;
+
+ DROP TEMPORARY TABLE IF EXISTS tParents;
+ CREATE TEMPORARY TABLE tParents
+ ENGINE = MEMORY
+ SELECT id FROM zoneGeo LIMIT 0;
+
+ myLoop: LOOP
+ DELETE FROM tParents;
+ INSERT INTO tParents
+ SELECT parentFk id
+ FROM zoneGeo g
+ JOIN tChilds c ON c.id = g.id
+ WHERE g.parentFk IS NOT NULL;
+
+ INSERT IGNORE INTO tNodes
+ SELECT id FROM tParents;
+
+ IF ROW_COUNT() = 0 THEN
+ LEAVE myLoop;
+ END IF;
+
+ DELETE FROM tChilds;
+ INSERT INTO tChilds
+ SELECT id FROM tParents;
+ END LOOP;
+
+ DROP TEMPORARY TABLE
+ tChilds,
+ tParents;
+ END IF;
+
+ IF !vIsSearch THEN
+ INSERT IGNORE INTO tNodes
+ SELECT id FROM zoneGeo
+ WHERE parentFk <=> vParentFk;
+ END IF;
+
+
+ INSERT IGNORE INTO zoneNodes(geoFk, name, parentFk, sons, isChecked, zoneFk)
+ SELECT g.id,
+ g.`name`,
+ g.parentFk,
+ g.sons,
+ NOT g.sons OR type = 'country',
+ vSelf
+ FROM zoneGeo g
+ JOIN tNodes n ON n.id = g.id
+ LEFT JOIN zoneIncluded i
+ ON i.geoFk = g.id AND i.zoneFk = vSelf
+ WHERE (i.isIncluded = TRUE
+ OR (i.isIncluded IS NULL AND vParentFk IS NOT NULL))
+ ;
+
+ DROP TEMPORARY TABLE tNodes;
END ;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;
@@ -94050,19 +94050,19 @@ DELIMITER ;
/*!50003 SET @saved_sql_mode = @@sql_mode */ ;
/*!50003 SET sql_mode = 'IGNORE_SPACE,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
-/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vncontrol`.`ticketTracking_afterInsert`
- AFTER INSERT ON `inter`
- FOR EACH ROW
-BEGIN
-
- DECLARE vNumTicketsPrepared INT;
-
- REPLACE vn.ticketLastState(ticketFk, ticketTrackingFk, name)
- SELECT NEW.Id_Ticket, NEW.inter_id, `name`
- FROM vn.state
- WHERE id = NEW.state_id;
-
-
+/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER `vncontrol`.`ticketTracking_afterInsert`
+ AFTER INSERT ON `inter`
+ FOR EACH ROW
+BEGIN
+
+ DECLARE vNumTicketsPrepared INT;
+
+ REPLACE vn.ticketLastState(ticketFk, ticketTrackingFk, name)
+ SELECT NEW.Id_Ticket, NEW.inter_id, `name`
+ FROM vn.state
+ WHERE id = NEW.state_id;
+
+
END */;;
DELIMITER ;
/*!50003 SET sql_mode = @saved_sql_mode */ ;