Verificador de CNPJ para Zope

Publicado por Cleber J Santos 01/12/2008

[ Hits: 7.070 ]

Download VerificadorDeCnpjParaZope.py




Uma mistura do código do amigo Pedro Werneck em http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCpf e do amigo Michel Thadeu Sabchuk em http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCnpj.

O script pode ser utilizado diretamente na ZMI ao invés de ter que criar um External Method ;)

  



Esconder código-fonte

## Script (Python) "valida_CNPJ"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=cnpj
##title=
##

"""
Baseado nos códigos de Pedro Werneck e Michel Thadeu Sabchuk
http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCpf
http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCnpj

Adaptado para o Zope por Cleber J Santos 
http://www.pythonbrasil.com.br/moin.cgi/VerificadorDeCnpjParaZope
"""

cnpj = context.REQUEST.get('cnpj',None)
cnpj_invalidos = [15*str(i) for i in range(10)]


if not cnpj.isdigit():
    """ Verifica se o CPF contem pontos, hifens e Barras """
    cnpj = cnpj.replace(".", "")
    cnpj = cnpj.replace("-", "")
    cnpj = cnpj.replace("/", "")

if (not cnpj) or (len(cnpj) < 14):
   return False

elif cnpj in cnpj_invalidos:
   return False

else:
   """ Pega apenas os 12 primeiros dígitos do CNPJ e gera os 2 dígitos que faltam """
   inteiros = map(int, cnpj)
   novoCnpj = inteiros[:12]

   prod = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
   while len(novoCnpj) < 14:
      r = sum([x*y for (x, y) in zip(novoCnpj, prod)]) % 11
      if r > 1:
         f = 11 - r
      else:
         f = 0
      novoCnpj.append(f)
      prod.insert(0, 6)


   """ Se o número gerado coincidir com o número original, é válido """
   if novoCnpj == inteiros:
      return bool(novoCnpj == inteiros)
   return False

Scripts recomendados

Armazene seus arquivos rapidamente na sua conta GMAIL

Envio e recebimento de arquivos em Python

Navegando em formulários com login e senha

Wgetter

Lista de Tarefas


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts