示例#1
0
        private void tileView1_DoubleClick(object sender, EventArgs e)
        {
            if (tileView1.RowCount > 0)
            {
                int    intIdTema   = int.Parse(tileView1.GetFocusedRowCellValue("IdTema").ToString());
                string strDescTema = tileView1.GetFocusedRowCellValue("DescTema").ToString();

                TemaBE objE_Tema = null;
                objE_Tema = new TemaBL().Selecciona(0, intIdTema);
                if (objE_Tema != null)
                {
                    if (objE_Tema.IdSituacion == Parametros.intTEMAInactivo)
                    {
                        XtraMessageBox.Show("El Curso se encuentra inactivo no puede ingresar", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }

                    List <TemaPersonaBE> lstTemaPersona = null;
                    lstTemaPersona = new TemaPersonaBL().ListaTodosActivo(0, intIdTema, Parametros.intPersonaId);
                    if (lstTemaPersona.Count == 0)
                    {
                        XtraMessageBox.Show("Ud. No tiene permiso para ingresar al curso virtual.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }

                    List <ResumenPersonaBE> lstResumenPersona = null;
                    lstResumenPersona = new ResumenPersonaBL().ListaTodosActivo(0, intIdTema, Parametros.intPersonaId);
                    if (lstResumenPersona.Count == 1)
                    {
                        if (lstResumenPersona[0].Situacion == "APROBADO")
                        {
                            XtraMessageBox.Show("Ud. se encuentra aprobadado en el curso, no puede ingresar.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                    }

                    int intCuentaDesaprobado = 0;
                    intCuentaDesaprobado = new ResumenPersonaBL().CuentaDesaprobado(0, Parametros.intPersonaId, intIdTema);
                    if (intCuentaDesaprobado == 2)
                    {
                        XtraMessageBox.Show("Ud. Tiene dos intentos desaprobados del curso virtual\n Comuníquese con el correo: [email protected]", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }


                    frmRegCapacitacionVirtualEdit frm = new frmRegCapacitacionVirtualEdit();
                    frm.intIdTema       = intIdTema;
                    frm.strDescTema     = strDescTema;
                    frm.strParticipante = Parametros.strUsuarioNombres;
                    frm.Show();
                }
            }
        }
        private void xtraTabControl1_SelectedPageChanged(object sender, DevExpress.XtraTab.TabPageChangedEventArgs e)
        {
            if (e.Page.Name.ToString() == "xtraTabPage2")
            {
                if (gvTemaDetallePersona.RowCount > 0)
                {
                    for (int i = 0; i < gvTemaDetallePersona.DataRowCount; i++)
                    {
                        if (gvTemaDetallePersona.GetRowCellValue(i, "DescSituacion").ToString() == "NO VISTO")
                        {
                            XtraMessageBox.Show("Para pasar al examén final es necesario abrir y revisar todos los archivos del contenido del curso.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            xtraTabControl1.SelectedTabPage = xtraTabPage1;
                            return;
                        }
                    }
                }

                //VERIFICAMOS EL CUESTIONARIO
                List <CuestionarioBE> lstCuestionario = null;
                lstCuestionario = new CuestionarioBL().ListaTodosActivo(0, intIdTema);
                if (lstCuestionario.Count > 0)
                {
                    intIdCuestionario  = lstCuestionario[0].IdCuestionario;
                    intNotaAprobatoria = lstCuestionario[0].NotaAprobatoria;
                    intDuracion        = lstCuestionario[0].Duracion;

                    if (XtraMessageBox.Show("Dispone de " + intDuracion + " minutos para resolver la evaluación? \n Tenga en cuenta que se activará un cronómetro y no podrá cancelar.", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        mListaPregunta = new PreguntaBL().ListaEvaluacion(0, intIdTema, intIdCuestionario);
                        bsListadoPregunta.DataSource = mListaPregunta;
                        gcPregunta.DataSource        = bsListadoPregunta;
                        gcPregunta.RefreshDataSource();
                        gvPregunta.ExpandAllGroups();

                        h = 0;
                        m = 0;
                        s = 0;

                        lh.Text = "00";
                        lm.Text = "00";
                        ls.Text = "00";

                        timer1.Enabled    = true;
                        btnGrabar.Enabled = true;
                    }
                    else
                    {
                        xtraTabControl1.SelectedTabPage = xtraTabPage1;
                    }
                }
            }

            if (e.Page.Name.ToString() == "xtraTabPage3")
            {
                List <ResumenPersonaBE> lstResumenPersona = null;
                lstResumenPersona = new ResumenPersonaBL().ListaTodosActivo(0, intIdTema, Parametros.intPersonaId);
                if (lstResumenPersona.Count == 0)
                {
                    XtraMessageBox.Show("No tiene ningún resutado de evaluación. \n Realice su evaluación.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    xtraTabControl1.SelectedTabPage = xtraTabPage2;
                    return;
                }

                if (lstResumenPersona.Count > 0)
                {
                    if (lstResumenPersona[0].Situacion == "DESAPROBADO")
                    {
                        XtraMessageBox.Show("Ud. se encuentra desaprobado en la evaluación no se emitirá ningún certificado.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        xtraTabControl1.SelectedTabPage = xtraTabPage1;
                        return;
                    }
                    else
                    {
                        List <ReporteResumenPersonaBE> lstReporte = null;
                        lstReporte = new ReporteResumenPersonaBL().Listado(0, intIdTema, Parametros.intPersonaId);
                        if (lstReporte.Count > 0)
                        {
                            rptCertificado1 objReporte = new rptCertificado1();
                            objReporte.SetDataSource(lstReporte);
                            this.crystalReportViewer1.ReportSource = objReporte;
                            this.crystalReportViewer1.Zoom(75);
                        }
                    }
                }
            }
        }
        private void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {
                string strSituacion = "";

                timer1.Enabled = false;
                if (XtraMessageBox.Show("¿Estas de seguro de grabar la evaluación? \n Ha verificado las respuestas correctamente.", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    Cursor = Cursors.WaitCursor;

                    int NotaFinal = 0;

                    List <RespuestaBE> lstRespuestaCorrecta = null;
                    lstRespuestaCorrecta = new RespuestaBL().ListaCuestionario(intIdCuestionario);

                    List <RespuestaPersonaBE> lstRespuestaPersona = new List <RespuestaPersonaBE>();

                    //VALIDACION

                    var lstPreguntas = from p in mListaPregunta
                                       group p by p.IdPregunta into grupo
                                       select grupo;

                    foreach (var itempregunta in lstPreguntas)
                    {
                        int contador = 0;
                        foreach (var itempreguntatemporal in mListaPregunta)
                        {
                            if (itempregunta.Key == itempreguntatemporal.IdPregunta && itempreguntatemporal.FlagCorrecto)
                            {
                                contador++;
                            }
                        }

                        if (contador == 2)
                        {
                            XtraMessageBox.Show("No puede haber mas de una respuesta por pregunta.\nPor favor vuelva a verificar.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                            Cursor = Cursors.Default;
                            return;
                        }
                    }

                    //RESPUESTAS CORRECTAS
                    foreach (var item in mListaPregunta)
                    {
                        if (item.FlagCorrecto == true)
                        {
                            foreach (var itemrespuesta in lstRespuestaCorrecta)
                            {
                                if (item.IdTema == itemrespuesta.IdTema && item.IdCuestionario == itemrespuesta.IdCuestionario && item.IdPregunta == itemrespuesta.IdPregunta && item.IdRespuesta == itemrespuesta.IdRespuesta && item.FlagCorrecto == itemrespuesta.FlagCorrecto)
                                {
                                    NotaFinal = NotaFinal + itemrespuesta.Puntaje;

                                    RespuestaPersonaBE objE_RespuestaPersona = new RespuestaPersonaBE();
                                    objE_RespuestaPersona.IdRespuestaPersona = 0;
                                    objE_RespuestaPersona.IdTema             = item.IdTema;
                                    objE_RespuestaPersona.IdCuestionario     = item.IdCuestionario;
                                    objE_RespuestaPersona.IdPregunta         = item.IdPregunta;
                                    objE_RespuestaPersona.IdRespuesta        = item.IdRespuesta;
                                    objE_RespuestaPersona.IdPersona          = Parametros.intPersonaId;
                                    objE_RespuestaPersona.FlagRespuesta      = item.FlagCorrecto;
                                    objE_RespuestaPersona.DescSituacion      = "RESPUESTA CORRECTA";
                                    objE_RespuestaPersona.Puntaje            = itemrespuesta.Puntaje;
                                    objE_RespuestaPersona.FlagEstado         = true;
                                    objE_RespuestaPersona.Usuario            = Parametros.strUsuarioLogin;
                                    objE_RespuestaPersona.Maquina            = WindowsIdentity.GetCurrent().Name.ToString();
                                    objE_RespuestaPersona.IdEmpresa          = Parametros.intEmpresaId;
                                    lstRespuestaPersona.Add(objE_RespuestaPersona);
                                }
                            }
                        }
                    }

                    //RESPUESTAS INCORRECTAS
                    foreach (var item in mListaPregunta)
                    {
                        if (item.FlagCorrecto == true)
                        {
                            foreach (var itemrespuesta in lstRespuestaCorrecta)
                            {
                                if (item.IdTema == itemrespuesta.IdTema && item.IdCuestionario == itemrespuesta.IdCuestionario && item.IdPregunta == itemrespuesta.IdPregunta && item.IdRespuesta == itemrespuesta.IdRespuesta && item.FlagCorrecto != itemrespuesta.FlagCorrecto)
                                {
                                    RespuestaPersonaBE objE_RespuestaPersona = new RespuestaPersonaBE();
                                    objE_RespuestaPersona.IdRespuestaPersona = 0;
                                    objE_RespuestaPersona.IdTema             = item.IdTema;
                                    objE_RespuestaPersona.IdCuestionario     = item.IdCuestionario;
                                    objE_RespuestaPersona.IdPregunta         = item.IdPregunta;
                                    objE_RespuestaPersona.IdRespuesta        = item.IdRespuesta;
                                    objE_RespuestaPersona.IdPersona          = Parametros.intPersonaId;
                                    objE_RespuestaPersona.FlagRespuesta      = item.FlagCorrecto;
                                    objE_RespuestaPersona.DescSituacion      = "RESPUESTA INCORRECTA";
                                    objE_RespuestaPersona.Puntaje            = 0;
                                    objE_RespuestaPersona.FlagEstado         = true;
                                    objE_RespuestaPersona.Usuario            = Parametros.strUsuarioLogin;
                                    objE_RespuestaPersona.Maquina            = WindowsIdentity.GetCurrent().Name.ToString();
                                    objE_RespuestaPersona.IdEmpresa          = Parametros.intEmpresaId;
                                    lstRespuestaPersona.Add(objE_RespuestaPersona);
                                    break;
                                }
                            }
                        }
                    }


                    if (NotaFinal >= intNotaAprobatoria)
                    {
                        StringBuilder strMensajeAprobatorio = new StringBuilder();
                        strMensajeAprobatorio.Append("*****************************************************************************\n\n");
                        strMensajeAprobatorio.Append("Felicitaciones ha Aprobado la evaluación.\n\n");
                        strMensajeAprobatorio.Append("Nota Aprobatoria : " + NotaFinal + "\n\n");
                        strMensajeAprobatorio.Append("Condición: Aprobado" + "\n\n");
                        strMensajeAprobatorio.Append("*****************************************************************************\n\n");
                        strSituacion = "APROBADO";
                        XtraMessageBox.Show(strMensajeAprobatorio.ToString(), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        int intCuentaDesaprobado = 0;
                        intCuentaDesaprobado = new ResumenPersonaBL().CuentaDesaprobado(0, Parametros.intPersonaId, intIdTema);
                        if (intCuentaDesaprobado == 0)
                        {
                            StringBuilder strMensajeDesaprobatorio = new StringBuilder();
                            strMensajeDesaprobatorio.Append("*****************************************************************************\n\n");
                            strMensajeDesaprobatorio.Append("Lo Sentimos ha desaprobado la evaluación.\n\n");
                            strMensajeDesaprobatorio.Append("Nota Desaprobatoria : " + NotaFinal + "\n\n");
                            strMensajeDesaprobatorio.Append("Condición: Desaprobado" + "\n\n");
                            strMensajeDesaprobatorio.Append("UD. TIENE UN INTENTO MAS PARA VOLVER A REALIZAR EL EXAMEN" + "\n\n");
                            strMensajeDesaprobatorio.Append("Comunicarse con el responsable del area." + "\n\n");
                            strMensajeDesaprobatorio.Append("*****************************************************************************\n\n");
                            strSituacion = "DESAPROBADO";
                            XtraMessageBox.Show(strMensajeDesaprobatorio.ToString(), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        if (intCuentaDesaprobado == 1)
                        {
                            strSituacion = "DESAPROBADO";
                            XtraMessageBox.Show("Ud. Tiene dos intentos desaprobados del curso virtual\n Comuníquese con el correo: [email protected]", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }

                    Cursor = Cursors.Default;

                    ResumenPersonaBE objResumenPersona    = new ResumenPersonaBE();
                    ResumenPersonaBL objBL_ResumenPersona = new ResumenPersonaBL();

                    objResumenPersona.IdResumenPersona = 0;
                    objResumenPersona.IdEmpresa        = Parametros.intEmpresaId;
                    objResumenPersona.IdTema           = intIdTema;
                    objResumenPersona.IdPersona        = Parametros.intPersonaId;
                    objResumenPersona.NotaFinal        = NotaFinal;
                    objResumenPersona.Situacion        = strSituacion;
                    objResumenPersona.FlagEstado       = true;
                    objResumenPersona.Usuario          = Parametros.strUsuarioLogin;
                    objResumenPersona.Maquina          = WindowsIdentity.GetCurrent().Name.ToString();

                    objBL_ResumenPersona.Inserta(objResumenPersona, lstRespuestaPersona);

                    if (strSituacion == "APROBADO")
                    {
                        StringBuilder strMensaje = new StringBuilder();
                        strMensaje.Append("*****************************************************************************\n\n");
                        strMensaje.Append("Tema         : " + strDescTema + "\n\n");
                        strMensaje.Append("Participante : " + Parametros.strUsuarioNombres + "\n\n");
                        strMensaje.Append("Cargo        : " + Parametros.strCargoNombre + "\n\n");
                        strMensaje.Append("Area         : " + Parametros.strAreaNombre + "\n\n");
                        strMensaje.Append("Razón Social : " + Parametros.strEmpresaNombre + "\n\n");
                        strMensaje.Append("Fecha y Hora : " + DateTime.Now.ToString() + "\n\n");
                        strMensaje.Append("Nota         : " + NotaFinal.ToString() + "\n\n");
                        strMensaje.Append("Situación    : " + strSituacion + "\n\n");
                        strMensaje.Append("Emitido Por el Area de Seguridad y Salud en el Trabajo" + "\n\n");
                        strMensaje.Append("*****************************************************************************\n\n");

                        //ELIMINAMOS LOR ARCHIVOS CREADOS
                        foreach (var item in Directory.GetFiles(@"D:\", "*.pdf"))
                        {
                            File.SetAttributes(item, FileAttributes.Normal);
                            File.Delete(item);
                        }

                        //GENERAR EL REPORTE EN PDF
                        string strEvaluacion = "evaluacion";
                        List <ReporteRespuestaPersonaBE> lstReporteRespuestaPersona = null;
                        lstReporteRespuestaPersona = new ReporteRespuestaPersonaBL().Listado(intIdTema, Parametros.intPersonaId);
                        rptRespuestaPersona objReporte = new rptRespuestaPersona();
                        objReporte.SetDataSource(lstReporteRespuestaPersona);
                        objReporte.ExportToDisk(ExportFormatType.PortableDocFormat, @"D:\" + strEvaluacion + ".pdf");

                        BSUtils.EmailSend("*****@*****.**", "Registro de Evaluación de Capacitaciones Virtuales", strMensaje.ToString(), @"D:\" + strEvaluacion + ".pdf", "", "", "");

                        Application.DoEvents();

                        XtraMessageBox.Show("La evaluación se registró correctamente. \n Puede ir a la opción del certificado para la emisión del documento.", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
                        btnGrabar.Enabled = false;
                    }
                    else
                    {
                        btnGrabar.Enabled = false;
                        this.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Cursor = Cursors.Default;
                XtraMessageBox.Show(ex.Message, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }