/// <summary>
 /// 新增桌类,包括服务费设置、低消设置
 /// </summary>
 /// <param name="type"></param>
 /// <param name="serverFeeDetail"></param>
 /// <param name="lowConsumerDetail"></param>
 /// <returns></returns>
 public int SaveTableTypeAll(TableType type, TableTypeDetail serverFeeDetail, TableTypeDetail lowConsumerDetail)
 {
     try
     {
         int typeId = SaveTableType(type);
         serverFeeDetail.TableTypeId = typeId;
         lowConsumerDetail.TableTypeId = typeId;
         SaveTableTypeDetail(serverFeeDetail);
         SaveTableTypeDetail(lowConsumerDetail);
         return typeId;
     }
     catch (Exception e)
     {
         throw new ServiceException(e.Message);
     }
 }
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="detailId"></param>
        /// <returns></returns>
        public bool DeleteTableTypeDetail(int detailId)
        {
            try
            {
                using (ChooseDishesEntities entities = new ChooseDishesEntities())
                {
                    TableTypeDetail detail = new TableTypeDetail();
                    detail.TableTypeDetailId = detailId;
                    detail.Deleted = 1;
                    DbEntityEntry<IShow.ChooseDishes.Data.TableTypeDetail> entry = entities.Entry<IShow.ChooseDishes.Data.TableTypeDetail>(detail);
                    entry.State = System.Data.Entity.EntityState.Unchanged;
                    entry.Property("Deleted").IsModified = true;

                    entities.Configuration.ValidateOnSaveEnabled = false;
                    int result = entities.SaveChanges();
                    entities.Configuration.ValidateOnSaveEnabled = false;
                    if (result == 1)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// 修改服务费低消设置
        /// </summary>
        /// <param name="detail">服务费设置详细</param>
        /// <param name="serverFeeMode">服务费模式</param>
        /// <returns>成功则返回true,失败返回false</returns>
        public bool UpdateTableTypeDetail(TableTypeDetail detail)
        {
            try
            {
                using (ChooseDishesEntities entities = new ChooseDishesEntities())
                {
                    detail.UpdateBy = SubjectUtils.GetAuthenticationId();
                    detail.UpdateDatetime = DateTime.Now;
                    DbEntityEntry<IShow.ChooseDishes.Data.TableTypeDetail> entry = entities.Entry<IShow.ChooseDishes.Data.TableTypeDetail>(detail);
                    entry.State = System.Data.Entity.EntityState.Unchanged;
                    entry.Property("StartMoney").IsModified = true;
                    entry.Property("StartGetMoneyTime").IsModified = true;
                    entry.Property("StartUnit").IsModified = true;
                    entry.Property("StartDateTime").IsModified = true;
                    entry.Property("EndDateTime").IsModified = true;
                    entry.Property("OutMoney").IsModified = true;
                    entry.Property("OutTime").IsModified = true;
                    entry.Property("OutTimeFree").IsModified = true;
                    entry.Property("ServerfreeNax").IsModified = true;
                    entry.Property("ServerfreeAccountType").IsModified = true;
                    entry.Property("ServerfreeNum").IsModified = true;
                    entry.Property("Rate").IsModified = true;
                    entry.Property("ConsumerMode").IsModified = true;
                    entry.Property("ConsumerMoney").IsModified = true;
                    entry.Property("UpdateDatetime").IsModified = true;
                    entry.Property("UpdateBy").IsModified = true;

                    //entry.Property("TableTypeDetailId").IsModified = false;

                    entities.Configuration.ValidateOnSaveEnabled = false;
                    int result = entities.SaveChanges();
                    entities.Configuration.ValidateOnSaveEnabled = false;
                    if (result == 1)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
 /// <summary>
 /// 新增服务费时间单位设置
 /// </summary>
 /// <param name="detail"></param>
 /// <returns></returns>
 public bool SaveTableTypeDetail(TableTypeDetail detail)
 {
     try
     {
         using (ChooseDishesEntities entities = new ChooseDishesEntities())
         {
             detail.Deleted = 0;
             detail.Status = 0;
             detail.CreateDatetime = DateTime.Now;
             detail.UpdateDatetime = DateTime.Now;
             entities.TableTypeDetail.Add(detail);
             int result = entities.SaveChanges();
             if (result == 1)
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }
     }
     catch (Exception e)
     {
         throw e;
     }
 }
 /// <summary>
 /// 根据ID查询餐桌类别详细设置
 /// </summary>
 /// <param name="tableTypeDetailId"></param>
 /// <returns></returns>
 public TableTypeDetail LoadTableTypeDetailById(int tableTypeDetailId)
 {
     TableTypeDetail type;
     using (ChooseDishesEntities entities = new ChooseDishesEntities())
     {
         type = (TableTypeDetail)entities.TableTypeDetail.Where(
             info => info.Deleted == 0 && info.TableTypeDetailId == tableTypeDetailId
         );
         if (type == null)
         {
             type = new TableTypeDetail();
         }
         return type;
     };
 }
 /// <summary>
 /// 修改餐桌类型,包括服务费设置、低消设置
 /// </summary>
 /// <param name="type"></param>
 /// <param name="serverFeeDetail"></param>
 /// <param name="lowConsumerDetail"></param>
 public void UpdateTableTypeAll(TableType type, TableTypeDetail serverFeeDetail, TableTypeDetail lowConsumerDetail)
 {
     try
     {
         UpdateTableType(type);
         UpdateTableTypeDetail(serverFeeDetail);
         UpdateTableTypeDetail(lowConsumerDetail);
     }
     catch (Exception e)
     {
         throw new ServiceException("修改失败!");
     }
 }