source: publico/ILSAPL/branches/2.5/skins/sk_sapl/zsql/materia_pesquisar_zsql.zsql @ 8268

Última Alteração nesse arquivo desde 8268 foi 8268, incluída por claudiomorale, 4 anos atrás

materia por assunto

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