예제 #1
0
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'])
예제 #2
0
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')
예제 #3
0
 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!')
예제 #4
0
 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)
예제 #5
0
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')
예제 #6
0
 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)
예제 #7
0
 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
예제 #8
0
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')
예제 #9
0
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()
예제 #10
0
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'
예제 #11
0
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!"
예제 #13
0
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)
예제 #14
0
    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
예제 #15
0
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
예제 #16
0
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')
예제 #17
0
    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)
예제 #18
0
    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')
예제 #19
0
    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
예제 #20
0
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)
예제 #21
0
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'
예제 #22
0
    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
예제 #23
0
    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
예제 #24
0
    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)
예제 #25
0
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)
예제 #26
0
 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!")
예제 #27
0
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}')
예제 #28
0
 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()
예제 #29
0
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')
예제 #30
0
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'