/// <summary> /// Genera un archivo de Excel que contiene la solicitud de residencias /// profesionales de un alumno, a través de su matrícula. /// </summary> /// <param name="matricula">Matrícula del alumno de quien se generará la solicitud</param> /// <param name="ruta">Ruta donde se almacenará el archivo</param> /// <returns></returns> public static bool GenerarFormatoDeSolicitud(String matricula, String ruta) { // Obtener informacion de la solicitud var alumno = AlumnoDAO.ObtenerAlumno(matricula); var solicitud = SolicitudDAO.ObtenerSolicitud(matricula); var residencia = ResidenciaDAO.ObtenerResidencia(solicitud.IdResidencia); var empresa = EmpresaDAO.ObtenerEmpresa(residencia.IdEmpresa); // Obtener la ruta del archivo de plantilla var rutaPlantilla = Path.Combine(System.IO.Path.GetFullPath(@"..\..\"), "Resources", "Plantilla.xlsx"); // Crear la lista de cambios var listaDatos = new List <DatoCelda>(); // Fecha listaDatos.Add(new DatoCelda(6, 17, String.Format("{0:00}/{1:00}/{2}", DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year))); // Nombre del proyecto listaDatos.Add(new DatoCelda(11, 10, residencia.NombreProyec)); // Opcion elegida if (residencia.Modalidad == "Banco de proyectos") { listaDatos.Add(new DatoCelda(14, 13, "X")); } if (residencia.Modalidad == "Propuesta propia") { listaDatos.Add(new DatoCelda(14, 20, "X")); } if (residencia.Modalidad == "Trabajador") { listaDatos.Add(new DatoCelda(14, 26, "X")); } // Periodo proyectado listaDatos.Add(new DatoCelda(17, 10, String.Format("{0} {1}", residencia.Periodo, residencia.Anio))); // Nombre de la empresa listaDatos.Add(new DatoCelda(22, 4, empresa.Nombre)); // Giro de la empresa listaDatos.Add(new DatoCelda(24, 4, String.Format("Industrial ( {0} ) Servicios ( {1} ) Otro ( {2} )", empresa.Giro == "Industrial" ? "X" : " ", empresa.Giro == "Servicios" ? "X" : " ", empresa.Giro == "Otro" ? "X" : " "))); // RFC de la empresa listaDatos.Add(new DatoCelda(24, 19, empresa.RFC)); // Sector de la empresa listaDatos.Add(new DatoCelda(25, 4, String.Format("Pública ( {0} ) Privada( {1} )", empresa.Sector == "Publico" ? "X" : " ", empresa.Sector == "Privado" ? "X" : " "))); // Domicilio de la empresa listaDatos.Add(new DatoCelda(26, 4, empresa.Domicilio)); // Colonia de la empresa listaDatos.Add(new DatoCelda(28, 4, empresa.Colonia)); // CP de la empresa listaDatos.Add(new DatoCelda(28, 15, empresa.CP)); // Fax de la empresa listaDatos.Add(new DatoCelda(28, 21, empresa.Fax)); // Mision de la empresa listaDatos.Add(new DatoCelda(30, 4, empresa.Mision)); // Nombre del titular de la empresa listaDatos.Add(new DatoCelda(37, 6, empresa.Titular)); // Puesto del titular de la empresa listaDatos.Add(new DatoCelda(37, 19, empresa.PuestoTit)); // Nombre del asesor de la empresa listaDatos.Add(new DatoCelda(39, 6, residencia.AsesorExt)); // Puesto del asesor de la empresa listaDatos.Add(new DatoCelda(39, 19, residencia.PuestoAsesor)); // Nombre del responsable de la empresa listaDatos.Add(new DatoCelda(41, 9, residencia.Responsable)); // Puesto del responsable de la empresa listaDatos.Add(new DatoCelda(41, 19, residencia.PuestoResp)); // Nombre del residente listaDatos.Add(new DatoCelda(51, 4, alumno.NombreCompleto)); // Carrera del residente listaDatos.Add(new DatoCelda(53, 4, CarreraDAO.ObtenerUno(alumno.Carrera).Nombre)); // Matricula del residente listaDatos.Add(new DatoCelda(53, 19, alumno.Matricula)); // Domicilio del residente listaDatos.Add(new DatoCelda(55, 4, alumno.Domicilio)); // Correo del residente listaDatos.Add(new DatoCelda(57, 4, alumno.Correo)); // Tipo de SS del residente listaDatos.Add(new DatoCelda(57, 17, String.Format("IMSS ( {0} ) ISSSTE( {1} ) Otro( {2} )", alumno.TipoSS == "IMSS" ? "X" : " ", alumno.TipoSS == "ISSSTE" ? "X" : " ", alumno.TipoSS == "Otro" ? "X" : " "))); // Numero de SS del residente listaDatos.Add(new DatoCelda(58, 17, alumno.NumeroSS)); // Ciudad del residente listaDatos.Add(new DatoCelda(59, 4, alumno.Ciudad)); // Telefono del residente listaDatos.Add(new DatoCelda(59, 17, alumno.Telefono)); return(ExcelGenerador.LlenarPlantillaConDatos(ruta, rutaPlantilla, listaDatos)); }
/// <summary> /// Obtiene la lista de informes por periodo. /// </summary> /// <param name="anio"></param> /// <param name="periodo"></param> /// <param name="idDocente"></param> /// <param name="rolDocente"></param> /// <param name="aprobados"></param> /// <returns></returns> public static List <InformePOJO> ObtenerInformesPorPeriodo(int anio, string periodo, String idDocente, String rolDocente, bool aprobados) { try { var lista = new List <InformePOJO>(); var alumnos = AlumnoDAO.ObtenerAlumnosPorDocente(idDocente); foreach (var alumno in alumnos) { // Verifica la relacion de rol docente-alumno var existeRol = RolDAO.ExisteRol(alumno.Matricula, idDocente, rolDocente); if (!existeRol) { continue; } var pre = aprobados ? "Liberacion" : "Aprobacion"; // Verifica que haya sido aprobado en caso de liberacion if (aprobados && !AlumnoDAO.DictamenAprobado(alumno)) { continue; } // Obtiene los responsables var asesor = DocenteDAO.ObtenerAsesor(alumno); var revisores = DocenteDAO.ObtenerRevisores(alumno); InformePOJO.Dictamen dictamenAsesor, dictamenRevisor1, dictamenRevisor2; // No hay asesor o revisores asignados correctamente if (asesor == null || revisores == null || revisores.Count != 2) { continue; } var dicAsesor = DictamenDAO.ObtenerDictamen(asesor.ID, alumno.Matricula, pre + "Asesor"); var dicRevisor1 = DictamenDAO.ObtenerDictamen(revisores[0].ID, alumno.Matricula, pre + "Revisor"); var dicRevisor2 = DictamenDAO.ObtenerDictamen(revisores[1].ID, alumno.Matricula, pre + "Revisor"); // Asesor if (dicAsesor == null) { dictamenAsesor = InformePOJO.Dictamen.PENDIENTE; } else if (dicAsesor.Estatus == "Aceptado") { dictamenAsesor = InformePOJO.Dictamen.APROBADO; } else { dictamenAsesor = InformePOJO.Dictamen.RECHAZADO; } // Revisor 1 if (dicRevisor1 == null) { dictamenRevisor1 = InformePOJO.Dictamen.PENDIENTE; } else if (dicRevisor1.Estatus == "Aceptado") { dictamenRevisor1 = InformePOJO.Dictamen.APROBADO; } else { dictamenRevisor1 = InformePOJO.Dictamen.RECHAZADO; } // Revisor 2 if (dicRevisor2 == null) { dictamenRevisor2 = InformePOJO.Dictamen.PENDIENTE; } else if (dicRevisor2.Estatus == "Aceptado") { dictamenRevisor2 = InformePOJO.Dictamen.APROBADO; } else { dictamenRevisor2 = InformePOJO.Dictamen.RECHAZADO; } lista.Add( new InformePOJO( alumno, dictamenAsesor, dictamenRevisor1, dictamenRevisor2 ) ); } return(lista); } catch (Exception ex) { return(null); } }