Beispiel #1
0
        private void AddTransferOrder(Order order)
        {
            order.FilterOrders(CurrentSettings.GroupType, CurrentSettings.OrderInfoDisplay);
            List <Order> sourceOrders = TotalOrders.Where(s => s.TableTabName == order.SourceTableName).ToList();

            order.DisplayAttributes.SourceTabTableText = order.SourceTableName;
            var destinationOrders = TotalOrders.FirstOrDefault(s => s.TableTabName == order.TableTabName);

            if (destinationOrders != null)
            {
                ProcessTransferWhenDestinationExist(sourceOrders, order, destinationOrders);
                destinationOrders.DisplayAttributes.SourceTabTableText = order.DisplayAttributes.SourceTabTableText;
            }
            else
            {
                order.OrderState = OrderState.Complete;
                DbOrder.AddOrder(order, CurrenTerminal.TerminalId, false);
                ProcessTransferWhenDestinationNotExist(sourceOrders, order);
                TotalOrders.Add(order);
                AnalyticalData.TotalOrdersCount++;
                AnalyticalData.CurrentOrdersCount++;
            }

            if (CurrentSettings.ConfirmOnTransfer)
            {
                ShowMessageBox("Order Transferred", order.SourceTableName + " is transferred to " + order.TableTabName);
            }
            TotalOrders.RemoveAll(s => s.Items.Count == 0);
            PublishRedrawEvent();
        }
Beispiel #2
0
 private void AddCreditOrder(Order order)
 {
     TotalOrders.Add(order);
     if (CurrentSettings.ConfirmOnRefund)
     {
         ShowMessageBox("Refund Order", "A Refund Order has come in.");
     }
     PublishAddOrder(order);
 }
Beispiel #3
0
        private void AddRunnerOrder(Order inOrder)
        {
            var order = TotalOrders.FirstOrDefault(s => s.OrderKey == inOrder.OrderKey);

            if (order != null)
            {
                foreach (var item in inOrder.Items)
                {
                    if (order.Items.FirstOrDefault(s => s.OrderItemKey == item.OrderItemKey) == null)
                    {
                        var servigCourseGroup =
                            order.ServingCourseGroups.FirstOrDefault(
                                s => s.OrderGroupKey == item.SCourseGroup.OrderGroupKey);
                        if (servigCourseGroup != null)
                        {
                            item.SCourseGroup = servigCourseGroup;
                        }
                        else
                        {
                            item.SCourseGroup.Order = order;
                            order.ServingCourseGroups.Add(item.SCourseGroup);
                        }

                        var courseGroup =
                            order.CourseGroups.FirstOrDefault(
                                s => s.OrderGroupKey == item.CourseGroup.OrderGroupKey);
                        if (courseGroup != null)
                        {
                            item.CourseGroup = courseGroup;
                        }
                        else
                        {
                            item.CourseGroup.Order = order;
                            order.CourseGroups.Add(item.CourseGroup);
                        }

                        order.Items.Add(item);
                        AnalyticalData.CurrentItems++;
                    }
                }
            }
            else
            {
                AnalyticalData.TotalOrdersCount++;
                AnalyticalData.CurrentOrdersCount++;
                inOrder.ServingCourseGroups.ToList().ForEach(s => AnalyticalData.CurrentItems += s.Items.Count);
                TotalOrders.Add(inOrder);
            }
            PublishRedrawEvent();
        }
Beispiel #4
0
 public void LoadAllOrders()
 {
     try
     {
         var orders = DatabaseOrderBuilder.Instance.GetAllOrders(CurrenTerminal.TerminalId);
         foreach (var order in orders)
         {
             TotalOrders.Add(order);
         }
     }
     catch (Exception ex)
     {
         ChefmateLogger.Instance.LogError("ChefmateController.LoadAllOrders", ex.Message);
         throw ex;
     }
 }
Beispiel #5
0
 public void AddRecallOrder(Order inOrder)
 {
     lock (_syncRoot)
     {
         var order = DbOrder.GetOrder(inOrder.OrderKey, 0, true);
         AnalyticalData.CurrentOrdersCount++;
         AnalyticalData.CurrentItems += order.Items.Count;
         TimeSpan recalledOrderMakeTime = order.BumpTime - order.ArrivalTime;
         AnalyticalData.TotalMakeTime = new TimeSpan(AnalyticalData.TotalMakeTime.Ticks - recalledOrderMakeTime.Ticks);
         foreach (var item in order.Items)
         {
             DbOrderItem.UpdateOrderItemTerminalKey(item.OrderItemKey, CurrenTerminal.TerminalId);
         }
         TotalOrders.Add(order);
         PublishAddOrder(order);
     }
 }
Beispiel #6
0
 private void AddCompleteOrder(Order order)
 {
     if (order.OrderKey == 0)
     {
         DbOrder.AddOrder(order, CurrenTerminal.TerminalId);
     }
     if (OutputTime.Immediately == CurrentSettings.OutputTime)
     {
         OutputController.Instance.OutputOrder(order);
     }
     else
     {
         if (order.OrderState == OrderState.Complete || order.OrderState == OrderState.Runner)
         {
             AnalyticalData.TotalOrdersCount++;
             AnalyticalData.CurrentOrdersCount++;
             AnalyticalData.CurrentItems += order.Items.Count;
         }
         TotalOrders.Add(order);
     }
 }