Sem resumo de edição |
m →Fase II Etiqueta: visualeditor |
||
| (6 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| Linha 1: | Linha 1: | ||
= Código = | |||
<syntaxhighlight lang="python3" line="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><br><syntaxhighlight lang="python3"> | |||
# -*- 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><br> | |||
= Escopo = | = Escopo = | ||
* Objetivo da aplicação | * 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.<br> | ** 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.<br> | ||
<br> | |||
| Linha 9: | Linha 1 988: | ||
** Ex: quais dados serão digitados via teclado | ** 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. | Identidade, CPF, data de nascimento, carteira de motorista, carteira de trabalho, email, nome de funcionário, senha para login dos funcionários da empresa. | ||
<br> | |||
= Saídas = | = Saídas = | ||
| Linha 15: | Linha 1 994: | ||
** Ex: quais dados serão publicados na tela ou no papel | ** 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.<br> | Data e horário de entrada e saída de cada um dos funcionários e o salário final de cada um deles.<br> | ||
<br> | |||
= Armazenamento = | = Armazenamento = | ||
* O que será gravado em arquivo | * 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.<br> | |||
<br> | |||
= Cálculos = | = Cálculos = | ||
* O que será processado? | * O que será processado? | ||
Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.<br> | ** Calcular o salário líquido final de acordo com o número de horas trabalhadas por dia.<br> | ||
<br> | |||
= Fase II = | |||
<br> | |||
* 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 (Cadastro) | |||
** Verificador de turno (Cadastro) | |||
** Verificador de carga horária (Limite de 8 hrs diárias) | |||
** Utilizar as datas de entrada e saída para calcular o salário pela assiduidade | |||
** Calcular salário de horas extras e de turnos diferentes | |||
** Automatizar o cálculo de horas extras pelos dados de entrada e saída | |||
** Usar outro gerenciador de banco de dados (Substituir o sqlite3) | |||
** Otimizar o sistema | |||
= Desenvolvedores = | = Desenvolvedores = | ||
Asaph Souza Diniz | * Asaph Souza Diniz | ||
* Camila Vieira Verardo | |||
* João Vitor Pereira Leite | |||
* Leticia de Almeira Takata | |||
* Pedro Henrique Machado Rodrigues | |||
<br> | <br> | ||
Edição atual tal como às 19h54min de 30 de junho de 2016
Código
<syntaxhighlight lang="python3" line="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">
- -*- 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.
- 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.
- 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.
- 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 (Cadastro)
- Verificador de turno (Cadastro)
- Verificador de carga horária (Limite de 8 hrs diárias)
- Utilizar as datas de entrada e saída para calcular o salário pela assiduidade
- Calcular salário de horas extras e de turnos diferentes
- Automatizar o cálculo de horas extras pelos dados de entrada e saída
- 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