65 lines
1.2 KiB
MySQL
65 lines
1.2 KiB
MySQL
|
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 ;
|