//display the selected package and it's details, setup the available products and suppliers in the combo box private void frmPackageDetail_Load(object sender, EventArgs e) { try { details = PackageDB.GetProductSuppliersByPackage(selectedPackage); dgvPackageDetail.DataSource = details; frmPackage.PackageDetailFormat(dgvPackageDetail); packages = PackageDB.GetAllPackages(); cobPackages.DataSource = packages; cobPackages.DisplayMember = "PkgName"; cobPackages.ValueMember = "PackageId"; cobPackages.SelectedValue = selectedPackage.PackageId; products = ProductDB.GetAllProducts(); cobProducts.DataSource = products; cobProducts.DisplayMember = "ProdName"; cobProducts.ValueMember = "ProductId"; int id; bool parseOK = Int32.TryParse(cobProducts.SelectedValue.ToString(), out id); Product p = ProductDB.GetProductById(id); suppliers = PackageDB.GetSuppliersByProductNotInDetails(p, selectedPackage); cobSuppliers.DataSource = suppliers; cobSuppliers.DisplayMember = "SupName"; cobSuppliers.ValueMember = "SupplierId"; cobPackages.Select(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } }
//delete the selected product_supplier from the detail list(Packages_Products_Suppliers table) private void btnRemove_Click(object sender, EventArgs e) { try { foreach (DataGridViewRow row in dgvPackageDetail.SelectedRows) { Product p = ProductDB.GetProductByName(row.Cells[3].Value.ToString()); Supplier s = SupplierDB.GetSupplierByName(row.Cells[4].Value.ToString()); int pkgId; bool pkgOK = Int32.TryParse(cobPackages.SelectedValue.ToString(), out pkgId); Package pkg = PackageDB.GetPackageById(pkgId); string message = "Are you sure you want to remove [" + p.ProdName + " : " + s.SupName + "] from package [" + pkg.PkgName + "]?"; DialogResult button = MessageBox.Show(message, "Confirm Delete", MessageBoxButtons.YesNo); if (button == DialogResult.Yes) { ProductSupplier productSupplier = ProductSupplierDB.GetProductSupplierById(p.ProductId, s.SupplierId); ProductSupplierDB.DeletePackageDetail(productSupplier, pkg); details = PackageDB.GetProductSuppliersByPackage(pkg); } } UpdateBinding(); dgvPackageDetail.ClearSelection(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } }
//display the details whenever the selection changed on the packages private void dgvPackages_SelectionChanged(object sender, EventArgs e) { Package selectedPackage = null; try { foreach (DataGridViewRow row in dgvPackages.SelectedRows) { selectedPackage = new Package(Convert.ToInt32(row.Cells[0].Value.ToString()), row.Cells[1].Value.ToString(), (DateTime?)(row.Cells[2].Value), (DateTime?)(row.Cells[3].Value), row.Cells[4].Value.ToString(), Convert.ToDecimal(row.Cells[5].Value.ToString()), (decimal?)(row.Cells[6].Value)); } if (ppss == null) { ppss = PackageDB.GetProductSuppliersByPackage(selectedPackage); UpdateBinding(); PackageDetailFormat(dgvPackageDetail); } else { ppss = PackageDB.GetProductSuppliersByPackage(selectedPackage); UpdateBinding(); } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } }
//update the display when the package combobox selection changed private void cobPackages_SelectedValueChanged(object sender, EventArgs e) { try { int id; bool parseOK = Int32.TryParse(cobPackages.SelectedValue.ToString(), out id); Package pkg = PackageDB.GetPackageById(id); details = PackageDB.GetProductSuppliersByPackage(pkg); dgvPackageDetail.DataSource = details; } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } }
//add the selected product and supplier from combox to the detail list(Packages_Products_Suppliers table) private void btnAdd_Click(object sender, EventArgs e) { try { int pId; bool pOk = Int32.TryParse(cobProducts.SelectedValue.ToString(), out pId); Product p = ProductDB.GetProductById(pId); int sId; bool sOk = Int32.TryParse(cobSuppliers.SelectedValue.ToString(), out sId); Supplier s = SupplierDB.GetSupplierById(sId); int pkgId; bool pkgOK = Int32.TryParse(cobPackages.SelectedValue.ToString(), out pkgId); Package pkg = PackageDB.GetPackageById(pkgId); PackageDB.InsertDetail(p, s, pkg); details = PackageDB.GetProductSuppliersByPackage(pkg); UpdateBinding(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } }