예제 #1
0
def valida_documento(value):
    '''
        Valida CPF e CNPJ dependendo do tamanho do documento passado.
    '''
    if len(value) == 11:
        cpf = CPF()
        try:
            assert cpf.validate(value)
        except AssertionError:
            raise ValidationError(
                {
                    'erro': 'Documento inválido!'
                }
            )
    elif len(value) == 14:
        cnpj = CNPJ()
        try:
            assert cnpj.validate(value)
        except AssertionError:
            raise ValidationError(
                {
                    'erro': 'Documento inválido!'
                }
            )
    else:
        raise ValidationError(
            {
                'erro': 'Documento inválido!'
            }
        )

    return value
예제 #2
0
 def clean_cnpj(self):
     print("tô passando aqui")
     cnpj_digitado = self.cleaned_data.get("cnpj")
     cnpj_validador = CNPJ()
     if not cnpj_validador.validate(cnpj_digitado):
         raise forms.ValidationError("O CNPJ informado não é válido!")
     return cnpj_validador.mask(cnpj_digitado)
예제 #3
0
    def valida(self, documento):

        if len(documento) == 14:
            validador = CNPJ()
            return validador.validate(documento)

        else:
            raise ValueError('Quantdades dígitos inválidos')
예제 #4
0
    def formata_cnpj(self):
        mascara = CNPJ()
        return mascara.mask(self.cnpj)


# class CpfCnpj:
#     #instanciando um objeto para o CPF
#     def __init__(self, documento, tipo_documento):
#         self.tipo_documento = tipo_documento
#         documento = str(documento)
#         if self.tipo_documento == "cpf":
#             if self.cpf_eh_valido(documento):
#                 self.cpf = documento
#             else:
#                 raise ValueError("CPF Inválido!")
#         elif self.tipo_documento == "cnpj":
#             if self.cnpj_e_valido(documento):
#                 self.cnpj = documento
#             else:
#                 raise ValueError("CNPJ Inválido!")
#         else:
#             raise ValueError("Documento inválido!")
#
#
#     #Metodo para imprimir mascara
#     def __str__(self):
#         if self.tipo_documento == 'cpf':
#             return self.format_cpf()
#         else:
#             return self.format_cnpj()
#
#     #CNPJ é válido
#     def cnpj_e_valido(self, cnpj):
#         if len(cnpj) == 14:
#             #instanciando a classe
#             validate_cnpj = CNPJ()
#             return validate_cnpj.validate(cnpj)
#         else:
#             raise ValueError("Quantidade de digitos, inválida!!")
#     #criando metodo para validar o cpf
#     def cpf_eh_valido(self, cpf):
#         if len(cpf) == 11:
#             validador = CPF()
#             return  validador.validate(cpf)
#         else:
#             raise ValueError("Quantidade de digitos, inválida!!")
#
#     #metodo para formatar o CPF
#     def format_cpf(self):
#         mascara = CPF()
#         return mascara.mask(self.cpf)
#
#     #Metodo para formatar o CNPJ
#     def format_cnpj(self):
#         mascara = CNPJ()
#         return mascara.mask(self.cnpj)
예제 #5
0
    def format(self):
        mascara = CNPJ()
        return mascara.mask(self.cnpj)

# class CpfCnpj:

#     def __init__(self, documento, tipo_documento):
#         self.tipo_documento = tipo_documento
#         documento = str(documento)
#         if self.tipo_documento == "cpf":
#             if self.cpf_eh_valido(documento):
#                 self.cpf = documento            
#             else:
#                 raise ValueError("CPF inválido!!")
#         elif self.tipo_documento == "cnpj":
#             if self.cnpj_eh_valido(documento):
#                 self.cnpj = documento            
#             else:
#                 raise ValueError("CNPJ inválido!!")
#         else:
#             raise ValueError("Documento inválido!!")

#     def __str__(self):
#         if self.tipo_documento == "cpf":
#             return self.format_cpf()
#         elif self.tipo_documento == "cnpj":
#             return self.format_cnpj()      
        
        
#     def cpf_eh_valido(self, cpf):
#         if len(cpf) == 11:
#             validator = CPF()
#             return validator.validate(cpf)
#         else:
#             raise ValueError("Quantidade de dígitos inválida!!")

#     def format_cpf(self):
#         # fatia_um = self.cpf[:3]
#         # fatia_dois = self.cpf[3:6]
#         # fatia_tres = self.cpf[6:9]
#         # fatia_quatro = self.cpf[9:]
#         # return ("{}.{}.{}-{}".format(fatia_um, fatia_dois, fatia_tres, fatia_quatro))
#         mascara = CPF()
#         return mascara.mask(self.cpf)

#     def cnpj_eh_valido(self, cnpj):
#         if len(cnpj) == 14:
#             validator = CNPJ()
#             return validator.validate(cnpj)
#         else:
#             raise ValueError("Quantidade de dígitos inválida!!")

#     def format_cnpj(self):        
#         mascara = CNPJ()
#         return mascara.mask(self.cnpj)
예제 #6
0
def validate_cnpj(value):
    value = clean_special_characters(value)
    doc = CNPJ()
    if doc.validate(value):
        raise ValidationError(
            _('%(value)s is not an %(doc_type) valid'),
            params={
                'value': value,
                'doc_type': 'CNPJ'
            },
        )
예제 #7
0
def cnpj_validar(cnpj) -> bool:

    if not cnpj:
        return False

    numero = [int(digit) for digit in cnpj if digit.isdigit()]

    if len(numero) != 14 or len(set(numero)) == 1:
        return False

    valida = CNPJ()

    return valida.validate(cnpj)
예제 #8
0
    def check_doc(doc):
        client_doc = str(doc)
        client_doc_size = len(client_doc)

        if client_doc_size == 11:
            cpf = CPF()
            return cpf.validate(doc)

        elif client_doc_size == 14:
            cnpj = CNPJ()
            return cnpj.validate(doc)

        else:
            return False
예제 #9
0
    def get(self):
        args = parser.parse_args()
        cnpj = args['cnpj']

        if not CNPJ().validate(cnpj):
            return {'mensagem': 'CNPJ é inválido'}, 202

        cnpj = extract_numbers(cnpj)
        store = Store.query.filter_by(cnpj=cnpj).first()
        if not store:
            return {
                'mensagem': 'Estabelecimento com esse CNPJ não encontrado'
            }, 202

        return {
            'estabelecimento': {
                'nome': store.name,
                'cnpj': format_cnpj(store.cnpj),
                'dono': store.owner,
                'telefone': store.phone
            },
            'recebimentos': [{
                'cliente': format_cpf(transaction.client.cpf),
                'valor': transaction.value,
                'descricao': transaction.description
            } for transaction in store.transactions],
            'total_recebido':
            sum(transaction.value for transaction in store.transactions)
        }, 201
예제 #10
0
    def post(self):
        args = parser.parse_args()
        cnpj = args['estabelecimento']
        cpf = args['cliente']
        value = args['valor']
        description = args['descricao']

        if not CPF().validate(cpf) or not CNPJ().validate(cnpj):
            return {'aceito': False}, 202

        cnpj = extract_numbers(cnpj)
        cpf = extract_numbers(cpf)

        store = Store.query.filter_by(cnpj=cnpj).first()
        if not store:
            store = Store(cnpj=cnpj)
            db.session.add(store)

        client = Client.query.filter_by(cpf=cpf).first()
        if not client:
            client = Client(cpf=cpf)
            db.session.add(client)

        transaction = Transaction(value=value, description=description)
        transaction.store = store
        transaction.client = client

        db.session.add(transaction)
        db.session.commit()

        return {'aceito': True}, 201
예제 #11
0
def _cnpj_validator(value) -> str:
    number_list = regex.findall("\d+", value)
    cnpj = ''.join(number_list)

    if CNPJ().validate(cnpj) == False:
        raise ValueError('Invalid CNPJ')
    return cnpj
예제 #12
0
def procura_cnpj(text: str) -> list:
    '''
    Retorna uma lista com CNPJs válidos encontrados, somente com números.
    :param text: str
    :return: list
    '''
    regexCPF = re.compile(
        r'\b\d{14,14}\b|\b\d\d.\d\d\d.\d\d\d\/\d\d\d\d-\d\d\b')
    cnpjs = set([
        ''.join([num for num in x if num.isalnum()])
        for x in regexCPF.findall(text)
    ])
    valid_cnpjs = []
    for cnpj in cnpjs:
        cnpj_num = CNPJ()
        if cnpj_num.validate(cnpj):
            valid_cnpjs.append(cnpj)
    return valid_cnpjs
예제 #13
0
def checkCnpj():
    data = request.get_json()
    cnpjNumber = data.get('cnpj')
    cnpj = CNPJ()

    if cnpj.validate(cnpjNumber):
        return {
            "status": 200,
            "cpf": cnpjNumber,
            "code": "success",
            "data": "CNPJ is valid"
        }
    else:
        return {
            "status": 406,
            "cpf": cnpjNumber,
            "code": "error",
            "data": "CNPJ is not valid"
        }
예제 #14
0
def add_routes(api: Api) -> Api:
    api.add_resource(StudentController,
                     f"{PATH['BASE_PATH']}{PATH['STUDENTS']}",
                     resource_class_kwargs={
                         "student_service":
                         StudentService(person_repository=PersonRepository,
                                        student_repository=StudentRepository,
                                        person_translator=PersonTranslator,
                                        student_logger=Logger(
                                            StudentService.__name__)),
                         "student_validator":
                         StudentValidator(document_validator=DocumentValidator(
                             cpf_validator=CPF(),
                             cnpj_validator=CNPJ(),
                         ),
                                          string_validator=StringValidator,
                                          int_validator=IntValidator,
                                          float_validator=FloatValidator)
                     })

    api.add_resource(
        StudentControllerById,
        f"{PATH['BASE_PATH']}{PATH['STUDENTS']}{PARAM['STUDENT_ID']}",
        resource_class_kwargs={
            'student_validator':
            StudentValidator(document_validator=DocumentValidator(
                cpf_validator=CPF(),
                cnpj_validator=CNPJ(),
            ),
                             string_validator=StringValidator,
                             int_validator=IntValidator,
                             float_validator=FloatValidator),
            'student_service':
            StudentService(student_repository=StudentRepository(
                Logger(StudentRepository.__name__)),
                           student_logger=Logger(StudentService.__name__),
                           person_repository=PersonRepository,
                           person_translator=PersonTranslator),
            'student_logger':
            Logger(StudentControllerById.__name__)
        })
    return api
class BusinessPersonController:
    _business_person_dao = BusinessPersonDao()
    _validate_cnpj = CNPJ()

    def cnpj_is_valid(self, value: str):
        if not StringUtils.is_empty_or_is_null(value):
            self._validate_cnpj.validate(value)

    def create_new_business_person(self, request):
        new_person = BusinessPerson(
            name=request['name'],
            email=request['email'],
            phone=request['number'],
            address=request['location'],
            cnpj=request['cnpj'],
            state_registration=request['state_registration'],
        )
        self._business_person_dao.create(new_person)
        return new_person
예제 #16
0
 def valida(self, documento):
     cnpj = CNPJ()
     return cnpj.validate(documento)
 def __valida_cnpj(self, registro):
     return CNPJ().validate(registro)
예제 #18
0
 def valida(self, cnpj):
     if len(cnpj) == 14:
         validador = CNPJ()
         return validador.validate(cnpj)
     raise ValueError('Quantidade de dígitos inválidas')
예제 #19
0
 def valida(self, documento):
     mascara = CNPJ()
     return mascara.validate(documento)
예제 #20
0
 def cnpj_eh_valido(self, documento):
     validador = CNPJ()
     return validador.validate(documento)
예제 #21
0
 def __cnpj_eh_valido(self, cnpj):
     validador = CNPJ()
     return validador.validate(cnpj)
예제 #22
0
 def valida(self, documento):
     validador = CNPJ()
     return validador.validate(documento)
예제 #23
0
 def format_cnpj(self):
     mascara = CNPJ()
     return mascara.mask(self.cnpj)
 def cnpj_formated(self):
     mask = CNPJ()
     return mask.mask(self.__cnpj)
 def __valid_cnpj(self, document):
     if len(document) == 14:
         valid = CNPJ()
         return valid.validate(document)
     else:
         raise ValueError("Invalid Cnpj!")
예제 #26
0
 def validate(cnpj):
     validator = CNPJ()
     return validator.validate(cnpj)
예제 #27
0
 def cnpj_eh_Valido(self, cnpj):
     if len(cnpj) == 14:
         validate_cnpj = CNPJ()
         return validate_cnpj.validate(cnpj)
     else:
         raise ValueError("Quantidade de dígitos inválida!")
예제 #28
0
 def format(self):
     mask = CNPJ()
     return mask.mask(self.cnpj)
예제 #29
0
from validate_docbr import CPF
from validate_docbr import CPF,CNPJ

arquivo = open('cpf-cnpj.txt', 'r')

cpf_cnpf = []

cpf = CPF()
cnpj = CNPJ()
for itens in arquivo:
        itens.strip()
        cpf_cnpf.append(itens)
print(cpf_cnpf)        

cpf_cnpf = cpf.mask(cpf_cnpf)

print(cpf_cnpf)
예제 #30
0
 def format_cnpf(self):
     mask = CNPJ()
     return mask.mask(self.document)