source: publico/ILSAPL/branches/2.1/skins/sk_sapl/cadastros/proposicao/proposicao_form.dtml @ 2757

Última Alteração nesse arquivo desde 2757 foi 2757, incluída por ciciliati, 15 anos atrás

Correção do bug reportado pelo Guido (CM Joao Pessoa/PB),
de acordo com o ticket #215

File size: 22.5 KB
Linha 
1<SCRIPT LANGUAGE = "JavaScript">
2<!--
3
4  function redir_texto_integral(){
5      var ok = 1;
6      var form = document.proposicao_form;
7 
8      if (form.hdn_alterou.value!=0)
9          if (confirm("Dados básicos foram alterados, e essas alterações podem ser perdidas. Deseja salvá-las antes de prosseguir?"))
10              ok = campos_criticar(form);
11
12      if (ok)
13          location.href="proposicao_editar_texto_form?cod_proposicao=<dtml-var cod_proposicao missing>";
14      return;
15  }
16
17
18  function campos_criticar(form){
19      /*-----------------------------
20         Função: Critica os campos obrigatórios do formulário. É chamada
21                 pelo botão btn_proposicao_salvar do formulário para validação
22                 dos campos.
23         Argumentos: form : formulário em si.
24         Retorno: Invoca o SUBMIT do formulário ou retorna valor booleano
25                falso, caso haja algum campo incorreto, juntamente com uma
26                uma mensagem de erro e o cursor no campo a ser corrigido.
27      ------------------------------*/
28
29      if (form.lst_tip_proposicao[form.lst_tip_proposicao.selectedIndex].value == "-1") {
30          alert("Deve ser selecionado um Tipo de Proposição!");
31          form.lst_tip_proposicao.focus();
32          return false;
33      }
34   
35      if (form.txt_descricao.value=="") {
36          alert("Deve ser informada uma descrição para a Proposição!");
37          form.txt_descricao.focus();
38          return false;
39      }
40
41      var tipo_proposicao = form.lst_tip_proposicao[form.lst_tip_proposicao.selectedIndex].value;
42      var separador = tipo_proposicao.indexOf("&");
43      var ind_mat_ou_doc = tipo_proposicao.split("&");
44      if (ind_mat_ou_doc[1]=='D') {
45          if ((form.lst_tip_id_basica[form.lst_tip_id_basica.selectedIndex].value == "") ||
46             (form.txt_num_ident_basica.value == "") || (form.txt_ano_ident_basica.value == ""))  {
47              alert("Devem ser informados Tipo, Número e Ano da matéria legislativa a qual esta proposição será vinculada!");
48              form.lst_tip_id_basica.focus();
49              return false;
50          }
51      }
52
53      if ((form.radTipTxtIntegral.value == "Arq") && (form.file_nom_arquivo.value != "")) {
54          form.hdn_file.value = "1";
55      }
56      else {
57          form.hdn_file.value = "0";
58      }
59
60      if (form.hdn_cod_proposicao.value == "" && form.hdn_file.value == "0" && form.radTipTxtIntegral.value == "Arq"){
61          alert("Você Deve Escolher Um Arquivo!");
62          return false;
63      }     
64
65      form.hdn_tip_proposicao.value = tipo_proposicao.substring(0, separador);
66      form.submit();
67      return;
68  }
69
70  function proposicao_excluir(){
71      /*-----------------------------
72         Função: Chama o Método DTML de exclusão da proposicao.
73                 Apenas uma proposição que não foi recebida, ou que foi descartada(criar esse estado?), pode ser excluída.
74      ------------------------------*/
75       
76       if (confirm("Deseja realmente excluir?")) { 
77          location.href="proposicao_excluir_proc?cod_proposicao=<dtml-var cod_proposicao missing>";
78       }
79  }
80
81  function proposicao_devolver(form){
82        if((form.txa_txt_justificativa.value=="")||(form.txa_txt_justificativa.value=="None")){
83                alert('A justificativa deve ser preenchida');
84        }
85        else{
86                location.href="proposicao_salvar_devolucao_proc?cod_proposicao=<dtml-var cod_proposicao missing>&txt_justif_devolucao="+form.txa_txt_justificativa.value ;
87        }
88 
89  }
90 
91  function proposicao_retomar(){
92      /*-----------------------------
93         Função: Chama o Método DTML de retomada de proposicao enviada.
94                 Apenas uma proposição que não foi recebida, pode ser retomada.
95      ------------------------------*/
96       
97       location.href="proposicao_retomar_proc?cod_proposicao=<dtml-var cod_proposicao missing>";
98  }
99
100  function tipo_proposicao_mudou(){
101      /*-----------------------------
102         Função: Reinvoca a página habilitando os campos da matéria legislativa caso ind_mat_ou_doc[1]='D'.
103         Retorno: A página atualizada com os campos da matéria legislativa habilitados ou não.
104         Man Qi em 18/12/03.
105      ------------------------------*/
106       
107    var form = document.proposicao_form;
108   
109    form.hdn_alterou.value=1;
110
111    var tipo_proposicao = form.lst_tip_proposicao[form.lst_tip_proposicao.selectedIndex].value;
112    var separador = tipo_proposicao.indexOf("&");
113    var ind_mat_ou_doc = tipo_proposicao.split("&");
114    if (ind_mat_ou_doc[2]=='') {
115      form.radTipTxtIntegral[1].checked=true;
116      form.radTipTxtIntegral.value = 'Arq'
117      form.radTipTxtIntegral[0].disabled = 1;
118      form.btn_proposicao_salvar.value = "Salvar Dados Básicos e Enviar Proposição";
119      form.file_nom_arquivo.disabled = 0;
120    }
121    else form.radTipTxtIntegral[0].disabled = 0;
122    if (ind_mat_ou_doc[1]=='D') {
123      form.lst_tip_id_basica.disabled = 0;
124      form.txt_num_ident_basica.disabled = 0;
125      form.txt_ano_ident_basica.disabled = 0;
126    }
127    else {
128      form.lst_tip_id_basica.disabled = 1;
129      form.txt_num_ident_basica.disabled = 1;
130      form.txt_ano_ident_basica.disabled = 1;
131    }
132    return;
133
134  }
135
136  function tipo_texto_integral(tipo) {
137    var form = document.proposicao_form;
138    if (tipo=='A') {
139      form.file_nom_arquivo.disabled = 0;
140      form.btn_proposicao_salvar.value = "Salvar Dados Básicos e Enviar Proposição";
141      form.radTipTxtIntegral.value = 'Arq';
142    }
143    else {
144      form.file_nom_arquivo.disabled = 1;
145      form.btn_proposicao_salvar.value = "Salvar Dados Básicos e Criar Texto Integral";
146      form.radTipTxtIntegral.value = 'XML';
147    }
148    return;
149  }
150   
151  function exe_carrega(){
152    var form = document.proposicao_form;
153
154    if (form.radTipTxtIntegral[0].checked == true)
155      form.radTipTxtIntegral.value = "XML";
156    if (form.radTipTxtIntegral[1].checked == true)
157      form.radTipTxtIntegral.value = "Arq";
158    if (form.radTipTxtIntegral.value == "XML")
159      if (form.estah_alterando == '1')
160        form.btn_proposicao_salvar.value = "Salvar Dados Básicos";
161      else
162        form.btn_proposicao_salvar.value = "Salvar Dados Básicos e Criar Texto Integral";
163    if (form.radTipTxtIntegral.value == "Arq") {
164      form.btn_proposicao_salvar.value = "Salvar Dados Básicos e Enviar Proposição";
165      form.file_nom_arquivo.disabled = 0;
166    }
167  }
168//-->
169</SCRIPT>
170<body onload="exe_carrega()">
171<dtml-unless dat_envio>
172    <dtml-call expr="REQUEST.set('dat_envio','00/00/0000')">
173</dtml-unless>
174<dtml-call expr="REQUEST.set('prop_enviada',(dat_envio!='00/00/0000'))">
175
176
177<dtml-if cod_proposicao>
178    <dtml-call expr="REQUEST.set('usr_eh_autor',(col_username==AUTHENTICATED_USER.getUserName()))">
179    <dtml-call expr="REQUEST.set('estah_alterando','1')">
180<dtml-else>
181    <dtml-call expr="REQUEST.set('usr_eh_autor',(1==1))">
182    <dtml-call expr="REQUEST.set('estah_alterando','0')">
183</dtml-if>
184
185<dtml-if cod_proposicao>
186    <dtml-call expr="REQUEST.set('tipo_txtint',(pysc.proposicao_tipo_texto_integral_pysc(cod_proposicao)))">
187</dtml-if>
188
189<dtml-if expr="usr_eh_autor or (AUTHENTICATED_USER.hasRole(this(), ['Operador', 'Operador Materia']))"> 
190  <dtml-var standard_html_header>
191              <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
192                <tr class="fundo">
193  <dtml-if cod_proposicao>
194                  <td class="form-label">
195      <dtml-if expr="not (prop_enviada)">
196          <dtml-if expr="tipo_txtint=='XML'">
197                  <span> | </span><a href="javascript:redir_texto_integral()">Editar Texto Integral</a> |
198          </dtml-if>
199      <dtml-else>
200          <dtml-if usr_eh_autor>
201              <dtml-let cod_doc="pysc.proposicao_calcular_checksum_pysc(cod_proposicao)">
202                  <span> </span>| <a target="blank" href="proposicao_recibo_imprimir?cod_documento=<dtml-var cod_doc>">Imprimir Recibo</a> | | <a target="blank" href="proposicao_texto_imprimir?cod_documento=<dtml-var cod_doc>">Imprimir Texto Integral</a> |
203              </dtml-let>
204          </dtml-if>
205      </dtml-if>
206                  </td>
207  <dtml-else>
208                  <td class="form-label">&nbsp;</td>
209  </dtml-if>
210                </tr>
211              </table>
212            <form name ="proposicao_form" method="post" action="proposicao_salvar_proc" enctype="multipart/form-data">
213              <table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="10"></td></tr></table>
214              <table width="98%" border="1" cellspacing="0" cellpadding="0" class="borda" vspace="0" hspace="0" align="center">
215                <tr align="center" valign="top">
216                  <td>
217                      <input type="hidden" name="hdn_alterou" value="0">                     
218                      <input type="hidden" name="hdn_tip_proposicao" value="">
219                      <input type="hidden" name="hdn_file" value=0>
220  <dtml-if cod_proposicao>
221                      <input type="hidden" name="hdn_cod_proposicao" value="<dtml-var cod_proposicao>">
222  <dtml-else>
223                      <input type="hidden" name="hdn_cod_proposicao" value="">
224  </dtml-if>
225                      <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center" vspace="0" hspace="0">
226                        <tr align="left" class="fundo">
227                          <td class="form-label">&nbsp;Dados B&aacute;sicos</td>
228                        </tr>
229                        <tr>
230                          <td>
231                            <table width="100%" border="0" cellspacing="0" align="center">
232  <dtml-if cod_proposicao>
233    <dtml-if expr="(prop_enviada and usr_eh_autor) or dat_recebimento">
234                              <tr height="30" valign="middle">
235                                <td width="100%" colspan=3 class="form-element">Código do Documento: <dtml-var expr="pysc.proposicao_calcular_checksum_pysc(cod_proposicao)"></b>
236                                </td>
237                              </tr>
238    </dtml-if>
239  </dtml-if>
240                              <tr height="40" valign="top">
241                                <td width="40%" class="form-element">
242                                  Tipo<br>   
243
244                                  <select name="lst_tip_proposicao" onChange="javascript:tipo_proposicao_mudou()"
245                                    <dtml-if "prop_enviada or _.has_key('cod_proposicao')">
246                                      disabled
247                                    </dtml-if>
248                                  >                                 
249                                    <option value="-1"></option>
250                                    <dtml-in expr="zsql.tipo_proposicao_obter_zsql()">
251                                    <option
252                                      <dtml-if tip_proposicao_sel>
253                                        <dtml-if expr="_.int(tip_proposicao) == _.int(tip_proposicao_sel)">
254                                          selected
255                                        </dtml-if>
256                                      </dtml-if>
257                                      value="<dtml-var tip_proposicao>&<dtml-var ind_mat_ou_doc>&<dtml-var nom_modelo url_quote>"><dtml-var des_tipo_proposicao>
258                                      </option>
259                                    </dtml-in>
260                                  </select>
261
262                                </td>
263
264                                <td width="30%" class="form-text">
265                       
266  <dtml-if cod_proposicao>
267                                  <b>Data de Envio</b><br>
268    <dtml-if prop_enviada>
269                                  <input type="text" name="txt_dat_criacao" value="<dtml-var dat_envio missing>" size="10" maxlength="10" onBlur="formata_data(form.txt_dat_criacao)" onChange="javascript:form.hdn_alterou.value=1" readonly><span class="nota"> (dd/mm/aaaa)</span>
270    <dtml-else>
271                                  Proposição ainda não enviada.
272    </dtml-if>
273  <dtml-else>
274                                  <input type="hidden" name="txt_dat_criacao" value="00/00/0000">
275  </dtml-if>
276                                </td>
277                                <td width="30%" class="form-text">
278  <dtml-if cod_proposicao>
279                                  <b>Data de Recebimento</b><br>
280    <dtml-if dat_recebimento>
281                                  <input type="text" name="txt_dat_recebimento" value="<dtml-var dat_recebimento missing>" size="10" maxlength="10" onBlur="formata_data(form.txt_dat_recebimento)" onChange="javascript:form.hdn_alterou.value=1" readonly><span class="nota"> (dd/mm/aaaa)</span>
282<!-- ********* v 2.1 start-block ********* -->
283        <dtml-if cod_mat_ou_doc>
284            <dtml-if expr="ind_mat_ou_doc=='D'">
285                <dtml-in expr="zsql.documento_acessorio_obter_zsql(cod_documento=cod_mat_ou_doc)">
286                    <dtml-call expr="REQUEST.set('cod_mat', cod_materia)">
287                </dtml-in>
288            <dtml-else>
289                <dtml-call expr="REQUEST.set('cod_mat', cod_mat_ou_doc)">
290            </dtml-if>
291            <dtml-in expr="zsql.materia_obter_zsql(cod_materia=cod_mat)">
292                                  <br>Mat. Leg.: <dtml-var sgl_tipo_materia>-<dtml-var num_ident_basica>/<dtml-var ano_ident_basica>
293            </dtml-in>
294        <dtml-else><dtml-if dat_devolucao> <br> PROPOSIÇÃO DEVOLVIDA!
295                           <dtml-else>       <br>PROPOSIÇÃO RECEBIDA, MAS NÃO APROVEITADA AINDA!
296                   </dtml-if>             
297        </dtml-if>
298<!-- ********* v 2.1 end-block ********* -->
299    <dtml-else>
300                                  Proposição ainda não recebida.
301    </dtml-if>
302  <dtml-else>
303                                  <input type="hidden" name="txt_dat_recebimento" value="">
304  </dtml-if>
305                                </td>                               
306                              </tr>
307                              <tr height="40" valign="top">
308                                <td width="100%" colspan=3 class="form-element">Descri&ccedil;&atilde;o<br>
309                                  <input type="text" name="txt_descricao" value="<dtml-var txt_descricao missing>" size="80" maxlength="100" onChange="javascript:form.hdn_alterou.value=1" <dtml-if prop_enviada>readonly</dtml-if>>
310                                </td>
311                              </tr>
312                              <tr height="40" valign="top">
313                                <td width="40%" class="form-element">Mat&eacute;ria Legislativa<br>
314                                  <select name="lst_tip_id_basica"
315                                    <dtml-if "not _.has_key('tip_id_basica_sel') or prop_enviada">                                       
316                                           disabled
317                                    </dtml-if>
318                                  >   
319                                    <option></option>
320                                    <dtml-in expr="zsql.tipo_materia_legislativa_obter_zsql(ind_excluido=0)">
321                                    <option
322                                      <dtml-if tip_id_basica_sel>
323                                        <dtml-if expr="_.int(tip_materia) == _.int(tip_id_basica_sel)">
324                                          selected
325                                        </dtml-if>
326                                      </dtml-if>
327                                      value="<dtml-var tip_materia missing>">
328                                      <dtml-var sgl_tipo_materia> - <dtml-var des_tipo_materia></option>
329                                    </dtml-in>
330                                  </select>
331                                </td>
332                                <td width="30%" class="form-element">N&uacute;mero<br>
333                                  <input type="text" name="txt_num_ident_basica" size="5" value="<dtml-var num_ident_basica_sel missing>" maxlength="5"
334                                    <dtml-if "not _.has_key('num_ident_basica_sel') or prop_enviada">                                       
335                                           disabled>
336                                    </dtml-if>
337                                </td>
338                                <td width="30%" class="form-element">Ano<br>
339                                  <input type="text" name="txt_ano_ident_basica" size="4" value="<dtml-var ano_ident_basica_sel missing>" maxlength="4"
340                                    <dtml-if "not _.has_key('ano_ident_basica_sel') or prop_enviada">                                       
341                                           disabled>
342                                    </dtml-if>
343                                </td>
344                              </tr>
345  <dtml-if prop_enviada>
346                              <tr height="10">
347                                <td></td>
348                              </tr>
349  <dtml-else>
350    <dtml-if cod_proposicao>
351      <dtml-if expr="tipo_txtint=='XML'">
352                              <input type="hidden" name="radTipTxtIntegral" value="XML">
353      <dtml-else>
354                              <tr>
355                                  <td colspan="3" class="form-text" valign="center">
356                                      <dtml-let id_documento="_.str(cod_proposicao)">
357                                          <dtml-if "_.hasattr(sapl_documentos.proposicao,id_documento)">
358                                              <dtml-let documento="_.getattr(sapl_documentos.proposicao,id_documento).absolute_url">
359                                                  <b>Texto Integral</b><br>
360                                                      <a target="_blank" href="<dtml-var documento>"><img align="middle" border="0" src="sapl/imagens/archiv.gif" alt="Texto integral"></a>
361                                              </dtml-let>
362                                          </dtml-if>
363                                      </dtml-let>
364                                      <span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Substituir por: </span><input type="file" name="file_nom_arquivo" size="40" maxlength="100">
365                                  </td>   
366                              <tr>
367                              <input type="hidden" name="radTipTxtIntegral" value="Arq">
368      </dtml-if>
369                              <tr height="10">
370                                <td></td>
371                              </tr>
372    <dtml-else>
373                              <tr height="40" valign="top">
374                                <td colspan=3 class="form-element">Texto Integral:<br>
375                                  <input type="radio" class="form-element" name="radTipTxtIntegral"
376                                  value="XML"
377                                  onClick="tipo_texto_integral('X')"
378                                  checked> Criar texto em XML
379                                </td>
380                              </tr>
381                              <tr>
382                                <td colspan="3" class="form-element">
383                                  <input type="radio" class="form-element" name="radTipTxtIntegral" value="Arq" onClick="tipo_texto_integral('A')"> Carregar Arquivo Externo&nbsp;&nbsp;
384                                  <input type="file" name="file_nom_arquivo" size="40" maxlength="100" disabled>
385                                </td>
386                              </tr>
387    </dtml-if>
388  </dtml-if>
389    <dtml-if usr_eh_autor>
390        <dtml-if dat_devolucao>
391                <tr height="40" valign="top">
392                        <td  colspan=2 class="form-element">Justificativa da Devolução(*)
393                            <br>
394                            <textarea name="txa_txt_justificativa" cols="70"
395                            onBlur="form.txa_txt_justificativa.value = form.txa_txt_justificativa.value.toUpperCase()"
396                            onChange="javascript:form.hdn_alterou.value=1" <dtml-if txt_justif_devolucao>readonly</dtml-if>><dtml-if txt_justif_devolucao><dtml-var txt_justif_devolucao missing></dtml-if></textarea>
397                          </td>
398                        <td colspan=1 class="form-element">
399                                  <b>Data de devolução</b><br>
400                                        <input type="text" name="txt_dat_devolucao" value="<dtml-var dat_devolucao missing>" size="10" maxlength="10" onBlur="formata_data(form.txt_dat_devolucao)" onChange="javascript:form.hdn_alterou.value=1" readonly><span class="nota"> (dd/mm/aaaa)</span>
401                               
402                        </td>
403                </tr>
404        </dtml-if>     
405  </dtml-if>
406
407                               
408  <dtml-unless usr_eh_autor>
409        <dtml-if dat_recebimento>
410                <dtml-unless cod_mat_ou_doc>
411                <tr height="40" valign="top">
412                        <td  colspan=3 class="form-element">Justificativa da Devolução(*)
413                            <br>
414                            <textarea name="txa_txt_justificativa" cols="70"
415                            onBlur="form.txa_txt_justificativa.value = form.txa_txt_justificativa.value.toUpperCase()"
416                            onChange="javascript:form.hdn_alterou.value=1" <dtml-if txt_justif_devolucao>readonly</dtml-if>><dtml-if txt_justif_devolucao><dtml-var txt_justif_devolucao missing></dtml-if></textarea>
417                          </td>
418                </tr>
419                </dtml-unless cod_mat_ou_doc>   
420        </dtml-if dat_recebimento>             
421  </dtml-unless usr_eh_autor>
422 
423                            </table>
424                          </td>
425                        </tr>
426                      </table>
427
428                  </td>
429                </tr>
430              </table>
431              <table border="0" width="100%">
432                <tr height="40" valign="bottom">
433                  <td align="center">
434  <dtml-if usr_eh_autor>
435    <dtml-if cod_proposicao>
436      <dtml-if prop_enviada>
437        <dtml-unless dat_recebimento>
438            <input type="button" name="btn_proposicao_retomar" value="Retomar proposição enviada" onClick="proposicao_retomar()">
439        </dtml-unless>
440      <dtml-else>
441        <dtml-if expr="tipo_txtint=='ArqExt'">
442                    <input type="button" name="btn_proposicao_salvar" value="Salvar e Enviar Proposição" onClick="campos_criticar(document.proposicao_form)">
443        <dtml-else>
444                    <input type="button" name="btn_proposicao_salvar" value="Salvar dados básicos" onClick="campos_criticar(document.proposicao_form)">
445        </dtml-if>
446                    <input type="button" name="btn_proposicao_excluir" value="Excluir" onClick="proposicao_excluir()">
447      </dtml-if>
448    <dtml-else>
449                    <input type="button" name="btn_proposicao_salvar" value="Salvar Dados Básicos e Criar Texto Integral" onClick="campos_criticar(document.proposicao_form)">
450    </dtml-if>
451    <dtml-else>
452        <dtml-if dat_recebimento>
453                <dtml-unless cod_mat_ou_doc>
454                        <dtml-unless dat_devolucao>
455                                <input type="button" name="btn_proposicao_devolver" value="Devolver proposição ao autor" onClick="proposicao_devolver(document.proposicao_form)">
456                        </dtml-unless>
457                </dtml-unless>
458        </dtml-if>   
459  </dtml-if>
460 
461                  </td> 
462                </tr>
463              </table>
464    </form>
465  <dtml-var standard_html_footer>
466<dtml-else>
467  <dtml-let mensagem="'Você não tem permissão para ver esta proposição!'">
468     <dtml-var mensagem_emitir>
469  </dtml-let>
470</dtml-if>
471</body>
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.