def remover_questao(prof, id_usuario_online): limpar_tela() print('Remover Questão') menus_questoes[1]() opc = func_entrada(int, '', True, 3) if opc == 1: # Exibir todas as questões limpar_tela() letras = ['a) ', 'b) ', 'c) ', 'd) ', 'e) '] apareceu = [] for questao in Questao.questoes: if questao.ativa: num = randint(0, 4) apareceu.clear() print( f'ID: {questao.id_questao + 1}, Matéria: {questao.materia}, Assunto: {questao.palavra_chave}' ) print(f'{questao.texto}') for i in range(0, 5): while num in apareceu: num = randint(0, 4) print(f'{letras[i]}{questao.alternativas[num]}') apareceu.append(num) if len(str(id_usuario_online)) < 4: print(f'\nResposta: {questao.resposta}\n') else: print() elif opc == 2: # Exibir questões por matéria limpar_tela() for index, materia in enumerate(Questao.materias, start=1): print(f'{index} - {materia}') opc = func_entrada(int, '--> ', True, len(Questao.materias)) letras = ['a) ', 'b) ', 'c) ', 'd) ', 'e) '] apareceu = [] for questao in Questao.questoes: if questao.materia == Questao.materias[opc - 1] and questao.ativa: num = randint(0, 4) apareceu.clear() print( f'\nID: {questao.id_questao + 1}, Matéria: {questao.materia}, Assunto: {questao.palavra_chave}' ) print(f'{questao.texto}') for i in range(0, 5): while num in apareceu: num = randint(0, 4) print(f'{letras[i]}{questao.alternativas[num]}') apareceu.append(num) if len(str(id_usuario_online)) < 4: print(f'\nResposta: {questao.resposta}\n') else: print() else: questoes(prof, id_usuario_online) id_remover = func_entrada(int, '\nID da questão que deseja remover: ') Questao.questoes[id_remover - 1].ativa = False print('\nQuestão removida com sucesso!\n') input() remover_questao(prof, id_usuario_online)
def banco_de_questoes(prof, id_usuario_online): limpar_tela() menus_bancos[prof]() if (prof): opcao = func_entrada(int, '', True, 8) funcoes_professor[opcao - 1](prof, id_usuario_online) else: # É aluno opcao = func_entrada(int, '', True, 5) funcoes_aluno[opcao - 1](prof, id_usuario_online)
def editar_perfil_professor(prof, id_usuario_online): limpar_tela() professor = Professor.professores[id_usuario_online - 1] print(f'1 - Nome: {professor.nome}') print(f'2 - Instituição: {professor.instituicao}') print(f'3 - Matéria que leciona: {professor.materia}') print(f'4 - Login: {professor.login}') print('5 - Senha') print('6 - Desativar conta') print('7 - Retornar') opc = func_entrada(int, '--> ', True, 1, 7) if opc == 1: professor.nome = func_entrada(str, 'Novo Nome: ') print('\nNome alterado com sucesso!') input() elif opc == 2: professor.instituicao = func_entrada(str, 'Nova Instituição: ') print('\nInstituição alterada com sucesso!') input() elif opc == 3: professor.materia = func_entrada(str, 'Nova Matéria: ') print('\nMatéria alterada com sucesso!') input() elif opc == 4: professor.login = func_entrada(str, 'Novo Login: '******'\nLogin alterado com sucesso!') input() elif opc == 5: senha_atual = hashing(func_entrada(getpass, 'Senha atual: ')) if senha_atual == professor.senha: nova_senha = func_entrada(getpass, 'Nova senha: ') confirmar = func_entrada(getpass, 'Confirmar a nova senha: ') if nova_senha == confirmar: professor.senha = hashing(nova_senha) print('\nSenha alterada com sucesso!') input() else: print('As senhas estão diferentes!') input() else: print('Senha incorreta!') input() elif opc == 6: confirmar = func_entrada( str, '\nConfirmar exclusão da conta? (s/n)\n--> ').lower() if confirmar == 's': professor.ativo = False print('\nConta excluída com sucesso!') input() login.login() elif opc == 7: banco_de_questoes(prof, id_usuario_online) editar_perfil_professor(prof, id_usuario_online)
def adicionar_questao(id_usuario_online): print('Adicionar Questão') materia = func_entrada(str, 'Matéria: ') palavra_chave = func_entrada(str, 'Assunto: ') texto = func_entrada(str, 'Texto: ') resposta = func_entrada(str, 'Resposta: ') alternativas = [func_entrada(str, f'Alternativa {i}: ') for i in range(1, 5)] alternativas.append(resposta) nova_questao = Questao(materia, palavra_chave, texto, resposta, alternativas, id_usuario_online, Questao.indice_questoes, True) Questao.questoes.append(nova_questao) Questao.quantidade_questoes += 1 Questao.indice_questoes += 1 if materia not in Questao.materias: Questao.materias.append(materia) print('\nQuestão adicionada com sucesso!\n') input()
def lançar_venda(): print('\n-=-=- REGISTRAR VENDA -=-=-') venda = Venda() valor = func_entrada(float, 'Valor da venda: R$') data_venda = date.today() print('Empregado responsável pela venda:') aux_func = Empregado.localizar_empregado() if not aux_func: print('\nNão há empregados com esse ID!') input() return print('\nFuncionário localizado!') venda.valor = valor venda.ativo = True venda.data = data_venda.strftime('%d/%m/%Y') venda.id_empregado = aux_func.id_empregado Venda.vendas.append(venda) Transação.trns_ultima_undo.append(['Venda', venda.id_empregado]) Transação.trns_undo.append(venda) Transação.trns_redo.clear() Transação.trns_ultima_redo.clear() print('\nVenda registrada com sucesso!') input()
def func_taxas_serviço(): while True: menu_taxas_serviço() opção = func_entrada(int, '', limite=True, lim_inf=1, lim_sup=3) if opção == 1: lançar_taxa_serviço() elif opção == 2: TaxaDeServiço.mostrar_taxas_serviço() elif opção == 3: return
def editar_usuario(self): print(f'1 - Nome: {self.nome}') print(f'2 - Instituição: {self.instituicao}') print(f'3 - Matéria que leciona: {self.materia}') print(f'4 - Login: {self.login}') print('5 - Senha') print('6 - Desativar conta') print('7 - Retornar') opc = func_entrada(int, '--> ', True, 7) if opc == 1: self.nome = func_entrada(str, 'Novo Nome: ') print('\nNome alterado com sucesso!') input() elif opc == 2: self.instituicao = func_entrada(str, 'Nova Instituição: ') print('\nInstituição alterada com sucesso!') input() elif opc == 3: self.materia = func_entrada(str, 'Nova Matéria: ') print('\nMatéria alterada com sucesso!') input() elif opc == 4: self.login = func_entrada(str, 'Novo Login: '******'\nLogin alterado com sucesso!') input() elif opc == 5: senha_atual = hashing(func_entrada(getpass, 'Senha atual: ')) if senha_atual == self.senha: nova_senha = func_entrada(getpass, 'Nova senha: ') confirmar = func_entrada(getpass, 'Confirmar a nova senha: ') if nova_senha == confirmar: self.senha = hashing(nova_senha) print('\nSenha alterada com sucesso!') input() else: print('As senhas estão diferentes!') input() else: print('Senha incorreta!') input() elif opc == 6: confirmar = func_entrada( str, '\nConfirmar exclusão da conta? (s/n)\n--> ').lower() if confirmar == 's': self.remover() print('\nConta excluída com sucesso!') input() login.login() elif opc == 7: pass
def func_vendas(): while True: menu_vendas() opção = func_entrada(int, '', limite=True, lim_inf=1, lim_sup=3) if opção == 1: lançar_venda() elif opção == 2: Venda.mostrar_vendas() elif opção == 3: return
def adicionar_professor(): print('Adicionar Professor') nome = func_entrada(str, 'Nome: ') instituicao = func_entrada(str, 'Instituição: ') materia = func_entrada(str, 'Matéria que leciona: ') login = func_entrada(str, 'Login: '******'Senha: ') novo_prof = Professor(1, nome, instituicao, materia, login, senha, Professor.indice_atual_professores + 1, True) Professor.indice_atual_professores += 1 Professor.professores.append(novo_prof) TodosUsuarios.quantidade_usuarios += 1 TodosUsuarios.usuarios.append(novo_prof) print('\nProfessor cadastrado com sucesso!\n') input()
def gerar_prova(prof, id_usuario_online): limpar_tela() print('Gerar Prova') print('Quais matérias colocar na prova?') print('(Separe com um espaço simples. Ex.: 1 2 4)') for index, materia in enumerate(Questao.materias, start=1): print(f'{index} - {materia}') opcoes = func_entrada(str, '--> ') opcoes = opcoes.split(' ') print('\nMatérias escolhidas:') qtd_questoes = [] materias_escolhidas = [] for index, opcao in enumerate(opcoes, start=1): print(f'{index} - {Questao.materias[int(opcao) - 1]}') materias_escolhidas.append(Questao.materias[int(opcao) - 1]) maximo = 0 for questao in Questao.questoes: if Questao.materias[int(opcao) - 1] == questao.materia: maximo += 1 qtd_questoes.append( int(input(f'Quantidade de questões: (Max = {maximo}) '))) print() print(f'Total de questões: {sum(qtd_questoes)}') questoes_materias_escolhidas = [] for questao in Questao.questoes: if questao.materia in materias_escolhidas: questoes_materias_escolhidas.append(questao) escolhidas = [] indice = randint(0, len(questoes_materias_escolhidas) - 1) for index, qtd in enumerate(qtd_questoes): while qtd > 0: if questoes_materias_escolhidas[ indice] not in escolhidas and questoes_materias_escolhidas[ indice].materia == materias_escolhidas[index]: escolhidas.append(questoes_materias_escolhidas[indice]) qtd -= 1 else: indice = randint(0, len(questoes_materias_escolhidas) - 1) shuffle(escolhidas) letras = ['a) ', 'b) ', 'c) ', 'd) ', 'e) '] prova = open('prova.txt', 'w', encoding='utf-8') gabarito = open('gabarito.txt', 'w', encoding='utf-8') for index, questao in enumerate(escolhidas, start=1): prova.write(f'{index} {questao.texto}\n') gabarito.write(f'{index} {questao.resposta}\n') shuffle(questao.alternativas) for index2, alternativa in enumerate(questao.alternativas): prova.write(f'{letras[index2]}{alternativa}\n') prova.write('\n') prova.close() gabarito.close() print('\nProva e gabaritos gerados com sucesso!\n') input() banco_de_questoes(prof, id_usuario_online)
def func_cartão_ponto(): while True: menu_cartão_ponto() opção = func_entrada(int, '', limite=True, lim_inf=1, lim_sup=4) if opção == 1: lançar_cartão_ponto(1) elif opção == 2: lançar_cartão_ponto(2) elif opção == 3: CartãoPonto.mostrar_pontos() elif opção == 4: return
def localizar_empregado(id_emp=-1): if id_emp == -1: id_func = func_entrada(int, 'Insira o ID do funcionário: ') for empregado in Empregado.empregados: if id_func == empregado.id_empregado: return empregado return False else: return Empregado.empregados[id_emp - 1]
def adicionar_aluno(id_usuario_online): print('Adicionar Aluno') nome = func_entrada(str, 'Nome: ') instituicao = func_entrada(str, 'Instituição: ') idade = func_entrada(int, 'Idade: ') login = func_entrada(str, 'Login: '******'Senha: ') novo_aluno = Aluno(0, nome, instituicao, idade, login, senha, Aluno.indice_atual_alunos + 1001, id_usuario_online, True) Aluno.indice_atual_alunos += 1 Aluno.alunos.append(novo_aluno) TodosUsuarios.quantidade_usuarios += 1 TodosUsuarios.usuarios.append(novo_aluno) print('\nAluno cadastrado com sucesso!\n') input()
def login(): while(True): limpar_tela() ler_usuarios() atualizar_questoes() try: login = func_entrada(str, 'Login: '******'Senha: ') if usuarios_dict[login][0] == hashing(senha): print('\nLogin realizado com sucesso!\n') input() banco_de_questoes(usuarios_dict[login][1], usuarios_dict[login][2]) exit() else: print('\nSenha incorreta!\n') input() system('clear') except KeyError: print('\nUsuário não cadastrado!\n') exit()
def editar_perfil_aluno(prof, id_usuario_online): limpar_tela() print('Editar Perfil Aluno') aluno = Aluno.alunos[id_usuario_online - 1001] print(f'1 - Nome: {aluno.nome}') print(f'2 - Instituição: {aluno.instituicao}') print(f'3 - Idade: {aluno.idade}') print(f'4 - Login: {aluno.login}') print('5 - Senha') print('6 - Retornar') opc = func_entrada(int, '--> ', True, 1, 6) if opc == 1: aluno.nome = func_entrada(str, 'Novo Nome: ') print('\nNome alterado com sucesso!') input() elif opc == 2: aluno.instituicao = func_entrada(str, 'Nova Instituição: ') print('\nInstituição alterada com sucesso!') input() elif opc == 3: aluno.idade = func_entrada(str, 'Nova Idade: ') print('\nIdade alterada com sucesso!') input() elif opc == 4: aluno.login = func_entrada(str, 'Novo Login: '******'\nLogin alterado com sucesso!') input() elif opc == 5: senha_atual = hashing(func_entrada(getpass, 'Senha atual: ')) if senha_atual == aluno.senha: nova_senha = func_entrada(getpass, 'Nova senha: ') confirmar = func_entrada(getpass, 'Confirmar a nova senha: ') if nova_senha == confirmar: aluno.senha = hashing(nova_senha) print('\nSenha alterada com sucesso!') input() else: print('As senhas estão diferentes!') input() else: print('Senha incorreta!') input() elif opc == 6: banco_de_questoes(prof, id_usuario_online) editar_perfil_aluno(prof, id_usuario_online)
def editar_usuario(self): print(f'1 - Nome: {self.nome}') print(f'2 - Instituição: {self.instituicao}') print(f'3 - Idade: {self.idade}') print(f'4 - Login: {self.login}') print('5 - Senha') print('6 - Retornar') opc = func_entrada(int, '--> ', True, 6) if opc == 1: self.nome = func_entrada(str, 'Novo Nome: ') print('\nNome alterado com sucesso!') input() elif opc == 2: self.instituicao = func_entrada(str, 'Nova Instituição: ') print('\nInstituição alterada com sucesso!') input() elif opc == 3: self.idade = func_entrada(str, 'Nova Idade: ') print('\nIdade alterada com sucesso!') input() elif opc == 4: self.login = func_entrada(str, 'Novo Login: '******'\nLogin alterado com sucesso!') input() elif opc == 5: senha_atual = hashing(func_entrada(getpass, 'Senha atual: ')) if senha_atual == self.senha: nova_senha = func_entrada(getpass, 'Nova senha: ') confirmar = func_entrada(getpass, 'Confirmar a nova senha: ') if nova_senha == confirmar: self.senha = hashing(nova_senha) print('\nSenha alterada com sucesso!') input() else: print('As senhas estão diferentes!') input() else: print('Senha incorreta!') input() elif opc == 6: pass
def remover_aluno(prof, id_usuario_online): limpar_tela() print('Remover Aluno') tem_aluno = False for aluno in Aluno.alunos: if aluno.id_professor == id_usuario_online and aluno.ativo: tem_aluno = True print(f'ID: {aluno.id_usuario}\nNome: {aluno.nome}\n') if tem_aluno: id_aluno = func_entrada(int, 'ID do aluno que deseja remover: ') for aluno in Aluno.alunos: if aluno.id_usuario == id_aluno: aluno.remover() print('\nAluno removido com sucesso!') break else: print('\nVocê não possui alunos cadastrados.') input() banco_de_questoes(prof, id_usuario_online)
def lançar_taxa_serviço(): taxa = TaxaDeServiço() valor = func_entrada(float, 'Valor da taxa: R$') taxa.valor = valor print('Funcionário associado à taxa:') aux_func = Empregado.localizar_empregado() if not aux_func: print('\nNão há empregados com esse ID!') input() return print('\nFuncionário localizado!') print(f'\nNome: {aux_func.nome}') taxa.id_empregado = aux_func.id_empregado taxa.mes = date.today().month taxa.ativo = True TaxaDeServiço.taxas.append(taxa) Transação.trns_undo.append(taxa) Transação.trns_ultima_undo.append(['Taxa', taxa.id_empregado]) Transação.trns_redo.clear() Transação.trns_ultima_redo.clear() print('Taxa associada com sucesso!') input()
def alunos(prof, id_usuario_online): limpar_tela() menu_alunos() opc = func_entrada(int, '', True, 4) funcoes_prof_aluno[opc - 1](prof, id_usuario_online)
def gerar_simulado(prof, id_usuario_online): limpar_tela() print('Gerar Simulado') print('Quais matérias colocar no simulado?') print('(Separe com um espaço simples. Ex.: 1 2 4)') for index, materia in enumerate(Questao.materias, start=1): print(f'{index} - {materia}') opcoes = func_entrada(str, '--> ') opcoes = opcoes.split(' ') print('\nMatérias escolhidas:') qtd_questoes = [] materias_escolhidas = [] for index, opcao in enumerate(opcoes, start=1): print(f'{index} - {Questao.materias[int(opcao) - 1]}') materias_escolhidas.append(Questao.materias[int(opcao) - 1]) maximo = 0 for questao in Questao.questoes: if Questao.materias[int(opcao) - 1] == questao.materia: maximo += 1 qtd_questoes.append( int(input(f'Quantidade de questões: (Max = {maximo}) '))) print() print(f'Total de questões: {sum(qtd_questoes)}') input() questoes_materias_escolhidas = [] for questao in Questao.questoes: if questao.materia in materias_escolhidas: questoes_materias_escolhidas.append(questao) escolhidas = [] indice = randint(0, len(questoes_materias_escolhidas) - 1) for index, qtd in enumerate(qtd_questoes): while qtd > 0: if questoes_materias_escolhidas[ indice] not in escolhidas and questoes_materias_escolhidas[ indice].materia == materias_escolhidas[index]: escolhidas.append(questoes_materias_escolhidas[indice]) qtd -= 1 else: indice = randint(0, len(questoes_materias_escolhidas) - 1) shuffle(escolhidas) gabarito = [] for escolhida in escolhidas: gabarito.append(escolhida.resposta) limpar_tela() letras = ['a) ', 'b) ', 'c) ', 'd) ', 'e) '] dict_resposta = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4} respostas = [] for index, questao in enumerate(escolhidas, start=1): print(f'{index} {questao.texto}') shuffle(questao.alternativas) for index2, alternativa in enumerate(questao.alternativas): print(f'{letras[index2]}{alternativa}') resp = str(input('\nResposta (letra): ')).lower() if questao.alternativas[dict_resposta[resp]] == questao.resposta: respostas.append(1) else: respostas.append(0) print() print('\n-=-=-=-=-=- RESULTADOS -=-=-=-=-=-\n') nota = (10 * sum(respostas)) / len(escolhidas) acertos = respostas.count(1) print(f'\nVocê acertou {acertos} questão de {len(escolhidas)}' if acertos == 1 else f'\nVocê acertou {acertos} questões de {len(escolhidas)}') print(f'Sua nota foi: {nota:.2f} de 10') print('\nRespostas:\n') for index, questao in enumerate(escolhidas, start=1): print(f'{index} {questao.resposta}') input() banco_de_questoes(prof, id_usuario_online)
for indice in range(len(TaxaDeServiço.taxas) - 1, -1, -1): if TaxaDeServiço.taxas[indice].id_empregado == transação[1]: TaxaDeServiço.taxas[indice].ativo = True break Transação.trns_undo.append(Transação.trns_redo.pop()) Transação.trns_ultima_undo.append(transação) print('\nOperação refeita com sucesso!') input() """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" """ PROGRAMA PRINCIPAL """ """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" """""" while True: menu_principal() opção = func_entrada(int, '', limite=True, lim_inf=1, lim_sup=9) if opção == 1: func_empregado() elif opção == 2: rodar_folha() elif opção == 3: func_cartão_ponto() elif opção == 4: func_vendas() elif opção == 5: func_taxas_serviço() elif opção == 6: listar_agendas() elif opção == 7: undo() elif opção == 8: redo() elif opção == 9: print('\nAté logo!\n') exit()
def editar_empregado(): while True: print('\n-=-=- EDITAR -=-=-') while True: aux_func = Empregado.localizar_empregado() if not aux_func: print('\nNão existe funcionário com esse ID!') else: print('\nFuncionário localizado!') break print(f'\nNome: {aux_func.nome}') print(f'Endereço: {aux_func.endereço}') print( f'Tipo de empregado: {Empregado.tipo_empregado[aux_func.t_empregado]}' ) print('Sindicato: ', end='') print(f'Sim' if aux_func.sindicato else 'Não') print( f'Prazo de pagamento: {Empregado.prazo_pagamento[aux_func.p_pagamento]}' ) print( f'Forma de pagamento: {Empregado.forma_pagamento[aux_func.f_pagamento]}\n' ) editar = func_entrada(int, """1 - Nome 2 - Endereço 3 - Tipo de empregado 4 - Sindicato 5 - Prazo de pagamento 6 - Forma de pagamento 7 - Retornar >> """, limite=True, lim_inf=1, lim_sup=7) if editar == 1: novo_nome = func_entrada(str, 'Novo nome: ') aux_func.nome = novo_nome elif editar == 2: novo_endereço = func_entrada(str, 'Novo endereço: ') aux_func.endereço = novo_endereço elif editar == 3: novo_tipo = func_entrada(int, """\nTipo de empregado 1 - Horário 2 - Assalariado 3 - Comissionado >> """, limite=True, lim_inf=1, lim_sup=3) aux_func.t_empregado = novo_tipo - 1 if novo_tipo == 1: novo_valor_hora = func_entrada(float, 'Novo valor da hora: R$') aux_func.valor_hora = novo_valor_hora elif novo_tipo == 2 or novo_tipo == 3: novo_salario = func_entrada(float, 'Novo salário: R$') aux_func.salario = novo_salario if novo_tipo == 3: nova_comissao = func_entrada( float, 'Nova comissão (sem o sinal de %): ', limite=True, lim_inf=0.0, lim_sup=100.0) aux_func.comissao = nova_comissao elif editar == 4: novo_sindicato = func_entrada( str, 'Percente a sindicato? (s/n) ').lower().strip()[0] if novo_sindicato == 's': aux_func.sindicato = True taxa = func_entrada(float, 'Taxa do sindicato: R$') aux_func.taxa = taxa aux_func.id_sindicato = Empregado.id_sindicato + 1 Empregado.id_sindicato += 1 elif novo_sindicato == 'n': aux_func.sindicato = False aux_func.taxa = -1 elif editar == 5: novo_prazo_pagamento = func_entrada(int, """Prazo de pagamento 1 - Semanal 2 - Mensal 3 - Quinzenal >> """, limite=True, lim_inf=1, lim_sup=3) aux_func.p_pagamento = novo_prazo_pagamento - 1 novo_dia_preferido = func_entrada(int, """Dia preferido para pagamento 2 - Segunda 3 - Terça 4 - Quarta 5 - Quinta 6 - Sexta >> """, limite=True, lim_inf=2, lim_sup=6) aux_func.dia_preferido = novo_dia_preferido data_hoje = date.today() if novo_prazo_pagamento == 1: delta = timedelta(days=7) elif novo_prazo_pagamento == 2: if data_hoje.month in [1, 3, 5, 7, 8, 10, 12]: delta = timedelta(days=31) elif data_hoje.month == 2: if checar_ano_bissexto(data_hoje): delta = timedelta(days=29) else: delta = timedelta(days=28) else: delta = timedelta(days=30) elif novo_prazo_pagamento == 3: delta = timedelta(days=15) data_hoje += delta aux_func.proximo_pagamento = data_hoje.strftime('%d/%m/%Y') elif editar == 6: nova_forma_pagamento = func_entrada(int, """Forma de pagamento 1 - Cheque correios 2 - Cheque mãos 3 - Depósito bancário >> """, limite=True, lim_inf=1, lim_sup=3) aux_func.f_pagamento = nova_forma_pagamento - 1 elif editar == 7: return aux_func.duplicar() Transação.trns_ultima_undo.append(['Editar', aux_func.id_empregado]) continuar = func_entrada( str, 'Deseja editar algo mais? (s/n) ').lower().strip()[0] if continuar == 'n': return
def questoes(prof, id_usuario_online): limpar_tela() menus_questoes[0]() opc = func_entrada(int, '', True, 4) funcoes_questoes[opc - 1](prof, id_usuario_online)
def adicionar_empregado(): print('\n-=-=- ADICIONAR -=-=-') ativo = True id_empregado = Empregado.id_empregado + 1 Empregado.id_empregado += 1 nome = func_entrada(str, 'Nome: ') endereço = func_entrada(str, 'Endereço: ') sindicato = func_entrada(str, 'Pertence a sindicato? (s/n) ').lower().strip()[0] if sindicato == 's': sindicato = True taxa = func_entrada(float, 'Taxa do sindicato: R$') id_sindicato = Empregado.id_sindicato + 1 id_sindicato += 1 elif sindicato == 'n': sindicato = False id_sindicato = -1 taxa = -1 prazo_pagamento = func_entrada(int, """Prazo de pagamento 1 - Semanal 2 - Mensal 3 - Quinzenal >> """, limite=True, lim_inf=1, lim_sup=3) prazo_pagamento -= 1 forma_pagamento = func_entrada(int, """Forma de pagamento 1 - Cheque correios 2 - Cheque mãos 3 - Depósito bancário >> """, limite=True, lim_inf=1, lim_sup=3) forma_pagamento -= 1 dia_preferido = func_entrada(int, """Dia preferido para pagamento 2 - Segunda 3 - Terça 4 - Quarta 5 - Quinta 6 - Sexta >> """, limite=True, lim_inf=2, lim_sup=6) data_hoje = date.today() if prazo_pagamento == 0: delta = timedelta(days=7) elif prazo_pagamento == 1: if data_hoje.month in [1, 3, 5, 7, 8, 10, 12]: delta = timedelta(days=31) elif data_hoje.month == 2: if checar_ano_bissexto(data_hoje): delta = timedelta(days=29) else: delta = timedelta(days=28) else: delta = timedelta(days=30) elif prazo_pagamento == 2: delta = timedelta(days=15) data_hoje += delta proximo_pagamento = data_hoje.strftime('%d/%m/%Y') tipo = func_entrada(int, """Tipo de empregado 1 - Horário 2 - Assalariado 3 - Comissionado >> """, limite=True, lim_inf=1, lim_sup=3) tipo -= 1 if tipo == 0: valor_hora = func_entrada(float, 'Valor da hora: R$') novo_empregado = Horario(id_empregado, nome, endereço, tipo, forma_pagamento, dia_preferido, ativo, sindicato, taxa, id_sindicato, '', proximo_pagamento, prazo_pagamento, valor_hora) elif tipo == 1: salario = func_entrada(float, 'Salário: R$') novo_empregado = Assalariado(id_empregado, nome, endereço, tipo, forma_pagamento, dia_preferido, ativo, sindicato, taxa, id_sindicato, '', proximo_pagamento, prazo_pagamento, salario) elif tipo == 2: salario = func_entrada(float, 'Salário: R$') comissao = func_entrada(float, 'Comissão (sem o sinal de %): ', limite=True, lim_inf=0.0, lim_sup=100.0) novo_empregado = Comissionado(id_empregado, nome, endereço, tipo, forma_pagamento, dia_preferido, ativo, sindicato, taxa, id_sindicato, '', proximo_pagamento, prazo_pagamento, salario, comissao) Empregado.empregados.append(novo_empregado) novo_empregado.duplicar() Transação.trns_ultima_undo.append( ['Adicionar', novo_empregado.id_empregado]) print('\nEmpregado cadastrado com sucesso!') input()