Registro yvalidacion de solicitudes0⋯ ForkExport SVG PNG DOT pcp2_31 Begin pcp2_0 contadorSolicitudes = 0 pcp2_31:s->pcp2_0:n pcp2_1 otraSolicitud = true pcp2_0:s->pcp2_1:n pcp2_2 matricula = "" pcp2_1:s->pcp2_2:n pcp2_3 asignatura = "" pcp2_2:s->pcp2_3:n pcp2_4 calificacionInicial = 0 pcp2_3:s->pcp2_4:n pcp2_5 prioridad = "" pcp2_4:s->pcp2_5:n pcp2_28 otraSolicitud pcp2_5:s->pcp2_28:n true_dummy_up_pcp2_28 pcp2_28:e->true_dummy_up_pcp2_28 true false_dummy_up_pcp2_28 pcp2_28:w->false_dummy_up_pcp2_28 false pcp2_6 "Ingrese matricula, asignatura y calificacion (0 a 10)" true_dummy_up_pcp2_28->pcp2_6:n false_dummy_down_pcp2_28 false_dummy_up_pcp2_28->false_dummy_down_pcp2_28 pcp2_7 matricula pcp2_6:s->pcp2_7:n pcp2_8 asignatura pcp2_7:s->pcp2_8:n pcp2_9 calificacionInicial pcp2_8:s->pcp2_9:n pcp2_26 (matricula != "") && (asignatura != "") && (calificacionInicial >= 0) && (calificacionInicial <= 10) pcp2_9:s->pcp2_26:n true_dummy_up_pcp2_26 pcp2_26:e->true_dummy_up_pcp2_26 true false_dummy_up_pcp2_26 pcp2_26:w->false_dummy_up_pcp2_26 false pcp2_18 calificacionInicial < 6 true_dummy_up_pcp2_26->pcp2_18:n pcp2_23 "Faltan datos o calificacion invalida. Corrija la solicitud." false_dummy_up_pcp2_26->pcp2_23:n true_dummy_up_pcp2_18 pcp2_18:e->true_dummy_up_pcp2_18 true false_dummy_up_pcp2_18 pcp2_18:w->false_dummy_up_pcp2_18 false pcp2_10 prioridad = "Alta" true_dummy_up_pcp2_18->pcp2_10:n pcp2_15 calificacionInicial < 8 false_dummy_up_pcp2_18->pcp2_15:n true_dummy_down_pcp2_18 pcp2_10:s->true_dummy_down_pcp2_18:n true_dummy_up_pcp2_15 pcp2_15:e->true_dummy_up_pcp2_15 true false_dummy_up_pcp2_15 pcp2_15:w->false_dummy_up_pcp2_15 false pcp2_11 prioridad = "Media" true_dummy_up_pcp2_15->pcp2_11:n pcp2_12 prioridad = "Baja" false_dummy_up_pcp2_15->pcp2_12:n true_dummy_down_pcp2_15 pcp2_11:s->true_dummy_down_pcp2_15:n false_dummy_down_pcp2_15 pcp2_12:s->false_dummy_down_pcp2_15:n end_pcp2_15 true_dummy_down_pcp2_15->end_pcp2_15 false_dummy_down_pcp2_15->end_pcp2_15 false_dummy_down_pcp2_18 end_pcp2_15:s->false_dummy_down_pcp2_18:n end_pcp2_18 true_dummy_down_pcp2_18->end_pcp2_18 false_dummy_down_pcp2_18->end_pcp2_18 pcp2_19 contadorSolicitudes = contadorSolicitudes + 1 end_pcp2_18:s->pcp2_19:n pcp2_20 matricula + " | " + asignatura + " | " + prioridad pcp2_19:s->pcp2_20:n pcp2_21 "Otra solicitud? true o false" pcp2_20:s->pcp2_21:n pcp2_22 otraSolicitud pcp2_21:s->pcp2_22:n true_dummy_down_pcp2_26 pcp2_22:s->true_dummy_down_pcp2_26:n false_dummy_down_pcp2_26 pcp2_23:s->false_dummy_down_pcp2_26:n end_pcp2_26 true_dummy_down_pcp2_26->end_pcp2_26 false_dummy_down_pcp2_26->end_pcp2_26 true_dummy_down_pcp2_28 end_pcp2_26:s->true_dummy_down_pcp2_28:n true_dummy_down_left_pcp2_28 true_dummy_down_pcp2_28->true_dummy_down_left_pcp2_28 true_dummy_down_left_pcp2_28->pcp2_28:s end_dummy_down_pcp2_28 false_dummy_down_pcp2_28->end_dummy_down_pcp2_28 pcp2_29 "Solicitudes validas: " + contadorSolicitudes end_dummy_down_pcp2_28->pcp2_29 pcp2_30 "Continuar con asignacion usando estos registros" pcp2_29:s->pcp2_30:n pcp2_32 End pcp2_30:s->pcp2_32:n
Asignacionde tutores y programacion de sesiones0⋯ ForkExport SVG PNG DOT pcp2_64 Begin pcp2_33 contadorSolicitudes = 0 pcp2_64:s->pcp2_33:n pcp2_34 i = 0 pcp2_33:s->pcp2_34:n pcp2_35 sesionesAsignadas = 0 pcp2_34:s->pcp2_35:n pcp2_36 solicitudesPendientes = 0 pcp2_35:s->pcp2_36:n pcp2_37 asignatura = "" pcp2_36:s->pcp2_37:n pcp2_38 materiaTutor = "" pcp2_37:s->pcp2_38:n pcp2_39 horarioCompatible = false pcp2_38:s->pcp2_39:n pcp2_40 cargaTutor = 0 pcp2_39:s->pcp2_40:n pcp2_41 capacidadTutor = 0 pcp2_40:s->pcp2_41:n pcp2_42 "Cantidad de solicitudes validas de la etapa 1, ordenadas por prioridad" pcp2_41:s->pcp2_42:n pcp2_43 contadorSolicitudes pcp2_42:s->pcp2_43:n pcp2_60 i < contadorSolicitudes pcp2_43:s->pcp2_60:n true_dummy_up_pcp2_60 pcp2_60:e->true_dummy_up_pcp2_60 true false_dummy_up_pcp2_60 pcp2_60:w->false_dummy_up_pcp2_60 false pcp2_44 "Ingrese asignatura, materia del tutor candidato, compatibilidad de horario, carga y capacidad" true_dummy_up_pcp2_60->pcp2_44:n false_dummy_down_pcp2_60 false_dummy_up_pcp2_60->false_dummy_down_pcp2_60 pcp2_45 asignatura pcp2_44:s->pcp2_45:n pcp2_46 materiaTutor pcp2_45:s->pcp2_46:n pcp2_47 horarioCompatible pcp2_46:s->pcp2_47:n pcp2_48 cargaTutor pcp2_47:s->pcp2_48:n pcp2_49 capacidadTutor pcp2_48:s->pcp2_49:n pcp2_57 (asignatura == materiaTutor) && horarioCompatible && (cargaTutor >= 0) && (cargaTutor < capacidadTutor) pcp2_49:s->pcp2_57:n true_dummy_up_pcp2_57 pcp2_57:e->true_dummy_up_pcp2_57 true false_dummy_up_pcp2_57 pcp2_57:w->false_dummy_up_pcp2_57 false pcp2_50 sesionesAsignadas = sesionesAsignadas + 1 true_dummy_up_pcp2_57->pcp2_50:n pcp2_53 solicitudesPendientes = solicitudesPendientes + 1 false_dummy_up_pcp2_57->pcp2_53:n pcp2_51 cargaTutor = cargaTutor + 1 pcp2_50:s->pcp2_51:n pcp2_52 "Sesion registrada. Actualice la carga del tutor para la siguiente solicitud." pcp2_51:s->pcp2_52:n true_dummy_down_pcp2_57 pcp2_52:s->true_dummy_down_pcp2_57:n pcp2_54 "Pendiente: buscar otro tutor o reintentar despues." pcp2_53:s->pcp2_54:n false_dummy_down_pcp2_57 pcp2_54:s->false_dummy_down_pcp2_57:n end_pcp2_57 true_dummy_down_pcp2_57->end_pcp2_57 false_dummy_down_pcp2_57->end_pcp2_57 pcp2_58 i = i + 1 end_pcp2_57:s->pcp2_58:n true_dummy_down_pcp2_60 pcp2_58:s->true_dummy_down_pcp2_60:n true_dummy_down_left_pcp2_60 true_dummy_down_pcp2_60->true_dummy_down_left_pcp2_60 true_dummy_down_left_pcp2_60->pcp2_60:s end_dummy_down_pcp2_60 false_dummy_down_pcp2_60->end_dummy_down_pcp2_60 pcp2_61 "Asignadas: " + sesionesAsignadas end_dummy_down_pcp2_60->pcp2_61 pcp2_62 "Pendientes de asignar: " + solicitudesPendientes pcp2_61:s->pcp2_62:n pcp2_63 "Continuar con seguimiento por estudiante y asignatura" pcp2_62:s->pcp2_63:n pcp2_65 End pcp2_63:s->pcp2_65:n
Registro deasistencia y seguimiento academico0⋯ ForkExport SVG PNG DOT pcp2_114 Begin pcp2_66 sesionesAsignadas = 0 pcp2_114:s->pcp2_66:n pcp2_67 sesionesRevisadas = 0 pcp2_66:s->pcp2_67:n pcp2_68 totalAsistencias = 0 pcp2_67:s->pcp2_68:n pcp2_69 totalInasistencias = 0 pcp2_68:s->pcp2_69:n pcp2_70 sesionesPendientes = 0 pcp2_69:s->pcp2_70:n pcp2_71 estadoSesion = 0 pcp2_70:s->pcp2_71:n pcp2_72 porcentajeAsistencia = 0 pcp2_71:s->pcp2_72:n pcp2_73 calificacionInicial = 0 pcp2_72:s->pcp2_73:n pcp2_74 calificacionFinal = 0 pcp2_73:s->pcp2_74:n pcp2_75 avanceAcademico = 0 pcp2_74:s->pcp2_75:n pcp2_76 "Por estudiante y asignatura: numero de sesiones e inicial y final (0 a 10)" pcp2_75:s->pcp2_76:n pcp2_77 sesionesAsignadas pcp2_76:s->pcp2_77:n pcp2_78 calificacionInicial pcp2_77:s->pcp2_78:n pcp2_79 calificacionFinal pcp2_78:s->pcp2_79:n pcp2_97 sesionesRevisadas < sesionesAsignadas pcp2_79:s->pcp2_97:n true_dummy_up_pcp2_97 pcp2_97:e->true_dummy_up_pcp2_97 true false_dummy_up_pcp2_97 pcp2_97:w->false_dummy_up_pcp2_97 false pcp2_80 "Estado: 1 asistio, 2 falto, 3 futura" true_dummy_up_pcp2_97->pcp2_80:n false_dummy_down_pcp2_97 false_dummy_up_pcp2_97->false_dummy_down_pcp2_97 pcp2_81 estadoSesion pcp2_80:s->pcp2_81:n pcp2_95 (estadoSesion == 1) || (estadoSesion == 2) || (estadoSesion == 3) pcp2_81:s->pcp2_95:n true_dummy_up_pcp2_95 pcp2_95:e->true_dummy_up_pcp2_95 true false_dummy_up_pcp2_95 pcp2_95:w->false_dummy_up_pcp2_95 false pcp2_90 estadoSesion == 1 true_dummy_up_pcp2_95->pcp2_90:n pcp2_92 "Estado invalido. Repita esta sesion." false_dummy_up_pcp2_95->pcp2_92:n true_dummy_up_pcp2_90 pcp2_90:e->true_dummy_up_pcp2_90 true false_dummy_up_pcp2_90 pcp2_90:w->false_dummy_up_pcp2_90 false pcp2_82 totalAsistencias = totalAsistencias + 1 true_dummy_up_pcp2_90->pcp2_82:n pcp2_87 estadoSesion == 2 false_dummy_up_pcp2_90->pcp2_87:n true_dummy_down_pcp2_90 pcp2_82:s->true_dummy_down_pcp2_90:n true_dummy_up_pcp2_87 pcp2_87:e->true_dummy_up_pcp2_87 true false_dummy_up_pcp2_87 pcp2_87:w->false_dummy_up_pcp2_87 false pcp2_83 totalInasistencias = totalInasistencias + 1 true_dummy_up_pcp2_87->pcp2_83:n pcp2_84 sesionesPendientes = sesionesPendientes + 1 false_dummy_up_pcp2_87->pcp2_84:n true_dummy_down_pcp2_87 pcp2_83:s->true_dummy_down_pcp2_87:n false_dummy_down_pcp2_87 pcp2_84:s->false_dummy_down_pcp2_87:n end_pcp2_87 true_dummy_down_pcp2_87->end_pcp2_87 false_dummy_down_pcp2_87->end_pcp2_87 false_dummy_down_pcp2_90 end_pcp2_87:s->false_dummy_down_pcp2_90:n end_pcp2_90 true_dummy_down_pcp2_90->end_pcp2_90 false_dummy_down_pcp2_90->end_pcp2_90 pcp2_91 sesionesRevisadas = sesionesRevisadas + 1 end_pcp2_90:s->pcp2_91:n true_dummy_down_pcp2_95 pcp2_91:s->true_dummy_down_pcp2_95:n false_dummy_down_pcp2_95 pcp2_92:s->false_dummy_down_pcp2_95:n end_pcp2_95 true_dummy_down_pcp2_95->end_pcp2_95 false_dummy_down_pcp2_95->end_pcp2_95 true_dummy_down_pcp2_97 end_pcp2_95:s->true_dummy_down_pcp2_97:n true_dummy_down_left_pcp2_97 true_dummy_down_pcp2_97->true_dummy_down_left_pcp2_97 true_dummy_down_left_pcp2_97->pcp2_97:s end_dummy_down_pcp2_97 false_dummy_down_pcp2_97->end_dummy_down_pcp2_97 pcp2_103 (totalAsistencias + totalInasistencias) > 0 end_dummy_down_pcp2_97->pcp2_103 true_dummy_up_pcp2_103 pcp2_103:e->true_dummy_up_pcp2_103 true false_dummy_up_pcp2_103 pcp2_103:w->false_dummy_up_pcp2_103 false pcp2_98 porcentajeAsistencia = 100.0 * totalAsistencias / (totalAsistencias + totalInasistencias) true_dummy_up_pcp2_103->pcp2_98:n pcp2_100 "Asistencia no evaluable: no hay sesiones vencidas." false_dummy_up_pcp2_103->pcp2_100:n pcp2_99 "Asistencia: " + porcentajeAsistencia + "%" pcp2_98:s->pcp2_99:n true_dummy_down_pcp2_103 pcp2_99:s->true_dummy_down_pcp2_103:n false_dummy_down_pcp2_103 pcp2_100:s->false_dummy_down_pcp2_103:n end_pcp2_103 true_dummy_down_pcp2_103->end_pcp2_103 false_dummy_down_pcp2_103->end_pcp2_103 guard_avance (totalAsistencias + totalInasistencias) > 0 end_pcp2_103:s->guard_avance:n true_dummy_up_guard_avance guard_avance:e->true_dummy_up_guard_avance true false_dummy_up_guard_avance guard_avance:w->false_dummy_up_guard_avance false pcp2_104 avanceAcademico = calificacionFinal - calificacionInicial true_dummy_up_guard_avance->pcp2_104:n guard_msg "Avance no evaluable: sin sesiones vencidas" false_dummy_up_guard_avance->guard_msg:n pcp2_109 (totalInasistencias >= 2) || (((totalAsistencias + totalInasistencias) > 0) && (porcentajeAsistencia < 80)) || (calificacionFinal < 6) || (avanceAcademico < 1) pcp2_104:s->pcp2_109:n true_dummy_up_pcp2_109 pcp2_109:e->true_dummy_up_pcp2_109 true false_dummy_up_pcp2_109 pcp2_109:w->false_dummy_up_pcp2_109 false pcp2_105 "Requiere seguimiento adicional" true_dummy_up_pcp2_109->pcp2_105:n pcp2_106 "Continuar seguimiento ordinario" false_dummy_up_pcp2_109->pcp2_106:n true_dummy_down_pcp2_109 pcp2_105:s->true_dummy_down_pcp2_109:n false_dummy_down_pcp2_109 pcp2_106:s->false_dummy_down_pcp2_109:n end_pcp2_109 true_dummy_down_pcp2_109->end_pcp2_109 false_dummy_down_pcp2_109->end_pcp2_109 pcp2_110 "Avance en puntos: " + avanceAcademico end_pcp2_109:s->pcp2_110:n true_dummy_down_guard_avance pcp2_110:s->true_dummy_down_guard_avance:n false_dummy_down_guard_avance guard_msg:s->false_dummy_down_guard_avance:n end_guard_avance true_dummy_down_guard_avance->end_guard_avance false_dummy_down_guard_avance->end_guard_avance pcp2_111 "Realizadas: " + totalAsistencias end_guard_avance:s->pcp2_111:n pcp2_112 "Inasistencias por reprogramar: " + totalInasistencias pcp2_111:s->pcp2_112:n pcp2_113 "Futuras: " + sesionesPendientes pcp2_112:s->pcp2_113:n pcp2_115 End pcp2_113:s->pcp2_115:n