Shop update added services and other shhhhhhh
This commit is contained in:
@@ -381,16 +381,21 @@ def add_store_item():
|
||||
try:
|
||||
data = request.json
|
||||
name = (data.get('name') or '').strip()
|
||||
price = float(data.get('price', 0))
|
||||
stock = int(data.get('stock', 0))
|
||||
item_type = data.get('type', 'product')
|
||||
stock = 0 if item_type == 'service' else int(data.get('stock', 0))
|
||||
image = data.get('image') or None
|
||||
pm = data.get('price_member')
|
||||
pnm = data.get('price_non_member')
|
||||
price_member = float(pm) if pm is not None else None
|
||||
price_non_member = float(pnm) if pnm is not None else None
|
||||
price = price_member if price_member is not None else float(data.get('price', 0))
|
||||
if not name:
|
||||
return jsonify({'success': False, 'message': 'Name required'}), 400
|
||||
if price < 0:
|
||||
return jsonify({'success': False, 'message': 'Price cannot be negative'}), 400
|
||||
if stock < 0:
|
||||
if item_type != 'service' and stock < 0:
|
||||
return jsonify({'success': False, 'message': 'Stock cannot be negative'}), 400
|
||||
if data_manager.add_store_item(name, price, stock, image):
|
||||
if data_manager.add_store_item(name, price, stock, image, item_type, price_member, price_non_member):
|
||||
return jsonify({'success': True})
|
||||
return jsonify({'success': False, 'message': 'Error adding item'}), 400
|
||||
except Exception as e:
|
||||
@@ -402,12 +407,17 @@ def update_store_item(item_id):
|
||||
try:
|
||||
data = request.json
|
||||
name = (data.get('name') or '').strip()
|
||||
price = float(data.get('price', 0))
|
||||
stock = int(data.get('stock', 0))
|
||||
item_type = data.get('type', 'product')
|
||||
stock = 0 if item_type == 'service' else int(data.get('stock', 0))
|
||||
image = data.get('image') or None
|
||||
pm = data.get('price_member')
|
||||
pnm = data.get('price_non_member')
|
||||
price_member = float(pm) if pm is not None else None
|
||||
price_non_member = float(pnm) if pnm is not None else None
|
||||
price = price_member if price_member is not None else float(data.get('price', 0))
|
||||
if not name:
|
||||
return jsonify({'success': False, 'message': 'Name required'}), 400
|
||||
if data_manager.update_store_item(item_id, name, price, stock, image):
|
||||
if data_manager.update_store_item(item_id, name, price, stock, image, item_type, price_member, price_non_member):
|
||||
return jsonify({'success': True})
|
||||
return jsonify({'success': False, 'message': 'Item not found'}), 404
|
||||
except Exception as e:
|
||||
@@ -435,15 +445,16 @@ def log_payment():
|
||||
seller = (data.get('seller') or '').strip()
|
||||
cart_items = data.get('cart_items', []) # [{id, name, price, qty, image}]
|
||||
|
||||
# Deduct stock for each sold item
|
||||
# Deduct stock for each sold product (services have no stock)
|
||||
for ci in cart_items:
|
||||
item_id = ci.get('id')
|
||||
new_stock = ci.get('new_stock')
|
||||
item_type = ci.get('type', 'product')
|
||||
name = ci.get('name', '')
|
||||
price = ci.get('price', 0)
|
||||
image = ci.get('image')
|
||||
if item_id is not None and new_stock is not None:
|
||||
data_manager.update_store_item(item_id, name, float(price), int(new_stock), image)
|
||||
if item_id is not None and new_stock is not None and item_type != 'service':
|
||||
data_manager.update_store_item(item_id, name, float(price), int(new_stock), image, item_type)
|
||||
|
||||
# Update balance atomically with payment log
|
||||
data_manager.set_balance(balance_after)
|
||||
|
||||
Reference in New Issue
Block a user