private void btnDeleteProduct_Click(object sender, EventArgs e)
        {
            //supName is equal to the selected items at index 0 to text
            string supName = (lvPkgDetails.Items[lvPkgDetails.SelectedItems[0].Index].Text);
            //suppID is equal to the result of the getProductId method taking supName as an argument
            int suppID = ProductsDB.getProductId(supName);

            //prodName is equal to the selected items at index 0, sub-item index 1 to text
            string prodName = lvPkgDetails.SelectedItems[0].SubItems[1].Text;
            //prodID is equal to the result of the getSupplierId method taking prodName as an argument
            int prodID = SuppliersDB.getSupplierId(prodName);

            //productSupplierID is equal to the result of the get_PpsID method taking suppID and prodID as arguments
            int psID = Products_SuppliersDB.Get_PpsID(suppID, prodID);

            // pkgID is equal to the result of the GetPackageIDBy_PsID method taking PsID as an argument
            int pkgID = PackagesDB.GetPackageIDBy_PsID(psID);

            bool exists  = false;
            bool attempt = false;

            if (!exists) // if it does not exist, do this
            {
                try
                {
                    // attempt = add product to package method, taking product supplier id and package id as arguments
                    attempt = ProductsDB.deleteProductFromPkg(pkgID, psID);
                    //MessageBox.Show("Succesfully deleted");
                }
                catch (SqlException ex)
                {
                    MessageBox.Show("Error modifying package\n" + ex);
                }

                if (attempt)
                {
                    MessageBox.Show("Succesfully deleted");
                    lvPkgDetails.Items.Clear();
                    int i = 0;
                    //int pkgID = lvPackages.Items.IndexOf(lvPackages.SelectedItems[i]); -- this is an old logic used

                    List <Package_Product_Suppliers> pps_o = PackagesDB.GetProductSuppliersByPackage(pkgID);
                    foreach (Package_Product_Suppliers pps in pps_o)
                    {
                        lvPkgDetails.Items.Add(pps.ProdName);
                        lvPkgDetails.Items[i].SubItems.Add(pps.SupName);
                        i += 1;
                    }
                }
            }
            else
            {
                MessageBox.Show("Unable to delete");
            }

            btnAddPackage.Visible    = true;
            btnDeleteProduct.Visible = false;
            lvPkgDetails.Items.Clear();
        }
        private void btnDeletePackage_Click(object sender, EventArgs e)
        {
            int pkgID = Convert.ToInt32(lvPackages.Items[lvPackages.SelectedItems[0].Index].Text);

            DialogResult result = MessageBox.Show("Are you sure you want to delete this Product?",
                                                  "Confirm Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                bool exists  = false;
                bool attempt = false;

                if (!exists) // if it does not exist, do this
                {
                    try
                    {
                        // attempt = add product to package method, taking product supplier id and package id as arguments
                        attempt = PackagesDB.DeletePackage(pkgID);
                        //reload the packages list by getting new list and clearing the old one and adding new items to listview
                        List <Packages> packages = PackagesDB.GetPackages();
                        lvPackages.Items.Clear();
                        int i = 0;
                        foreach (Packages package in packages)
                        {
                            lvPackages.Items.Add(package.PackageID.ToString());
                            lvPackages.Items[i].SubItems.Add(package.PkgName.ToString());
                            lvPackages.Items[i].SubItems.Add(package.PkgStartDate.ToString());
                            lvPackages.Items[i].SubItems.Add(package.PkgEndDate.ToString());
                            lvPackages.Items[i].SubItems.Add(package.PkgDesc.ToString());
                            lvPackages.Items[i].SubItems.Add(package.PkgBasePrice.ToString());
                            lvPackages.Items[i].SubItems.Add(package.PkgAgencyCommission.ToString());
                            i += 1;
                        }
                    }
                    catch (SqlException ex)
                    {
                        MessageBox.Show("Error deleting package\n" + ex);
                    }

                    if (attempt)
                    {
                        MessageBox.Show("Successfully deleted");
                        FrmPackages.ActiveForm.Refresh();

                        btnAddProd.Visible = false;
                        lvPkgDetails.Items.Clear();
                    }
                }
                else
                {
                    MessageBox.Show("Package is already deleted");
                }
            }
        }
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            if (cBSupplier.SelectedText != "")
            {
                string prodNameSelected = cBProduct.GetItemText(cBProduct.SelectedItem); //Get the product name for the selected product
                int    prodIdSelected   = ProductsDB.getProductId(prodNameSelected);     //find the productId of the selected item
                                                                                         // get thee supplier name from the combo box selection
                string supNameSelected = cBSupplier.GetItemText(cBSupplier.SelectedItem);
                // get the supplierID from the suppliername using the method in SuppliersDB
                int supplierIdSelected = SuppliersDB.getSupplierId(supNameSelected);
                // product supplier ID is equal to a method that retrieves it in a SQL Query
                int ppsID = Products_SuppliersDB.Get_PpsID(prodIdSelected, supplierIdSelected);
                // pkgID is equal to the selected ITEM at the index clicked to maintain consistency
                int pkgID = Convert.ToInt32(lvPackages.Items[lvPackages.SelectedItems[0].Index].Text);

                bool exists  = false;
                bool attempt = false;

                if (!exists) // if it does not exist, do this
                {
                    try
                    {
                        // attempt = add product to package method, taking product supplier id and package id as arguments
                        attempt = PackagesDB.AddProdToPackage(ppsID, pkgID);
                    }
                    catch (SqlException ex)
                    {
                        MessageBox.Show("Error modifying package\n" + ex);
                    }

                    if (attempt)
                    {
                        MessageBox.Show("Succesfully modified");
                        int i = 0;
                        lvPkgDetails.Items.Clear();
                        List <Package_Product_Suppliers> pps_o = PackagesDB.GetProductSuppliersByPackage(pkgID);
                        foreach (Package_Product_Suppliers pps in pps_o)
                        {
                            lvPkgDetails.Items.Add(pps.ProdName);
                            lvPkgDetails.Items[i].SubItems.Add(pps.SupName);
                            i += 1;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("Package is already in the database");
                }
            }
            else
            {
                MessageBox.Show("Please choose a valid supplier");
            }
        }
Esempio n. 4
0
        private void btnModifyPack_Click_1(object sender, EventArgs e)
        {
            Packages modifiedPackage = new Packages();

            if (Validator.IsPkgPresent(txtPkgAgencyComm, oldPackage.PkgAgencyCommission.ToString("c")) &&
                Validator.isNonNegativeDecimal(txtPkgAgencyComm) &&
                Validator.IsPkgPresent(txtPkgBasePrice, oldPackage.PkgBasePrice.ToString("c")) &&
                Validator.isNonNegativeDecimal(txtPkgBasePrice) &&
                Validator.IsPkgPresent(txtPkgDesc, oldPackage.PkgDesc) &&
                Validator.IsPkgPresent(txtPkgName, oldPackage.PkgName) &&
                Validator.DateMin(dTEndDate, dTStartDate.Value))
            {
                modifiedPackage.PackageID           = oldPackage.PackageID;
                modifiedPackage.PkgAgencyCommission = decimal.Parse(txtPkgAgencyComm.Text, NumberStyles.AllowCurrencySymbol | NumberStyles.Number);
                modifiedPackage.PkgBasePrice        = decimal.Parse(txtPkgBasePrice.Text, NumberStyles.AllowCurrencySymbol | NumberStyles.Number);
                modifiedPackage.PkgDesc             = txtPkgDesc.Text;
                modifiedPackage.PkgName             = txtPkgName.Text;
                modifiedPackage.PkgStartDate        = dTStartDate.Value;
                modifiedPackage.PkgEndDate          = dTEndDate.Value;

                if (modifiedPackage.PkgBasePrice <= modifiedPackage.PkgAgencyCommission)
                {
                    MessageBox.Show("Commission cannot be greater than Base price!");
                }
                else
                {
                    bool attempt;

                    attempt = PackagesDB.UpdatePacakge(oldPackage, modifiedPackage);
                    if (attempt)
                    {
                        MessageBox.Show("Successfully updated package", "success");
                        Close();
                    }
                    else
                    {
                        MessageBox.Show("Unable to modify package", "error");
                    }
                }
            }
            //else
            //{
            //    if (txtPkgName.Text == "" || txtPkgDesc.Text == "" || txtPkgBasePrice.Text == "" || txtPkgAgencyComm.Text == "")
            //    {
            //        txtPkgName.Text = oldPackage.PkgName;
            //        txtPkgDesc.Text = oldPackage.PkgDesc;
            //        txtPkgBasePrice.Text = oldPackage.PkgBasePrice.ToString("c");
            //        txtPkgAgencyComm.Text = oldPackage.PkgAgencyCommission.ToString("c");
            //    }
            //}
        }
        // add package button event
        private void btnAddPack_Click(object sender, EventArgs e)
        {
            bool exists = false;

            // validator checks input if its present, and a non negative decimal
            if (Validator.IsPresent(txtPkgName) && Validator.IsPresent(txtPkgDesc) &&
                Validator.IsPresent(txtPkgBasePrice) && Validator.IsPresent(txtPkgAgencyComm) &&
                Validator.NonNegativeDecimal(txtPkgBasePrice) && Validator.NonNegativeDecimal(txtPkgAgencyComm))
            {
                // new packages list retrieved with getpackages method
                List <Packages> packages = PackagesDB.GetPackages();
                foreach (Packages package in packages)
                {
                    if (package.PkgName == txtPkgName.Text)
                    {
                        exists = true;
                    }
                }
                if (!exists) // if it does not exist then execute this block to add package
                {
                    pkg = new Packages();
                    this.PutPkgData(pkg);
                    if (pkg.PkgBasePrice <= pkg.PkgAgencyCommission)
                    {
                        MessageBox.Show("Commission cannot be greater than Base price!");
                        return;
                    }
                    else
                    {
                        try
                        {
                            pkg.PackageID     = PackagesDB.AddPackage(pkg);
                            this.DialogResult = DialogResult.OK;
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, ex.GetType().ToString());
                        }
                        finally
                        {
                            this.Close();
                        }
                    }
                }
                else
                {
                    MessageBox.Show("A package of a similar name exists in database");
                }
            }
        }
        private void FrmPackages_Activated(object sender, EventArgs e) // when the form is activated (loaded or brought back to after adding) write data to list
        {
            List <Packages> packages = PackagesDB.GetPackages();
            int             i        = 0; // start count at 0

            lvPackages.Items.Clear();
            foreach (Packages package in packages)
            {
                lvPackages.Items.Add(package.PackageID.ToString());
                lvPackages.Items[i].SubItems.Add(package.PkgName.ToString());
                lvPackages.Items[i].SubItems.Add(package.PkgStartDate.ToString());
                lvPackages.Items[i].SubItems.Add(package.PkgEndDate.ToString());
                lvPackages.Items[i].SubItems.Add(package.PkgDesc.ToString());
                lvPackages.Items[i].SubItems.Add(package.PkgBasePrice.ToString("c"));
                lvPackages.Items[i].SubItems.Add(package.PkgAgencyCommission.ToString("c"));
                i += 1;
            }
        }
 private void lvPackages_SelectedIndexChanged(object sender, EventArgs e)
 {
     btnAddPackage.Visible    = true;
     btnModify.Visible        = true;
     btnDeleteProduct.Visible = false; // remove visibility for delete product button to avoid errors
     btnDeletePackage.Visible = true;  // make delete package button visible
     btnAddProd.Visible       = true;
     cBProduct.Visible        = false;
     cBSupplier.Visible       = false;
     lblProducts.Visible      = false;
     lblSupplier.Visible      = false;
     btnConfirm.Visible       = false;
     pbPic.Visible            = true;
     lblPkgName.Visible       = true;
     cBProduct.Text           = "";
     if (lvPackages.SelectedItems.Count > 0)
     {
         lblPkgName.Text = lvPackages.SelectedItems[0].SubItems[1].Text;
     }
     lvPkgDetails.Items.Clear();
     try
     {
         if (lvPackages.SelectedItems.Count > 0)
         {
             int i = 0;
             //int pkgID = lvPackages.Items.IndexOf(lvPackages.SelectedItems[i]); -- this is an old logic used
             int pkgID = Convert.ToInt32(lvPackages.Items[lvPackages.SelectedItems[0].Index].Text);
             selectedPackage = PackagesDB.GetPackageDetails(pkgID);
             List <Package_Product_Suppliers> pps_o = PackagesDB.GetProductSuppliersByPackage(pkgID);
             foreach (Package_Product_Suppliers pps in pps_o)
             {
                 lvPkgDetails.Items.Add(pps.ProdName);
                 lvPkgDetails.Items[i].SubItems.Add(pps.SupName);
                 i += 1;
             }
         }
     }
     catch (SqlException ex)
     {
         throw ex;
     }
 }