Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. def buy():
  2. """Buy shares of stock."""
  3. if request.method == "POST":
  4.  
  5. # перевіряємо чи передали символ і чи він є літерою
  6. if not request.form.get("symbol") or not request.form.get("symbol").isalpha:
  7. return apology("Missing symbol")
  8.  
  9. # перевіряємо на біржі чи закріплене за введеним символом підприємство
  10. elif not lookup(request.form.get("symbol")):
  11. return apology("Your symbol \"{}\"".format(request.form.get("symbol")), "not in Stock")
  12.  
  13. # перевіряємо чи ввів користувач кількість акцій, чи значення є числове і чи воно не менше за одиницю
  14. elif not request.form.get("share") or not request.form.get("share").isdigit() or int(request.form.get("share")) < 1:
  15. return apology("Missing share")
  16. else:
  17.  
  18. # отримуємо повну інформацію про акції підприємство та ціну
  19. qoute = lookup(request.form.get("symbol"))
  20. cost = float(qoute["price"])
  21.  
  22. result = db.execute("SELECT cash FROM users WHERE id = :id", id=session["user_id"])
  23. money = float(result[0]["cash"])
  24. # перевіряємо, ич достатньо у користувача грошей, щоб придбати певну кількість акцій
  25. if float(request.form.get("share")) * cost > money:
  26. return apology("You do not have so much money")
  27. else:
  28.  
  29. shares_buy = int(request.form.get("share"))
  30. if not db.execute(
  31. "INSERT INTO shares (user_id, symbol, shares) VALUES (:user_id, :symbol, :shares)",
  32. user_id=session["user_id"], symbol=qoute["symbol"], shares=shares_buy
  33. ):
  34.  
  35. issh = db.execute(
  36. "SELECT shares FROM shares WHERE user_id= :user_id AND symbol= :symbol",
  37. user_id=session["user_id"], symbol=qoute["symbol"]
  38. )
  39. db.execute(
  40. "UPDATE shares SET shares= :shares WHERE symbol= :symbol AND user_id= :user_id",
  41. shares=issh[0]["shares"] + shares_buy, symbol=qoute["symbol"], user_id=session["user_id"]
  42. )
  43. db.execute(
  44. "INSERT INTO history (user_id, symbol, shares, transactions, price) \
  45. VALUES(:user_id, :symbol, :shares, :transactions, :price)",
  46. user_id=session["user_id"], symbol=qoute["symbol"],
  47. shares=shares_buy, transactions='Buy', price=qoute["price"]
  48. )
  49. db.execute(
  50. "UPDATE users SET cash = :cash WHERE id = :id",
  51. cash=money - shares_buy * qoute["price"], id=session["user_id"]
  52. )
  53. flash("Congratulations!!! ")
  54. flash("You bought")
  55. flash(shares_buy)
  56. flash("shares of")
  57. flash(qoute["symbol"])
  58. return redirect("/")
  59.  
  60. else:
  61. return render_template("buy.html")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement