Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 8.22 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION tjmg.fn_extrai_decisoes(pdata_inicial_extracao TIMESTAMP, pdata_final_extracao TIMESTAMP, pcomarca INTEGER)
  2.     RETURNS setof tjmg.t_decisoes AS
  3. $FUNC$
  4. DECLARE
  5.     r tjmg.t_decisoes;
  6. BEGIN
  7.  
  8.     FOR r IN
  9.  
  10.         SELECT
  11.              dense_rank() OVER (partition BY comarca ORDER BY comarca, tjmg.fn_mf_ordem_vara(CAST(orgao_julgador AS text)), classe_judicial, num_processo, decisao_judicial) AS indice,                                      
  12.              expDje.comarca AS comarca,
  13.              UPPER(expDje.orgao_julgador) AS orgao_julgador,
  14.              expDje.classe_judicial AS classe_judicial,
  15.              expDje.num_processo AS num_processo,            
  16.              expDje.decisao_judicial,
  17.              expDje.polo AS polo,
  18.              tjmg.fn_initcap(expDje.tipo_parte) AS tipo_parte,
  19.              tjmg.fn_initcap(expDje.representante) AS representante,
  20.              tjmg.fn_initcap(expDje.oab) AS oab,
  21.             (CASE WHEN id_tipo_processo_documento = 62 THEN '. => Sentença proferida' WHEN id_tipo_processo_documento = 64 THEN '. => Decisão proferida' ELSE '. => Despacho proferido' END) ||
  22.             (CASE WHEN in_segredo_justica THEN '. O seu inteiro teor poderá ser visualizado apenas pelas partes e pelos seus respectivos procuradores no Sistema PJe. Esta publicação não possui efeito de intimação.'
  23.                 ELSE '. O seu inteiro teor poderá ser visualizado na consulta pública do Sistema PJe. Esta publicação não possui efeito de intimação.' END) AS informacoes_sentenca
  24.         FROM
  25.             (
  26.             SELECT
  27.                 doc.id_processo_documento AS decisao_judicial,
  28.                 tju.nr_origem AS comarca,
  29.                 oj.ds_orgao_julgador AS orgao_julgador,
  30.                 pc.ds_classe_judicial AS classe_judicial,
  31.                 tproc.nr_processo AS num_processo,
  32.                 tpp.in_participacao AS polo,
  33.                 'REPRESENTANTE' AS tipo_parte,
  34.                 tprcu.ds_nome AS representante,
  35.                 '' AS oab,
  36.                 doc.id_tipo_processo_documento,
  37.                 pr.in_segredo_justica
  38.             FROM tb_processo_documento doc
  39.                 INNER JOIN tb_processo tproc ON tproc.id_processo = doc.id_processo        
  40.                 INNER JOIN tb_processo_trf pr ON pr.id_processo_trf = tproc.id_processo
  41.                 INNER JOIN tb_processo_parte tpp ON tpp.id_processo_trf = pr.id_processo_trf
  42.                 INNER JOIN tb_procuradoria tprcu ON tprcu.id_procuradoria = tpp.id_procuradoria
  43.                 INNER JOIN tb_tipo_parte ttp ON ttp.id_tipo_parte = tpp.id_tipo_parte
  44.                 INNER JOIN tb_jurisdicao tju ON tju.id_jurisdicao = pr.id_jurisdicao
  45.                 INNER JOIN tb_orgao_julgador oj ON pr.id_orgao_julgador = oj.id_orgao_julgador
  46.                 INNER JOIN tb_classe_judicial pc ON pr.id_classe_judicial = pc.id_classe_judicial
  47.                 INNER JOIN tb_processo_expediente pe ON pr.id_processo_trf = pe.id_processo_trf
  48.             WHERE 1 = 1
  49.                 AND tju.nr_origem = pcomarca
  50.                 AND tpp.id_procuradoria IS NOT NULL
  51.                 AND tpp.in_situacao = 'A'
  52.                 AND doc.id_tipo_processo_documento =
  53.                     ANY (string_to_array(
  54.                             (SELECT vl_variavel FROM tb_parametro WHERE nm_variavel = 'idTipoProcessoDocumentoDecisaoPje'),','
  55.                         )::INTEGER[]
  56.                     )
  57.                 AND pe.dt_exclusao IS NULL
  58.                 AND pe.in_meio_expedicao_expediente = 'E'
  59.                 AND pe.id_tipo_processo_documento =
  60.                     ANY (string_to_array(
  61.                             (SELECT vl_variavel FROM tb_parametro WHERE nm_variavel = 'idTipoProcessoDocumentoIntimacaoPje'),','
  62.                         )::INTEGER[]
  63.                     )
  64.                 AND EXISTS (SELECT NULL
  65.                                 FROM tb_proc_parte_expediente ppe
  66.                                     INNER JOIN tb_processo_expediente expediente ON expediente.id_processo_expediente = ppe.id_processo_expediente
  67.                                     INNER JOIN tb_processo_documento doc_exp ON doc_exp.id_processo_documento = expediente.id_processo_documento
  68.                                 WHERE ppe.id_processo_expediente = pe.id_processo_expediente
  69.                                     AND doc_exp.id_processo_documento_bin = doc.id_processo_documento_bin
  70.                                 HAVING COUNT(*) = COUNT(ppe.dt_ciencia_parte)
  71.                                     AND MAX(ppe.dt_ciencia_parte) BETWEEN pdata_inicial_extracao AND pdata_final_extracao)
  72.  
  73.             UNION ALL
  74.  
  75.             SELECT 
  76.                 doc.id_processo_documento AS decisao_judicial,         
  77.                 tju.nr_origem AS comarca,
  78.                 oj.ds_orgao_julgador AS orgao_julgador,
  79.                 pc.ds_classe_judicial AS classe_judicial,
  80.                 tproc.nr_processo AS num_processo,
  81.                 tpp.in_participacao AS polo,
  82.                 ttp.ds_tipo_parte AS tipo_parte,
  83.                 CASE
  84.                     -- Menor
  85.                     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
  86.                         'Criança/Adolescente'
  87.                     -- Segredo de justica
  88.                     WHEN pr.in_segredo_justica AND UPPER(ttp.ds_tipo_parte) <> 'ADVOGADO' THEN
  89.                         tjmg.fn_formata_nome(tjmg.fn_sf_nome_sem_conectivos(tusu.ds_nome))
  90.                     ELSE tusu.ds_nome
  91.                  END AS representante,
  92.                  CASE
  93.                     WHEN adv.nr_oab IS NOT NULL AND estado.cd_estado IS NOT NULL AND adv.in_tipo_inscricao IS NOT NULL THEN
  94.                          LPAD( TRIM(adv.nr_oab), 6, '0' ) || estado.cd_estado::text || '-' || adv.in_tipo_inscricao::text
  95.                     ELSE ''                    
  96.                  END AS oab,
  97.                 doc.id_tipo_processo_documento,
  98.                 pr.in_segredo_justica
  99.             FROM   
  100.                 tb_processo_documento doc
  101.                 INNER JOIN tb_processo tproc ON tproc.id_processo = doc.id_processo        
  102.                 INNER JOIN tb_processo_trf pr ON pr.id_processo_trf = tproc.id_processo
  103.                 INNER JOIN tb_processo_parte tpp ON tpp.id_processo_trf = pr.id_processo_trf
  104.                 LEFT  JOIN tb_pessoa_fisica tpf ON tpf.id_pessoa_fisica = tpp.id_pessoa
  105.                 LEFT  JOIN tb_pessoa_advogado adv ON tpp.id_pessoa = adv.id
  106.                 LEFT  JOIN tb_estado estado ON estado.id_estado = adv.id_uf_oab
  107.                 INNER JOIN tb_usuario_login tusu ON tusu.id_usuario = tpp.id_pessoa
  108.                 INNER JOIN tb_tipo_parte ttp ON ttp.id_tipo_parte = tpp.id_tipo_parte
  109.                 INNER JOIN tb_jurisdicao tju ON tju.id_jurisdicao = pr.id_jurisdicao
  110.                 INNER JOIN tb_orgao_julgador oj ON pr.id_orgao_julgador = oj.id_orgao_julgador
  111.                 INNER JOIN tb_classe_judicial pc ON pr.id_classe_judicial = pc.id_classe_judicial
  112.                 INNER JOIN tb_processo_expediente pe ON pr.id_processo_trf = pe.id_processo_trf
  113.             WHERE 1 = 1
  114.                 AND tju.nr_origem = pcomarca
  115.                 AND ((tpp.in_parte_principal = TRUE) OR
  116.                     (UPPER(ttp.ds_tipo_parte) = UPPER('ADVOGADO')) -- advogados que nao tenho o tipo parte = a ADVOGADO
  117.                 )
  118.                 AND tpp.in_situacao = 'A'
  119.                 AND doc.id_tipo_processo_documento =
  120.                     ANY (string_to_array(
  121.                             (SELECT vl_variavel FROM tb_parametro WHERE nm_variavel = 'idTipoProcessoDocumentoDecisaoPje'),','
  122.                         )::INTEGER[]
  123.                     )
  124.                 AND pe.dt_exclusao isnull
  125.                 AND pe.in_meio_expedicao_expediente = 'E'
  126.                 AND pe.id_tipo_processo_documento =
  127.                     ANY (string_to_array(
  128.                             (SELECT vl_variavel FROM tb_parametro WHERE nm_variavel = 'idTipoProcessoDocumentoIntimacaoPje'),','
  129.                         )::INTEGER[]
  130.                     )
  131.                 AND EXISTS (SELECT NULL
  132.                             FROM tb_proc_parte_expediente ppe
  133.                                 INNER JOIN tb_processo_expediente expediente ON expediente.id_processo_expediente = ppe.id_processo_expediente
  134.                                 INNER JOIN tb_processo_documento doc_exp ON doc_exp.id_processo_documento = expediente.id_processo_documento
  135.                             WHERE ppe.id_processo_expediente = pe.id_processo_expediente
  136.                                 AND doc_exp.id_processo_documento_bin = doc.id_processo_documento_bin
  137.                             HAVING COUNT(*) = COUNT(ppe.dt_ciencia_parte)
  138.                                 AND MAX(ppe.dt_ciencia_parte) BETWEEN pdata_inicial_extracao AND pdata_final_extracao)
  139.  
  140.         ) AS expDje
  141.         GROUP BY           
  142.             expDje.comarca,
  143.             expDje.orgao_julgador,
  144.             expDje.classe_judicial,
  145.             expDje.num_processo,           
  146.             expDje.decisao_judicial,
  147.             expDje.polo,
  148.             expDje.tipo_parte,
  149.             expDje.representante,
  150.             expDje.oab,
  151.             (CASE WHEN id_tipo_processo_documento = 62 THEN '. => Sentença proferida' WHEN id_tipo_processo_documento = 64 THEN '. => Decisão proferida' ELSE '. => Despacho proferido' END) ||
  152.             (CASE WHEN in_segredo_justica THEN '. O seu inteiro teor poderá ser visualizado apenas pelas partes e pelos seus respectivos procuradores no Sistema PJe. Esta publicação não possui efeito de intimação.'
  153.                 ELSE '. O seu inteiro teor poderá ser visualizado na consulta pública do Sistema PJe. Esta publicação não possui efeito de intimação.' END)         
  154.         ORDER BY
  155.              expDje.comarca,                     
  156.              tjmg.fn_mf_ordem_vara(CAST(expDje.orgao_julgador AS text)),
  157.              expDje.classe_judicial,
  158.              expDje.num_processo,
  159.              expDje.decisao_judicial,
  160.              expDje.polo,
  161.              expDje.tipo_parte
  162.     LOOP
  163.         RETURN NEXT r;
  164.     END LOOP;
  165.  
  166. RETURN;
  167.            
  168. END
  169. $FUNC$ LANGUAGE plpgsql VOLATILE STRICT COST 100;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement