示例#1
0
        /// <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));
        }
示例#2
0
        /// <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);
            }
        }