Exemple #1
0
        private void cartTable_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.ColumnIndex != 8)
            {
                return;
            }
            var t = sender as DataGridView;

            var id       = (int)(t.Rows[e.RowIndex].Cells[0].Value);
            var quantity = (int)(t.Rows[e.RowIndex].Cells[quantityCol.Name].Value);
            var price    = (decimal)(t.Rows[e.RowIndex].Cells[priceCol.Name].Value);
            var discount = (decimal)(t.Rows[e.RowIndex].Cells[discountCol.Name].Value);

            using (var p = new POSEntities())
            {
                var inventoryItem = p.InventoryItems.FirstOrDefault(x => x.Id == id);
                using (var setup = new ItemSaleSetupForm())
                {
                    setup.SetValues(inventoryItem.Id
                                    , inventoryItem.Product.Item.Barcode,
                                    inventoryItem.SerialNumber,
                                    inventoryItem.Product.Item.Name,
                                    ImageDatabaseConverter.byteArrayToImage(inventoryItem.Product.Item.SampleImage),
                                    price,
                                    inventoryItem.Quantity,
                                    discount,
                                    quantity);

                    setup.OnConfirm += editConfirmed_Callback;
                    setup.ShowDialog();
                }
            }
        }
        public override void save()
        {
            if (!canSave())
            {
                return;
            }

            switch (MessageBox.Show(this, "Are you sure you want to create this item?", "Please double check.", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
            //Stay on this form
            case DialogResult.No:
                return;

            default:
                break;
            }



            try
            {
                using (var p = new POSEntities())
                {
                    var item = new Item();
                    item.Barcode = barcode.Text;
                    item.Name    = name.Text;

                    item.SellingPrice = sellingPrice.Value;
                    //item.Cost = cost.Value;

                    item.Department = string.IsNullOrEmpty(itemDepartment.Text) ? null : itemDepartment.Text;
                    // item.Type = itemType.Text;
                    item.Type    = itemType.Text;
                    item.Details = details.Text;
                    if (ImageBox.Image != null)
                    {
                        item.SampleImage = ImageDatabaseConverter.imageToByteArray(ImageBox.Image);
                    }
                    else
                    {
                        item.SampleImage = null;
                    }

                    p.Items.Add(item);
                    if (item.Type == ItemType.Service.ToString() || item.Type == ItemType.Software.ToString())
                    {
                        MessageBox.Show("Items of type Service or Software will automatically create an item variation and be added to Inventory.");

                        var prod = new Product();
                        prod.Item     = item;
                        prod.Cost     = 0;
                        prod.Supplier = p.Suppliers.FirstOrDefault(x => x.Name == "None");
                        p.Products.Add(prod);

                        var inventory = new InventoryItem();
                        inventory.Product      = prod;
                        inventory.Quantity     = 0;
                        inventory.SerialNumber = null;
                        p.InventoryItems.Add(inventory);
                    }
                    else
                    {
                        foreach (DataGridViewRow i in variationTable.Rows)
                        {
                            var prod = new Product();
                            prod.ItemId = item.Barcode;
                            string s = i.Cells[0].Value.ToString();
                            prod.Supplier = p.Suppliers.FirstOrDefault(x => x.Name == s);
                            prod.Cost     = Convert.ToDecimal(i.Cells[1].Value);

                            p.Products.Add(prod);
                        }
                    }

                    p.SaveChanges();
                    MessageBox.Show("Item Added");
                }

                InvokeEvent();
                clearFields();
            }
            catch (Exception except)
            {
                MessageBox.Show(except.Message);
            }
        }