salix/db/routines/vn/procedures/expeditionState_addByPallet...

32 lines
959 B
SQL

DELIMITER $$
CREATE OR REPLACE DEFINER=`vn`@`localhost` PROCEDURE `vn`.`expeditionState_addByPallet`(vPalletFk INT, vStateCode VARCHAR(100))
BEGIN
/**
* Inserta nuevos registros en la tabla vn.expeditionState
*
* @param vPalletFk Identificador de vn.expedition
* @param vStateCode Corresponde a vn.expeditionStateType.code
*/
DECLARE hasExpeditions BOOL;
DROP TEMPORARY TABLE IF EXISTS tExpeditionScan;
CREATE TEMPORARY TABLE tExpeditionScan
SELECT expeditionFk, est.id typeFk
FROM vn.expeditionScan e
JOIN vn.expeditionStateType est ON est.code = vStateCode
WHERE e.palletFk = vPalletFk;
SELECT COUNT(*) INTO hasExpeditions FROM tExpeditionScan;
IF NOT hasExpeditions THEN
DROP TEMPORARY TABLE tExpeditionScan;
CALL util.throw('palletDoesNotExist');
END IF;
INSERT INTO vn.expeditionState(expeditionFk, typeFk)
SELECT expeditionFk, typeFk
FROM tExpeditionScan;
DROP TEMPORARY TABLE tExpeditionScan;
END$$
DELIMITER ;