using System; using System.Linq; using System.Windows.Forms; using Common; //20190213 - added rewash wash type - maanie namespace PersonalLaundry { public partial class UpdateCustomerInventory : Form { public EventHandler InventoryUpdated; private int inventoryItemTypeId; private readonly OperatorLogin operatorLogin; private readonly int customerId; public UpdateCustomerInventory(OperatorLogin operatorLogin, int customerId) { this.operatorLogin = operatorLogin; this.customerId = customerId; InitializeComponent(); } private void UpdateCustomerInventory_Load(object sender, EventArgs e) { if (customerId <= 0) return; LoadCustomerInventory(); } private void LoadCustomerInventory() { try { using (var db = new DataModel()) { CategoriesBox.Enabled = TypeBox.Enabled = SizeBox.Enabled = saveButton.Enabled = false; var customer = db.Customers.FirstOrDefault(c => c.CustomerId == customerId); if (customer == null) return; CustomerName.Text = customer.Name; CustomerInventoryGrid.DataSource = db.GetCustomerInventory(customerId); } } catch (Exception ex) { MessageBox.Show(ex.Message, @"LoadCustomerInventory", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void CustomerInventoryGrid_CellEndEdit(object sender, DataGridViewCellEventArgs e) { var itemTypeId = int.Parse(CustomerInventoryGrid.Rows[e.RowIndex].Cells[InventoryItemTypeIdColumn.Name].Value.ToString()); try { if (e.RowIndex < 0) return; var costGeneral = -999; var costRepeat = -999; var costStain = -999; var costRewash = -999; //20190213 - added rewash wash type - maanie using (var db = new DataModel()) { switch (CustomerInventoryGrid.Columns[e.ColumnIndex].DataPropertyName) { case "CostGeneralWash": case "CostRepeatWash": case "CostStainWash": case "CostRewashWash": //20190213 - added rewash wash type - maanie var costGeneralColumn = CustomerInventoryGrid.Rows[e.RowIndex].Cells[CostColumn.Name]; var costRepeatColumn = CustomerInventoryGrid.Rows[e.RowIndex].Cells[RepeatColumn.Name]; var costStainColumn = CustomerInventoryGrid.Rows[e.RowIndex].Cells[StainColumn.Name]; var costRewashColumn = CustomerInventoryGrid.Rows[e.RowIndex].Cells[RewashColumn.Name]; //20190213 - added rewash wash type - maanie if (costGeneralColumn.Value != null) int.TryParse(costGeneralColumn.Value.ToString(), out costGeneral); if (costRepeatColumn.Value != null) int.TryParse(costRepeatColumn.Value.ToString(), out costRepeat); if (costStainColumn.Value != null) int.TryParse(costStainColumn.Value.ToString(), out costStain); if (costRewashColumn.Value != null) int.TryParse(costRewashColumn.Value.ToString(), out costRewash); //20190213 - added rewash wash type - maanie db.UpdateCustomerInventory(customerId, itemTypeId, costGeneral, costRepeat, costStain, costRewash, operatorLogin.OperatorLoginId); break; } } } catch (Exception ex) { MessageBox.Show(ex.Message, @"CustomerInventoryGrid_CellEndEdit", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void newButton_Click(object sender, EventArgs e) { groupBox1.Text = @"New Inventory Item"; CategoriesBox.Text = TypeBox.Text = SizeBox.Text = ""; using (var db = new DataModel()) { CategoriesBox.DataSource = db.InventoryItemTypeCategories.ToList(); CategoriesBox.ValueMember = "InventoryItemTypeCategoryId"; CategoriesBox.DisplayMember = "Category"; TypeBox.DataSource = db.InventoryItemTypes.ToList(); TypeBox.ValueMember = "InventoryItemTypeId"; TypeBox.DisplayMember = "ItemType"; SizeBox.DataSource = db.InventoryItemTypeSizes.ToList(); SizeBox.ValueMember = "InventoryItemTypeSizeId"; SizeBox.DisplayMember = "Size"; } CategoriesBox.Enabled = TypeBox.Enabled = SizeBox.Enabled = saveButton.Enabled = true; inventoryItemTypeId = 0; } private void CustomerInventoryGrid_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0 || e.ColumnIndex < 0 || e.ColumnIndex > 3) return; inventoryItemTypeId = int.Parse(CustomerInventoryGrid.Rows[e.RowIndex].Cells[InventoryItemTypeIdColumn.Name].Value.ToString()); CategoriesBox.Enabled = TypeBox.Enabled = SizeBox.Enabled = newButton.Enabled = saveButton.Enabled = false; using (var db = new DataModel()) { var inventoryItemType = db.InventoryItemTypes.FirstOrDefault(i => i.InventoryItemTypeId == inventoryItemTypeId); if (inventoryItemType == null) return; groupBox1.Text = string.Format("Edit {0}", inventoryItemType.ItemType); CategoriesBox.DataSource = db.InventoryItemTypeCategories.ToList(); CategoriesBox.ValueMember = "InventoryItemTypeCategoryId"; CategoriesBox.DisplayMember = "Category"; CategoriesBox.Text = inventoryItemType.InventoryItemTypeCategory.Category; TypeBox.DataSource = db.InventoryItemTypes.ToList(); TypeBox.ValueMember = "InventoryItemTypeId"; TypeBox.DisplayMember = "ItemType"; TypeBox.Text = inventoryItemType.ItemType; SizeBox.DataSource = db.InventoryItemTypeSizes.Distinct().ToList(); SizeBox.ValueMember = "InventoryItemTypeSizeId"; SizeBox.DisplayMember = "Size"; SizeBox.Text = inventoryItemType.InventoryItemTypeSize.Size; CategoriesBox.Enabled = TypeBox.Enabled = SizeBox.Enabled = saveButton.Enabled = true; } } private void saveButton_Click(object sender, EventArgs e) { var result = MessageBox.Show(@"Confirm changes?", "Save", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Cancel) return; if (result == DialogResult.No) { CategoriesBox.Enabled = TypeBox.Enabled = SizeBox.Enabled = false; newButton.Enabled = true; return; } using (var db = new DataModel()) { db.UpdateInventoryItemType(CategoriesBox.Text, TypeBox.Text, SizeBox.Text, inventoryItemTypeId); MessageBox.Show(@"Saved!", @"Inventory", MessageBoxButtons.OK); LoadCustomerInventory(); } } private void CategoriesBox_SelectedIndexChanged(object sender, EventArgs e) { using (var db = new DataModel()) { int inventoryItemTypeCategoryId; if (!int.TryParse(CategoriesBox.SelectedValue.ToString(), out inventoryItemTypeCategoryId)) return; TypeBox.DataSource = db.InventoryItemTypes.Where(w => w.InventoryItemTypeCategoryId == inventoryItemTypeCategoryId).Distinct().ToList(); TypeBox.ValueMember = "InventoryItemTypeId"; TypeBox.DisplayMember = "ItemType"; //TypeBox.Text = inventoryItemType.ItemType; //CategoriesBox.SelectedValue } } } }