This commit is contained in:
parent
682a75ac76
commit
13abed3d00
|
@ -1,15 +0,0 @@
|
||||||
CREATE TABLE `vn`.`device` (
|
|
||||||
`id` INT NOT NULL,
|
|
||||||
`sn` VARCHAR(50) NULL,
|
|
||||||
`model` VARCHAR(50) NULL,
|
|
||||||
`userFk` INT(10) UNSIGNED NOT NULL,
|
|
||||||
PRIMARY KEY (`id`),
|
|
||||||
INDEX `device_fk1_idx` (`userFk` ASC),
|
|
||||||
CONSTRAINT `device_fk1`
|
|
||||||
FOREIGN KEY (`userFk`)
|
|
||||||
REFERENCES `account`.`user` (`id`)
|
|
||||||
ON DELETE NO ACTION
|
|
||||||
ON UPDATE NO ACTION);
|
|
||||||
|
|
||||||
ALTER TABLE `vn`.`device`
|
|
||||||
CHANGE COLUMN `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;
|
|
|
@ -1,74 +0,0 @@
|
||||||
USE `nst`;
|
|
||||||
DROP procedure IF EXISTS `nodeAdd`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `nst`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `nodeAdd`(IN `vScheme` VARCHAR(45), IN `vTable` VARCHAR(45), IN `vParentFk` INT, IN `vChild` VARCHAR(100))
|
|
||||||
BEGIN
|
|
||||||
DECLARE vSql TEXT;
|
|
||||||
DECLARE vTableClone VARCHAR(45);
|
|
||||||
|
|
||||||
SET vTableClone = CONCAT(vTable, 'Clone');
|
|
||||||
|
|
||||||
CALL util.exec(CONCAT('DROP TEMPORARY TABLE IF EXISTS tmp.', vTableClone));
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'CREATE TEMPORARY TABLE tmp.', vTableClone,
|
|
||||||
' ENGINE = MEMORY',
|
|
||||||
' SELECT * FROM ', vScheme, '.', vTable
|
|
||||||
));
|
|
||||||
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'SELECT COUNT(c.id) INTO @childs',
|
|
||||||
' FROM ', vScheme, '.', vTable, ' p',
|
|
||||||
' LEFT JOIN tmp.', vTableClone, ' c ON c.lft',
|
|
||||||
' BETWEEN p.lft AND p.rgt AND c.id != ', vParentFk,
|
|
||||||
' WHERE p.id = ', vParentFk
|
|
||||||
));
|
|
||||||
|
|
||||||
IF @childs = 0 THEN
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'SELECT lft INTO @vLeft',
|
|
||||||
' FROM ', vScheme, '.', vTable,
|
|
||||||
' WHERE id = ', vParentFk
|
|
||||||
));
|
|
||||||
ELSE
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'SELECT c.rgt INTO @vLeft',
|
|
||||||
' FROM ', vScheme, '.', vTable, ' p',
|
|
||||||
' JOIN tmp.', vTableClone, ' c ON c.depth = p.depth + 1'
|
|
||||||
' AND c.lft BETWEEN p.lft AND p.rgt',
|
|
||||||
' WHERE p.id = ', vParentFk,
|
|
||||||
' ORDER BY c.lft',
|
|
||||||
' DESC LIMIT 1'
|
|
||||||
));
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'UPDATE ', vScheme, '.', vTable, ' SET rgt = rgt + 2',
|
|
||||||
' WHERE rgt > @vLeft',
|
|
||||||
' ORDER BY rgt DESC'
|
|
||||||
));
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'UPDATE ', vScheme, '.', vTable, ' SET lft = lft + 2',
|
|
||||||
' WHERE lft > @vLeft',
|
|
||||||
' ORDER BY lft DESC'
|
|
||||||
));
|
|
||||||
|
|
||||||
SET vChild = REPLACE(vChild, "'", "\\'");
|
|
||||||
|
|
||||||
CALL util.exec(CONCAT(
|
|
||||||
'INSERT INTO ', vScheme, '.', vTable, ' (name, lft, rgt)',
|
|
||||||
' VALUES ("', vChild, '", @vLeft + 1, @vLeft + 2)'
|
|
||||||
));
|
|
||||||
|
|
||||||
-- CALL util.exec(CONCAT(
|
|
||||||
-- 'SELECT id, name, lft, rgt, depth, sons',
|
|
||||||
-- ' FROM ', vScheme, '.', vTable,
|
|
||||||
-- ' WHERE id = LAST_INSERT_ID()'
|
|
||||||
-- ));
|
|
||||||
|
|
||||||
CALL util.exec(CONCAT('DROP TEMPORARY TABLE tmp.', vTableClone));
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,28 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`zoneNest`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNest`()
|
|
||||||
BEGIN
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.zoneGeo;
|
|
||||||
CREATE TEMPORARY TABLE tmp.zoneGeo
|
|
||||||
(id INT AUTO_INCREMENT PRIMARY KEY)
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT * FROM vn.zoneGeo;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.country;
|
|
||||||
CREATE TEMPORARY TABLE tmp.country
|
|
||||||
SELECT id FROM country
|
|
||||||
WHERE country IN('España exento');
|
|
||||||
|
|
||||||
CALL vn.zoneNestCountry();
|
|
||||||
CALL vn.zoneNestProvince();
|
|
||||||
CALL vn.zoneNestTown();
|
|
||||||
CALL vn.zoneNestPostcode();
|
|
||||||
CALL vn.nestTree('tmp', 'zoneGeo', 'vn', 'zoneGeo');
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE
|
|
||||||
tmp.zoneGeo,
|
|
||||||
tmp.country;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,55 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`zoneNestCountry`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestCountry`()
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vParent INT DEFAULT 1;
|
|
||||||
DECLARE vGeoFk INT;
|
|
||||||
DECLARE vChildFk INT;
|
|
||||||
DECLARE vChildName VARCHAR(100);
|
|
||||||
DECLARE countryCur CURSOR FOR
|
|
||||||
SELECT 1, c.id, c.`country`
|
|
||||||
FROM vn.country c
|
|
||||||
JOIN tmp.country tc ON tc.id = c.id
|
|
||||||
ORDER BY c.`country`;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
|
|
||||||
-- Remove existing countries
|
|
||||||
DELETE zg FROM vn.country c
|
|
||||||
JOIN tmp.country tc ON tc.id = c.id
|
|
||||||
JOIN tmp.zoneGeo zg ON zg.id = c.geoFk;
|
|
||||||
|
|
||||||
-- Reset country geoFk
|
|
||||||
UPDATE vn.country c
|
|
||||||
JOIN tmp.country tc ON tc.id = c.id
|
|
||||||
SET c.geoFk = NULL
|
|
||||||
WHERE c.geoFk IS NOT NULL;
|
|
||||||
|
|
||||||
-- > Country cursor start
|
|
||||||
OPEN countryCur;
|
|
||||||
|
|
||||||
countryLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
|
|
||||||
FETCH countryCur INTO vParent, vChildFk, vChildName;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE countryLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName);
|
|
||||||
END LOOP;
|
|
||||||
CLOSE countryCur;
|
|
||||||
-- < Country cursor end
|
|
||||||
|
|
||||||
UPDATE country c
|
|
||||||
JOIN tmp.zoneGeo z ON z.name = c.country
|
|
||||||
SET c.geoFk = z.id
|
|
||||||
WHERE c.geoFk IS NULL;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`zoneNestPostcode`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestPostcode`()
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vParent INT DEFAULT 1;
|
|
||||||
DECLARE vGeoFk INT;
|
|
||||||
DECLARE vChildFk INT;
|
|
||||||
DECLARE vChildName VARCHAR(100);
|
|
||||||
DECLARE postcodeCur CURSOR FOR
|
|
||||||
SELECT t.geoFk, pc.`code`, pc.`code`
|
|
||||||
FROM vn.postCode pc
|
|
||||||
JOIN vn.town t ON t.id = pc.townFk
|
|
||||||
JOIN vn.province p ON p.id = t.provinceFk
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
ORDER BY t.geoFk, pc.`code`;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
|
|
||||||
-- Remove existing postCodes from zoneGeo
|
|
||||||
DELETE zg FROM vn.postCode pc
|
|
||||||
JOIN vn.town t ON t.id = pc.townFk
|
|
||||||
JOIN vn.province p ON p.id = t.provinceFk
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
JOIN tmp.zoneGeo zg ON zg.id = pc.geoFk;
|
|
||||||
|
|
||||||
-- Reset town geoFk
|
|
||||||
UPDATE vn.postCode pc
|
|
||||||
JOIN vn.town t ON t.id = pc.townFk
|
|
||||||
JOIN vn.province p ON p.id = t.provinceFk
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
SET pc.geoFk = NULL
|
|
||||||
WHERE pc.geoFk IS NOT NULL;
|
|
||||||
|
|
||||||
-- > Postcode cursor start
|
|
||||||
OPEN postcodeCur;
|
|
||||||
|
|
||||||
postcodeLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
|
|
||||||
FETCH postcodeCur INTO vParent, vChildFk, vChildName;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE postcodeLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName);
|
|
||||||
END LOOP;
|
|
||||||
CLOSE postcodeCur;
|
|
||||||
-- < Postcode cursor end
|
|
||||||
|
|
||||||
UPDATE postCode p
|
|
||||||
JOIN tmp.zoneGeo z ON z.name = p.code
|
|
||||||
SET p.geoFk = z.id
|
|
||||||
WHERE p.geoFk IS NULL;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,56 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`zoneNestProvince`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestProvince`()
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vParent INT DEFAULT 1;
|
|
||||||
DECLARE vGeoFk INT;
|
|
||||||
DECLARE vChildFk INT;
|
|
||||||
DECLARE vChildName VARCHAR(100);
|
|
||||||
DECLARE provinceCur CURSOR FOR
|
|
||||||
SELECT c.geoFk, p.id, p.`name`
|
|
||||||
FROM province p
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
JOIN vn.country c ON c.id = tc.id
|
|
||||||
ORDER BY c.geoFk, p.`name`;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
|
|
||||||
-- Remove existing provinces from zoneGeo
|
|
||||||
DELETE zg FROM vn.province p
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
JOIN tmp.zoneGeo zg ON zg.id = p.geoFk;
|
|
||||||
|
|
||||||
-- Reset country geoFk
|
|
||||||
UPDATE vn.province p
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
SET p.geoFk = NULL
|
|
||||||
WHERE p.geoFk IS NOT NULL;
|
|
||||||
|
|
||||||
-- > Province cursor start
|
|
||||||
OPEN provinceCur;
|
|
||||||
|
|
||||||
provinceLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
|
|
||||||
FETCH provinceCur INTO vParent, vChildFk, vChildName;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE provinceLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName);
|
|
||||||
END LOOP;
|
|
||||||
CLOSE provinceCur;
|
|
||||||
-- < Province cursor end
|
|
||||||
|
|
||||||
UPDATE province p
|
|
||||||
JOIN tmp.zoneGeo z ON z.name = p.name
|
|
||||||
SET p.geoFk = z.id
|
|
||||||
WHERE p.geoFk IS NULL;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,59 +0,0 @@
|
||||||
DROP procedure IF EXISTS `vn`.`zoneNestTown`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`zoneNestTown`()
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vParent INT DEFAULT 1;
|
|
||||||
DECLARE vGeoFk INT;
|
|
||||||
DECLARE vChildFk INT;
|
|
||||||
DECLARE vChildName VARCHAR(100);
|
|
||||||
DECLARE townCur CURSOR FOR
|
|
||||||
SELECT p.geoFk, t.id, t.`name`
|
|
||||||
FROM vn.town t
|
|
||||||
JOIN vn.province p ON p.id = t.provinceFk
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
ORDER BY p.geoFk, t.`name`;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
|
|
||||||
-- Remove existing towns from zoneGeo
|
|
||||||
DELETE zg FROM vn.town t
|
|
||||||
JOIN vn.province p ON p.id = t.provinceFk
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
JOIN tmp.zoneGeo zg ON zg.id = t.geoFk;
|
|
||||||
|
|
||||||
-- Reset town geoFk
|
|
||||||
UPDATE vn.town t
|
|
||||||
JOIN vn.province p ON p.id = t.provinceFk
|
|
||||||
JOIN tmp.country tc ON tc.id = p.countryFk
|
|
||||||
SET t.geoFk = NULL
|
|
||||||
WHERE t.geoFk IS NOT NULL;
|
|
||||||
|
|
||||||
-- > Town cursor start
|
|
||||||
OPEN townCur;
|
|
||||||
|
|
||||||
townLoop: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
|
|
||||||
FETCH townCur INTO vParent, vChildFk, vChildName;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE townLoop;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL nst.nodeAdd('tmp', 'zoneGeo', vParent, vChildName);
|
|
||||||
END LOOP;
|
|
||||||
CLOSE townCur;
|
|
||||||
-- < Town cursor end
|
|
||||||
|
|
||||||
UPDATE town t
|
|
||||||
JOIN tmp.zoneGeo z ON z.name = t.name
|
|
||||||
LEFT JOIN province p ON p.geoFk = z.id
|
|
||||||
SET t.geoFk = z.id
|
|
||||||
WHERE p.geoFk IS NULL;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
|
|
||||||
CREATE
|
|
||||||
OR REPLACE ALGORITHM = UNDEFINED
|
|
||||||
DEFINER = `root`@`%`
|
|
||||||
SQL SECURITY DEFINER
|
|
||||||
VIEW `vn`.`ticketGetVolume` AS
|
|
||||||
SELECT
|
|
||||||
`s`.`ticketFk` AS `ticketFk`,
|
|
||||||
`t`.`routeFk` AS `routeFk`,
|
|
||||||
`s`.`id` AS `saleFk`,
|
|
||||||
`t`.`shipped` AS `Fecha`,
|
|
||||||
(((`s`.`quantity` * `r`.`cm3`) * `i`.`compression`) / 1000000) AS `volume`
|
|
||||||
FROM
|
|
||||||
(((`vn`.`sale` `s`
|
|
||||||
JOIN `vn`.`item` `i` ON ((`i`.`id` = `s`.`itemFk`)))
|
|
||||||
JOIN `vn`.`ticket` `t` ON ((`t`.`id` = `s`.`ticketFk`)))
|
|
||||||
JOIN `bi`.`rotacion` `r` ON (((`r`.`Id_Article` = `s`.`itemFk`)
|
|
||||||
AND (`r`.`warehouse_id` = `t`.`warehouseFk`))));
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
|
|
||||||
DROP function IF EXISTS `vn`.`ticketTotalVolume`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn`$$
|
|
||||||
CREATE DEFINER=`root`@`%` FUNCTION `ticketTotalVolume`(vTicketId INT) RETURNS decimal(10,3)
|
|
||||||
READS SQL DATA
|
|
||||||
BEGIN
|
|
||||||
-- Devuelte el volumen total del ticket sumado
|
|
||||||
-- DECLARE vWarehouseId INTEGER;
|
|
||||||
-- DECLARE vShippedDate DATE;
|
|
||||||
DECLARE vVolume DECIMAL(10,3);
|
|
||||||
/*
|
|
||||||
SELECT warehouseFk, shipped INTO vWarehouseId,vShippedDate FROM vn.ticket WHERE id = vTicketId;
|
|
||||||
|
|
||||||
SELECT IFNULL(SUM(s.quantity * i.compression * r.cm3)/1000000,0) INTO vVolume
|
|
||||||
FROM sale s
|
|
||||||
JOIN vn.item i ON i.id = s.itemFk
|
|
||||||
JOIN bi.rotacion r on r.Id_Article = s.itemFk AND r.warehouse_id = vWarehouseId
|
|
||||||
WHERE s.ticketFk = vTicketId;
|
|
||||||
*/
|
|
||||||
SELECT sum(volume) INTO vVolume
|
|
||||||
FROM ticketGetVolume
|
|
||||||
WHERE ticketFk = vTicketId;
|
|
||||||
RETURN vVolume;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,61 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `vn`.`available_calc`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`available_calc`(
|
|
||||||
vDate DATE,
|
|
||||||
vAddress INT,
|
|
||||||
vAgencyMode INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calculates the available for all available stores
|
|
||||||
* according to the given parameters.
|
|
||||||
*
|
|
||||||
* @param vDate The delivery date
|
|
||||||
* @param vAddress The delivery address id
|
|
||||||
* @param vAgencyMode The shipping agency
|
|
||||||
* @return tmp.availableCalc(calcFk) The available cache ids
|
|
||||||
*/
|
|
||||||
DECLARE vCalcFk INT;
|
|
||||||
DECLARE vShipment DATE;
|
|
||||||
DECLARE vWarehouse INT;
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
|
|
||||||
DECLARE cWarehouses CURSOR FOR
|
|
||||||
SELECT warehouseFk, shipped FROM tmp.zoneGetShipped;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
-- Establecemos los almacenes y las fechas que van a entrar al disponible
|
|
||||||
|
|
||||||
CALL vn.zoneGetShippedWarehouse(vDate, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.availableCalc;
|
|
||||||
CREATE TEMPORARY TABLE tmp.availableCalc(
|
|
||||||
calcFk INT UNSIGNED,
|
|
||||||
PRIMARY KEY (calcFk)
|
|
||||||
)
|
|
||||||
ENGINE = MEMORY;
|
|
||||||
|
|
||||||
OPEN cWarehouses;
|
|
||||||
|
|
||||||
l: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cWarehouses INTO vWarehouse, vShipment;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE l;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL `cache`.available_refresh(vCalcFk, FALSE, vWarehouse, vShipment);
|
|
||||||
|
|
||||||
INSERT IGNORE INTO tmp.availableCalc
|
|
||||||
SET calcFk = vCalcFk;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cWarehouses;
|
|
||||||
DROP TEMPORARY TABLE tmp.zoneGetShipped;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `vn`.`catalog_calcFromItem`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`catalog_calcFromItem`(
|
|
||||||
vLanded DATE,
|
|
||||||
vAddressFk INT,
|
|
||||||
vAgencyModeFk INT,
|
|
||||||
vItemFk INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calculates available and price for a single item.
|
|
||||||
*
|
|
||||||
* @param vItemFk The item id
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
|
||||||
CREATE TEMPORARY TABLE tmp.item
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT vItemFk itemFk;
|
|
||||||
|
|
||||||
CALL ticketCalculate(vLanded, vAddressFk, vAgencyModeFk);
|
|
||||||
DROP TEMPORARY TABLE tmp.item;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,41 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`catalog_calcFromMyAddress`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`catalog_calcFromMyAddress`(vDelivery DATE, vAddress INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @param vDelivery Delivery date
|
|
||||||
* @param vAddress Address id
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT a.agencyModeFk
|
|
||||||
INTO vAgencyMode
|
|
||||||
FROM myClient c
|
|
||||||
JOIN vn.address a ON a.clientFk = c.id
|
|
||||||
WHERE a.id = vAddress;
|
|
||||||
|
|
||||||
CALL vn.available_calc(vDelivery, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
|
||||||
CREATE TEMPORARY TABLE tmp.item
|
|
||||||
(INDEX (itemFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT c.item_id itemFk
|
|
||||||
FROM `cache`.available c
|
|
||||||
JOIN tmp.availableCalc a ON a.calcFk = c.calc_id
|
|
||||||
WHERE c.available > 0
|
|
||||||
GROUP BY c.item_id;
|
|
||||||
|
|
||||||
CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.item;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,398 +0,0 @@
|
||||||
|
|
||||||
USE `vn2008`;
|
|
||||||
DROP procedure IF EXISTS `vn2008`.`bionic_available_`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn2008`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_available_`(
|
|
||||||
vDate DATE,
|
|
||||||
vAddress INT,
|
|
||||||
vAgency INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Calcula el disponible para un conjunto de almacenes y fechas
|
|
||||||
* devueltos por el procedimiento agencyHourGetShipped()
|
|
||||||
*
|
|
||||||
* @deprecated Use vn.available_calc()
|
|
||||||
* @table t_bionic_available Tabla con los ids de cache
|
|
||||||
*/
|
|
||||||
DECLARE vAvailableCalc INT;
|
|
||||||
DECLARE vShipment DATE;
|
|
||||||
DECLARE vAgencyId INT;
|
|
||||||
DECLARE vWh INT;
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE cTravelTree CURSOR FOR
|
|
||||||
SELECT warehouseFk, shipped FROM tmp.agencyHourGetShipped;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = TRUE;
|
|
||||||
|
|
||||||
-- Establecemos los almacenes y las fechas que van a entrar al disponible
|
|
||||||
|
|
||||||
SELECT agency_id INTO vAgencyId
|
|
||||||
FROM Agencias WHERE Id_Agencia = vAgency;
|
|
||||||
|
|
||||||
CALL vn.agencyHourGetShipped (vDate, vAddress, vAgencyId);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS t_bionic_available;
|
|
||||||
CREATE TEMPORARY TABLE t_bionic_available(
|
|
||||||
calc_id INT UNSIGNED,
|
|
||||||
PRIMARY KEY (calc_id)
|
|
||||||
)
|
|
||||||
ENGINE = MEMORY;
|
|
||||||
|
|
||||||
OPEN cTravelTree;
|
|
||||||
l: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cTravelTree INTO vWh, vShipment;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE l;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
CALL `cache`.available_refresh (vAvailableCalc, FALSE, vWh, vShipment);
|
|
||||||
|
|
||||||
INSERT IGNORE INTO t_bionic_available
|
|
||||||
SET calc_id = vAvailableCalc;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cTravelTree;
|
|
||||||
DROP TEMPORARY TABLE tmp.agencyHourGetShipped;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`bionic_from_item`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_from_item`(vItem INT)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT sent, addressFk, agencyModeFk
|
|
||||||
INTO vDate, vAddress, vAgencyMode
|
|
||||||
FROM myBasket;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_from_item(vDate, vAddress, vAgencyMode, vItem);
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `vn2008`;
|
|
||||||
DROP procedure IF EXISTS `vn2008`.`bionic_from_order`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `vn2008`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_from_order`(
|
|
||||||
v_date DATE, -- fecha de recepcion de mercancia
|
|
||||||
v_consigna INT,
|
|
||||||
v_agencia INT,
|
|
||||||
v_order INT)
|
|
||||||
BEGIN
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.bionic_calc;
|
|
||||||
CREATE TEMPORARY TABLE tmp.bionic_calc
|
|
||||||
(PRIMARY KEY (item_id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT item_id FROM order_row
|
|
||||||
WHERE order_id = v_order GROUP BY item_id;
|
|
||||||
|
|
||||||
CALL bionic_calc (v_date, v_consigna, v_agencia);
|
|
||||||
DROP TEMPORARY TABLE tmp.bionic_calc;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`bionicCalcWithDate`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__bionicCalcWithDate`(vDate DATE)
|
|
||||||
BEGIN
|
|
||||||
DECLARE vMyAddressFk INTEGER;
|
|
||||||
DECLARE vMyAgencyModeFk INTEGER;
|
|
||||||
|
|
||||||
SELECT id, agencyModeFk INTO vMyAddressFk, vMyAgencyModeFk
|
|
||||||
FROM myAddress
|
|
||||||
WHERE isDefaultAddress;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_calc(vDate, vMyAddressFk, vMyAgencyModeFk);
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`bionic_calc`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__bionic_calc`()
|
|
||||||
BEGIN
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT sent, addressFk, agencyModeFk
|
|
||||||
INTO vDate, vAddress, vAgencyMode
|
|
||||||
FROM myBasket;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_calc(vDate, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
IF account.myUserGetName() = 'visitor'
|
|
||||||
THEN
|
|
||||||
DROP TEMPORARY TABLE tmp.bionic_component;
|
|
||||||
UPDATE tmp.bionic_item SET price = NULL;
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`itemGetAvailableOrder`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__itemGetAvailableOrder`(vOrder INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list with an order params.
|
|
||||||
*
|
|
||||||
* @table tmp.itemAvailable
|
|
||||||
*/
|
|
||||||
DECLARE vDelivery DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgency INT;
|
|
||||||
|
|
||||||
SELECT landed, addressFk, agencyModeFk
|
|
||||||
INTO vDelivery, vAddress, vAgency
|
|
||||||
FROM myOrder
|
|
||||||
WHERE id = vOrder;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgency);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable;
|
|
||||||
CREATE TEMPORARY TABLE tmp.itemAvailable
|
|
||||||
(INDEX (id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT c.item_id id
|
|
||||||
FROM cache.available c
|
|
||||||
JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id
|
|
||||||
WHERE c.available > 0
|
|
||||||
GROUP BY c.item_id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE vn2008.t_bionic_available;
|
|
||||||
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`itemGetAvailable`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__itemGetAvailable`()
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @table tmp.itemAvailable
|
|
||||||
*/
|
|
||||||
DECLARE vDelivery DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgency INT;
|
|
||||||
|
|
||||||
SELECT sent, addressFk, agencyModeFk
|
|
||||||
INTO vDelivery, vAddress, vAgency
|
|
||||||
FROM myBasket;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgency);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable;
|
|
||||||
CREATE TEMPORARY TABLE tmp.itemAvailable
|
|
||||||
(INDEX (id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT c.item_id id
|
|
||||||
FROM cache.available c
|
|
||||||
JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id
|
|
||||||
WHERE c.available > 0
|
|
||||||
GROUP BY c.item_id;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE vn2008.t_bionic_available;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myItemGetAvailableFromDate`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__myItemGetAvailableFromDate`(vDelivery DATE)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @deprecated Use item_calcCatalogFromMyAddress()
|
|
||||||
* @param vDelivery Delivery date
|
|
||||||
*/
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT a.agencyModeFk, a.id
|
|
||||||
INTO vAgencyMode, vAddress
|
|
||||||
FROM myClient c
|
|
||||||
JOIN vn.address a ON a.id = c.defaultAddressFk;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
|
||||||
CREATE TEMPORARY TABLE tmp.item
|
|
||||||
(INDEX (itemFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT c.item_id itemFk
|
|
||||||
FROM cache.available c
|
|
||||||
JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id
|
|
||||||
WHERE c.available > 0
|
|
||||||
GROUP BY c.item_id;
|
|
||||||
|
|
||||||
CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode);
|
|
||||||
-- -------------------
|
|
||||||
/*SELECT b.itemFk, b.item, b.available, b.price
|
|
||||||
FROM tmp.ticketCalculateItem b
|
|
||||||
JOIN vn.item i ON i.id = b.itemFk
|
|
||||||
WHERE b.available > 0
|
|
||||||
ORDER BY i.relevancy DESC, i.name, i.size;
|
|
||||||
|
|
||||||
select * from tmp.ticketComponentPrice;*/
|
|
||||||
-- -------------------
|
|
||||||
DROP TEMPORARY TABLE vn2008.t_bionic_available;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myItemGetAvailable`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__myItemGetAvailable`(vDelivery DATE, vAddress INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @deprecated Use item_calcCatalogFromMyAddress()
|
|
||||||
* @param vDelivery Delivery date
|
|
||||||
* @param vAddress Id Address
|
|
||||||
*/
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT a.agencyModeFk
|
|
||||||
INTO vAgencyMode
|
|
||||||
FROM myClient c
|
|
||||||
JOIN vn.address a ON a.clientFk = c.id
|
|
||||||
WHERE a.id = vAddress;
|
|
||||||
|
|
||||||
CALL vn2008.bionic_available_ (vDelivery, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
|
||||||
CREATE TEMPORARY TABLE tmp.item
|
|
||||||
(INDEX (itemFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT c.item_id itemFk
|
|
||||||
FROM cache.available c
|
|
||||||
JOIN vn2008.t_bionic_available a ON c.calc_id = a.calc_id
|
|
||||||
WHERE c.available > 0
|
|
||||||
GROUP BY c.item_id;
|
|
||||||
|
|
||||||
CALL vn.ticketCalculate(vDelivery, vAddress, vAgencyMode);
|
|
||||||
-- -------------------
|
|
||||||
/*SELECT b.itemFk, b.item, b.available, b.price
|
|
||||||
FROM tmp.ticketCalculateItem b
|
|
||||||
JOIN vn.item i ON i.id = b.itemFk
|
|
||||||
WHERE b.available > 0
|
|
||||||
ORDER BY i.relevancy DESC, i.name, i.size;
|
|
||||||
|
|
||||||
select * from tmp.ticketComponentPrice;*/
|
|
||||||
-- -------------------
|
|
||||||
DROP TEMPORARY TABLE vn2008.t_bionic_available;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myOrderAddItem`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderAddItem`(
|
|
||||||
vSelf INT,
|
|
||||||
vWarehouse INT,
|
|
||||||
vItem INT,
|
|
||||||
vAmount INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* @deprecated Use myOrder_addItem()
|
|
||||||
*/
|
|
||||||
CALL myOrder_addItem(vSelf, vWarehouse, vItem, vAmount);
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myOrderConfirm`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderConfirm`(vSelf INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* @deprecated Use myOrder_confirm()
|
|
||||||
*/
|
|
||||||
CALL myOrder_confirm(vSelf);
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
||||||
|
|
||||||
|
|
||||||
USE `hedera`;
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myOrderNewFromDate`;
|
|
||||||
|
|
||||||
DELIMITER $$
|
|
||||||
USE `hedera`$$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `__myOrderNewFromDate`(
|
|
||||||
OUT vSelf INT,
|
|
||||||
vLandingDate DATE)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* @deprecated Use myOrder_newWithDate()
|
|
||||||
*/
|
|
||||||
CALL myOrder_newWithDate(vSelf, vLandingDate);
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
;
|
|
|
@ -1,19 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myBasket_calcCatalogFromItem`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myBasket_calcCatalogFromItem`(vItem INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the availability and prices for the given item
|
|
||||||
* using current user basket parameters.
|
|
||||||
*
|
|
||||||
* @table tmp.item(itemFk)
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
CALL order_calcCatalogFromItem(myBasket_getId(), vItem);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,19 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myBasket_calcCatalogFull`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myBasket_calcCatalogFull`()
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the availability and prices for the given items
|
|
||||||
* using current user basket parameters.
|
|
||||||
*
|
|
||||||
* @table tmp.item(itemFk)
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
CALL order_calcCatalogFull(myBasket_getId());
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,14 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myBasket_getAvailable`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myBasket_getAvailable`()
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @table tmp.itemAvailable
|
|
||||||
*/
|
|
||||||
CALL order_getAvailable(myBasket_getId());
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`myOrder_getAvailable`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`myOrder_getAvailable`(vSelf INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @param vSelf The order id
|
|
||||||
* @table tmp.itemAvailable
|
|
||||||
*/
|
|
||||||
DECLARE isMine BOOL;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO isMine
|
|
||||||
FROM myOrder
|
|
||||||
WHERE id = vSelf;
|
|
||||||
|
|
||||||
IF isMine THEN
|
|
||||||
CALL order_getAvailable(vSelf);
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,105 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`order_addItem`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_addItem`(
|
|
||||||
vSelf INT,
|
|
||||||
vWarehouse INT,
|
|
||||||
vItem INT,
|
|
||||||
vAmount INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Adds an item to the order, checking availability and grouping.
|
|
||||||
*
|
|
||||||
* @param vSelf The order id
|
|
||||||
* @param vWarehouse The warehouse id
|
|
||||||
* @param vItem The item id
|
|
||||||
* @param vAmount The amount to add
|
|
||||||
*/
|
|
||||||
DECLARE vRow INT;
|
|
||||||
DECLARE vAdd INT;
|
|
||||||
DECLARE vAvailable INT;
|
|
||||||
DECLARE vDone BOOL;
|
|
||||||
DECLARE vGrouping INT;
|
|
||||||
DECLARE vRate INT;
|
|
||||||
DECLARE vShipment DATE;
|
|
||||||
DECLARE vPrice DECIMAL(10,2);
|
|
||||||
DECLARE cur CURSOR FOR
|
|
||||||
SELECT `grouping`, price, rate
|
|
||||||
FROM tmp.ticketComponentPrice
|
|
||||||
WHERE warehouseFk = vWarehouse
|
|
||||||
AND itemFk = vItem
|
|
||||||
ORDER BY `grouping` DESC;
|
|
||||||
|
|
||||||
DECLARE CONTINUE HANDLER FOR NOT FOUND
|
|
||||||
SET vDone = TRUE;
|
|
||||||
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
CALL order_calcCatalogFromItem(vSelf, vItem);
|
|
||||||
START TRANSACTION;
|
|
||||||
|
|
||||||
SELECT shipped INTO vShipment
|
|
||||||
FROM tmp.zoneGetShipped
|
|
||||||
WHERE warehouseFk = vWarehouse;
|
|
||||||
|
|
||||||
SELECT available INTO vAvailable
|
|
||||||
FROM tmp.ticketLot
|
|
||||||
WHERE warehouseFk = vWarehouse
|
|
||||||
AND itemFk = vItem;
|
|
||||||
|
|
||||||
IF vAmount > IFNULL(vAvailable, 0) THEN
|
|
||||||
CALL util.throw ('ORDER_ROW_UNAVAILABLE');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
OPEN cur;
|
|
||||||
|
|
||||||
l: LOOP
|
|
||||||
SET vDone = FALSE;
|
|
||||||
FETCH cur INTO vGrouping, vPrice, vRate;
|
|
||||||
|
|
||||||
IF vDone THEN
|
|
||||||
LEAVE l;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
SET vAdd = vAmount - MOD(vAmount, vGrouping);
|
|
||||||
SET vAmount = vAmount - vAdd;
|
|
||||||
|
|
||||||
IF vAdd = 0 THEN
|
|
||||||
ITERATE l;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
INSERT INTO orderRow SET
|
|
||||||
orderFk = vSelf,
|
|
||||||
itemFk = vItem,
|
|
||||||
warehouseFk = vWarehouse,
|
|
||||||
shipment = vShipment,
|
|
||||||
rate = vRate,
|
|
||||||
amount = vAdd,
|
|
||||||
price = vPrice;
|
|
||||||
|
|
||||||
SET vRow = LAST_INSERT_ID();
|
|
||||||
|
|
||||||
INSERT INTO orderRowComponent (rowFk, componentFk, price)
|
|
||||||
SELECT vRow, c.componentFk, c.cost
|
|
||||||
FROM tmp.ticketComponent c
|
|
||||||
JOIN vn.component t
|
|
||||||
ON t.id = c.componentFk
|
|
||||||
AND (t.classRate IS NULL OR t.classRate = vRate)
|
|
||||||
WHERE c.warehouseFk = vWarehouse
|
|
||||||
AND c.itemFk = vItem;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
CLOSE cur;
|
|
||||||
|
|
||||||
IF vAmount > 0 THEN
|
|
||||||
CALL util.throw ('AMOUNT_NOT_MATCH_GROUPING');
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
COMMIT;
|
|
||||||
CALL vn.ticketCalculatePurge;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,36 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`order_calcCatalog`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_calcCatalog`(vSelf INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the availability and prices for order items.
|
|
||||||
*
|
|
||||||
* @param vSelf The order id
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
*/
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT date_send, address_id, agency_id
|
|
||||||
INTO vDate, vAddress, vAgencyMode
|
|
||||||
FROM `order`
|
|
||||||
WHERE id = vSelf;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.item;
|
|
||||||
CREATE TEMPORARY TABLE tmp.item
|
|
||||||
(PRIMARY KEY (itemFk))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT itemFk FROM orderRow
|
|
||||||
WHERE orderFk = vSelf
|
|
||||||
GROUP BY itemFk;
|
|
||||||
|
|
||||||
CALL vn.ticketCalculate(vDate, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.item;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,30 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`order_calcCatalogFromItem`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_calcCatalogFromItem`(vSelf INT, vItem INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the availability and prices for the given item
|
|
||||||
* using the order parameters.
|
|
||||||
*
|
|
||||||
* @param vSelf The order id
|
|
||||||
* @table tmp.item(itemFk)
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT date_send, address_id, agency_id
|
|
||||||
INTO vDate, vAddress, vAgencyMode
|
|
||||||
FROM `order`
|
|
||||||
WHERE id = vSelf;
|
|
||||||
|
|
||||||
CALL vn.catalog_calcFromItem(vDate, vAddress, vAgencyMode, vItem);
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`order_calcCatalogFull`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_calcCatalogFull`(vSelf INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the availability and prices for the given items
|
|
||||||
* using the order parameters.
|
|
||||||
*
|
|
||||||
* @param vSelf The order id
|
|
||||||
* @table tmp.item(itemFk)
|
|
||||||
* @return tmp.ticketCalculateItem
|
|
||||||
* @return tmp.ticketComponentPrice
|
|
||||||
* @return tmp.ticketComponent
|
|
||||||
* @return tmp.ticketLot
|
|
||||||
* @return tmp.zoneGetShipped
|
|
||||||
*/
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT date_send, address_id, agency_id
|
|
||||||
INTO vDate, vAddress, vAgencyMode
|
|
||||||
FROM `order`
|
|
||||||
WHERE id = vSelf;
|
|
||||||
|
|
||||||
CALL vn.ticketCalculate(vDate, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
IF account.myUserGetName() = 'visitor'
|
|
||||||
THEN
|
|
||||||
DROP TEMPORARY TABLE tmp.ticketComponent;
|
|
||||||
UPDATE tmp.ticketCalculateItem SET price = NULL;
|
|
||||||
END IF;
|
|
||||||
END$$
|
|
||||||
DELIMITER ;
|
|
|
@ -1,34 +0,0 @@
|
||||||
DROP procedure IF EXISTS `hedera`.`order_getAvailable`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_getAvailable`(vSelf INT)
|
|
||||||
BEGIN
|
|
||||||
/**
|
|
||||||
* Gets the available items list.
|
|
||||||
*
|
|
||||||
* @param vSelf The order id
|
|
||||||
* @table tmp.itemAvailable
|
|
||||||
*/
|
|
||||||
DECLARE vDelivery DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
|
|
||||||
SELECT date_send, address_id, agency_id
|
|
||||||
INTO vDelivery, vAddress, vAgencyMode
|
|
||||||
FROM `order`
|
|
||||||
WHERE id = vSelf;
|
|
||||||
|
|
||||||
CALL vn.available_calc(vDelivery, vAddress, vAgencyMode);
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE IF EXISTS tmp.itemAvailable;
|
|
||||||
CREATE TEMPORARY TABLE tmp.itemAvailable
|
|
||||||
(INDEX (id))
|
|
||||||
ENGINE = MEMORY
|
|
||||||
SELECT DISTINCT a.item_id id
|
|
||||||
FROM `cache`.available a
|
|
||||||
JOIN tmp.availableCalc c ON c.calcFk = a.calc_id
|
|
||||||
WHERE a.available > 0;
|
|
||||||
|
|
||||||
DROP TEMPORARY TABLE tmp.availableCalc;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
|
@ -1,71 +0,0 @@
|
||||||
|
|
||||||
DROP procedure IF EXISTS `hedera`.`order_update`;
|
|
||||||
DELIMITER $$
|
|
||||||
CREATE DEFINER=`root`@`%` PROCEDURE `hedera`.`order_update`(vSelf INT)
|
|
||||||
proc: BEGIN
|
|
||||||
/**
|
|
||||||
* Actualiza las líneas de un pedido.
|
|
||||||
*
|
|
||||||
* @param vSelf Id del pedido
|
|
||||||
*/
|
|
||||||
DECLARE vDate DATE;
|
|
||||||
DECLARE vAddress INT;
|
|
||||||
DECLARE vAgencyMode INT;
|
|
||||||
DECLARE vNRows INT;
|
|
||||||
|
|
||||||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
|
||||||
BEGIN
|
|
||||||
ROLLBACK;
|
|
||||||
RESIGNAL;
|
|
||||||
END;
|
|
||||||
|
|
||||||
START TRANSACTION;
|
|
||||||
|
|
||||||
SELECT COUNT(*) INTO vNRows
|
|
||||||
FROM orderRow WHERE orderFk = vSelf;
|
|
||||||
|
|
||||||
IF vNRows > 0
|
|
||||||
THEN
|
|
||||||
CALL order_calcCatalog(vSelf);
|
|
||||||
|
|
||||||
DELETE c
|
|
||||||
FROM orderRow r
|
|
||||||
JOIN orderRowComponent c ON c.rowFk = r.id
|
|
||||||
WHERE r.orderFk = vSelf;
|
|
||||||
|
|
||||||
UPDATE orderRow r
|
|
||||||
LEFT JOIN tmp.ticketComponentPrice p
|
|
||||||
ON p.warehouseFk = r.warehouseFk
|
|
||||||
AND p.itemFk = r.itemFk
|
|
||||||
AND p.rate = r.rate
|
|
||||||
LEFT JOIN tmp.zoneGetShipped t
|
|
||||||
ON t.warehouseFk = r.warehouseFk
|
|
||||||
SET
|
|
||||||
r.price = p.price,
|
|
||||||
r.amount = IF(p.itemFk IS NOT NULL,
|
|
||||||
r.amount + IF(@m := MOD(r.amount, p.`grouping`), p.`grouping` - @m, 0), 0),
|
|
||||||
r.shipment = t.shipped
|
|
||||||
WHERE r.orderFk = vSelf;
|
|
||||||
|
|
||||||
INSERT INTO orderRowComponent(rowFk, componentFk, price)
|
|
||||||
SELECT r.id, c.componentFk, c.cost
|
|
||||||
FROM orderRow r
|
|
||||||
JOIN tmp.ticketComponent c
|
|
||||||
ON c.warehouseFk = r.warehouseFk
|
|
||||||
AND c.itemFk = r.itemFk
|
|
||||||
JOIN vn.component t
|
|
||||||
ON t.id = c.componentFk
|
|
||||||
AND (t.classRate IS NULL OR t.classRate = r.rate)
|
|
||||||
WHERE r.orderFk = vSelf;
|
|
||||||
|
|
||||||
CALL vn.ticketCalculatePurge;
|
|
||||||
END IF;
|
|
||||||
|
|
||||||
UPDATE `order` SET date_make = NOW()
|
|
||||||
WHERE id = vSelf;
|
|
||||||
|
|
||||||
COMMIT;
|
|
||||||
END$$
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
RENAME TABLE hedera.myOrderMyTicket TO hedera.myOrderTicket;
|
|
|
@ -1,10 +0,0 @@
|
||||||
GRANT EXECUTE ON PROCEDURE vn.zoneGetAgency TO `account`@`%`;
|
|
||||||
GRANT EXECUTE ON PROCEDURE hedera.myBasket_calcCatalogFromItem TO `guest`@`%`;
|
|
||||||
GRANT EXECUTE ON PROCEDURE hedera.myBasket_calcCatalogFull TO `guest`@`%`;
|
|
||||||
GRANT EXECUTE ON PROCEDURE hedera.myBasket_getAvailable TO `guest`@`%`;
|
|
||||||
GRANT EXECUTE ON PROCEDURE hedera.myOrder_getAvailable TO `guest`@`%`;
|
|
||||||
GRANT EXECUTE ON PROCEDURE hedera.catalog_calcFromMyAddress TO account@'%';
|
|
||||||
REVOKE SELECT ON TABLE hedera.myOrderMyTicket FROM account@'%';
|
|
||||||
GRANT SELECT ON TABLE hedera.myOrderTicket TO account@'%';
|
|
||||||
|
|
||||||
CALL account.privSync;
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
DROP procedure IF EXISTS `vn`.`ticketGetProblems`;
|
||||||
|
|
||||||
|
DELIMITER $$
|
||||||
|
CREATE DEFINER=`root`@`%` PROCEDURE `vn`.`ticketGetProblems`()
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
DECLARE vWarehouse INT;
|
||||||
|
DECLARE vDate DATE;
|
||||||
|
DECLARE vAvailableCache INT;
|
||||||
|
DECLARE vVisibleCache INT;
|
||||||
|
DECLARE vDone INT DEFAULT 0;
|
||||||
|
|
||||||
|
DECLARE vCursor CURSOR FOR
|
||||||
|
SELECT DISTINCT tt.warehouseFk, date(tt.shipped)
|
||||||
|
FROM tmp.ticketGetProblems tt
|
||||||
|
WHERE DATE(tt.shipped) BETWEEN CURDATE()
|
||||||
|
AND TIMESTAMPADD(DAY, 1.9, CURDATE());
|
||||||
|
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.ticketProblems;
|
||||||
|
CREATE TEMPORARY TABLE tmp.ticketProblems (
|
||||||
|
ticketFk INT(11) PRIMARY KEY,
|
||||||
|
isFreezed INTEGER(1) DEFAULT 0,
|
||||||
|
risk DECIMAL(10,2) DEFAULT 0,
|
||||||
|
hasTicketRequest INTEGER(1) DEFAULT 0,
|
||||||
|
isAvailable INTEGER(1) DEFAULT 1
|
||||||
|
) ENGINE = MEMORY;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.ticketList;
|
||||||
|
CREATE TEMPORARY TABLE tmp.ticketList
|
||||||
|
(PRIMARY KEY (ticketFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT tp.ticketFk, c.id clientFk
|
||||||
|
FROM tmp.ticketGetProblems tp
|
||||||
|
JOIN vn.client c ON c.id = tp.clientFk;
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO tmp.ticketProblems(ticketFk, isFreezed)
|
||||||
|
SELECT DISTINCT tl.ticketFk, 1
|
||||||
|
FROM tmp.ticketList tl
|
||||||
|
JOIN vn.client c ON c.id = tl.clientFk
|
||||||
|
WHERE c.isFreezed;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS tmp.clientGetDebt;
|
||||||
|
CREATE TEMPORARY TABLE tmp.clientGetDebt
|
||||||
|
(PRIMARY KEY (clientFk))
|
||||||
|
ENGINE = MEMORY
|
||||||
|
SELECT DISTINCT clientFk
|
||||||
|
FROM tmp.ticketList;
|
||||||
|
|
||||||
|
CALL clientGetDebt(CURDATE());
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO tmp.ticketProblems(ticketFk, risk)
|
||||||
|
SELECT DISTINCT tl.ticketFk, r.risk
|
||||||
|
FROM tmp.ticketList tl
|
||||||
|
JOIN vn.ticket t ON t.id = tl.ticketFk
|
||||||
|
JOIN vn.agencyMode a ON t.agencyModeFk = a.id
|
||||||
|
JOIN tmp.risk r ON r.clientFk = t.clientFk
|
||||||
|
JOIN vn.client c ON c.id = t.clientFk
|
||||||
|
WHERE r.risk > c.credit + 10
|
||||||
|
AND a.deliveryMethodFk != 3
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
risk = r.risk;
|
||||||
|
|
||||||
|
INSERT INTO tmp.ticketProblems(ticketFk, hasTicketRequest)
|
||||||
|
SELECT DISTINCT tl.ticketFk, 1
|
||||||
|
FROM tmp.ticketList tl
|
||||||
|
JOIN vn.ticketRequest tr ON tr.ticketFk = tl.ticketFk
|
||||||
|
WHERE tr.isOK IS NULL
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
hasTicketRequest = 1;
|
||||||
|
|
||||||
|
OPEN vCursor;
|
||||||
|
|
||||||
|
WHILE NOT vDone
|
||||||
|
DO
|
||||||
|
FETCH vCursor INTO vWarehouse, vDate;
|
||||||
|
|
||||||
|
CALL cache.visible_refresh(vVisibleCache, FALSE, vWarehouse);
|
||||||
|
CALL cache.available_refresh(vAvailableCache, FALSE, vWarehouse, vDate);
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO tmp.ticketProblems(ticketFk, isAvailable)
|
||||||
|
SELECT tl.ticketFk, 0
|
||||||
|
FROM tmp.ticketList tl
|
||||||
|
JOIN vn.ticket t ON t.id = tl.ticketFk
|
||||||
|
LEFT JOIN vn.sale s ON s.ticketFk = t.id
|
||||||
|
JOIN vn.item i ON i.id = s.itemFk
|
||||||
|
JOIN vn.itemType it on it.id = i.typeFk
|
||||||
|
LEFT JOIN cache.available av ON av.item_id = i.id
|
||||||
|
AND av.calc_id = vAvailableCache
|
||||||
|
WHERE date(t.shipped) = vDate
|
||||||
|
AND categoryFk != 6
|
||||||
|
AND IFNULL(av.available, 0) < 0
|
||||||
|
AND s.isPicked = FALSE
|
||||||
|
AND NOT i.generic
|
||||||
|
AND vWarehouse = t.warehouseFk
|
||||||
|
GROUP BY tl.ticketFk
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
isAvailable = 0;
|
||||||
|
|
||||||
|
INSERT INTO tmp.ticketProblems(ticketFk, isAvailable)
|
||||||
|
SELECT tl.ticketFk, 0
|
||||||
|
FROM tmp.ticketList tl
|
||||||
|
JOIN vn.ticket t ON t.id = tl.ticketFk
|
||||||
|
LEFT JOIN vn.sale s ON s.ticketFk = t.id
|
||||||
|
JOIN vn.item i ON i.id = s.itemFk
|
||||||
|
JOIN vn.itemType it on it.id = i.typeFk
|
||||||
|
LEFT JOIN cache.visible v ON i.id = v.item_id AND v.calc_id = vVisibleCache
|
||||||
|
LEFT JOIN cache.available av ON av.item_id = i.id AND av.calc_id = vAvailableCache
|
||||||
|
WHERE IFNULL(av.available, 0) >= 0
|
||||||
|
AND s.quantity > IFNULL(v.visible, 0)
|
||||||
|
AND s.isPicked = FALSE
|
||||||
|
AND s.reserved = FALSE
|
||||||
|
AND it.categoryFk != 6
|
||||||
|
AND date(t.shipped) = vDate
|
||||||
|
AND NOT i.generic
|
||||||
|
AND CURDATE() = vDate
|
||||||
|
AND t.warehouseFk = vWarehouse
|
||||||
|
GROUP BY tl.ticketFk
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
isAvailable = 0;
|
||||||
|
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
CLOSE vCursor;
|
||||||
|
|
||||||
|
SELECT * FROM tmp.ticketProblems;
|
||||||
|
|
||||||
|
DROP TEMPORARY TABLE
|
||||||
|
tmp.clientGetDebt,
|
||||||
|
tmp.ticketList;
|
||||||
|
|
||||||
|
END$$
|
||||||
|
|
||||||
|
DELIMITER ;
|
||||||
|
|
Loading…
Reference in New Issue