Verificador de CNPJ para Zope
Publicado por Cleber J Santos 01/12/2008
[ Hits: 7.471 ]
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 ;)
## 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
hdns - Enumerador de diretórios
hcoin - Preço do Dólar, Bitcoin e Euro em Python
Descubra seu IP através do MeuIP
Nenhum comentário foi encontrado.
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Tentando fazer um "linux ricing" mas falhando miseravelmente... (3)
Elilo e Sofrimento no Slackware (3)
Não consigo instalar as bibliotecas em Python pelo terminal. (1)









