def aplicacao(socket_cliente, endereco, usuario): print("Conexão Estabelecida com: %s" % str(endereco)) # Envio Produtos para o Cliente produtos_byte = pickle.dumps(produtos) socket_cliente.enviar_bytes(produtos_byte) # Parte do Usuário while True: menu = socket_cliente.receber_inteiro() # Entrar em uma Conta if menu == 1: email = socket_cliente.receber_decodificado() senha = socket_cliente.receber_decodificado() if email == ' ' or senha == ' ': resposta = 'Digite Email e Senha.' socket_cliente.enviar(resposta) else: validacao = 0 for u in usuarios_cadastrados: if email == u.get_email( ): # Verificar se o Email está Cadastrado validacao = 1 if u.checa_senha( senha): # Verificar se a Senha está Correta print(u.get_senha()) if u not in usuarios_ativos: # Verifica se o usuario não está conectado resposta = 'Bem vindo' socket_cliente.enviar(resposta) usuario = u enviar_usuario(socket_cliente, usuario) guardar_usuario(usuario) break else: # Usuário já conectado resposta = 'Este usuário já está Conectado\nDesconecte ou Tente Outro Usuário' socket_cliente.enviar(resposta) else: # Senha Errada resposta = 'Senha Incorreta.\nTente Novamente.' socket_cliente.enviar(resposta) if validacao == 0: # Email não Cadastrado resposta = 'Email Não Cadastrado.\nCadastre ou Tente Novamente.' socket_cliente.enviar(resposta) # Criar uma Conta elif menu == 2: nome = socket_cliente.receber_decodificado() email = socket_cliente.receber_decodificado() senha = socket_cliente.receber_decodificado() if nome == ' ' or email == ' ' or senha == ' ': resposta = 'Digite Nome, Email\ne Senha.' socket_cliente.enviar(resposta) else: emails = [u.get_email() for u in usuarios_cadastrados ] # Lista com os emails cadastrados if email in emails: resposta = 'Email já Cadastrado. \nPor Favor, Tente Novamente.' socket_cliente.enviar(resposta) else: resposta = 'Conta criada' socket_cliente.enviar(resposta) nome_correto = nome.title().strip() usuario = Usuario(nome_correto, email, senha) usuarios_cadastrados.append(usuario) with open('usuarios.pickle', 'wb') as a_usuarios: pickle.dump(usuarios_cadastrados, a_usuarios) enviar_usuario(socket_cliente, usuario) guardar_usuario(usuario) # Adicionar Valor na Careira elif menu == 3: valor = socket_cliente.receber_float() resposta = usuario.get_carteira().adicionar(valor) socket_cliente.enviar(resposta) enviar_usuario(socket_cliente, usuario) # Adicionar Item no Carrinho elif menu == 4: id_produto = socket_cliente.receber_inteiro() quantidade = socket_cliente.receber_inteiro() if quantidade > 0: item = Item(produtos[id_produto], quantidade) usuario.get_compra().add_item(item) enviar_usuario(socket_cliente, usuario) resposta = 'Item Adicionado ao Carrinho com Sucesso!' socket_cliente.enviar(resposta) else: resposta = 'Quantidade Inválida!' socket_cliente.enviar(resposta) # Finalizar Compra elif menu == 5: if usuario.get_compra().get_valor_compra() > 0: resposta = usuario.get_carteira().pagar( usuario.get_compra().get_valor_compra()) socket_cliente.enviar(resposta) if resposta == 'Pagamento Aprovado.\nCompra Bem Sucedida!': usuario.fechar_compra() enviar_usuario(socket_cliente, usuario) else: resposta = 'Compra Vazia!' socket_cliente.enviar(resposta) # Remover Item do Carrinho elif menu == 6: id_lista = socket_cliente.receber_inteiro() if id_lista == -1 or id_lista > usuario.get_compra().tamanho_lista( ): resposta = 'Id Inválido!' socket_cliente.enviar(resposta) else: usuario.get_compra().remover_item(id_lista - 1) enviar_usuario(socket_cliente, usuario) resposta = 'Item Removido.' socket_cliente.enviar(resposta) # Sair elif menu == 9: salvar_usuario(usuario) resposta = "Obrigado por Comprar na nossa Loja\n Compre Conosco Sempre que Puder!" socket_cliente.enviar(resposta) # Fechar Tela elif menu == 0: salvar_usuario(usuario) break # Finaliza a Conexão socket_cliente.fechar()
item = Item(produtos[id_produto], quantidade) usuario.get_compra().add_item(item) enviar_usuario() resposta = 'Item Adicionado ao Carrinho com Sucesso!' socket_cliente.enviar(resposta) else: resposta = 'Quantidade Inválida!' socket_cliente.enviar(resposta) # Finalizar Compra if menu == 5: if usuario.get_compra().get_valor_compra() > 0: resposta = usuario.get_carteira().pagar( usuario.get_compra().get_valor_compra()) socket_cliente.enviar(resposta) if resposta == 'Pagamento Aprovado.\nCompra Bem Sucedida!': usuario.fechar_compra() enviar_usuario() else: resposta = 'Compra Vazia!' socket_cliente.enviar(resposta) # Remover Item do Carrinho if menu == 6: id_lista = socket_cliente.receber_inteiro() if id_lista == -1 or id_lista > usuario.get_compra().tamanho_lista( ): resposta = 'Id Inválido!' socket_cliente.enviar(resposta) else: usuario.get_compra().remover_item(id_lista - 1) enviar_usuario() resposta = 'Item Removido.'