CORRECCIÓN: arreglar excepciones silenciosas y limpiar scripts
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
import os
|
||||
import django
|
||||
import sys
|
||||
|
||||
# Set up Django environment
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
|
||||
django.setup()
|
||||
|
||||
from expenses.models import Project
|
||||
|
||||
def run_seed():
|
||||
print("Clearing existing projects to ensure clean portfolio seeding...")
|
||||
# This might cascade to expenses, which is expected for seeding a clean MVP/dev environment
|
||||
Project.objects.all().delete()
|
||||
|
||||
print("Seeding Root Cost Centers, Portfolios and Projects...")
|
||||
|
||||
# 1. Create Root Cost Centers (Level 1)
|
||||
cc_idi = Project.objects.create(
|
||||
code="CC-IDI",
|
||||
name="Centro de Costo I+D+i",
|
||||
description="Centro de costo principal para Investigación, Desarrollo e Innovación tecnológica.",
|
||||
assigned_budget_clp=350000000.00,
|
||||
parent=None
|
||||
)
|
||||
cc_adf = Project.objects.create(
|
||||
code="CC-ADF",
|
||||
name="Centro de Costo Administración y Finanzas",
|
||||
description="Centro de costo corporativo para Administración, Finanzas y Overhead general.",
|
||||
assigned_budget_clp=150000000.00,
|
||||
parent=None
|
||||
)
|
||||
print(f"Created Root Cost Center: {cc_idi.code} - {cc_idi.name}")
|
||||
print(f"Created Root Cost Center: {cc_adf.code} - {cc_adf.name}")
|
||||
|
||||
# 2. Portfolio definitions (Level 2) - under CC-IDI
|
||||
portfolio_def = {
|
||||
"Portafolio 1": 5,
|
||||
"Portafolio 2": 4,
|
||||
"Portafolio 3": 3,
|
||||
"Portafolio 4": 1,
|
||||
"Portafolio 5": 1,
|
||||
"Portafolio 6": 1,
|
||||
"Portafolio 7": 2,
|
||||
}
|
||||
|
||||
for index, (port_name, num_projects) in enumerate(portfolio_def.items(), 1):
|
||||
port_code = f"PORT-{index:03d}"
|
||||
|
||||
# Create portfolio under CC-IDI
|
||||
portfolio = Project.objects.create(
|
||||
code=port_code,
|
||||
name=port_name,
|
||||
description=f"Portafolio tecnológico para agrupar {num_projects} proyectos.",
|
||||
assigned_budget_clp=50000000.00,
|
||||
parent=cc_idi
|
||||
)
|
||||
print(f" Created Portfolio: {portfolio.code} - {portfolio.name} (under CC-IDI)")
|
||||
|
||||
# Create subprojects (Level 3)
|
||||
for sub_idx in range(1, num_projects + 1):
|
||||
sub_code = f"PRY-{index}{sub_idx:02d}"
|
||||
subproject = Project.objects.create(
|
||||
code=sub_code,
|
||||
name=f"Proyecto {sub_idx} ({port_name})",
|
||||
description=f"Subproyecto contable imputable de {port_name}.",
|
||||
assigned_budget_clp=10000000.00,
|
||||
parent=portfolio
|
||||
)
|
||||
print(f" Created Project: {subproject.code} - {subproject.name}")
|
||||
|
||||
# 3. Create Portfolios and Projects under CC-ADF
|
||||
port_adm = Project.objects.create(
|
||||
code="PORT-008",
|
||||
name="Operaciones y Finanzas",
|
||||
description="Portafolio administrativo para gastos fijos, soporte y legal.",
|
||||
assigned_budget_clp=80000000.00,
|
||||
parent=cc_adf
|
||||
)
|
||||
print(f" Created Portfolio: {port_adm.code} - {port_adm.name} (under CC-ADF)")
|
||||
|
||||
pry_adm = Project.objects.create(
|
||||
code="PRY-801",
|
||||
name="Sueldos y Overhead Administrativo",
|
||||
description="Gasto operacional fijo de oficina, contabilidad y sueldos staff core.",
|
||||
assigned_budget_clp=40000000.00,
|
||||
parent=port_adm
|
||||
)
|
||||
pry_fin = Project.objects.create(
|
||||
code="PRY-802",
|
||||
name="Servicios Financieros y Legal",
|
||||
description="Gastos de auditoría externa, patentes y asesoría legal B2B.",
|
||||
assigned_budget_clp=40000000.00,
|
||||
parent=port_adm
|
||||
)
|
||||
print(f" Created Project: {pry_adm.code} - {pry_adm.name}")
|
||||
print(f" Created Project: {pry_fin.code} - {pry_fin.name}")
|
||||
|
||||
print("✅ Root Cost Centers, Portfolios and Projects seeding completed successfully.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_seed()
|
||||
Reference in New Issue
Block a user