Example #1
0
 public Software(string softName, SoftCat softCateg, OSTypeCat osCateg,
                 int prodId, ProdCat prodCat, double unitPrice, int supplId, int qtyOnHand, bool prodStat)
     : base(prodId, softName, prodCat, unitPrice, supplId, qtyOnHand, prodStat)
 {
     this.ProdName  = softName;
     this.SoftCateg = softCateg;
     this.OsCateg   = osCateg;
 }
Example #2
0
        private void btnSoftFrmOk_Click(object sender, EventArgs e)
        {
            //time to create a new object
            //========================================================
            string valueID, valueSwName, valueUnitPrice, valueSupplId, valueQOH;
            //string valueSwCat, valueSwOS;
            double unitPrice = 0;
            int    valueSwCat, valueSwOS;
            //bool prodStatus = true;
            bool isDuplicate = false;

            valueID        = txtProdID.Text.Trim();
            valueSwName    = txtSwName.Text.Trim();
            valueSwCat     = cmbSwCat.SelectedIndex;
            valueSwOS      = cmbSwOS.SelectedIndex;
            valueUnitPrice = txtProdUPrc.Text.Trim();
            valueSupplId   = txtProdSupId.Text.Trim();
            valueQOH       = txtProdQoH.Text.Trim();

            Software prod = new Software();

            if (!Product.isValidId(valueID, 4))
            {
                MessageBox.Show("Product ID is not correct! \n" +
                                "\n\nPlease provide valid client id number...",
                                "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtProdID.Focus();
                return;
            }

            if (valueSwName == "")
            {
                MessageBox.Show("Client Name could not be empty! \nPlease provide valid client name...",
                                "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtSwName.Focus();
                return;
            }

            try
            {
                unitPrice = Convert.ToDouble(valueUnitPrice);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Unit Price is not correct! \n" + ex.Message +
                                "\n\nPlease provide valid number...",
                                "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                unitPrice = 0;
                txtProdUPrc.Focus();
                return;
            }

            //valueProdCat - set correct
            SoftCat softCat = SoftCat.Other;

            switch (cmbSwCat.SelectedIndex)
            {
            case 0:
                softCat = SoftCat.OperationSystem;
                break;

            case 1:
                softCat = SoftCat.GraphicsDesign;
                break;

            case 2:
                softCat = SoftCat.TextEditor;
                break;

            case 3:
                softCat = SoftCat.AudioVideoPlay;
                break;

            case 4:
                softCat = SoftCat.AudioVedeoEdit;
                break;

            default:
                softCat = SoftCat.Other;
                break;
            }

            OSTypeCat osType = OSTypeCat.Windows;

            switch (cmbSwOS.SelectedIndex)
            {
            case 0:
                osType = OSTypeCat.Windows;
                break;

            case 1:
                osType = OSTypeCat.MacOS;
                break;

            case 2:
                osType = OSTypeCat.Linux;
                break;

            case 3:
                osType = OSTypeCat.iOS;
                break;

            case 4:
                osType = OSTypeCat.Android;
                break;

            default:
                osType = OSTypeCat.Windows;     //default choise
                break;
            }
            int supplId, qtyOH;

            //valueSupplId -- loading correct supplier info
            try
            {
                string[] fields = cmbSuppId.Text.Split(',');
                valueSupplId = fields[0];
                supplId      = Convert.ToInt32(valueSupplId);
            }
            catch (Exception)
            {
                valueSupplId = "0";
                supplId      = Convert.ToInt32(valueSupplId);
            }

            //checking all cases and go for an object creation:
            if ((prod != null) && (int.TryParse(valueSupplId, out supplId)) &&
                (int.TryParse(valueQOH, out qtyOH)))
            {
                //all ok so go ahead and assign the values to the object fields
                prod.ProdId     = Convert.ToInt32(valueID);
                prod.ProdName   = valueSwName;
                prod.SoftName   = valueSwName;
                prod.SoftCateg  = softCat;
                prod.OsCateg    = osType;
                prod.UnitPrice  = unitPrice;
                prod.SupplId    = supplId;
                prod.QtyOnHand  = qtyOH;
                prod.ProdCat    = ProdCat.Software;
                prod.ProdStatus = chkSoftAct.Checked;
                List <Product> products = Product.XMLLoadAllProducts();
                if (products == null)
                {
                    products = new List <Product>();
                }

                Product prodDup = new Product();
                foreach (Product prodItem in products)
                {
                    if (prodItem.ProdId == prod.ProdId)
                    {
                        isDuplicate = true;
                        //if id is already in use - return true = id duplicate found!
                        // so may be we want to update the account information?
                        DialogResult answer = MessageBox.Show("This ID is already in use: " + valueID
                                                              + " \nfor: " + prodItem.ProdName + "\n"
                                                              + "\nDo you want to update this item information?", "Confirmation on Update",
                                                              MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                        if (answer == DialogResult.Yes)
                        {
                            //continuing update process:
                            prodDup     = prodItem;
                            isDuplicate = true;
                        }
                        else
                        {
                            isDuplicate = false;
                            return;
                        }
                    }
                }
                if (isDuplicate)
                {
                    products.Remove(prodDup); //removing old version of updated product from the local list
                }
                products.Add(prod);           //adding updated product to the local list
                if (UpdateGlobalProdList(products))
                {
                    //_globProdList.Sort();
                    _globProdList = _globProdList.OrderBy(o => o.ProdId).ToList();
                    Product.SaveAllProducts(_globProdList);
                    MessageBox.Show("Update successfull!",
                                    "Success!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                LoadItemsListView();
            }
        }