Advertisement
carlozgn

sp

Jan 23rd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.13 KB | None | 0 0
  1. ALTER PROCEDURE  [dbo].[INTRA_SP_I_SOLICITUD_VACACIONES]
  2.  
  3. @rut                INT,
  4. @rol                INT,
  5. @nombre         VARCHAR(100),
  6. @mail               VARCHAR(100),
  7. @fechaDesde         VARCHAR(20),
  8. @fechaHasta         VARCHAR(20),
  9. @diasHabilesPendientes      VARCHAR(10),
  10. @diasProgresivosPendientes  VARCHAR(10),
  11. @diasProporcionales     VARCHAR(10),
  12. @comentario         VARCHAR(500),
  13. @rolJefe            INT,
  14. @mailJefe           VARCHAR(100)
  15.  
  16. AS
  17.  
  18.     DECLARE  @fechaCreacion  datetime
  19.     DECLARE  @codigoSolicitud  INT
  20.     DECLARE  @retorno  VARCHAR(2)
  21.     DECLARE @cuentaPendientes  INT
  22.     DECLARE @nombreJefe  VARCHAR(500)
  23.     DECLARE @tipoRol INT
  24.     DECLARE @nombreDestino  VARCHAR(100)
  25.     DECLARE @emailDestino   VARCHAR(100)
  26.  
  27.     SET @fechaCreacion = getDate()
  28.     SET @codigoSolicitud = 0
  29.     SET @cuentaPendientes = 0
  30.  
  31.     SET @mail = rtrim(@mail)
  32.     SET @mailJefe = rtrim(@mailJefe)
  33.  
  34.     SELECT @cuentaPendientes = COUNT(*)
  35.     FROM intra_tbl_solicitud_vacaciones
  36.     WHERE rut = @rut
  37.     AND estado = 'P'
  38.  
  39.     SELECT @nombreJefe = nombre FROM
  40.     REMPLES
  41.     WHERE ltrim(rtrim(codigo)) = CAST(@rolJefe AS CHAR)
  42.  
  43.     SELECT @tipoRol = clasif
  44.     FROM REMPLES
  45.     WHERE ltrim(rtrim(codigo)) = CAST(@rol AS CHAR)
  46.  
  47.     SELECT @nombreDestino = nombre, @emailDestino = email
  48.     FROM INTRA_TBL_DESTINO_X_TIPO_ROL
  49.     WHERE tipoRol = @tipoRol
  50.  
  51.     IF @cuentaPendientes = 0
  52.     BEGIN
  53.  
  54.         SELECT @codigoSolicitud =  isNull(MAX(codigo)+1, 2)
  55.         FROM intra_tbl_solicitud_vacaciones
  56.    
  57.         BEGIN  TRANSACTION
  58.    
  59.             INSERT
  60.             INTO INTRA_TBL_SOLICITUD_VACACIONES(codigo, estado, fechaCreacion, rut, nombre, mail, fechaDesde, fechaHasta, diasHabilesPendientes, diasProgresivosPendientes, diasProporcionales, comentario, rolJefe, nombreJefe, mailJefe, nombreDestinoRRHH, emailDestinoRRHH)
  61.             VALUES
  62.             (@codigoSolicitud, 'P', @fechaCreacion,  @rut,  @nombre,  @mail ,  @fechaDesde,  @fechaHasta ,  @diasHabilesPendientes ,  @diasProgresivosPendientes , @diasProporcionales, @comentario, @rolJefe, @nombreJefe, @mailJefe, @nombreDestino, @emailDestino )
  63.    
  64.             IF  @@error = 0
  65.    
  66.                 COMMIT TRANSACTION
  67.    
  68.             ELSE
  69.                 BEGIN
  70.                 SET  @codigoSolicitud = 0
  71.    
  72.                 ROLLBACK TRANSACTION
  73.        
  74.                 END
  75.     END
  76.     ELSE
  77.     BEGIN
  78.         SET  @codigoSolicitud = 1  
  79.     END
  80.  
  81.     SELECT  @codigoSolicitud
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement