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

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

Reverting previous commit and going back to revision 8259 - SAPL error name 'cod_assunto' is not defined

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