public SalesInvoice(Window parentWindow, SalesInvoiceInfo invoiceInfo) { _parentWindow = parentWindow; itemInfoList = new List <SalesItemInfo>(); itemList = new List <SalesItemBind>(); InitializeComponent(); uomList = BLL.CommonBLL.GetUnitOfMeasure(); comboUoM.ItemsSource = uomList; comboUoM.DisplayMemberPath = "UnitOfMeasure"; comboUoM.SelectedValuePath = "UnitOfMeasure"; if (invoiceInfo == null) { GetNextInvoiceInfo(); } else { _invoiceInfo = invoiceInfo; txtInvoiceNum.Text = _invoiceInfo.SalesID.ToString(); int itemNum = 0; itemInfoList = invoiceInfo.SalesItemList.ToList(); foreach (SalesItemInfo itemInfo in invoiceInfo.SalesItemList) { itemNum++; SalesItemBind itemBindInfo = new SalesItemBind(); itemBindInfo.ItemNum = itemNum; itemBindInfo.ItemInfo.ProductID = itemInfo.ProductID; itemBindInfo.DisplayProductName = itemInfo.ProductName + " - " + itemInfo.VendorName; itemBindInfo.ItemInfo.DiscountRate = itemInfo.DiscountRate; itemBindInfo.ItemInfo.Qty = itemInfo.Qty; itemBindInfo.ItemInfo.RetailRate = itemInfo.RetailRate; itemBindInfo.ItemInfo.Unit = itemInfo.Unit; if (itemInfo.DiscountRate > 0) { itemBindInfo.ItemInfo.Amount = itemInfo.Qty * itemInfo.DiscountRate; } else { itemBindInfo.ItemInfo.Amount = itemInfo.Qty * itemInfo.RetailRate; } itemList.Add(itemBindInfo); } datagridProduct.ItemsSource = null; datagridProduct.ItemsSource = itemList; SetTotalAmount(); } _companyInfo = BLL.CommonBLL.GetCompanyInfo(); AddHotKeys(); }
private void datagridProduct_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { try { if (e.EditAction == DataGridEditAction.Commit) { var column = e.Column as DataGridBoundColumn; if (column != null) { SalesItemBind er = e.Row.Item as SalesItemBind; TextBox el = e.EditingElement as TextBox; var bindingPath = (column.Binding as Binding).Path.Path; if (bindingPath == "ItemInfo.RetailRate") { decimal retailRate = 0; retailRate = Convert.ToDecimal(el.Text); er.ItemInfo.RetailRate = retailRate; } else if (bindingPath == "ItemInfo.Qty") { decimal qty = 0; qty = Convert.ToDecimal(el.Text); er.ItemInfo.Qty = qty; } else if (bindingPath == "ItemInfo.DiscountRate") { decimal discountRate = 0; discountRate = Convert.ToDecimal(el.Text); er.ItemInfo.DiscountRate = discountRate; } if (er.ItemInfo.DiscountRate > 0) { er.ItemInfo.Amount = er.ItemInfo.DiscountRate * er.ItemInfo.Qty; } else { er.ItemInfo.Amount = er.ItemInfo.RetailRate * er.ItemInfo.Qty; } SetTotalAmount(); } } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
private void deleteButton_Click(object sender, RoutedEventArgs e) { try { if (this.datagridProduct.Items.Count > 0) { SalesItemBind itemBindInfo = this.datagridProduct.SelectedValue as SalesItemBind; itemList.RemoveAt(this.datagridProduct.SelectedIndex); SalesItemInfo productInfoExist = itemInfoList.SingleOrDefault(i => i.ProductID == itemBindInfo.ItemInfo.ProductID); itemInfoList.Remove(productInfoExist); SetTotalAmount(); datagridProduct.Items.Refresh(); } } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
private void Grid_KeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { if (autoProductName.SelectedItem != null && txtQty.Text.Length > 0 && comboRetailRate.Text != null && comboUoM.SelectedValue != null) { ProductInfo productInfo = null; if (autoProductName.SelectedItem != null) { productInfo = (ProductInfo)autoProductName.SelectedItem; } int itemNum = 0; SalesItemInfo productInfoExist = null; if (itemInfoList != null && itemInfoList.Count > 0) { itemNum = _invoiceInfo.SalesItemList.Length + 1; productInfoExist = _invoiceInfo.SalesItemList.ToList().SingleOrDefault(i => i.ProductID == productInfo.ProductCode); } else { itemNum = 1; } if (productInfoExist != null) { MessageBox.Show("Product already in the list. If you want to change qty please update in the list it self"); this.autoProductName.Focus(); comboRetailRate.SelectedItem = null; autoProductName.SelectedItem = null; txtDiscount.Text = ""; txtQty.Text = ""; } else { if (productInfo != null) { SalesItemBind itemBindInfo = new SalesItemBind(); itemBindInfo.ItemNum = itemNum; itemBindInfo.ItemInfo.ProductID = productInfo.ProductCode; decimal discountRate = 0; decimal.TryParse(txtDiscount.Text, out discountRate); itemBindInfo.DisplayProductName = productInfo.ProductDescription + " - " + productInfo.VendorInfo.SupplierName; itemBindInfo.ItemInfo.DiscountRate = discountRate; decimal qty = 0; decimal.TryParse(txtQty.Text, out qty); itemBindInfo.ItemInfo.Qty = qty; decimal retailRate = 0; retailRate = Convert.ToDecimal(comboRetailRate.Text); itemBindInfo.ItemInfo.RetailRate = retailRate; itemBindInfo.ItemInfo.Unit = comboUoM.SelectedValue.ToString(); if (discountRate > 0) { itemBindInfo.ItemInfo.Amount = qty * discountRate; } else { itemBindInfo.ItemInfo.Amount = qty * retailRate; } itemInfoList.Add(itemBindInfo.ItemInfo); itemList.Add(itemBindInfo); _invoiceInfo.SalesItemList = itemInfoList.ToArray(); datagridProduct.ItemsSource = null; datagridProduct.ItemsSource = itemList; SetTotalAmount(); } this.autoProductName.Focus(); comboRetailRate.SelectedItem = null; autoProductName.SelectedItem = null; txtDiscount.Text = ""; txtQty.Text = ""; } } } }