diff --git a/CRM/CatEtapasProceso.aspx b/CRM/CatEtapasProceso.aspx index 27ce1e6dd..fe53d4a71 100644 --- a/CRM/CatEtapasProceso.aspx +++ b/CRM/CatEtapasProceso.aspx @@ -137,11 +137,11 @@
- - + + <%-- - + --%>
diff --git a/CRM/CatEtapasProceso.aspx.cs b/CRM/CatEtapasProceso.aspx.cs index 87b190204..21f956a3a 100644 --- a/CRM/CatEtapasProceso.aspx.cs +++ b/CRM/CatEtapasProceso.aspx.cs @@ -87,7 +87,18 @@ public partial class CRM_CatEtapasProceso : ClsPaginas ViewState["CveTipoEtapaSeleccionada"] = value; } } + private DataTable DTEtapas + { + get + { + return (DataTable)ViewState["DTEtapas"]; + } + set + { + ViewState["DTEtapas"] = value; + } + } #endregion protected void Page_Load(object sender, EventArgs e) @@ -96,6 +107,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas { CveTipoProcesoSeleccionado = -1; CveTipoEtapaSeleccionada = -1; + cargaEtapas(); CargaTiposProceso(); CargaDatos(-1); } @@ -164,6 +176,23 @@ public partial class CRM_CatEtapasProceso : ClsPaginas UPFiltros.Update(); } + + protected void cargaEtapas() + { + DataTable Etapas = new DataTable(); + + Etapas.Columns.Add("CveTipoEtapa",typeof(int)); + Etapas.Columns.Add("TipoEtapa", typeof(string)); + + Etapas.Rows.Add(1,"Inicial"); + Etapas.Rows.Add(2, "Proceso"); + Etapas.Rows.Add(3, "Terminado"); + Etapas.Rows.Add(4, "Cancelado"); + + DTEtapas = Etapas; + DdlTipoEtapa.DataSource = Etapas; + DdlTipoEtapa.DataBind(); + } #endregion #region "ACCIONES" @@ -172,6 +201,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas EsEditar = 0; limpiarCamposModal(); DivOrden.Visible = false; + bloquearEtapasAnteriores(-1); DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado); DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada); @@ -189,6 +219,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + bloquearEtapasAnteriores(GvRow.DataKey("CveTipoEtapa").ToEntero()); CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero(); DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso")); DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa")); @@ -206,6 +237,28 @@ public partial class CRM_CatEtapasProceso : ClsPaginas this.RegistraScript("$('#DivModal').modal();"); } + private void bloquearEtapasAnteriores(int CveTipoEtapa) + { + DataTable EtapasAux = DTEtapas.Copy(); + int indice = 0; + for(int i = 1;i < CveTipoEtapa; i++) + { + DataRow TipoEtapaRow = EtapasAux.Rows[indice]; + int CveTipoEtapaAux = TipoEtapaRow["CveTipoEtapa"].ToEntero(); + if(CveTipoEtapaAux == 2) + { + indice++; + }else + { + EtapasAux.Rows.Remove(TipoEtapaRow); + } + } + EtapasAux.AcceptChanges(); + + DdlTipoEtapa.DataSource = EtapasAux; + DdlTipoEtapa.DataBind(); + } + private bool validarInicialTerminadoCancelado(int CveTipoEtapa) { if (CveTipoEtapa == 2) @@ -230,10 +283,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas int Orden = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveEstatus = 1", CveTipoProceso)).Rows.Count + 1; Boolean Estatus = ChkEstatus.Checked; - int CveUsuarioIng = UsuarioActual.CveUsuario; - if (validarInicialTerminadoCancelado(CveTipoEtapa)) - { if (EsEditar == 0) { if (ObjCRM.AddEtapaProceso(EtapaProceso, Descripcion, CveTipoEtapa, Orden, CveTipoProceso, UsuarioActual.CveEmpresa, CveUsuarioIng)) @@ -250,10 +300,12 @@ public partial class CRM_CatEtapasProceso : ClsPaginas Alert("La Etapa fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion); } } - }else - { - Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia); - } + //if (validarInicialTerminadoCancelado(CveTipoEtapa)) + //{ + //}else + //{ + // Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia); + //} // PRECARGAMOS LA SIGUIENTE ETAPA A AGREGAR CON LOS MISMA DATOS DE LA ETAPA QUE SE INSERTO CveTipoProcesoSeleccionado = CveTipoProceso;