iteracion 2

This commit is contained in:
Nachou-u
2026-09-07 18:44:32 -03:00
parent a103a47ae6
commit 09a3f6fb37
93 changed files with 7394 additions and 349 deletions
+26 -11
View File
@@ -10,15 +10,12 @@ django.setup()
from expenses.models import Category
def run_seed():
print("Clearing existing categories to ensure clean state...")
Category.objects.all().delete()
print("Seeding professional CBS categories and Chart of Accounts...")
print("Seeding professional CBS categories...")
# Define the structure
# Define the complete EFINTEL CBS structure
cbs_structure = {
"1000": {
"name": "Recursos Humanos y Especialidades",
"name": "Recursos Humanos y Especialidades I+D+i",
"children": {
"1100": "Personal Staff Core (Fijo / Sueldos Base)",
"1201": "Electricidad de Potencia e Infraestructura",
@@ -31,11 +28,12 @@ def run_seed():
}
},
"2000": {
"name": "Materiales e Insumos",
"name": "Materiales, Insumos e Infraestructura de Trabajo",
"children": {
"2100": "Componentes Electrónicos Prototipado",
"2200": "Equipamiento Industrial de Campo",
"2300": "Materiales Eléctricos y de Montaje",
"2301": "Arriendo de Oficinas y Espacios de Trabajo",
"2400": "Insumos de Oficina, Aseo, Cafetería y Papelería"
}
},
@@ -54,12 +52,22 @@ def run_seed():
}
},
"4000": {
"name": "Software y Herramientas Digitales",
"name": "Software, Herramientas Digitales y Formación",
"children": {
"4100": "Licencias de Ingeniería & Diseño (Altium/Unity/Unreal)",
"4200": "Infraestructura y Servidores Cloud (AWS/Azure)",
"4200": "Infraestructura y Servidores Cloud Tradicionales",
"4201": "Cursos, Capacitación y Certificaciones Técnicas para Especialistas",
"4300": "Herramientas de Gestión de Proyectos / Software General"
}
},
"7000": {
"name": "Software, Datos, Inteligencia Artificial y Cloud",
"children": {
"7100": "Licencias IA y Modelos Propietarios",
"7200": "Cloud & Computación GPU de Alto Rendimiento",
"7300": "Consumo de APIs LLM (OpenAI, Anthropic, Gemini)",
"7400": "MLOps, Pipelines de Datos y Despliegue de Modelos"
}
}
}
@@ -69,14 +77,21 @@ def run_seed():
code=p_code,
defaults={'name': p_data['name'], 'description': 'Partida Principal (Macro-categoría)'}
)
print(f"Created Parent: {parent_cat.code} - {parent_cat.name}")
if parent_cat.name != p_data['name']:
parent_cat.name = p_data['name']
parent_cat.save()
print(f"Parent: {parent_cat.code} - {parent_cat.name}")
for c_code, c_name in p_data['children'].items():
child_cat, _ = Category.objects.get_or_create(
code=c_code,
defaults={'name': c_name, 'parent': parent_cat}
)
print(f" Created Child: {child_cat.code} - {child_cat.name}")
if child_cat.name != c_name or child_cat.parent != parent_cat:
child_cat.name = c_name
child_cat.parent = parent_cat
child_cat.save()
print(f" Child: {child_cat.code} - {child_cat.name}")
print("✅ CBS Seeding completed successfully.")