def _valida_cnpj_cpf(self): self.ensure_one() valores = {} res = {'value': valores} if not self.cnpj_cpf: return res cnpj_cpf = limpa_formatacao(self.cnpj_cpf or '') if cnpj_cpf[:2] != 'EX': if not valida_cnpj(cnpj_cpf) and not valida_cpf(cnpj_cpf): raise ValidationError(_(u'CNPJ/CPF inválido')) if len(cnpj_cpf) == 14: valores['cnpj_cpf'] = formata_cnpj(cnpj_cpf) valores['tipo_pessoa'] = TIPO_PESSOA_JURIDICA valores['regime_tributario'] = REGIME_TRIBUTARIO_SIMPLES valores['contribuinte'] = INDICADOR_IE_DESTINATARIO_ISENTO else: valores['cnpj_cpf'] = formata_cpf(cnpj_cpf) valores['tipo_pessoa'] = TIPO_PESSOA_FISICA valores['regime_tributario'] = REGIME_TRIBUTARIO_LUCRO_PRESUMIDO valores['contribuinte'] = \ INDICADOR_IE_DESTINATARIO_NAO_CONTRIBUINTE if cnpj_cpf[:2] == 'EX': valores['tipo_pessoa'] = TIPO_PESSOA_ESTRANGEIRO valores['regime_tributario'] = REGIME_TRIBUTARIO_LUCRO_PRESUMIDO valores['contribuinte'] = \ INDICADOR_IE_DESTINATARIO_NAO_CONTRIBUINTE if self.id: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('id', '!=', self.id), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) else: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) if len(cnpj_ids) > 0: raise ValidationError(_(u'CNPJ/CPF já existe no cadastro!')) return res
def _check_certificado(self): for certificado in self: if certificado.tipo != TIPO_CERTIFICADO_A1: continue cert = certificado.certificado_nfe() certificado.numero_serie = str(cert.numero_serie) certificado.data_inicio_validade = str(cert.data_inicio_validade) certificado.data_fim_validade = str(cert.data_fim_validade) certificado.proprietario = cert.proprietario_nome if valida_cpf(cert.proprietario_cnpj): certificado.cnpj_cpf = formata_cpf(cert.proprietario_cnpj) elif valida_cnpj(cert.proprietario_cnpj): certificado.cnpj_cpf = formata_cnpj(cert.proprietario_cnpj) else: certificado.cnpj_cpf = cert.proprietario_cnpj
def _valida_cnpj_cpf(self): self.ensure_one() valores = {} res = {'value': valores} if not self.cnpj_cpf: return res cnpj_cpf = limpa_formatacao(self.cnpj_cpf or '') if cnpj_cpf[:2] != 'EX': if not valida_cnpj(cnpj_cpf) and not valida_cpf(cnpj_cpf): raise ValidationError('CNPJ/CPF inválido') if len(cnpj_cpf) == 14: valores.update(cnpj_cpf=formata_cnpj(cnpj_cpf)) valores.update(tipo_pessoa='J') valores.update(regime_tributario='1') else: valores.update(cnpj_cpf=formata_cpf(cnpj_cpf)) valores.update(tipo_pessoa='F') valores.update(regime_tributario='3') if cnpj_cpf[:2] == 'EX': valores.update(tipo_pessoa='E') valores.update(regime_tributario='3') if self.id: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('id', '!=', self.id), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) else: cnpj_ids = self.search([('cnpj_cpf', '=', cnpj_cpf), ('eh_empresa', '=', False), ('eh_grupo', '=', False)]) if len(cnpj_ids) > 0: raise ValidationError(u'CNPJ/CPF já existe no cadastro!') return res
def constrains_certificado(self): if self.tipo != TIPO_CERTIFICADO_A1: return open('/tmp/cert.pfx', 'w').write(self.arquivo.decode('base64')) cert = pysped.xml_sped.certificado.Certificado() cert.arquivo = '/tmp/cert.pfx' cert.senha = self.senha cert.prepara_certificado_arquivo_pfx() self.numero_serie = str(cert.numero_serie) self.data_inicio_validade = str(cert.data_inicio_validade) self.data_fim_validade = str(cert.data_fim_validade) self.proprietario = cert.proprietario_nome if valida_cpf(cert.proprietario_cnpj): self.cnpj_cpf = formata_cpf(cert.proprietario_cnpj) elif valida_cnpj(cert.proprietario_cnpj): self.cnpj_cpf = formata_cnpj(cert.proprietario_cnpj) else: self.cnpj_cpf = cert.proprietario_cnpj