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 9 (8 versões de distância)
Revisão 1e 2005-07-05 21:26:40
Tamanho: 1104
Editor: FabioRizzo
Comentário:
Revisão 9e 2008-09-26 14:06:22
Tamanho: 1216
Editor: localhost
Comentário: converted to 1.6 markup
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 20: Linha 21:

cpf_invalidos = [11*str(i) for i in range(10)]
if cpf in cpf_invalidos:
    return False
Linha 33: Linha 38:
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 cpf_invalidos = [11*str(i) for i in range(10)]
  17 if cpf in cpf_invalidos:
  18     return False
  19 
  20 if not cpf.isdigit():
  21     """ Verifica se o CPF contem pontos e hifens """
  22     cpf = cpf.replace(".", "")
  23     cpf = cpf.replace("-", "")
  24 
  25 
  26 if len(cpf) < 11:
  27     """ Verifica se o CPF tem 11 digitos """
  28 
  29 if len(cpf) > 11:
  30     """ CPF tem que ter 11 digitos """
  31 
  32 selfcpf = [int(x) for x in cpf]
  33 
  34 cpf = selfcpf[:9]
  35 
  36 while len(cpf) < 11:
  37 
  38     r =  sum([(len(cpf)+1-i)*v for i,v in [(x,cpf[x]) for x in range(len(cpf))]]) % 11
  39     
  40     if r > 1:
  41         f = 11 - r
  42     else:
  43         f = 0
  44     cpf.append(f)
  45     
  46        
  47 return bool(cpf == selfcpf)