65 lines
1.2 KiB
SQL
65 lines
1.2 KiB
SQL
DELIMITER $$
|
|
CREATE OR REPLACE DEFINER=`root`@`localhost` FUNCTION `vn`.`ticket_get`(vParamFk INT)
|
|
RETURNS int(11)
|
|
NOT DETERMINISTIC
|
|
READS SQL DATA
|
|
proc:BEGIN
|
|
|
|
/* Devuelve el número de ticket o collection consultando en varias tablas posibles
|
|
*
|
|
* @param vParamFk Número a validar
|
|
* @return vValidFk Identificador validado
|
|
*/
|
|
|
|
DECLARE vValidFk INT;
|
|
|
|
-- Tabla vn.saleGroup
|
|
SELECT s.ticketFk INTO vValidFk
|
|
FROM vn.sale s
|
|
JOIN vn.saleGroupDetail sgd ON sgd.saleFk = s.id
|
|
JOIN vn.saleGroup sg ON sg.id = sgd.saleGroupFk
|
|
WHERE sg.id = vParamFk
|
|
AND sg.created > TIMESTAMPADD(WEEK,-1, util.VN_CURDATE())
|
|
LIMIT 1;
|
|
|
|
IF vValidFk THEN
|
|
|
|
RETURN vValidFk;
|
|
|
|
LEAVE proc;
|
|
|
|
END IF;
|
|
|
|
-- Tabla vn.collection
|
|
SELECT c.id INTO vValidFk
|
|
FROM vn.collection c
|
|
WHERE c.id = vParamFk
|
|
AND c.created > TIMESTAMPADD(WEEK,-1, util.VN_CURDATE());
|
|
|
|
IF vValidFk THEN
|
|
|
|
RETURN vValidFk;
|
|
|
|
LEAVE proc;
|
|
|
|
END IF;
|
|
|
|
-- Tabla vn.ticket
|
|
SELECT t.id INTO vValidFk
|
|
FROM vn.ticket t
|
|
WHERE t.id = vParamFk
|
|
AND t.shipped > TIMESTAMPADD(WEEK,-1, util.VN_CURDATE());
|
|
|
|
IF vValidFk THEN
|
|
|
|
RETURN vValidFk;
|
|
|
|
LEAVE proc;
|
|
|
|
END IF;
|
|
|
|
RETURN NULL;
|
|
|
|
END$$
|
|
DELIMITER ;
|