예제 #1
0
    def test_no_es_posible_modificar_cantidad_directamente(self):

        unaCuenta = Cuenta("John", 45)

        # Da error cuando no intentamos manipular la cantidad
        with self.assertRaises(AttributeError):
            unaCuenta.cantidad = 100000
예제 #2
0
    def test_mostrar(self):

        unaCuenta = Cuenta("John", 45)

        with Capturing() as output:
            unaCuenta.mostrar()

        self.assertEqual('Titular: John', output[0])
        self.assertEqual('Cantidad: 45.0', output[1])
예제 #3
0
    def test_cantidad_no_obligatoria(self):

        # No da error cuando no especificamos cantidad
        try:
            Cuenta("John")
        except Exception:
            self.fail("Cuenta() raised ExceptionType unexpectedly!")
예제 #4
0
파일: cliente.py 프로젝트: Fedeper/banco
 def __init__(self, nombre, apellido, domicilio, telefono, f_Nac, dni,
              genero, f_Alta, sucursal, nro_Cuenta):
     Persona.__init__(self, nombre, apellido, domicilio, telefono, f_Nac,
                      dni, genero)
     self.cuenta = Cuenta(nro_Cuenta)
     self.lista_Cuentas = [].append(self.cuenta)
     self.f_Alta = f_Alta
     self.f_Baja = None
     self.sucursal = sucursal
예제 #5
0
class Auto:

    id          = int
    license     = str
    driver      = Cuenta("","")
    passenger   = int

    #Método constructor
    def __init__(self, license, driver):
        self.license = license
        self.driver  = driver
예제 #6
0
class Persona(object):
    def __init__(self, nombre, apellido, cantidad, numCuenta):
        self.__nombre = nombre
        self.__apellido = apellido
        self.__cuenta = Cuenta(numCuenta, cantidad)

    def setNombre(self, nombre):
        self.__nombre = nombre

    def getNombre(self):
        return self.__nombre

    def setApellido(self, apellido):
        self.__apellido = apellido

    def getApellido(self):
        return self.__apellido

    def hacerIngreso(self, cantidad):
        self.__cuenta.ingresarDinero(cantidad)

    def retirarDinero(self, cantidad):
        self.__cuenta.sacarDinero(cantidad)

    def getSaldo(self):
        return self.__cuenta.getSaldo()

    def getNumeroCuenta(self):
        return self.__cuenta.getNumeroCuenta()
예제 #7
0
    def test_ingresar(self):

        unaCuenta = Cuenta("John", 150)

        # Ingresar una cantidad válida
        unaCuenta.ingresar(50)
        self.assertEqual(unaCuenta.cantidad, 200)

        # Ingresar una cantidad no válida (se ignora)
        unaCuenta.ingresar("nada")
        self.assertEqual(unaCuenta.cantidad, 200)
예제 #8
0
    def test_retirar(self):

        unaCuenta = Cuenta("John", 150)

        # Retirar una cantidad válida
        unaCuenta.retirar(50)
        self.assertEqual(unaCuenta.cantidad, 100)

        # Retirar una cantidad no válida (se ignora)
        unaCuenta.retirar("nada")
        self.assertEqual(unaCuenta.cantidad, 100)
예제 #9
0
 def login_account(self):
     print('\nPantalla de logeo ↓')
     # query ↓
     sql = '''SELECT usuarios_id, usuarios.nombre, apellido, edad, paises.nombre AS "pais", ciudades.nombre AS "ciudad", genero, telefono
     FROM usuarios
     INNER JOIN ciudades ON ciudad_id_1 = ciudades.ciudad_id
     INNER JOIN paises ON ciudades.pais_codigo = paises.codigo
     INNER JOIN cuentas ON usuarios.usuarios_id = cuentas.usuario_id_2
     WHERE login_name = %s AND login_pass = %s;'''
     # values ↓
     form_login = {
         'login_name': input('\n<login_name>: '),
         'login_pass': input('\n<login_pass>: ')
     }
     r, dic = self.__vld.validar_login(form_login)
     if r == 0:
         dic['login_pass'] = str(self.__encriptarPass(
             dic['login_pass'])).split("'")[1]
         val = (
             dic['login_name'],
             dic['login_pass'],
         )
         self.__mydb.ejecutar(sql, val)
         rows = self.__mydb.get_cursor().fetchall()
         if len(rows) > 0:
             nw_user = Usuario(rows[0][0], rows[0][1], rows[0][2],
                               rows[0][3], rows[0][4], rows[0][5],
                               rows[0][6], rows[0][7])
             # query ↓
             sql = 'SELECT * FROM cuentas WHERE usuario_id_2 = %s;'
             # value ↓
             val = (nw_user.get_user_id(), )
             self.__mydb.ejecutar(sql, val)
             rows = self.__mydb.get_cursor().fetchall()
             nw_acc = Cuenta(rows[0][0], rows[0][1],
                             self.__desencriptarPass(rows[0][2]), nw_user,
                             rows[0][4], rows[0][5], self.__mydb)
             return nw_acc
         else:
             print(f'\n[Err]: nombre de usuario o contraseña incorrectos!')
             return None
     else:
         print(f'\n[Err]: uno o mas datos no pudieron validarse ↓')
         for val in dic.values():
             print(f'\t{val[0]}')
         return None
예제 #10
0
def menu():
    while True:
        try:
            opcion1 = int(input("1-Inicio 2-Salir "))
            if opcion1 == 1:
                opcionCuenta = int(input("1-Cuenta 2-Cuenta Prenium"))
                nombre = input("Inserte Titular de cuenta: ")
                if opcionCuenta == 1:
                    cuenta = Cuenta(nombre)
                    subMenu(cuenta)
                if opcionCuenta == 2:
                    cuentaPrenium = CuentaPrenium(nombre)
                    subMenuPrenium(cuentaPrenium)
            if opcion1 == 2:
                print("--PROGRAMA CERRADO--")
                exit(0)
        except ValueError:
            print("Ingrese uno de los numeros solicitados.")
예제 #11
0
파일: Ej6.py 프로젝트: reikimitsu/dam2
'''
Cree una clase llamada Cuenta. Como atributo tendra un numero float llamado
saldo, con una cantidad inicial de 0 euros.

Tendra dos metodos:
	- Ingresar, con un parametro que indica la cantidad a sumar al saldo
	- Retirar, con un parametro que sera un numero float de euros a restar del saldo

Cree un programa para ingresar 125.23, 503.4 y 50 euros y luego retire 333.34 euros.
Muestre tras cada operacion el saldo de la cuenta
'''

from cuenta import Cuenta

# main

cuenta = Cuenta(0)

cuenta.ingresar(125.23)
print cuenta.getSaldo()

cuenta.ingresar(503.4)
print cuenta.getSaldo()

cuenta.ingresar(50)
print cuenta.getSaldo()

cuenta.retirar(333.34)
print cuenta.getSaldo()
예제 #12
0
 def __init__(self, cbu):
     Cuenta.__init__(self, cbu)
예제 #13
0
        mostrar_cuentaJoven(usuario, edad, monto_apertura)

    else:
        print(
            'Desea ingresar dinero de Apertura a su cuenta? \n1.-SI \n2.-NO \n'
        )
        respuesta = input()
        if '1' in respuesta:
            print('Ingrese el monto de Apertura: ')
            monto_apertura = float(input())
            if monto_apertura < 0:
                print('No puedes ingresar numeros negativos we \n')
        else:
            monto_apertura = 0
        print('\n')
        user = Cuenta(titular=usuario, cantidad=monto_apertura)
        new_user(usuario, monto_apertura)
else:
    print('Hasta pronto')

if '1' in opcioninicial:
    stop = False
    while stop == False:

        print('''
    What would you like to do (type a number and press Enter)?
    - Type 1: DEPOSITAR DINERO a su cuenta.
    - Type 2: RETIRAR DINERO de su cuenta.
    - Type 3: MOSTRAR USER Y DINERO de su cuenta.
    - Type 4: To quit
        ''')
예제 #14
0
    def register_account(self):
        print(
            '\nPantalla de registro ↓\n\n*Nota: todos los campos son obligatorios!'
        )
        # validando datos de usuario
        # creacion de usuario (en tiempo de ejecucion)
        form_user = {
            'user_id': 'NULL',
            'nombre': input('\n<nombre>: '),
            'apellido': input('\n<apellido>: '),
            'edad': input('\n<edad>: '),
            'pais': input('\n<pais>: '),
            'ciudad': input('\n<ciudad>: '),
            'genero': input('\n<genero>: '),
            'tel': input('\n<telefono>: ')
        }
        r, dic = self.__vld.validar_datos_de_usuario(form_user)
        if r == 0:
            nuevo_usuario = Usuario(**dic)
            # validando datos de cuenta
            # creacion de cuenta (en tiempo de ejecucion)
            form_acc = {
                'cuenta_id':
                'NULL',
                'login_name':
                input('\n<login_name>: '),
                'login_pass': [
                    input('\n<login_pass>: '),
                    input('\n<login_pass_confirmacion>: ')
                ],
                'usuario':
                'NULL',
                'mail_primario':
                input('\n<mail_primario>: '),
                'mail_secundario':
                input('\n<mail_secundario>: ')
            }
            r, dic = self.__vld.validar_registro(form_acc)
            dic['database'] = self.__db
            if r == 0:
                nueva_cuenta = Cuenta(**dic)
                # guardar cambios en bd
                opc = input('\nConfirmar creacion de cuenta (s/n): ')
                if opc.lower() == 's':
                    # agregando datos de usuario a la bd ↓
                    ult_id = nuevo_usuario.save_user(
                    )  # guardando datos de usuario en bd
                    nuevo_usuario.set_user_id(
                        ult_id)  # actualizando id de usuario

                    nueva_cuenta.set_usuario(
                        nuevo_usuario
                    )  # <- actualizando nuevo usuario en su cuenta

                    # agregando datos de cuenta a la bd ↓
                    ult_id = nueva_cuenta.save_account(
                    )  # guardando datos de cuenta en bd
                    nueva_cuenta.set_cuenta_id(
                        ult_id)  # actualizando id de cuenta

                    print(
                        f'\n[MENSAGE]: el usuario {nueva_cuenta.get_login_name()} ah sido registrado correctamente!'
                    )
                else:
                    print('\n[MENSAGE]: Se cancelo el registro de cuenta.')
            else:
                print(f'\n[Err]: uno o mas datos no pudieron validarse ↓')
                for val in dic.values():
                    if type(val).__name__ not in ['DataBase']:
                        for i in val:
                            print(f'\t{i}')
        else:
            print(f'\n[Err]: uno o mas datos no pudieron validarse ↓')
            for val in dic.values():
                for i in val:
                    print(f'\t{i}')
예제 #15
0
    def test_cantidad_no_valida(self):

        unaCuenta = Cuenta("John", "hola")
        self.assertEqual(unaCuenta.cantidad, 0)
예제 #16
0
    def cargarCuentas(self, ruta):
        doc = openpyxl.load_workbook(self.fileAddress)
        hojaData = doc.get_sheet_by_name('HojaCuentas')
        hojaErrores = doc.create_sheet('HojaErrores')
        hojaCompletos = doc.create_sheet('HojaCompletos')
        hojaCompletos.append([
            'codigo', 'nombre', 'padre', 'naturaleza', 'nivel', 'idCuenta',
            'idPadre', 'idRelacion'
        ])
        hojaErrores.append(['codigo', 'errores', 'nombre'])

        rowCounter = 1
        for fila in hojaData.rows:
            code = self.cleanIdCuenta(
                hojaData.cell(row=rowCounter, column=1).value)
            nombreCuenta = hojaData.cell(row=rowCounter, column=2).value
            print "Evaluando cuenta " + code
            cuenta = Cuenta(code, nombreCuenta)
            cuenta.padre = cuenta.definePadre(cuenta.codigo)
            cuenta.idCuenta = self.getCuentaById(cuenta.codigo)
            cuenta.idPadre = self.getCuentaById(cuenta.padre)
            cuenta.naturaleza = hojaData.cell(row=rowCounter, column=3).value
            rowCounter += 1
            if not cuenta.naturaleza:
                cuenta.naturaleza = cuenta.defineNaturaleza(cuenta.codigo[:1])
            cuenta.nivel = cuenta.defineNivel(cuenta.codigo)
            error = []
            if cuenta.idCuenta:
                error.append("La cuenta ya existe.")
            if len(cuenta.nombre.replace(" ", "")) < 3:
                error.append("El nombre de la cuenta no es valido.")
            if cuenta.naturaleza is None:
                error.append("La naturaleza de la cuenta no esta definida.")
            if not cuenta.idPadre and cuenta.nivel != 1:
                error.append("El padre no se encuentra registrado.")

            if not error:
                try:
                    self.insertCuenta(cuenta)
                    hojaCompletos.append([
                        cuenta.codigo, cuenta.nombre, cuenta.padre,
                        cuenta.naturaleza, cuenta.nivel, cuenta.idCuenta,
                        cuenta.idPadre, cuenta.idRelacion
                    ])
                except Exception as errores:
                    print "Error de nombre caracter"
                    print errores
                    hojaErrores.append([
                        cuenta.codigo, "Error de nombre caracter",
                        cuenta.nombre, cuenta.nivel
                    ])
            else:
                print "Error: ", ' '.join(error)
                hojaErrores.append(
                    [cuenta.codigo, ' '.join(error), cuenta.nombre])

        doc.save("archivosExcel/resultadoCargue.xlsx")
예제 #17
0
        print("Debemos identificar la cuenta:")
        print("Introduce tu nombre completo (ej: Jordi Blanch Salgado):")
        nombre = str(input())
        encontrado = False
        eleccionMovi = 0

        with open('cuentas.txt',mode='r',encoding='utf-8')as archivo:
            for linia in archivo:
                try:
                    titular,iban,moneda,saldo= linia.split(',', 3)
                    saldo = saldo.strip("\n")
                except:
                    print("")

                if nombre.upper() == titular.upper():
                    cuenta = Cuenta(iban,titular,moneda)
                    encontrado = True

                    varIban = cuenta.getIban()
                    varMoneda = cuenta.getMoneda()
                    varSaldo = saldo

                    while eleccionMovi != 3:
                        menuMovi()
                        eleccionMovi = int(input())

                        #INGRESAR
                        if eleccionMovi == 1:
                            print("Introduzca la cantidad a ingresar:")
                            importe = int(input())
                            signo = "+"
예제 #18
0
 def __init__(self, nombre, apellido, cantidad, numCuenta):
     self.__nombre = nombre
     self.__apellido = apellido
     self.__cuenta = Cuenta(numCuenta, cantidad)
예제 #19
0
 def test_titular_obligatorio(self):
     # Da error cuando no especificamos titular
     with self.assertRaises(TypeError):
         Cuenta()
예제 #20
0
    def test_crear_una_cuenta(self):

        unaCuenta = Cuenta("John", 45)
        self.assertEqual(unaCuenta.titular, "John")
        self.assertEqual(unaCuenta.cantidad, 45)
예제 #21
0
from cliente import Cliente
from movimiento import Movimiento
from cuenta import Cuenta

cliente1 = Cliente("12345678A", "Antonio", "Martinez")
cuenta1 = Cuenta(cliente1, 100)
cuenta2 = Cuenta(cliente1, 1000)
cuenta1.anyadir_movimientos(Movimiento("Compras", -50))
cuenta1.anyadir_movimientos(Movimiento("Transferencia", 100))
cuenta1.anyadir_movimientos(Movimiento("Compras", -65))
cuenta2.anyadir_movimientos(Movimiento("Nomina", 1200))
cuenta2.anyadir_movimientos(Movimiento("Paga extra", 1200))
cuenta2.anyadir_movimientos(Movimiento("Hipoteca", -500))
print(cuenta1.saldo())
print(cuenta2.saldo())
예제 #22
0

            #CREACION PERSONA
            persona = Persona(nombre,apellido1,apellido2,dni)
            nombrePersona = persona.getNombreCompleto()
            nif = persona.getNif()

            #ESCRIBIR EL TITULARES.TXT
            titular=Titular(nombre)
            titular=titular.escribirTitular(nombrePersona,nif,pin)

            print("Introduce la moneda ")
            moneda = str(input())
            saldo = "0"
            #CREACION CUENTA
            cuenta=Cuenta('',nombrePersona,moneda)
            varIban1=cuenta.genIban()
            cuenta=cuenta.creacionCuenta(pin,varIban1)

            menu()
        #EMPRESA
        if tipo == 2:
            print("Razón social:")
            varNombre = str(input())
            print("Cif: Ejemplo:B12345678")
            varCif = str(input())

            comprovaciodni=ComprovacioDni()
            comprovar=comprovaciodni=ComprovacioDni.validacioCif(varCif)
            while comprovar == False:
                print("Dni/Nif:")
예제 #23
0
from auto import Auto
from cuenta import Cuenta

if __name__ == "__main__":
    print("Hola mundo")

    auto = Auto("HDFR12", Cuenta("Maria Gutierrez", "ADNG145"))
    #auto.license =
    #auto.driver = "Andres Herrera"
    auto.passenger = 3
    print(vars(auto))
    print(vars(auto.driver))
예제 #24
0
파일: main.py 프로젝트: begohorma/theegg_ai
def main():
    try:
        print("\nCreando personas:")
        print("---------------------")
        laura = Persona('Laura', 23, '25678445A')
        print(laura.mostrar())
        jon = Persona('Jon', 15, '30123456B')
        print(jon.mostrar())
        print("¿Es laura mayor de edad ?: {0}".format(
            laura.es_mayor_de_edad()))
        print("¿Es jon mayor de edad ?: {0}".format(jon.es_mayor_de_edad()))

        print("\nCreando cuentas:")
        print("---------------------")
        cuenta_jon = Cuenta(jon, 60)
        print(cuenta_jon.mostrar())
        cuenta_laura = Cuenta(laura, 286)
        print(cuenta_laura.mostrar())
        maria = Persona("Maria", 25, "25885613X")
        cuenta_maria = Cuenta(maria)
        print(cuenta_maria.mostrar())

        print("\nIngresar y retirar de las cuentas:")
        print("---------------------------------------")
        print(cuenta_maria.ingresar(23.5))
        print(cuenta_maria.ingresar(200))
        print(cuenta_maria.retirar(50))
        print(cuenta_jon.retirar(25))
        print(cuenta_jon.retirar(85))
        print(cuenta_jon.ingresar(-67))

        print("\nCreando cuentas Jovenes:")
        print("---------------------")
        cuenta_joven_laura = CuentaJoven(laura, 300, 5)
        print(cuenta_joven_laura.mostrar())
        print(cuenta_joven_laura.ingresar(500))
        print(cuenta_joven_laura.retirar(200))
        cuenta_joven_jon = CuentaJoven(jon)
        print(cuenta_joven_jon.mostrar())
        print(cuenta_joven_jon.ingresar(100))
        print(cuenta_joven_jon.retirar(50))

    except Exception as e:
        print(e)
예제 #25
0
def test_cuenta_sin_titular_lanza_excepcion():
    with pytest.raises(TypeError) as te:
        cuenta = Cuenta()
        assert str(
            te.value ==
            "__init__() missing 1 required positional argument: 'titular'")
예제 #26
0
from cliente import Cliente
from movimiento import Movimiento
from cuenta import Cuenta

cliente1 = Cliente('48892364E', 'Antonio', 'Martínez')
cuenta1 = Cuenta(cliente1, 100)
cuenta2 = Cuenta(cliente1, 200)

cuenta1.set_ayadir_movimiento(Movimiento('Nómina', 1000))
cuenta1.set_ayadir_movimiento(Movimiento('Primark', -100))
cuenta1.set_ayadir_movimiento(Movimiento('Mercadona', -50))

cuenta2.set_ayadir_movimiento(Movimiento('Nómina', 1200))
cuenta2.set_ayadir_movimiento(Movimiento('GYM', -50))
cuenta2.set_ayadir_movimiento(Movimiento('Venta', 1000))

print(cuenta1.saldo())
print(cuenta2.saldo())

print(cuenta1.movimientos())
print(cuenta2.movimientos())

print(cuenta1.titular())
print(cuenta2.titular())

print(cuenta1.numero())
print(cuenta2.numero())

s = Cuenta.cuenta(1)
print(s)
예제 #27
0
def cuenta():
    titular = Persona("Maria", 25, "30123456B")
    cuenta = Cuenta(titular)
    return cuenta
예제 #28
0
파일: principal.py 프로젝트: edumarrom/pro
from cliente import Cliente
from cuenta import Cuenta

antonio = Cliente('111222333F', 'Antonio', 'Martínez')
cuenta_antonio1 = Cuenta(antonio)
cuenta_antonio2 = Cuenta(antonio)

cuenta_antonio1.realizar_movimiento('Depósito inicial', 1000)
cuenta_antonio1.realizar_movimiento('gasolinera', -20)
cuenta_antonio1.realizar_movimiento('Ingreso Nómina', 895.67)
cuenta_antonio1.movimientos()

cuenta_antonio2.realizar_movimiento('Depósito inicial', 9000)
cuenta_antonio2.realizar_movimiento('Compra ordenador', -789.99)
cuenta_antonio2.realizar_movimiento('Netflix', 12.67)
cuenta_antonio2.movimientos()
예제 #29
0
파일: Ej6.py 프로젝트: jesusninoc/dam2
#_*_coding:utf-8_*_
'''
Cree una clase llamada Cuenta. Como atributo tendra un numero float llamado
saldo, con una cantidad inicial de 0 euros.

Tendra dos metodos:
	- Ingresar, con un parametro que indica la cantidad a sumar al saldo
	- Retirar, con un parametro que sera un numero float de euros a restar del saldo

Cree un programa para ingresar 125.23, 503.4 y 50 euros y luego retire 333.34 euros.
Muestre tras cada operacion el saldo de la cuenta
'''

from cuenta import Cuenta

# main

cuenta = Cuenta(0)

cuenta.ingresar(125.23)
print cuenta.getSaldo()

cuenta.ingresar(503.4)
print cuenta.getSaldo()

cuenta.ingresar(50)
print cuenta.getSaldo()

cuenta.retirar(333.34)
print cuenta.getSaldo()