private List<Receipt> ComputeReceipt(string itemId, string quantity) { int id = -1; int qty = -1; string shortDesc = string.Empty; decimal? price = 0.0M; decimal? amount = 0.0M; List<Receipt> crcpt = new List<Receipt>(); if (int.TryParse(itemId, out id)) { var itemPrice = this.db.ItemSalePrices.Where(i => i.ItemId == id).FirstOrDefault(); var itemDesc = this.db.ItemShortDescriptions.Where(i => i.ItemId == id).FirstOrDefault(); price = itemPrice.SalePrice; shortDesc = itemDesc.ShortDescription; if (int.TryParse(quantity, out qty)) { amount = price * qty; decimal _prc = (decimal)price; decimal _amt = (decimal)amount; Receipt receiptEntry = new Receipt { ItemId = id.ToString(), ShortDescription = shortDesc, Quantity = qty.ToString(), Price = price.Value.ToString("G29"), Amount = amount.Value.ToString("G29") }; crcpt.Add(receiptEntry); return crcpt; } else { throw new Exception("Invalid item quantity provided for receipt computation."); } } else { throw new Exception("Invalid item Id provided for receipt computation."); } }
private void AddReceiptItem() { List<Receipt> receipt = new List<Receipt>(); try { string itemId = this.dataGridViewStockItems.CurrentRow.Cells[0].Value.ToString(); string quantity = this.textBoxQuantity.Text.Trim().ToString(); if (this.dataGridViewReceipt.Rows.Count > 0) { for (int i = 0; i < this.dataGridViewReceipt.Rows.Count; i++) { Receipt cr = new Receipt { ItemId = this.dataGridViewReceipt.Rows[i].Cells[0].Value.ToString(), ShortDescription = this.dataGridViewReceipt.Rows[i].Cells[1].Value.ToString(), Quantity = this.dataGridViewReceipt.Rows[i].Cells[2].Value.ToString(), Price = this.dataGridViewReceipt.Rows[i].Cells[3].Value.ToString(), Amount = this.dataGridViewReceipt.Rows[i].Cells[4].Value.ToString() }; receipt.Add(cr); } List<Receipt> datasource = this.receipt.Add(receipt, itemId, quantity).ToList(); this.dataGridViewReceipt.DataSource = datasource; ReceiptTotalAmount(datasource); } else { List<Receipt> datasource = this.receipt.Add(null, itemId, quantity).ToList(); this.dataGridViewReceipt.DataSource = datasource; ReceiptTotalAmount(datasource); } this.dataGridViewReceipt.Columns[0].Width = 40; this.dataGridViewReceipt.Columns[2].Width = 40; // Receipt Price column alignment this.dataGridViewReceipt.Columns[3].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; this.dataGridViewReceipt.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; // Receipt Amount column alignment this.dataGridViewReceipt.Columns[4].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight; this.dataGridViewReceipt.Columns[4].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; this.comboBoxBarcode.Text = ""; this.comboBoxDescription.Text = ""; this.textBoxQuantity.Clear(); this.comboBoxBarcode.Focus(); } catch (Exception ex) { MessageBox.Show("ERROR: Failed to add item :- " + ex.Message + ".", "EastSeat Point of Sale", MessageBoxButtons.OK, MessageBoxIcon.Error); } }