functions.validate_document

  1import streamlit as st
  2
  3
  4class Documents:
  5    """
  6    Classe com métodos para validação de documentos.
  7    """
  8
  9    def validate_credit_card(self, card_number: str):
 10        """
 11        Realiza a validação do número de cartões de crédito.
 12
 13        Parameters
 14        ----------
 15        card_number : str
 16            O número do cartão de crédito.
 17
 18        Returns
 19        -------
 20        bool
 21            Se o cartão é válido ou inválido.
 22        """
 23        total = 0
 24
 25        st.info("Validando cartão...")
 26
 27        if len(card_number) != 16:
 28            return False
 29
 30        elif len(card_number) == 16:
 31
 32            if " " in card_number:
 33                return False
 34
 35            for i in range(0, 16, 2):
 36                accumulated = int(card_number[i]) * 2
 37                if accumulated > 9:
 38                    accumulated = accumulated - 9
 39                total = total + accumulated
 40
 41            for i in range(1, 17, 2):
 42                total = total + int(card_number[i])
 43
 44            if (total % 10) != 0 or total > 150:
 45                return False
 46
 47            return True
 48
 49    def validate_owner_document(self, owner_document: str):
 50        """
 51        Realiza a validação do documento pessoal do usuário.
 52
 53        Parameters
 54        ----------
 55        owner_document : str
 56            O número do documento pessoal.
 57
 58        Returns
 59        -------
 60        bool
 61            Se o documento é válido ou inválido.
 62        """
 63        if len(owner_document) != 11:
 64            st.error(
 65                body="O documento pessoal não tem menos e nem mais que 11 caracteres."
 66            )
 67        else:
 68            st.info(body="Validando documento...")
 69            owner_document_list = []
 70            for i in range(0, len(owner_document)):
 71                owner_document_list.append(owner_document[i])
 72
 73            first_counter = 10
 74            first_sum_value = 0
 75
 76            for i in range(0, 9):
 77                first_sum_value += int(owner_document_list[i]) * first_counter
 78                first_counter = first_counter - 1
 79
 80            first_division_rest = (first_sum_value * 10) % 11
 81
 82            second_counter = 11
 83            second_sum_value = 0
 84
 85            for i in range(0, 9):
 86                second_sum_value += int(
 87                    owner_document_list[i]) * second_counter
 88                second_counter = second_counter - 1
 89
 90            second_sum_value += first_division_rest * second_counter
 91
 92            second_division_rest = (second_sum_value * 10) % 11
 93
 94            if first_division_rest == int(
 95                owner_document_list[9]
 96            ) and second_division_rest == int(owner_document_list[10]):
 97                st.success(
 98                    body="O documento {} é válido.".format(owner_document))
 99                return True
100            else:
101                st.error(body="O documento {} é inválido.".format(owner_document))
102                return False
class Documents:
  5class Documents:
  6    """
  7    Classe com métodos para validação de documentos.
  8    """
  9
 10    def validate_credit_card(self, card_number: str):
 11        """
 12        Realiza a validação do número de cartões de crédito.
 13
 14        Parameters
 15        ----------
 16        card_number : str
 17            O número do cartão de crédito.
 18
 19        Returns
 20        -------
 21        bool
 22            Se o cartão é válido ou inválido.
 23        """
 24        total = 0
 25
 26        st.info("Validando cartão...")
 27
 28        if len(card_number) != 16:
 29            return False
 30
 31        elif len(card_number) == 16:
 32
 33            if " " in card_number:
 34                return False
 35
 36            for i in range(0, 16, 2):
 37                accumulated = int(card_number[i]) * 2
 38                if accumulated > 9:
 39                    accumulated = accumulated - 9
 40                total = total + accumulated
 41
 42            for i in range(1, 17, 2):
 43                total = total + int(card_number[i])
 44
 45            if (total % 10) != 0 or total > 150:
 46                return False
 47
 48            return True
 49
 50    def validate_owner_document(self, owner_document: str):
 51        """
 52        Realiza a validação do documento pessoal do usuário.
 53
 54        Parameters
 55        ----------
 56        owner_document : str
 57            O número do documento pessoal.
 58
 59        Returns
 60        -------
 61        bool
 62            Se o documento é válido ou inválido.
 63        """
 64        if len(owner_document) != 11:
 65            st.error(
 66                body="O documento pessoal não tem menos e nem mais que 11 caracteres."
 67            )
 68        else:
 69            st.info(body="Validando documento...")
 70            owner_document_list = []
 71            for i in range(0, len(owner_document)):
 72                owner_document_list.append(owner_document[i])
 73
 74            first_counter = 10
 75            first_sum_value = 0
 76
 77            for i in range(0, 9):
 78                first_sum_value += int(owner_document_list[i]) * first_counter
 79                first_counter = first_counter - 1
 80
 81            first_division_rest = (first_sum_value * 10) % 11
 82
 83            second_counter = 11
 84            second_sum_value = 0
 85
 86            for i in range(0, 9):
 87                second_sum_value += int(
 88                    owner_document_list[i]) * second_counter
 89                second_counter = second_counter - 1
 90
 91            second_sum_value += first_division_rest * second_counter
 92
 93            second_division_rest = (second_sum_value * 10) % 11
 94
 95            if first_division_rest == int(
 96                owner_document_list[9]
 97            ) and second_division_rest == int(owner_document_list[10]):
 98                st.success(
 99                    body="O documento {} é válido.".format(owner_document))
100                return True
101            else:
102                st.error(body="O documento {} é inválido.".format(owner_document))
103                return False

Classe com métodos para validação de documentos.

def validate_credit_card(self, card_number: str):
10    def validate_credit_card(self, card_number: str):
11        """
12        Realiza a validação do número de cartões de crédito.
13
14        Parameters
15        ----------
16        card_number : str
17            O número do cartão de crédito.
18
19        Returns
20        -------
21        bool
22            Se o cartão é válido ou inválido.
23        """
24        total = 0
25
26        st.info("Validando cartão...")
27
28        if len(card_number) != 16:
29            return False
30
31        elif len(card_number) == 16:
32
33            if " " in card_number:
34                return False
35
36            for i in range(0, 16, 2):
37                accumulated = int(card_number[i]) * 2
38                if accumulated > 9:
39                    accumulated = accumulated - 9
40                total = total + accumulated
41
42            for i in range(1, 17, 2):
43                total = total + int(card_number[i])
44
45            if (total % 10) != 0 or total > 150:
46                return False
47
48            return True

Realiza a validação do número de cartões de crédito.

Parameters
  • card_number (str): O número do cartão de crédito.
Returns
  • bool: Se o cartão é válido ou inválido.
def validate_owner_document(self, owner_document: str):
 50    def validate_owner_document(self, owner_document: str):
 51        """
 52        Realiza a validação do documento pessoal do usuário.
 53
 54        Parameters
 55        ----------
 56        owner_document : str
 57            O número do documento pessoal.
 58
 59        Returns
 60        -------
 61        bool
 62            Se o documento é válido ou inválido.
 63        """
 64        if len(owner_document) != 11:
 65            st.error(
 66                body="O documento pessoal não tem menos e nem mais que 11 caracteres."
 67            )
 68        else:
 69            st.info(body="Validando documento...")
 70            owner_document_list = []
 71            for i in range(0, len(owner_document)):
 72                owner_document_list.append(owner_document[i])
 73
 74            first_counter = 10
 75            first_sum_value = 0
 76
 77            for i in range(0, 9):
 78                first_sum_value += int(owner_document_list[i]) * first_counter
 79                first_counter = first_counter - 1
 80
 81            first_division_rest = (first_sum_value * 10) % 11
 82
 83            second_counter = 11
 84            second_sum_value = 0
 85
 86            for i in range(0, 9):
 87                second_sum_value += int(
 88                    owner_document_list[i]) * second_counter
 89                second_counter = second_counter - 1
 90
 91            second_sum_value += first_division_rest * second_counter
 92
 93            second_division_rest = (second_sum_value * 10) % 11
 94
 95            if first_division_rest == int(
 96                owner_document_list[9]
 97            ) and second_division_rest == int(owner_document_list[10]):
 98                st.success(
 99                    body="O documento {} é válido.".format(owner_document))
100                return True
101            else:
102                st.error(body="O documento {} é inválido.".format(owner_document))
103                return False

Realiza a validação do documento pessoal do usuário.

Parameters
  • owner_document (str): O número do documento pessoal.
Returns
  • bool: Se o documento é válido ou inválido.