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