private void BindPagingGrid() { try { System.Collections.Generic.List<CedForecastWebEntidades.RFoPA> lista; CedForecastWebEntidades.RFoPA Forecast = new CedForecastWebEntidades.RFoPA(); Forecast.IdTipoPlanilla = "RollingForecast"; Forecast.IdCuenta = CuentaDropDownList.SelectedValue.ToString().Trim(); Forecast.Cliente.Id = ClienteDropDownList.SelectedValue.ToString().Trim(); CedForecastWebRN.Periodo.ValidarPeriodoYYYYMM(PeriodoTextBox.Text); Forecast.IdPeriodo = PeriodoTextBox.Text; int CantidadFilas = 0; lista = CedForecastWebRN.RFoPA.Lista(out CantidadFilas, ForecastPagingGridView.PageIndex, ForecastPagingGridView.PageSize, ForecastPagingGridView.OrderBy, Forecast, Session.SessionID, (CedForecastWebEntidades.Sesion)Session["Sesion"]); ForecastPagingGridView.VirtualItemCount = CantidadFilas; ViewState["lista"] = lista; ForecastPagingGridView.DataSource = (System.Collections.Generic.List<CedForecastWebEntidades.RFoPA>)ViewState["lista"]; int colFijas = 6; //Es 0 y 1. for (int i = 1; i <= 12; i++) { ForecastPagingGridView.Columns[i + colFijas].HeaderText = TextoCantidadHeader(i, PeriodoTextBox.Text); } ForecastPagingGridView.Columns[13 + colFijas].HeaderText = "Total"; ForecastPagingGridView.DataBind(); } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } }
private void BindPagingGrid() { try { System.Collections.Generic.List<CedForecastWebEntidades.RFoPA> lista; CedForecastWebEntidades.RFoPA Forecast = new CedForecastWebEntidades.RFoPA(); Forecast.IdTipoPlanilla = "Proyectado"; Forecast.IdCuenta = ((CedForecastWebEntidades.Sesion)Session["Sesion"]).Cuenta.Id; CedForecastWebRN.Periodo.ValidarPeriodoYYYYMM(PeriodoTextBox.Text); Forecast.IdPeriodo = PeriodoTextBox.Text; Forecast.Cliente.Id = ClienteDropDownList.SelectedValue; int CantidadFilas = 0; lista = CedForecastWebRN.RFoPA.Lista(out CantidadFilas, ForecastPagingGridView.PageIndex, ForecastPagingGridView.PageSize, ForecastPagingGridView.OrderBy, Forecast, Session.SessionID, (CedForecastWebEntidades.Sesion)Session["Sesion"]); ForecastPagingGridView.VirtualItemCount = CantidadFilas; ViewState["lista"] = lista; ForecastPagingGridView.DataSource = (System.Collections.Generic.List<CedForecastWebEntidades.RFoPA>)ViewState["lista"]; ForecastPagingGridView.DataBind(); } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { CedeiraUIWebForms.Excepciones.Redireccionar(ex, "~/Excepcion.aspx"); } }
protected void ForecastPagingGridView_Sorting(object sender, GridViewSortEventArgs e) { try { DesSeleccionarFilas(); System.Collections.Generic.List<CedForecastWebEntidades.RFoPA> lista = new System.Collections.Generic.List<CedForecastWebEntidades.RFoPA>(); CedForecastWebEntidades.RFoPA Forecast = new CedForecastWebEntidades.RFoPA(); Forecast.IdTipoPlanilla = "Proyectado"; Forecast.IdCuenta = ((CedForecastWebEntidades.Sesion)Session["Sesion"]).Cuenta.Id; Forecast.IdPeriodo = PeriodoTextBox.Text; int CantidadFilas = 0; lista = CedForecastWebRN.RFoPA.Lista(out CantidadFilas, ForecastPagingGridView.PageIndex, ForecastPagingGridView.PageSize, ForecastPagingGridView.OrderBy, Forecast, Session.SessionID, (CedEntidades.Sesion)Session["Sesion"]); ViewState["lista"] = lista; ForecastPagingGridView.DataSource = (System.Collections.Generic.List<CedForecastWebEntidades.RFoPA>)ViewState["lista"]; ForecastPagingGridView.DataBind(); } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { CedeiraUIWebForms.Excepciones.Redireccionar(ex, "~/Excepcion.aspx"); } }
protected void LeerButton_Click(object sender, EventArgs e) { try { CedForecastWebEntidades.RFoPA forecast = new CedForecastWebEntidades.RFoPA(); forecast.IdCuenta = ((CedForecastWebEntidades.Sesion)Session["Sesion"]).Cuenta.Id; forecast.IdPeriodo = PeriodoTextBox.Text; forecast.IdTipoPlanilla = "Proyectado"; if (!ClienteDropDownList.SelectedValue.Equals(string.Empty)) { forecast.Cliente.Id = ClienteDropDownList.SelectedValue; } else { throw new Exception("Cliente no seleccionado"); } if (!DivisionDropDownList.SelectedValue.Equals(string.Empty)) { forecast.Articulo.GrupoArticulo.Division.Id = DivisionDropDownList.SelectedValue; } else { throw new Exception("División no seleccionada"); } if (!FamiliaArticuloDropDownList.SelectedValue.Equals(string.Empty)) { forecast.Articulo.FamiliaArticulo.Id = FamiliaArticuloDropDownList.SelectedValue; } List<CedForecastWebEntidades.RFoPA> forecastLista = CedForecastWebRN.RFoPA.Lista(forecast, (CedEntidades.Sesion)Session["Sesion"]); BindearGrillayDropDownLists(forecastLista, ""); LeerButton.Enabled = false; PanelSeleccion.Enabled = false; detalleGridView.Enabled = true; CancelarButton.Enabled = true; AceptarButton.Enabled = true; } catch (Exception ex) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('" + ex.Message.ToString().Replace("'", "") + "');</SCRIPT>", false); } }
protected void detalleGridView_RowDeleting(object sender, GridViewDeleteEventArgs e) { try { List<CedForecastWebEntidades.RFoPA> lineas = ((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]); CedForecastWebEntidades.RFoPA l = lineas[e.RowIndex]; lineas.Remove(l); if (lineas.Count.Equals(0)) { CedForecastWebEntidades.RFoPA nueva = new CedForecastWebEntidades.RFoPA(); lineas.Add(nueva); } detalleGridView.EditIndex = -1; detalleGridView.DataSource = ViewState["lineas"]; detalleGridView.DataBind(); BindearGrillayDropDownLists(((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]), ""); } catch { } }
protected void detalleGridView_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName.Equals("AddDetalle")) { try { if (ClienteDropDownList.SelectedItem.Value.Equals(string.Empty)) { throw new Exception("Debe seleccionar un cliente antes de ingresar un detalle"); } CultureInfo cedeiraCultura = new System.Globalization.CultureInfo(System.Configuration.ConfigurationManager.AppSettings["Cultura"]); string auxIdArticulo = ((DropDownList)detalleGridView.FooterRow.FindControl("ddlIdArticulo")).SelectedValue; CedForecastWebEntidades.RFoPA forecast = ((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]).Find((delegate(CedForecastWebEntidades.RFoPA e1) { return e1.Articulo.Id == auxIdArticulo; })); if (forecast != null && forecast.Articulo.Id == auxIdArticulo) { throw new Exception("Articulo ya ingresado."); } CedForecastWebEntidades.RFoPA l = new CedForecastWebEntidades.RFoPA(); l.IdCuenta = ((CedForecastWebEntidades.Sesion)Session["Sesion"]).Cuenta.Id; l.Articulo.GrupoArticulo.Division.Id = DivisionDropDownList.SelectedValue; l.Cliente.Id = ClienteDropDownList.SelectedValue; l.IdPeriodo = PeriodoTextBox.Text; l.IdTipoPlanilla = "Proyectado"; if (!auxIdArticulo.Equals(string.Empty)) { l.Articulo = new CedForecastWebEntidades.Articulo(); l.Articulo.Id = auxIdArticulo; List<CedForecastWebEntidades.Articulo> ArticuloLista = new List<CedForecastWebEntidades.Articulo>(); string listaArticulosADescartar = ListaArticulosADescartar(""); ArticuloLista = CedForecastWebRN.Articulo.Lista(true, (CedForecastWebEntidades.Sesion)Session["Sesion"], FamiliaArticuloDropDownList.SelectedValue, listaArticulosADescartar); CedForecastWebEntidades.Articulo articulo = new CedForecastWebEntidades.Articulo(); articulo = ArticuloLista.Find((delegate(CedForecastWebEntidades.Articulo e1) { return e1.Id == auxIdArticulo; })); l.Articulo.Descr = articulo.Descr; } else { throw new Exception("Seleccione un artículo"); } int sumaCantidades = 0; for (int i = 1; i < 15; i++) { sumaCantidades += Convert.ToInt32(((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad" + i.ToString())).Text); } if (sumaCantidades == 0) { throw new Exception("Debe informar por lo menos un dato para el articulo seleccionado."); } string auxCantidad1 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad1")).Text; if (!auxCantidad1.Contains(",")) { l.Cantidad1 = Convert.ToDecimal(auxCantidad1, cedeiraCultura); } else { throw new Exception("Detalle no agregado porque el separador de decimales debe ser el punto"); } string auxCantidad2 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad2")).Text; if (!auxCantidad2.Contains(",")) { l.Cantidad2 = Convert.ToDecimal(auxCantidad2, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad3 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad3")).Text; if (!auxCantidad3.Contains(",")) { l.Cantidad3 = Convert.ToDecimal(auxCantidad3, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad4 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad4")).Text; if (!auxCantidad4.Contains(",")) { l.Cantidad4 = Convert.ToDecimal(auxCantidad4, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad5 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad5")).Text; if (!auxCantidad5.Contains(",")) { l.Cantidad5 = Convert.ToDecimal(auxCantidad5, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad6 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad6")).Text; if (!auxCantidad6.Contains(",")) { l.Cantidad6 = Convert.ToDecimal(auxCantidad6, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad7 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad7")).Text; if (!auxCantidad7.Contains(",")) { l.Cantidad7 = Convert.ToDecimal(auxCantidad7, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad8 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad8")).Text; if (!auxCantidad8.Contains(",")) { l.Cantidad8 = Convert.ToDecimal(auxCantidad8, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad9 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad9")).Text; if (!auxCantidad9.Contains(",")) { l.Cantidad9 = Convert.ToDecimal(auxCantidad9, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad10 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad10")).Text; if (!auxCantidad10.Contains(",")) { l.Cantidad10 = Convert.ToDecimal(auxCantidad10, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad11 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad11")).Text; if (!auxCantidad11.Contains(",")) { l.Cantidad11 = Convert.ToDecimal(auxCantidad11, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad12 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad12")).Text; if (!auxCantidad12.Contains(",")) { l.Cantidad12 = Convert.ToDecimal(auxCantidad12, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad13 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad13")).Text; if (!auxCantidad13.Contains(",")) { l.Cantidad13 = Convert.ToDecimal(auxCantidad13, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } string auxCantidad14 = ((TextBox)detalleGridView.FooterRow.FindControl("txtCantidad14")).Text; if (!auxCantidad14.Contains(",")) { l.Cantidad14 = Convert.ToDecimal(auxCantidad14, cedeiraCultura); } else { throw new Exception("Detalle no actualizado porque el separador de decimales debe ser el punto"); } //Agrego la nueva linea ((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]).Add(l); //Me fijo si elimino la fila automática List<CedForecastWebEntidades.RFoPA> lineas = ((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]); CedForecastWebEntidades.RFoPA lineaInicial = lineas[0]; if (lineaInicial.IdCuenta == null) { ((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]).Remove(lineaInicial); } detalleGridView.DataSource = ViewState["lineas"]; detalleGridView.DataBind(); BindearGrillayDropDownLists(((List<CedForecastWebEntidades.RFoPA>)ViewState["lineas"]), ""); } catch (Exception ex) { ScriptManager.RegisterClientScriptBlock(this, GetType(), "Message", "<SCRIPT LANGUAGE='javascript'>alert('" + ex.Message.ToString().Replace("'", "") + "');</SCRIPT>", false); } } }
private void BindearGrillayDropDownLists(List<CedForecastWebEntidades.RFoPA> Forecast, string IdArticuloEnModificacion) { if (Forecast.Count > 0) { detalleGridView.DataSource = Forecast; detalleGridView.DataBind(); ViewState["lineas"] = Forecast; } else { CedForecastWebEntidades.RFoPA vacio = new CedForecastWebEntidades.RFoPA(); Forecast.Add(vacio); detalleGridView.DataSource = Forecast; detalleGridView.DataBind(); ViewState["lineas"] = Forecast; int cantidadColumnas = detalleGridView.Rows[0].Cells.Count; detalleGridView.Rows[0].Cells.Clear(); detalleGridView.Rows[0].Cells.Add(new TableCell()); detalleGridView.Rows[0].Cells[0].ColumnSpan = cantidadColumnas; detalleGridView.Rows[0].Cells[0].Text = "No hay registros"; } BindearDropDownLists(IdArticuloEnModificacion); }
public List<CedForecastWebEntidades.RFoPA> Lista(out int CantidadFilas, int IndicePagina, int TamañoPagina, string OrderBy, string SessionID, List<CedForecastWebEntidades.RFoPA> ForecastLista, int CantidadMesesParaDesvio) { System.Text.StringBuilder a = new StringBuilder(); a.Append("CREATE TABLE #Forecast" + SessionID +"( "); a.Append("[IdTipoPlanilla] [varchar](15) collate database_default NOT NULL, "); a.Append("[IdCuenta] [varchar](50) collate database_default NOT NULL, "); a.Append("[IdCliente] [varchar](6) collate database_default NOT NULL, "); a.Append("[IdArticulo] [varchar](20) collate database_default NOT NULL, "); a.Append("[IdPeriodo] [varchar](6) collate database_default NOT NULL, "); a.Append("[Proyectado] [decimal](18, 0) NOT NULL, "); a.Append("[Ventas] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad1] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad2] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad3] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad4] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad5] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad6] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad7] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad8] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad9] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad10] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad11] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad12] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad13] [decimal](18, 0) NOT NULL, "); a.Append("[Cantidad14] [decimal](18, 0) NOT NULL, "); a.Append("CONSTRAINT [PK_Forecast"+ SessionID +"] PRIMARY KEY CLUSTERED "); a.Append("( "); a.Append("[IdTipoPlanilla] ASC, "); a.Append("[IdCuenta] ASC, "); a.Append("[IdCliente] ASC, "); a.Append("[IdArticulo] ASC, "); a.Append("[IdPeriodo] ASC "); a.Append(")WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] "); a.Append(") ON [PRIMARY] "); foreach (CedForecastWebEntidades.RFoPA Forecast in ForecastLista) { a.Append("Insert #Forecast" + SessionID + " values ('" + Forecast.IdTipoPlanilla + "', '"); a.Append(Forecast.IdCuenta + "', '"); a.Append(Forecast.Cliente.Id + "', '"); a.Append(Forecast.Articulo.Id + "', '"); a.Append(Forecast.IdPeriodo + "', "); a.Append(Forecast.Proyectado + ", "); a.Append(Forecast.Ventas + ", "); a.Append(Forecast.Cantidad1 + ", "); a.Append(Forecast.Cantidad2 + ", "); a.Append(Forecast.Cantidad3 + ", "); a.Append(Forecast.Cantidad4 + ", "); a.Append(Forecast.Cantidad5 + ", "); a.Append(Forecast.Cantidad6 + ", "); a.Append(Forecast.Cantidad7 + ", "); a.Append(Forecast.Cantidad8 + ", "); a.Append(Forecast.Cantidad9 + ", "); a.Append(Forecast.Cantidad10 + ", "); a.Append(Forecast.Cantidad11 + ", "); a.Append(Forecast.Cantidad12 + ", "); a.Append(Forecast.Cantidad13 + ", "); a.Append(Forecast.Cantidad14 + ") "); } a.Append("select * "); a.Append("from (select top {0} ROW_NUMBER() OVER (ORDER BY {1}) as ROW_NUM, "); a.Append("IdTipoPlanilla, IdCuenta, #Forecast"+SessionID+".IdCliente, DescrCliente, IdPeriodo, #Forecast" + SessionID + ".IdArticulo, Articulo.DescrArticulo, Articulo.IdGrupoArticulo, GrupoArticulo.DescrGrupoArticulo, Division.IdDivision, Division.DescrDivision, "); a.Append("Proyectado, Ventas, Cantidad1, Cantidad2, Cantidad3, Cantidad4, Cantidad5, Cantidad6, Cantidad7, Cantidad8, Cantidad9, Cantidad10, Cantidad11, Cantidad12, Cantidad13, Cantidad14 "); a.Append("from #Forecast"+SessionID+" inner join Articulo on #Forecast"+SessionID+".IdArticulo=Articulo.IdArticulo "); a.Append("inner join Cliente on #Forecast"+SessionID+".IdCliente=Cliente.IdCliente "); a.Append("inner join GrupoArticulo on Articulo.IdGrupoArticulo=GrupoArticulo.IdGrupoArticulo "); a.Append("inner join Division on GrupoArticulo.IdDivision=Division.IdDivision "); a.Append("ORDER BY ROW_NUM) innerSelect WHERE ROW_NUM > {2} "); a.Append("DROP TABLE #Forecast" + SessionID); if (OrderBy.Trim().ToUpper() == "IDARTICULO" || OrderBy.Trim().ToUpper() == "IDARTICULO DESC" || OrderBy.Trim().ToUpper() == "IDARTICULO ASC") { OrderBy = "#Forecast" + SessionID + "." + OrderBy; } if (OrderBy.Trim().ToUpper() == "IDCLIENTE" || OrderBy.Trim().ToUpper() == "IDCLIENTE DESC" || OrderBy.Trim().ToUpper() == "IDCLIENTE ASC") { OrderBy = "#Forecast" + SessionID + "." + OrderBy; } string commandText = string.Format(a.ToString(), ((IndicePagina + 1) * TamañoPagina), OrderBy, (IndicePagina * TamañoPagina)); DataTable dt = new DataTable(); dt = (DataTable)Ejecutar(commandText.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); List<CedForecastWebEntidades.RFoPA> lista = new List<CedForecastWebEntidades.RFoPA>(); if (dt.Rows.Count != 0) { for (int i = 0; i < dt.Rows.Count; i++) { CedForecastWebEntidades.RFoPA forecast = new CedForecastWebEntidades.RFoPA(); forecast.IdTipoPlanilla = dt.Rows[i]["IdTipoPlanilla"].ToString(); forecast.IdPeriodo = dt.Rows[i]["IdPeriodo"].ToString(); forecast.IdCuenta = dt.Rows[i]["IdCuenta"].ToString(); CedForecastWebEntidades.Cliente cliente = new CedForecastWebEntidades.Cliente(); cliente.Id = dt.Rows[i]["IdCliente"].ToString(); cliente.Descr = dt.Rows[i]["DescrCliente"].ToString(); forecast.Cliente = cliente; CedForecastWebEntidades.Articulo articulo = new CedForecastWebEntidades.Articulo(); articulo.Id = dt.Rows[i]["IdArticulo"].ToString(); articulo.Descr = dt.Rows[i]["DescrArticulo"].ToString(); forecast.Articulo = articulo; forecast.Proyectado = Convert.ToDecimal(dt.Rows[i]["Proyectado"].ToString()); forecast.CantidadMesesParaDesvio = CantidadMesesParaDesvio; forecast.Ventas = Convert.ToDecimal(dt.Rows[i]["Ventas"].ToString()); forecast.Cantidad1 = Convert.ToDecimal(dt.Rows[i]["Cantidad1"].ToString()); forecast.Cantidad2 = Convert.ToDecimal(dt.Rows[i]["Cantidad2"].ToString()); forecast.Cantidad3 = Convert.ToDecimal(dt.Rows[i]["Cantidad3"].ToString()); forecast.Cantidad4 = Convert.ToDecimal(dt.Rows[i]["Cantidad4"].ToString()); forecast.Cantidad5 = Convert.ToDecimal(dt.Rows[i]["Cantidad5"].ToString()); forecast.Cantidad6 = Convert.ToDecimal(dt.Rows[i]["Cantidad6"].ToString()); forecast.Cantidad7 = Convert.ToDecimal(dt.Rows[i]["Cantidad7"].ToString()); forecast.Cantidad8 = Convert.ToDecimal(dt.Rows[i]["Cantidad8"].ToString()); forecast.Cantidad9 = Convert.ToDecimal(dt.Rows[i]["Cantidad9"].ToString()); forecast.Cantidad10 = Convert.ToDecimal(dt.Rows[i]["Cantidad10"].ToString()); forecast.Cantidad11 = Convert.ToDecimal(dt.Rows[i]["Cantidad11"].ToString()); forecast.Cantidad12 = Convert.ToDecimal(dt.Rows[i]["Cantidad12"].ToString()); forecast.Cantidad13 = Convert.ToDecimal(dt.Rows[i]["Cantidad13"].ToString()); forecast.Cantidad14 = Convert.ToDecimal(dt.Rows[i]["Cantidad14"].ToString()); lista.Add(forecast); } } CantidadFilas = cantidadFilas; return lista; }
public List<CedForecastWebEntidades.RFoPA> Lista(CedForecastWebEntidades.RFoPA Forecast) { cantidadFilas = 0; System.Text.StringBuilder a = new StringBuilder(); a.Append("select Forecast.IdTipoPlanilla, Forecast.IdCuenta, Forecast.IdCliente, Forecast.IdPeriodo, Forecast.IdArticulo, Articulo.DescrArticulo, Articulo.IdGrupoArticulo, Cliente.DescrCliente, GrupoArticulo.DescrGrupoArticulo, Division.IdDivision, Division.DescrDivision, FamiliaArticulo.IdFamiliaArticulo, FamiliaArticulo.DescrFamiliaArticulo, Forecast.Cantidad "); a.Append("from Forecast inner join Articulo on Forecast.IdArticulo=Articulo.IdArticulo "); a.Append("inner join Cliente on Forecast.IdCliente=Cliente.IdCliente "); a.Append("inner join GrupoArticulo on Articulo.IdGrupoArticulo=GrupoArticulo.IdGrupoArticulo "); a.Append("inner join Division on GrupoArticulo.IdDivision=Division.IdDivision "); a.Append("left outer join FamiliaArticuloXArticulo on Forecast.IdArticulo=FamiliaArticuloXArticulo.IdArticulo "); a.Append("left outer join FamiliaArticulo on FamiliaArticuloXArticulo.IdFamiliaArticulo=FamiliaArticulo.IdFamiliaArticulo "); a.Append("where Forecast.IdTipoPlanilla='" + Forecast.IdTipoPlanilla + "' "); if (Forecast.IdCuenta != null && Forecast.IdCuenta != "") { a.Append("and Forecast.IdCuenta='" + Forecast.IdCuenta + "' "); } if (Forecast.IdCliente != null && Forecast.IdCliente != "") { a.Append("and Forecast.IdCliente='" + Forecast.IdCliente + "' "); } if (Forecast.Articulo.FamiliaArticulo.Id != null && Forecast.Articulo.FamiliaArticulo.Id != "") { a.Append("and FamiliaArticulo.IdFamiliaArticulo='" + Forecast.Articulo.FamiliaArticulo.Id + "' "); } string periodo = ""; periodo = UltimoMesForecast(Forecast.IdPeriodo); if (Forecast.IdTipoPlanilla == "Proyectado" && Forecast.IdPeriodo.Substring(0, 4) == periodo.Substring(0, 4)) { periodo = Forecast.IdPeriodo.Substring(0, 4) + "99"; } a.Append("and IdPeriodo >= '" + Forecast.IdPeriodo + "' "); a.Append("and IdPeriodo <= '" + periodo + "' "); a.Append("order by Forecast.IdArticulo asc, Forecast.IdCliente asc, IdPeriodo asc"); DataTable dt = new DataTable(); dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); List<CedForecastWebEntidades.RFoPA> lista = new List<CedForecastWebEntidades.RFoPA>(); if (dt.Rows.Count != 0) { CedForecastWebEntidades.RFoPA forecast = new CedForecastWebEntidades.RFoPA(); string idArticulo = dt.Rows[0]["IdArticulo"].ToString() + dt.Rows[0]["IdCliente"].ToString(); CopiarCab(dt.Rows[0], forecast, Forecast.IdPeriodo); //Lista de ventas para Rolling Forecast List<CedForecastWebEntidades.Venta> ventaLista = new List<CedForecastWebEntidades.Venta>(); List<CedForecastWebEntidades.RFoPA> totalProyectadoLista = new List<CedForecastWebEntidades.RFoPA>(); int cantidadMesesParaDevio = 0; if (Forecast.IdTipoPlanilla == "RollingForecast") { Venta ventaRN = new Venta(sesion); ventaLista = ventaRN.ConsultarTotales(PrimerMes(Forecast.IdPeriodo), Forecast.IdPeriodo); CedForecastWebEntidades.Venta venta = new CedForecastWebEntidades.Venta(); venta = ventaLista.Find((delegate(CedForecastWebEntidades.Venta e) { return e.IdCliente == dt.Rows[0]["IdCliente"].ToString() && e.IdArticulo == dt.Rows[0]["IdArticulo"].ToString(); })); if (venta != null) { forecast.Ventas = venta.Cantidad; } //Lista de totales proyectados por articulo totalProyectadoLista = TotalProyectado(Forecast); //Buscar total proyectado CedForecastWebEntidades.RFoPA totalProyectado = new CedForecastWebEntidades.RFoPA(); totalProyectado = totalProyectadoLista.Find((delegate(CedForecastWebEntidades.RFoPA e) { return e.IdCliente == dt.Rows[0]["IdCliente"].ToString() && e.Articulo.Id == dt.Rows[0]["IdArticulo"].ToString(); })); if (totalProyectado != null) { forecast.Proyectado = totalProyectado.Proyectado; } //Buscar primer mes de ejercicio economico. string ProyectadoMesInicio = System.Configuration.ConfigurationManager.AppSettings["ProyectadoMesInicio"]; DateTime FechaInicio = DateTime.Today; if (Convert.ToInt32(Forecast.IdPeriodo.Substring(4, 2)) < Convert.ToInt32(ProyectadoMesInicio)) { FechaInicio = Convert.ToDateTime("01/" + ProyectadoMesInicio + "/" + Convert.ToDateTime("01/" + Forecast.IdPeriodo.Substring(4, 2) + "/" + Forecast.IdPeriodo.Substring(0, 4)).AddYears(-1).Year); } else { FechaInicio = Convert.ToDateTime("01/" + ProyectadoMesInicio + "/" + Forecast.IdPeriodo.Substring(0, 4)); } //Diferencia entre el año-mes del ejercicio económico y año-mes inicial del Rolling cantidadMesesParaDevio = MesAProcesar(Forecast.IdPeriodo, FechaInicio.ToString("yyyyMM")); cantidadMesesParaDevio = cantidadMesesParaDevio - 1; forecast.CantidadMesesParaDesvio = cantidadMesesParaDevio; } for (int i = 0; i < dt.Rows.Count; i++) { string periodoInicial = Forecast.IdPeriodo; int mes = 0; if (Forecast.IdTipoPlanilla == "Proyectado" && (dt.Rows[i]["IdPeriodo"].ToString().Substring(4, 2) == "13" || dt.Rows[i]["IdPeriodo"].ToString().Substring(4, 2) == "14")) { mes = Convert.ToInt32(dt.Rows[i]["IdPeriodo"].ToString().Substring(4, 2)); } else { mes = MesAProcesar(dt.Rows[i]["IdPeriodo"].ToString(), periodoInicial); } if (idArticulo != dt.Rows[i]["IdArticulo"].ToString() + dt.Rows[i]["IdCliente"].ToString()) { idArticulo = dt.Rows[i]["IdArticulo"].ToString() + dt.Rows[i]["IdCliente"].ToString(); lista.Add(forecast); forecast = new CedForecastWebEntidades.RFoPA(); forecast.CantidadMesesParaDesvio = cantidadMesesParaDevio; CopiarCab(dt.Rows[i], forecast, Forecast.IdPeriodo); if (Forecast.IdTipoPlanilla == "RollingForecast") { //Buscar ventas reales CedForecastWebEntidades.Venta venta = new CedForecastWebEntidades.Venta(); venta = ventaLista.Find((delegate(CedForecastWebEntidades.Venta e) { return e.IdCliente == dt.Rows[i]["IdCliente"].ToString() && e.IdArticulo == dt.Rows[i]["IdArticulo"].ToString(); })); if (venta != null) { forecast.Ventas = venta.Cantidad; } //Buscar total proyectado CedForecastWebEntidades.RFoPA totalProyectado = new CedForecastWebEntidades.RFoPA(); totalProyectado = totalProyectadoLista.Find((delegate(CedForecastWebEntidades.RFoPA e) { return e.IdCliente == dt.Rows[i]["IdCliente"].ToString() && e.Articulo.Id == dt.Rows[i]["IdArticulo"].ToString(); })); if (totalProyectado != null) { forecast.Proyectado = totalProyectado.Proyectado; } } } CopiarDet(dt.Rows[i], forecast, mes); } lista.Add(forecast); } cantidadFilas = lista.Count; return lista; }
public List<CedForecastWebEntidades.RFoPA> TotalProyectado(CedForecastWebEntidades.RFoPA Forecast) { cantidadFilas = 0; System.Text.StringBuilder a = new StringBuilder(); a.Append("select Forecast.IdTipoPlanilla, Forecast.IdCuenta, Forecast.IdCliente, Forecast.IdPeriodo, Forecast.IdArticulo, Articulo.DescrArticulo, Articulo.IdGrupoArticulo, Cliente.DescrCliente, GrupoArticulo.DescrGrupoArticulo, Division.IdDivision, Division.DescrDivision, FamiliaArticulo.IdFamiliaArticulo, FamiliaArticulo.DescrFamiliaArticulo, Forecast.Cantidad "); a.Append("from Forecast inner join Articulo on Forecast.IdArticulo=Articulo.IdArticulo "); a.Append("inner join Cliente on Forecast.IdCliente=Cliente.IdCliente "); a.Append("inner join GrupoArticulo on Articulo.IdGrupoArticulo=GrupoArticulo.IdGrupoArticulo "); a.Append("inner join Division on GrupoArticulo.IdDivision=Division.IdDivision "); a.Append("left outer join FamiliaArticuloXArticulo on Forecast.IdArticulo=FamiliaArticuloXArticulo.IdArticulo "); a.Append("left outer join FamiliaArticulo on FamiliaArticuloXArticulo.IdFamiliaArticulo=FamiliaArticulo.IdFamiliaArticulo "); a.Append("where Forecast.IdTipoPlanilla='Proyectado' "); if (Forecast.IdCuenta != null && Forecast.IdCuenta != "") { a.Append("and Forecast.IdCuenta='" + Forecast.IdCuenta + "' "); } if (Forecast.IdCliente != null && Forecast.IdCliente != "") { a.Append("and Forecast.IdCliente='" + Forecast.IdCliente + "' "); } try { string ProyectadoMesInicio = System.Configuration.ConfigurationManager.AppSettings["ProyectadoMesInicio"]; DateTime FechaInicio = DateTime.Today; if (Convert.ToInt32(Forecast.IdPeriodo.Substring(4, 2)) < Convert.ToInt32(ProyectadoMesInicio)) { FechaInicio = Convert.ToDateTime("01/" + ProyectadoMesInicio + "/" + Convert.ToDateTime("01/" + Forecast.IdPeriodo.Substring(4, 2) + "/" + Forecast.IdPeriodo.Substring(0, 4)).AddYears(-1).Year); } else { FechaInicio = Convert.ToDateTime("01/" + ProyectadoMesInicio + "/" + Forecast.IdPeriodo.Substring(0, 4)); } string periodoDsd = FechaInicio.ToString("yyyyMM"); string periodoHst = UltimoMesForecast(FechaInicio.ToString("yyyyMM")); if (Forecast.IdTipoPlanilla == "Proyectado" && periodoDsd.Substring(0, 4) == periodoHst.Substring(0, 4)) { a.Append("and (IdPeriodo >= '" + periodoDsd + "' "); a.Append("and IdPeriodo <= '" + periodoDsd.Substring(0, 4) + "12') "); } else { a.Append("and ((IdPeriodo >= '" + periodoDsd + "' "); a.Append("and IdPeriodo <= '" + periodoDsd.Substring(0, 4) + "12') or "); a.Append("(IdPeriodo >= '" + periodoHst.Substring(0, 4) + "01' "); a.Append("and IdPeriodo <= '" + periodoHst + "')) "); } } catch { //MessageBox.Show("Problemas para obtener el mes inicial del ejercicio ecónomico.", "ATENCIÓN", MessageBoxButtons.OK, MessageBoxIcon.Warning); a.Append("and IdPeriodo >= '" + Forecast.IdPeriodo.Substring(0, 4) + "01' "); a.Append("and IdPeriodo <= '" + Forecast.IdPeriodo.Substring(0, 4) + "12' "); } a.Append("order by IdArticulo asc, IdCliente asc, IdPeriodo asc"); DataTable dt = new DataTable(); dt = (DataTable)Ejecutar(a.ToString(), TipoRetorno.TB, Transaccion.NoAcepta, sesion.CnnStr); List<CedForecastWebEntidades.RFoPA> lista = new List<CedForecastWebEntidades.RFoPA>(); if (dt.Rows.Count != 0) { CedForecastWebEntidades.RFoPA forecast = new CedForecastWebEntidades.RFoPA(); string idArticulo = dt.Rows[0]["IdArticulo"].ToString() + dt.Rows[0]["IdCliente"].ToString(); CopiarCab(dt.Rows[0], forecast, Forecast.IdPeriodo); for (int i = 0; i < dt.Rows.Count; i++) { if (!(dt.Rows[i]["IdPeriodo"].ToString().Substring(4, 2) == "13" || dt.Rows[i]["IdPeriodo"].ToString().Substring(4, 2) == "14")) { if (idArticulo != dt.Rows[i]["IdArticulo"].ToString() + dt.Rows[i]["IdCliente"].ToString()) { idArticulo = dt.Rows[i]["IdArticulo"].ToString() + dt.Rows[i]["IdCliente"].ToString(); lista.Add(forecast); forecast = new CedForecastWebEntidades.RFoPA(); CopiarCab(dt.Rows[i], forecast, Forecast.IdPeriodo); } forecast.Proyectado += Convert.ToDecimal(dt.Rows[i]["Cantidad"]); } } lista.Add(forecast); } return lista; }
private void BindPagingGrid() { try { MsgErrorLabel.Text = ""; System.Collections.Generic.List<CedForecastWebEntidades.RFoPA> lista; CedForecastWebEntidades.RFoPA Forecast = new CedForecastWebEntidades.RFoPA(); Forecast.IdTipoPlanilla = "RollingForecast"; Forecast.IdCuenta = CuentaDropDownList.SelectedValue; if (Forecast.IdCuenta.Trim() == "") { throw new Exception("Seleccione el vendedor."); } if (PeriodoTextBox.Text.Trim() == "") { throw new Exception("Seleccione un período."); } CedForecastWebRN.Periodo.ValidarPeriodoYYYYMM(PeriodoTextBox.Text); Forecast.IdPeriodo = PeriodoTextBox.Text; Forecast.Cliente.Id = ClienteDropDownList.SelectedValue; //if (Forecast.IdCliente.Trim() == "") //{ // throw new Exception("Seleccione el cliente."); //} int CantidadFilas = 0; lista = CedForecastWebRN.RFoPA.Lista(out CantidadFilas, ForecastPagingGridView.PageIndex, ForecastPagingGridView.PageSize, ForecastPagingGridView.OrderBy, Forecast, Session.SessionID, (CedForecastWebEntidades.Sesion)Session["Sesion"]); int colFijas = 6; //Es 0 y 1. for (int i = 1; i <= 12; i++) { ForecastPagingGridView.Columns[i + colFijas].HeaderText = TextoCantidadHeader(i, PeriodoTextBox.Text); } ForecastPagingGridView.Columns[13 + colFijas].HeaderText = "Total"; ForecastPagingGridView.VirtualItemCount = CantidadFilas; ViewState["lista"] = lista; ForecastPagingGridView.DataSource = (System.Collections.Generic.List<CedForecastWebEntidades.RFoPA>)ViewState["lista"]; ForecastPagingGridView.DataBind(); AceptarButton.Enabled = true; CancelarButton.Enabled = true; PanelSeleccion.Enabled = false; LeerButton.Enabled = false; CuentaAReasignarDropDownList.Enabled = true; if (Forecast.IdCliente.Trim() == "") { ClienteAReasignarDropDownList.Enabled = false; } else { ClienteAReasignarDropDownList.Enabled = true; } CuentaAReasignarDropDownList.SelectedIndex = -1; ClienteAReasignarDropDownList.SelectedIndex = -1; } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { CedeiraUIWebForms.Excepciones.Redireccionar(ex, "~/Excepcion.aspx"); } }
protected void ConfirmarOK_Click(object sender, EventArgs e) { try { DivConfirmar.Visible = false; DivAceptarCancelar.Visible = true; AceptarButton.Enabled = false; CancelarButton.Enabled = false; System.Collections.Generic.List<CedForecastWebEntidades.RFoPA> lista; CedForecastWebEntidades.RFoPA Forecast = new CedForecastWebEntidades.RFoPA(); Forecast.IdTipoPlanilla = "RollingForecast"; Forecast.IdCuenta = CuentaDropDownList.SelectedValue; CedForecastWebRN.Periodo.ValidarPeriodoYYYYMM(PeriodoTextBox.Text); Forecast.IdPeriodo = PeriodoTextBox.Text; Forecast.Cliente.Id = ClienteDropDownList.SelectedValue; if (CuentaAReasignarDropDownList.SelectedValue.Trim() != "" && ClienteAReasignarDropDownList.SelectedValue.Trim() != "") { throw new Exception("Seleccione un vendedor o un cliente, no ambos."); } if (CuentaAReasignarDropDownList.SelectedValue.Trim() == "" && ClienteAReasignarDropDownList.SelectedValue.Trim() == "") { throw new Exception("Seleccione un vendedor o un cliente, al cual asignar los datos."); } lista = CedForecastWebRN.RFoPA.Lista(Forecast, (CedEntidades.Sesion)Session["Sesion"]); if (lista.Count == 0) { throw new Exception("No hay datos a reasignar, para la selección realizada."); } else { if (CuentaAReasignarDropDownList.SelectedValue != "") { if (ClienteDropDownList.SelectedValue != "") { CedForecastWebRN.ForecastReasignar.Modificar(lista, "Cuenta", CuentaAReasignarDropDownList.SelectedValue.Trim(), PeriodoTextBox.Text, (CedEntidades.Sesion)Session["Sesion"]); } else { CedForecastWebRN.ForecastReasignar.Modificar(lista, "CuentaCompleta", CuentaAReasignarDropDownList.SelectedValue.Trim(), PeriodoTextBox.Text, (CedEntidades.Sesion)Session["Sesion"]); } } else { CedForecastWebRN.ForecastReasignar.Modificar(lista, "Cliente", ClienteAReasignarDropDownList.SelectedValue.Trim(), PeriodoTextBox.Text, (CedEntidades.Sesion)Session["Sesion"]); } } } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado"); } catch (Exception ex) { CedeiraUIWebForms.Excepciones.Redireccionar(ex, "~/Excepcion.aspx"); } finally { AceptarButton.Enabled = false; CancelarButton.Enabled = false; CuentaAReasignarDropDownList.Enabled = false; ClienteAReasignarDropDownList.Enabled = false; PanelSeleccion.Enabled = true; LeerButton.Enabled = true; ForecastPagingGridView.DataSource = new System.Collections.Generic.List<CedForecastWebEntidades.RFoPA>(); ForecastPagingGridView.DataBind(); MsgErrorLabel.Text = "El cambio se ha realizado correctamente."; } }
protected void ForecastPagingGridView_PageIndexChanging(object sender, GridViewPageEventArgs e) { try { DesSeleccionarFilas(); ForecastPagingGridView.PageIndex = e.NewPageIndex; System.Collections.Generic.List<CedForecastWebEntidades.RFoPA> lista; CedForecastWebEntidades.RFoPA Forecast = new CedForecastWebEntidades.RFoPA(); Forecast.IdTipoPlanilla = "RollingForecast"; Forecast.IdCuenta = CuentaDropDownList.SelectedValue; Forecast.Cliente.Id = ClienteDropDownList.SelectedValue; Forecast.IdPeriodo = PeriodoTextBox.Text; int CantidadFilas = 0; lista = CedForecastWebRN.RFoPA.Lista(out CantidadFilas, ForecastPagingGridView.PageIndex, ForecastPagingGridView.PageSize, ForecastPagingGridView.OrderBy, Forecast, Session.SessionID, (CedEntidades.Sesion)Session["Sesion"]); ForecastPagingGridView.VirtualItemCount = CantidadFilas; ViewState["lista"] = lista; ForecastPagingGridView.DataSource = lista; ForecastPagingGridView.DataBind(); } catch (System.Threading.ThreadAbortException) { Trace.Warn("Thread abortado."); } catch (Exception ex) { CedeiraUIWebForms.Excepciones.Redireccionar(ex, "~/Excepcion.aspx"); } }