Dadilton

Função com problema

Mar 18th, 2015
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. -- Function: meta_gpj_2015.sp_meta_1(date, date, integer, integer, character, character)
  2.  
  3. -- DROP FUNCTION meta_gpj_2015.sp_meta_1(date, date, integer, integer, character, character);
  4.  
  5. CREATE OR REPLACE FUNCTION meta_gpj_2015.sp_meta_1(
  6. IN dtinicio date,
  7. IN dtfim date,
  8. IN comarcaid integer,
  9. IN intvara integer,
  10. IN tipo character,
  11. IN sistema character)
  12. RETURNS TABLE(intprocessoid bigint, intcomarcaid integer, strcomarca text, dtaabertura date, dtadistribuicao date, dtamovimento date, intvaraid integer, strvara text, strtipovara text, intclassecnjid integer, strclassecnj text, inttipocomarcaid bigint, bolacervo character) AS
  13. $BODY$
  14. DECLARE
  15. dtinicio ALIAS FOR $1;
  16. dtfim ALIAS FOR $2;
  17. municipioid ALIAS FOR $3;
  18. varaid ALIAS FOR $4;
  19. tipo_C ALIAS FOR $5;
  20. sist ALIAS FOR $6;
  21. BEGIN
  22. CREATE TEMPORARY TABLE tmpAcervo
  23. ON COMMIT DROP AS
  24. select 'I'::char as strtipoacervo, * from (
  25. select distinct pk_processo, intmunicipiocomarcaid, strmunicipio, p.dtaabertura, p.dtadistribuicao, p.intvaraid, p.strvara, p.strtipovara,
  26. p.intclassecnjid,p.strclassecnj, p.intTipoComarcaId, null::date as dtamovimento, p.tblorigem::varchar
  27. from meta_gpj_2015.meta1_processo p
  28. WHERE p.dtaabertura between dtinicio::date and dtfim::date
  29. AND (CASE WHEN municipioid=0 then true else municipioid=intmunicipiocomarcaid END)
  30. AND (CASE WHEN varaid=0 then true else varaid=p.intvaraid END)
  31. AND (CASE WHEN sist='T' THEN p.tblOrigem % 'Themis' WHEN sist='P' THEN p.tblOrigem % 'Projudi' ELSE ( true ) END )
  32. AND NOT EXISTS ( select distinct *
  33. from meta_gpj_2015.meta1_acervo_julgado_min aj
  34. where aj.dtaMovimento < dtinicio::date
  35. AND aj.intmunicipiocomarcaid = p.intmunicipiocomarcaid
  36. AND aj.intvaraid = p.intvaraid
  37. AND aj.pk_processo = p.pk_processo
  38. AND (CASE WHEN sist='T' THEN aj.tblOrigem % 'Themis' WHEN sist='P' THEN aj.tblOrigem % 'Projudi' ELSE ( true ) END )
  39. )
  40. AND NOT EXISTS (
  41. SELECT true
  42. FROM base.processo_status_historico psh
  43. WHERE psh.intprocessoid = p.pk_processo
  44. AND psh.intmunicipiocomarcaid = p.intmunicipiocomarcaid
  45. AND psh.intprocessostatusid = 5
  46. AND psh.dtaprocessostatushistorico > dtinicio::date
  47. )
  48. ) as tmpacervoinicial
  49. union
  50. select 'F'::char as strtipoacervo, * from (
  51. select distinct *
  52. from meta_gpj_2015.meta1_acervo_julgado_min aj
  53. where aj.dtaMovimento between dtinicio::date and dtfim::date
  54. AND (CASE WHEN municipioid=0 then true else municipioid=aj.intmunicipiocomarcaid END )
  55. AND (CASE WHEN varaid=0 then true else varaid=aj.intvaraid END )
  56. AND (CASE WHEN sist='T' THEN aj.tblOrigem % 'Themis' WHEN sist='P' THEN aj.tblOrigem % 'Projudi' ELSE ( true ) END )
  57. ) as tmpacervofinal;
  58.  
  59. RETURN QUERY
  60. SELECT DISTINCT pk_processo,m4.intmunicipiocomarcaid, m4.strmunicipio,m4.dtaabertura,m4.dtadistribuicao,m4.dtamovimento::date,m4.intvaraid,m4.strvara,
  61. m4.strtipovara,m4.intclassecnjid, m4.strclassecnj,m4.inttipocomarcaid,strtipoacervo
  62. FROM tmpAcervo m4
  63. WHERE CASE WHEN ( tipo_C='I' or tipo_C='F' ) THEN tipo_C=strtipoacervo ELSE ( tipo_C='R' ) END
  64. ORDER BY m4.strmunicipio, m4.strvara, strtipoacervo desc, m4.dtaabertura;
  65.  
  66. END
  67. $BODY$
  68. LANGUAGE plpgsql VOLATILE
  69. COST 100
  70. ROWS 1000;
  71. ALTER FUNCTION meta_gpj_2015.sp_meta_1(date, date, integer, integer, character, character)
  72. OWNER TO user_dw;
  73. GRANT EXECUTE ON FUNCTION meta_gpj_2015.sp_meta_1(date, date, integer, integer, character, character) TO user_dw;
  74. GRANT EXECUTE ON FUNCTION meta_gpj_2015.sp_meta_1(date, date, integer, integer, character, character) TO public;
  75. GRANT EXECUTE ON FUNCTION meta_gpj_2015.sp_meta_1(date, date, integer, integer, character, character) TO jurisconsult;
Advertisement
Add Comment
Please, Sign In to add comment