Example #1
0
        //Add New Item button clicked.  Checks all the fields for valid values,
        //and if no errors, creates the record and adds it to the db.
        private void btn_Add_AddItem_Click(object sender, EventArgs e)
        {
            if (GuiPrefs.OpenDBPath == "")
            {
                MessageBox.Show("You must load a database before you can add items.",
                                "No Database Loaded", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //Add the item if all the fields have valid values
            if (Add_Controls_Valid())
            {
                SpecsRecord nr = new SpecsRecord();
                int         skunew = 1;
                int         skumin, skumax;

                //Step 1 - Find the first unused SKU in the database
                try
                {
                    tb_Add_MinSKU.Text = (skumin = Math.Abs(Convert.ToInt16(tb_Add_MinSKU.Text))).ToString();
                }
                catch
                { //If not a valid integer, set min to 1
                    skumin             = 1;
                    tb_Add_MinSKU.Text = "";
                }

                try
                {
                    tb_Add_MaxSKU.Text = (skumax = Math.Abs(Convert.ToInt16(tb_Add_MaxSKU.Text))).ToString();
                }
                catch
                { //If not a valid integer, set max to -1 (function will read as no limit)
                    skumax = -1;
                }

                if (skumax < skumin)
                { //Blanks max if it's less than min
                    tb_Add_MaxSKU.Text = "";
                }

                try
                {
                    skunew = Mydb.GetNextFreeSKU(skumin, skumax);
                }
                catch (IndexOutOfRangeException)
                {
                    MessageBox.Show("There is no available SKU number in the specified range.",
                                    "No available SKU", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                //                }
                //                else { //No valid range specified, search entire inventory
                //                  skunew = Mydb.GetNextFreeSKU();
                //                }

                //Step 2 - Set all the values of the SpecsRecord
                nr.SKU      = (uint)skunew;
                nr.SphereOD = Convert.ToSingle(tb_Add_SphereOD.Text);
                nr.SphereOS = Convert.ToSingle(tb_Add_SphereOS.Text);
                nr.CylOD    = Convert.ToSingle(tb_Add_CylOD.Text);
                nr.CylOS    = Convert.ToSingle(tb_Add_CylOS.Text);
                nr.AxisOD   = Convert.ToInt16(tb_Add_AxisOD.Text);
                nr.AxisOS   = Convert.ToInt16(tb_Add_AxisOS.Text);
                nr.AddOD    = Convert.ToSingle(tb_Add_AddOD.Text);
                nr.AddOS    = Convert.ToSingle(tb_Add_AddOS.Text);

                if (rb_Add_Male.Checked)
                {
                    nr.Gender = SpecGender.Male;
                }
                else if (rb_Add_Female.Checked)
                {
                    nr.Gender = SpecGender.Female;
                }
                else
                {
                    nr.Gender = SpecGender.Uni;
                }

                if (rb_Add_Single.Checked)
                {
                    nr.Type = SpecType.Single;
                }
                else
                {
                    nr.Type = SpecType.Multi;
                }

                if (rb_Add_NoTint.Checked)
                {
                    nr.Tint = SpecTint.None;
                }
                else if (rb_Add_LightTint.Checked)
                {
                    nr.Tint = SpecTint.Light;
                }
                else
                {
                    nr.Tint = SpecTint.Dark;
                }

                if (rb_Add_Small.Checked)
                {
                    nr.Size = SpecSize.Small;
                }
                else if (rb_Add_Medium.Checked)
                {
                    nr.Size = SpecSize.Medium;
                }
                else if (rb_Add_Large.Checked)
                {
                    nr.Size = SpecSize.Large;
                }
                else
                {
                    nr.Size = SpecSize.Child;
                }

                nr.Comment   = tb_Add_Comment.Text;
                nr.DateAdded = String.Format("{0:yyyy-MM-dd}", DateTime.Now);

                // Step 2.5 - Convert to negative CYL representation
                if (nr.CylOD > 0)
                {
                    nr.SphereOD += nr.CylOD;
                    nr.CylOD    *= -1;
                    nr.AxisOD    = (nr.AxisOD + 90) % 180;
                }
                if (nr.CylOS > 0)
                {
                    nr.SphereOS += nr.CylOS;
                    nr.CylOS    *= -1;
                    nr.AxisOS    = (nr.AxisOS + 90) % 180;
                }

                //Step 3 - Add the new SpecsRecord to the database
                Mydb.Insert(nr, SSTable.Current);
                Mydb.GetCurrentInventory(); //Refresh the displayed inventory
                IncrementOps();             //Increment the number of ops by 1 if the appropriate prefs are set

                //If the database is not normal (that is, if it is a merge database), also add the record to the
                //merge table and refresh it for display
                if (!GuiPrefs.NormalDatabase)
                {
                    Mydb.Insert(nr, SSTable.MergeItems);
                    dt_Add_MergeTable.Clear();
                    Mydb.GetTable(dt_Add_MergeTable, SSTable.MergeItems);
                }

                //Step 4 - Clear the entry fields and refresh the inventory
                Add_Clear_Controls();

                //Step 5 - Highlight the new item in the DataGridView
                for (int j = 0; j < dgv_Add_InventoryView.Rows.Count; j++)
                {
                    try
                    {
                        if (Convert.ToInt16(dgv_Add_InventoryView[0, j].Value) == skunew)
                        {
                            dgv_Add_InventoryView.Rows[j].Selected = true;
                            if (j < 3)
                            {
                                dgv_Add_InventoryView.FirstDisplayedScrollingRowIndex = 0;
                            }
                            else
                            {
                                dgv_Add_InventoryView.FirstDisplayedScrollingRowIndex = j - 2;
                            }
                        }
                    }
                    catch { }
                }
            }
        }
Example #2
0
        //Add New Item button clicked.  Checks all the fields for valid values,
        //and if no errors, creates the record and adds it to the db.
        private void btn_Add_AddItem_Click(object sender, EventArgs e)
        {
            if(GuiPrefs.OpenDBPath == "")
            {
                MessageBox.Show("You must load a database before you can add items.",
                                "No Database Loaded", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //Add the item if all the fields have valid values
            if (Add_Controls_Valid())
            {
                SpecsRecord nr = new SpecsRecord();
                int skunew = 1;
                int skumin, skumax;

                //Step 1 - Find the first unused SKU in the database
                try {
                    tb_Add_MinSKU.Text = (skumin = Math.Abs(Convert.ToInt16(tb_Add_MinSKU.Text))).ToString();
                }
                catch { //If not a valid integer, set min to 1
                    skumin = 1;
                    tb_Add_MinSKU.Text = "";
                }

                try {
                    tb_Add_MaxSKU.Text = (skumax = Math.Abs(Convert.ToInt16(tb_Add_MaxSKU.Text))).ToString();
                }
                catch { //If not a valid integer, set max to -1 (function will read as no limit)
                    skumax = -1;
                }

                if(skumax < skumin) { //Blanks max if it's less than min
                    tb_Add_MaxSKU.Text = "";
                }

                try {
                    skunew = Mydb.GetNextFreeSKU(skumin, skumax);
                } catch(IndexOutOfRangeException) {
                    MessageBox.Show("There is no available SKU number in the specified range.",
                                    "No available SKU", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            //                }
            //                else { //No valid range specified, search entire inventory
            //                	skunew = Mydb.GetNextFreeSKU();
            //                }

                //Step 2 - Set all the values of the SpecsRecord
                nr.SKU = (uint)skunew;
                nr.SphereOD = Convert.ToSingle(tb_Add_SphereOD.Text);
                nr.SphereOS = Convert.ToSingle(tb_Add_SphereOS.Text);
                nr.CylOD = Convert.ToSingle(tb_Add_CylOD.Text);
                nr.CylOS = Convert.ToSingle(tb_Add_CylOS.Text);
                nr.AxisOD = Convert.ToInt16(tb_Add_AxisOD.Text);
                nr.AxisOS = Convert.ToInt16(tb_Add_AxisOS.Text);
                nr.AddOD = Convert.ToSingle(tb_Add_AddOD.Text);
                nr.AddOS = Convert.ToSingle(tb_Add_AddOS.Text);

                if (rb_Add_Male.Checked)
                    nr.Gender = SpecGender.Male;
                else if (rb_Add_Female.Checked)
                    nr.Gender = SpecGender.Female;
                else
                    nr.Gender = SpecGender.Uni;

                if (rb_Add_Single.Checked)
                    nr.Type = SpecType.Single;
                else
                    nr.Type = SpecType.Multi;

                if (rb_Add_NoTint.Checked)
                    nr.Tint = SpecTint.None;
                else if (rb_Add_LightTint.Checked)
                    nr.Tint = SpecTint.Light;
                else
                    nr.Tint = SpecTint.Dark;

                if(rb_Add_Small.Checked)
                    nr.Size = SpecSize.Small;
                else if (rb_Add_Medium.Checked)
                    nr.Size = SpecSize.Medium;
                else if (rb_Add_Large.Checked)
                    nr.Size = SpecSize.Large;
                else
                    nr.Size = SpecSize.Child;

                nr.Comment = tb_Add_Comment.Text;
                nr.DateAdded = String.Format("{0:yyyy-MM-dd}", DateTime.Now);

                //Step 3 - Add the new SpecsRecord to the database
                Mydb.Insert(nr, SSTable.Current);
                Mydb.GetCurrentInventory(); //Refresh the displayed inventory
                IncrementOps(); //Increment the number of ops by 1 if the appropriate prefs are set

                //If the database is not normal (that is, if it is a merge database), also add the record to the
                //merge table and refresh it for display
                if (!GuiPrefs.NormalDatabase) {
                    Mydb.Insert(nr, SSTable.MergeItems);
                    dt_Add_MergeTable.Clear();
                    Mydb.GetTable(dt_Add_MergeTable, SSTable.MergeItems);
                }

                //Step 4 - Clear the entry fields and refresh the inventory
                Add_Clear_Controls();

                //Step 5 - Highlight the new item in the DataGridView
                for (int j = 0; j < dgv_Add_InventoryView.Rows.Count; j++)
                {
                    try {
                        if(Convert.ToInt16(dgv_Add_InventoryView[0, j].Value) == skunew)
                        {
                            dgv_Add_InventoryView.Rows[j].Selected = true;
                            if(j < 3)
                                dgv_Add_InventoryView.FirstDisplayedScrollingRowIndex = 0;
                            else
                                dgv_Add_InventoryView.FirstDisplayedScrollingRowIndex = j - 2;
                        }
                    } catch {}
                }
            }
        }
Example #3
0
        //Search button clicked.
        private void btn_S_Search_Click(object sender, EventArgs e)
        {
            if (GuiPrefs.OpenDBPath == "")
            {
                return;
            }

            //If the controls have valid fields, process the search
            if (SD_Controls_Valid())
            {
                SpecsRecord nr = new SpecsRecord();
                int         deye;

                //Displays/hides the auxiliary data grid view and resizes them both
                if (chb_S_SplitMultifocals.Checked)
                {
                    dgv_S_Distance.Visible      = true;
                    dgv_S_Closeup.Visible       = true;
                    dgv_S_SearchResults.Visible = false;
                    lb_S_Distance.Visible       = true;
                    lb_S_Closeup.Visible        = true;
                }
                else
                {
                    dgv_S_Distance.Visible      = false;
                    dgv_S_Closeup.Visible       = false;
                    dgv_S_SearchResults.Visible = true;
                    lb_S_Distance.Visible       = false;
                    lb_S_Closeup.Visible        = false;
                }
                MainForm_ResizeEnd(sender, e);

                //Step 1 - Create the search record
                nr.SphereOD = Convert.ToSingle(tb_S_SphereOD.Text);
                nr.CylOD    = Convert.ToSingle(tb_S_CylOD.Text);
                nr.AxisOD   = Convert.ToInt16(tb_S_AxisOD.Text);
                nr.AddOD    = Convert.ToSingle(tb_S_AddOD.Text);
                nr.SphereOS = Convert.ToSingle(tb_S_SphereOS.Text);
                nr.CylOS    = Convert.ToSingle(tb_S_CylOS.Text);
                nr.AxisOS   = Convert.ToInt16(tb_S_AxisOS.Text);
                nr.AddOS    = Convert.ToSingle(tb_S_AddOS.Text);

                //Multi/single type check
                if (rb_S_Single.Checked)
                {
                    nr.Type = SpecType.Single;
                }
                else
                {
                    nr.Type = SpecType.Multi;
                }

                //Gender check
                if (rb_S_AnyGender.Checked)
                {
                    nr.Gender = null;
                }
                else if (rb_S_Male.Checked)
                {
                    nr.Gender = SpecGender.Male;
                }
                else if (rb_S_Female.Checked)
                {
                    nr.Gender = SpecGender.Female;
                }
                else
                {
                    nr.Gender = SpecGender.Uni;
                }

                //Size check
                if (rb_S_AnySize.Checked)
                {
                    nr.Size = null;
                }
                else if (rb_S_Small.Checked)
                {
                    nr.Size = SpecSize.Small;
                }
                else if (rb_S_Medium.Checked)
                {
                    nr.Size = SpecSize.Medium;
                }
                else if (rb_S_Large.Checked)
                {
                    nr.Size = SpecSize.Large;
                }
                else
                {
                    nr.Size = SpecSize.Child;
                }

                //Dominant eye check
                if (rb_S_OD.Checked)
                {
                    deye = (int)DomEye.OD;
                }
                else if (rb_S_OS.Checked)
                {
                    deye = (int)DomEye.OS;
                }
                else
                {
                    deye = (int)DomEye.OU;
                }

                //Step 2 - Call the Rx Search function to search and score matching specs
                //		 - Sort by score
                Mydb.RxSearch(nr, (DomEye)deye, chb_S_SplitMultifocals.Checked);
                if (dgv_S_SearchResults.Visible)
                {
                    dgv_S_SearchResults.Sort(dgv_S_SearchResults.Columns[1], ListSortDirection.Ascending);
                }
                else
                {
                    dgv_S_Distance.Sort(dgv_S_Distance.Columns[1], ListSortDirection.Ascending);
                    dgv_S_Closeup.Sort(dgv_S_Closeup.Columns[1], ListSortDirection.Ascending);
                }
                //dgv_S_AuxResults.Sort(dgv_S_AuxResults.Columns[1], ListSortDirection.Ascending);

                //Step 3 - If empty, display a message box indicating no results, otherwise scroll to the top of the results
                if (Mydb.DBResults.Rows.Count > 0)
                {
                    dgv_S_SearchResults.FirstDisplayedScrollingRowIndex = 0;
                    dgv_S_Distance.FirstDisplayedScrollingRowIndex      = 0;
                }
                else
                {
                    MessageBox.Show("No matches found within acceptable tolerance of specified prescription.",
                                    "No matches.", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

                //Do the same for the Closeup table
                if (Mydb.DBResultsAux.Rows.Count > 0)
                {
                    dgv_S_Closeup.FirstDisplayedScrollingRowIndex = 0;
                }

                //Step 4 -Clear selections for both data grid views
                //				dgv_S_AuxResults.FirstDisplayedScrollingRowIndex = 0;
                dgv_S_SearchResults.ClearSelection();
                dgv_S_Distance.ClearSelection();
                dgv_S_Closeup.ClearSelection();
                //		        dgv_S_AuxResults.ClearSelection();
            }
        }
        //Search button clicked.
        private void btn_S_Search_Click(object sender, EventArgs e)
        {
            if (GuiPrefs.OpenDBPath == "") {
                return;
            }

            //If the controls have valid fields, process the search
            if (SD_Controls_Valid())
            {
                SpecsRecord nr = new SpecsRecord();
                int deye;

                //Displays/hides the auxiliary data grid view and resizes them both
                if(chb_S_SplitMultifocals.Checked)
                {
                    dgv_S_Distance.Visible = true;
                    dgv_S_Closeup.Visible = true;
                    dgv_S_SearchResults.Visible = false;
                    lb_S_Distance.Visible = true;
                    lb_S_Closeup.Visible = true;
                }
                else
                {
                    dgv_S_Distance.Visible = false;
                    dgv_S_Closeup.Visible = false;
                    dgv_S_SearchResults.Visible = true;
                    lb_S_Distance.Visible = false;
                    lb_S_Closeup.Visible = false;
                }
                MainForm_ResizeEnd(sender, e);

                //Step 1 - Create the search record
                nr.SphereOD = Convert.ToSingle(tb_S_SphereOD.Text);
                nr.CylOD = Convert.ToSingle(tb_S_CylOD.Text);
                nr.AxisOD = Convert.ToInt16(tb_S_AxisOD.Text);
                nr.AddOD = Convert.ToSingle(tb_S_AddOD.Text);
                nr.SphereOS = Convert.ToSingle(tb_S_SphereOS.Text);
                nr.CylOS = Convert.ToSingle(tb_S_CylOS.Text);
                nr.AxisOS = Convert.ToInt16(tb_S_AxisOS.Text);
                nr.AddOS = Convert.ToSingle(tb_S_AddOS.Text);

                //Multi/single type check
                if (rb_S_Single.Checked)
                    nr.Type = SpecType.Single;
                else
                    nr.Type = SpecType.Multi;

                //Gender check
                if(rb_S_AnyGender.Checked)
                    nr.Gender = null;
                else if(rb_S_Male.Checked)
                    nr.Gender = SpecGender.Male;
                else if(rb_S_Female.Checked)
                    nr.Gender = SpecGender.Female;
                else
                    nr.Gender = SpecGender.Uni;

                //Size check
                if(rb_S_AnySize.Checked)
                    nr.Size = null;
                else if(rb_S_Small.Checked)
                    nr.Size = SpecSize.Small;
                else if(rb_S_Medium.Checked)
                    nr.Size = SpecSize.Medium;
                else if(rb_S_Large.Checked)
                    nr.Size = SpecSize.Large;
                else
                    nr.Size = SpecSize.Child;

                //Dominant eye check
                if (rb_S_OD.Checked)
                    deye = (int)DomEye.OD;
                else if (rb_S_OS.Checked)
                    deye = (int)DomEye.OS;
                else
                    deye = (int)DomEye.OU;

                //Step 2 - Call the Rx Search function to search and score matching specs
                //		 - Sort by score
                Mydb.RxSearch(nr, (DomEye)deye, chb_S_SplitMultifocals.Checked);
                if(dgv_S_SearchResults.Visible) {
                    dgv_S_SearchResults.Sort(dgv_S_SearchResults.Columns[1], ListSortDirection.Ascending);
                } else {
                    dgv_S_Distance.Sort(dgv_S_Distance.Columns[1], ListSortDirection.Ascending);
                    dgv_S_Closeup.Sort(dgv_S_Closeup.Columns[1], ListSortDirection.Ascending);
                }
                //dgv_S_AuxResults.Sort(dgv_S_AuxResults.Columns[1], ListSortDirection.Ascending);

                //Step 3 - If empty, display a message box indicating no results, otherwise scroll to the top of the results
                if(Mydb.DBResults.Rows.Count > 0) {
                    dgv_S_SearchResults.FirstDisplayedScrollingRowIndex = 0;
                    dgv_S_Distance.FirstDisplayedScrollingRowIndex = 0;
                } else {
                    MessageBox.Show("No matches found within acceptable tolerance of specified prescription.",
                                    "No matches.", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

                //Do the same for the Closeup table
                if(Mydb.DBResultsAux.Rows.Count > 0) {
                    dgv_S_Closeup.FirstDisplayedScrollingRowIndex = 0;
                }

                //Step 4 -Clear selections for both data grid views
            //				dgv_S_AuxResults.FirstDisplayedScrollingRowIndex = 0;
                dgv_S_SearchResults.ClearSelection();
                dgv_S_Distance.ClearSelection();
                dgv_S_Closeup.ClearSelection();
            //		        dgv_S_AuxResults.ClearSelection();
            }
        }
Example #5
0
        protected internal override string OnWizardNext()
        {
            //For each duplicate, figure out which one is more recent and replace if necessary
            if(rb_MostRecent.Checked)
            {
                DateTime cidate, didate; //Current inventory date and Duped inventory date
                DataTable mydt = new DataTable();
                int dupecount = dupedt.Rows.Count;

                for(int i = 0; i < dupecount; i++)
                {
                    mydt.Clear();  //Clear the table for new results
                    try {
                        mydb.SKUSearch(Convert.ToInt16(dupedt.Rows[i][0]), mydt);
                    } catch {}
                    cidate = Convert.ToDateTime(mydt.Rows[0][13].ToString());
                    didate = Convert.ToDateTime(dupedt.Rows[i][13].ToString());

                    //Compare the dates, if the duplicate is more recent, replace the record
                    //in CurrentInventory with the one from DupedInventory, otherwise do nothing
                    if(DateTime.Compare(didate, cidate) > 0)  //Duplicate is newer, replace
                    {
                        //Create the record
                        SpecsRecord sr = new SpecsRecord();
                        sr.SKU = Convert.ToUInt16(dupedt.Rows[i][0]);
                        sr.SphereOD = Convert.ToSingle(dupedt.Rows[i][1]);
                        sr.CylOD = Convert.ToSingle(dupedt.Rows[i][2]);
                        sr.AxisOD = Convert.ToInt16(dupedt.Rows[i][3]);
                        sr.AddOD = Convert.ToSingle(dupedt.Rows[i][4]);
                        sr.SphereOS = Convert.ToSingle(dupedt.Rows[i][5]);
                        sr.CylOS = Convert.ToSingle(dupedt.Rows[i][6]);
                        sr.AxisOS = Convert.ToInt16(dupedt.Rows[i][7]);
                        sr.AddOS = Convert.ToSingle(dupedt.Rows[i][8]);
                        sr.Type = dupedt.Rows[i][9].ToString();
                        sr.Gender = dupedt.Rows[i][10].ToString();
                        sr.Size = dupedt.Rows[i][11].ToString();
                        sr.Tint = dupedt.Rows[i][12].ToString();
                        sr.DateAdded = dupedt.Rows[i][13].ToString();

                        //Delete the old record from the table and insert the new one
                        mydb.Delete(sr.SKU, SSTable.Current);
                        mydb.Insert(sr, SSTable.Current);
                    }
                }
            }
            return "NewDBPage7";
        }
        /// <summary>
        /// Click event for the Dispense button in the Dispense tab.
        /// Dispenses the items corresponding to each SKU in the listbox.
        /// </summary>
        private void btn_D_Dispense_Click(object sender, EventArgs e)
        {
            SpecsRecord sr     = new SpecsRecord();
            int         tdskus = 0;

            foreach (DataRow dr in dispenseTable.Rows)
            {
                //Assemble the record
                sr.SKU           = Convert.ToUInt16(dr[0]);
                sr.SphereOD      = Convert.ToSingle(dr[1]);
                sr.CylOD         = Convert.ToSingle(dr[2]);
                sr.AxisOD        = Convert.ToInt16(dr[3]);
                sr.AddOD         = Convert.ToSingle(dr[4]);
                sr.SphereOS      = Convert.ToSingle(dr[5]);
                sr.CylOS         = Convert.ToSingle(dr[6]);
                sr.AxisOS        = Convert.ToInt16(dr[7]);
                sr.AddOS         = Convert.ToSingle(dr[8]);
                sr.Type          = dr[9].ToString();
                sr.Gender        = dr[10].ToString();
                sr.Size          = dr[11].ToString();
                sr.Tint          = dr[12].ToString();
                sr.DateAdded     = dr[13].ToString();
                sr.DateDispensed = (DateTime.Today).ToString();
                sr.Comment       = dr[14].ToString();

                tdskus++;
                Mydb.Dispense(sr, true);  //Dispense the record
            }

            if (tdskus > 0)
            {
                //Clean up the controls and the form.
                dispenseTable.Clear();
                lbox_D_ToDispense.Items.Clear();
                tb_D_SphereOD.Clear();
                tb_D_CylOD.Clear();
                tb_D_AxisOD.Clear();
                tb_D_AddOD.Clear();
                tb_D_SphereOS.Clear();
                tb_D_CylOS.Clear();
                tb_D_AxisOS.Clear();
                tb_D_AddOS.Clear();
                tb_D_Comment.Clear();
                rb_D_NoTint.Checked    = true;
                rb_D_LightTint.Checked = false;
                rb_D_DarkTint.Checked  = false;
                rb_D_Small.Checked     = true;
                rb_D_Medium.Checked    = false;
                rb_D_Large.Checked     = false;
                rb_D_Unisex.Checked    = true;
                rb_D_Male.Checked      = false;
                rb_D_Female.Checked    = false;
                rb_D_Single.Checked    = true;
                rb_D_Multi.Checked     = false;
                tb_D_EnterSKU.Clear();
                tb_D_EnterSKU.Focus();

                //Reload the inventory display
                Mydb.GetCurrentInventory();
                dt_V_DispensedTable.Clear();
                Mydb.GetTable(dt_V_DispensedTable, SSTable.Dispensed);

                if (tdskus > 1)
                {
                    MessageBox.Show(String.Format("Successfully dispensed {0} pairs of glasses.", tdskus),
                                    "Dispense Successful", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MessageBox.Show("Successfully dispensed 1 pair of glasses.",
                                    "Dispense Successful", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

                IncrementOps(tdskus); //Increment ops by the number of records dispensed, if the appropriate prefs are set
            }
            else
            {
                MessageBox.Show("No glasses were dispensed; no SKUs were specified.",
                                "Dispense Unsuccessful", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }