async def get_ingreso(usuario: str):

    usuario = usuario.lower()

    ingreso_in_db = getMovimiento(usuario)
    print("ingreso_in_db")
    print(ingreso_in_db)

    if ingreso_in_db == None:
        raise HTTPException(status_code=404, detail=USUARIONOFOUND)

    ingreso = 0
    egreso = 0
    total = 0

    for data in ingreso_in_db:
        print("\n", data.tipo_movimiento, "\n")
        if (data.tipo_movimiento == 'Ingreso'):
            ingreso += data.valor
        elif (data.tipo_movimiento == 'Egreso'):
            egreso += data.valor

        total = ingreso - egreso

    return {"ingreso": ingreso, "egreso": egreso, "total": total}
async def get_ingreso(usuario: str):

    usuario = usuario.lower()

    ingreso_in_db = getMovimiento(usuario)
    print("ingreso_in_db")
    print(ingreso_in_db)

    if ingreso_in_db == None:
        raise HTTPException(status_code=404, detail=USUARIONOFOUND)

    return ingreso_in_db
async def delete_ingreso(usuario: str, id_ingreso: int):

    usuario = usuario.lower()

    ingreso_in_db = getMovimiento(usuario)

    if ingreso_in_db == None:
        raise HTTPException(status_code=404, detail=USUARIONOFOUND)

    bd = deleteMovimiento(usuario, id_ingreso)

    if bd == None:
        raise HTTPException(status_code=404, detail=INGRESONOFOUND)

    return {"Eliminado": True, "Ingresos": bd}
async def create_ingreso(usuario: str, ingreso_in: MovimientoIn):

    usuario = usuario.lower()

    ingreso_in_db = getMovimiento(usuario)

    if ingreso_in_db == None:
        raise HTTPException(status_code=404, detail=USUARIONOFOUND)

    newIngreso = createMovimiento(usuario,
                                  ingreso_in)  # METODO DE LA CLASE INGRESO

    if newIngreso == None:
        raise HTTPException(status_code=400, detail=INGRESONOTCREATED)

    return {"message": "Ingreso registrado"}
async def update_ingreso(usuario: str, id_ingreso: int,
                         ingreso_in: MovimientoIn):

    usuario = usuario.lower()

    ingreso_in_db = getMovimiento(usuario)

    if ingreso_in_db == None:
        raise HTTPException(status_code=404, detail=USUARIONOFOUND)

    ingresoUpdated = updateMovimiento(usuario, id_ingreso, ingreso_in)

    if ingresoUpdated == None:
        raise HTTPException(status_code=404, detail=INGRESONOFOUND)

    print(ingresoUpdated)

    ingresoUpdated.descripcion = ingreso_in.descripcion
    ingresoUpdated.valor = ingreso_in.valor
    ingresoUpdated.fecha = ingreso_in.fecha
    ingresoUpdated.origen = ingreso_in.origen
    ingresoUpdated.tipo_movimiento = ingreso_in.tipo_movimiento

    return {"Actualizado": True, "Ingreso": ingresoUpdated}