Files
octopus/myproject/check_stock.py
Andrey Smakotin d8fec8b893 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>
2025-11-08 11:08:23 +03:00

35 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""
Проверка 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}")