Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.21 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION tjmg.fn_extrai_distribuicao(pdata_inicial_extracao timestamp, pdata_final_extracao timestamp, pcomarca integer )
  2. returns setof tjmg.type_distribuicoes as
  3. $FUNC$
  4. DECLARE
  5. processo tjmg.type_distribuicoes;
  6. BEGIN
  7.  
  8. FOR processo in
  9.  
  10. /*As informações estarão agrupadas por data de distribuição (= data do expediente), órgão julgador e classe.
  11. Dentro desses agrupamentos os processos estarão ordenados por data de distribuição e por número do processo.*/
  12.  
  13. /*Para cada uma dessas distribuições deverão ser exibidos (vide imagem em anexo):
  14. - 1 sequencial a partir de 0001 para indexação da atuação de advogados e procuradorias;
  15. - O número do processo;
  16. - Polo ativo (com a denominação da parte - exibe-se o primeiro nome; se houver mais um, acrescentar " e outro"; se houver mais de um, acrescentar " e outros");
  17. - Polo passivo (com a denominação da parte - exibe-se o primeiro nome; se houver mais um, acrescentar " e outro"; se houver mais de um, acrescentar " e outros");
  18. - O tipo da distribuição;
  19. - O valor da causa;
  20. - Lista de nomes de advogados e procuradorias atuantes no processo.*/
  21.  
  22. SELECT
  23. dense_rank() over (partition by comarca order by procDje.comarca, tjmg.fn_mf_ordem_vara(procDje.orgao_julgador), procDje.classe_judicial, procDje.num_processo) as indice,
  24. procDje.num_processo as num_processo,
  25. procDje.comarca as comarca,
  26. upper(procDje.orgao_julgador) as orgao_julgador,
  27. procDje.classe_judicial as classe_judicial,
  28. procDje.polo as polo,
  29. tjmg.fn_initcap(procDje.tipo_parte) as tipo_parte, -- 20160225JN
  30. tjmg.fn_initcap(procDje.representante) as representante, -- 20160225JN
  31. procDje.valor_causa as valor_causa,
  32. procDje.tipo_distribuicao as tipo_distribuicao,
  33. tjmg.fn_initcap(procDJe.oab) as oab -- 20160225JN
  34. FROM
  35. (
  36. SELECT DISTINCT
  37. tproc.nr_processo as num_processo,
  38. tju.nr_origem as comarca,
  39. oj.ds_orgao_julgador as orgao_julgador,
  40. pc.ds_classe_judicial as classe_judicial,
  41. tpp.in_participacao as polo,
  42. 'REPRESENTANTE' as tipo_parte,
  43. tprcu.ds_nome as representante,
  44. CASE
  45. WHEN pr.vl_causa IS NOT NULL AND trim(pr.vl_causa::text) <> '' THEN pr.vl_causa
  46. ELSE 0.00::numerico
  47. END as valor_causa,
  48. CASE
  49. WHEN pr.DS_PROC_REFERENCIA IS NOT NULL OR pr.ID_PROC_REFERENCIA IS NOT NULL THEN 'Dependência'
  50. ELSE 'Sorteio'
  51. END as tipo_distribuicao,
  52. '' as oab
  53. FROM tb_processo tproc
  54. INNER JOIN tb_processo_trf pr on pr.id_processo_trf = tproc.id_processo
  55. INNER JOIN tb_processo_parte tpp on tpp.id_processo_trf = pr.id_processo_trf
  56. LEFT JOIN tb_procuradoria tprcu on tprcu.id_procuradoria = tpp.id_procuradoria
  57. INNER JOIN tb_tipo_parte ttp on ttp.id_tipo_parte = tpp.id_tipo_parte
  58. INNER JOIN tb_jurisdicao tju on tju.id_jurisdicao = pr.id_jurisdicao
  59. INNER JOIN tb_orgao_julgador oj on pr.id_orgao_julgador = oj.id_orgao_julgador
  60. INNER JOIN tb_classe_judicial pc on pr.id_classe_judicial = pc.id_classe_judicial
  61. WHERE 1 = 1
  62. and tju.nr_origem = pcomarca
  63. and pr.dt_distribuicao between pdata_inicial_extracao and pdata_final_extracao
  64. and tpp.id_procuradoria is not null
  65. and tpp.in_situacao = 'A'
  66. and pr.cd_processo_status = 'D'
  67.  
  68. UNION ALL
  69.  
  70. SELECT DISTINCT
  71. tproc.nr_processo as num_processo,
  72. tju.nr_origem as comarca,
  73. oj.ds_orgao_julgador as orgao_julgador,
  74. pc.ds_classe_judicial as classe_judicial,
  75. tpp.in_participacao as polo,
  76. ttp.ds_tipo_parte as tipo_parte,
  77. CASE
  78. -- Menor--
  79. WHEN tpf.dt_nascimento IS NOT NULL AND AGE(CAST(pr.dt_distribuicao AS DATE), CAST(tpf.dt_nascimento AS DATE)) < INTERVAL '18 YEARS' THEN 'Criança/Adolescente'
  80. -- Segredo de justica
  81. WHEN pr.in_segredo_justica AND upper(ttp.ds_tipo_parte) <> 'ADVOGADO' THEN tjmg.fn_formata_nome(tjmg.fn_sf_nome_sem_conectivos(tusu.ds_nome)) ELSE tusu.ds_nome
  82. END as representante,
  83. CASE
  84. WHEN pr.vl_causa IS NOT NULL AND trim(pr.vl_causa::text) <> '' THEN pr.vl_causa ELSE 0.00::numerico
  85. END as valor_causa,
  86. CASE
  87. WHEN pr.DS_PROC_REFERENCIA IS NOT NULL OR pr.ID_PROC_REFERENCIA IS NOT NULL THEN 'Dependência' ELSE 'Sorteio'
  88. END as tipo_distribuicao,
  89. CASE
  90. WHEN adv.nr_oab IS NOT NULL AND estado.cd_estado IS NOT NULL AND adv.in_tipo_inscricao IS NOT NULL THEN LPAD( trim(adv.nr_oab), 6, '0' ) || estado.cd_estado::text || '-' || adv.in_tipo_inscricao::text
  91. ELSE ''
  92. END as oab
  93. FROM tb_processo tproc
  94. INNER JOIN tb_processo_trf pr on pr.id_processo_trf = tproc.id_processo
  95. INNER JOIN tb_processo_parte tpp on tpp.id_processo_trf = pr.id_processo_trf
  96. LEFT JOIN tb_pessoa_fisica tpf on tpf.id_pessoa_fisica = tpp.id_pessoa
  97. LEFT JOIN tb_pessoa_advogado adv on tpp.id_pessoa = adv.id
  98. LEFT JOIN tb_estado estado on estado.id_estado = adv.id_uf_oab
  99. INNER JOIN tb_usuario_login tusu on tusu.id_usuario = tpp.id_pessoa
  100. INNER JOIN tb_tipo_parte ttp on ttp.id_tipo_parte = tpp.id_tipo_parte
  101. INNER JOIN tb_jurisdicao tju on tju.id_jurisdicao = pr.id_jurisdicao
  102. INNER JOIN tb_orgao_julgador oj on pr.id_orgao_julgador = oj.id_orgao_julgador
  103. INNER JOIN tb_classe_judicial pc on pr.id_classe_judicial = pc.id_classe_judicial
  104. WHERE 1 = 1
  105. and tju.nr_origem = pcomarca
  106. and pr.dt_distribuicao between pdata_inicial_extracao and pdata_final_extracao
  107. and ((tpp.in_parte_principal = TRUE) or
  108. (upper(ttp.ds_tipo_parte) = upper('ADVOGADO')) -- advogados que nao tenho o tipo parte = a ADVOGADO
  109. )
  110. and tpp.in_situacao = 'A'
  111. and pr.cd_processo_status = 'D'
  112. ) as procDje
  113. GROUP BY
  114. procDje.num_processo,
  115. procDje.comarca,
  116. procDje.orgao_julgador,
  117. procDje.classe_judicial,
  118. procDje.polo,
  119. procDje.tipo_parte,
  120. procDje.representante,
  121. procDje.valor_causa,
  122. procDje.tipo_distribuicao,
  123. procDje.oab
  124. ORDER BY
  125. procDje.comarca,
  126. tjmg.fn_mf_ordem_vara(procDje.orgao_julgador),
  127. procDje.classe_judicial,
  128. procDje.num_processo,
  129. procDje.polo,
  130. procDje.tipo_parte
  131.  
  132. LOOP
  133. RETURN NEXT processo;
  134. END LOOP;
  135.  
  136. RETURN;
  137.  
  138. END
  139. $FUNC$ LANGUAGE plpgsql VOLATILE STRICT COST 100;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement