Shop.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import mysql.connector
  2. #-----------------------------------------------------------------------#
  3. # Relevant System
  4. conn = mysql.connector.connect(
  5. host="localhost",
  6. user="root",
  7. password=""
  8. )
  9. cursor = conn.cursor()
  10. #cursor.execute("DROP DATABASE IF EXISTS Shop")
  11. cursor.execute("CREATE DATABASE IF NOT EXISTS Shop")
  12. conn.database = "Shop"
  13. cursor.execute("""
  14. CREATE TABLE IF NOT EXISTS products (
  15. id INT AUTO_INCREMENT PRIMARY KEY,
  16. name VARCHAR(100),
  17. price DECIMAL(10, 2),
  18. quantity INT
  19. )
  20. """)
  21. cursor.execute("""
  22. CREATE TABLE IF NOT EXISTS cart (
  23. id INT AUTO_INCREMENT PRIMARY KEY,
  24. user VARCHAR(100),
  25. name VARCHAR(100),
  26. quantity INT
  27. )
  28. """)
  29. cursor.execute("""
  30. CREATE TABLE IF NOT EXISTS purchases (
  31. id INT AUTO_INCREMENT PRIMARY KEY,
  32. user VARCHAR(100),
  33. name VARCHAR(100),
  34. quantity INT,
  35. purchase_date DATETIME DEFAULT CURRENT_TIMESTAMP,
  36. total_price DECIMAL(10, 2)
  37. )
  38. """)
  39. def buy_products():
  40. global trigger
  41. global user
  42. global cursor
  43. global conn
  44. global select_quantity
  45. global selection
  46. print("Available Products:")
  47. cursor.execute("SELECT name, price, quantity FROM products")
  48. for row in cursor.fetchall():
  49. print(row)
  50. while trigger.lower() == "yes":
  51. selection = input("Which Product do you want to buy? ")
  52. if not selection:
  53. print("Please select a product.")
  54. continue
  55. cursor.execute("SELECT name FROM products")
  56. product_names = [row[0] for row in cursor.fetchall()]
  57. if selection not in product_names:
  58. print("Product not found. Please select a valid product.")
  59. continue
  60. else:
  61. select_quantity = input("How many product do you want to buy? ")
  62. cursor.executemany("""
  63. INSERT INTO cart (user, name, quantity)
  64. VALUES (%s, %s, %s)
  65. """, [
  66. (user, selection, select_quantity)
  67. ])
  68. cursor.execute("UPDATE products SET quantity = quantity - %s WHERE name = %s", (select_quantity, selection))
  69. trigger = input("Do you want to buy another product? (yes/no) ").strip().lower()
  70. cart_func()
  71. conn.commit()
  72. def cart_func():
  73. global user
  74. global cursor
  75. global trigger
  76. global select_quantity
  77. global selection
  78. cursor.execute("SELECT name, quantity FROM cart WHERE user = %s", (user,))
  79. print("Your Cart:")
  80. for row in cursor.fetchall():
  81. print(row)
  82. buy = input("Do you want to proceed to buy the products in your cart? (yes/no) ").strip().lower()
  83. if buy == "yes":
  84. cursor.execute("""
  85. INSERT INTO purchases (user, name, quantity, purchase_date, total_price)
  86. SELECT c.user, c.name, c.quantity, NOW(), p.price * c.quantity
  87. FROM cart c
  88. JOIN products p ON c.name = p.name
  89. WHERE c.user = %s
  90. """, (user,))
  91. print("Thank you for your Purchase")
  92. cursor.execute("DELETE FROM cart WHERE user = %s", (user,))
  93. conn.commit()
  94. else:
  95. trigger2 = input("Do you want to buy another product? (yes/no) ").strip().lower()
  96. if trigger2 == "yes":
  97. trigger = "yes"
  98. buy_products()
  99. else:
  100. print("Purchase cancelled.")
  101. cursor.execute("UPDATE products SET quantity = quantity + %s WHERE name = %s", (select_quantity, selection))
  102. cursor.execute("DELETE FROM cart WHERE user = %s", (user,))
  103. conn.commit()
  104. #-----------------------------------------------------------------------#
  105. # User Interaction
  106. trigger = "yes"
  107. user = input("Enter your username: ")
  108. buy_products()