Código

<syntaxhighlight lang="python3" line="1">

  1. -*- coding: utf-8 -*-

import sys import time import sqlite3


def arqexi(texto):

   try:
       arq = open(texto, "r")
       arq.close()
       return True
   except IOError:
       return False


def cpfv(a, b, c, d, e, f, g, h, i, j, k):

   cpf = [str(a), str(b), str(c), str(d), str(e), str(f), str(g), str(h), str(i), str(j), str(k)]
   A = a * 10 + b * 9 + c * 8 + d * 7 + e * 6 + f * 5 + g * 4 + h * 3 + i * 2
   resto1 = A % 11
   if resto1 == 0 or resto1 == 1:
       j_ = 0
       pass
   else:
       j_ = 11 - resto1
       pass
   B = a * 11 + b * 10 + c * 9 + d * 8 + e * 7 + f * 6 + g * 5 + h * 4 + i * 3 + j_ * 2
   resto2 = B % 11
   if resto2 == 0 or resto2 == 1:
       k_ = 0
       pass
   else:
       k_ = 11 - resto2
   cpfv_ = [str(a), str(b), str(c), str(d), str(e), str(f), str(g), str(h), str(i), str(j_), str(k_)]
   if cpf == cpfv_:
       return True
   else:
       return False


def datav(m1, d1, a1):

   anos = []
   for i in range(1800, 3000, 4):
       if i % 100 == 0:
           if i % 400 == 0:
               anos.append(i)
       elif i % 4 == 0:
           anos.append(i)
   if m1 == 1 or m1 == 3 or m1 == 5 or m1 == 7 or m1 == 8 or m1 == 10 or m1 == 12:
       if d1 <= 31 and d1 > 0:
           return True
       elif d1 > 31 and d1 < 0:
           return False
   elif m1 == 4 or m1 == 6 or m1 == 9 or m1 == 11:
       if d1 <= 30 and d1 > 0:
           return True
       elif d1 > 30 and d1 < 0:
           return True
   elif m1 == 2:
       if a1 in anos:
           if d1 <= 29 and d1 > 0:
               return True
           elif d1 > 29 and d1 < 0:
               return False
       else:
           if d1 <= 28 and d1 > 0:
               return True
           elif d1 > 28 and d1 < 0:
               return False
   else:
       return False


aq = arqexi('tabela.db') if not aq:

   conn = sqlite3.connect('tabela.db')
   cursor = conn.cursor()
   cursor.execute("""
           CREATE TABLE adms (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   nome TEXT NOT NULL,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_nascimento TEXT NOT NULL,
                   cpf     TEXT NOT NULL,
                   fone TEXT,
                   rg TEXT NOT NULL
           );
           """)
   cursor.execute("""
           CREATE TABLE cadastros (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   nome TEXT NOT NULL,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_nascimento TEXT NOT NULL,
                   cpf     TEXT NOT NULL,
                   fone TEXT,
                   email TEXT NOT NULL,
                   turno TEXT NOT NULL,
                   rg TEXT NOT NULL,
                   salario NUMERIC NOT NULL,
                   data_de_admissao DATE NOT NULL
           );
           """)
   cursor.execute("""
           CREATE TABLE entrada (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_entrada TEXT NOT NULL,
                   horario_de_entrada TEXT NOT NULL
           );
           """)
   cursor.execute("""
           CREATE TABLE saida (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_saida TEXT NOT NULL,
                   horario_de_saida TEXT NOT NULL
           );
           """)
   print('Tabelas criadas com sucesso.')
   print('Cadastre o adm')
   nome = input("Insira o nome: ")
   print(nome)
   print("Tem certeza ?")
   aysn = input("s/n ?: ")
   if aysn == "n" or aysn == "N":
       while aysn == "n" or aysn == "N":
           nome = input("Insira o nome: ")
           print(nome)
           print("Tem certeza ?")
           aysn = input("s/n ?: ")
   elif aysn == "s" or aysn == "S":
       pass
   usu = input('Insira seu nome de usuário: ')
   print(usu)
   print("Tem certeza ?")
   aysu = input("s/n ?: ")
   if aysu == "n" or aysu == "N":
       while aysu == "n" or aysu == "N":
           usu = input("Insira seu nome de usuário: ")
           print(usu)
           print("Tem certeza ?")
           aysu = input("s/n ?: ")
   elif aysu == "s" or aysu == "S":
       pass
   passw = input('Insira sua senha: ')
   print(passw)
   print("Tem certeza ?")
   aysps = input("s/n ?: ")
   if aysps == "n" or aysps == "N":
       while aysps == "n" or aysps == "N":
           passw = input("Insira sua senha: ")
           print(passw)
           print("Tem certeza ?")
           aysps = input("s/n ?: ")
   elif aysps == "s" or aysps == "S":
       pass
   b = list(input("Data de nascimento(DD/MM/YYYY): "))
   if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
       while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
           print("Por favor, verifique a data de nascimento")
           b = input("Data de nascimento(DD/MM/YYYY): ")
   data = b
   m1 = int(data[3] + data[4])
   d1 = int(data[0] + data[1])
   a1 = int(data[6] + data[7] + data[8] + data[9])
   d = datav(m1, d1, a1)
   if d:
       pass
   else:
       while not d:
           print("Data inválida")
           b = list(input("Data de nascimento(DD/MM/YYYY): "))
           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                   print("Por favor, verifique a data de nascimento")
                   b = input("Data de nascimento(DD/MM/YYYY): ")
           data = b
           m1 = int(data[3] + data[4])
           d1 = int(data[0] + data[1])
           a1 = int(data[6] + data[7] + data[8] + data[9])
           d = datav(m1, d1, a1)
   br = (
       str(data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[9]))
   print(br)
   print("Tem certeza ?")
   aysb = input("s/n?: ")
   if aysb == "n" or aysb == "N":
       while aysb == "n" or aysb == "N":
           b = list(input("Data de nascimento(DD/MM/YYYY): "))
           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                   print("Por favor, verifique a data de nascimento")
                   b = input("Data de nascimento(DD/MM/YYYY):  ")
           data = b
           d1 = int(data[0] + data[1])
           m1 = int(data[3] + data[4])
           a1 = int(data[6] + data[7] + data[8] + data[9])
           d = datav(m1, d1, a1)
           if d:
               pass
           else:
               while not d:
                   print("Data inválida")
                   b = list(input("Data de nascimento(DD/MM/YYYY): "))
                   if len(b) != 10 or b[2] != "/" or b[5] != "/":
                       while len(b) != 10 or b[2] != "/" or b[5] != "/":
                           print("Por favor, verifique a data de nascimento")
                           b = input("Data de nascimento(DD/MM/YYYY): ")
                   data = b
                   d1 = int(data[0] + data[1])
                   m1 = int(data[3] + data[4])
                   a1 = int(data[6] + data[7] + data[8] + data[9])
                   d = datav(m1, d1, a1)
           br = (str(
               data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[
                   9]))
           print(br)
           print("Tem certeza ?")
           aysb = input("s/n?: ")
   elif aysb == "s" or aysb == "S":
       pass
   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[2] == cpf[
       4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
           2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
           print("Por favor, verifique o CPF")
           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
   else:
       pass
   a = int(cpf[0])
   b = int(cpf[1])
   c = int(cpf[2])
   d = int(cpf[4])
   e = int(cpf[5])
   f = int(cpf[6])
   g = int(cpf[8])
   h = int(cpf[9])
   i = int(cpf[10])
   j = int(cpf[12])
   k = int(cpf[13])
   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
   if not veri:
       print("CPF inválido")
       while not veri:
           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                   print("Por favor, verifique o CPF")
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           else:
               pass
           a = int(cpf[0])
           b = int(cpf[1])
           c = int(cpf[2])
           d = int(cpf[4])
           e = int(cpf[5])
           f = int(cpf[6])
           g = int(cpf[8])
           h = int(cpf[9])
           i = int(cpf[10])
           j = int(cpf[12])
           k = int(cpf[13])
           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
           pass
   cp = (str(
       cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[10] + cpf[
           11] + cpf[12] + cpf[13]))
   print(cp)
   print("Tem certeza ?")
   aysc = input("s/n ?: ")
   if aysc == "n" or aysc == "N":
       while aysc == "n" or aysc == "N":
           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                   print("Por favor, verifique o CPF")
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           else:
               pass
           a = int(cpf[0])
           b = int(cpf[1])
           c = int(cpf[2])
           d = int(cpf[4])
           e = int(cpf[5])
           f = int(cpf[6])
           g = int(cpf[8])
           h = int(cpf[9])
           i = int(cpf[10])
           j = int(cpf[12])
           k = int(cpf[13])
           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
           if not veri:
               print("CPF inválido")
               while veri != True:
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                           cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == \
                               cpf[1] == cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                           print("Por favor, verifique o CPF")
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   else:
                       pass
                   a = int(cpf[0])
                   b = int(cpf[1])
                   c = int(cpf[2])
                   d = int(cpf[4])
                   e = int(cpf[5])
                   f = int(cpf[6])
                   g = int(cpf[8])
                   h = int(cpf[9])
                   i = int(cpf[10])
                   j = int(cpf[12])
                   k = int(cpf[13])
                   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                   pass
           cp = (str(
               cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[
                   10] + cpf[11] + cpf[12] + cpf[13]))
           print(cp)
           print("Tem certeza ?")
           aysc = input("s/n?: ")
   elif aysc == "s" or aysc == "S":
       pass
   p_fone = input('Fone(XX)XXXX-XXXX: ')
   if len(p_fone) == 14:
       if p_fone[4] == '9':
           pass
       elif p_fone[4] != '9':
           while p_fone[4] != '9':
               print('Telefone inválido')
               p_fone = input('Fone(XX)XXXX-XXXX: ')
       elif len(p_fone) < 13:
           while len(p_fone) < 13:
               print('Por favor, verifique seu telefone')
               p_fone = input('Fone(XX)XXXX-XXXX: ')
   p_rg = input('RG: ')
   print(p_rg)
   print('Tem certeza ?')
   aysrg = input('s/n?: ')
   if aysrg == 'n' or aysrg == 'N':
       p_rg = input('RG: ')
       print(p_rg)
       print('Tem certeza ?')
       aysrg = input('s/n?: ')
   else:
       pass
   cursor.execute("""
       INSERT INTO adms (nome, usuario, senha, data_de_nascimento, cpf, fone, rg)
       VALUES (?,?,?,?,?,?,?)
       """, (nome, usu, passw, br, cp, p_fone, p_rg))
   conn.commit()
   print('Dados inseridos com sucesso.')
   conn.close()

else:

   pass

while True:

   usuhellow = (input('Digite seu usuário: '))
   conn = sqlite3.connect('tabela.db')
   cursor = conn.cursor()
   usu1 = []
   pass1 = []
   pass2=[]
   usu2 = []
   cursor.execute("""
       SELECT usuario FROM cadastros
       """)
   for linha in cursor.fetchall():
       usu2.append(linha[0])
   cursor.execute("""
       SELECT senha FROM cadastros
       """)
   for linha in cursor.fetchall():
       pass2.append(linha[0])
   cursor.execute("""
       SELECT usuario FROM adms
       """)
   for linha1 in cursor.fetchall():
       usu1.append(linha1[0])
   cursor.execute("""
       SELECT senha FROM adms
       """)
   for linha1 in cursor.fetchall():
       pass1.append(linha1[0])
   if usuhellow not in usu1 and usuhellow not in usu2:
       while usuhellow not in usu1 and usuhellow not in usu2:
           print('Usuario não cadastrado')
           usuhellow = (input('Digite seu usuário novamente: '))
           
   if usuhellow in usu2:
       passhellow = input('Digite sua senha: ')
       if passhellow not in pass2:
           while passhellow not in pass2:
               print('Senha incorreta')
               passhellow = input('Digite novamente sua senha: ')
           pass
       if passhellow in pass2:
           while True:
               funcv = {}
               funv={}
               conn = sqlite3.connect('tabela.db')
               cursor = conn.cursor()
               calendario = ['Ano', 'Mês', 'Dia', 'Hora', 'Minuto', 'Segundo']
               a12 = list(time.localtime())
               dic = {}
               for i in range(6):
                   dic[calendario[i]] = a12[i]
                   i -= 1
               data = '{0}/{1}/{2}'.format(dic['Dia'], dic['Mês'], dic['Ano'])
               horario = '{0}:{1}:{2}'.format(dic['Hora'], dic['Minuto'], dic['Segundo'])
               cursor.execute('SELECT * FROM entrada')
               for l in cursor.fetchall():
                   funcv[l[1]](l[1])
                   funcv[l[1]](l[3])
               cursor.execute('SELECT * FROM saida')
               for l in cursor.fetchall():
                   funv[l[1]](l[1])
                   funv[l[1]](l[3])
               if data in funcv[usuhellow]:
                   cursor.execute("""
                       INSERT INTO saida (usuario, senha, data_de_saida, horario_de_saida)
                       VALUES (?,?,?,?)
                       """, (usuhellow, passhellow, data, horario))
                   conn.commit()
                   saida = str('O funcionário ' + usuhellow + ' saiu dia ' + data + ' às ' + horario)
                   print(saida)
               elif data not in funcv[usuhellow]:
                   cursor.execute("""
                       INSERT INTO entrada (usuario, senha, data_de_entrada, horario_de_entrada)
                       VALUES (?,?,?,?)
                       """, (usuhellow, passhellow, data, horario))
                   conn.commit()
                   saida = str('O funcionário ' + usuhellow + ' entrou dia ' + data + ' às ' + horario)
                   print(saida)
               elif data in funv:
                       print('O funcionário já saiu')
               conn.close()
               sys.exit(':)')
   elif usuhellow in usu1:
       passhellow1 = input('Digite sua senha: ')
       if passhellow1 not in pass1:
           while passhellow1 not in pass1:
               print('Senha incorreta')
               passhellow1 = input('Digite novamente sua senha: ')
           pass
       if passhellow1 in pass1:
           while True:
               conn = sqlite3.connect('tabela.db')
               cursor = conn.cursor()
               print(80 * '=')
               hello = 'Bem vindo ao gerenciador de expediente'
               print(hello.center(80, ' '))
               print('Digite:\n1 Cadastrar\n2 Atualizar dados\n3 Deletar\n4 Listar funcionários\n5 Gerar folha de pagamento\n6 Listar folhas de pagamento\n9 Sair')
               opc = input('=> ')
               if opc == '1':
                   nome = input("Insira o nome: ")
                   print(nome)
                   print("Tem certeza ?")
                   aysn = input("s/n ?: ")
                   if aysn == "n" or aysn == "N":
                       while aysn == "n" or aysn == "N":
                           nome = input("Insira o nome: ")
                           print(nome)
                           print("Tem certeza ?")
                           aysn = input("s/n ?: ")
                   elif aysn == "s" or aysn == "S":
                       pass
                   usu = input('Insira seu nome de usuário: ')
                   print(usu)
                   print("Tem certeza ?")
                   aysu = input("s/n ?: ")
                   if aysu == "n" or aysu == "N":
                       while aysu == "n" or aysu == "N":
                           usu = input("Insira seu nome de usuário: ")
                           print(usu)
                           print("Tem certeza ?")
                           aysu = input("s/n ?: ")
                   elif aysu == "s" or aysu == "S":
                       pass
                   passw = input('Insira sua senha: ')
                   print(passw)
                   print("Tem certeza ?")
                   aysps = input("s/n ?: ")
                   if aysps == "n" or aysps == "N":
                       while aysps == "n" or aysps == "N":
                           passw = input("Insira sua senha: ")
                           print(passw)
                           print("Tem certeza ?")
                           aysps = input("s/n ?: ")
                   elif aysps == "s" or aysps == "S":
                       pass
                   b = list(input("Data de nascimento(DD/MM/YYYY): "))
                   if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                       while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                           print("Por favor, verifique a data de nascimento")
                           b = input("Data de nascimento(DD/MM/YYYY): ")
                   data = b
                   m1 = int(data[3] + data[4])
                   d1 = int(data[0] + data[1])
                   a1 = int(data[6] + data[7] + data[8] + data[9])
                   d = datav(m1, d1, a1)
                   if d:
                       pass
                   else:
                       while not d:
                           print("Data inválida")
                           b = list(input("Data de nascimento(DD/MM/YYYY): "))
                           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                                   print("Por favor, verifique a data de nascimento")
                                   b = input("Data de nascimento(DD/MM/YYYY): ")
                           data = b
                           m1 = int(data[3] + data[4])
                           d1 = int(data[0] + data[1])
                           a1 = int(data[6] + data[7] + data[8] + data[9])
                           d = datav(m1, d1, a1)
                   br = (
                       str(data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[9]))
                   print(br)
                   print("Tem certeza ?")
                   aysb = input("s/n?: ")
                   if aysb == "n" or aysb == "N":
                       while aysb == "n" or aysb == "N":
                           b = list(input("Data de nascimento(DD/MM/YYYY): "))
                           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                                   print("Por favor, verifique a data de nascimento")
                                   b = input("Data de nascimento(DD/MM/YYYY):  ")
                           data = b
                           d1 = int(data[0] + data[1])
                           m1 = int(data[3] + data[4])
                           a1 = int(data[6] + data[7] + data[8] + data[9])
                           d = datav(m1, d1, a1)
                           if d:
                               pass
                           else:
                               while not d:
                                   print("Data inválida")
                                   b = list(input("Data de nascimento(DD/MM/YYYY): "))
                                   if len(b) != 10 or b[2] != "/" or b[5] != "/":
                                       while len(b) != 10 or b[2] != "/" or b[5] != "/":
                                           print("Por favor, verifique a data de nascimento")
                                           b = input("Data de nascimento(DD/MM/YYYY): ")
                                   data = b
                                   d1 = int(data[0] + data[1])
                                   m1 = int(data[3] + data[4])
                                   a1 = int(data[6] + data[7] + data[8] + data[9])
                                   d = datav(m1, d1, a1)
                           br = (str(
                               data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[
                                   9]))
                           print(br)
                           print("Tem certeza ?")
                           aysb = input("s/n?: ")
                   elif aysb == "s" or aysb == "S":
                       pass
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[2] == cpf[
                       4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
                           2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                           print("Por favor, verifique o CPF")
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   else:
                       pass
                   a = int(cpf[0])
                   b = int(cpf[1])
                   c = int(cpf[2])
                   d = int(cpf[4])
                   e = int(cpf[5])
                   f = int(cpf[6])
                   g = int(cpf[8])
                   h = int(cpf[9])
                   i = int(cpf[10])
                   j = int(cpf[12])
                   k = int(cpf[13])
                   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                   if not veri:
                       print("CPF inválido")
                       while not veri:
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
                               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                   print("Por favor, verifique o CPF")
                                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           else:
                               pass
                           a = int(cpf[0])
                           b = int(cpf[1])
                           c = int(cpf[2])
                           d = int(cpf[4])
                           e = int(cpf[5])
                           f = int(cpf[6])
                           g = int(cpf[8])
                           h = int(cpf[9])
                           i = int(cpf[10])
                           j = int(cpf[12])
                           k = int(cpf[13])
                           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                           pass
                   cp = (str(
                       cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[10] + cpf[
                           11] + cpf[12] + cpf[13]))
                   print(cp)
                   print("Tem certeza ?")
                   aysc = input("s/n ?: ")
                   if aysc == "n" or aysc == "N":
                       while aysc == "n" or aysc == "N":
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
                               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                   print("Por favor, verifique o CPF")
                                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           else:
                               pass
                           a = int(cpf[0])
                           b = int(cpf[1])
                           c = int(cpf[2])
                           d = int(cpf[4])
                           e = int(cpf[5])
                           f = int(cpf[6])
                           g = int(cpf[8])
                           h = int(cpf[9])
                           i = int(cpf[10])
                           j = int(cpf[12])
                           k = int(cpf[13])
                           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                           if not veri:
                               print("CPF inválido")
                               while veri != True:
                                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                                   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                                           cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == \
                                               cpf[1] == cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                           print("Por favor, verifique o CPF")
                                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                                   else:
                                       pass
                                   a = int(cpf[0])
                                   b = int(cpf[1])
                                   c = int(cpf[2])
                                   d = int(cpf[4])
                                   e = int(cpf[5])
                                   f = int(cpf[6])
                                   g = int(cpf[8])
                                   h = int(cpf[9])
                                   i = int(cpf[10])
                                   j = int(cpf[12])
                                   k = int(cpf[13])
                                   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                                   pass
                           cp = (str(
                               cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[
                                   10] + cpf[11] + cpf[12] + cpf[13]))
                           print(cp)
                           print("Tem certeza ?")
                           aysc = input("s/n?: ")
                   elif aysc == "s" or aysc == "S":
                       pass
                   email = (input('e-mail: '))
                   emailv=[]
                   conn = sqlite3.connect('tabela.db')
                   cursor = conn.cursor()
                   cursor.execute("SELECT email FROM cadastros;")
                   for l in cursor.fetchall():
                       emailv.append(l[0])
                   if email in emailv:
                       while email in emailv:
                           print('Usuário já cadastrado')
                           email=input('Digite outro e-mail: ')
                   if '@' in email:
                       print(email)
                       print('Tem certeza ?')
                       aysem = input('s/n?: ')
                       if aysem == 's' or aysem == 'S':
                           pass
                       elif aysem == 'n' or aysem == 'N':
                           while aysem == 's' or aysem == 'S':
                               email = (input('e-mail: '))
                               print(email)
                               print('Tem certeza ?')
                               aysem = input('s/n?: ')
                   elif '@' not in email:
                       while '@' not in email:
                           print('e-mail inválido, porfavor digite novamente')
                           email = (input('=> '))
                           print(email)
                           print('Tem certeza ?')
                           aysem = input('s/n?: ')
                           if aysem == 's' or aysem == 'S':
                               pass
                           elif aysem == 'n' or aysem == 'N':
                               while aysem == 's' or aysem == 'S':
                                   email = (input('e-mail: '))
                                   print(email)
                                   print('Tem certeza ?')
                                   aysem = input('s/n?: ')
                   p_fone = input('Fone(XX)XXXX-XXXX: ')
                   if len(p_fone) == 14:
                       if p_fone[4] == '9':
                           pass
                       elif p_fone[4] != '9':
                           while p_fone[4] != '9':
                               print('Telefone inválido')
                               p_fone = input('Fone(XX)XXXX-XXXX: ')
                       elif len(p_fone) < 13:
                           while len(p_fone) < 13:
                               print('Por favor, verifique seu telefone')
                               p_fone = input('Fone(XX)XXXX-XXXX: ')
                   p_rg = input('RG: ')
                   print(p_rg)
                   print('Tem certeza ?')
                   aysrg = input('s/n?: ')
                   if aysrg == 'n' or aysrg == 'N':
                       p_rg = input('RG: ')
                       print(p_rg)
                       print('Tem certeza ?')
                       aysrg = input('s/n?: ')
                   else:
                       pass
                   print('Turno (início "xx:xx/xx:xx" fim), no formato de 24 horas')
                   turno = input('=> ')
                   if '/' not in turno or ':' not in turno or len(turno)!=11:
                       while '/' not in turno or ':' not in turno or len(turno)!=11:
                           print('Turno inválido')
                           turno = input('Digite o turno novamente(início "xx:xx/xx:xx" fim): ')
                   print(turno)
                   print('Tem certeza ?')
                   aystr = input('s/n?: ')
                   if aystr == 'n' or aystr == 'N':
                       while aystr == 'n' or aystr == 'N':
                           print('Turno (início "xx:xx/xx:xx" fim), no formato de 24 horas')
                           turno = (input('=> '))
                           if '/' not in turno or ':' not in turno or len(turno)!=11:
                               while '/' not in turno or ':' not in turno or len(turno)!=11:
                                   print('Turno inválido')
                                   turno = input('Digite o turno novamente(início "xx:xx/xx:xx" fim): ')
                   elif aystr == 's' or aystr == 'S':
                       pass
                   salario = float(input('Salário: R$ '))
                   print(salario)
                   print('Tem certeza ?')
                   ayssl = input('s/n?: ')
                   if ayssl == 'n' or ayssl == 'N':
                       while ayssl == 'n' or ayssl == 'N':
                           salario = float(input('Salário: R$ '))
                   elif ayssl == 's' or ayssl == 'S':
                       pass
                   dic = {}
                   a12 = list(time.localtime())
                   calendario = ['Ano', 'Mês', 'Dia', 'Hora', 'Minuto', 'Segundo']
                   for i in range(6):
                       dic[calendario[i]] = a12[i]
                       i -= 1
                   dataadm = '{0}/{1}/{2}'.format(dic['Dia'], dic['Mês'], dic['Ano'])
                   cursor.execute("""
                   INSERT INTO cadastros (nome, usuario, senha, data_de_nascimento, cpf, fone, rg, turno, email, salario, data_de_admissao)
                   VALUES (?,?,?,?,?,?,?,?,?,?,?)
                   """, (nome, usu, passw, br, cp, p_fone, p_rg, turno, email, salario, dataadm))
                   conn.commit()
                   print('Dados inseridos com sucesso.')
                   conn.close()
               elif opc == '42':
                   import turtle
                   import math
                   import random
                   wn = turtle.Screen()
                   wn.bgcolor('black')
                   Albert = turtle.Turtle()
                   Albert.speed(0)
                   Albert.color('white')
                   rotate=int(360)
                   def drawCircles(t,size):
                       for i in range(10):
                           t.circle(size)
                           size=size-4
                   def drawSpecial(t,size,repeat):
                     for i in range (repeat):
                       drawCircles(t,size)
                       t.right(360/repeat)
                   drawSpecial(Albert,100,10)
                   Steve = turtle.Turtle()
                   Steve.speed(0)
                   Steve.color('yellow')
                   rotate=int(90)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-10
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Steve,100,10)
                   Barry = turtle.Turtle()
                   Barry.speed(0)
                   Barry.color('blue')
                   rotate=int(80)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-5
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Barry,100,10)
                   Terry = turtle.Turtle()
                   Terry.speed(0)
                   Terry.color('orange')
                   rotate=int(90)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-19
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Terry,100,10)
                   Will = turtle.Turtle()
                   Will.speed(0)
                   Will.color('pink')
                   rotate=int(90)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-20
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Will,100,10)
               elif opc == '2':
                   cursor.execute("""
                   SELECT * FROM cadastros;
                   """)
                   ids = []
                   for linha in cursor.fetchall():
                       print('Funcionário: {0} ---- ID: {1}'.format(linha[1], linha[0]))
                       ids.append(linha[0])
                   id_cliente = int(input('Digite o id do funcionário: '))
                   if id_cliente in ids:
                       pass
                   else:
                       while id_cliente not in ids:
                           id_cliente = int(input('Digite o id do funcionário: '))
                   novo_usuario = input('Digite o novo nome de usuário: ')
                   novo_fone = input('Digite o novo nº de telefone (XX)XXXX-XXXX: ')
                   nova_senha = input('Digite a nova senha: ')
                   cursor.execute(
                   UPDATE cadastros
                   SET usuario = ?, senha = ?, fone = ?
                   WHERE id = ?
                   , (novo_usuario, nova_senha, novo_fone, id_cliente))
                   conn.commit()
                   print('Dados atualizados com sucesso.')
                   conn.close()
               elif opc == '3':
                   cursor.execute("""
                   SELECT * FROM cadastros;
                   """)
                   ids = []
                   for linha in cursor.fetchall():
                       print('Funcionário: {0} ---- ID: {1}'.format(linha[1], linha[0]))
                       ids.append(linha[0])
                   id_cliente = int(input('Digite o id do funcionário: '))
                   if id_cliente in ids:
                       pass
                   else:
                       while id_cliente not in ids:
                           id_cliente = int(input('Digite o id do funcionário: '))
                   cursor.execute("""
                   DELETE FROM cadastros
                   WHERE id = ?
                   """, (id_cliente,))
                   conn.commit()
                   print('Registro excluido com sucesso.')
                   conn.close()
               elif opc == '4':
                   while True:
                       conn = sqlite3.connect('tabela.db')
                       cursor = conn.cursor()
                       print('Digite o nome (no mínimo 3 letras) ou 9 para sair')
                       pesq = input('=> ')
                       if pesq == '9':
                           break                        
                       if len(pesq) < 3:
                           while len(pesq) < 3:
                               print('No mínimo 3 letras')
                               pesq = input('=> ')
                       cursor.execute('SELECT * FROM cadastros WHERE nome LIKE "%{}%"'.format(pesq))
                       for lista in cursor.fetchall():
                           listagem = '\nFuncionário: {}\nUsuário: {}\nTelefone: {}\ne-mail: {}\nCPF: {}\nRG: {}\nData de nascimento: {}\nData de admissão: {}\nSalário: {}\n\n'.format(
                           lista[1], lista[2], lista[6], lista[7], lista[5], lista[9], lista[4], lista[11], lista[10])
                           print(listagem.center(80,' '))
                       conn.close()
               elif opc == '5':
                   while True:
                       conn = sqlite3.connect('tabela.db')
                       cursor = conn.cursor()


                       pesq1 = input('Digite o nome ou 9 para sair: ')
                       if pesq1 == '9':
                           break
                       else:
                           pass
                       cursor.execute('SELECT salario, nome FROM cadastros WHERE nome LIKE "%{}%"'.format(pesq1))
                       for l in cursor.fetchall():
                           salario = float(l[0])
                           nome = l[1]


                       if salario <= 1556.98:
                           salinss = (salario*(8/100))
                           pinss = 8
                       elif 1556.98 < salario <= 2594.92:
                           salinss = (salario * (9/100))
                           pinss = 9
                       elif 2594.92 < salario <= 5189.82:
                           salinss = (salario * (11/100))
                           pinss = 11
                       elif salario > 5189.82:
                           salinss = 570.88
                           pinss = '-'
                       else:
                           pass
                       base = salario - salinss
                       if base <= 1903.98:
                           salir = 0
                           pir = 0
                       elif 1903.98 < base <= 2826.65:
                           salir = (base*(7.5/100)-142.8)
                           pir = 7.5
                       elif 2826.65 < base <= 3751.05:
                           salir = (base*(15/100)-354.8)
                           pir = 15
                       elif 3751.05 < base <= 4664.68:
                           salir = (base*(22.5/100)-636.13)
                           pir = 22.5
                       elif base > 4664.68:
                           salir = (base*(27.5/100)-869.36)
                           pir = 27.5


                       if salir == 0:
                           salf = salario - salinss    
                       else:
                           salf = salario - salinss - salir    


                       resu = ('\n{}\nFuncionário: {}\nSalário Bruto:R$ {}\nINSS:R$ {} ({}%)\nIRRF:R$ {} ({}%)\nSoma dos descontos:R$ {}\nSalário líquido:R$ {}\n{}'.format(80*'*',nome,salario,'%.2f'%(salinss),pinss,'%.2f'%(salir),pir,'%.2f'%(salinss + salir),'%.2f'%salf,80*'*'))
                       print(resu.center(80,' '))
                       conn.close()
               elif opc == '6':
                   conn = sqlite3.connect('tabela.db')
                   cursor = conn.cursor()                   
                   
                   cursor.execute('SELECT salario, nome FROM cadastros ORDER BY nome')
                   sl = []
                   nqm = []
                   slt = []
                   slb = []
                   for l in cursor.fetchall():
                       sl.append(float(l[0]))
                       nqm.append(l[1])
                   for i in range(len(sl)):
                       if sl[i] <= 1556.98:
                           salinss = (sl[i] * (8/100))
                           pinss = 8
                       elif 1556.98 < sl[i] <= 2594.92:
                           salinss = (sl[i] * (9/100))
                           pinss = 9
                       elif 2594.92 < sl[i] <= 5189.82:
                           salinss = (sl[i] * (11/100))
                           pinss = 11
                       elif sl[i] > 5189.82:
                           salinss = 570.88
                           pinss = '-'
                       else:
                           pass
                       base = sl[i] - salinss
                       if base <= 1903.98:
                           salir = 0
                           pir = 0
                       elif 1903.98 < base <= 2826.65:
                           salir = (base*(7.5/100)-142.8)
                           pir = 7.5
                       elif 2826.65 < base <= 3751.05:
                           salir = (base*(15/100)-354.8)
                           pir = 15
                       elif 3751.05 < base <= 4664.68:
                           salir = (base*(22.5/100)-636.13)
                           pir = 22.5
                       elif base > 4664.68:
                           salir = (base*(27.5/100)-869.36)
                           pir = 27.5


                       if salir == 0:
                           salf = sl[i] - salinss    
                       else:
                           salf = sl[i] - salinss - salir
                       slt.append(salf)
                       slb.append(sl[i])
                       resu1 = ('\nFuncionário: {}\nSalário Bruto:R$ {}\nINSS:R$ {} ({}%)\nIRRF:R$ {} ({}%)\nSoma dos descontos: R$ {}\nSalário líquido:R$ {}\n{}'.format(nqm[i],sl[i],'%.2f'%(salinss),pinss,'%.2f'%(salir),pir,'%.2f'%(salinss + salir),'%.2f'%salf,80*'*'))
                       print(resu1.center(80,' '))
                   print(80*'=')
                   print('Soma líquida total = R$ %.2f'%sum(slt))
                   print('Soma bruta total = R$ %.2f'%sum(slb))
                   conn.close()
                   
               elif opc == '9':
                   print(':)')
                   break

</syntaxhighlight>
<syntaxhighlight lang="python3">

  1. -*- coding: utf-8 -*-

import sys import time import sqlite3


def arqexi(texto):

   try:
       arq = open(texto, "r")
       arq.close()
       return True
   except IOError:
       return False


def cpfv(a, b, c, d, e, f, g, h, i, j, k):

   cpf = [str(a), str(b), str(c), str(d), str(e), str(f), str(g), str(h), str(i), str(j), str(k)]
   A = a * 10 + b * 9 + c * 8 + d * 7 + e * 6 + f * 5 + g * 4 + h * 3 + i * 2
   resto1 = A % 11
   if resto1 == 0 or resto1 == 1:
       j_ = 0
       pass
   else:
       j_ = 11 - resto1
       pass
   B = a * 11 + b * 10 + c * 9 + d * 8 + e * 7 + f * 6 + g * 5 + h * 4 + i * 3 + j_ * 2
   resto2 = B % 11
   if resto2 == 0 or resto2 == 1:
       k_ = 0
       pass
   else:
       k_ = 11 - resto2
   cpfv_ = [str(a), str(b), str(c), str(d), str(e), str(f), str(g), str(h), str(i), str(j_), str(k_)]
   if cpf == cpfv_:
       return True
   else:
       return False


def datav(m1, d1, a1):

   anos = []
   for i in range(1800, 3000, 4):
       if i % 100 == 0:
           if i % 400 == 0:
               anos.append(i)
       elif i % 4 == 0:
           anos.append(i)
   if m1 == 1 or m1 == 3 or m1 == 5 or m1 == 7 or m1 == 8 or m1 == 10 or m1 == 12:
       if d1 <= 31 and d1 > 0:
           return True
       elif d1 > 31 and d1 < 0:
           return False
   elif m1 == 4 or m1 == 6 or m1 == 9 or m1 == 11:
       if d1 <= 30 and d1 > 0:
           return True
       elif d1 > 30 and d1 < 0:
           return True
   elif m1 == 2:
       if a1 in anos:
           if d1 <= 29 and d1 > 0:
               return True
           elif d1 > 29 and d1 < 0:
               return False
       else:
           if d1 <= 28 and d1 > 0:
               return True
           elif d1 > 28 and d1 < 0:
               return False
   else:
       return False


aq = arqexi('tabela.db') if not aq:

   conn = sqlite3.connect('tabela.db')
   cursor = conn.cursor()
   cursor.execute("""
           CREATE TABLE adms (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   nome TEXT NOT NULL,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_nascimento TEXT NOT NULL,
                   cpf     TEXT NOT NULL,
                   fone TEXT,
                   rg TEXT NOT NULL
           );
           """)
   cursor.execute("""
           CREATE TABLE cadastros (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   nome TEXT NOT NULL,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_nascimento TEXT NOT NULL,
                   cpf     TEXT NOT NULL,
                   fone TEXT,
                   email TEXT NOT NULL,
                   turno TEXT NOT NULL,
                   rg TEXT NOT NULL,
                   salario NUMERIC NOT NULL,
                   data_de_admissao DATE NOT NULL
           );
           """)
   cursor.execute("""
           CREATE TABLE entrada (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_entrada TEXT NOT NULL,
                   horario_de_entrada TEXT NOT NULL
           );
           """)
   cursor.execute("""
           CREATE TABLE saida (
                   id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
                   usuario TEXT NOT NULL,
                   senha TEXT NOT NULL,
                   data_de_saida TEXT NOT NULL,
                   horario_de_saida TEXT NOT NULL
           );
           """)
   print('Tabelas criadas com sucesso.')
   print('Cadastre o adm')
   nome = input("Insira o nome: ")
   print(nome)
   print("Tem certeza ?")
   aysn = input("s/n ?: ")
   if aysn == "n" or aysn == "N":
       while aysn == "n" or aysn == "N":
           nome = input("Insira o nome: ")
           print(nome)
           print("Tem certeza ?")
           aysn = input("s/n ?: ")
   elif aysn == "s" or aysn == "S":
       pass
   usu = input('Insira seu nome de usuário: ')
   print(usu)
   print("Tem certeza ?")
   aysu = input("s/n ?: ")
   if aysu == "n" or aysu == "N":
       while aysu == "n" or aysu == "N":
           usu = input("Insira seu nome de usuário: ")
           print(usu)
           print("Tem certeza ?")
           aysu = input("s/n ?: ")
   elif aysu == "s" or aysu == "S":
       pass
   passw = input('Insira sua senha: ')
   print(passw)
   print("Tem certeza ?")
   aysps = input("s/n ?: ")
   if aysps == "n" or aysps == "N":
       while aysps == "n" or aysps == "N":
           passw = input("Insira sua senha: ")
           print(passw)
           print("Tem certeza ?")
           aysps = input("s/n ?: ")
   elif aysps == "s" or aysps == "S":
       pass
   b = list(input("Data de nascimento(DD/MM/YYYY): "))
   if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
       while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
           print("Por favor, verifique a data de nascimento")
           b = input("Data de nascimento(DD/MM/YYYY): ")
   data = b
   m1 = int(data[3] + data[4])
   d1 = int(data[0] + data[1])
   a1 = int(data[6] + data[7] + data[8] + data[9])
   d = datav(m1, d1, a1)
   if d:
       pass
   else:
       while not d:
           print("Data inválida")
           b = list(input("Data de nascimento(DD/MM/YYYY): "))
           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                   print("Por favor, verifique a data de nascimento")
                   b = input("Data de nascimento(DD/MM/YYYY): ")
           data = b
           m1 = int(data[3] + data[4])
           d1 = int(data[0] + data[1])
           a1 = int(data[6] + data[7] + data[8] + data[9])
           d = datav(m1, d1, a1)
   br = (
       str(data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[9]))
   print(br)
   print("Tem certeza ?")
   aysb = input("s/n?: ")
   if aysb == "n" or aysb == "N":
       while aysb == "n" or aysb == "N":
           b = list(input("Data de nascimento(DD/MM/YYYY): "))
           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                   print("Por favor, verifique a data de nascimento")
                   b = input("Data de nascimento(DD/MM/YYYY):  ")
           data = b
           d1 = int(data[0] + data[1])
           m1 = int(data[3] + data[4])
           a1 = int(data[6] + data[7] + data[8] + data[9])
           d = datav(m1, d1, a1)
           if d:
               pass
           else:
               while not d:
                   print("Data inválida")
                   b = list(input("Data de nascimento(DD/MM/YYYY): "))
                   if len(b) != 10 or b[2] != "/" or b[5] != "/":
                       while len(b) != 10 or b[2] != "/" or b[5] != "/":
                           print("Por favor, verifique a data de nascimento")
                           b = input("Data de nascimento(DD/MM/YYYY): ")
                   data = b
                   d1 = int(data[0] + data[1])
                   m1 = int(data[3] + data[4])
                   a1 = int(data[6] + data[7] + data[8] + data[9])
                   d = datav(m1, d1, a1)
           br = (str(
               data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[
                   9]))
           print(br)
           print("Tem certeza ?")
           aysb = input("s/n?: ")
   elif aysb == "s" or aysb == "S":
       pass
   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[2] == cpf[
       4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
           2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
           print("Por favor, verifique o CPF")
           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
   else:
       pass
   a = int(cpf[0])
   b = int(cpf[1])
   c = int(cpf[2])
   d = int(cpf[4])
   e = int(cpf[5])
   f = int(cpf[6])
   g = int(cpf[8])
   h = int(cpf[9])
   i = int(cpf[10])
   j = int(cpf[12])
   k = int(cpf[13])
   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
   if not veri:
       print("CPF inválido")
       while not veri:
           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                   print("Por favor, verifique o CPF")
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           else:
               pass
           a = int(cpf[0])
           b = int(cpf[1])
           c = int(cpf[2])
           d = int(cpf[4])
           e = int(cpf[5])
           f = int(cpf[6])
           g = int(cpf[8])
           h = int(cpf[9])
           i = int(cpf[10])
           j = int(cpf[12])
           k = int(cpf[13])
           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
           pass
   cp = (str(
       cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[10] + cpf[
           11] + cpf[12] + cpf[13]))
   print(cp)
   print("Tem certeza ?")
   aysc = input("s/n ?: ")
   if aysc == "n" or aysc == "N":
       while aysc == "n" or aysc == "N":
           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                   print("Por favor, verifique o CPF")
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
           else:
               pass
           a = int(cpf[0])
           b = int(cpf[1])
           c = int(cpf[2])
           d = int(cpf[4])
           e = int(cpf[5])
           f = int(cpf[6])
           g = int(cpf[8])
           h = int(cpf[9])
           i = int(cpf[10])
           j = int(cpf[12])
           k = int(cpf[13])
           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
           if not veri:
               print("CPF inválido")
               while veri != True:
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                           cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == \
                               cpf[1] == cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                           print("Por favor, verifique o CPF")
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   else:
                       pass
                   a = int(cpf[0])
                   b = int(cpf[1])
                   c = int(cpf[2])
                   d = int(cpf[4])
                   e = int(cpf[5])
                   f = int(cpf[6])
                   g = int(cpf[8])
                   h = int(cpf[9])
                   i = int(cpf[10])
                   j = int(cpf[12])
                   k = int(cpf[13])
                   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                   pass
           cp = (str(
               cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[
                   10] + cpf[11] + cpf[12] + cpf[13]))
           print(cp)
           print("Tem certeza ?")
           aysc = input("s/n?: ")
   elif aysc == "s" or aysc == "S":
       pass
   p_fone = input('Fone(XX)XXXX-XXXX: ')
   if len(p_fone) == 14:
       if p_fone[4] == '9':
           pass
       elif p_fone[4] != '9':
           while p_fone[4] != '9':
               print('Telefone inválido')
               p_fone = input('Fone(XX)XXXX-XXXX: ')
       elif len(p_fone) < 13:
           while len(p_fone) < 13:
               print('Por favor, verifique seu telefone')
               p_fone = input('Fone(XX)XXXX-XXXX: ')
   p_rg = input('RG: ')
   print(p_rg)
   print('Tem certeza ?')
   aysrg = input('s/n?: ')
   if aysrg == 'n' or aysrg == 'N':
       p_rg = input('RG: ')
       print(p_rg)
       print('Tem certeza ?')
       aysrg = input('s/n?: ')
   else:
       pass
   cursor.execute("""
       INSERT INTO adms (nome, usuario, senha, data_de_nascimento, cpf, fone, rg)
       VALUES (?,?,?,?,?,?,?)
       """, (nome, usu, passw, br, cp, p_fone, p_rg))
   conn.commit()
   print('Dados inseridos com sucesso.')
   conn.close()

else:

   pass

while True:

   usuhellow = (input('Digite seu usuário: '))
   conn = sqlite3.connect('tabela.db')
   cursor = conn.cursor()
   usu1 = []
   pass1 = []
   pass2=[]
   usu2 = []
   cursor.execute("""
       SELECT usuario FROM cadastros
       """)
   for linha in cursor.fetchall():
       usu2.append(linha[0])
   cursor.execute("""
       SELECT senha FROM cadastros
       """)
   for linha in cursor.fetchall():
       pass2.append(linha[0])
   cursor.execute("""
       SELECT usuario FROM adms
       """)
   for linha1 in cursor.fetchall():
       usu1.append(linha1[0])
   cursor.execute("""
       SELECT senha FROM adms
       """)
   for linha1 in cursor.fetchall():
       pass1.append(linha1[0])
   if usuhellow not in usu1 and usuhellow not in usu2:
       while usuhellow not in usu1 and usuhellow not in usu2:
           print('Usuario não cadastrado')
           usuhellow = (input('Digite seu usuário novamente: '))
           
   if usuhellow in usu2:
       passhellow = input('Digite sua senha: ')
       if passhellow not in pass2:
           while passhellow not in pass2:
               print('Senha incorreta')
               passhellow = input('Digite novamente sua senha: ')
           pass
       if passhellow in pass2:
           while True:
               conn = sqlite3.connect('tabela.db')
               cursor = conn.cursor()
               calendario = ['Ano', 'Mês', 'Dia', 'Hora', 'Minuto', 'Segundo']
               a12 = list(time.localtime())
               dic = {}
               for i in range(6):
                   dic[calendario[i]] = a12[i]
                   i -= 1
               data = '{0}/{1}/{2}'.format(dic['Dia'], dic['Mês'], dic['Ano'])
               horario = '{0}:{1}:{2}'.format(dic['Hora'], dic['Minuto'], dic['Segundo'])
               cursor.execute("""
                       INSERT INTO entrada (usuario, senha, data_de_entrada, horario_de_entrada)
                       VALUES (?,?,?,?)
                       """, (usuhellow, passhellow, data, horario))
               conn.commit()
               saida = str('O funcionário ' + usuhellow + ' entrou dia ' + data + ' às ' + horario)
               print(saida)
               conn.close()
               sys.exit(':)')
   elif usuhellow in usu1:
       passhellow1 = input('Digite sua senha: ')
       if passhellow1 not in pass1:
           while passhellow1 not in pass1:
               print('Senha incorreta')
               passhellow1 = input('Digite novamente sua senha: ')
           pass
       if passhellow1 in pass1:
           while True:
               conn = sqlite3.connect('tabela.db')
               cursor = conn.cursor()
               print(80 * '=')
               hello = 'Bem vindo ao gerenciador de expediente'
               print(hello.center(80, ' '))
               print('Digite:\n1 Cadastrar\n2 Atualizar dados\n3 Deletar\n4 Listar funcionários\n5 Gerar folha de pagamento\n6 Listar folhas de pagamento\n9 Sair')
               opc = input('=> ')
               if opc == '1':
                   nome = input("Insira o nome: ")
                   print(nome)
                   print("Tem certeza ?")
                   aysn = input("s/n ?: ")
                   if aysn == "n" or aysn == "N":
                       while aysn == "n" or aysn == "N":
                           nome = input("Insira o nome: ")
                           print(nome)
                           print("Tem certeza ?")
                           aysn = input("s/n ?: ")
                   elif aysn == "s" or aysn == "S":
                       pass
                   usu = input('Insira seu nome de usuário: ')
                   print(usu)
                   print("Tem certeza ?")
                   aysu = input("s/n ?: ")
                   if aysu == "n" or aysu == "N":
                       while aysu == "n" or aysu == "N":
                           usu = input("Insira seu nome de usuário: ")
                           print(usu)
                           print("Tem certeza ?")
                           aysu = input("s/n ?: ")
                   elif aysu == "s" or aysu == "S":
                       pass
                   passw = input('Insira sua senha: ')
                   print(passw)
                   print("Tem certeza ?")
                   aysps = input("s/n ?: ")
                   if aysps == "n" or aysps == "N":
                       while aysps == "n" or aysps == "N":
                           passw = input("Insira sua senha: ")
                           print(passw)
                           print("Tem certeza ?")
                           aysps = input("s/n ?: ")
                   elif aysps == "s" or aysps == "S":
                       pass
                   b = list(input("Data de nascimento(DD/MM/YYYY): "))
                   if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                       while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                           print("Por favor, verifique a data de nascimento")
                           b = input("Data de nascimento(DD/MM/YYYY): ")
                   data = b
                   m1 = int(data[3] + data[4])
                   d1 = int(data[0] + data[1])
                   a1 = int(data[6] + data[7] + data[8] + data[9])
                   d = datav(m1, d1, a1)
                   if d:
                       pass
                   else:
                       while not d:
                           print("Data inválida")
                           b = list(input("Data de nascimento(DD/MM/YYYY): "))
                           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                                   print("Por favor, verifique a data de nascimento")
                                   b = input("Data de nascimento(DD/MM/YYYY): ")
                           data = b
                           m1 = int(data[3] + data[4])
                           d1 = int(data[0] + data[1])
                           a1 = int(data[6] + data[7] + data[8] + data[9])
                           d = datav(m1, d1, a1)
                   br = (
                       str(data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[9]))
                   print(br)
                   print("Tem certeza ?")
                   aysb = input("s/n?: ")
                   if aysb == "n" or aysb == "N":
                       while aysb == "n" or aysb == "N":
                           b = list(input("Data de nascimento(DD/MM/YYYY): "))
                           if len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                               while len(b) != 10 or b[2] != "/" or b[5] != "/" or b[6] == b[7] == b[8] == b[9]:
                                   print("Por favor, verifique a data de nascimento")
                                   b = input("Data de nascimento(DD/MM/YYYY):  ")
                           data = b
                           d1 = int(data[0] + data[1])
                           m1 = int(data[3] + data[4])
                           a1 = int(data[6] + data[7] + data[8] + data[9])
                           d = datav(m1, d1, a1)
                           if d:
                               pass
                           else:
                               while not d:
                                   print("Data inválida")
                                   b = list(input("Data de nascimento(DD/MM/YYYY): "))
                                   if len(b) != 10 or b[2] != "/" or b[5] != "/":
                                       while len(b) != 10 or b[2] != "/" or b[5] != "/":
                                           print("Por favor, verifique a data de nascimento")
                                           b = input("Data de nascimento(DD/MM/YYYY): ")
                                   data = b
                                   d1 = int(data[0] + data[1])
                                   m1 = int(data[3] + data[4])
                                   a1 = int(data[6] + data[7] + data[8] + data[9])
                                   d = datav(m1, d1, a1)
                           br = (str(
                               data[0] + data[1] + data[2] + data[3] + data[4] + data[5] + data[6] + data[7] + data[8] + data[
                                   9]))
                           print(br)
                           print("Tem certeza ?")
                           aysb = input("s/n?: ")
                   elif aysb == "s" or aysb == "S":
                       pass
                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[2] == cpf[
                       4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
                           2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                           print("Por favor, verifique o CPF")
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                   else:
                       pass
                   a = int(cpf[0])
                   b = int(cpf[1])
                   c = int(cpf[2])
                   d = int(cpf[4])
                   e = int(cpf[5])
                   f = int(cpf[6])
                   g = int(cpf[8])
                   h = int(cpf[9])
                   i = int(cpf[10])
                   j = int(cpf[12])
                   k = int(cpf[13])
                   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                   if not veri:
                       print("CPF inválido")
                       while not veri:
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
                               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                   print("Por favor, verifique o CPF")
                                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           else:
                               pass
                           a = int(cpf[0])
                           b = int(cpf[1])
                           c = int(cpf[2])
                           d = int(cpf[4])
                           e = int(cpf[5])
                           f = int(cpf[6])
                           g = int(cpf[8])
                           h = int(cpf[9])
                           i = int(cpf[10])
                           j = int(cpf[12])
                           k = int(cpf[13])
                           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                           pass
                   cp = (str(
                       cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[10] + cpf[
                           11] + cpf[12] + cpf[13]))
                   print(cp)
                   print("Tem certeza ?")
                   aysc = input("s/n ?: ")
                   if aysc == "n" or aysc == "N":
                       while aysc == "n" or aysc == "N":
                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == cpf[
                               2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                               while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                                       cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                   print("Por favor, verifique o CPF")
                                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                           else:
                               pass
                           a = int(cpf[0])
                           b = int(cpf[1])
                           c = int(cpf[2])
                           d = int(cpf[4])
                           e = int(cpf[5])
                           f = int(cpf[6])
                           g = int(cpf[8])
                           h = int(cpf[9])
                           i = int(cpf[10])
                           j = int(cpf[12])
                           k = int(cpf[13])
                           veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                           if not veri:
                               print("CPF inválido")
                               while veri != True:
                                   cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                                   if len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == cpf[1] == \
                                           cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                       while len(cpf) != 14 or cpf[3] != "." or cpf[7] != "." or cpf[11] != "-" or cpf[0] == \
                                               cpf[1] == cpf[2] == cpf[4] == cpf[5] == cpf[6] == cpf[8] == cpf[9] == cpf[10]:
                                           print("Por favor, verifique o CPF")
                                           cpf = list(input("CPF(XXX.XXX.XXX-XX): "))
                                   else:
                                       pass
                                   a = int(cpf[0])
                                   b = int(cpf[1])
                                   c = int(cpf[2])
                                   d = int(cpf[4])
                                   e = int(cpf[5])
                                   f = int(cpf[6])
                                   g = int(cpf[8])
                                   h = int(cpf[9])
                                   i = int(cpf[10])
                                   j = int(cpf[12])
                                   k = int(cpf[13])
                                   veri = cpfv(a, b, c, d, e, f, g, h, i, j, k)
                                   pass
                           cp = (str(
                               cpf[0] + cpf[1] + cpf[2] + cpf[3] + cpf[4] + cpf[5] + cpf[6] + cpf[7] + cpf[8] + cpf[9] + cpf[
                                   10] + cpf[11] + cpf[12] + cpf[13]))
                           print(cp)
                           print("Tem certeza ?")
                           aysc = input("s/n?: ")
                   elif aysc == "s" or aysc == "S":
                       pass
                   email = (input('e-mail: '))
                   emailv=[]
                   conn = sqlite3.connect('tabela.db')
                   cursor = conn.cursor()
                   cursor.execute("SELECT email FROM cadastros;")
                   for l in cursor.fetchall():
                       emailv.append(l[0])
                   if email in emailv:
                       while email in emailv:
                           print('Usuário já cadastrado')
                           email=input('Digite outro e-mail: ')
                   if '@' in email:
                       print(email)
                       print('Tem certeza ?')
                       aysem = input('s/n?: ')
                       if aysem == 's' or aysem == 'S':
                           pass
                       elif aysem == 'n' or aysem == 'N':
                           while aysem == 's' or aysem == 'S':
                               email = (input('e-mail: '))
                               print(email)
                               print('Tem certeza ?')
                               aysem = input('s/n?: ')
                   elif '@' not in email:
                       while '@' not in email:
                           print('e-mail inválido, porfavor digite novamente')
                           email = (input('=> '))
                           print(email)
                           print('Tem certeza ?')
                           aysem = input('s/n?: ')
                           if aysem == 's' or aysem == 'S':
                               pass
                           elif aysem == 'n' or aysem == 'N':
                               while aysem == 's' or aysem == 'S':
                                   email = (input('e-mail: '))
                                   print(email)
                                   print('Tem certeza ?')
                                   aysem = input('s/n?: ')
                   p_fone = input('Fone(XX)XXXX-XXXX: ')
                   if len(p_fone) == 14:
                       if p_fone[4] == '9':
                           pass
                       elif p_fone[4] != '9':
                           while p_fone[4] != '9':
                               print('Telefone inválido')
                               p_fone = input('Fone(XX)XXXX-XXXX: ')
                       elif len(p_fone) < 13:
                           while len(p_fone) < 13:
                               print('Por favor, verifique seu telefone')
                               p_fone = input('Fone(XX)XXXX-XXXX: ')
                   p_rg = input('RG: ')
                   print(p_rg)
                   print('Tem certeza ?')
                   aysrg = input('s/n?: ')
                   if aysrg == 'n' or aysrg == 'N':
                       p_rg = input('RG: ')
                       print(p_rg)
                       print('Tem certeza ?')
                       aysrg = input('s/n?: ')
                   else:
                       pass
                   print('Turno (início "xx:xx/xx:xx" fim), no formato de 24 horas')
                   turno = input('=> ')
                   if '/' not in turno or ':' not in turno or len(turno)!=11:
                       while '/' not in turno or ':' not in turno or len(turno)!=11:
                           print('Turno inválido')
                           turno = input('Digite o turno novamente(início "xx:xx/xx:xx" fim): ')
                   print(turno)
                   print('Tem certeza ?')
                   aystr = input('s/n?: ')
                   if aystr == 'n' or aystr == 'N':
                       while aystr == 'n' or aystr == 'N':
                           print('Turno (início "xx:xx/xx:xx" fim), no formato de 24 horas')
                           turno = (input('=> '))
                           if '/' not in turno or ':' not in turno or len(turno)!=11:
                               while '/' not in turno or ':' not in turno or len(turno)!=11:
                                   print('Turno inválido')
                                   turno = input('Digite o turno novamente(início "xx:xx/xx:xx" fim): ')
                   elif aystr == 's' or aystr == 'S':
                       pass
                   salario = float(input('Salário: R$ '))
                   print(salario)
                   print('Tem certeza ?')
                   ayssl = input('s/n?: ')
                   if ayssl == 'n' or ayssl == 'N':
                       while ayssl == 'n' or ayssl == 'N':
                           salario = float(input('Salário: R$ '))
                   elif ayssl == 's' or ayssl == 'S':
                       pass
                   dic = {}
                   a12 = list(time.localtime())
                   calendario = ['Ano', 'Mês', 'Dia', 'Hora', 'Minuto', 'Segundo']
                   for i in range(6):
                       dic[calendario[i]] = a12[i]
                       i -= 1
                   dataadm = '{0}/{1}/{2}'.format(dic['Dia'], dic['Mês'], dic['Ano'])
                   cursor.execute("""
                   INSERT INTO cadastros (nome, usuario, senha, data_de_nascimento, cpf, fone, rg, turno, email, salario, data_de_admissao)
                   VALUES (?,?,?,?,?,?,?,?,?,?,?)
                   """, (nome, usu, passw, br, cp, p_fone, p_rg, turno, email, salario, dataadm))
                   conn.commit()
                   print('Dados inseridos com sucesso.')
                   conn.close()
               elif opc == '42':
                   import turtle
                   import math
                   import random
                   wn = turtle.Screen()
                   wn.bgcolor('black')
                   Albert = turtle.Turtle()
                   Albert.speed(0)
                   Albert.color('white')
                   rotate=int(360)
                   def drawCircles(t,size):
                       for i in range(10):
                           t.circle(size)
                           size=size-4
                   def drawSpecial(t,size,repeat):
                     for i in range (repeat):
                       drawCircles(t,size)
                       t.right(360/repeat)
                   drawSpecial(Albert,100,10)
                   Steve = turtle.Turtle()
                   Steve.speed(0)
                   Steve.color('yellow')
                   rotate=int(90)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-10
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Steve,100,10)
                   Barry = turtle.Turtle()
                   Barry.speed(0)
                   Barry.color('blue')
                   rotate=int(80)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-5
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Barry,100,10)
                   Terry = turtle.Turtle()
                   Terry.speed(0)
                   Terry.color('orange')
                   rotate=int(90)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-19
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Terry,100,10)
                   Will = turtle.Turtle()
                   Will.speed(0)
                   Will.color('pink')
                   rotate=int(90)
                   def drawCircles(t,size):
                       for i in range(4):
                           t.circle(size)
                           size=size-20
                   def drawSpecial(t,size,repeat):
                       for i in range (repeat):
                           drawCircles(t,size)
                           t.right(360/repeat)
                   drawSpecial(Will,100,10)
               elif opc == '2':
                   cursor.execute("""
                   SELECT * FROM cadastros;
                   """)
                   ids = []
                   for linha in cursor.fetchall():
                       print('Funcionário: {0} ---- ID: {1}'.format(linha[1], linha[0]))
                       ids.append(linha[0])
                   id_cliente = int(input('Digite o id do funcionário: '))
                   if id_cliente in ids:
                       pass
                   else:
                       while id_cliente not in ids:
                           id_cliente = int(input('Digite o id do funcionário: '))
                   novo_usuario = input('Digite o novo nome de usuário: ')
                   novo_fone = input('Digite o novo nº de telefone (XX)XXXX-XXXX: ')
                   nova_senha = input('Digite a nova senha: ')
                   cursor.execute(
                   UPDATE cadastros
                   SET usuario = ?, senha = ?, fone = ?
                   WHERE id = ?
                   , (novo_usuario, nova_senha, novo_fone, id_cliente))
                   conn.commit()
                   print('Dados atualizados com sucesso.')
                   conn.close()
               elif opc == '3':
                   cursor.execute("""
                   SELECT * FROM cadastros;
                   """)
                   ids = []
                   for linha in cursor.fetchall():
                       print('Funcionário: {0} ---- ID: {1}'.format(linha[1], linha[0]))
                       ids.append(linha[0])
                   id_cliente = int(input('Digite o id do funcionário: '))
                   if id_cliente in ids:
                       pass
                   else:
                       while id_cliente not in ids:
                           id_cliente = int(input('Digite o id do funcionário: '))
                   cursor.execute("""
                   DELETE FROM cadastros
                   WHERE id = ?
                   """, (id_cliente,))
                   conn.commit()
                   print('Registro excluido com sucesso.')
                   conn.close()
               elif opc == '4':
                   while True:
                       conn = sqlite3.connect('tabela.db')
                       cursor = conn.cursor()
                       print('Digite o primeiro nome como foi cadastrado(no mínimo 4 letras) ou 9 para sair')
                       pesq = input('=> ')
                       if pesq == '9':
                           break
                       if len(pesq) < 4:
                           while len(pesq) < 4:
                               print('No mínimo 4 letras')
                               pesq = input('=> ')
                       cursor.execute('SELECT * FROM cadastros WHERE nome LIKE "{}%"'.format(pesq))
                       for lista in cursor.fetchall():
                           listagem = '\nFuncionário: {}\nUsuário: {}\nTelefone: {}\ne-mail: {}\nCPF: {}\nRG: {}\nData de nascimento: {}\nData de admissão: {}\nSalário: {}\n\n'.format(
                           lista[1], lista[2], lista[6], lista[7], lista[5], lista[9], lista[4], lista[11], lista[10])
                           print(listagem.center(80,' '))
                       conn.close()
               elif opc == '5':
                   print('Ainda não implementado')
               elif opc == '6':
                   print('Ainda não implementado')
               elif opc == '9':
                   print(':)')
                   break

</syntaxhighlight>

Escopo

  • Objetivo da aplicação
    • Desenvolver um software que tenha a capacidade de ler dados decorrentes dos funcionários de uma empresa que apresenta três turnos de serviço (matutino, vespertino e noturno), bem como realizar o cadastro dos mesmos com informações pessoais necessárias para que seja admitido como funcionário (identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, etc.). O armazenamento de dados dos funcionários será necessário para que seja calculado o salário final de cada um ao final de cada mês, baseando-se nas horas in itineres (horas extras) e as horas normais de serviço (de acordo com a Lei nº 10.243, de 19 de Junho de 2001), isto é, pelos registros dos horários de entrada e saída bem como dias de domingo e feriados.



Entradas

  • O que o sistemas receberá de dados?
    • Ex: quais dados serão digitados via teclado
Identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, email, nome de funcionário, senha para login dos funcionários da empresa.


Saídas

  • O que será gerado de resultado impresso?
    • Ex: quais dados serão publicados na tela ou no papel

Data e horário de entrada e saída de cada um dos funcionários e o salário final de cada um deles.

Armazenamento

  • O que será gravado em arquivo
    • Indentidade, CPF, data de nascimento, email, senha, carteira de motorista, carteira de trabalho e horas trabalhadas de acordo com os horários de entrada e saída bem como os dias trabalhados para cada um dos funcionários da empresa.


Cálculos

  • O que será processado?
    • Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.


Fase II


  • O que vocês fariam se fossem evoluir neste código?
    • Melhorar o sistema de autenticação (corrigir erro de autentificar com a senha de outra pessoa)
    • Verificador de número de telefone
    • Usar outro gerenciador de banco de dados (Substituir o sqlite3)
    • Otimizar o sistema

Desenvolvedores

  • Asaph Souza Diniz
  • Camila Vieira Verardo
  • João Vitor Pereira Leite
  • Leticia de Almeira Takata
  • Pedro Henrique Machado Rodrigues