Example #1
0
    def valid_agency_bradesco(self):
        """
            Valida a agência e o dígito verificador do banco Bradesco
            Tamanho da Agência - 4 Dígitos + 2 DV
        """
        self.__format_agency(True)

        result_agency_valid = super().agency_is_valid(self.agency)

        if not result_agency_valid:
            raise InvalidAgencyNumber()

        result_digit_agency_valid = super().agency_digit_is_valid(
            self.digit_agency)

        if not result_digit_agency_valid:
            raise InvalidDigitAgencyNumber()

        check_number_calculated_agency = CalculateAgency(
            self.agency).calculate_agency_bradesco()
        if not check_number_calculated_agency:
            raise InvalidAgencyNumber()

        check_number_informed_digit = self.digit_agency.upper()
        if check_number_informed_digit == '0':
            return check_number_calculated_agency == check_number_informed_digit or check_number_calculated_agency == 'P'

        return check_number_calculated_agency == check_number_informed_digit
Example #2
0
    def agency_is_valid(agency):
        regex = re.compile('^(?!0+$)[0-9]{1,5}$', re.I)
        match = bool(regex.match(agency))

        if not match:
            raise InvalidAgencyNumber()

        return True
Example #3
0
    def valid_agency_banrisul(self):
        """
          Valida a agência e dígito verificador do banco Banrisul
          Tamanho da Agência - 4 Dígitos
        """
        self.__format_agency(True)
        result_agency_valid = super().agency_is_valid(self.agency)

        if not result_agency_valid:
            raise InvalidAgencyNumber()

        return True
Example #4
0
    def valid_agency_nubank(self):
        """
           Valida a agência do banco Nu Pagamentos (Nubank)
           Tamanho da Agência - 4 Dígitos - Não tem dígito verificador
        """
        self.__format_agency()
        result_agency_valid = super().agency_is_valid(self.agency)

        if not result_agency_valid:
            raise InvalidAgencyNumber()

        return True
Example #5
0
    def valid_agency_caixa(self):
        """
           Valida a agência do banco Caixa Econômica Federal
           Tamanho da Agência - 4 Dígitos - Não tem dígito verificador
        """
        self.__format_agency()
        result_agency_valid = super().agency_is_valid(self.agency)

        if not result_agency_valid:
            raise InvalidAgencyNumber()

        return True
Example #6
0
    def valid_agency_bb(self):
        """
           Valida a agência e o dígito verificador do banco do Brasil
           Tamanho da Agência - 4 Dígitos + 1 DV
        """
        self.__format_agency(True)
        agency_is_valid = super().agency_is_valid(self.agency)

        if not agency_is_valid:
            raise InvalidAgencyNumber()

        result_digit_agency_valid = super().agency_digit_is_valid(
            self.digit_agency)

        if not result_digit_agency_valid or len(self.digit_agency) != 1:
            raise InvalidDigitAgencyNumber()

        check_number_calculated_digit = CalculateAgency(
            self.agency).calculate_agency_bb()

        if not check_number_calculated_digit:
            raise InvalidAgencyNumber()

        return check_number_calculated_digit == self.digit_agency.upper()
Example #7
0
    def __format_agency(self, is_digit_agency=False):
        """
            Format the agency
        """
        agency = re.sub('[^A-Za-z0-9]+', '', self.agency)
        self.agency = agency

        if is_digit_agency and len(self.agency) > 4:
            self.agency = agency[0:4]
            self.digit_agency = agency[4:len(agency)]
            return {}

        regex = re.match('^[0-9]{1,4}(-[0-9a-zA-Z]{1,2})?$', self.agency)
        if regex is None:
            raise InvalidAgencyNumber()