Esempio n. 1
0
 def dac_nosso_numero(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return modulo10(agencia +
                     conta +
                     self.carteira +
                     self.nosso_numero)
Esempio n. 2
0
 def campo_livre(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return "%3s%8s%1s%4s%5s%1s%3s" % (
         self.carteira,
         self.nosso_numero,
         self.dac_nosso_numero,
         agencia,
         conta,
         modulo10(agencia + conta),
         '000'
     )
Esempio n. 3
0
    def validate_field(cls, field):
        if ' ' in field:
            raise BoletoException(_('The field cannot have spaces'))
        if '.' in field or ',' in field:
            raise BoletoException(_('The field cannot have dots of commas'))
        dv = None
        if '-' in field:
            if field.count('-') != 1:
                raise BoletoException(_('More than one hyphen found'))
            field, dv = field.split('-', 1)
            if not dv:
                raise BoletoException(_('Verifier digit cannot be empty'))
        try:
            int(field)
        except ValueError:
            raise BoletoException(_('Account needs to be a number'))

        if dv and cls.validate_field_dv is not None:
            func = cls.validate_field_func
            if func == 'modulo11':
                ret = modulo11(field)
            elif func == 'modulo10':
                ret = modulo10(field)
            else:
                ret = None

            if dv.lower() in [cls.validate_field_dv]:
                # FIXME: Is it correct that the rest of 0 is
                #        the same as 10?
                if ret == 0:
                    pass
                elif (ret is not None and
                      str(ret) != dv.lower() and
                      ret < 10):
                    raise BoletoException(_('Invalid verifier digit'))
            else:
                try:
                    dv = int(dv)
                except ValueError:
                    raise BoletoException(
                        _('Verifier digit must be a number or %s') %
                        cls.validate_field_dv)

                if ret is not None and ret != dv:
                    raise BoletoException(_('Invalid verifier digit'))
Esempio n. 4
0
    def validate_field(cls, field):
        if ' ' in field:
            raise BoletoException(_('The field cannot have spaces'))
        if '.' in field or ',' in field:
            raise BoletoException(_('The field cannot have dots of commas'))
        dv = None
        if '-' in field:
            if field.count('-') != 1:
                raise BoletoException(_('More than one hyphen found'))
            field, dv = field.split('-', 1)
            if not dv:
                raise BoletoException(_('Verifier digit cannot be empty'))
        try:
            int(field)
        except ValueError:
            raise BoletoException(_('Account needs to be a number'))

        if dv and cls.validate_field_dv is not None:
            func = cls.validate_field_func
            if func == 'modulo11':
                ret = modulo11(field)
            elif func == 'modulo10':
                ret = modulo10(field)
            else:
                ret = None

            if dv.lower() in [cls.validate_field_dv]:
                # FIXME: Is it correct that the rest of 0 is
                #        the same as 10?
                if ret == 0:
                    pass
                elif (ret is not None and str(ret) != dv.lower() and ret < 10):
                    raise BoletoException(_('Invalid verifier digit'))
            else:
                try:
                    dv = int(dv)
                except ValueError:
                    raise BoletoException(
                        _('Verifier digit must be a number or %s') %
                        cls.validate_field_dv)

                if ret is not None and ret != dv:
                    raise BoletoException(_('Invalid verifier digit'))
Esempio n. 5
0
 def digitao_cobranca(self):
     num = "%s%s%s" % (self.nosso_numero, self.agencia, self.conta)
     return modulo10(num)
Esempio n. 6
0
 def campo_livre(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return "%3s%8s%1s%4s%5s%1s%3s" % (
         self.carteira, self.nosso_numero, self.dac_nosso_numero, agencia,
         conta, modulo10(agencia + conta), '000')
Esempio n. 7
0
 def dv_agencia_conta(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return modulo10(agencia + conta)
Esempio n. 8
0
 def dac_nosso_numero(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return modulo10(agencia + conta + self.carteira + self.nosso_numero)
Esempio n. 9
0
 def monta_campo(campo):
     campo_dv = "%s%s" % (campo, modulo10(campo))
     return "%s.%s" % (campo_dv[0:5], campo_dv[5:])
Esempio n. 10
0
 def digitao_cobranca(self):
     num = "%s%s%s" % (self.nosso_numero,
                       self.agencia,
                       self.conta)
     return modulo10(num)
Esempio n. 11
0
 def agencia_conta(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return '%s / %s-%s' % (agencia,
                            conta,
                            modulo10(agencia + conta))
Esempio n. 12
0
 def monta_campo(campo):
     campo_dv = "%s%s" % (campo, modulo10(campo))
     return "%s.%s" % (campo_dv[0:5], campo_dv[5:])
Esempio n. 13
0
 def agencia_conta(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return '%s / %s-%s' % (agencia, conta, modulo10(agencia + conta))
Esempio n. 14
0
 def dv_agencia_conta(self):
     agencia = self.agencia.split('-')[0]
     conta = self.conta.split('-')[0]
     return modulo10(agencia + conta)