Pular para o conteúdo

Verificador de CNPJ para Zope

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 ;)
Cleber J Santos cleberjsantos
Hits: 7.542 Categoria: Python Subcategoria: Internet
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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 ;)
Download VerificadorDeCnpjParaZope.py Enviar nova versão

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

X-Chat 2 MultiMsg

Tradutor on-line versão Web!!!

2182611819

Preço do Dólar, Bitcoin e Euro em Python

CotDolar - Cotação do dólar em Python

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.