Advertisement
Guest User

pr_autocomplete

a guest
Apr 23rd, 2019
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 7.74 KB | None | 0 0
  1. CREATE PROCEDURE [dbo].[pr_autocomplete] @TYPE VARCHAR(30), @Advogado VARCHAR(10) = NULL, @Cliente INT = NULL, @Assunto INT = NULL
  2. AS
  3. BEGIN
  4.  
  5.  
  6.  
  7. SET NOCOUNT ON
  8.  
  9. DECLARE @Idioma VARCHAR(1)
  10.  
  11. IF @TYPE = 'HonrDescritivo'
  12. BEGIN
  13.     SELECT
  14.         @Idioma = CASE WHEN Assuntos.MoedaDig IN ('US$','€') THEN 'I' ELSE 'P' END
  15.     FROM
  16.         dbo.BMD03  AS Assuntos
  17.     WHERE
  18.         Assunto = @Assunto
  19.  
  20.     SET @Idioma = IsNUll(@Idioma, 'P')
  21.  
  22.     --6 - Secretarias
  23.     --9 - Financeiro
  24.     SELECT
  25.         REPLACE(Descritivo, '[ADVOGADO]', IsNull((SELECT DISTINCT DsAdvogado FROM dbo.BMD01 INNER JOIN tb_aux_equipe_advogado ON tb_aux_equipe_advogado.Advogado = BMD01.Advogado WHERE BMD01.Advogado = @Advogado AND tb_aux_equipe_advogado.Equipe NOT IN ('6','9') ), '[ADVOGADO]')) AS Descritivo
  26.         --cast(DsAssunto as varchar(100)) collate SQL_Latin1_General_Cp1251_CS_AS as DsAssunto
  27.     FROM
  28.         dbo.tb_Descritivo
  29.     WHERE
  30.         tb_Descritivo.Area IN (SELECT Equipe FROM dbo.tb_aux_equipe_advogado WHERE Advogado = @Advogado OR Advogado IN (SELECT Advogado FROM dbo.tb_aux_Colaborador WHERE Secretaria = @Advogado))
  31.     AND
  32.         Tipo = 'H'
  33.     AND
  34.         Idioma = @Idioma
  35. END
  36.  
  37.  
  38. IF @TYPE = 'DespDescritivo'
  39. BEGIN
  40.  
  41.     SELECT
  42.         @Idioma = CASE WHEN Assuntos.MoedaDig IN ('US$','€') THEN 'I' ELSE 'P' END
  43.     FROM
  44.         dbo.BMD03  AS Assuntos
  45.     WHERE
  46.         Assunto = @Assunto
  47.  
  48.     SET @Idioma = IsNUll(@Idioma, 'P')
  49.  
  50.     SELECT
  51.         REPLACE(Descritivo, '[ADVOGADO]', IsNull((SELECT DISTINCT DsAdvogado FROM dbo.BMD01 INNER JOIN tb_aux_equipe_advogado ON tb_aux_equipe_advogado.Advogado = BMD01.Advogado WHERE BMD01.Advogado = @Advogado AND tb_aux_equipe_advogado.Equipe NOT IN ('6','9') ), '[ADVOGADO]')) AS Descritivo
  52.         --cast(DsAssunto as varchar(100)) collate SQL_Latin1_General_Cp1251_CS_AS as DsAssunto
  53.     FROM
  54.         dbo.tb_Descritivo
  55.     WHERE
  56.         tb_Descritivo.Area IN (SELECT Equipe FROM dbo.tb_aux_equipe_advogado WHERE Advogado = @Advogado OR Advogado IN (SELECT Advogado FROM dbo.tb_aux_Colaborador WHERE Secretaria = @Advogado))
  57.     AND
  58.         Tipo = 'D'
  59.     AND
  60.         Idioma = @Idioma
  61.     ORDER BY
  62.         Descritivo
  63.  
  64. END
  65.  
  66. IF @TYPE = 'Cliente'
  67. BEGIN
  68.  
  69.         SELECT
  70.             Cliente
  71.             , CAST(DsCliente AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsCliente
  72.             , CAST(Fantasia AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS Fantasia
  73.         FROM
  74.             dbo.BMD02
  75.         WHERE
  76.             Desativado = 0
  77.         AND
  78.             Ordemfat >= 0
  79.         ORDER BY DsCliente
  80. END
  81.  
  82. IF @TYPE = 'Assunto'
  83. BEGIN
  84.         SELECT
  85.             Assunto
  86.             , CAST(DsAssunto AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAssunto
  87.         FROM
  88.             dbo.BMD03 AS Assuntos
  89.         WHERE
  90.             Assuntos.Desativado = 0
  91.         AND
  92.             Assuntos.LancHonor = 1
  93.         AND
  94.             Assuntos.Cliente = @Cliente
  95.         ORDER BY DsAssunto
  96. END
  97.  
  98. IF @TYPE = 'AssuntoD'
  99. BEGIN
  100.         SELECT
  101.             Assunto
  102.             , CAST(DsAssunto AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAssunto
  103.         FROM
  104.             dbo.BMD03 AS Assuntos
  105.         WHERE
  106.             Assuntos.Desativado = 0
  107.         AND
  108.             Assuntos.LancDesp = 1
  109.         AND
  110.             Assuntos.Cliente = @Cliente
  111.         ORDER BY DsAssunto
  112. END
  113.  
  114. IF @TYPE = 'Categoria'
  115. BEGIN
  116.  
  117.         SELECT
  118.             TipoDesp, DsTipoDesp
  119.         FROM
  120.             dbo.BMD22
  121.         ORDER BY DsTipoDesp
  122.  
  123. END
  124.  
  125. IF @TYPE = 'AssuntoDetalhe'
  126. BEGIN
  127.         SELECT
  128.               CASE WHEN Assuntos.MoedaDig IN ('US$','€') THEN 'I' ELSE 'P' END AS Linguagem
  129.             --, IsNull(Obs, '') as Obs
  130.             --, IsNull(Convert(varchar(250),Clientes.DsClienteEtq) + '<BR>','') + IsNull(Convert(varchar(250),Assuntos.DescrCompFR), '') as Obs
  131.             , IsNull(CONVERT(VARCHAR(250),Clientes.DsClienteEtq) + CASE WHEN CONVERT(VARCHAR(250),Clientes.DsClienteEtq) <> '' THEN '<BR>' ELSE '' END,'') + IsNull(CONVERT(VARCHAR(250),Assuntos.DescrCompFR), '') AS Obs
  132.             , CONVERT(VARCHAR(15), Assuntos.DtUltDesp, 103) AS DtUltDesp
  133.         FROM
  134.             dbo.BMD03 AS Assuntos
  135.         INNER JOIN
  136.             BMD02 AS Clientes
  137.         ON
  138.             Clientes.Cliente = Assuntos.Cliente
  139.         WHERE
  140.             Assuntos.Desativado = 0
  141.         AND
  142.             Assuntos.Assunto = @Assunto
  143. END
  144.  
  145. IF @TYPE = 'Colaborador'
  146. BEGIN
  147.  
  148.         SELECT
  149.             Advogado
  150.             , CAST(DsAdvogado AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAdvogado
  151.         FROM
  152.             dbo.BMD01
  153.         WHERE
  154.             (Desativado = 0 OR dateDiff(DAY, Desligamento, getdate()) < 180)
  155.         AND
  156.             Tipoadv NOT IN ('E', 'A', 'S')
  157.         --Or
  158.         --  Advogado = @Advogado
  159.         ORDER  BY
  160.             DsAdvogado
  161. END
  162.  
  163.  
  164. IF @TYPE = 'Advogado'
  165. BEGIN
  166.         SELECT
  167.             Advogado
  168.             , CAST(DsAdvogado AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAdvogado
  169.         FROM
  170.             dbo.BMD01
  171.         WHERE
  172.             Desativado = 0
  173.         --And
  174.         --  Tipoadv in ('E', 'A', 'S')
  175.         --Or
  176.         --  Advogado = @Advogado
  177.         ORDER  BY
  178.             DsAdvogado
  179. END
  180.  
  181. IF @TYPE = 'Secretaria'
  182. BEGIN
  183.         SELECT
  184.             Advogado
  185.             , CAST(DsAdvogado AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAdvogado
  186.         FROM
  187.             dbo.BMD01
  188.         WHERE
  189.             Desativado = 0
  190.         AND
  191.             Tipoadv  = 'T'
  192.         --Or
  193.         --  Advogado = @Advogado
  194.         ORDER  BY
  195.             DsAdvogado
  196. END
  197.  
  198. IF @TYPE = 'AdvogadoEquipe'
  199. BEGIN
  200.         SELECT
  201.             DISTINCT BMD01.Advogado
  202.             , CAST(DsAdvogado AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAdvogado
  203.         FROM
  204.             dbo.BMD01
  205.         LEFT JOIN
  206.             dbo.tb_aux_equipe_advogado
  207.         ON
  208.             tb_aux_equipe_advogado.Advogado = BMD01.Advogado
  209.         WHERE
  210.             BMD01.Desativado = 0
  211.         AND
  212.             ((@Advogado = 'TGO' AND BMD01.Tipoadv IN ('E', 'A', 'S', 'D'))
  213.         OR
  214.             (BMD01.Tipoadv IN ('E', 'A', 'S')
  215.         AND
  216.             tb_aux_equipe_advogado.Equipe IN (SELECT Equipe FROM tb_aux_equipe_advogado WHERE Advogado = @Advogado)))
  217. END
  218. IF @TYPE = 'TipoHonorario'
  219. BEGIN
  220.         SELECT
  221.             TipoHonorarioID, TipoHonorarioDesc
  222.         FROM
  223.             tb_TipoHonorario
  224.         ORDER BY
  225.             TipoHonorarioDesc
  226. END
  227. IF @TYPE = 'tipojustificativa'
  228. BEGIN
  229.         SELECT
  230.             JustificativaID, DsJustificativa
  231.         FROM
  232.             dbo.tb_Justificativas
  233.         ORDER BY
  234.             DsJustificativa
  235.  
  236. END
  237.  
  238.  
  239. IF @TYPE = 'Equipe'
  240. BEGIN
  241.         SELECT
  242.             Equipe, BMD68.DsArea AS DsEquipe
  243.         FROM
  244.             tb_aux_equipe_advogado
  245.         INNER JOIN
  246.             BMD68
  247.         ON
  248.             BMD68.Area = tb_aux_equipe_advogado.Equipe
  249.         WHERE
  250.             Advogado = @Advogado
  251. END
  252. IF @TYPE = 'AdvogadoSecretaria'
  253. BEGIN
  254.         SELECT
  255.             DISTINCT BMD01.Advogado, DsAdvogado
  256.         FROM
  257.             dbo.BMD01
  258.         WHERE
  259.             BMD01.Desativado = 0
  260.         AND
  261.             (BMD01.Tipoadv IN ('S', 'A', 'E')
  262. -- AND BMD01.Classe like '%Senior%'
  263.         OR
  264.             BMD01.Advogado = @Advogado)
  265. END
  266.  
  267. IF @TYPE = 'Semestre'
  268. BEGIN
  269.  
  270.     DECLARE @dt datetime, @dtEnd datetime
  271.  
  272.  
  273.     SET @dtEnd = DateAdd(MONTH, datediff(MONTH, 0, getdate()) - ((datediff(MONTH, 0, getdate()) ) % 6), 0)
  274.     SET @dt = DateAdd(MONTH, -30, @dtEnd)
  275.  
  276.     SELECT
  277.         NUMBER,
  278.           YEAR(dateadd(MONTH, NUMBER, @dt)) * 100 + CASE WHEN MONTH(dateadd(MONTH, NUMBER, @dt)) > 6 THEN 2 ELSE 1 END AS Semestre
  279.         , CONVERT(VARCHAR(5), YEAR(dateadd(MONTH, NUMBER, @dt))) + '-' + CONVERT(VARCHAR(5), CASE WHEN MONTH(dateadd(MONTH, NUMBER, @dt)) > 6 THEN 2 ELSE 1 END) + 'o Semestre' AS DsSemestre
  280.         , SemestreAtual.Semestre AS SemestreCorrente
  281.     FROM
  282.         (SELECT DISTINCT NUMBER * 6 AS NUMBER FROM master.dbo.spt_values
  283.          WHERE name IS NULL
  284.         ) n
  285.     LEFT JOIN
  286.         (SELECT MIN(Semestre) AS Semestre FROM dbo.tb_aux_FechamentoSemestre WHERE dateAdd(DAY, 1, DtUltFaturamento) > GetDate()) AS SemestreAtual
  287.     ON
  288.         SemestreAtual.Semestre = YEAR(dateadd(MONTH, NUMBER, @dt)) * 100 + CASE WHEN MONTH(dateadd(MONTH, NUMBER, @dt)) > 6 THEN 2 ELSE 1 END
  289.     WHERE dateadd(MONTH, NUMBER, @dt) <= @dtEnd
  290.     ORDER BY
  291.         SemestreCorrente DESC, NUMBER DESC
  292.  
  293. END
  294. IF @TYPE = 'AdvogadoLancamento'
  295. BEGIN
  296.         SELECT
  297.              DISTINCT
  298.               BMD01.Advogado
  299.             , CAST(DsAdvogado AS VARCHAR(100)) COLLATE SQL_Latin1_General_Cp1251_CS_AS AS DsAdvogado
  300.             , CASE WHEN tb_aux_equipe_advogado.Equipe IN (SELECT Equipe FROM tb_aux_equipe_advogado WHERE Advogado = @Advogado) THEN 0 ELSE 1 END AS Ordena
  301.         FROM
  302.             dbo.BMD01
  303.         LEFT JOIN
  304.             dbo.tb_aux_equipe_advogado
  305.         ON
  306.             tb_aux_equipe_advogado.Advogado = BMD01.Advogado
  307.         WHERE
  308.             BMD01.Desativado = 0
  309.         AND
  310.             BMD01.Tipoadv IN ('E', 'A', 'S')
  311. END
  312.  
  313.  
  314. END
  315.  
  316. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement