Esempio n. 1
0
        public void Insert(string Name,decimal? Price,int? DirID,string Code,int? CompanyID,bool? IsDeleted,bool? IsOutOfStock,DateTime? OutOfStockDate)
        {
            SysTakeawayMenu item = new SysTakeawayMenu();

            item.Name = Name;

            item.Price = Price;

            item.DirID = DirID;

            item.Code = Code;

            item.CompanyID = CompanyID;

            item.IsDeleted = IsDeleted;

            item.IsOutOfStock = IsOutOfStock;

            item.OutOfStockDate = OutOfStockDate;

            item.Save(UserName);
        }
Esempio n. 2
0
 // return -1 error,1 auto login 0 need redirect login
 private static int SaveOrderMeal(OrderMealUserData userData, List<OrderMealData> orderData, out int orderId, out string message)
 {
     orderId = -1;
     if (!CheckUserData(userData, out message))
         return -1;
     SysCompany company = SysCompany.FetchByID(userData.companyId);
     if (company == null)
     {
         message = "你选择的商家不存在.";
         return -1;
     }
     if (Formatter.ToEnum<CompanyType>(company.CompanyType.Value) != CompanyType.MealCompany)
     {
         message = "你选择的商家不是快餐店.";
         return -1;
     }
     SysCompanyItem companyItem = userData.itemId > 0 ? SysCompanyItem.FetchByID(userData.itemId) : null;
     var menuDict = MealMenuBLL.LoadCompanyMenu(company.Id).ToDictionary(dr => Convert.ToInt32(dr[SysTakeawayMenu.IdColumn.ColumnName]),
                                                                         dr =>
                                                                         {
                                                                             SysTakeawayMenu m = new SysTakeawayMenu( );
                                                                             m.Load(dr);
                                                                             return m;
                                                                         });
     int qty = 0;
     decimal orderSum = 0;
     orderData.Sort((t1, t2) =>
         {
             if (t1.sort == t2.sort)
                 return 0;
             else if (t1.sort > t2.sort)
                 return 1;
             else
                 return -1;
         });
     foreach (var pair in orderData)
     {
         if (!pair.isCompanyItem && !menuDict.ContainsKey(pair.menudId))
         {
             message = "你选择了一个已经缺货或不存在的菜单,请重新下订.";
             return -1;
         }
         if (pair.menuAmount <= 0)
         {
             message = "订餐的数量不能小于或等于零.";
             return -1;
         }
         if (!pair.isCompanyItem)
         {
             var m = menuDict[pair.menudId];
             pair.menudId = m.Id;
             pair.menuPrice = (m.Price ?? (decimal?)0).Value;
             pair.menuName = m.Name;
         }
         else if (companyItem != null)
         {
             pair.menudId = -userData.itemId;
             pair.menuPrice = (companyItem.ItemNeedPay ?? (decimal?)0).Value;
             pair.menuName = companyItem.ItemTitle;
         }
         orderSum += (pair.menuPrice.Value * pair.menuAmount);
         qty += pair.menuAmount;
     }
     orderSum = Math.Round(orderSum, 1);
     Order order = null;
     if (userData.orderId > 0)
     {
         lock (LockScopeAction(userData.orderId))
         {
             order = Order.FetchByID(userData.orderId);
             if (order == null)
             {
                 message = "你选择了一个不存在的订单.";
                 return -1;
             }
             if (Formatter.ToEnum<OrderType>(order.OrderType.Value) != OrderType.OrderMeal)
             {
                 message = "你选择了一个不存在的订单.";
                 return -1;
             }
             if (order.OrderStatus == (int)OrderStatus.Completed || order.OrderStatus == (int)OrderStatus.Canceled)
             {
                 message = "此订单不允许修改.";
                 return -1;
             }
             return SaveOrder(userData, orderData, order, company, companyItem, orderSum, qty, false, out orderId, out message);
         }
     }
     else
     {
         order = new Order( );
         order.OrderCode = OrderBLL.GetOrderCode(company);
         return SaveOrder(userData, orderData, order, company, companyItem, orderSum, qty, true, out orderId, out message);
     }
 }
Esempio n. 3
0
        protected override void On_ActionEdit(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(txtMenuName.Text.Trim()))
            {
                lblMessage.InnerHtml = "请输入菜单名称.";
                return;
            }

            int dirID = Utilities.ToInt(Request.Params[ddlDirs.UniqueID]);
            if (dirID <= 0)
            {
                lblMessage.InnerHtml = "请选择菜单的菜品系列.";
                return;
            }
            SysTakeawayDirectory dir = SysTakeawayDirectory.FetchByID(dirID);
            if (dir == null)
            {
                lblMessage.InnerHtml = "请选择菜单的菜品系列.";
                return;
            }
            _company = SysCompany.FetchByID(dir.CompanyID);
            SysTakeawayMenu menu = SysTakeawayMenu.FetchByID(MenuId);
            var price = Utilities.ToDecimal(txtPrice.Text);
            if (menu == null)
            {
                menu = new SysTakeawayMenu( );
                menu.Code = null;
            }
            else if (menu.Price.HasValue && price != menu.Price.Value)
            {
                CompanyItemBLL.UpdateCompanyItemSum(MenuId, price, menu.Price.Value);
            }
            menu.Price = price;
            menu.Name = txtMenuName.Text.Trim( );
            menu.DirID = dir.Id;
            menu.CompanyID = dir.CompanyID;
            menu.IsDeleted = false;

            menu.IsOutOfStock = rbOutOfStock.SelectedValue == "1";
            if (menu.IsOutOfStock.Value)
                menu.OutOfStockDate = DateTime.Now;
            else
                menu.OutOfStockDate = null;
            menu.Save( );
            if (string.IsNullOrEmpty(menu.Code))
            {
                menu.Code = menu.Id.ToString();
                menu.Save();
            }
            _company.MenuDate = DateTime.Now;
            _company.Save( );
            lblMessage.InnerHtml = "保存成功";
            if (MenuId == 0)
            {
                On_ActionQuery(sender, e);
                ddlDirs.ClearSelection( );
                txtCompanyTel.Value = string.Empty;
                txtPrice.Text = string.Empty;
                txtMenuName.Text = string.Empty;
                rbOutOfStock.SelectedValue = "0";
            }
            else
                On_ActionQuery(sender, e);
        }
Esempio n. 4
0
 private static bool TryGetMenuItem(System.Web.HttpContext context, out SysTakeawayMenu menu, out string message)
 {
     menu = SysTakeawayMenu.FetchByID(Utilities.ToInt(context.Request["id"]));
     if (menu == null)
     {
         message = "菜单不存在,可能参数有误.";
         return false;
     }
     if (menu.CompanyID != AppContextBase.Context.Company.Id)
     {
         message = "非法操作.";
         return false;
     }
     message = string.Empty;
     return true;
 }
Esempio n. 5
0
 public static Dictionary<CompanyMealMenuId, SysTakeawayMenu> GetMealDirMappingByCompanyId(int companyId)
 {
     if (_companyMealMenuMapping == null)
         _companyMealMenuMapping = new Dictionary<int, Dictionary<CompanyMealMenuId, SysTakeawayMenu>>( );
     if (!_companyMealMenuMapping.ContainsKey(companyId))
     {
         var dict = LoadCompanyMenu(companyId, true).ToDictionary(dr => CompanyMealMenuId.GetCompanyMealMenuId(dr[SysTakeawayDirectory.DirNameColumn.ColumnName].ToString( ), dr[SysTakeawayMenu.NameColumn.ColumnName].ToString( )),
                                                                  dr =>
                                                                  {
                                                                      SysTakeawayMenu m = new SysTakeawayMenu( );
                                                                      m.Load(dr);
                                                                      return m;
                                                                  });
         _companyMealMenuMapping.Add(companyId, dict);
         return dict;
     }
     return _companyMealMenuMapping[companyId];
 }
Esempio n. 6
0
 public static bool ImportCompanyMealMenu(DataTable dt, out string message)
 {
     bool result = false;
     message = string.Empty;
     DataColumn dcCompanyTel = null;
     DataColumn dcMenuName = null;
     DataColumn dcDirName = null;
     DataColumn dcPrice = null;
     DataColumn dcCode = null;
     if (dt.Columns.Contains("商家账号"))
         dcCompanyTel = dt.Columns["商家账号"];
     if (dt.Columns.Contains("餐点名称"))
         dcMenuName = dt.Columns["餐点名称"];
     if (dt.Columns.Contains("菜品系列"))
         dcDirName = dt.Columns["菜品系列"];
     if (dt.Columns.Contains("价格"))
         dcPrice = dt.Columns["价格"];
     if (dt.Columns.Contains("菜单编号"))
         dcCode = dt.Columns["菜单编号"];
     if (dcCompanyTel == null || dcMenuName == null)
     {
         message = "导入文件必须包含有商家账号和餐点名称二列信息.";
         goto lbl_return;
     }
     Dictionary<string, int> companyDict = new Dictionary<string, int>( );
     decimal dPrice; int dirId, companyId; string companyTel, menuName, dirName, menuCode;
     SysTakeawayMenu menu;
     int nCounter = 0;
     foreach (DataRow row in dt.Rows)
     {
         dirId = 0;
         dPrice = 0;
         menuCode = null;
         dirName = null;
         if (string.IsNullOrEmpty(companyTel = Utilities.ToDecimal(row[dcCompanyTel]).ToString("0")))
             continue;
         if (companyDict.ContainsKey(companyTel))
             companyId = companyDict[companyTel];
         else
         {
             companyId = CompanyBLL.GetCompanyIdByTel(companyTel, CompanyType.MealCompany);
             if (companyId == 0)
                 continue;
             companyDict.Add(companyTel, companyId);
         }
         if (string.IsNullOrEmpty(menuName = Utilities.ToString(row[dcMenuName]).Trim( )))
             continue;
         if (dcDirName != null && !string.IsNullOrEmpty(dirName = Utilities.ToString(row[dcDirName]).Trim( )))
             dirId = GetMenuDirByName(companyId, dirName);
         if (dcCode != null)
             menuCode = Utilities.ToString(row[dcCode]).Trim( );
         if (dcPrice != null)
             dPrice = Utilities.ToDecimal(row[dcPrice]);
         //var dict = GetMealDirMappingByCompanyId(cmp.Id);
         //cmpMenuId = CompanyMealMenuId.GetCompanyMealMenuId(dirName, menuName);
         //if (dict.ContainsKey(cmpMenuId))
         //    menu = dict[cmpMenuId];
         //else
         menu = new SysTakeawayMenu( );
         menu.Name = menuName;
         menu.CompanyID = companyId;
         menu.DirID = dirId;
         menu.Price = dPrice;
         menu.IsDeleted = false;
         menu.Code = menuCode;
         menu.IsOutOfStock = false;
         menu.OutOfStockDate = null;
         menu.Save( );
         if (string.IsNullOrEmpty(menu.Code))
         {
             menu.Code = menu.Id.ToString( );
             menu.Save( );
         }
         //dict[cmpMenuId] = menu;
         nCounter++;
     }
     if (companyDict.Count > 0)
         UpdateCompanyMenuDate(companyDict.Values, DateTime.Now);
     message = "成功读取到" + nCounter.ToString( ) + "条菜单信息";
     result = true;
     lbl_return:
     return result;
 }