Aleksmorshen commited on
Commit
5364a48
·
verified ·
1 Parent(s): 611208f

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +42 -2
app.py CHANGED
@@ -88,6 +88,46 @@ def generate_token():
88
  def get_new_id(items):
89
  return max([item.get("id", 0) for item in items], default=0) + 1
90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
  # --- Страницы приложения ---
92
 
93
  def register():
@@ -392,8 +432,8 @@ def main():
392
  login()
393
 
394
  if __name__ == "__main__":
395
- main()
396
  # Ждем 15 секунд после инициализации, затем запускаем фоновый поток резервного копирования
397
  time.sleep(15)
398
  backup_thread = threading.Thread(target=periodic_backup, daemon=True)
399
- backup_thread.start()
 
 
88
  def get_new_id(items):
89
  return max([item.get("id", 0) for item in items], default=0) + 1
90
 
91
+ # --- Функции для работы с продажами ---
92
+ def record_sales():
93
+ """
94
+ Записывает информацию о продажах, обновляет базу данных и очищает корзину.
95
+ """
96
+ with db_lock:
97
+ data = load_db()
98
+ cart_items = data["cart"]
99
+ if not cart_items:
100
+ return None, None, 0.0
101
+
102
+ sales_details = []
103
+ total_amount = 0.0
104
+ now = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
105
+ sale_id = generate_token()
106
+
107
+ for item in cart_items:
108
+ product = next((p for p in data["products"] if p["id"] == item["product_id"]), None)
109
+ if product:
110
+ sale_amount = item["quantity"] * product["sale_price"]
111
+ total_amount += sale_amount
112
+ sales_details.append([product["id"], item["quantity"], sale_amount, now])
113
+
114
+ # Добавляем информацию о продаже в базу данных
115
+ new_sale_id = get_new_id(data["sales"])
116
+ data["sales"].append({
117
+ "id": new_sale_id,
118
+ "sale_id": sale_id,
119
+ "product_id": product["id"],
120
+ "quantity": item["quantity"],
121
+ "total_amount": sale_amount,
122
+ "sale_date": now
123
+ })
124
+
125
+ # Очищаем корзину
126
+ data["cart"] = []
127
+ save_db(data)
128
+
129
+ return sales_details, sale_id, total_amount
130
+
131
  # --- Страницы приложения ---
132
 
133
  def register():
 
432
  login()
433
 
434
  if __name__ == "__main__":
 
435
  # Ждем 15 секунд после инициализации, затем запускаем фоновый поток резервного копирования
436
  time.sleep(15)
437
  backup_thread = threading.Thread(target=periodic_backup, daemon=True)
438
+ backup_thread.start()
439
+ main()