Ejemplo n.º 1
0
        //Click event for btn_Add_DeleteSelected
        private void btn_Add_DeleteSelected_Click(object sender, EventArgs e)
        {
            //No db loaded, leave function
            if (GuiPrefs.OpenDBPath == "")
            {
                return;
            }

            int numrecords = dgv_Add_InventoryView.Rows.Count;
            int skutodel   = -1;
            int scrolling  = dgv_Add_InventoryView.FirstDisplayedScrollingRowIndex;

            for (int i = 0; i < numrecords; i++)
            {
                if (dgv_Add_InventoryView.Rows[i].Selected)
                {
                    skutodel = Convert.ToInt16(dgv_Add_InventoryView[0, i].Value);
                    break;
                }
            }

            if (skutodel >= 0) //Record selected, confirm and delete.
            {
                string str_delconfirm = String.Format("You are about to permanently delete " +
                                                      "the record with SKU# {0} from the database.\n\n" +
                                                      "-= DO NOT USE THIS SCREEN TO DISPENSE GLASSES =-\n\nAre you sure " +
                                                      "you want to delete this record?", skutodel);
                string str_caption = String.Format("Confirm Delete - SKU# {0}", skutodel);
                if (MessageBox.Show(str_delconfirm, str_caption,
                                    MessageBoxButtons.YesNo,
                                    MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                {
                    Mydb.Delete((uint)skutodel, SSTable.Current);
                    Mydb.GetCurrentInventory();  //Refreshes the list
                    if (!GuiPrefs.NormalDatabase)
                    {
                        Mydb.Delete((uint)skutodel, SSTable.MergeItems);
                        dt_Add_MergeTable.Clear();
                        Mydb.GetTable(dt_Add_MergeTable, SSTable.MergeItems);
                    }

                    if (scrolling < dgv_Add_InventoryView.Rows.Count - 1)
                    {
                        dgv_Add_InventoryView.FirstDisplayedScrollingRowIndex = scrolling;
                    }

                    IncrementOps(); //Increment ops by 1 if the appropriate prefs are set
                }
            }
            else //No record selected when button was pushed
            {
                MessageBox.Show("Please select a record to delete from the list.",
                                "No Record Selected", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// UpdateAfterOpenDB - Updates the controls and other important variables after a database is opened.
        /// </summary>
        private void UpdateAfterOpenDB()
        {
            DataTable dt = new DataTable();

            Mydb.GetCurrentInventory();                            //Load the current inventory into the datatable used by View and Search
            dt_V_DispensedTable.Clear();
            Mydb.GetTable(dt_V_DispensedTable, SSTable.Dispensed); //Load the dispensed inventory into the datatable used by View
            Mydb.GetDBInfo(dt);                                    //Load the database info

            GuiPrefs.OpenDBPath = Mydb.MyPath;
            if (dt.Rows.Count > 0)
            {
                //Set the database info to corresponding member variables
                GuiPrefs.OpenDBName = dt.Rows[0][0].ToString();
                GuiPrefs.OpenDBLoc  = dt.Rows[0][1].ToString();

                string codb = String.Format("Database: {0} ({1})", GuiPrefs.OpenDBName, GuiPrefs.OpenDBLoc);
                lb_Add_CurrentOpenDB.Text = codb;
                lb_S_CurrentOpenDB.Text   = codb;
                lb_D_CurrentOpenDB.Text   = codb;
                lb_V_CurrentOpenDB.Text   = codb;
                lb_R_CurrentOpenDB.Text   = codb;
            }

            //Check for merge info and alter display if necessary
            dt.Reset();
            dt_Add_MergeTable.Clear();
            try
            {
                Mydb.GetTable(dt, SSTable.MergeInfo);
                tb_Add_MinSKU.Text = dt.Rows[0][1].ToString();
                tb_Add_MaxSKU.Text = dt.Rows[0][2].ToString();
                Mydb.GetTable(dt_Add_MergeTable, SSTable.MergeItems);
                bs_Add_InventorySource.DataSource = dt_Add_MergeTable;
                Enable_AllControls(false);
            }
            catch
            { //If there's an exception, it's not a merge db
                bs_Add_InventorySource.DataSource = Mydb.InvResults;
                tb_Add_MinSKU.Clear();
                tb_Add_MaxSKU.Clear();
                Enable_AllControls(true);
            }

            Enable_MenuItems(true);
            ResetOps();                 //Reset number of operations performed since last auto backup
            ConfigureAutoBackupTimer(); //Configures (and resets) the timer for auto backups
        }
Ejemplo n.º 3
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 { }
                }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Click event for the Delete button in the Dispense tab.
        /// Deletes the items corresponding to each SKU in the listbox after confirmation.
        /// </summary>
        private void btn_D_Delete_Click(object sender, EventArgs e)
        {
            int tdskus = 0;

            if (deleteTable.Rows.Count > 0)
            {
                if (MessageBox.Show("You are about to permanently remove 1 or more records from inventory.\n\n-= DO NOT USE THIS BUTTON TO DISPENSE GLASSES =-\n\nAre you sure you want to proceed?",
                                    "Confirm Deletion", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == System.Windows.Forms.DialogResult.No)
                {
                    return;
                }
            }

            foreach (DataRow dr in deleteTable.Rows)
            {
                Mydb.Delete(Convert.ToUInt16(dr[0]), SSTable.Current);
                tdskus++;
            }

            if (tdskus > 0)
            {
                //Clean up the controls and the form.
                deleteTable.Clear();
                lbox_D_ToDelete.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_EnterSKUDel.Clear();
                tb_D_EnterSKUDel.Focus();

                //Reload the inventory display
                Mydb.GetCurrentInventory();

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

                IncrementOps(tdskus); //Increment ops by the number of records deleted, if the appropriate prefs are set
            }
            else
            {
                MessageBox.Show("No glasses were deleted; no SKUs were specified.",
                                "Delete Unsuccessful", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
Ejemplo n.º 5
0
        /// <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);
            }
        }