[Gitec] Fotos dos parlamentares

Luciano De Fázio luciano em camaracatanduva.sp.gov.br
Sexta Agosto 20 17:39:28 BRT 2004


Caro Maurício:

Obrigado.

As alterações estão nos arquivos mencionados anteriormente.

De qualquer forma, as estou enviando novamente no arquivo compactado em 
anexo.

Para instalar, proceda da seguinte forma:

Na interface de gerenciamento do Zope, faça uma cópia de cada um dos 
arquivos que vai alterar (copiar/colar):

/sapl/cadastros/parlamentar/parlamentar_salvar_proc

/sapl/cadastros/parlamentar/parlamentar_salvar_excluir

/sapl/cadastros/parlamentar/parlamentar_form

/sapl/consultas/parlamentar/parlamentar_form = parlamentar_form


Abra os arquivos customizados (que estão no .zip em anexo) em um editor 
de texto de sua preferência, copie e cole o código nos arquivos 
correspondentes do SAPL.

Em /sapl/imagens, adicione uma Pasta denominadas "fotos". Entre na nova pasta e clique na aba "Properties", as seguintes propriedades do tipo string: Name=nom_documento e Value=foto_parlamentar; em Type deixe selecionado a opção "string"

Pronto.

A partir daí já deverá estar disponível um campo para upload da 
fotografia no formulários de cadastro / alteração de parlamentar do 
SAPL. Logado como operador, tente incluir uma fotografia, e como 
visitante, verifique se é possível visualizar os dados do parlamentar 
juntamente com a fotografia.

Qualquer dúvida, entre em contato.

Abraço,

Luciano De Fázio
Coordenador de Informática e Tecnologia
Câmara Municipal de Catanduva - SP

Mauricio Diniz escreveu:

>Parabéns Luciano,
>
>Ficou muito bom! Tem como vc enviar-me as adaptações?
>Grato
>Maurício
>Câmara Municipal de Ouro Preto
>
>
>
>Em Sex, 2004-08-20 às 14:52, Luciano De Fázio escreveu:
>  
>
>>Maurício,
>>
>>Para adaptação às nossas necessidades, realizamos as alterações 
>>diretamente no SAPL, com a inclusão de rotinas de inclusão de fotos no 
>>cadastramento, alteração, exclusão e exibição dos parlamentares.
>>
>>Veja a customização em funcionamento no SAPL da Câmara de Catanduva: 
>>http://sapl.camaracatanduva.sp.gov.br:8080/sapl/consultas/parlamentar
>>
>>Arquivos alterados, em anexo:
>>
>>/sapl/cadastros/parlamentar/parlamentar_salvar_proc
>>
>>/sapl/cadastros/parlamentar/parlamentar_salvar_excluir
>>
>>/sapl/cadastros/parlamentar/parlamentar_form
>>
>>/sapl/consultas/parlamentar/parlamentar_form = parlamentar_form(consultas)
>>
>>Para armazenar as fotos, criamos a pasta /sapl/imagens/fotos com 
>>propriedades do tipo string nom.documento=foto_parlamentar
>>
>>Abraço,
>>
>>Luciano De Fázio
>>Coordenador de Informática e Tecnologia
>>Câmara Municipal de Catanduva - SP
>>
>>Mauricio Diniz escreveu:
>>
>>    
>>
>>>Pessoal,
>>>Estou querendo colocar a foto dos parlamentares no SAPL. Gostaria de
>>>saber o que vocês sugerem:
>>>1- Armazenar a imagem no ZOPE e fazer uma referência na página que
>>>mostra os dados dos parlamentares.
>>>2- Armazenar a imagem no MySQL e alterar a query que busca as
>>>informações dos parlamentares.
>>>3- Alguma que ainda não pensei!
>>>
>>>Aguardo sugestões
>>>Maurício
>>>Câmara Municipal de Ouro Preto
>>>
>>>_______________________________________________
>>>Gitec mailing list
>>>Gitec em listas.interlegis.gov.br
>>>http://listas.interlegis.gov.br/mailman/listinfo/gitec
>>> 
>>>
>>>      
>>>
>>______________________________________________________________________
>>
>><dtml-comment>
>>*****************************************************************
>>*   Função: Esse método apenas chama o Método SQL de exclusão do*
>>*       parlamentar, isto é, o método que atribui a verdadeiro o*
>>*       campo ind_excluido do parlamentar cujo o cod_parlamentar* 
>>*       é recebido.                                             *
>>*   Argumentos: cod_parlamentar : int - o código do parlamentar *
>>*       a ser escluído.                                         *
>>*   Retorno: Atribuição do flag ind_excluido do parlamentar e   *
>>*       redirecionamento para a página de parlamentares.        *
>>*   Michael S. Onishi / Daniel C. Azevedo em 01-03-2001.        *
>>*****************************************************************
>></dtml-comment>
>>
>><dtml-call expr="REQUEST.set('id_documento', _.str(cod_parlamentar)+'_'+sapl.imagens.fotos.nom_documento)">
>>
>><dtml-in expr="sapl.imagens.fotos.objectValues('Image')">
>>  <dtml-if expr="id() == id_documento">
>>    <dtml-try>  
>>      <dtml-call "sapl.imagens.fotos.manage_delObjects(id_documento)">
>>    <dtml-except>
>>      <dtml-call "REQUEST.set('erro', 1)">       
>>    </dtml-try>      
>>  </dtml-if>
>></dtml-in>
>>
>><dtml-unless erro>
>>  <dtml-comment> exclui o parlamentar do cadastro. Luciano De Fázio </dtml-comment>
>>  <dtml-try>
>>    <dtml-call expr="zsql.parlamentar_excluir_zsql(cod_parlamentar = cod_parlamentar)">
>>  <dtml-except>  
>>    <dtml-call "REQUEST.set('erro', 1)">       
>>  <dtml-else>
>>    <dtml-let mensagem="'Parlamentar excluído com sucesso.'" sucesso="1">
>>      <dtml-var mensagem_emitir>
>>    </dtml-let>
>>  </dtml-try> 
>></dtml-unless>
>>
>><dtml-if erro>
>>  <dtml-let mensagem="'Não foi possível excluir o Parlamentar. Tente novamente!'">
>>    <dtml-var mensagem_emitir>
>>  </dtml-let>
>></dtml-if>
>>
>>______________________________________________________________________
>>
>><dtml-comment>
>>*****************************************************************
>>*    Abaixo, declara-se três documentos com os códigos fontes de*
>>*  funções em JavaScript usadas neste formulário. Essas funções *
>>*  estão em outros documentos por serem de uso genérico usadas  *
>>*  em vários formulários.                                       *
>>*****************************************************************
>></dtml-comment>
>>
>><SCRIPT LANGUAGE = "JavaScript" src="javascript/data_validar_jvsc"></SCRIPT>
>><SCRIPT LANGUAGE = "JavaScript" src="javascript/cpf_validar_jvsc"></SCRIPT>
>><SCRIPT LANGUAGE = "JavaScript" src="javascript/email_validar_jvsc"></SCRIPT>
>><dtml-comment>
>>*****************************************************************
>>*   Abaixo, declaram-se três funções em JavaScript usadas apenas*
>>*  neste formulário.                                            *
>>*****************************************************************
>></dtml-comment>
>>
>><SCRIPT LANGUAGE = "JavaScript">
>><!--
>>   function submeter(endereco){
>>      /*-----------------------------
>>         Função: Confirma se o usuário deseja salvar os dados ao clicar em
>>               link do formulário que não os botões SALVAR ou EXCLUIR.
>>         Argumentos: form : formulário - é o formulário em si.
>>                     endereco : txt - é o endereço que deve ser renderizado
>>                     apos a confirmação ou não de salvar os dados. 
>>         Retorno: Uma janela de confirmação. Se o usuário confirmar, ele 
>>                invoca o método parlamentar_salvar_proc.
>>                Se ele cancelar, a função apenas renderiza o endereço
>>                (caso esteja na atualizacao).
>>         Michael Onishi , Daniel C. Azevedo em 23/02/01.
>>      ------------------------------*/
>>      var form = document.parlamentar_form;
>>
>>      endereco += '?&cod_parlamentar=' + form.hdn_cod_parlamentar.value; 
>>
>>      if (form.hdn_alterou.value == 1) {  
>>         if (confirm("Deseja salvar os dados?")){
>>            form.hdn_url.value = endereco;
>>            campos_criticar(form);
>>            return;
>>         }
>>      }
>>
>>      if (form.hdn_cod_parlamentar.value != ""){
>>         location.href = endereco;
>>      }
>>      return;           
>>   }  
>>
>>  function campos_criticar(form){
>>      /*-----------------------------
>>         Função: Critica os campos obrigatórios do formulário. É chamada
>>                ou pela função submeter acima ou pelo botão btn_parlamentar_salvar
>>                do formulário para validação dos campos.
>>         Argumentos: form : formulário - é o formulário em si.
>>         Retorno: Invoca o SUBMIT do formulário ou retorna valor booleano 
>>                falso ,caso haja algum campo incorreto, juntamente com uma
>>                uma mensagem de erro e o cursor no campo a ser corrigido.
>>         Michael Onishi , Daniel C. Azevedo em 23/02/01.
>>      ------------------------------*/ 
>>           
>>      if (form.txt_nom_parlamentar.value==""){
>>          alert("O nome do Parlamentar deve ser preenchido!");
>>          form.txt_nom_parlamentar.focus();
>>          return false;
>>      }
>>        
>>      if (form.txt_nom_completo.value == "") {
>>         alert("O nome completo deve ser preenchido!");
>>         form.txt_nom_completo.focus();
>>         return false;
>>      } 
>>
>>      if (form.file_nom_imagem.value != "") {
>>         form.hdn_file.value = 1;
>>      }
>>
>>      if (!(form.rad_sex_parlamentar[0].checked ||
>>            form.rad_sex_parlamentar[1].checked)){
>>         alert("O sexo do parlamentar deve ser preenchido!");
>>         form.rad_sex_parlamentar[0].focus();
>>         return false;
>>      }
>>
>>     /*--- comentada pela Man Qi em 16/11/02 ---
>>      if (form.txt_dat_nascimento.value == "") {
>>         alert("Data de nascimento deve ser preenchida!");
>>         form.txt_dat_nascimento.focus();
>>         return false;
>>      }
>>      ----------------------------------------*/
>>
>>      if (form.txt_dat_nascimento.value != "" && !IsValidDate(form.txt_dat_nascimento.value)){
>>         alert("Digite uma data de nascimento válida!");
>>         form.txt_dat_nascimento.focus();
>>         form.txt_dat_nascimento.select();
>>         return false;
>>      }           
>>
>>      /*-----------------------------
>>      if (form.txt_num_cpf.value == "") {
>>         alert("O campo cpf deve ser preenchido!");
>>         form.txt_num_cpf.focus();
>>         return false;
>>      } 
>>      -----------------------------*/
>>      
>>      if (form.txt_num_cpf.value != "" && !cpf_validar(form.txt_num_cpf.value)){
>>         alert("Digite um cpf válido!");
>>         form.txt_num_cpf.focus();
>>         form.txt_num_cpf.select();
>>         return false;       
>>      }
>>
>>     /*--- comentada pela Man Qi em 16/11/02 ---
>>      if (form.txt_num_rg.value == "") {
>>         alert("O campo RG deve ser preenchido!");
>>         form.txt_num_rg.focus();
>>         return false;
>>      } 
>>
>>
>>      if (form.txt_num_tit_eleitor.value == "") {
>>         alert("O campo Nº. Título Eleitor deve ser preenchido!");
>>         form.txt_num_tit_eleitor.focus();
>>         return false;
>>      } 
>>      ----------------------------------------*/
>>
>>      if (form.txt_end_email.value != "" &&
>>           !email_validar(form.txt_end_email.value)) {
>>         alert("Digite um e-mail válido!");
>>         form.txt_end_email.focus();
>>         form.txt_end_email.select();
>>         return false;
>>      }
>>
>>     /*--- comentada pela Man Qi em 16/11/02 ---
>>      if (form.txt_end_residencial.value == "") {
>>         alert("O campo Endereço Residencial deve ser preenchido!");
>>         form.txt_end_residencial.focus();
>>         return false;
>>      } 
>>
>>      if (form.txt_num_cep_resid.value == "") {
>>         alert("O campo Cep deve ser preenchido!");
>>         form.txt_num_cep_resid.focus();
>>         return false;
>>      } 
>>
>>      if (form.txt_municipio.value == "" || form.lst_sgl_uf.selectedIndex == 0) {
>>         alert("Os campos Município e UF devem ser preenchidos!");
>>         form.btn_localidade.focus();
>>         return false;
>>      } 
>>      ----------------------------------------*/
>>
>>      /*--- acrescentada pela Man Qi em 16/11/02 ---*/
>>      if (form.txt_municipio.value == "" && form.lst_sgl_uf.selectedIndex != 0) {
>>         alert("O campo Município deve ser preenchido uma vez que UF está preenchido!");
>>         form.txt_municipio.focus();
>>         return false;
>>      } 
>>
>>      /*--- acrescentada pela Man Qi em 16/11/02 ---*/
>>      if (form.txt_municipio.value != "" && form.lst_sgl_uf.selectedIndex == 0) {
>>         alert("O campo UF deve ser preenchido uma vez que Município está preenchido!");
>>         form.lst_sgl_uf.focus();
>>         return false;
>>      } 
>>
>>      if (!(form.rad_ind_ativo[0].checked || 
>>            form.rad_ind_ativo[1].checked)){
>>         alert("A opção 'Ativo na Casa' deve ser preenchida!"); 
>>         return false;
>>      }
>>      return form.submit();
>>    }
>>
>>  function parlamentar_excluir(){
>>      /*-----------------------------
>>         Função: Chama o Método DTML de exclusão do parlamanetar
>>         Argumentos: ().
>>         Retorno: Retorna uma mensagem de exclusão bem sucessida e
>>                redireciona à página 'index_html'.
>>         Michael Onishi , Daniel C. Azevedo em 23/02/01.
>>      ------------------------------*/
>>       
>>       if (confirm("Deseja realmente excluir?")) {
>>          location.href="parlamentar_excluir_proc?cod_parlamentar=<dtml-var cod_parlamentar missing>";
>>       }
>>       return; 
>>  } 
>>
>>  function localidade_mostrar(form) {
>>     /*-----------------------------
>>         Função: Abre uma janela com uma lista de municípios para o
>>                 usuário escolher.
>>         Argumentos: form : fomulário - o formulário em si.
>>         Retorno: Atribui o nome do Município no 'value' do campo do form.
>>         Michael Onishi , Daniel C. Azevedo em 23/02/01.
>>      ------------------------------*/
>>
>>     if (form.txt_municipio.value=="") {
>>        alert("Preencha parte do município!");
>>        form.txt_municipio.focus();
>>        return false;
>>     }
>>
>>     if (form.lst_sgl_uf.selectedIndex==0) {
>>        alert("Selecione uma UF!");
>>        form.lst_sgl_uf.focus();
>>        return false;
>>     }
>>     
>>     var municipio = form.txt_municipio.value;
>>     var sgl_uf = form.lst_sgl_uf[form.lst_sgl_uf.selectedIndex].value;
>>
>>     var municipio_pesq = municipio.toUpperCase();
>>     municipio_pesq = municipio_pesq.replace(/Ã|Â|Á|À/g, 'A');
>>     municipio_pesq = municipio_pesq.replace(/É|Ê|È/g,'E');   
>>     municipio_pesq = municipio_pesq.replace(/Í|Ì|Î|Ï/g, 'I');
>>     municipio_pesq = municipio_pesq.replace(/Õ|Ô|Ó|Ò/g, 'O');
>>     municipio_pesq = municipio_pesq.replace(/Ú|Ù|Û|Ü/g, 'U');
>>
>>
>>     var url="municipio_listar_form?municipio=" + municipio +
>>              "&municipio_pesq=" + municipio_pesq + "&sgl_uf=" + sgl_uf;
>>     MunicipioWin = window.open(url , "MunicipioWin", "width=350,height=250,resizable=0");
>>     return;
>>  } 
>>   
>>//-->
>></SCRIPT>
>>
>><dtml-comment>
>>******************************************************************
>>*     Abaixo, tem-se o código HTML do formulário. Em cada INPUT, *
>>*  o VALUE está atribuido para uma tag DTML-VAR que tenta buscar * 
>>*  o valor do campo no namespace.                                *
>>*     Para os SELECT e INPUT do tipo RADIO, a busca do valor se  *
>>*  faz com o uso de DTML-IF.                                     *
>>*     Os três primeiros INPUT são do tipo hidden por serem trans-*
>>*  parentes ao usuário.                                          *
>>******************************************************************
>></dtml-comment>
>><dtml-var standard_html_header>
>>
>><body bgcolor="#FFFFFF">
>><form name="parlamentar_form" method="post" action="parlamentar_salvar_proc" enctype="multipart/form-data">
>>  <input type="hidden" name="hdn_cod_parlamentar" value="<dtml-var cod_parlamentar missing>">
>>  <input type="hidden" name="hdn_cod_casa" value="<dtml-var cod_casa missing>">
>>  <input type="hidden" name="hdn_url" value="parlamentar_mostrar_proc?cod_parlamentar=<dtml-var cod_parlamentar missing>">
>>  <input type="hidden" name="hdn_alterou" value=0>
>>
>>
>><table width="95%" border="0" cellspacing="0" cellpadding="0" align="center">
>>  <tr bgcolor="#CCCCCC"> 
>>    <td width="35%" align="left" class="form-label">| <a href="javascript:submeter('<dtml-var URL1>/mandato/index_html')">  
>>      Mandatos </a> |</td>
>>    <td width="30%" align="center" class="form-label">| <a href="javascript:submeter('<dtml-var URL1>/filiacao_partidaria/index_html')">
>>      Filiações Partid&aacute;rias </a> |</td>
>>    <td width="35%" align="right" class="form-label">| <a href="javascript:submeter('<dtml-var URL1>/dependente/index_html')"> 
>>     Dependentes</a> |</td>
>>  </tr>
>></table>
>><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>            <tr><td height="10"></td></tr></table>
>><table width="95%" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#CCCCCC">
>>  <tr align="center"> 
>>    <td> 
>>      <table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
>>        <tr bgcolor="#CCCCCC"> 
>>          <td colspan="3" class="form-label">&nbsp;Parlamentar</td>
>>        </tr>
>>        <tr align="left" height="60">
>>          <td colspan="2" class="form-element">Nome Parlamentar<br>
>>            <input type="text" name="txt_nom_parlamentar" value="<dtml-var nom_parlamentar missing>" size="50" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="40%" align="center" class="form-text"><b>Ativo na Casa?</b><br>
>>            <dtml-in expr="[(1,'Sim'),(0,'Não')]">
>>              <input type="radio" name="rad_ind_ativo" value="<dtml-var expr="_['sequence-key']">" 
>>                     <dtml-if expr="_.has_key('cod_parlamentar') and ind_ativo==_['sequence-key']"> checked=1
>>                     </dtml-if> onChange="javascript:form.hdn_alterou.value=1">
>>                     <dtml-var expr="_['sequence-item']">
>>            </dtml-in></td>
>>        </tr>
>>        <tr align="left" height="45">
>>          <td colspan="3" class="form-element">Nome Completo<br>
>>            <input type="text" name="txt_nom_completo" value="<dtml-var nom_completo missing>" size="50" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr> 
>>          <tr height="40"> 
>>             <td colspan="4" class="form-element">Fotografia<br>
>>             <input type="file" name="file_nom_imagem" size="40" maxlength="100">
>>               <input type="hidden" name="hdn_file" value=0></td>
>>          </tr>
>>        <tr align="left"  height="45">
>>          <dtml-if expr="pysc.browser_verificar_pysc(HTTP_USER_AGENT)"> 
>>             <td width="25%" class="form-element">Partido<br>
>>             <input type="text" name="txt_partido" size="9" value="<dtml-var sgl_partido missing null="">" disabled>
>>          <dtml-elif sgl_partido>
>>             <td width="25%" class="form-text"><b>Partido</b><br>
>>             &nbsp;&nbsp;&nbsp;&nbsp;<span class="form-optional"><dtml-var sgl_partido missing null=""></span>
>>          <dtml-else><td width="25%"><font size="1">&nbsp;
>>          </dtml-if></td>
>>          <td width="35%" class="form-text"><b>Sexo</b><br>
>>            <dtml-in expr="['Masculino', 'Feminino']">
>>              <input type="radio" name="rad_sex_parlamentar" value="<dtml-var expr="_['sequence-item'][0]">" 
>>                     <dtml-if expr="_.has_key('cod_parlamentar') and sex_parlamentar==_['sequence-item'][0]"> checked=1
>>                     </dtml-if> onChange="javascript:form.hdn_alterou.value=1"> 
>>              <dtml-var expr="_['sequence-item']">
>>            </dtml-in></td>
>>          <td width="40%" class="form-text"><b>Data Nascimento</b><br>
>>            <input type="text" name="txt_dat_nascimento" value="<dtml-var dat_nascimento missing null="">" size="10" maxlength="10" onChange="javascript:form.hdn_alterou.value=1">
>>            <span class="nota">(dd/mm/aaaa)</span></td>
>>        </tr>
>>        <tr align="left" height="45"> 
>>          <td width="25%" class="form-element">C.P.F<br>
>>            <input type="text" name="txt_num_cpf" value="<dtml-var num_cpf missing>" size="14" maxlength="14" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="35%" class="form-element">R.G.<br>
>>            <input type="text" name="txt_num_rg" value="<dtml-var num_rg missing>" size="15" maxlength="15" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="40%" class="form-element">T&iacute;tulo de Eleitor<br>
>>            <input type="text" name="txt_num_tit_eleitor" value="<dtml-var num_tit_eleitor missing>"  size="15" maxlength="15" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr align="left"  height="45"> 
>>          <td width="25%" class="form-element">Situa&ccedil;&atilde;o Militar<br>
>>            <select name="lst_tip_situacao_militar" size="1" onChange="javascript:form.hdn_alterou.value=1">
>>                 <option></option>
>>              <dtml-in expr="zsql.tipo_situacao_militar_obter_zsql()">             
>>                 <option 
>>                    <dtml-if expr="tip_situacao_militar==parlamentar_form.tip_situacao_militar and _.has_key('cod_parlamentar')">
>>                        selected 
>>                    </dtml-if>
>>                    value="<dtml-var tip_situacao_militar>"><dtml-var des_tipo_situacao>
>>                 </option>
>>              </dtml-in>
>>            </select></td>
>>          <td width="35%" class="form-element">N&iacute;vel Instru&ccedil;&atilde;o<br>
>>            <select name="lst_cod_nivel_instrucao" size="1" onChange="javascript:form.hdn_alterou.value=1">
>>                 <option></option>
>>              <dtml-in expr="zsql.nivel_instrucao_obter_zsql()">
>>                 <option  
>>                    <dtml-if expr="_.has_key('cod_parlamentar') and cod_nivel_instrucao==parlamentar_form.cod_nivel_instrucao"> 
>>                        selected
>>                    </dtml-if>
>>                    value="<dtml-var cod_nivel_instrucao>"><dtml-var des_nivel_instrucao>
>>                 </option>
>>              </dtml-in>
>>            </select></td>
>>          <td width="40%" class="form-element">Profiss&atilde;o<br>
>>            <input type="text" name="txt_nom_profissao" value="<dtml-var nom_profissao missing>" size="25" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr align="left"  height="45"> 
>>          <td colspan="3" class="form-element">HomePage<br>
>>            <input type="text" name="txt_end_web" value="<dtml-var end_web missing>" size="60" maxlength="100" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr  height="45">   
>>          <td colspan="3" class="form-element">Correio Eletr&ocirc;nico<br>
>>            <input type="text" name="txt_end_email" value="<dtml-var end_email missing>" size="60" maxlength="100" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr align="left" height="45"> 
>>          <td width="25%" class="form-element">N&ordm; Gabinete<br>
>>            <input type="text" name="txt_num_gab_parlamentar" value="<dtml-var num_gab_parlamentar missing>" size="10" maxlength="10" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="35%" class="form-element">Telefone<br>
>>            <input type="text" name="txt_num_tel_parlamentar" value="<dtml-var num_tel_parlamentar missing>" size="20" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="40%" class="form-element">Fax<br>
>>            <input type="text" name="txt_num_fax_parlamentar" value="<dtml-var num_fax_parlamentar missing>" size="20" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr align="left" height="45"> 
>>          <td colspan="2" valign="top" class="form-element">Endere&ccedil;o Residencial<br>
>>            <input type="text" name="txt_end_residencial" value="<dtml-var end_residencial missing>" size="35" maxlength="100" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="40%" class="form-element">CEP<br>
>>            <input type="text" name="txt_num_cep_resid" value="<dtml-var num_cep_resid missing>" size="9" maxlength="9" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr align="left" height="45"> 
>>          <td colspan="2" class="form-element">Munic&iacute;pio<br>
>>            <input type="text" name="txt_municipio" value="<dtml-if cod_localidade_resid><dtml-var nom_localidade missing null=""></dtml-if>" size="35" maxlength="50" onChange="javascript:form.hdn_alterou.value=1">
>>            <input type="button" name="btn_localidade" value=" ? " onClick="localidade_mostrar(document.parlamentar_form)"></td>
>>          <td width="40%" class="form-element">UF<br>
>>            <select name="lst_sgl_uf" size="1" onChange="javascript:form.hdn_alterou.value=1">
>>                <option></option>
>>              <dtml-in expr="zsql.localidade_obter_zsql(tip_localidade='U')">
>>                <option 
>>                  <dtml-if expr="sgl_uf==parlamentar_form.sgl_uf and _.has_key('cod_parlamentar')">
>>                      selected 
>>                  </dtml-if>
>>                  value="<dtml-var sgl_uf>"><dtml-var sgl_uf>
>>                </option>
>>              </dtml-in>
>>            </select></td>
>>        </tr>
>>        <tr align="left" height="45"> 
>>          <td colspan="2" class="form-element">Telefone<br>
>>            <input type="text" name="txt_num_tel_resid" value="<dtml-var num_tel_resid missing>" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>          <td width="40%" class="form-element">Fax<br>
>>            <input type="text" name="txt_num_fax_resid" value="<dtml-var num_fax_resid missing>" maxlength="50" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>        <tr align="left" height="45"> 
>>          <td colspan="3" class="form-element">Locais de Atua&ccedil;&atilde;o<br>
>>            <input type="text" name="txt_des_local_atuacao" value="<dtml-var des_local_atuacao missing>" size="60" maxlength="100" onChange="javascript:form.hdn_alterou.value=1"></td>
>>        </tr>
>>      </table>
>>      <br>
>>   
>><dtml-comment>
>>******************************************************************
>>*   Abaixo estão os dois últimos INPUT do formulário. O primeiro *
>>* que executa a função em JAVASCRIPT para validação de alguns    *
>>* campos, inclusive todos os obrigatórios. O outro está encarre- *
>>* gado de excluir o parlamentar. Esse botão aparecerá no formu-  *
>>* lário somente se ele for chamado com os dados de um parlamentar* 
>>*   O botão executa uma função em JAVASCRIPT para chamar o Método* 
>>* DTML responsável pela exclusão do parlamentar.                 *
>>******************************************************************
>></dtml-comment>
>>
>>      <input type="button" name="btn_parlamentar_salvar" value="Salvar" onClick="campos_criticar(document.parlamentar_form)">
>>      <dtml-if cod_parlamentar>
>>         &nbsp;&nbsp;<input type="button" name="btn_parlamentar_excluir" value="Excluir" onClick="parlamentar_excluir()">
>>      <dtml-else> <input type="hidden" name="hdn_num_leg" value="<dtml-var lst_num_legislatura>">
>>      </dtml-if>
>>      <br>
>>    </td>
>>  </tr>
>></table>
>></form>
>>
>><dtml-var standard_html_footer>
>>
>>______________________________________________________________________
>>
>><dtml-var standard_html_header>
>>
>><body bgcolor="#FFFFFF">
>><table width="95%" border="0" cellspacing="0" cellpadding="0" align="center">
>>  <tr bgcolor="#9EBEDE"> 
>>    <td width="35%" align="left" class="form-element">
>>      | <a href="<dtml-var URL1>/mandato/index_html?cod_parlamentar=<dtml-var cod_parlamentar>">Mandatos</a> |</td>
>>    <td width="30%" align="center" class="form-element"> 
>>      | <a href="<dtml-var URL1>/filiacao_partidaria/index_html?cod_parlamentar=<dtml-var cod_parlamentar>">
>>      Filia&ccedil;&atilde;o partid&aacute;rias</a> |</td>
>>    <td width="35%" align="right" class="form-element">
>>      | <a href="<dtml-var URL1>/dependente/index_html?cod_parlamentar=<dtml-var cod_parlamentar>">
>>      Dependentes</a> | </td>
>>  </tr>
>></table>
>><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>            <tr><td height="10"></td></tr></table>
>><table width="95%" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="9EBEDE">
>><tr>
>><td>
>><table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
>>        <tr align="left" bgcolor="#9EBEDE"> 
>>          <td colspan="3" class="form-label">&nbsp;Dados Pessoais</td>
>>        </tr>
>>  <tr>
>>    <td width="10%" align="left">
>>             <dtml-in expr="sapl.imagens.fotos.objectValues('Image')">
>>                  <dtml-if expr=" _.str(cod_parlamentar)+'_'+sapl.imagens.fotos.nom_documento == id() ">
>>                    <img src="<dtml-var absolute_url>">
>>                  </dtml-if>
>>             </dtml-in>
>>    </td>
>>    <td width="100%">
>>      <table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>        <tr align="left" height="17">
>>          <td colspan="2" class="form-text">&nbsp;Nome Parlamentar: <b>&nbsp;<dtml-var nom_parlamentar></b></td>
>>          <td width="28%" class="form-text">Partido: <b>&nbsp;<dtml-var sgl_partido missing null=""></b></td>
>>        </tr>
>>        <tr height="17">
>>          <td colspan="3" class="form-text">&nbsp;Nome Completo: <b>&nbsp;<dtml-var nom_completo></b></td>
>>        </tr>
>>        <tr height="17">
>>          <td width="40%" class="form-text">&nbsp;Data Nascimento: <b><dtml-var dat_nascimento missing null=""></b></td>
>>          <td width="32%" class="form-text">Sexo: <b>&nbsp;<dtml-if expr="sex_parlamentar == 'M'">
>>            Masculino<dtml-else> Feminino</dtml-if></b> </td>
>>          <td width="28%" class="form-text">C.P.F: <b>&nbsp;<dtml-var num_cpf missing></b></td>
>>        </tr>
>>        <tr height="17">
>>          <td width="40%" class="form-text">&nbsp;Profiss&atilde;o: <b>&nbsp;<dtml-var nom_profissao missing></b></td>
>>          <td width="35%" class="form-text">T&iacute;tulo de Eleitor: <b>&nbsp;<dtml-var num_tit_eleitor missing></b></td>
>>          <td width="25%" class="form-text">R.G.: <b>&nbsp;<dtml-var num_rg missing></b></td>
>>        </tr>
>>      </table>
>>    </td>
>>  </tr>
>></table>
>><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>            <tr><td height="10"></td></tr></table>
>><table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
>>   <tr align="left" bgcolor="#9EBEDE"> 
>>     <td colspan="3" class="form-label">&nbsp; Gabinete</td>
>>   </tr>
>>   <tr height="17"> 
>>     <td width="45%" class="form-text">&nbsp; Sala: <b>&nbsp;<dtml-var num_gab_parlamentar missing></b></td>
>>     <td width="30%" class="form-text">Telefone: <b>&nbsp;<dtml-var num_tel_parlamentar missing></b></td>
>>     <td width="25%" class="form-text">Fax: <b>&nbsp;<dtml-var num_fax_parlamentar missing></b></td>
>>   </tr>
>>  </table>
>><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>            <tr><td height="10"></td></tr></table>
>><table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
>>    <tr align="left" bgcolor="#9EBEDE"> 
>>      <td colspan="2" class="form-label">&nbsp; Endere&ccedil;o Residencial</td>
>>    </tr>
>>    <tr height="17"> 
>>       <td width="70%" class="form-text"><b>&nbsp;&nbsp;<dtml-var end_residencial missing></b></td>
>>       <td width="30%" class="form-text">Cep: &nbsp;<b><dtml-var num_cep_resid missing></b></td>
>>    </tr>
>>    <tr>
>>       <td colspan="2" class="form-text">
>>       <dtml-if cod_localidade_resid>
>>         <dtml-in expr="zsql.localidade_obter_zsql(cod_localidade=cod_localidade_resid)">
>>         &nbsp;&nbsp;<b><dtml-var nom_localidade> - <dtml-var sgl_uf></b>
>>         </dtml-in>
>>       </dtml-if>
>>       </td>
>>    </tr>
>></table> 
>><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>            <tr><td height="10"></td></tr></table>
>><table width="98%" border="0" cellspacing="0" cellpadding="0" align="center">
>>   <tr align="left" bgcolor="#9EBEDE"> 
>>      <td colspan="2" class="form-label">&nbsp; Outras Informa&ccedil;&otilde;es</td>
>>   </tr>
>>   <tr height="17"> 
>>      <td width="70%" class="form-text">&nbsp;&nbsp;Locais de Atua&ccedil;&atilde;o: <b>&nbsp;<dtml-var des_local_atuacao missing></b></td>
>>      <td width="30%" class="form-text">Ativo na Casa: <b>&nbsp;<dtml-if expr="ind_ativo == 1">
>>          SIM
>>       <dtml-else>
>>        NÃO</b>
>>      </dtml-if></td>
>>    </tr>
>>    <tr>
>>      <td colspan="2" class="form-text">&nbsp;&nbsp;E-mail: <b>&nbsp;<dtml-var end_email missing></b></td>
>>    </tr>
>>    <tr>
>>      <td colspan="2" class="form-text">&nbsp;&nbsp;Homepage: <b>&nbsp;<dtml-var end_web missing></b></td>
>>
>>   </tr>
>> </table>
>><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center">
>>            <tr><td height="10"></td></tr></table></td>
>></tr>
>></table>
>><br>
>>
>> <dtml-var standard_html_footer>
>>
>>______________________________________________________________________
>>
>><dtml-comment>
>>*****************************************************************
>>*   Função: Salvar os dados do parlamentar vindos do formulário,*
>>*        seja em UPDATE dos dados ou na INCLUSÃO de um novo par-*
>>*        lamentar.                                              *
>>*   Argumentos: [hdn_cod_parlamentar: int]. Argumento opcional  *
>>*        que determina se esse método vai salvar ou atualizar os*
>>*        dados do parlamentar.                                  *
>>*   Retorno: Mensagem de sucesso ou erro.                       *
>>*   Michael ONishi / Daniel C. Azevedo em 14-02-2001.           *
>>*****************************************************************
>></dtml-comment>
>>
>><dtml-call expr="REQUEST.set('cod_localidade_resid', '')">
>><dtml-if expr="txt_municipio!='' and lst_sgl_uf!=''">
>>  <dtml-in expr="zsql.localidade_obter_zsql(sgl_uf = lst_sgl_uf, tip_localidade='M', nom_localidade_pesq=txt_municipio)">
>>     <dtml-call expr="REQUEST.set('cod_localidade_resid', cod_localidade)">
>>  <dtml-else>
>>     <dtml-let mensagem="'A localidade especificada não existe.'">
>>          <dtml-var mensagem_emitir>
>>     </dtml-let>
>>     <dtml-call expr="REQUEST.set('erro', 1)">
>>  </dtml-in>
>></dtml-if>
>>
>><dtml-if hdn_cod_parlamentar>
>>    <dtml-call expr="REQUEST.set('metodo', zsql.parlamentar_atualizar_zsql)">
>>
>>    <dtml-comment>
>>    <dtml-if expr="zsql.parlamentar_obter_zsql(ncod_parlamentar=hdn_cod_parlamentar, num_cpf=txt_num_cpf, ind_excluido=0)">
>>       <dtml-let mensagem="'Já existe alguém com este CPF.'">
>>          <dtml-var mensagem_emitir>
>>        </dtml-let>
>>       <dtml-call expr="REQUEST.set('erro', 1)">
>>    <dtml-else>
>>      <dtml-call expr="REQUEST.set('metodo', zsql.parlamentar_atualizar_zsql)">
>>    </dtml-if>
>>    </dtml-comment>
>>
>><dtml-else>
>>    <dtml-call expr="REQUEST.set('metodo', zsql.parlamentar_incluir_zsql)">
>>
>>    <dtml-comment>
>>    <dtml-if expr="zsql.parlamentar_obter_zsql(num_cpf=txt_num_cpf, ind_excluido=0)">
>>        <dtml-let mensagem="'Já existe alguém com este CPF.'">
>>          <dtml-var mensagem_emitir>
>>        </dtml-let>
>>       <dtml-call expr="REQUEST.set('erro', 1)">
>>    <dtml-else>
>>      <dtml-call expr="REQUEST.set('metodo', zsql.parlamentar_incluir_zsql)">
>>    </dtml-if>
>>    </dtml-comment>
>>
>></dtml-if>
>>
>><dtml-unless erro>
>><dtml-try>
>>  <dtml-call expr="metodo(  
>>        cod_parlamentar = hdn_cod_parlamentar,    
>>        nom_parlamentar = txt_nom_parlamentar,
>>        nom_completo = txt_nom_completo,
>>        sex_parlamentar = rad_sex_parlamentar,
>>        dat_nascimento = pysc.data_converter_pysc(data=txt_dat_nascimento),
>>        num_cpf = txt_num_cpf,
>>        num_rg = txt_num_rg,
>>        num_tit_eleitor = txt_num_tit_eleitor,
>>        tip_situacao_militar = lst_tip_situacao_militar,
>>        cod_nivel_instrucao = lst_cod_nivel_instrucao,
>>        nom_profissao = txt_nom_profissao,
>>        end_web = txt_end_web,
>>        end_email = txt_end_email,
>>        num_gab_parlamentar = txt_num_gab_parlamentar,
>>        num_tel_parlamentar = txt_num_tel_parlamentar,
>>        num_fax_parlamentar = txt_num_fax_parlamentar,
>>        cod_casa = hdn_cod_casa,
>>        end_residencial = txt_end_residencial,
>>        num_cep_resid = txt_num_cep_resid,
>>        cod_localidade_resid = cod_localidade_resid,
>>        num_tel_resid = txt_num_tel_resid,
>>        num_fax_resid = txt_num_fax_resid,
>>        des_local_atuacao = txt_des_local_atuacao,
>>        ind_ativo = rad_ind_ativo
>>  )">
>><dtml-except>
>>    <dtml-let mensagem="'Houve um erro no banco de dados.'">
>>        <dtml-var mensagem_emitir>
>>    </dtml-let>
>><dtml-else>
>>
>>  <dtml-if expr="hdn_url[-1:]=='='">
>>    <dtml-comment>
>>    <dtml-in expr="zsql.parlamentar_obter_zsql(num_cpf=txt_num_cpf, ind_excluido=0)"></dtml-in>
>>    </dtml-comment>
>>
>>    <dtml-in expr="zsql.parlamentar_incluido_codigo_obter_zsql()">
>>      <dtml-call expr="REQUEST.set('cod_parlamentar', _.str(_.int(cod_parlamentar)))">
>>    </dtml-in>
>>  </dtml-if>
>>
>>  <dtml-comment>
>>  ***************************************************************
>>  *    Temos, a seguir, um teste para saber se é uma inclusão ou*
>>  *  não. Se forem, cadastra-se um mandato para esse parlamentar*
>>  *  na legislatura atual. Caso contrário, segue-se.            *
>>  ***************************************************************
>> </dtml-comment>
>>
>><dtml-comment> salva o arquivo da fotografia do parlamentar. Luciano De Fázio (Câmara Mun. Catanduva - SP) - baseado em função original de Man Qi </dtml-comment>
>>      <dtml-call expr="REQUEST.set('existe_arquivo', 0)">       
>>
>>      <dtml-if expr="(_.int(hdn_file)==1)">
>>        <dtml-if hdn_cod_parlamentar>
>>          <dtml-call expr="REQUEST.set('id_documento', _.str(hdn_cod_parlamentar)+'_'+sapl.imagens.fotos.nom_documento)">
>>
>>          <dtml-in expr="sapl.imagens.fotos.objectValues('Image')">
>>            <dtml-if expr="id() == id_documento">
>>              <dtml-call expr="REQUEST.set('existe_arquivo', 1)">             
>>              <dtml-try>
>>              <dtml-call "sapl.imagens.fotos.manage_delObjects(id_documento)">
>>              <dtml-except>
>>              <dtml-else>
>>              <dtml-call "sapl.imagens.fotos.manage_addImage(id_documento, file=file_nom_imagem)"> 
>>                <dtml-call expr="REQUEST.set('erro1', 1)">          
>>              </dtml-try>
>>            </dtml-if>
>>          </dtml-in>
>>             
>>        <dtml-else>
>>          <dtml-in expr="zsql.parlamentar_incluido_codigo_obter_zsql()">
>>            <dtml-call expr="REQUEST.set('id_documento', _.str(cod_parlamentar)+'_'+sapl.imagens.fotos.nom_documento)">
>>          </dtml-in>
>>        </dtml-if>
>>
>>        <dtml-if "not existe_arquivo">
>>          <dtml-try>
>>            <dtml-call "sapl.imagens.fotos.manage_addImage(id_documento, file=file_nom_imagem)">           
>>          <dtml-except>
>>            <dtml-call expr="REQUEST.set('erro1', 1)">             
>>          </dtml-try>     
>>        </dtml-if>
>>      </dtml-if>
>>
>>  <dtml-if expr="(metodo==zsql.parlamentar_incluir_zsql)">
>>    <dtml-call expr="REQUEST.set('hdn_url', 'mandato_salvar_proc?cod_parlamentar=' + cod_parlamentar + '&num_leg='+hdn_num_leg)">
>>    <dtml-let mensagem="'Parlamentar salvo com sucesso. <br>Será incluído um mandato para esse parlamentar na '+hdn_num_leg+'ª legislatura.<br>'" sucesso="1" url=hdn_url>
>>      <dtml-var mensagem_emitir>
>>    </dtml-let> 
>>
>>  <dtml-else>
>>    <dtml-let mensagem="'Parlamentar salvo com sucesso.'" sucesso="1" url=hdn_url>
>>      <dtml-var mensagem_emitir>
>>    </dtml-let>
>>  </dtml-if>
>>
>></dtml-try>
>></dtml-unless>
>>
>>______________________________________________________________________
>>
>>_______________________________________________
>>Gitec mailing list
>>Gitec em listas.interlegis.gov.br
>>http://listas.interlegis.gov.br/mailman/listinfo/gitec
>>    
>>
>
>_______________________________________________
>Gitec mailing list
>Gitec em listas.interlegis.gov.br
>http://listas.interlegis.gov.br/mailman/listinfo/gitec
>  
>

-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : foto_parlamentar.zip
Tipo  : application/zip
Tam   : 9319 bytes
Descr.: não disponível
Url   : http://listas.interlegis.gov.br/pipermail/gitec/attachments/20040820/9dc16440/foto_parlamentar.zip


Mais detalhes sobre a lista de discussão Gitec