Example #1
0
        /// <summary>
        /// 机构的分润方案
        /// </summary>
        /// <param name="orgid">机构id</param>
        /// <returns></returns>
        public ProfitSharing ThemeCurrent(int orgid)
        {
            //课程所在机构
            Organization org = Business.Do <IOrganization>().OrganSingle(orgid);

            if (org == null)
            {
                return(null);
            }
            //所属机构等级
            OrganLevel olevel = Business.Do <IOrganization>().LevelSingle(org.Olv_ID);

            if (olevel == null)
            {
                return(null);
            }
            //分润方案
            ProfitSharing psTheme = this.ThemeSingle(olevel.Ps_ID);

            if (psTheme == null)
            {
                return(null);                       //如果没有设置分润方案
            }
            if (!psTheme.Ps_IsUse)
            {
                return(null);                       //如果分润方案没有启用
            }
            return(psTheme);
        }
Example #2
0
        /// <summary>
        /// 添加机构等级
        /// </summary>
        /// <param name="entity">业务实体</param>
        public void LevelAdd(OrganLevel entity)
        {
            //添加对象,并设置排序号
            object obj = Gateway.Default.Max <OrganLevel>(OrganLevel._.Olv_Tax, OrganLevel._.Olv_Tax > -1);
            int    tax = obj is int?(int)obj : 0;

            entity.Olv_Tax = tax + 1;
            //判断是否默认
            obj = Gateway.Default.Count <OrganLevel>(OrganLevel._.Olv_IsDefault == true);
            bool isDef = (obj is int?(int)obj : 0) > 0;

            if (!isDef)
            {
                entity.Olv_IsDefault = true;
            }
            Gateway.Default.Save <OrganLevel>(entity);
        }
        public ProfitSharing[] Clac(Course cou, double money, double coupon)
        {
            if (cou == null)
            {
                return(null);
            }
            //课程所在机构
            Organization org = Business.Do <IOrganization>().OrganSingle(cou.Org_ID);

            if (org == null)
            {
                return(null);
            }
            //所属机构等级
            OrganLevel olevel = Business.Do <IOrganization>().LevelSingle(org.Olv_ID);

            if (olevel == null)
            {
                return(null);
            }
            //分润方案
            ProfitSharing psTheme = this.ThemeSingle(olevel.Ps_ID);

            if (psTheme == null)
            {
                return(null);                       //如果没有设置分润方案
            }
            if (!psTheme.Ps_IsUse)
            {
                return(null);                       //如果分润方案没有启用
            }
            ProfitSharing[] profits = this.ProfitAll(olevel.Ps_ID, true);
            if (profits.Length < 1)
            {
                return(null);
            }
            //计算
            for (int i = 0; i < profits.Length; i++)
            {
                profits[i].Ps_MoneyValue  = (decimal)profits[i].Ps_Moneyratio * ((decimal)money / 100);
                profits[i].Ps_CouponValue = (int)Math.Floor(profits[i].Ps_Couponratio * ((double)coupon) / 100);
            }
            return(profits);
        }
Example #4
0
 /// <summary>
 /// 修改
 /// </summary>
 /// <param name="entity">业务实体</param>
 public void LevelSave(OrganLevel entity)
 {
     using (DbTrans trans = Gateway.Default.BeginTrans())
     {
         try
         {
             trans.Save <OrganLevel>(entity);
             trans.Update <Organization>(new Field[] { Organization._.Olv_Name },
                                         new object[] { entity.Olv_Name },
                                         Organization._.Olv_ID == entity.Olv_ID);
             trans.Commit();
         }
         catch (Exception ex)
         {
             trans.Rollback();
             throw ex;
         }
         finally
         {
             trans.Close();
         }
     }
 }
Example #5
0
        /// <summary>
        /// 将当前栏目向下移动;仅在当前对象的同层移动,即同一父节点下的对象之间移动;
        /// </summary>
        /// <param name="id"></param>
        /// <returns>如果已经处于最底端,则返回false;移动成功,返回true</returns>
        public bool LevelDown(int id)
        {
            //当前对象
            OrganLevel current = Gateway.Default.From <OrganLevel>().Where(OrganLevel._.Olv_ID == id).ToFirst <OrganLevel>();
            //当前对象排序号
            int orderValue = (int)current.Olv_Tax;
            //下一个对象,即弟弟对象;
            OrganLevel down = Gateway.Default.From <OrganLevel>().Where(OrganLevel._.Olv_Tax > orderValue).OrderBy(OrganLevel._.Olv_Tax.Asc).ToFirst <OrganLevel>();

            //如果弟对象不存在,则表示当前节点在兄弟中是老幺;即是最底端;
            if (down == null)
            {
                return(false);
            }
            //交换排序号
            current.Olv_Tax = down.Olv_Tax;
            down.Olv_Tax    = orderValue;
            using (DbTrans tran = Gateway.Default.BeginTrans())
            {
                try
                {
                    tran.Save <OrganLevel>(current);
                    tran.Save <OrganLevel>(down);
                    tran.Commit();
                    return(true);
                }
                catch
                {
                    tran.Rollback();
                    throw;
                }
                finally
                {
                    tran.Close();
                }
            }
        }
Example #6
0
        /// <summary>
        /// 将当前栏目向上移动;仅在当前对象的同层移动,即同一父节点下的对象之间移动;
        /// </summary>
        /// <param name="id"></param>
        /// <returns>如果已经处于顶端,则返回false;移动成功,返回true</returns>
        public bool LevelUp(int id)
        {
            //当前对象
            OrganLevel current = Gateway.Default.From <OrganLevel>().Where(OrganLevel._.Olv_ID == id).ToFirst <OrganLevel>();
            //当前对象排序号
            int orderValue = (int)current.Olv_Tax;
            //上一个对象,即兄长对象;
            OrganLevel up = Gateway.Default.From <OrganLevel>().Where(OrganLevel._.Olv_Tax < orderValue).OrderBy(OrganLevel._.Olv_Tax.Desc).ToFirst <OrganLevel>();

            //如果兄长对象不存在,则表示当前节点在兄弟中是老大;即是最顶点;
            if (up == null)
            {
                return(false);
            }
            //交换排序号
            current.Olv_Tax = up.Olv_Tax;
            up.Olv_Tax      = orderValue;
            using (DbTrans tran = Gateway.Default.BeginTrans())
            {
                try
                {
                    tran.Save <OrganLevel>(current);
                    tran.Save <OrganLevel>(up);
                    tran.Commit();
                    return(true);
                }
                catch
                {
                    tran.Rollback();
                    throw;
                }
                finally
                {
                    tran.Close();
                }
            }
        }