associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "VerificadorDeCpfparaZope"

Diferenças entre as versões de 1 e 5 (4 versões de distância)
Revisão 1e 2005-07-05 21:26:40
Tamanho: 1104
Editor: FabioRizzo
Comentário:
Revisão 5e 2005-09-30 03:42:52
Tamanho: 1122
Editor: docles
Comentário:
Deleções são marcadas assim. Adições são marcadas assim.
Linha 6: Linha 6:
#!python
Linha 17: Linha 18:
#Adaptado para o Zope por Fernado Correia e Rodrigo Reis #Adaptado para o Zope por Fernando Correa e Rodrigo Reis
Linha 33: Linha 34:
selfcpf = map(int, cpf) selfcpf = [int(x) for x in cpf]

Conversão do Código de Pedro Werneck em http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCpf .

Este código roda no Zope sem problemas.

   1 ## Script (Python) "valida_CPF"
   2 ##bind container=container
   3 ##bind context=context
   4 ##bind namespace=
   5 ##bind script=script
   6 ##bind subpath=traverse_subpath
   7 ##parameters=cpf
   8 ##title=
   9 ##
  10 #Baseado no Código de Pedro Werneck
  11 #http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCpf
  12 #Adaptado para o Zope por Fernando Correa e Rodrigo Reis
  13 
  14 msg = "CPF/CNPJ incorreto!"
  15 
  16 if not cpf.isdigit():
  17     """ Verifica se o CPF contem pontos e hifens """
  18     cpf = cpf.replace(".", "")
  19     cpf = cpf.replace("-", "")
  20 
  21 
  22 if len(cpf) < 11:
  23     """ Verifica se o CPF tem 11 digitos """
  24 
  25 if len(cpf) > 11:
  26     """ CPF tem que ter 11 digitos """
  27 
  28 selfcpf = [int(x) for x in cpf]
  29 
  30 cpf = selfcpf[:9]
  31 
  32 while len(cpf) < 11:
  33 
  34     r =  sum([(len(cpf)+1-i)*v for i,v in [(x,cpf[x]) for x in range(len(cpf))]]) % 11
  35     
  36     if r > 1:
  37         f = 11 - r
  38     else:
  39         f = 0
  40     cpf.append(f)
  41     
  42        
  43 return bool(cpf == selfcpf)