Advertisement
Guest User

Untitled

a guest
Feb 18th, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.75 KB | None | 0 0
  1. CREATE PROCEDURE [dbo].[usp_ConsultarVerificaciones_Dynamic2]
  2. (@fechaBegin datetime, @fechaEnd datetime, @nombreTercero nvarchar(255),@idUVF int, @idEdo int, @idMpio int, @idTVF int, @idTMVF int, @idTratamiento int, @idEstablecimiento int ,@idTipoMercancia int,@idMercancia int, @idTipoNormaLegal int, @idNormaLegal int, @idTT int, @result bit, @pause bit, @nivel int, @idUsr int)
  3. AS
  4. -- variables de trabajo
  5. DECLARE @strSelect nvarchar(MAX), @strEnd nvarchar(MAX), @strFiltro nvarchar (MAX), @strConsulta nvarchar(MAX);
  6.  
  7. -- asignando valores de inicio a variables base
  8. SET @strSelect = 'select distinct
  9. Verif.idVerificacion, Verif.IdUVF, CatUVF.RazonSocial as UVF,
  10. Verif.IdUsuario,CatUser.Nombre as Usuario,
  11. dbo.ufn_FormatearFecha(Fecha) as Fecha, Verif.HoraDeSolicitud, Verif.HoraDeInicioVerificacion,
  12. Verif.Georeferencia.STAsText() AS Georeferencia,
  13. Verif.Estado as IdEstado,
  14. CatEdo.Nombre as Estado,
  15. Verif.Municipio AS IdMunicipio,
  16. CatMuni.NombreMunicipio as Municipio,Localidad,
  17. TipoDeVerificacion AS IdTipoVerificacion,
  18. CatTipoVerif.TipoVerificacion as TipoVerificacion,
  19. IdTipoDeTransporte AS IdTipoTransporte, CatTipoTransport.TipoDeTransporte AS TipoTransporte,
  20. Resultado, Observaciones, FechaDeFinVerificacion, Pausa, TiempoAcumulado,
  21. ISNULL(STUFF((SELECT '+CHAR(39)+','+CHAR(39)+ '+ CatPrd.Producto as[text()]
  22. from dbo.ProductosVerificados b2
  23. left outer join dbo.Productos CatPrd
  24. on b2.IdProducto = CatPrd.IdProducto
  25. where b2.IdVerificacion = Verif.IdVerificacion
  26. for xml path('+CHAR(39)+CHAR(39)+')),1,1,'+CHAR(39)+CHAR(39)+'),'+CHAR(39)+CHAR(39)+') as Productos,
  27. ISNULL(STUFF((SELECT '+CHAR(39)+','+CHAR(39)+ '+ CatNorm.Norma as[text()]
  28. from dbo.NormasAplicadas n2
  29. left outer join dbo.NormasOficiales CatNorm
  30. on n2.IdNorma = CatNorm.IdNorma
  31. where n2.IdVerificacion = Verif.IdVerificacion
  32. for xml path('+CHAR(39)+CHAR(39)+')),1,1,'+CHAR(39)+CHAR(39)+'),'+CHAR(39)+CHAR(39)+') as Normas,
  33. ISNULL(STUFF((SELECT '+CHAR(39)+','+CHAR(39)+ '+ i2.RutaImagen as[text()]
  34. from dbo.ImagenesVerificacion i2
  35. where i2.IdVerificacion = Verif.IdVerificacion
  36. for xml path('+CHAR(39)+CHAR(39)+')),1,1,'+CHAR(39)+CHAR(39)+'),'+CHAR(39)+CHAR(39)+') as ListadoImgsSistema,
  37. ISNULL(STUFF((SELECT '+CHAR(39)+','+CHAR(39)+ '+ CatTImg.TipoImagen as[text()]
  38. from dbo.ImagenesVerificacion i3
  39. left outer join dbo.TiposImagen CatTImg
  40. on i3.IdTipoImagen = CatTImg.IdTipoImagen
  41. where i3.IdVerificacion = Verif.IdVerificacion
  42. for xml path('+CHAR(39)+CHAR(39)+')),1,1,'+CHAR(39)+CHAR(39)+'),'+CHAR(39)+CHAR(39)+') as TipoImagenes,
  43. Verif.IdMateriaVerificacion, CatMatVerif.MateriaVerificacion AS MateriaVerificacion,
  44. Verif.IdTipoEstablecimiento, CatTipoEstab.TipoEstablecimiento AS TipoEstablecimiento,
  45. Verif.IdTipoTratamiento, CatTipoTrat.TipoTratamiento AS TipoTratamiento, Verif.NoImagenes
  46.  
  47. from Verificaciones Verif WITH(NOLOCK)
  48. left outer join dbo.UnidadesDeVerificacion CatUVF WITH(NOLOCK)
  49. on Verif.IdUVF = CatUVF.Id_uvf
  50. left outer join dbo.Usuarios CatUser WITH(NOLOCK)
  51. on Verif.IdUsuario= CatUser.IdUsuario
  52. left outer join dbo.Estados CatEdo WITH(NOLOCK)
  53. on Verif.Estado = CatEdo.IdEstado
  54. left outer join dbo.Municipios CatMuni WITH(NOLOCK)
  55. on Verif.Municipio = CatMuni.IdMunicipio
  56. left outer join dbo.TiposDeVerificacion CatTipoVerif WITH(NOLOCK)
  57. on Verif.TipoDeVerificacion = CatTipoVerif.IdTipoVerificacion
  58. left outer join dbo.TiposDeTransporte CatTipoTransport WITH(NOLOCK)
  59. on Verif.IdTipoDeTransporte = CatTipoTransport.IdTipoTransporte
  60. left outer join dbo.MateriaDeVerificacion CatMatVerif WITH(NOLOCK)
  61. on Verif.IdMateriaVerificacion = CatMatVerif.IdMateriaVerificacion
  62. left outer join dbo.TipoDeEstablecimiento CatTipoEstab WITH(NOLOCK)
  63. on Verif.IdTipoEstablecimiento = CatTipoEstab.IdTipoEstablecimiento
  64. left outer join dbo.TipoDeTratamiento CatTipoTrat WITH(NOLOCK)
  65. on Verif.IdTipoTratamiento = CatTipoTrat.IdTipoTratamiento
  66. left outer join dbo.ProductosVerificados b4 WITH(NOLOCK)
  67. on Verif.IdVerificacion = b4.IdVerificacion
  68. left outer join dbo.Productos CatPrd WITH(NOLOCK)
  69. on b4.IdProducto = CatPrd.IdProducto
  70. left outer join dbo.NormasAplicadas b5 WITH(NOLOCK)
  71. on Verif.IdVerificacion = b5.IdVerificacion
  72. left outer join dbo.NormasOficiales CatNormas WITH(NOLOCK)
  73. on b5.IdNorma = CatNormas.IdNorma';
  74. -- segmento final
  75. SET @strEnd = ' ORDER BY Fecha ASC;';
  76.  
  77. -- armando filtro
  78. SET @strFiltro = ' WHERE Fecha >= ''' + CAST(@fechaBegin AS varchar) + ''' AND ( FechaDeFinVerificacion <= ''' + CAST(@fechaEnd AS varchar) +''' OR FechaDeFinVerificacion IS NULL) ';
  79. IF ((@idUVF IS NOT NULL) OR (@nivel = 2)) -- UVF (nivel 2)
  80. SET @strFiltro = @strFiltro + ' AND Verif.IdUVF = ' + CAST(@idUVF AS varchar);
  81. IF (@idEdo IS NOT NULL) -- estado
  82. SET @strFiltro = @strFiltro + ' AND Verif.Estado = ' + CAST(@idEdo AS varchar);
  83. IF (@idMpio IS NOT NULL) -- municipio
  84. SET @strFiltro = @strFiltro + ' AND Verif.Municipio = ' + CAST(@idMpio AS varchar);
  85. IF (@idTVF IS NOT NULL) -- TVF
  86. SET @strFiltro = @strFiltro + ' AND Verif.TipoDeVerificacion = ' + CAST(@idTVF AS varchar);
  87.  
  88.  
  89. IF (@idTMVF IS NOT NULL) -- TMVF IGM DTI 12/27/2017
  90. SET @strFiltro = @strFiltro + ' AND Verif.IdMateriaVerificacion = ' + CAST(@idTMVF AS varchar);
  91. IF (@idTratamiento IS NOT NULL) -- TTratamiento IGM DTI 12/28/2017
  92. SET @strFiltro = @strFiltro + ' AND Verif.IdTipoTratamiento = ' + CAST(@idTratamiento AS varchar);
  93. IF (@idEstablecimiento IS NOT NULL) -- TEstablecimiento IGM DTI 12/28/2017
  94. SET @strFiltro = @strFiltro + ' AND Verif.IdTipoEstablecimiento = ' + CAST(@idEstablecimiento AS varchar);
  95.  
  96. IF (@idTipoMercancia IS NOT NULL) -- Tipo de Producto (Tipo de Mercancia) IGM DTI 01/02/2018
  97. SET @strFiltro = @strFiltro + ' AND CatPrd.TipoProducto = ' + CAST(@idTipoMercancia AS varchar);
  98. IF (@idMercancia IS NOT NULL) -- Producto (Mercancia) IGM DTI 01/02/2018
  99. SET @strFiltro = @strFiltro + ' AND CatPrd.idProducto = ' + CAST(@idMercancia AS varchar);
  100.  
  101. IF (@idTipoNormaLegal IS NOT NULL) -- Tipo de Normas IGM DTI 01/02/2018 (MM/DD/YYYY)
  102. SET @strFiltro = @strFiltro + ' AND CatNormas.idTipoNorma = ' + CAST(@idTipoNormaLegal AS varchar);
  103. IF (@idNormaLegal IS NOT NULL) -- Normas IGM DTI 01/02/2018
  104. SET @strFiltro = @strFiltro + ' AND CatNormas.idNorma = ' + CAST(@idNormaLegal AS varchar);
  105.  
  106.  
  107. IF ((@nombreTercero IS NOT NULL) ) -- Nombre del Tercero Fitosanitario IGM DTI 01/08/2018 (MM/DD/YYYY)
  108. SET @strFiltro = @strFiltro + ' AND CatUser.Nombre like '+CHAR(39) +'%' + @nombreTercero+'%' +CHAR(39);
  109. IF (@idTT IS NOT NULL) -- TT
  110. SET @strFiltro = @strFiltro + ' AND IdTipoDeTransporte = ' + CAST(@idTT AS varchar);
  111. IF (@result IS NOT NULL) -- resultado
  112. SET @strFiltro = @strFiltro + ' AND Resultado = ' + CAST(@result AS VARCHAR(1));
  113. IF (@pause IS NOT NULL) -- pausa
  114. SET @strFiltro = @strFiltro + ' AND Pausa = ' + CAST(@pause AS VARCHAR(1));
  115. IF(@nivel = 3) -- usuario (verificador) nivel 3
  116. SET @strFiltro = @strFiltro + 'AND Verif.IdUsuario = ' + CAST(@idUsr AS varchar);
  117.  
  118.  
  119. -- armando consulta dinamica
  120. SET @strConsulta = @strSelect + @strFiltro + @strEnd;
  121. -- ejecutando consulta
  122. EXEC sp_executesql @strConsulta, N'@P_fechaB datetime, @P_fechaE datetime, @P_IdUVF int, @P_IdEdo int, @P_IdMpio int, @P_IdTVF int, @P_IdTT int, @P_Result bit, @P_Pause bit, @P_nivel int, @P_IdUsr int',
  123. @fechaBegin, @fechaEnd, @idUVF, @idEdo, @idMpio, @idTVF, @idTT, @result, @pause, @nivel, @idUsr;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement