コード例 #1
0
        private void BtnAgregar_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (txtCodigo.Text != null &&
                labels.Text != null &&
                nudPrecioUnitario.Value != null &&
                nudUnidades.Value >= 1)
            {
                if ((char)Keys.Enter == e.KeyChar)
                {
                    var producto = _productoServicio.ObtenerPorCodigoKiosko(txtCodigo.Text);

                    var nuevoDetalle = new DetalleComprobanteKioscoDto();
                    nuevoDetalle.CodigoProducto      = producto.Codigo;
                    nuevoDetalle.DescripcionProducto = producto.Descripcion;
                    nuevoDetalle.Cantidad            = nudUnidades.Value;
                    nuevoDetalle.PrecioUnitario      = nudPrecioUnitario.Value;

                    //find busca el objeto de la lista
                    var verificarSiExiste = _listaDetalles.Find(
                        x => x.CodigoProducto == nuevoDetalle.CodigoProducto);

                    if (verificarSiExiste != null)
                    {
                        _listaDetalles.FirstOrDefault(x => x.CodigoProducto == nuevoDetalle.CodigoProducto)
                        .Cantidad += nuevoDetalle.Cantidad;
                    }
                    else
                    {
                        _listaDetalles.Add(nuevoDetalle);
                    }

                    // Currency Manager maneja el bindeo de datos

                    // Data binding es un mecanismo mediante el cual podemos enlazar los elementos de la
                    // interfaz de usuario con los objetos que contienen la información a mostrar. ...
                    // WPF nos permite de manera sencilla realizar binding a una propiedad de un control
                    // utilizando propiedades de otros controles, objetos, colecciones, etc.
                    CurrencyManager cm = (CurrencyManager)this.dgvGrilla.BindingContext[_listaDetalles];
                    if (cm != null)
                    {
                        cm.Refresh();
                    }

                    //calcular subtotal
                    nudSubTotal.Value = _listaDetalles.Sum(x => x.SubTotalLinea);

                    nudTotal.Value    = nudSubTotal.Value - ((nudSubTotal.Value * nudDescuento.Value) / 100);
                    btnCobrar.Enabled = true;
                }
            }
            else
            {
                MessageBox.Show("Error al agregar al Producto, Verifique los valores!.",
                                "Atencion",
                                MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
        public void Cargar(DetalleComprobanteKioscoDto dto, long comprobanteId)
        {
            using (var context = new ModeloXCommerceContainer())
            {
                var nuevoDetalle = new AccesoDatos.DetalleComprobante()
                {
                    ComprobanteId  = comprobanteId,
                    Codigo         = dto.CodigoProducto,
                    Descripcion    = dto.DescripcionProducto,
                    PrecioUnitario = dto.PrecioUnitario,
                    Cantidad       = dto.Cantidad,
                    SubTotal       = dto.SubTotalLinea,
                    ArticuloId     = (int)dto.ProductoId
                };

                context.DetalleComprobantes.Add(nuevoDetalle);

                context.SaveChanges();
            }
        }
        public void AgregarItem(DetalleComprobanteKioscoDto dto, ComprobanteKioskoDto comprobanteDto)
        {
            if (comprobanteDto.Items != null)
            {
                var item = comprobanteDto.Items
                           .FirstOrDefault(x => x.CodigoProducto == dto.CodigoProducto);

                if (item == null)
                {
                    comprobanteDto.Items.Add(dto);
                }
                else
                {
                    item.Cantidad += dto.Cantidad;
                }
            }
            else
            {
                comprobanteDto.Items.Add(dto);
            }
        }