private void btnSave_Click(object sender, EventArgs e)
        {
            //try
            //{
            PharmacyDbContext db = new PharmacyDbContext();

            foreach (ListViewItem item in lvMedicine.Items)
            {
                Medicine medicine = new Medicine();

                medicine.Name        = item.SubItems[2].Text;
                medicine.Id          = UniqueNumber.GenerateUniqueNumber();
                medicine.CreatedBy   = currentUser;
                medicine.CreatedDate = DateTime.Now;
                medicine.GroupId     = GroupFactory.GetGroupId(item.SubItems[3].Text, currentUser);
                medicine.CompanyId   = CompanyFactory.GetCompanyId(item.SubItems[4].Text, currentUser);
                db.Medicine.Add(medicine);
            }
            db.SaveChanges();
            db.Dispose();
            MessageBox.Show(@"Save successful!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            lvMedicine.Items.Clear();
            //}
            //catch (Exception exception)
            //{
            //    MessageBox.Show("Saving Error:" + exception.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            //}
        }
        private void SaveMedicineIfNew()
        {
            PharmacyDbContext db       = new PharmacyDbContext();
            Medicine          medicine = new Medicine();

            medicine = db.Medicine.FirstOrDefault(a => a.Name == txtMedicine.Text);
            if (medicine != null)
            {
                medicine.Name        = txtMedicine.Text;
                medicine.Id          = UniqueNumber.GenerateUniqueNumber();
                medicine.CreatedBy   = currentUser;
                medicine.CreatedDate = DateTime.Now;
                medicine.GroupId     = GroupFactory.GetGroupId(txtGroup.Text, currentUser);
                medicine.CompanyId   = CompanyFactory.GetCompanyId(txtCompany.Text, currentUser);
                db.Medicine.Add(medicine);
            }
        }
        private void SavePurchaseMain(PharmacyDbContext db, string invoiceId)
        {
            PurchaseMain main = new PurchaseMain();

            main.Id          = Guid.NewGuid().ToString();
            main.InvoiceId   = invoiceId;
            main.CreatedBy   = currentUser;
            main.CreatedDate = DateTime.Now;
            main.CompanyId   = CompanyFactory.GetCompanyId(txtSupplier.Text, currentUser);
            main.TotalAmount = Convert.ToDecimal(lblTotal.Text);
            main.Due         = Convert.ToDecimal(txtDue.Text);
            main.Paid        = Convert.ToDecimal(txtPaid.Text);
            main.Discount    = Convert.ToDecimal(txtDiscount.Text);
            main.GrandTotal  = (main.TotalAmount - main.Discount);
            main.Note        = txtNote.Text;
            db.PurchaseMain.Add(main);
            SaveVoucher(main.GrandTotal, main.Paid, main.Due, main.CompanyId, invoiceId, db);
            SavePurchaseSub(db, main.Id);
        }