private void SetearProducto(tbProducto _tbProducto) { long idEmpresa = ((Empresa)cmbEmpresa.SelectedItem).idEmpresa; long idProducto = 0; txtCodigoProducto.Clear(); txtDescripcionProducto.Clear(); List <Precio> precios = new List <Precio>(); if (idEmpresa == 0) { MessageBox.Show("Seleccione empresa", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (_tbProducto == null) { MessageBox.Show("Producto no existe", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { tbPrecio _tbPrecio = edmCosolemFunctions.getPrecio(idEmpresa, _tbProducto.idProducto); txtCodigoProducto.Text = _tbProducto.codigoProducto; txtDescripcionProducto.Text = _tbProducto.descripcion; idProducto = _tbProducto.idProducto; if (_tbPrecio != null) { precios.Add(new Precio { codigoProducto = _tbProducto.codigoProducto, seleccionado = false, descripcionFormaPago = "Efectivo", precio = _tbPrecio.precioOferta }); precios.Add(new Precio { codigoProducto = _tbProducto.codigoProducto, seleccionado = false, descripcionFormaPago = "Crédito", precio = _tbPrecio.precioVentaPublico }); precios.Add(new Precio { codigoProducto = _tbProducto.codigoProducto, seleccionado = false, descripcionFormaPago = "Informativo", precio = _tbPrecio.precioInformativo }); if (!String.IsNullOrEmpty(formaPago)) { precios.Where(x => x.descripcionFormaPago == formaPago).FirstOrDefault().seleccionado = true; } } } dgvPrecios.DataSource = precios; lvwInventario.Items.Clear(); lvwInventario.Groups.Clear(); List <clsInventarioGeneral> inventarioGeneral = edmCosolemFunctions.getInventarioGeneral(idEmpresa, idProducto); foreach (var tienda in inventarioGeneral.Select(x => new { idTienda = x.idTienda, descripcionTienda = x.descripcionTienda }).Distinct().ToList()) { ListViewGroup grupo = new ListViewGroup(tienda.descripcionTienda); lvwInventario.Groups.Add(grupo); foreach (var bodega in inventarioGeneral.Where(x => x.idTienda == tienda.idTienda).Select(y => new { idBodega = y.idBodega, descripcionBodega = y.descripcionBodega, fisicoDisponible = y.fisicoDisponible, reservado = y.reservado, inventario = y.inventario }).ToList()) { ListViewItem subGrupo = new ListViewItem { Tag = bodega.idBodega, Text = bodega.descripcionBodega, Group = grupo }; subGrupo.SubItems.Add(bodega.fisicoDisponible.ToString()); subGrupo.SubItems.Add(bodega.reservado.ToString()); subGrupo.SubItems.Add(bodega.inventario.ToString()); lvwInventario.Items.Add(subGrupo); } } }
private void tsbProcesar_Click(object sender, EventArgs e) { try { dgvProcesarPrecios_CellEndEdit(null, null); List <tbProcesarPrecio> _ListtbProcesarPrecio = ((List <tbProcesarPrecio>)dgvProcesarPrecios.DataSource).Where(x => x.seleccionado).ToList(); string mensaje = String.Empty; if (_ListtbProcesarPrecio.Count == 0) { mensaje += "Seleccione al menos 1 precio para proceder a procesarlo\n"; } if (_ListtbProcesarPrecio.Where(x => x.costo <= 0 || x.indiceComercial <= 0 || x.indiceFinanciero <= 0 || x.indiceInformativo <= 0).Any()) { mensaje += "Hay productos seleccionados con costo, índice comercial, índice financiero o índice informativo menor o igual que 0, favor verificar\n"; } if (String.IsNullOrEmpty(mensaje.Trim())) { _ListtbProcesarPrecio.ForEach(x => { tbProcesarPrecio _tbProcesarPrecio = (from PP in _dbCosolemEntities.tbProcesarPrecio where PP.idProcesarPrecio == x.idProcesarPrecio select PP).FirstOrDefault(); if (_tbProcesarPrecio != null) { _tbProcesarPrecio.procesarPrecio = false; _tbProcesarPrecio.estadoRegistro = false; _tbProcesarPrecio.fechaHoraUltimaModificacion = Program.fechaHora; _tbProcesarPrecio.idUsuarioUltimaModificacion = idUsuario; _tbProcesarPrecio.terminalUltimaModificacion = Program.terminal; } _dbCosolemEntities.tbPrecio.Where(y => y.idEmpresa == idEmpresa && y.idProducto == x.idProducto && y.estadoRegistro).ToList().ForEach(z => { z.estadoRegistro = false; z.fechaHoraUltimaModificacion = Program.fechaHora; z.idUsuarioUltimaModificacion = idUsuario; z.terminalUltimaModificacion = Program.terminal; z.fechaHoraEliminacion = Program.fechaHora; z.idUsuarioEliminacion = idUsuario; z.terminalEliminacion = Program.terminal; }); tbPrecio _tbPrecio = new tbPrecio(); _tbPrecio.idEmpresa = idEmpresa; _tbPrecio.idProducto = x.idProducto; _tbPrecio.costo = x.costo; _tbPrecio.precioOferta = _tbPrecio.costo * x.indiceComercial; _tbPrecio.precioVentaPublico = _tbPrecio.precioOferta * x.indiceFinanciero; _tbPrecio.precioInformativo = _tbPrecio.precioVentaPublico * x.indiceInformativo; _tbPrecio.estadoRegistro = true; _tbPrecio.fechaHoraIngreso = Program.fechaHora; _tbPrecio.idUsuarioIngreso = idUsuario; _tbPrecio.terminalIngreso = Program.terminal; _dbCosolemEntities.tbPrecio.AddObject(_tbPrecio); }); _dbCosolemEntities.SaveChanges(); MessageBox.Show("Registro grabado satisfactoriamente", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); frmPrecios_Load(null, null); } else { MessageBox.Show(mensaje, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning); } } catch (Exception ex) { Util.MostrarException(this.Text, ex); } }