示例#1
0
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)
示例#2
0
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)
示例#4
0
 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()
示例#5
0
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()
示例#6
0
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
示例#8
0
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()
示例#10
0
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)
示例#11
0
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
示例#17
0
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)
示例#18
0
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()
示例#19
0
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)
示例#20
0
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)
示例#21
0
        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()
示例#22
0
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
示例#23
0
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)
示例#24
0
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()