public string getHTMLNotasEVAcumulativa()
        {
            string alertaEquivalencia = "even";
            string lblEquivalencia = "default";
            string msgEquivalencia = "---";
            string rst = string.Empty;

            rst += " <tr role='row' class='success'>";
            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;' colspan='10'>" + Language.es_ES.EST_LBL_SIN_REGISTROS + "</td>";
            rst += " </tr>";
            
            try
            {
                this._dsDetalleNotas = this._getDataNotasEstudiante(periodoEstudiante);
                WSInfoCarreras.dtstPeriodoVigente periodoVigente = this._dataPeriodoAcademicoVigente();

                if (this._dsDetalleNotas != null && this._dsDetalleNotas.EvAcumulativa.Rows.Count > 0){
                    int x = 0;
                    rst = string.Empty;
                    string dtaEvActiva = this._getDataEvaluacionActiva();
                    string estadoNota = string.Empty;
                    string colorParcial1 = (dtaEvActiva == "1") ? "info" : "";
                    string colorParcial2 = (dtaEvActiva == "2") ? "info" : "";
                    string colorParcial3 = (dtaEvActiva == "3") ? "info" : "";

                    foreach (DataRow item in this._dsDetalleNotas.EvAcumulativa){
                        alertaEquivalencia = ((dtaEvActiva != "NA" && dtaEvActiva == "P" && Convert.ToInt16(dtaEvActiva) == '3') || periodoVigente.Periodos[0]["strCodigo"].ToString() != this.periodoEstudiante )
                                                ? this.getAlertaFila(   item["strCodEquiv"].ToString(),
                                                                        ref alertaEquivalencia,
                                                                        ref lblEquivalencia,
                                                                        ref msgEquivalencia)
                                                : "";

                        string smsObservacion = ( !string.IsNullOrEmpty( item["observaciones"].ToString() ) ) 
                                                    ? item["observaciones"].ToString() 
                                                    : "---";

                        rst += " <tr role='row' style='align-content: center; vertical-align: middle; text-align: center;'>";
                        rst += "    <td>" + ++x + "</td>";
                        rst += "    <td style='text-align: left;'>" + item["strNombre"].ToString() + "</ td >";
                        rst += "    <td>" + this.getNumOrdinal(item["nivelAsignatura"].ToString(), "nivel") + "</td>";
                        rst += "    <td>" + this.getNumOrdinal(item["numMatricula"].ToString(), "matricula") + "</td>";
                        rst += "    <td class='"+ colorParcial1 +"'>" + item["bytNota1"].ToString() + "</td>";
                        rst += "    <td class='"+ colorParcial2 +"'>" + item["bytNota2"].ToString() + "</td>";
                        rst += "    <td class='"+ colorParcial3 +"'>" + item["bytNota3"].ToString() + "</td>";
                        rst += "    <td><b>" + item["acumulado"].ToString() + "</b></td>";
                        rst += "    <td> <span class='" + alertaEquivalencia + "'>" + msgEquivalencia + "</span></td>";
                        rst += "    <td> " + smsObservacion + "</span> </td>";
                        rst += " </tr>";
                    }
                }
            }catch(Exception ex)
            {
                Errores err = new Errores();
                err.SetError(ex, "_getHTMLNotasEVAcumulativa - Usuario: " + UsuarioActual.Cedula.ToString() + " / " + UsuarioActual.CarreraActual.ToString() + " / " + UsuarioActual.CarreraActual.Codigo.ToString());
            }

            return rst;
        }
        private WSNotasEstudiante.dtstNotasEstudiante _getDataNotasEstudiante( string periodoAcademico )
        {
            WSNotasEstudiante.dtstNotasEstudiante dsNE = new WSNotasEstudiante.dtstNotasEstudiante();

            try
            {
                ProxySeguro.NotasEstudiante wsNE = new ProxySeguro.NotasEstudiante();

                dsNE = wsNE.GetDatosNotasEstudiante(this.UsuarioActual.CarreraActual.Codigo.ToString(),
                                                    this.UsuarioActual.Cedula.ToString(),
                                                    this.periodoEstudiante.ToString());
            }
            catch (Exception ex)
            {
                Errores err = new Errores();
                err.SetError(ex, "_getHTMLNotasEstudiante - Usuario: " + UsuarioActual.Cedula.ToString() + " / " + UsuarioActual.CarreraActual.ToString() + " / " + UsuarioActual.CarreraActual.Codigo.ToString());
            }

            return dsNE;
        }
        public void regImpActaNotasEvFinal()
        {
            try{
                string dtaParcial = this._evaluacion.getDataEvaluacionActiva().Replace("FN", "");
                string tpoExamen  = string.Empty;

                if (this._dsEvFinal.Acta.Rows.Count > 0 && (dtaParcial == "P" || string.IsNullOrEmpty(dtaParcial)))
                {
                    WSNotasEstudiante.dtstNotasEstudiante dsNE = new WSNotasEstudiante.dtstNotasEstudiante();
                    string strCodPeriodo = this._dtstPeriodoVigente.Periodos[0]["strCodigo"].ToString();

                    foreach (DataRow item in this._dsEvFinal.Acta)
                    {
                        DataRow drEvFR = dsNE.EvFinalRecuperacion.NewRow();
                        drEvFR.BeginEdit();

                        drEvFR["sintCodMatricula"] = item["sintCodMatricula"].ToString();
                        drEvFR["strCodPeriodo"]    = strCodPeriodo;
                        drEvFR["strCodMateria"]    = this._strCodAsignatura;
                        drEvFR["strCodTipoExamen"] = "PRI";
                        drEvFR["boolSus"]          = 0;
                        drEvFR["strObservacion"]   = "";

                        dsNE.Tables["EvFinalRecuperacion"].Rows.Add(drEvFR);
                        drEvFR.EndEdit();
                    }

                    ProxySeguro.NotasEstudiante ne = new ProxySeguro.NotasEstudiante();
                    ne.registrarDatosEvFinalesRecuperacion(this.UsuarioActual.CarreraActual.Codigo.ToString(),
                                                           dsNE);
                }
            }
            catch (Exception ex)
            {
                Errores err = new Errores();
                err.SetError(ex, "cierreGestionNotasParcial");
            }
        }
        public string getDtaEvFinal_EvRecuperacion(string tpoExamen)
        {
            string alertaEquivalencia = "even";
            string lblEquivalencia    = "default";
            string smsEquivalencia    = "";
            string rst        = string.Empty;
            string notaFinal  = "";
            int    totalEvFR  = default(int);
            string tipoExamen = (tpoExamen == "P") ? "PRI"
                                                    : (tpoExamen == "S") ? "SUS"
                                                                        : "";

            rst += " <tr role='row' class='success'>";
            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;' colspan='9'>" + Language.es_ES.EST_LBL_SIN_REGISTROS + "</td>";
            rst += " </tr>";

            try
            {
                this._dsDetalleNotas = this._getDataNotasEstudiante(periodoEstudiante);
                if (this._dsDetalleNotas != null && this._dsDetalleNotas.EvFinal_EvFormativa.Rows.Count > 0 && !string.IsNullOrEmpty(tipoExamen))
                {
                    DataRow[] drEvF_EvR = this._dsDetalleNotas.EvFinal_EvFormativa.Select("strCodTipoExamen = '" + tipoExamen + "'", "asignatura");

                    if (drEvF_EvR.Length > 0)
                    {
                        int x = 0;
                        rst = string.Empty;

                        foreach (DataRow item in drEvF_EvR)
                        {
                            alertaEquivalencia = this.getAlertaFila(item["strCodEquiv"].ToString(),
                                                                    item["strCodMateria"].ToString(),
                                                                    ref alertaEquivalencia,
                                                                    ref lblEquivalencia,
                                                                    ref smsEquivalencia);

                            notaFinal = (string.IsNullOrEmpty(item["bytNota"].ToString()) || item["bytNota"].ToString().CompareTo("0") == 0)
                                            ? "0"
                                            : item["bytNota"].ToString();

                            totalEvFR = this._getTotalEvFR(item["bytAcumulado"].ToString(),
                                                           item["bytNota"].ToString());

                            rst += " <tr role='row'>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'>" + ++x + "</td>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: left;'>" + item["asignatura"].ToString() + "</ td >";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'>" + this.getNumOrdinal(item["nivel"].ToString(), "nivel") + "</td>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'>" + this.getNumOrdinal(item["numMatricula"].ToString(), "matricula") + "</td>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'>" + item["bytAcumulado"].ToString() + "</td>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'>" + notaFinal + "</td>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'><b>" + totalEvFR + "</b></td>";
                            rst += "     <td style='align-content: center; vertical-align: middle; text-align: center;'> <span class='label label-" + lblEquivalencia + "'>" + smsEquivalencia + "</span> </td>";
                            rst += " </tr>";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Errores err = new Errores();
                err.SetError(ex, "_getHTMLNotasEVAcumulativa - Usuario: " + UsuarioActual.Cedula.ToString() + " / " + UsuarioActual.CarreraActual.ToString() + " / " + UsuarioActual.CarreraActual.Codigo.ToString());
            }

            return(rst);
        }