class Ensenanza(object): def __init__(self, nombre, regimen, unidades, puestos, uds_concertadas, fecha): self.gf=GestorFechas() self.nombre=nombre self.regimen=regimen try: self.unidades=int (unidades) except ValueError: self.unidades=0 try: self.puestos=int (puestos) except ValueError: self.puestos=0 try: self.unidades_concertadas=int(uds_concertadas) except ValueError: self.unidades_concertadas=0 if fecha=="": self.fecha="01/01/2000" else: self.fecha=fecha self.fecha=self.gf.convertir_fecha_a_formato_iso(self.fecha) @staticmethod def get_sql_creacion_sqlite(nombre_tabla_ensenanzas, nombre_tabla_codigos): sentencias_sql=[] sentencias_sql.append("pragma foreign_keys=on") sql=""" create table if not exists {0} ( nombre char(120) primary key, regimen char(25), unidades integer, puestos integer, uds_concertadas integer, fecha date, codigo_centro char(10), foreign key (codigo_centro) references {1} on delete cascade on update cascade ) """ sentencias_sql.append ( sql.format (nombre_tabla_ensenanzas, nombre_tabla_codigos) ) indice=""" create index if not exists idx_ensenanza_region on {0}(nombre) """ sentencias_sql.append ( indice.format(nombre_tabla_ensenanzas) ) return sentencias_sql def get_sql_sqlite(self, nombre_tabla, codigo_centro): sql=""" insert or ignore into {0} (nombre, regimen, unidades, puestos, uds_concertadas, fecha, codigo_centro) values ( '{1}', '{2}', {3}, {4}, {5}, '{6}', '{7}' ) """ sql_devuelto=sql.format ( nombre_tabla, self.nombre, self.regimen, self.unidades, self.puestos, self.unidades_concertadas, self.fecha, codigo_centro) return sql_devuelto def __str__(self): return self.nombre
#Todos los centros de nuestra BD llevan C al final, pero #en esta adjudicación no lo han puesto. Lo añadimos a mano cod_centro+="C" localidad=extraer_localidad(linea_limpia) dni = extraer_dni(linea_limpia) nombre = extraer_nombre(linea_limpia) linea_siguiente=lineas[i+1] nom_centro=linea_siguiente[0:51].strip() trozo_fecha1=linea_siguiente[72:132] fecha_1=extraer_patron(re_fecha, trozo_fecha1) trozo_fecha2=linea_siguiente[133:] fecha_2=extraer_patron(re_fecha, trozo_fecha2) fecha_1=gestor_fechas.convertir_fecha_a_formato_iso(fecha_1) fecha_2=gestor_fechas.convertir_fecha_a_formato_iso(fecha_2) especialidad_asociada=Especialidad.objects.get ( codigo_especialidad=codigo_espe ) try: centro_asociado=Centro.objects.get( codigo_centro=cod_centro ) except: print ("No existe el centro {0}".format(cod_centro)) loc_asociada=get_localidad (cod_localidad, nom_localidad) centro_asociado=Centro( codigo_centro=cod_centro, nombre_centro=nom_centro, localidad=loc_asociada ) centro_asociado.save()
archivo=open(archivo,"r", encoding="utf-8") lineas=archivo.readlines() total_lineas=len(lineas) codigo_especialidad="" nombramientos=[] fecha_adjudicacion=FECHA_NO_ENCONTRADA fecha_adjudicacion_formato_iso=FECHA_NO_ENCONTRADA procedimiento_adjudicacion=None for i in range(0, total_lineas): linea=lineas[i] if fecha_adjudicacion==FECHA_NO_ENCONTRADA: fecha_adjudicacion=obtener_fecha_adjudicacion(linea) if (fecha_adjudicacion!=FECHA_NO_ENCONTRADA): fecha_adjudicacion_formato_iso=gestor_fechas.convertir_fecha_a_formato_iso(fecha_adjudicacion) procedimiento_adjudicacion=ProcedimientoAdjudicacion( nombre=ProcedimientoAdjudicacion.ASIGNACION_SUSTITUCIONES+ fecha_adjudicacion, fecha=fecha_adjudicacion_formato_iso ) procedimiento_adjudicacion.save() if i+2==total_lineas: break linea_siguiente=lineas[i+1] linea_posterior=lineas[i+2] lista_campos=[] if (linea_contiene_patron(re_especialidad, linea)): codigo_especialidad=extraer_patron(re_especialidad, linea) codigo_especialidad=codigo_especialidad[2:] if (linea_contiene_patron(re_dni, linea)): dni=extraer_patron(re_dni, linea)