""" Скрипт для пересчета quantity_reserved для всех Stock записей Нужен после добавления сигналов для Reservation """ import os import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') django.setup() from django.db import connection from inventory.models import Stock # Устанавливаем схему для работы с tenant with connection.cursor() as cursor: cursor.execute('SET search_path TO grach') print('[НАЧАЛО] Обновление quantity_reserved для всех Stock записей...') # Получаем все Stock записи stocks = Stock.objects.all() total_count = stocks.count() print(f'[INFO] Найдено Stock записей: {total_count}') updated_count = 0 for stock in stocks: try: # Вызываем refresh_from_batches() который пересчитывает quantity_reserved stock.refresh_from_batches() updated_count += 1 if stock.quantity_reserved > 0: print(f' [OK] Stock #{stock.id}: {stock.product.name} - зарезервировано: {stock.quantity_reserved}') except Exception as e: print(f' [ОШИБКА] Stock #{stock.id}: {str(e)}') print(f'\n[ЗАВЕРШЕНО] Обновлено записей: {updated_count} из {total_count}') print('[OK] Все резервы пересчитаны!')