from formulario.models import Organismo, Reparticion, Dependencia
import time

def set_organismo(reparticiones,id):
    for r in reparticiones:
        r.organismo = id
        set_organismo(Reparticion.objects.filter(depende=r.id))
        r.save()

def run():
    fn = open("scripts/opcgp/dependencias.txt","r",encoding="utf-8")

    for line in fn:
        aux = line.split("|")

        depende = aux[0]
        id = aux[1]
        nombre = aux[2].replace("\n","")

        try:
            rep = Reparticion.objects.get(id=id,nombre=nombre)
        except:
            rep = Reparticion(id=id,nombre=nombre,organismo=1,depende=depende)
            rep.save()
            print("Agregada reparticion: " + rep.nombre)

    for r in Reparticion.objects.all():
        dependen = []
        for rep in Reparticion.objects.filter(depende=r.id):
            dependen.append(rep)
        for dep in Dependencia.objects.filter(reparticion=r.id):
            dependen.append(dep)
        if len(dependen) == 0:
            dep = Dependencia(id=r.id,nombre=r.nombre,reparticion=r.depende)
            dep.save()
            print("Dependencia: " + dep.nombre + " - " + "Reparticiones: " + str(len(Reparticion.objects.all())))
            r.delete()
            continue
        if r.depende == 1:
            org = Organismo(id=r.id,nombre=r.nombre)
            org.save()
            print("Organismo " + org.nombre)
            for r2 in Reparticion.objects.filter(depende=org.id):
                print(r2.nombre)
                r2.depende = 0
                r2.organismo = org.id
                r2.save()
            r.delete()
