39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import os
|
|
import django
|
|
|
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
|
|
django.setup()
|
|
|
|
from expenses.models import Category
|
|
from procurement.models import ItemCatalog
|
|
|
|
# 1. Update Project Categories to exactly 1201-1207
|
|
print("Actualizando Categorías a la serie 1200...")
|
|
Category.objects.filter(code__in=['3101', '3102', '3103', '3104', '3105', '3106', '3107']).delete()
|
|
|
|
required_codes = {
|
|
'1201': 'Investigación Básica',
|
|
'1202': 'Investigación Aplicada',
|
|
'1203': 'Desarrollo Experimental',
|
|
'1204': 'Prototipado',
|
|
'1205': 'Pruebas de Concepto (PoC)',
|
|
'1206': 'Gestión de Proyectos',
|
|
'1207': 'Otros Servicios'
|
|
}
|
|
parent, _ = Category.objects.get_or_create(code='1200', defaults={'name': 'Portafolio de Proyectos'})
|
|
for code, name in required_codes.items():
|
|
cat, created = Category.objects.get_or_create(code=code, defaults={'name': name, 'parent': parent})
|
|
if not created:
|
|
cat.name = name
|
|
cat.parent = parent
|
|
cat.save()
|
|
|
|
# 3. Delete 'actv' from ItemCatalog in Procurement
|
|
print("Eliminando ítem 'actv' del catálogo...")
|
|
items_to_delete = ItemCatalog.objects.filter(code__iexact='actv')
|
|
count = items_to_delete.count()
|
|
items_to_delete.delete()
|
|
print(f"Se eliminaron {count} ítems 'actv'.")
|
|
|
|
print("Migración de datos completada.")
|