Add utility scripts for stock reservation management

- Add check_stock.py: script to view Stock records with reservations
- Add refresh_stock_reservations.py: standalone script to recalculate quantity_reserved for all Stock records
- Both scripts work with 'grach' tenant schema

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-08 11:08:23 +03:00
parent d2f15b5126
commit d8fec8b893
2 changed files with 73 additions and 0 deletions

34
myproject/check_stock.py Normal file
View File

@@ -0,0 +1,34 @@
"""
Проверка Stock с quantity_reserved
"""
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
django.setup()
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("SET search_path TO grach")
# Проверяем Stock с резервами
print("Stock с резервами:\n")
cursor.execute("""
SELECT
s.id,
p.name as product_name,
s.quantity_available,
s.quantity_reserved,
(s.quantity_available - s.quantity_reserved) as free_quantity
FROM grach.inventory_stock s
JOIN grach.products_product p ON p.id = s.product_id
ORDER BY s.quantity_reserved DESC
""")
print(f"{'ID':<5} {'Товар':<30} {'Всего':<10} {'Резерв':<10} {'Свободно':<10}")
print("=" * 75)
for row in cursor.fetchall():
stock_id, product_name, qty_available, qty_reserved, free_qty = row
print(f"{stock_id:<5} {product_name:<30} {qty_available:<10} {qty_reserved:<10} {free_qty:<10}")