/// <summary> /// Updates this form according to the current CustomerServiceState. /// </summary> public void update() { CustomerServiceState state = csm.GetCurrentState(); switch (state) { case CustomerServiceState.Initial: MessageBox.Show("Return has begun."); break; case CustomerServiceState.InvalidID: MessageBox.Show(csm.Error); break; case CustomerServiceState.SuccessfulID: updateItems(); break; case CustomerServiceState.SuccessfulReturn: Receipt r = new Receipt(csm.GetCurrentSale()); r.Show(); updateItems(); break; default: break; } }
/// <summary> /// Find the sale corresponding with the saleID. /// </summary> /// <param name="saleID">The saleID corresponding with the Sale we want to work on</param> public void GetSale(int saleID) { currentSale = sd.GetSale(saleID); if (currentSale != null) { state = CustomerServiceState.SuccessfulID; } else { this.Error = "Invalid Sale ID."; state = CustomerServiceState.InvalidID; } }
/// <summary> /// Used to return items /// </summary> public void ReturnItem() { CustomerServiceState state = _csm.GetCurrentState(); string[] returnItem = null; bool valid = false; int ID = 0; while (!valid) { Console.Write("Enter the Sales ID: "); valid = int.TryParse(Console.ReadLine(), out ID); } Sale currentSale; List <Item> items = null; while (state != CustomerServiceState.SuccessfulReturn) { switch (state) { case CustomerServiceState.Initial: _gsHan(ID); state = _csm.GetCurrentState(); break; case CustomerServiceState.InvalidID: Console.WriteLine("Invalid ID"); Console.Write("\nEnter the Sales ID: "); ID = Convert.ToInt32(Console.ReadLine()); state = _csm.GetCurrentState(); break; case CustomerServiceState.SuccessfulID: currentSale = _csm.GetCurrentSale(); items = currentSale.GetItems(); Console.Write("\nName\tQuantity\tPrice"); foreach (Item i in items) { Console.Write("\n{0}\t{1}\t\t{2}", i.Name, i.Quantity, i.Price.ToString("C")); } Console.Write("\nEnter the item and quantity to return seperated by a comma(,): "); returnItem = Console.ReadLine().Split(','); foreach (Item i in items) { if (i.Name.Equals(returnItem[0])) { int quantity = 0; int.TryParse(returnItem[1], out quantity); _riHan(returnItem[0], quantity); break; } } state = _csm.GetCurrentState(); break; default: break; } } Console.Write("\nName\tQuantity\tPrice"); foreach (Item i in items) { Console.Write("\n{0}\t{1}\t\t{2}", i.Name, i.Quantity, i.Price.ToString("C")); } Console.WriteLine("\nReturn successful.\n"); }
/// <summary> /// Returns an item from a sale. /// </summary> /// <param name="item">The item to be returned from the sale.</param> /// <param name="qty">The amount of the item to be returned.</param> public void ReturnItem(string item, int qty) { currentSale.ReturnItem(item, qty); state = CustomerServiceState.SuccessfulReturn; }
/// <summary> /// The constructor for the CustomerServiceModel. /// </summary> /// <param name="sd">The current working SalesDatabase.</param> public CustomerServiceModel(SalesDatabase sd) { this.sd = sd; state = CustomerServiceState.Initial; }