using System; using System.Windows.Forms; using Tanshu.Accounts.Repository; using Tanshu.Accounts.Entities; using System.Linq; namespace Tanshu.Accounts.PointOfSale { public partial class ProductGroupForm : Form { private int? _productGroupID; public ProductGroupForm(int? productGroupID) { _productGroupID = productGroupID; InitializeComponent(); } private void ProductGroupForm_Load(object sender, EventArgs e) { if (_productGroupID.HasValue) { ProductGroup productGroup; using (var bi = new ProductGroupBI()) productGroup = bi.Get(x => x.ProductGroupID == _productGroupID.Value); txtProductGroupID.Text = _productGroupID.Value.ToString(); txtName.Text = productGroup.Name; txtDiscountLimit.Text = productGroup.DiscountLimit.ToString(); chkModifierCompulsory.Checked = productGroup.IsModifierCompulsory; txtGroupType.Text = productGroup.GroupType; chkDiscontinued.Checked = productGroup.Discontinued; txtSortOrder.Text = productGroup.SortOrder.ToString(); } else { txtProductGroupID.Text = "(Auto)"; txtName.Focus(); } } private void btnCancel_Click(object sender, EventArgs e) { this.Close(); } private void btnOk_Click(object sender, EventArgs e) { var productGroup = IsFormValid(); if (productGroup != null) { using (var bi = new ProductGroupBI()) if (_productGroupID.HasValue) bi.Update(productGroup); else bi.Insert(productGroup); MessageBox.Show("Update / Save Successful"); this.Close(); } else MessageBox.Show("The form is not valid"); } private ProductGroup IsFormValid() { var productGroup = new ProductGroup(); if (_productGroupID.HasValue) productGroup.ProductGroupID = _productGroupID.Value; if (string.IsNullOrEmpty(txtName.Text.Trim())) return null; productGroup.Name = txtName.Text.Trim(); decimal discount; if (!decimal.TryParse(txtDiscountLimit.Text, out discount)) return null; if (discount < 0 || discount > 1) return null; productGroup.DiscountLimit = discount; int sortOrder; if (!int.TryParse(txtSortOrder.Text, out sortOrder)) return null; productGroup.SortOrder = sortOrder; productGroup.IsModifierCompulsory = chkModifierCompulsory.Checked; productGroup.Discontinued = chkDiscontinued.Checked; if (string.IsNullOrEmpty(txtGroupType.Text.Trim())) return null; productGroup.GroupType = txtGroupType.Text.Trim(); return productGroup; } } }