Advertisement
Guest User

Untitled

a guest
Dec 19th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.54 KB | None | 0 0
  1. USE `pbxlogic_autodial`$$
  2. CREATE DEFINER = CURRENT_USER TRIGGER `pbxlogic_autodial`.`stop_conversation` AFTER INSERT ON `event_stop_conversation` FOR EACH ROW
  3. BEGIN
  4.     DECLARE done INTEGER DEFAULT 0;
  5.    
  6.     DECLARE id INTEGER DEFAULT 0;
  7.     DECLARE new_channel VARCHAR(100) DEFAULT NULL;
  8.     DECLARE new_uniqueid VARCHAR(100) DEFAULT NULL;
  9.    
  10.     /*запрос на получение phone_num_id из call_progress на событие начала разговора*/
  11.     DECLARE cursor_get_phone_num_id CURSOR FOR
  12.     SELECT
  13.         phone_num_id
  14.     FROM
  15.         call_progress
  16.     WHERE
  17.         channel = new_channel AND
  18.         uniqueid = new_uniqueid;
  19.    
  20.     /*хендлер сигнализирующий об конце строк в каком-либо запросе*/
  21.     DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
  22.    
  23.     SET done=0;
  24.     SET new_channel=NEW.channel;
  25.     SET new_uniqueid=NEW.uniqueid;
  26.    
  27.     OPEN cursor_get_phone_num_id;
  28.         WHILE done=0 DO
  29.             FETCH cursor_get_phone_num_id INTO id;
  30.         END WHILE;
  31.     CLOSE cursor_get_phone_num_id;
  32.    
  33.     IF id>0 THEN    
  34.         /*очищаем оператора */
  35.         UPDATE operators
  36.         SET
  37.             phone_num_id=NULL,
  38.             trash_found=0,
  39.             garbage_collector_time = NULL
  40.         WHERE
  41.             phone_num_id=id;
  42.            
  43.         /*очищаем call_progress*/
  44.         DELETE
  45.         FROM
  46.             call_progress
  47.         WHERE
  48.             phone_num_id=id;
  49.     END IF;
  50. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement