def __main__(): conta = Conta(1, "Gustavo", 55.0, 1000.0) conta2 = Conta(2, "Pedro", 50.0, 1000.0) d = Data(21, 11, 2007) op = 1 while (op != 0): op = int( input( "\nExtrado = 1, Sacar = 2, Depositar = 3, Ver Data = 4, Transfere = 5\n Opção: " )) if (op == 1): print(conta.extrato()) if (op == 2): quant = float(input("\nValor a sacar: ")) conta.saca(quant) if (op == 3): quant = float(input("\nValor a depositar: ")) conta.deposita(quant) if (op == 4): d.formatada() if (op == 5): conta2.transfere(50, conta) if (op == 6): codigos = conta.codigo_banco() print(codigos['BB'])
def test_conta_deposito(): c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 100) cc.depositar(200) assert cc.saldo == 300, 'Saldo da conta incorreto' assert ('deposito', 200) in cc.tirar_extrato(), ('Depósito não registrado no extrato')
def cadastro(self): nome = self.tela_cadastro.lineEditNome.text() sobrenome = self.tela_cadastro.lineEditSobrenome.text() cpf = self.tela_cadastro.lineEditCpf.text() senha = self.tela_cadastro.lineEditSenha.text() if not (nome == '' or sobrenome == '' or cpf == '' or senha == ''): if cpf not in self.banco.clientes: c = Cliente(nome, sobrenome, cpf) if (self.banco.cadastrar_cliente(c)): conta = Conta(c, senha) if self.banco.cadastrar_conta(conta): QMessageBox.information( None, '$Bank', f'O seu cadastro foi realizado!\nNumero da conta: {conta.numero}' ) self.abrirTelaInicial() else: QMessageBox.information(None, '$Bank', 'Erro ao cadastrar dados') else: QMessageBox.information(None, '$Bank', 'O CPF informado já está cadastrado!') else: QMessageBox.information( None, '$Bank', 'É obrigatório preencher todos os campos!')
def abre_conta(self, clientes, saldo_inicial): if saldo_inicial < 0: raise ValueError else: num_contas = len(self.__contas)+1 c1 = Conta(clientes, num_contas, saldo_inicial) self.__contas.append(c1)
def main(): cliente = Pessoa('Edson', 34, '999.999.999-99') # Para conseguir utilizar os valores e os # métodos da conta, primeiramente é # necessário instância-la nova_conta = Conta() nova_conta.agencia = 12 nova_conta.numero = 100 nova_conta.cliente = cliente print('Uma nova conta foi criada') print(nova_conta.saldo) nova_conta.depositar(500) nova_conta.depositar(2000) nova_conta.sacar(2000) print(nova_conta.saldo) print(f'Agência: {nova_conta.agencia}') print(f'Número: {nova_conta.numero}') print(f'Cliente: {nova_conta.cliente.nome}') print('---- Movimentações ----') for mov in nova_conta.movimentacoes: print(f'Data: {mov.data}') print(f'Valor: {mov.valor}') print(f'Tipo: {mov.tipo}') print('\n')
def abre_conta(self, clientes, saldo): if saldo < 0: raise ValueError else: numero = len(self.__contas) + 1 c1 = Conta(clientes, numero, saldo) self.__contas.append(c1)
def abre_conta(self, lista_clientes, saldo_inicial): if saldo_inicial < 0: raise ValueError() else: self.__contas.append( Conta(lista_clientes, self.__ultimaconta + 1, saldo_inicial)) self.__ultimaconta = self.__ultimaconta + 1
def test_conta_saque(): c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 100) cc.sacar(50) assert cc.saldo == 50, 'Saldo da conta incorreto' assert ('saque', 50) in cc.tirar_extrato(), ('Saque não registrado no extrato')
class teste: conta1 = Conta(100) conta1.imprimir_saldo() conta2 = Conta_corrente(1000) conta2.imprimir_saldo() conta2.depositar(150) conta2.retirar(100) conta2.imprimir_saldo() conta3 = Conta_poupanca(500) conta3.imprimir_saldo() conta3.poupar() conta3.imprimir_saldo() conta4 = Conta_imposto(500) conta4.calcular_imposto(5) conta4.imprimir_saldo()
def test_conta_clientes(): c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 0) clientes = cc.clientes assert len(clientes) == 1, 'Esta conta deveria ter apenas 1 cliente' assert clientes[0].nome == 'nome', 'Nome do cliente incorreto' assert clientes[0].email == '*****@*****.**', 'Email do cliente incorreto' assert clientes[0].telefone == 99999999, 'Telefone do cliente incorreto'
def executa(): cc = Conta(123, "Eric Clapton", 150.5) cc.extrato() cc.deposita(50) cc.extrato() cc.saca(50) cc.extrato() cc_2 = Conta(111, "Jonh Travolta", 250.0) cc_2.extrato() cc_2.transfere(45, cc) cc_2.extrato() print(Conta.codigo_banco()) print(Conta.codigos_bancos())
def cadastro(self,nConta,feedBackLabel): if self.contas.has_key(nConta) : feedBackLabel["text"]="Conta já cadastrada!" else: conta = Conta(nConta) self.contas[nConta] = conta feedBackLabel["text"]="Conta cadastrada com sucesso!"
def main(): # Para conseguir utilizar os valores e os métodos da conta, primeiramente é necessário instância-la nova_conta = Conta() print('Uma nova conta foi criada') print(nova_conta.saldo) nova_conta.depositar(500) nova_conta.depositar(2000) print(nova_conta.saldo)
def nova_conta(self): print_center("Cadastrar nova conta\n") print_center("=" * 80) nome_cliente = None telefone_cliente = None tipo_cliente = None limite_cliente = 0 nome_cliente = raw_input("Nome do cliente: ")[:50].strip().upper() if (len(nome_cliente) <= 3): raw_input("\nO nome informado e invalido!") return telefone_cliente = raw_input("Num. telefone: ")[:15].strip() if (len(telefone_cliente) <= 8): raw_input("\nO telefone informado e invalido!") return tipo_cliente = raw_input( "Qual a categoria deste cliente? [C]omun ou [E]special: " )[:1].strip().upper() if ((tipo_cliente != "C") and (tipo_cliente != "E")): raw_input("\nO tipo informado e invalido!") return if (tipo_cliente == "E"): limite_cliente = float( raw_input("Qual limite bancario deste cliente? $ ") [:15].strip()) if ((limite_cliente <= 0) or (limite_cliente > 10000)): raw_input( "\nO limite informado e invalido (o max. permitido e $ 10.000)!" ) return novo_cliente = Cliente(nome=nome_cliente, telefone=telefone_cliente) num_cadastro_cliente = novo_cliente.getID() if (tipo_cliente == "C"): nova_conta = Conta(cliente_id=num_cadastro_cliente) elif (tipo_cliente == "E"): nova_conta = ContaEspecial(cliente_id=num_cadastro_cliente) nova_conta.limite(limite_cliente) self._dataset["CLIENTES"].append(novo_cliente) self._dataset["CONTAS"].append(nova_conta) # persistir dados self.store() self.cabecalho_tela(nova_conta, novo_cliente) print_center("Cliente cadastrado com sucesso!\n\n") print_center("Codigo de cliente: {:8d}".format( nova_conta.getClienteID())) print_center("Numero conta: {:8d}\n\n\n".format( nova_conta.getNumero())) raw_input("\nPressione [ENTER] para voltar ao menu.") return
def criar_conta(cliente_gerado): print('\t[ ! ] Finalizando cadastro do cliente: {}'.format( cliente_gerado.nome)) saldo = float( input('\n\t[ ? ] Digite a quantidade em reais que a conta terá. | R$')) limite = float(input('\t[ ? ] Digite o limite da conta em reais. | R$')) conta_cliente = Conta(cliente_criado, saldo, limite) print('\n\t[ / ] Conta do cliente criada com sucesso!\n') return conta_cliente
def test_conta_extrato(): c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 100) extrato = cc.tirar_extrato() assert type(extrato) == list, 'O extrato deve ser uma lista' assert len(extrato) == 1, ( 'O extrato deve conter apenas uma entrada para esse teste') assert ('saldo inicial', 100) in extrato, ('Saque inicial não registrado no extrato')
def criar_conta(self): Cliente.clientes.append(self) print( "Agora que seu cadastro foi aceito, sua conta será gerada! Responda as perguntas necessárias!" ) sleep(15) agencia = "0001" numero_conta = "" for i in range(1, 7): numero = randint(0, 9) if i % 5 == 0: numero_conta = numero_conta + str(numero) + "-" else: numero_conta = numero_conta + str(numero) taxa_rendimento = 0 tipo_conta = "Conta Corrente" nome_titular = self.nome saldo = 0 tipo_produto = "Conta" conta_criada = Conta(saldo, nome_titular, tipo_produto, agencia, numero_conta, taxa_rendimento, tipo_conta) while conta_criada.add_conta() != 0: numero_conta = "" for i in range(1, 7): numero = randint(0, 9) if i % 5 == 0: numero_conta = numero_conta + str(numero) + "-" else: numero_conta = numero_conta + str(numero) conta_criada = Conta(saldo, nome_titular, tipo_produto, agencia, numero_conta, taxa_rendimento, tipo_conta) else: self.contas.append(conta_criada)
def adicInic(self, ident, cpf, saldo): no = Conta(ident, cpf, saldo) if self.__inicio == None: no.prox = self.inicio self.__inicio = no self.__tamanho += 1 else: print('Lista já tem o primeiro objeto')
def __init__(self, clientAddress, clientsocket, sinc): threading.Thread.__init__(self) self._clientAddress = clienteAddress self._csocket = clientsocket self._sinc = sinc print("Nova conexão: ", clientAddress) self._contas = Conta() self._cpf_autenticado = None
def criar_conta(cliente): clear_screen() print('\nAdicionar nova conta') print(f'Nome do cliente: {cliente.nome}') saldo = int(input('Saldo:')) limite = int(input('Limite:')) return Conta(cliente, saldo, limite)
def test_cria_conta(): try: c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 0) except Exception: assert False, 'Erro ao criar conta' else: assert hasattr(cc, 'clientes'), 'Não criou o atributo público clientes' assert hasattr(cc, 'numero'), 'Não criou o atributo público numero' assert hasattr(cc, 'saldo'), 'Não criou o atributo público saldo'
def store(self, seed=False): if (seed): # populando com dados de demostracao... clientes = [{ "TIPO": "COMUM", "SALDO_INI": 380.00, "CADASTRO": Cliente("Joao da Silva Filho", "(62) 98001-0001") }, { "TIPO": "COMUM", "SALDO_INI": 50.00, "CADASTRO": Cliente("Maria das gracas meneguel", "(62) 98022-2222") }, { "TIPO": "ESPECIAL", "SALDO_INI": 250000.00, "LIMITE": 1000000, "CADASTRO": Cliente("Silvio Santos", "(11) 98000-0000") }, { "TIPO": "COMUM", "SALDO_INI": 10.00, "CADASTRO": Cliente("Getulio Vargas", "(11) 98044-4444") }, { "TIPO": "ESPECIAL", "SALDO_INI": 500000, "LIMITE": 300000, "CADASTRO": Cliente("Paulo Guedes", "(11) 98000-0001") }] for cliente in clientes: if (cliente["TIPO"] == "COMUM"): conta = Conta(cliente_id=cliente["CADASTRO"].getID(), saldo=cliente["SALDO_INI"]) elif (cliente["TIPO"] == "ESPECIAL"): conta = ContaEspecial( cliente_id=cliente["CADASTRO"].getID(), saldo=cliente["SALDO_INI"]).limite(cliente["LIMITE"]) self._dataset["CLIENTES"].append(cliente["CADASTRO"]) self._dataset["CONTAS"].append(conta) # salvar em arquivo binario compactado... with open(self._filename, 'wb') as fp: fp.write( zlib.compress( pickle.dumps(self._dataset, pickle.HIGHEST_PROTOCOL), 9)) return self
def adicFim(self, ident, cpf, saldo): if self.__vazia(): return True p = self.inicio while p.prox != None: p = p.prox no = Conta(ident, cpf, saldo) p.prox = no self.__tamanho += 1
def abre_conta(self, clientes, saldo_inicial): if saldo_inicial < 0: raise ValueError try: numero = self.__contas[-1].numero + 1 except IndexError: numero = 1 finally: conta = Conta(clientes, numero, saldo_inicial) self.__contas.append(conta)
def lista(): arquivo = open('contas.txt', 'r') leitor = csv.reader(arquivo) contas = [] for linha in leitor: conta = Conta(linha[0], linha[1], linha[2], linha[3]) contas.append(conta) arquivo.close() return render_template('lista.html', contas=contas)
def acessoContas(self): numAcessoConta, ok = QInputDialog.getText( self, 'Acessar Conta', 'Digite o número da conta:') #outro dialogo. if numAcessoConta in self.contas: self.conta = Conta(numAcessoConta, self.contas[numAcessoConta]) self.visaoGeralCC( ) #Para chamar os outros botoes "saldo, saque, etc." qndo clicar para acessar conta else: errAcsConta = QMessageBox.warning( self, "Erro", "Não existe uma conta cadastrada com esse número!")
def main(): #Para conseguir utilizar os valores e os métodos da conta, primeiramente é necessário instancia-la nova_conta = Conta() print('Uma nova conta for criada ') nova_conta.depositar(0) nova_conta.depositar(0) nova_conta.sacar() print(f'Novo saldo: {nova_conta.saldo}')
def buscar(self, numero): with connect(self._dados_con) as conn: cur = conn.cursor() cur.execute('SELECT * FROM conta WHERE codigo = %s', [numero]) linha = cur.fetchall() conta = Conta(linha[0][1], linha[0][2], linha[0][3], linha[0][4]) conta.codigo = linha[0][0] daocl = clienteDao() busc = daocl.buscar(int(linha[0][5])) conta.addCliente(busc) return conta conn.commit() cur.close()
def test_conta_extrato_2(): c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 200) cc.sacar(150) cc.depositar(250) extrato = cc.tirar_extrato() assert len(extrato) == 3, ( 'O extrato deve conter duas entradas para esse teste') assert extrato[0] == ('saldo inicial', 200), ('A primeira entrada está incorreta') assert extrato[1] == ('saque', 150), ('A segunda entrada está incorreta') assert extrato[2] == ('deposito', 250), ('A terceira entrada está incorreta')
def test_conta_saque_erro(): c = Cliente('nome', 99999999, '*****@*****.**') cc = Conta([c], 1, 100) try: cc.sacar(150) except ValueError: assert cc.saldo == 100, ( 'O saldo não deve ser alterado quando o saque for inválido') assert ('saque', 150) not in cc.tirar_extrato(), ( 'Um saque inválido não deve ser registrado no extrato') except Exception: assert False, 'Erro diferente de ValueError para saque inválido' else: assert False, 'Permitiu a realização de um saque inválido'