Guest User

Untitled

a guest
Jan 19th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. do{
  2. do{
  3. }loop
  4. }loop
  5.  
  6. DROP PROCEDURE IF EXISTS corrige_list_volume_por_exp_finalizada;
  7. DELIMITER |
  8. CREATE PROCEDURE corrige_list_volume_por_exp_finalizada (INOUT list_exp varchar(65535))
  9. BEGIN
  10. DECLARE v_finished INTEGER DEFAULT 0;
  11. DECLARE id_exp INT ;
  12. DECLARE id_prod INT;
  13. DECLARE id_conf INT;
  14. DECLARE if_volume INT;
  15. DECLARE cont_volume INT;
  16.  
  17. DEClARE exp_cursor CURSOR FOR
  18. SELECT id FROM expedicao
  19. WHERE data_fim IS NOT NULL
  20. AND status LIKE 'em_separacao'
  21. LIMIT 10;
  22.  
  23. DECLARE CONTINUE HANDLER
  24. FOR NOT FOUND SET v_finished = 1;
  25.  
  26. OPEN exp_cursor;
  27. get_exp: LOOP
  28. FETCH exp_cursor INTO id_exp;
  29. IF v_finished = 1 THEN
  30. LEAVE get_exp;
  31. END IF;
  32.  
  33. DEClARE conf_cursor CURSOR FOR
  34. SELECT conferencia_id FROM separacao
  35. WHERE expedicao_id = id_exp;
  36.  
  37. if_volume = 0;
  38. get_conf: LOOP
  39. FETCH conf_cursor INTO id_conf;
  40. IF v_finished = 1 THEN
  41. LEAVE get_conf;
  42. END IF;
  43.  
  44. SELECT count(*) INTO cont_volume FROM volume
  45. WHERE id IN(
  46. SELECT interno_id FROM conferencia_item
  47. WHERE conferencia_id = id_conf)
  48. AND contido_em_id IS NOT NULL
  49. AND area_id IS NOT NULL
  50. AND expedicao_id IS NULL
  51. LIMIT 1;
  52.  
  53. if_volume = if_volume + cont_volume;
  54. END LOOP get_conf;
  55.  
  56. IF if_volume >= 0 THEN
  57. SET list_exp = CONCAT(id_exp,";",list_exp);
  58. LEAVE get_exp;
  59. END IF;
  60.  
  61. END LOOP get_exp;
  62. CLOSE exp_cursor;
  63. END |
  64. DELIMITER ;
Add Comment
Please, Sign In to add comment