source: publico/ILSAPL/trunk/skins/sk_sapl/zsql/materia_pesquisar_zsql.zsql @ 6192

Última Alteração nesse arquivo desde 6192 foi 6192, incluída por lucianodefazio, 8 anos atrás

Acompanhamento de matéria por e-mail

File size: 12.5 KB
Linha 
1<dtml-comment>
2connection_id : dbcon_interlegis
3arguments : tip_id_basica="" num_ident_basica="" ano_ident_basica="" num_protocolo="" ind_tramitacao="" cod_status="" nom_relator="" des_assunto="" des_tipo_autor="" cod_autor="" cod_partido="" dat_apresentacao="" dat_apresentacao2="" dat_publicacao="" dat_publicacao2="" num_origem_externa="" npc="" cod_unid_tramitacao="" rd_ordem=""
4max_rows : 2000
5max_cache : 100
6</dtml-comment>
7<dtml-comment>
8*----------------------------------------------------------------
9  Função: Pesquisar as matérias, também pelo num_origem_externa e pelo número de processo npc
10  que está registrado no campo num_materia na tabela numeracao.
11
12  Inclusão de um argumento: num_origem_externa
13  Autor: Sérgio Damiati
14  Última Alteração: 22/04/2004
15
16  Inclusão de um argumento: npc
17  Autor: Sérgio Damiati
18  Última Alteração: 02/08/2004
19
20  Inclusão dos campos num_origem_externa e ano_origem_externa na SELECT
21  Retorno: campos incluídos se existirem
22  Por Sérgio Damiati em 22/09/2006
23*----------------------------------------------------------------
24  Função: Inserção das datas de apresentação e publicação na pesquisa de matérias legislativas
25  Argumentos: [dat_apresentacao: nb] - data de apresentaçao da matéria
26              [dat_publicacao: nb] - data de publicação da materia
27  Retorno: Matérias selecionadas   
28  Autores: Gláucio, Luiz Eduardo, Thaianne
29  Última Alteração: 10/01/05
30*----------------------------------------------------------------
31  Função: Selecionar as matérias conforme a query de pesquisa, a
32          qual é montada dinamicamente de acordo com os parâmetros
33          passados.
34  Argumentos: [tip_id_basica: int] - tipo da matéria
35              [num_ident_basica: int] - número da matéria
36              [ano_ident_basica: int] - ano da matéria
37              [ind_tramitacao: int] - indicador de tramitação(0 ou 1)
38              [cod_status: int] - código do status da tramitação
39              [nom_relator: string] - nome do relator
40              [des_assunto: string] - assunto da matéria
41              [des_tipo_autor: string] - descrição do tipo de autor
42              [cod_autor: int] - código do autor da matéria
43              [cod_partido: int] - código do partido do autor
44  Retorno: Matérias selecionadas
45  Autora: Man Qi
46  Última Alteração: 10/05/02
47----------------------------------------------------------------*
48</dtml-comment>
49SELECT
50       REPLACE(materia_legislativa.cod_materia, 'L', '') as cod_materia,
51       REPLACE(materia_legislativa.tip_id_basica, 'L', '') as tip_id_basica,
52       materia_legislativa.num_ident_basica,
53       materia_legislativa.ano_ident_basica,
54       materia_legislativa.num_protocolo,
55       materia_legislativa.txt_ementa,
56       materia_legislativa.dat_apresentacao,
57       materia_legislativa.dat_publicacao,
58       materia_legislativa.ind_tramitacao,
59       num_origem_externa,
60       ano_origem_externa,
61       tipo_materia_legislativa.sgl_tipo_materia,
62       tipo_materia_legislativa.des_tipo_materia
63       <dtml-if nom_relator>
64         ,parlamentar_relator.nom_completo
65       </dtml-if>
66       <dtml-if cod_status>
67         ,REPLACE(tramitacao.cod_status, 'L', '') as cod_status
68         ,tramitacao.dat_tramitacao
69       </dtml-if>
70       <dtml-if cod_unid_tramitacao>
71         ,REPLACE(tramitacao.cod_unid_tram_dest, 'L', '') as cod_unid_tram_dest
72       </dtml-if>
73       <dtml-if npc>
74         ,numeracao.num_materia
75       </dtml-if>
76       <dtml-if dat_fim_prazo>
77         ,DATE_FORMAT(materia_legislativa.dat_fim_prazo, '%d/%m/%y') as dat_fim_prazo
78       </dtml-if>
79
80FROM   materia_legislativa, tipo_materia_legislativa
81    <dtml-comment>se o campo Situação Atual estiver preenchido.</dtml-comment>
82    <dtml-if expr="cod_status!='' or cod_unid_tramitacao">
83      ,tramitacao
84    </dtml-if>
85
86    <dtml-comment>se o campo Relator estiver preenchido.</dtml-comment>
87    <dtml-if nom_relator>
88      ,relatoria, parlamentar as parlamentar_relator
89    </dtml-if>
90
91    <dtml-comment>se o campo Tipo Autor ou Partido(Autor) estiver preenchido.</dtml-comment>
92    <dtml-if expr="des_tipo_autor!='' or cod_partido">
93      ,autoria, autor
94    </dtml-if>
95
96    <dtml-comment>se o campo Partido(Autor) estiver preenchido.</dtml-comment>
97    <dtml-if cod_partido>
98      ,filiacao, parlamentar as parlamentar_autor
99    </dtml-if>
100
101    <dtml-comment>se o campo Tipo Autor = Parlamentar e o campo Partido(Autor) não estiver preenchido.</dtml-comment>
102    <dtml-if expr="des_tipo_autor=='Parlamentar' and not cod_partido">
103      ,parlamentar as parlamentar_autor
104
105    <dtml-comment>se o campo Tipo Autor = Comissao</dtml-comment>
106    <dtml-elif expr="des_tipo_autor=='Comissao'">
107      ,comissao
108    </dtml-if>
109
110    <dtml-comment>se o campo Tipo Autor estiver preenchido e for <> Parlamentar e <> Comissao.</dtml-comment>
111    <dtml-if expr="des_tipo_autor!='' and des_tipo_autor!='Parlamentar' and des_tipo_autor!='Comissao'">
112      ,tipo_autor
113    </dtml-if>
114
115    <dtml-comment>Se o campo NPC estiver preenchido</dtml-comment>
116    <dtml-if npc>
117      ,numeracao
118    </dtml-if>
119
120<dtml-sqlgroup where>
121    materia_legislativa.ind_excluido = 0 and
122    materia_legislativa.tip_id_basica = tipo_materia_legislativa.tip_materia <dtml-and>
123    <dtml-sqltest tip_id_basica     column="materia_legislativa.tip_id_basica"    op="="  type="int"    optional> <dtml-and>
124    <dtml-sqltest num_ident_basica  column="materia_legislativa.num_ident_basica" op="="  type="int"    optional> <dtml-and>
125    <dtml-sqltest ano_ident_basica  column="materia_legislativa.ano_ident_basica" op="="  type="int"    optional> <dtml-and>
126    <dtml-sqltest num_protocolo     column="materia_legislativa.num_protocolo   " op="="  type="int"    optional> <dtml-and>
127    <dtml-sqltest ind_tramitacao    column="materia_legislativa.ind_tramitacao"   op="="  type="int"    optional> <dtml-and>
128
129<dtml-if dat_apresentacao>
130  <dtml-if dat_apresentacao2>
131     materia_legislativa.dat_apresentacao >= <dtml-sqlvar "pysc.port_to_iso_pysc(dat_apresentacao)"  type="nb"> and
132     materia_legislativa.dat_apresentacao <= <dtml-sqlvar "pysc.port_to_iso_pysc(dat_apresentacao2)" type="nb">
133  <dtml-else>
134     materia_legislativa.dat_apresentacao = <dtml-sqlvar "pysc.port_to_iso_pysc(dat_apresentacao)" type="nb">
135  </dtml-if>
136<dtml-else>
137  <dtml-if dat_apresentacao2>
138     materia_legislativa.dat_apresentacao = <dtml-sqlvar "pysc.port_to_iso_pysc(dat_apresentacao2)" type="nb">
139  </dtml-if>
140</dtml-if>
141
142<dtml-if dat_publicacao>
143  <dtml-if dat_publicacao2>
144     materia_legislativa.dat_publicacao >= <dtml-sqlvar dat_publicacao  type="nb"> and
145     materia_legislativa.dat_publicacao <= <dtml-sqlvar dat_publicacao2 type="nb">
146  <dtml-else>
147     materia_legislativa.dat_publicacao = <dtml-sqlvar dat_publicacao type="nb">
148  </dtml-if>
149<dtml-else>
150  <dtml-if dat_publicacao2>
151     materia_legislativa.dat_publicacao = <dtml-sqlvar dat_publicacao2 type="nb">
152  </dtml-if>
153</dtml-if>
154
155<dtml-comment>
156    <dtml-if tip_id_basica>
157      and materia_legislativa.tip_id_basica = <dtml-sqlvar tip_id_basica type="int">
158    </dtml-if>
159
160    <dtml-if num_ident_basica>
161      and materia_legislativa.num_ident_basica = <dtml-sqlvar num_ident_basica type="int">
162    </dtml-if>
163
164    <dtml-if ano_ident_basica>
165      and materia_legislativa.ano_ident_basica = <dtml-sqlvar ano_ident_basica type="int">
166    </dtml-if>
167
168    <dtml-if ind_tramitacao>
169      and materia_legislativa.ind_tramitacao = ind_tramitacao
170    </dtml-if>
171</dtml-comment>
172</dtml-sqlgroup>
173
174<dtml-comment>
175    <dtml-if des_assunto>
176      and (match(materia_legislativa.txt_ementa) against (<dtml-sqlvar des_assunto type="string">) or
177      match(materia_legislativa.txt_indexacao) against (<dtml-sqlvar des_assunto type="string">))
178    </dtml-if>
179</dtml-comment>
180
181<dtml-comment>
182************************************************************************
183* Esta pesquisa funciona por frase exata. Sergio Damiati em 17/07/2006 *
184************************************************************************
185</dtml-comment>
186    <dtml-if des_assunto>
187        <dtml-let des_assunto="'%'+des_assunto+'%'">
188           and (materia_legislativa.txt_ementa like <dtml-sqlvar des_assunto type="string"> or
189           materia_legislativa.txt_indexacao like <dtml-sqlvar des_assunto type="string">)
190        </dtml-let>
191    </dtml-if>
192
193    <dtml-if npc>
194      and numeracao.cod_materia = materia_legislativa.cod_materia
195      and numeracao.num_materia = <dtml-sqlvar npc type="string">
196      and numeracao.ind_excluido = 0
197    </dtml-if>
198
199    <dtml-if num_origem_externa>
200      and materia_legislativa.num_origem_externa = <dtml-sqlvar num_origem_externa type="string">
201    </dtml-if>
202
203    <dtml-if cod_status>
204      and materia_legislativa.cod_materia = tramitacao.cod_materia and
205      tramitacao.ind_ult_tramitacao = 1 and
206      tramitacao.ind_excluido = 0 and
207      tramitacao.cod_status = <dtml-sqlvar cod_status type="int">
208    </dtml-if>
209
210    <dtml-if cod_unid_tramitacao>
211      and materia_legislativa.cod_materia = tramitacao.cod_materia and
212      tramitacao.ind_ult_tramitacao = 1 and
213      tramitacao.ind_excluido = 0 and
214      tramitacao.cod_unid_tram_dest = <dtml-sqlvar cod_unid_tramitacao type="int">
215    </dtml-if>
216
217    <dtml-if nom_relator>
218      and materia_legislativa.cod_materia = relatoria.cod_materia and
219      relatoria.ind_excluido = 0 and
220      relatoria.cod_parlamentar = parlamentar_relator.cod_parlamentar and
221      parlamentar_relator.nom_parlamentar = <dtml-sqlvar nom_relator type="string">   
222    </dtml-if>
223
224    <dtml-if expr="des_tipo_autor!='' or cod_partido">
225      and materia_legislativa.cod_materia = autoria.cod_materia and
226      autoria.ind_excluido = 0 and
227     autoria.cod_autor = autor.cod_autor
228    </dtml-if>
229
230    <dtml-comment>se o campo Tipo Autor estiver preenchido.</dtml-comment>
231    <dtml-if expr="des_tipo_autor!=''">
232
233      <dtml-if expr="des_tipo_autor=='Parlamentar'">
234        and autor.cod_parlamentar = parlamentar_autor.cod_parlamentar
235
236        <dtml-if cod_autor>
237          and parlamentar_autor.cod_parlamentar = <dtml-sqlvar cod_autor type="int">
238        </dtml-if>
239
240        <dtml-if cod_partido>
241          and parlamentar_autor.cod_parlamentar = filiacao.cod_parlamentar and
242          filiacao.ind_excluido = 0 and
243          filiacao.cod_partido = <dtml-sqlvar cod_partido type="int"> and
244          filiacao.dat_filiacao <= materia_legislativa.dat_apresentacao and
245          (filiacao.dat_desfiliacao >= materia_legislativa.dat_apresentacao or
246          filiacao.dat_desfiliacao is null)
247        </dtml-if>
248
249      <dtml-elif expr="des_tipo_autor=='Comissao'">
250        and autor.cod_comissao = comissao.cod_comissao
251
252        <dtml-if cod_autor>
253          and comissao.cod_comissao = <dtml-sqlvar cod_autor type="int">
254        </dtml-if>
255
256        <dtml-comment> como uma comissão não tem partido, a linha abaixo não faz muito sentido,
257        foi apenas um artifício usado para que a query retorne vazio. Man Qi </dtml-comment>
258        <dtml-if cod_partido>
259          and autor.cod_partido = <dtml-sqlvar cod_partido type="int">
260        </dtml-if>
261
262      <dtml-else>
263        and autor.tip_autor = tipo_autor.tip_autor and
264        tipo_autor.des_tipo_autor = <dtml-sqlvar des_tipo_autor type="string"> and
265        tipo_autor.ind_excluido = 0
266
267        <dtml-if cod_autor>
268          and autor.cod_autor = <dtml-sqlvar cod_autor type="int">
269        </dtml-if>
270
271        <dtml-if cod_partido>
272          and autor.cod_partido = <dtml-sqlvar cod_partido type="int">
273        </dtml-if>
274
275      </dtml-if>
276    </dtml-if>
277
278    <dtml-comment>se o campo Tipo Autor não estiver preenchido e Partido(Autor) estiver preenchido.</dtml-comment>
279    <dtml-if expr="des_tipo_autor=='' and cod_partido">
280      and ((autor.cod_partido = <dtml-sqlvar cod_partido type="int">) or
281      (autor.cod_parlamentar = parlamentar_autor.cod_parlamentar and
282      parlamentar_autor.cod_parlamentar = filiacao.cod_parlamentar and
283      filiacao.cod_partido = <dtml-sqlvar cod_partido type="int"> and
284      filiacao.dat_filiacao <= materia_legislativa.dat_apresentacao and
285      (filiacao.dat_desfiliacao >= materia_legislativa.dat_apresentacao or
286      filiacao.dat_desfiliacao is null)))
287    </dtml-if>
288
289<dtml-if expr="rd_ordem == '1'">
290 ORDER BY tipo_materia_legislativa.sgl_tipo_materia, materia_legislativa.ano_ident_basica DESC, LPAD(materia_legislativa.num_ident_basica, 5, '0') DESC
291<dtml-else>
292 ORDER BY tipo_materia_legislativa.sgl_tipo_materia, materia_legislativa.ano_ident_basica ASC, LPAD(materia_legislativa.num_ident_basica, 5, '0') ASC
293</dtml-if>
294
295<dtml-comment>
296ORDER BY tipo_materia_legislativa.sgl_tipo_materia, LPAD(materia_legislativa.num_ident_basica, 5, '0'), materia_legislativa.ano_ident_basica
297</dtml-comment>
298
299<dtml-comment>
300ORDER BY materia_legislativa.dat_apresentacao DESC
301</dtml-comment>
Note: Veja TracBrowser para ajuda no uso do navegador do trac.
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.