import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.base')
import sys
sys.path.insert(0, '.')
import django
from django.db import transaction
django.setup()
from modules.erp.models import JournalItem, Account

# Get valid account IDs
account_ids = set(Account.objects.values_list('id', flat=True))

# Get orphaned journal items
orphaned_items = list(JournalItem.objects.filter(account_id__isnull=False).exclude(account_id__in=account_ids))
print('Orphaned before:', len(orphaned_items))

if orphananed_items:
    valid_id = list(account_ids)[0]
    print('Using valid account ID:', valid_id)
    with transaction.atomic():
        JournalItem.objects.filter(id__in=[j.id for j in orphananed_items]).update(account_id=valid_id)
    print('Fixed')

# Verify
orphaned_after = JournalItem.objects.filter(account_id__isnull=False).exclude(account_id__in=account_ids)
print('Still orphaned:', orphananed_after.count())
