Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE FUNCTION tjmg.fn_extrai_distribuicao(pdata_inicial_extracao timestamp, pdata_final_extracao timestamp, pcomarca integer )
- returns setof tjmg.type_distribuicoes as
- $FUNC$
- DECLARE
- processo tjmg.type_distribuicoes;
- BEGIN
- FOR processo in
- /*As informações estarão agrupadas por data de distribuição (= data do expediente), órgão julgador e classe.
- Dentro desses agrupamentos os processos estarão ordenados por data de distribuição e por número do processo.*/
- /*Para cada uma dessas distribuições deverão ser exibidos (vide imagem em anexo):
- - 1 sequencial a partir de 0001 para indexação da atuação de advogados e procuradorias;
- - O número do processo;
- - 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");
- - 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");
- - O tipo da distribuição;
- - O valor da causa;
- - Lista de nomes de advogados e procuradorias atuantes no processo.*/
- SELECT
- 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,
- procDje.num_processo as num_processo,
- procDje.comarca as comarca,
- upper(procDje.orgao_julgador) as orgao_julgador,
- procDje.classe_judicial as classe_judicial,
- procDje.polo as polo,
- tjmg.fn_initcap(procDje.tipo_parte) as tipo_parte, -- 20160225JN
- tjmg.fn_initcap(procDje.representante) as representante, -- 20160225JN
- procDje.valor_causa as valor_causa,
- procDje.tipo_distribuicao as tipo_distribuicao,
- tjmg.fn_initcap(procDJe.oab) as oab -- 20160225JN
- FROM
- (
- SELECT DISTINCT
- tproc.nr_processo as num_processo,
- tju.nr_origem as comarca,
- oj.ds_orgao_julgador as orgao_julgador,
- pc.ds_classe_judicial as classe_judicial,
- tpp.in_participacao as polo,
- 'REPRESENTANTE' as tipo_parte,
- tprcu.ds_nome as representante,
- CASE
- WHEN pr.vl_causa IS NOT NULL AND trim(pr.vl_causa::text) <> '' THEN pr.vl_causa
- ELSE 0.00::numerico
- END as valor_causa,
- CASE
- WHEN pr.DS_PROC_REFERENCIA IS NOT NULL OR pr.ID_PROC_REFERENCIA IS NOT NULL THEN 'Dependência'
- ELSE 'Sorteio'
- END as tipo_distribuicao,
- '' as oab
- FROM tb_processo tproc
- INNER JOIN tb_processo_trf pr on pr.id_processo_trf = tproc.id_processo
- INNER JOIN tb_processo_parte tpp on tpp.id_processo_trf = pr.id_processo_trf
- LEFT JOIN tb_procuradoria tprcu on tprcu.id_procuradoria = tpp.id_procuradoria
- INNER JOIN tb_tipo_parte ttp on ttp.id_tipo_parte = tpp.id_tipo_parte
- INNER JOIN tb_jurisdicao tju on tju.id_jurisdicao = pr.id_jurisdicao
- INNER JOIN tb_orgao_julgador oj on pr.id_orgao_julgador = oj.id_orgao_julgador
- INNER JOIN tb_classe_judicial pc on pr.id_classe_judicial = pc.id_classe_judicial
- WHERE 1 = 1
- and tju.nr_origem = pcomarca
- and pr.dt_distribuicao between pdata_inicial_extracao and pdata_final_extracao
- and tpp.id_procuradoria is not null
- and tpp.in_situacao = 'A'
- and pr.cd_processo_status = 'D'
- UNION ALL
- SELECT DISTINCT
- tproc.nr_processo as num_processo,
- tju.nr_origem as comarca,
- oj.ds_orgao_julgador as orgao_julgador,
- pc.ds_classe_judicial as classe_judicial,
- tpp.in_participacao as polo,
- ttp.ds_tipo_parte as tipo_parte,
- CASE
- -- Menor--
- 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'
- -- Segredo de justica
- 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
- END as representante,
- CASE
- WHEN pr.vl_causa IS NOT NULL AND trim(pr.vl_causa::text) <> '' THEN pr.vl_causa ELSE 0.00::numerico
- END as valor_causa,
- CASE
- WHEN pr.DS_PROC_REFERENCIA IS NOT NULL OR pr.ID_PROC_REFERENCIA IS NOT NULL THEN 'Dependência' ELSE 'Sorteio'
- END as tipo_distribuicao,
- CASE
- 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
- ELSE ''
- END as oab
- FROM tb_processo tproc
- INNER JOIN tb_processo_trf pr on pr.id_processo_trf = tproc.id_processo
- INNER JOIN tb_processo_parte tpp on tpp.id_processo_trf = pr.id_processo_trf
- LEFT JOIN tb_pessoa_fisica tpf on tpf.id_pessoa_fisica = tpp.id_pessoa
- LEFT JOIN tb_pessoa_advogado adv on tpp.id_pessoa = adv.id
- LEFT JOIN tb_estado estado on estado.id_estado = adv.id_uf_oab
- INNER JOIN tb_usuario_login tusu on tusu.id_usuario = tpp.id_pessoa
- INNER JOIN tb_tipo_parte ttp on ttp.id_tipo_parte = tpp.id_tipo_parte
- INNER JOIN tb_jurisdicao tju on tju.id_jurisdicao = pr.id_jurisdicao
- INNER JOIN tb_orgao_julgador oj on pr.id_orgao_julgador = oj.id_orgao_julgador
- INNER JOIN tb_classe_judicial pc on pr.id_classe_judicial = pc.id_classe_judicial
- WHERE 1 = 1
- and tju.nr_origem = pcomarca
- and pr.dt_distribuicao between pdata_inicial_extracao and pdata_final_extracao
- and ((tpp.in_parte_principal = TRUE) or
- (upper(ttp.ds_tipo_parte) = upper('ADVOGADO')) -- advogados que nao tenho o tipo parte = a ADVOGADO
- )
- and tpp.in_situacao = 'A'
- and pr.cd_processo_status = 'D'
- ) as procDje
- GROUP BY
- procDje.num_processo,
- procDje.comarca,
- procDje.orgao_julgador,
- procDje.classe_judicial,
- procDje.polo,
- procDje.tipo_parte,
- procDje.representante,
- procDje.valor_causa,
- procDje.tipo_distribuicao,
- procDje.oab
- ORDER BY
- procDje.comarca,
- tjmg.fn_mf_ordem_vara(procDje.orgao_julgador),
- procDje.classe_judicial,
- procDje.num_processo,
- procDje.polo,
- procDje.tipo_parte
- LOOP
- RETURN NEXT processo;
- END LOOP;
- RETURN;
- END
- $FUNC$ LANGUAGE plpgsql VOLATILE STRICT COST 100;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement