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
Exemple #2
0
    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
Exemple #4
0
    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