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); }
// 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); } }
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); }
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; }
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]; }
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; }