protected void CargarDetalle(Int32 idInventario, Int32 idVenta) { // List<INE.ServiciosWeb.Producto.Contrato.Producto> productos; DataTable detalle; Int32 i; FormsIdentity id = (FormsIdentity)Context.User.Identity; FormsAuthenticationTicket ticket = id.Ticket; string data = ticket.UserData; Utils.Usuario user = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Utils.Usuario>(data); ProductoServicio_T.ProductoContratoClient pro = new ProductoContratoClient(); var productos = pro.ObtenerListadoPorAgenteEconomicoActivo(user.IdAgenteEconomico); detalle = new DataTable(); detalle.Columns.Add("Id"); detalle.Columns.Add("Concepto"); i = 2; foreach (var p in productos) { var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4 && pp.Activo == true).FirstOrDefault(); detalle.Columns.Add(productoPresentacionTipo.IdProductoxPresentacion.ToString()); GrdDetalle.Columns[i].HeaderText = p.NombreComercial; GrdComprobante.Columns[i].HeaderText = p.NombreComercial; //ESTO LO PUSE VEAMOS i++; } detalle.Rows.Add(detalle.NewRow()); detalle.Rows[detalle.Rows.Count - 1]["Concepto"] = "Inventario Actual(Gls): "; detalle.Rows[detalle.Rows.Count - 1]["Id"] = idInventario; detalle.Rows.Add(detalle.NewRow()); detalle.Rows[detalle.Rows.Count - 1]["Id"] = 2; detalle.Rows[detalle.Rows.Count - 1]["Concepto"] = "Ventas del día anterior(Lts):"; detalle.Rows.Add(detalle.NewRow()); detalle.Rows[detalle.Rows.Count - 1]["Id"] = 3; detalle.Rows[detalle.Rows.Count - 1]["Concepto"] = "Precio x Lts(C$):"; GrdDetalle.DataSource = detalle; GrdDetalle.DataBind(); GrdComprobante.DataSource = detalle; GrdComprobante.DataBind(); // GrdComprobante.Rows[0].Cells[1].BackColor = Color.FromArgb(109,108,110); //Con esto coloreamos la celdas de la parte izquierda del comprobante // ((TextBox)GrdDetalle.Rows[1].FindControl("Txt8") ).Text = "15" ; for (i = 0; i < productos.Count(); i++) { var productoPresentacion = productos[i].ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4 && pp.Activo == true).SingleOrDefault(); if (productoPresentacion != null) { if (idInventario != 0) { InventarioServicio_T.InventarioContratoClient invent = new InventarioContratoClient(); var inventario = invent.Obtener(idInventario); (GrdDetalle.Rows[0].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = inventario.InventarioDetalle.Where(det => det.IdProductoxPresentacion == productoPresentacion.IdProductoxPresentacion).SingleOrDefault().InventarioTotal.ToString("#,##0.00"); TxtObservacion.Text = inventario.Observaciones; //ASPxTimeEdit.Value = inventario.HoraCorte; } if (idVenta != 0) { VentaServicio_T.VentaContratoClient vent = new VentaContratoClient(); var venta = vent.Obtener(idVenta); (GrdDetalle.Rows[1].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = venta.VentaDetalles.Where(det => det.IdProductoxPresentacion == productoPresentacion.IdProductoxPresentacion).SingleOrDefault().Volumen.ToString("#,##0.00"); (GrdDetalle.Rows[2].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = venta.VentaDetalles.Where(det => det.IdProductoxPresentacion == productoPresentacion.IdProductoxPresentacion).SingleOrDefault().Precio.ToString("#,##0.00"); } (GrdDetalle.Rows[0].Cells[i + 2].FindControl("HdfIdProductoXPresentacion" + (i + 2).ToString()) as HiddenField).Value = productoPresentacion.IdProductoxPresentacion.ToString(); (GrdDetalle.Rows[1].Cells[i + 2].FindControl("HdfIdProductoXPresentacion" + (i + 2).ToString()) as HiddenField).Value = productoPresentacion.IdProductoxPresentacion.ToString(); (GrdDetalle.Rows[2].Cells[i + 2].FindControl("HdfIdProductoXPresentacion" + (i + 2).ToString()) as HiddenField).Value = productoPresentacion.IdProductoxPresentacion.ToString(); } else { (GrdDetalle.Rows[0].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = "0.00"; (GrdDetalle.Rows[1].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = "0.00"; (GrdDetalle.Rows[2].Cells[i + 2].FindControl("TxtCampo" + (i + 2).ToString()) as TextBox).Text = "0.00"; } (GrdDetalle.Rows[0].Cells[i + 2].FindControl("HdfIdProducto" + (i + 2).ToString()) as HiddenField).Value = productos[i].IdProducto.ToString(); (GrdDetalle.Rows[1].Cells[i + 2].FindControl("HdfIdProducto" + (i + 2).ToString()) as HiddenField).Value = productos[i].IdProducto.ToString(); (GrdDetalle.Rows[2].Cells[i + 2].FindControl("HdfIdProducto" + (i + 2).ToString()) as HiddenField).Value = productos[i].IdProducto.ToString(); } for (i = productos.Count() + 2; i < GrdDetalle.Columns.Count; i++) { GrdDetalle.Columns[i].Visible = false; GrdComprobante.Columns[i].Visible = false; } if (idVenta > 0) { VentaServicio_T.VentaContratoClient vent = new VentaContratoClient(); var venta = vent.Obtener(idVenta); } }
private void GuardarDetalle() //Aqui guardamos el inventario a la base de datos { GridViewRow fila; // INE.ServiciosWeb.Inventario.Contrato.Inventario inventario = new INE.ServiciosWeb.Inventario.Contrato.Inventario(); // INE.ServiciosWeb.Inventario.Contrato.InventarioDetalle inventarioDetalle; InventarioServicio_T.Inventario inventario = new InventarioServicio_T.Inventario(); InventarioServicio_T.InventarioDetalle inventarioDetalle = new InventarioDetalle(); Venta venta = new Venta(); // INE.ServiciosWeb.Venta.Contrato.Venta venta = new INE.ServiciosWeb.Venta.Contrato.Venta(); VentaDetalle ventaDetalle; // INE.ServiciosWeb.Venta.Contrato.VentaDetalle ventaDetalle; Int32 c; Int32 columnasVisibles; FormsIdentity id = (FormsIdentity)Context.User.Identity; FormsAuthenticationTicket ticket = id.Ticket; string data = ticket.UserData; Utils.Usuario user = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Utils.Usuario>(data); columnasVisibles = ObtenerConteoColVisible(GrdDetalle); #region Inventario inventario.IdInventario = 0; inventario.IdAgenteEconomicoAgenteTipo = user.IdAgenteEconomicoAgenteTipo; // inventario.Activo = true; inventario.Fecha = Convert.ToDateTime(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Fecha")); inventario.Observaciones = TxtObservacion.Text; inventario.HoraCorte = Convert.ToDateTime(ASPxTimeEdit.Value).TimeOfDay; for (c = 2; c < columnasVisibles; c++) { fila = GrdDetalle.Rows[0]; inventarioDetalle = new InventarioDetalle(); //inventarioDetalle.Activo = true; inventarioDetalle.IdProductoxPresentacion = Convert.ToInt32((fila.Cells[c].FindControl("HdfIdProductoXPresentacion" + c.ToString()) as HiddenField).Value); inventarioDetalle.CapacidadInstalada = Convert.ToDecimal(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Cap_" + (fila.Cells[c].FindControl("HdfIdProducto" + c.ToString()) as HiddenField).Value)); inventarioDetalle.InventarioTotal = Convert.ToDecimal((fila.Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text); inventario.InventarioDetalle = inventario.InventarioDetalle ?? new List <InventarioDetalle>(); inventario.InventarioDetalle.Add(inventarioDetalle); } InventarioServicio_T.InventarioContratoClient invent = new InventarioContratoClient(); if (invent.VerificarInventario(inventario)) { LblMensaje.Text = "El día de inventario que está tratando de registrar, ya ha sido guardado en el Sistema"; Image2.Visible = true; LblMensaje.Visible = true; ASPxGuardar.Enabled = false; return; } invent.Guardar(inventario, user.IdCuenta); #region Venta venta.IdVenta = 0; venta.IdAgenteEconomicoAgenteTipo = user.IdAgenteEconomicoAgenteTipo; //venta.IdUsuarioRegistro = (Page.User as Usuario).IdCuenta; //venta.FechaRegistro = DateTime.Now; //venta.IdUsuarioModificacion = (Page.User as Usuario).IdCuenta; //venta.FechaModificacion = DateTime.Now; //venta.Activo = true; venta.Fecha = Convert.ToDateTime(GrdInventario.GetRowValues(GrdInventario.FocusedRowIndex, "Fecha")).AddDays(-1); venta.Observaciones = TxtObservacion.Text; for (c = 2; c < columnasVisibles; c++) { fila = GrdDetalle.Rows[1]; ventaDetalle = new VentaDetalle(); //ventaDetalle.Activo = true; ventaDetalle.IdProductoxPresentacion = Convert.ToInt32((fila.Cells[c].FindControl("HdfIdProductoXPresentacion" + c.ToString()) as HiddenField).Value); //ventaDetalle.FechaModificacion = DateTime.Now; // ventaDetalle.IdUsuarioModificacion = (Page.User as Usuario).IdCuenta; //ventaDetalle.IdUsuarioRegistro = (Page.User as Usuario).IdCuenta; //ventaDetalle.FechaRegistro = DateTime.Now; ventaDetalle.Volumen = Convert.ToDecimal((fila.Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text); ventaDetalle.Precio = Convert.ToDecimal((GrdDetalle.Rows[2].Cells[c].FindControl("TxtCampo" + c.ToString()) as TextBox).Text); venta.VentaDetalles = venta.VentaDetalles ?? new List <VentaDetalle>(); venta.VentaDetalles.Add(ventaDetalle); } VentaServicio_T.VentaContratoClient vent = new VentaContratoClient(); vent.Guardar(venta, user.IdCuenta); #endregion CargarGrid(user.IdAgenteEconomico, ObtenerNumeroMes(DropDownListMes.Text)); ModalPopupExtender1.Hide(); System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "Script2", "$.unblockUI()", true); EnllavarDetalle(true); #endregion }
protected void CargarGrid(Int32 idAgenteEconomico, int mes) { DateTime fechaInicio; DateTime fechaFin; List <InventarioServicio_T.Inventario> inventarios; List <Venta> ventas; DataTable datos; DataRow fila; FormsIdentity id = (FormsIdentity)Context.User.Identity; FormsAuthenticationTicket ticket = id.Ticket; string data = ticket.UserData; Utils.Usuario user = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize <Utils.Usuario>(data); // fechaFin = new DateTime(2012, 06, 30);// DateTime.Now; // fechaFin = new DateTime(ano, mes, DateTime.DaysInMonth(ano,mes)); ano = Convert.ToInt32(DropDownListAno.Text); if (mes != DateTime.Now.Month) { fechaFin = new DateTime(ano, mes, DateTime.DaysInMonth(ano, mes)); } else { fechaFin = new DateTime(ano, mes, DateTime.Now.Day); } fechaInicio = new DateTime(fechaFin.Year, fechaFin.Month, 1); VentaServicio_T.VentaContratoClient vent = new VentaContratoClient(); InventarioServicio_T.InventarioContratoClient invent = new InventarioContratoClient(); inventarios = invent.ObtenerListadoPorFechaActivo(user.IdAgenteEconomicoAgenteTipo, fechaInicio, fechaFin, true); ventas = vent.ObtenerListadoPorFechaActivo(user.IdAgenteEconomicoAgenteTipo, fechaInicio.AddDays(-1), fechaFin.AddDays(-1)); //Le restamos uno a cada fecha de inventario porque asi la guardamos en ventas //test CapacidadAlmacenamientoServicio_T.CapacidadAlmacenamientoContratoClient capa = new CapacidadAlmacenamientoContratoClient(); ProductoServicio_T.ProductoContratoClient pro = new ProductoContratoClient(); var capacidades = capa.ObtenerListadoPorAgenteEconomico(idAgenteEconomico); var productos = pro.ObtenerListadoPorAgenteEconomicoActivo(idAgenteEconomico); datos = new DataTable(); datos.Columns.Add("IdInventario", typeof(Int32)); datos.Columns.Add("IdVenta", typeof(Int32)); datos.Columns.Add("Fecha", typeof(DateTime)); datos.Columns.Add("HoraCorte"); foreach (var p in productos) { var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4).FirstOrDefault(); if (productoPresentacionTipo != null) { datos.Columns.Add("Inv_" + productoPresentacionTipo.IdProductoxPresentacion.ToString()); //Galón Chekar como guarda el id de productopresentacion (si es galon o litro) datos.Columns.Add("Ven_" + productoPresentacionTipo.IdProductoxPresentacion.ToString()); //Galón Chekar como guarda el id de productopresentacion (si es galon o litro) datos.Columns.Add("Cap_" + productoPresentacionTipo.IdProducto.ToString()); //Galón } } foreach (var inv in inventarios) { fila = datos.NewRow(); fila["IdInventario"] = inv.IdInventario; fila["IdVenta"] = 0; fila["Fecha"] = inv.Fecha; // fila["HoraCorte"] = inv.HoraCorte; TimeSpan span = TimeSpan.Parse(inv.HoraCorte.ToString()); fila["HoraCorte"] = DateTime.Today.Add(span).ToString("hh:mm:ss tt"); foreach (var det in inv.InventarioDetalle) { if (datos.Columns.Contains("Inv_" + det.IdProductoxPresentacion.ToString()))//GB { fila["Inv_" + det.IdProductoxPresentacion.ToString()] = det.InventarioTotal.ToString("#,##0.00"); } } //Buscando en tabla ventas var agenteVenta = (from t in ventas where t.IdAgenteEconomicoAgenteTipo == inv.IdAgenteEconomicoAgenteTipo && t.Fecha == inv.Fecha.AddDays(-1) select t).FirstOrDefault(); if (agenteVenta != null) { fila["IdVenta"] = agenteVenta.IdVenta; foreach (var det in agenteVenta.VentaDetalles) { if (datos.Columns.Contains("Ven_" + det.IdProductoxPresentacion.ToString()))//GB { fila["Ven_" + det.IdProductoxPresentacion.ToString()] = det.Volumen.ToString("#,##0.00"); } } } else { fila["IdVenta"] = 0; } //Capacidades Almacenamiento foreach (var p in productos) { var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4).FirstOrDefault(); if (productoPresentacionTipo != null) { if (inv.IdInventario != 0 || inv.IdInventario == 0) { var agenteCapacidades = (from t in capacidades where t.IdProducto == productoPresentacionTipo.IdProducto && t.Activo == true select t).ToList(); if (agenteCapacidades != null) { var total = 0; foreach (var cap in agenteCapacidades) { total = total + cap.CapacidadAlmacenamientoTanque; } if (datos.Columns.Contains("Cap_" + productoPresentacionTipo.IdProducto.ToString()))//GB { fila["Cap_" + productoPresentacionTipo.IdProducto.ToString()] = total.ToString("#,##0"); } } } else { foreach (var det in inv.InventarioDetalle) { if (det.IdProductoxPresentacion == productoPresentacionTipo.IdProductoxPresentacion) { if (datos.Columns.Contains("Cap_" + productoPresentacionTipo.IdProducto.ToString()))//GB { fila["Cap_" + productoPresentacionTipo.IdProducto.ToString()] = det.CapacidadInstalada.ToString("#,##0"); } } } } } } datos.Rows.Add(fila); } while (GrdInventario.Columns.Count >= 5) { GrdInventario.Columns.Remove(GrdInventario.Columns[GrdInventario.Columns.Count - 1]); } GridViewColumn column; foreach (var p in productos) { var productoPresentacionTipo = p.ProductoPresentacionTipos.Where(pp => pp.IdPresentacionTipo == 4).FirstOrDefault(); if (productoPresentacionTipo != null) { column = new GridViewBandColumn(); (column as GridViewBandColumn).Columns.Add(new GridViewDataTextColumn { FieldName = "Cap_" + productoPresentacionTipo.IdProducto.ToString(), Caption = "Capacidad (Gls)" }); (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].HeaderStyle.Wrap = DevExpress.Utils.DefaultBoolean.True; (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].CellStyle.HorizontalAlign = HorizontalAlign.Right; (column as GridViewBandColumn).Columns.Add(new GridViewDataTextColumn { FieldName = "Inv_" + productoPresentacionTipo.IdProductoxPresentacion.ToString(), Caption = "Inventario Actual (Gls)" }); (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].HeaderStyle.Wrap = DevExpress.Utils.DefaultBoolean.True; (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].CellStyle.HorizontalAlign = HorizontalAlign.Right; (column as GridViewBandColumn).Columns.Add(new GridViewDataTextColumn { FieldName = "Ven_" + productoPresentacionTipo.IdProductoxPresentacion.ToString(), Caption = "Ventas del Días Anterior (Lts)" }); (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].HeaderStyle.Wrap = DevExpress.Utils.DefaultBoolean.True; (column as GridViewBandColumn).Columns[(column as GridViewBandColumn).Columns.Count - 1].CellStyle.HorizontalAlign = HorizontalAlign.Right; column.Caption = p.NombreComercial; column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; GrdInventario.Columns.Add(column); } } GrdInventario.DataSource = datos; GrdInventario.DataBind(); GrdInventario.Columns["Fecha"].Width = 80; GrdInventario.Columns["HoraCorte"].Width = 90; if (inventarios.Where(inv => inv.IdInventario == 0).Count() != 0) { LblAlerta.Text = String.Format("Tiene {0} día(s) de inventario sin reportar. Por favor, actualice su información.", inventarios.Where(inv => inv.IdInventario == 0).Count()); Image1.Visible = true; } else { LblAlerta.Text = ""; Image1.Visible = false; } LblAlerta.Visible = true; // Image1.Visible = true; }