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;