Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.25 KB | None | 0 0
  1. BEGIN
  2.     DECLARE no_more_rows BOOLEAN DEFAULT FALSE;
  3.     DECLARE v_done BOOLEAN DEFAULT FALSE;
  4.     DECLARE v_idprestamo INT;
  5.     DECLARE v_installment INT;
  6.     DECLARE v_fechadesde DATE;
  7.     DECLARE v_fechahasta DATE;
  8.     DECLARE v_fechaactualizacion DATE;     
  9.     DECLARE v_hay INT DEFAULT 0;
  10.    
  11.     DECLARE cursor_prestamos CURSOR FOR
  12.     SELECT  id
  13.     FROM    m_loan
  14.     WHERE   loan_status_id=300
  15.     AND     id=82  ;
  16.  
  17.     DECLARE cursor_schedule CURSOR FOR
  18.     SELECT  installment,
  19.         fromdate,
  20.         duedate
  21.     FROM    m_loan_repayment_schedule r
  22.     WHERE   r.loan_id=v_idprestamo;
  23.  
  24.     DECLARE CONTINUE HANDLER FOR NOT FOUND
  25.     SET v_done := TRUE;
  26.    
  27.   OPEN cursor_prestamos;
  28.   LOOP1: LOOP
  29.     SET v_hay:=0;
  30.     FETCH cursor_prestamos INTO v_idprestamo;
  31.     IF v_done THEN
  32.       CLOSE cursor_prestamos;
  33.       LEAVE LOOP1;
  34.     END IF;
  35.      
  36.     OPEN cursor_schedule;
  37.     LOOP2: LOOP
  38.       FETCH cursor_schedule INTO v_installment, v_fechadesde, v_fechahasta;
  39.         IF v_done THEN
  40.           SET v_done := FALSE;
  41.           CLOSE cursor_schedule;
  42.           LEAVE LOOP2;
  43.         END IF;
  44.        
  45.         IF MONTH(v_fechahasta)=1 THEN
  46.            UPDATE   m_loan_repayment_schedule
  47.             SET duedate=DATE_ADD(duedate,INTERVAL 1 MONTH)
  48.         WHERE   loan_id=v_idprestamo
  49.         AND     installment=v_installment;
  50.    
  51.            UPDATE   m_loan_repayment_schedule
  52.             SET     fromdate=DATE_ADD(fromdate,INTERVAL 1 MONTH),
  53.                 duedate=DATE_ADD(duedate,INTERVAL 1 MONTH)
  54.         WHERE loan_id=v_idprestamo
  55.         AND installment>v_installment
  56.         AND installment<=v_installment+11;
  57.        SET v_hay:=1;   
  58.         END IF;  
  59.        
  60.         IF MONTH(v_fechadesde)=1 THEN
  61.            
  62.            
  63.            SET v_hay:=1;   
  64.         END IF;  
  65.          
  66.    
  67.    
  68.    
  69.    
  70.        
  71.     END LOOP LOOP2;
  72.      
  73.     IF v_hay=1  THEN
  74.            
  75.         UPDATE  m_loan_repayment_schedule r
  76.         SET     r.fromdate=DATE_ADD(r.fromdate,INTERVAL 1 MONTH)
  77.         WHERE   r.loan_id=v_idprestamo
  78.         AND     MONTH(r.fromdate)=1;
  79.        
  80.         SELECT      duedate    
  81.         INTO        v_fechaactualizacion
  82.         FROM        m_loan_repayment_schedule
  83.         WHERE       loan_id=v_idprestamo
  84.         ORDER BY    id   DESC
  85.         LIMIT       0,1;
  86.        
  87.         UPDATE      m_loan
  88.         SET     maturedon_date=v_fechaactualizacion,
  89.                 expected_maturedon_date=v_fechaactualizacion
  90.         WHERE       id=v_idprestamo;
  91.     END IF;
  92.   END LOOP LOOP1;
  93.  
  94.     END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement