Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- do{
- do{
- }loop
- }loop
- DROP PROCEDURE IF EXISTS corrige_list_volume_por_exp_finalizada;
- DELIMITER |
- CREATE PROCEDURE corrige_list_volume_por_exp_finalizada (INOUT list_exp varchar(65535))
- BEGIN
- DECLARE v_finished INTEGER DEFAULT 0;
- DECLARE id_exp INT ;
- DECLARE id_prod INT;
- DECLARE id_conf INT;
- DECLARE if_volume INT;
- DECLARE cont_volume INT;
- DEClARE exp_cursor CURSOR FOR
- SELECT id FROM expedicao
- WHERE data_fim IS NOT NULL
- AND status LIKE 'em_separacao'
- LIMIT 10;
- DECLARE CONTINUE HANDLER
- FOR NOT FOUND SET v_finished = 1;
- OPEN exp_cursor;
- get_exp: LOOP
- FETCH exp_cursor INTO id_exp;
- IF v_finished = 1 THEN
- LEAVE get_exp;
- END IF;
- DEClARE conf_cursor CURSOR FOR
- SELECT conferencia_id FROM separacao
- WHERE expedicao_id = id_exp;
- if_volume = 0;
- get_conf: LOOP
- FETCH conf_cursor INTO id_conf;
- IF v_finished = 1 THEN
- LEAVE get_conf;
- END IF;
- SELECT count(*) INTO cont_volume FROM volume
- WHERE id IN(
- SELECT interno_id FROM conferencia_item
- WHERE conferencia_id = id_conf)
- AND contido_em_id IS NOT NULL
- AND area_id IS NOT NULL
- AND expedicao_id IS NULL
- LIMIT 1;
- if_volume = if_volume + cont_volume;
- END LOOP get_conf;
- IF if_volume >= 0 THEN
- SET list_exp = CONCAT(id_exp,";",list_exp);
- LEAVE get_exp;
- END IF;
- END LOOP get_exp;
- CLOSE exp_cursor;
- END |
- DELIMITER ;
Add Comment
Please, Sign In to add comment