una vez cambiado el tipo etapa ya no se puede volver a seleccionar

This commit is contained in:
Antonio Gonzalez
2020-05-04 15:43:47 -07:00
parent 4ad70c4950
commit 5d867ce57f
2 changed files with 62 additions and 10 deletions

View File

@@ -137,11 +137,11 @@
<div class="row"> <div class="row">
<div class="form-group col-md-6 form-md-line-input input-iconright"> <div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoEtapa" Width="100%" runat="server" CssClass="form-control input-sm select2me"> <asp:DropDownList ID="DdlTipoEtapa" Width="100%" runat="server" CssClass="form-control input-sm select2me" DataValueField="CveTipoEtapa" DataTextField="TipoEtapa">
<asp:ListItem Value="1" Text="Inicial"></asp:ListItem> <%--<asp:ListItem Value="1" Text="Inicial"></asp:ListItem>
<asp:ListItem Value="2" Text="Proceso"></asp:ListItem> <asp:ListItem Value="2" Text="Proceso"></asp:ListItem>
<asp:ListItem Value="3" Text="Terminado"></asp:ListItem> <asp:ListItem Value="3" Text="Terminado"></asp:ListItem>
<asp:ListItem Value="4" Text="Cancelado"></asp:ListItem> <asp:ListItem Value="4" Text="Cancelado"></asp:ListItem>--%>
</asp:DropDownList> </asp:DropDownList>
<label for="<%=DdlTipoEtapa.ClientID.ToString()%>">Tipo de Etapa:</label> <label for="<%=DdlTipoEtapa.ClientID.ToString()%>">Tipo de Etapa:</label>
</div> </div>

View File

@@ -87,7 +87,18 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
ViewState["CveTipoEtapaSeleccionada"] = value; ViewState["CveTipoEtapaSeleccionada"] = value;
} }
} }
private DataTable DTEtapas
{
get
{
return (DataTable)ViewState["DTEtapas"];
}
set
{
ViewState["DTEtapas"] = value;
}
}
#endregion #endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
@@ -96,6 +107,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
{ {
CveTipoProcesoSeleccionado = -1; CveTipoProcesoSeleccionado = -1;
CveTipoEtapaSeleccionada = -1; CveTipoEtapaSeleccionada = -1;
cargaEtapas();
CargaTiposProceso(); CargaTiposProceso();
CargaDatos(-1); CargaDatos(-1);
} }
@@ -164,6 +176,23 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
UPFiltros.Update(); 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 #endregion
#region "ACCIONES" #region "ACCIONES"
@@ -172,6 +201,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
EsEditar = 0; EsEditar = 0;
limpiarCamposModal(); limpiarCamposModal();
DivOrden.Visible = false; DivOrden.Visible = false;
bloquearEtapasAnteriores(-1);
DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado); DdlTipoProceso.SelectedValueExist(CveTipoProcesoSeleccionado);
DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada); DdlTipoEtapa.SelectedValueExist(CveTipoEtapaSeleccionada);
@@ -189,6 +219,7 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
bloquearEtapasAnteriores(GvRow.DataKey("CveTipoEtapa").ToEntero());
CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero(); CveEtapaProceso = GvRow.DataKey("CveEtapaProceso").ToEntero();
DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso")); DdlTipoProceso.SelectedValueExist(GvRow.DataKey("CveTipoProceso"));
DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa")); DdlTipoEtapa.SelectedValueExist(GvRow.DataKey("CveTipoEtapa"));
@@ -206,6 +237,28 @@ public partial class CRM_CatEtapasProceso : ClsPaginas
this.RegistraScript("$('#DivModal').modal();"); 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) private bool validarInicialTerminadoCancelado(int CveTipoEtapa)
{ {
if (CveTipoEtapa == 2) 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; int Orden = TmpDT.FiltraParametros(String.Format("CveTipoProceso = {0} AND CveEstatus = 1", CveTipoProceso)).Rows.Count + 1;
Boolean Estatus = ChkEstatus.Checked; Boolean Estatus = ChkEstatus.Checked;
int CveUsuarioIng = UsuarioActual.CveUsuario; int CveUsuarioIng = UsuarioActual.CveUsuario;
if (validarInicialTerminadoCancelado(CveTipoEtapa))
{
if (EsEditar == 0) if (EsEditar == 0)
{ {
if (ObjCRM.AddEtapaProceso(EtapaProceso, Descripcion, CveTipoEtapa, Orden, CveTipoProceso, UsuarioActual.CveEmpresa, CveUsuarioIng)) 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); Alert("La Etapa fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
} }
} }
}else //if (validarInicialTerminadoCancelado(CveTipoEtapa))
{ //{
Alert(String.Format("No se pueden tener 2 etapas de tipo {0}",DdlTipoEtapa.SelectedItem),ModExtensiones.TipoMensaje.MsgAdvertencia); //}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 // PRECARGAMOS LA SIGUIENTE ETAPA A AGREGAR CON LOS MISMA DATOS DE LA ETAPA QUE SE INSERTO
CveTipoProcesoSeleccionado = CveTipoProceso; CveTipoProcesoSeleccionado = CveTipoProceso;