//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 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 package and it's references private void btnDelete_Click(object sender, EventArgs e) { try { Package selectedPackage = null; 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)); string message = "Are you sure you want to delete " + selectedPackage.PkgName + "?"; DialogResult button = MessageBox.Show(message, "Confirm Delete", MessageBoxButtons.YesNo); if (button == DialogResult.Yes) { PackageDB.DeletePackage(selectedPackage); packages = PackageDB.GetAllPackages(); } } UpdateBinding(); txtPkgName.Clear(); } catch (Exception ex) { MessageBox.Show("Deleting this package will cause you to lose records in your booking history. \nThe delete action has been suspended. \nPlease contact DBA."); } }
//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()); } }
//open a new window that allows the uer to add a new package private void btnAdd_Click(object sender, EventArgs e) { frmAddPackages newForm = new frmAddPackages(); newPackage = newForm.GetNewPackages(); try { if (newPackage != null) { PackageDB.InsertPackage(newPackage); packages = PackageDB.GetAllPackages(); UpdateBinding(); //select on the last row of the list dgvPackages.ClearSelection(); int rowIndex = dgvPackages.Rows.Count - 1; dgvPackages.Rows[rowIndex].Selected = true; //scroll down as well dgvPackages.FirstDisplayedScrollingRowIndex = rowIndex; } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } txtPkgName.Clear(); }
//open a knew window that allow the user to edit the selected package private void btnEdit_Click(object sender, EventArgs e) { Package editedPackage = null; Package oldPackage = null; foreach (DataGridViewRow row in dgvPackages.SelectedRows) { editedPackage = 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)); } frmEditPackage newForm = new frmEditPackage(); oldPackage = (Package)editedPackage.Clone(); editedPackage = newForm.GetEditPackage(editedPackage); try { if (!PackageDB.UpdatePackage(oldPackage, editedPackage)) { MessageBox.Show("Another user has updated or " + "deleted that customer.", "Database Error"); } else { selectedId = editedPackage.PackageId; packages = PackageDB.GetAllPackages(); UpdateBinding(); } } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } txtPkgName.Clear(); //set the modified row to be selected dgvPackages.ClearSelection(); int rowIndex = -1; foreach (DataGridViewRow row in dgvPackages.Rows) { if (row.Cells[0].Value.ToString().Equals(selectedId.ToString())) { rowIndex = row.Index; break; } } dgvPackages.Rows[rowIndex].Selected = true; dgvPackages.FirstDisplayedScrollingRowIndex = rowIndex; }
//search and display pkg by name private void txtPkgName_TextChanged(object sender, EventArgs e) { try { packages = PackageDB.GetPackageByName(txtPkgName.Text); UpdateBinding(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } }
//reset the page to page load private void btnClear_Click(object sender, EventArgs e) { try { packages = PackageDB.GetAllPackages(); UpdateBinding(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } txtPkgName.Clear(); txtPkgName.Select(); }
//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()); } }
//update the datasource for each control, the sullier list is adjusted so that user would not insert duplicate data private void UpdateBinding() { dgvPackageDetail.DataSource = details; int id; bool parseOK = Int32.TryParse(cobProducts.SelectedValue.ToString(), out id); Product p = ProductDB.GetProductById(id); suppliers = PackageDB.GetSuppliersByProductNotInDetails(p, selectedPackage); if (suppliers.Count == 0) { cobSuppliers.Enabled = false; cobSuppliers.Text = ""; btnAdd.Enabled = false; } else { cobSuppliers.Enabled = true; cobSuppliers.DataSource = suppliers; btnAdd.Enabled = true; } }
//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()); } }
private void PackageForm_Load(object sender, EventArgs e) { //turn off the form border control this.ControlBox = false; this.MaximizeBox = false; this.MinimizeBox = false; //display all packages data in the datagridview try { packages = PackageDB.GetAllPackages(); UpdateBinding(); } catch (Exception ex) { MessageBox.Show(ex.Message, ex.GetType().ToString()); } //format the datagirdviews PackageListFormat(dgvPackages); PackageDetailFormat(dgvPackageDetail); txtPkgName.Select(); }