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.