예제 #1
0
 public BarMenuViewModel(IFairiesMemberManageUow uow)
     : base(uow, new List <string>())
 {
     this.SetTimer();
     this.SectionType = (int)DXInfo.Models.SectionType.Bar;
     dmf = new DXInfo.Restaurant.DeskManageFacade(uow, Dept.DeptId, User.UserId);
 }
예제 #2
0
        private void OpenExecute(object sender)
        {
            //this.SelectedResult
            Button btn     = (Button)sender;
            Guid   orderId = Guid.Parse(btn.Tag.ToString());

            try
            {
                dynamic d        = this.SelectedResult;
                Guid    deskId   = d.DeskId;
                int     quantity = d.Quantity;

                DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade(Uow, Dept.DeptId, User.UserId);
                dmf.dtOperDate = DateTime.Now;
                DXInfo.Models.OrderDishes orderDish = new OrderDishes();
                DXInfo.Models.OrderDeskes orderDesk = new OrderDeskes();
                dmf.OpenBook(orderId, deskId, quantity, false,
                             ref orderDish, ref orderDesk);
                MessageBox.Show("预订开台成功");
                query();
            }
            catch (Exception ex)
            {
                Helper.ShowErrorMsg(ex.Message);
                Helper.HandelException(ex);
            }
        }
예제 #3
0
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            Button    btn = sender as Button;
            TextBlock txt = btn.Content as TextBlock;

            if (txt.Text.Equals("取消缺菜"))
            {
                if (GridMenuComplete.SelectedItem != null)
                {
                    MenuInfo mi = GridMenuComplete.SelectedItem as MenuInfo;
                    DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade();
                    dmf.CancelMissMenu(uow, mi.OrderMenuId, App.MyIdentity.oper.UserId);
                    MessageBox.Show("(" + mi.InvName + ")已取消缺菜");
                    UpdateOrderMenuData();
                }
            }
        }
예제 #4
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //9、点击出菜,打印机打印一条小票,显示桌号、备注信息、名称、份数、开台服务员名字。
            if (GridMenuComplete.SelectedItem != null)
            {
                MenuInfo mi = GridMenuComplete.SelectedItem as MenuInfo;
                if (mi.SelectedDesk != null)
                {
                    DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade();
                    dmf.CancelOutMenu(uow, mi.OrderMenuId, App.MyIdentity.oper.UserId, mi.SelectedDesk.DeskId);

                    List <SelInv> confirmmenu = new List <SelInv>();
                    SelInv        si          = new SelInv();
                    var           inv         = (from d in uow.Inventory.GetAll() where d.Id == mi.InventoryId select d).FirstOrDefault();
                    si.Category = inv.Category;
                    si.Amount   = mi.Price;
                    si.Quantity = 1;
                    si.Name     = mi.InvName;
                    si.Comment  = mi.Comment;
                    confirmmenu.Add(si);

                    var ctx = new
                    {
                        DeskNo     = mi.SelectedDesk.DeskCode + "(取消出菜)",
                        Sum        = mi.Price,
                        Count      = 1,
                        lSelInv    = confirmmenu,
                        CreateDate = DateTime.Now,
                        DeptName   = App.MyIdentity.dept.DeptName,
                    };
                    System.Printing.LocalPrintServer lp = new System.Printing.LocalPrintServer();
                    System.Printing.PrintQueue       pq = new System.Printing.PrintQueue(lp, inv.Printer);
                    DeskConfirmWindow dcw = new DeskConfirmWindow(ctx, pq);
                    if (dcw.ShowDialog().GetValueOrDefault())
                    {
                    }

                    MessageBox.Show(mi.SelectedDesk.DeskCode + "(" + mi.InvName + ")" + "取消出菜成功");
                    UpdateOrderMenuData();
                }
                else
                {
                    MessageBox.Show("请选中桌台号");
                }
            }
        }
예제 #5
0
        private void CancelBookExecute(object sender)
        {
            Button btn         = (Button)sender;
            Guid   orderBookId = Guid.Parse(btn.Tag.ToString());

            try
            {
                DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade(Uow, Dept.DeptId, User.UserId);
                dmf.dtOperDate = DateTime.Now;
                dmf.CancelBook(orderBookId);
                MessageBox.Show("取消预定成功");
                query();
            }
            catch (Exception ex)
            {
                Helper.ShowErrorMsg(ex.Message);
                Helper.HandelException(ex);
            }
        }
예제 #6
0
        public OrderInfo OpenBookDesk(string userName, string passwd, int quantity,
                                      OrderBookDeskInfo orderBookDesk)
        {
            if (quantity == 0)
            {
                throw new WebFaultException <string>("请输入人数", HttpStatusCode.MethodNotAllowed);
            }
            if (!LogOn(userName, passwd))
            {
                return(null);
            }

            DXInfo.Models.aspnet_Users user = uow.aspnet_Users.GetAll().Where(w => w.UserName == userName).FirstOrDefault();
            if (user == null)
            {
                throw new WebFaultException <string>("无“" + userName + "”操作员信息", HttpStatusCode.MethodNotAllowed);
            }
            Guid userId = user.UserId;

            DXInfo.Models.aspnet_CustomProfile userProfile = uow.aspnet_CustomProfile.GetById(g => g.UserId == userId);
            if (userProfile == null)
            {
                throw new WebFaultException <string>("无“" + userName + "”操作员信息", HttpStatusCode.MethodNotAllowed);
            }
            //判断桌台是否可用
            DXInfo.Models.Desks curdesk = uow.Desks.GetAll().Where(w => w.Id == orderBookDesk.DeskId &&
                                                                   w.Status == (int)DXInfo.Models.DeskStatus.InUse).FirstOrDefault();
            if (curdesk == null)
            {
                throw new WebFaultException <string>("桌台不可用", HttpStatusCode.MethodNotAllowed);
            }
            if (localDeptId == Guid.Empty)
            {
                throw new WebFaultException <string>("未获得本地部门信息", HttpStatusCode.MethodNotAllowed);
            }

            DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade(uow, localDeptId, userId);
            DateTime dtOperDate = DateTime.Now;

            dmf.dtOperDate = dtOperDate;
            DXInfo.Models.OrderDishes orderDish = new Models.OrderDishes();
            DXInfo.Models.OrderDeskes orderDesk = new Models.OrderDeskes();
            OrderInfo oi = new OrderInfo();

            try
            {
                dmf.OpenBook(orderBookDesk.OrderBookId, orderBookDesk.DeskId, quantity, true, ref orderDish, ref orderDesk);
                oi.OrderDesk.OrderDishId = orderDish.Id;
                oi.OrderDesk.OrderDeskId = orderDesk.Id;
                oi.OrderDesk.DeskNo      = orderBookDesk.DeskNo;
                oi.OrderDesk.DeskId      = orderBookDesk.DeskId;
                oi.OrderDesk.UserId      = userId;
                oi.OrderDesk.UserName    = userName;
                oi.OrderDesk.FullName    = userProfile.FullName;
                List <DXInfo.Models.MenuStatus> lLackMenu = (from d in uow.MenuStatus.GetAll()
                                                             where d.Dept == localDeptId &&
                                                             d.Status == (int)DXInfo.Models.OrderMenuStatus.Lack
                                                             select d).ToList();
                oi.lLackMenu = lLackMenu;
            }
            catch (Exception ex)
            {
                throw new WebFaultException <string>(ex.Message, HttpStatusCode.MethodNotAllowed);
            }
            return(oi);
        }
예제 #7
0
        private void btnConfirm_Click(object sender, RoutedEventArgs e)
        {
            #region 菜品入库
            Hashtable htAdd = new Hashtable();
            Hashtable htSub = new Hashtable();
            if (GridSelected.ItemsSource == null)
            {
                ocSelDesks = new ObservableCollection <DXInfo.Models.OrderMenuEx>();
            }
            else
            {
                ocSelDesks = GridSelected.ItemsSource as ObservableCollection <DXInfo.Models.OrderMenuEx>;
            }
            if (desk != null && order != null && ocSelDesks.Count > 0)
            {
                using (TransactionScope transaction = new TransactionScope())
                {
                    int addmenu = 0;
                    foreach (DXInfo.Models.OrderMenuEx selDesk in ocSelDesks)
                    {
                        if (selDesk.Id != Guid.Empty)
                        {
                            DXInfo.Models.OrderMenus orderMenu = uow.OrderMenus.GetById(selDesk.Id);//.Where(w => w.Id == selDesk.Id).FirstOrDefault();
                            if (orderMenu != null)
                            {
                                if (orderMenu.Status == 2 && orderMenu.Quantity != selDesk.Quantity)
                                {
                                    DXInfo.Models.Inventory inv = uow.Inventory.GetById(orderMenu.InventoryId);//.Where(w => w.Id == orderMenu.InventoryId).FirstOrDefault();
                                    if (!string.IsNullOrEmpty(inv.Printer))
                                    {
                                        if (orderMenu.Quantity > selDesk.Quantity)
                                        {
                                            if (htSub.Contains(inv.Printer))
                                            {
                                                List <InventoryEx> confirmmenu = htSub[inv.Printer] as List <InventoryEx>;
                                                InventoryEx        si          = new InventoryEx();
                                                si.Category = inv.Category;
                                                //si.Quantity = orderMenu.Quantity - selDesk.Quantity;
                                                si.SalePrice = inv.SalePrice;
                                                //si.Amount = inv.SalePrice * (orderMenu.Quantity - selDesk.Quantity);
                                                si.Quantity = orderMenu.Quantity - selDesk.Quantity;
                                                si.Name     = inv.Name;
                                                si.Comment  = orderMenu.Comment;
                                                confirmmenu.Add(si);
                                                htSub[inv.Printer] = confirmmenu;
                                            }
                                            else
                                            {
                                                List <InventoryEx> confirmmenu = new List <InventoryEx>();
                                                InventoryEx        si          = new InventoryEx();
                                                si.Category = inv.Category;
                                                //si.Amount = inv.SalePrice * (orderMenu.Quantity - selDesk.Quantity);
                                                //si.Quantity = orderMenu.Quantity - selDesk.Quantity;
                                                si.SalePrice = inv.SalePrice;
                                                si.Quantity  = orderMenu.Quantity - selDesk.Quantity;
                                                si.Name      = inv.Name;
                                                si.Comment   = orderMenu.Comment;
                                                confirmmenu.Add(si);
                                                htSub.Add(inv.Printer, confirmmenu);
                                            }
                                        }
                                        else
                                        {
                                            if (htAdd.Contains(inv.Printer))
                                            {
                                                List <InventoryEx> confirmmenu = htAdd[inv.Printer] as List <InventoryEx>;
                                                InventoryEx        si          = new InventoryEx();
                                                si.Category = inv.Category;
                                                //si.Amount = inv.SalePrice*(selDesk.Quantity-orderMenu.Quantity);
                                                //si.Quantity = orderMenu.Quantity - selDesk.Quantity;
                                                si.SalePrice = inv.SalePrice;
                                                si.Quantity  = selDesk.Quantity - orderMenu.Quantity;
                                                si.Name      = inv.Name;
                                                si.Comment   = orderMenu.Comment;
                                                confirmmenu.Add(si);
                                                htAdd[inv.Printer] = confirmmenu;
                                            }
                                            else
                                            {
                                                List <InventoryEx> confirmmenu = new List <InventoryEx>();
                                                InventoryEx        si          = new InventoryEx();
                                                si.Category = inv.Category;
                                                //si.Amount = inv.SalePrice * (selDesk.Quantity - orderMenu.Quantity);
                                                si.SalePrice = inv.SalePrice;
                                                si.Quantity  = selDesk.Quantity - orderMenu.Quantity;
                                                si.Name      = inv.Name;
                                                si.Comment   = orderMenu.Comment;
                                                confirmmenu.Add(si);
                                                htAdd.Add(inv.Printer, confirmmenu);
                                            }
                                        }
                                    }
                                }
                                orderMenu.Quantity = selDesk.Quantity;
                                orderMenu.Amount   = selDesk.Quantity * orderMenu.Price;
                                orderMenu.Comment  = selDesk.Comment;

                                DXInfo.Models.OrderMenusHis menuHis = new DXInfo.Models.OrderMenusHis();
                                menuHis.LinkId      = orderMenu.Id;
                                menuHis.OrderId     = orderMenu.OrderId;
                                menuHis.InventoryId = orderMenu.InventoryId;
                                menuHis.Price       = orderMenu.Price;
                                menuHis.Quantity    = orderMenu.Quantity;
                                menuHis.Amount      = orderMenu.Amount;
                                menuHis.UserId      = App.MyIdentity.oper.UserId;
                                menuHis.CreateDate  = DateTime.Now;
                                menuHis.Status      = orderMenu.Status;
                                menuHis.Comment     = orderMenu.Comment;
                                uow.OrderMenusHis.Add(menuHis);
                            }
                        }
                        else
                        {
                            DXInfo.Models.OrderMenus orderMenu = new DXInfo.Models.OrderMenus();
                            orderMenu.OrderId     = order.Id;
                            orderMenu.InventoryId = selDesk.InventoryId;
                            orderMenu.Price       = selDesk.Price;
                            orderMenu.Quantity    = selDesk.Quantity;
                            orderMenu.Amount      = selDesk.Amount;
                            orderMenu.Comment     = selDesk.Comment;
                            orderMenu.CreateDate  = DateTime.Now;
                            orderMenu.UserId      = App.MyIdentity.user.UserId;
                            uow.OrderMenus.Add(orderMenu);

                            uow.Commit();

                            DXInfo.Models.OrderMenusHis menuHis = new DXInfo.Models.OrderMenusHis();
                            menuHis.LinkId      = orderMenu.Id;
                            menuHis.OrderId     = orderMenu.OrderId;
                            menuHis.InventoryId = orderMenu.InventoryId;
                            menuHis.Price       = orderMenu.Price;
                            menuHis.Quantity    = orderMenu.Quantity;
                            menuHis.Amount      = orderMenu.Amount;
                            menuHis.UserId      = App.MyIdentity.oper.UserId;
                            menuHis.CreateDate  = DateTime.Now;
                            menuHis.Status      = orderMenu.Status;
                            menuHis.Comment     = orderMenu.Comment;
                            uow.OrderMenusHis.Add(menuHis);
                            addmenu++;
                        }
                    }
                    if (addmenu > 0)
                    {
                        DXInfo.Models.OrderDishes odish = uow.OrderDishes.GetById(order.Id);//.Where(w => w.Id == order.Id).FirstOrDefault();
                        odish.Status = 0;
                    }
                    uow.Commit();
                    transaction.Complete();
                }
            }
            #endregion
            string deskCodes = "";
            DXInfo.Restaurant.DeskManageFacade dmf = new DXInfo.Restaurant.DeskManageFacade(uow, Guid.Empty, Guid.Empty);
            deskCodes = dmf.GetOrderDeskCodes(uow, order.Id);

            if (htAdd.Count > 0)
            {
                foreach (DictionaryEntry de in htAdd)
                {
                    List <InventoryEx> confirmmenu = de.Value as List <InventoryEx>;
                    decimal            dsum        = confirmmenu.Sum(s => s.Amount);
                    decimal            dcount      = confirmmenu.Sum(s => s.Quantity);
                    if (confirmmenu.Count > 0)
                    {
                        var ctx = new
                        {
                            DeskNo     = deskCodes + "(加单)",
                            Sum        = dsum,
                            Count      = dcount,
                            lSelInv    = confirmmenu,
                            CreateDate = DateTime.Now,
                            DeptName   = App.MyIdentity.dept.DeptName,
                        };
                        System.Printing.LocalPrintServer lp = new System.Printing.LocalPrintServer();
                        System.Printing.PrintQueue       pq = new System.Printing.PrintQueue(lp, de.Key.ToString());
                        DeskConfirmWindow dcw = new DeskConfirmWindow(ctx, pq);
                        if (dcw.ShowDialog().GetValueOrDefault())
                        {
                        }
                    }
                }
            }
            if (htSub.Count > 0)
            {
                foreach (DictionaryEntry de in htSub)
                {
                    List <InventoryEx> confirmmenu = de.Value as List <InventoryEx>;
                    decimal            dsum        = confirmmenu.Sum(s => s.Amount);
                    decimal            dcount      = confirmmenu.Sum(s => s.Quantity);
                    if (confirmmenu.Count > 0)
                    {
                        var ctx = new
                        {
                            DeskNo     = deskCodes + "(减单)",
                            Sum        = dsum,
                            Count      = dcount,
                            lSelInv    = confirmmenu,
                            CreateDate = DateTime.Now,
                            DeptName   = App.MyIdentity.dept.DeptName,
                        };
                        System.Printing.LocalPrintServer lp = new System.Printing.LocalPrintServer();
                        System.Printing.PrintQueue       pq = new System.Printing.PrintQueue(lp, de.Key.ToString());
                        DeskConfirmWindow dcw = new DeskConfirmWindow(ctx, pq);
                        if (dcw.ShowDialog().GetValueOrDefault())
                        {
                        }
                    }
                }
            }
            this.DialogResult = true;
        }
예제 #8
0
 public LackMenuListViewModel(IFairiesMemberManageUow uow)
     : base(uow)
 {
     dmf = new DXInfo.Restaurant.DeskManageFacade(Uow, this.Dept.DeptId, this.Oper.UserId);
     this.SelectedOrderMenuStatus = this.lOrderMenuStatus.FirstOrDefault(f => f.Id == (int)DXInfo.Models.OrderMenuStatus.Lack);
 }