private string ConsultaActividad(int intSecuencia, int intCodTipoSolicitud)
 {
     string StrDesActividad;
     NegFlujoSolicitud NegDescActividad = new NegFlujoSolicitud();
     StrDesActividad = NegDescActividad.ObtenerActividad(intSecuencia, intCodTipoSolicitud);
     return StrDesActividad;
 }
        protected void BtnCompletar_Click(object sender, EventArgs e)
        {
            NegAuditoria         InsertarLog       = new NegAuditoria();
            NegFlujoSolicitud    NegFlujoSolicitud = new NegFlujoSolicitud();
            NegDetalleSolicitud ResuelveActividad  = new NegDetalleSolicitud();

            if (txtResolucion.Text.Equals(String.Empty))
            {
               ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debe ingresar un comentario u observacion al respecto');</script>");
               return;
            }

            if (!strSecuenciaNo.Equals(String.Empty))
            {
                if ((!strSecuenciaNo.Equals("0")) && (!strSecuenciaNo.Equals("0")))
                {
                    if ((!RbtSI.Checked) && (!RbtNO.Checked))
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debe selecionar SI  ó NO para aprobar o rechazar la Actividad');</script>");
                        return;
                    }
                }

            }

            if (RbtSI.Checked)
            {
                intCodEstadSol = 2;
                intCodEstadoAct = 8;
                strAprobadaAuditoria = "APROBADA";
                strSiguienteSecuencia = strSecuenciaSi;
                InsertarLog.InsertaAuditoria(StrRutResponsable, "RESUELVE", "RESUELVE LA ACTIVIDAD ", "ACTIVIDIDAD APROBADA " + lblActividad.Text + "PARA EL FOLIO :" + lblFolio.Text);
            }

            if (RbtNO.Checked)
            {
                intCodEstadSol = 3;
                strRechazadaAuditoria = "RECHAZADA";
                strSiguienteSecuencia = strSecuenciaNo;
                intCodEstadoAct = 8;

                if (strSecuenciaNo.Equals("0"))
                {
                    ResuelveActividad.CierraProceso(intFolioSolicitud, intSecuencia, intCodEstadSol, intCodEstadoAct, txtResolucion.Text);
                   InsertarLog.InsertaAuditoria(StrRutResponsable, "RESUELVE", "RESUELVE LA ACTIVIDAD ", "ACTIVIDIDAD RECHAZADA " + lblActividad.Text + "PARA EL FOLIO :" + lblFolio.Text);
                   Response.Redirect("ListaDeTareas.aspx?StrRutUsuario=" + StrRutResponsable);
                }
            }

            if (strSecuenciaNo.Equals("0") && (strSecuenciaSi.Equals("0")))
            {
                intCodEstadoAct = 8;
                intCodEstadSol = 2;
                ResuelveActividad.CierraProceso(intFolioSolicitud, intSecuencia, intCodEstadSol, intCodEstadoAct, txtResolucion.Text);
                InsertarLog.InsertaAuditoria(StrRutResponsable, "RESUELVE", "RESUELVE LA ACTIVIDAD ", "SE COMPLETA LA " + lblActividad.Text + "SE TERMINA EL FLUJO PARA SOLICITUD " + lbltipoSolicitud.Text + " PARA EL FOLIO :" + lblFolio.Text);
                Response.Redirect("ListaDeTareas.aspx?StrRutUsuario=" + StrRutResponsable);
            }

            if (RbtSI.Checked == false && RbtNO.Checked == false)
            {
                intCodEstadoAct = 8;
                strSiguienteSecuencia = strSecuenciaSi;
                strContinuaAuditoria = "CONTINUA";
            }

            NegAdjuntos NegAdjuntos = new NegAdjuntos();
            foreach (Adjuntos Adjunto in LstAdjuntos)
            {

                NegAdjuntos.AltaAdjuntos(intFolioSolicitud, Adjunto.strNombreArchivo, Adjunto.bteArchivoPdf, "A", intSecuencia);
            }

            LstAdjuntos.Clear();
            grvAdjunto.DataSource = null;
            grvAdjunto.DataBind();

            strGlosaDetalleSol = txtResolucion.Text;
            LstFlujoSolicitud = NegFlujoSolicitud.SelectDatoActividad(intCodTipoSolicitud, Convert.ToInt32(strSiguienteSecuencia));

            if (LstFlujoSolicitud.Count.Equals(0))
            {
                BolExisteSiguienteFlujo = false;
            }
            else
            {
                BolExisteSiguienteFlujo = true;
                foreach (FlujoSolicitud ActividadActual in LstFlujoSolicitud)
                {
                    intCodActividad = ActividadActual.intCodActividad;
                    intCodUnidad    = ActividadActual.intCodUnidad;
                }
            }

            if (BolExisteSiguienteFlujo)
            {
                ResuelveActividad.ResuelveActividadFlujo(intFolioSolicitud, intSecuencia, intCodTipoSolicitud, intCodEstadoAct, strGlosaDetalleSol, intCodActividad, intCodUnidad, Convert.ToInt32(strSiguienteSecuencia));
            }
            else
            {
                if (strSecuenciaNo.Equals("0") && (strSecuenciaSi.Equals("0")))
                {
                    intCodEstadSol = 2;
                    intCodEstadoAct = 8;
                }

                ResuelveActividad.CierraProceso(intFolioSolicitud, intSecuencia, intCodEstadSol, intCodEstadoAct, strGlosaDetalleSol);
            }

            InsertarLog.InsertaAuditoria(StrRutResponsable, "RESUELVE", "RESUELVE LA ACTIVIDAD ", "ACTIVIDIDAD RESUELTA " + lblActividad.Text + "PARA EL FOLIO :" + lblFolio);
            Response.Redirect("ListaDeTareas.aspx?StrRutUsuario=" + StrRutResponsable);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            NegFlujoSolicitud   NegFlujoSolicitud = new NegFlujoSolicitud();
            NegDetalleSolicitud NegDatellSolicitud = new NegDetalleSolicitud();

            if (!Page.IsPostBack)
            {
                Funciones FuncionesDesencriptar = new Funciones();

                if (!(FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["Folio"]))).Equals("Error_Autorizacion"))
                    intFolioSolicitud = Convert.ToInt32(FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["Folio"])));
                else
                {
                    Response.Redirect("PageError.aspx?TypeError=Error_Autorizacion");
                }
                if (!(FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["RutResponsable"]))).Equals("Error_Autorizacion"))
                    StrRutResponsable = FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["RutResponsable"]));
                else
                {
                    Response.Redirect("PageError.aspx?TypeError=Error_Autorizacion");
                }

                if (!(FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["Secuencia"]))).Equals("Error_Autorizacion"))
                    intSecuencia = Convert.ToInt32(FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["Secuencia"])));
                else
                {
                    Response.Redirect("PageError.aspxTypeError=Error_Autorizacion");
                }

                lblFolio.Text = FuncionesDesencriptar.Decrypt(HttpUtility.UrlDecode(Request.QueryString["Folio"]));

                ConsultaSolicitudFolio(Convert.ToInt32(lblFolio.Text));
                lblActividad.Text = ConsultaActividad(intSecuencia, intCodTipoSolicitud);
                lblActividadResolver.Text = lblActividad.Text;
                NegDatellSolicitud.ActualizaFechaTomaActividad(intFolioSolicitud, intSecuencia, StrRutResponsable);

                NegAuditoria InsertarLog = new NegAuditoria();
                InsertarLog.InsertaAuditoria(StrRutResponsable, "RESUELVE", "ACCEDE A RESOLVER ACTIVIDAD", "ACTIVIDAD A RESOLVER ES " + lblActividad.Text + "PARA EL FOLIO :" + lblFolio.Text);

                NegFlujoSolicitud DatosDelFlujoActividadActual = new NegFlujoSolicitud();
                LstFlujoSolicitud = NegFlujoSolicitud.SelectDatoActividad(intCodTipoSolicitud, intSecuencia);

                foreach (FlujoSolicitud ActividadActual in LstFlujoSolicitud)
                    {
                        strSecuenciaSi  = ActividadActual.strSi.Trim();
                        strSecuenciaNo  = ActividadActual.strNo.Trim();
                        intAprobador    = ActividadActual.intAprobador;
                    }

                if (strSecuenciaNo.Equals(String.Empty)) // Me indica si muestro el SI o el NO
                {
                    RbtSI.Visible      = false;
                    RbtNO.Visible      = false;
                    lblAprobar.Visible = false;
                }

                if (strSecuenciaSi.Equals("0"))
                {
                    RbtSI.Visible = false;
                    RbtNO.Visible = false;
                    lblAprobar.Visible = false;
                }

               if (strSecuenciaNo.Equals("0") && (strSecuenciaSi.Equals("0")))
                {
                    RbtSI.Visible = false;
                    RbtNO.Visible = false;
                    lblAprobar.Visible = false;
                }

                mostrar_Historial(intFolioSolicitud);
                NegTipoSolicitud CantMaxDocumentos = new NegTipoSolicitud();
                intCantMaxDocumentos = CantMaxDocumentos.ObtenerCantMaxDocByTipoSolicitud(intCodTipoSolicitud);

                NegAdjuntos Adjuntos = new NegAdjuntos();
                int ExistenAdjuntos = Adjuntos.ExistirianAdjutnos(intFolioSolicitud);

                if (!ExistenAdjuntos.Equals(0))
                {
                    HypAdjuntos.Text        = "Ver documetos adjuntos asociados a la solicitud";
                    HypAdjuntos.NavigateUrl = "VerAdjuntos.aspx?Folio=" + intFolioSolicitud + "&Tipo=S";

                }
                else
                {
                    HypAdjuntos.Text = String.Empty;
                    HypAdjuntos.Visible = false;
                }

                if (strOrigen.Equals("E"))
                {
                    lblrut.Text = StrRutAlumno;
                    lee_alumnos(StrRutAlumno);
                }
                else
                {
                    lblrut.Text = StrRutAlumno;
                    NegUsuario ObtenerUsuario = new NegUsuario();
                    LstUsuarios = ObtenerUsuario.ObtenerUsuarioPorRut(StrRutAlumno);

                    foreach (Usuario Usuarios in LstUsuarios)
                    {
                        StringBuilder strnombre = new StringBuilder();
                        strnombre.Append(Usuarios.strNombre);
                        strnombre.Append(" ");
                        strnombre.Append(Usuarios.strApellido);

                        lblNombre.Text = strnombre.ToString();
                    }
                }
            }
        }
        protected void BtnEliminar_Click(object sender, ImageClickEventArgs e)
        {
            int intExiste;

            NegSolicitud NegSolicitud = new NegSolicitud();
            intExiste = NegSolicitud.HayProcesoEjecutandoSe(intCodTipoSolicitud);

            if (!intExiste.Equals(0))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('No se pueden eliminar actividades del proceso, ya que hay flujos ejecutandose');</script>");

                return;
            }

            NegFlujoSolicitud NegFlujoSolicitudElimina = new NegFlujoSolicitud();
            NegFlujoSolicitudElimina.CambiaEstado(intCodTipoSolicitud, intSecuencia);
            LoadGrid(intCodTipoSolicitud);

            ddlActividades.SelectedIndex = -1;
            ddlUnidad.SelectedIndex = -1;
            txtSecuencia.Text = String.Empty;
            chkAprobador.Checked = false;
            lblMensaje.Text = String.Empty;
        }
 private void LoadGrid(int intCodTipoSolicitud)
 {
     NegFlujoSolicitud Negflujo = new NegFlujoSolicitud();
     grvModeladorSolicitud.DataSource = Negflujo.ObtenerFlujoSolicitud(intCodTipoSolicitud);
     grvModeladorSolicitud.DataBind();
 }
        protected void grvModeladorSolicitud_SelectedIndexChanged(object sender, EventArgs e)
        {
            int intCodActividad;
            int intAprobador;
            int intExiste;
            string strAprobador;
            string strBifurcacaion;
            int intCodUnidad;
            string strSi;
            string strNo;

            lblMensaje.Text = String.Empty;
            NegFlujoSolicitud NegFlujos = new NegFlujoSolicitud();
            NegSolicitud NegSolicitud = new NegSolicitud();

            GridViewRow row = grvModeladorSolicitud.SelectedRow;
            intAprobador = Convert.ToInt32(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["intAprobador"]);

            intSecuencia    = Convert.ToInt32(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["intSecuencia"]);
            string Rut      = Convert.ToString(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["strRutUsuario"]);
            strAprobador    = Convert.ToString(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["strAprobador"]);
            //strBifurcacaion = Convert.ToString(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["strBifurcacaion"]);
            intCodUnidad    = Convert.ToInt32(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["intCodUnidad"]);
            strSi           = Convert.ToString(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["strSi"]);
            strNo           = Convert.ToString(grvModeladorSolicitud.DataKeys[row.RowIndex].Values["strNo"]);

            intExiste =   NegSolicitud.HayProcesoEjecutandoSe(intCodTipoSolicitud);

            if (!intExiste.Equals(0))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('ERROR : No se pueden realizar cambios en el proceso, ya que hay flujos ejecutandose');</script>");
                return;
            }

            intCodActividad = NegFlujos.BuscoCodigoActividad(intCodTipoSolicitud, intSecuencia);
            ddlActividades.SelectedIndex = intCodActividad;
            ddlUnidad.SelectedIndex = intCodUnidad;
            txtSecuenciaSi.Text = strSi;
            txtSecuenciaNo.Text = strNo;

            if (strAprobador.Equals("Si"))
            {
                chkAprobador.Checked = true;
            }
            else
            {
                chkAprobador.Checked = false;
            }

            txtSecuencia.Text = Convert.ToString(intSecuencia);
            BtnEliminar.Visible = true;
            gblAccion = "Actualizar";
        }
        protected void BtnNuevo_Click(object sender, ImageClickEventArgs e)
        {
            lblMensaje.Text = String.Empty;

            if (ddlTipoSolicitudes.SelectedIndex.Equals(0))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debe Selecionar un tipo de Solicitud');</script>");

                return;

            }

            gblAccion = "Insertar";

            BtnEliminar.Visible = false;

            ddlActividades.SelectedIndex = -1;

            ddlUnidad.SelectedIndex = -1;
            txtSecuencia.Text = String.Empty;
            chkAprobador.Checked = false;
            ChkBifurcacion.Checked = false;

            intCodTipoSolicitud = Convert.ToInt32(ddlTipoSolicitudes.SelectedValue);

            NegFlujoSolicitud NegFlujoSolicitud = new NegFlujoSolicitud();
            int intSecuencia = NegFlujoSolicitud.UltimaSecuencia(intCodTipoSolicitud);
            txtSecuencia.Text = Convert.ToString(intSecuencia);
            txtSecuencia.Enabled = false;

            LoadGrid(intCodTipoSolicitud);
        }
        protected void BtnGuardar_Click(object sender, ImageClickEventArgs e)
        {
            int intExiste;
            int intCodActividad;
            int intAprobador;

            lblMensaje.Text = String.Empty;

            NegSolicitud NegSolicitud = new NegSolicitud();
            NegAuditoria InsertarLog = new NegAuditoria();
            intExiste = NegSolicitud.HayProcesoEjecutandoSe(intCodTipoSolicitud);

            if (!intExiste.Equals(0))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('ERROR : No se pueden realizar cambios en el proceso, ya que hay flujos ejecutandose');</script>");

                return;
            }

            if (txtSecuencia.Text.Equals(String.Empty))
            {
               ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debío haber presionado el boton nuevo, para crear una nueva actividad');</script>");

               return;
            }

            if (ddlActividades.SelectedIndex.Equals(0))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debe Seleccionar una actividad');</script>");

                return;
            }

            if (ddlTipoSolicitudes.SelectedIndex.Equals(String.Empty))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debe Seleccionar un tipo de Solicitud');</script>");

                return;
            }

            if (ddlUnidad.SelectedIndex.Equals(0))
            {
                ClientScript.RegisterStartupScript(this.GetType(), "myScript", "<script>javascript: alertify.alert('Debe Seleccionar una Unidad');</script>");

                return;
            }

            if (ChkBifurcacion.Checked)
            {
                intBifurcacion = 1;
            }
            else
            {
                intBifurcacion = 0;
            }

            if (chkAprobador.Checked)
            {
                intAprobador = 1;
            }
            else
            {
                intAprobador = 0;
            }

            intSecuencia        = int.Parse(txtSecuencia.Text);
            intCodTipoSolicitud = Convert.ToInt32(ddlTipoSolicitudes.SelectedValue);
            intCodActividad     = Convert.ToInt32(ddlActividades.SelectedIndex);
            intCodUnidad        = Convert.ToInt32(ddlUnidad.SelectedIndex);
            strSecuenciaSI      = txtSecuenciaSi.Text;
            strSecuenciaNO      = txtSecuenciaNo.Text;

            NegFlujoSolicitud NegFlujoSolicitudes = new NegFlujoSolicitud();

            if (gblAccion == "Insertar")
            {
                NegFlujoSolicitudes.Insertarflujo(intSecuencia, intCodTipoSolicitud, intCodActividad, intCodUnidad, intAprobador, intBifurcacion, strSecuenciaSI, strSecuenciaNO);
                InsertarLog.InsertaAuditoria(StrRutUsuario, "MANTENEDOR DE FLUJOS ", "CREACION DE NUEVO FLUJO ", "PARA EL TIPO DE SOLICITUD " + ddlTipoSolicitudes.SelectedItem);
            }

            else
            {
                NegFlujoSolicitudes.ActualizarFlujoSolicitud(intSecuencia, intCodTipoSolicitud, intCodActividad, intCodUnidad, intAprobador, intBifurcacion, strSecuenciaSI, strSecuenciaNO);
                InsertarLog.InsertaAuditoria(StrRutUsuario, "MANTENEDOR DE FLUJOS ", "ACTUALIZACION DE FLUJO ", "PARA EL TIPO DE SOLICITUD " + ddlTipoSolicitudes.SelectedItem);
            }

            LoadGrid(intCodTipoSolicitud);

            ddlActividades.SelectedIndex = -1;
            ddlUnidad.SelectedIndex = -1;
            txtSecuencia.Text = String.Empty;
            chkAprobador.Checked = false;
            ChkBifurcacion.Checked = false;
            txtSecuenciaSi.Text = String.Empty;
            txtSecuenciaNo.Text = String.Empty;
        }