/// <summary> /// 查询公司组限制信息 /// </summary> public IEnumerable <CompanyGroupLimitationInfo> QueryCompanyLimmitations(Guid purchaser, SuperiorInfo superior) { return((superior != null && superior.Enable && !superior.Expired) ? Organization.CompanyService.GetGroupLimits(purchaser) : Izual.EnumerableHelper.GetEmpty <CompanyGroupLimitationInfo>()); }
/// <summary> /// 过滤相应结算价不存在(数据库中保存为-1)的政策。 /// </summary> /// <param name="policies">待过滤政策</param> /// <param name="superior">上级</param> /// <returns>过滤后政策</returns> /// <remarks> /// 这个方法实际上是用于过滤掉没有设置同行,下级或是内部机构, /// 先根据上级信息获取关系,然后通过关系获取到结算价,如果结算价小于0(数据库里是-1),则被过滤 /// 在解决原来的产品方没有下级,而OEM中的产品方有下级时,就是从这里着手, /// 方法没有改变,但在数据库中存储值时,在下级结算价时存入数据; /// 还有一处相关的地方,就是ComputePolicy()方法中的结算价的判断; /// </remarks> internal static IEnumerable <PolicyInfoBase> FilterByPermission(this IEnumerable <PolicyInfoBase> policies, SuperiorInfo superior) { return(from p in policies let deductionType = Calculator.GetDeductionType(p.Owner, superior) let commission = Calculator.GetCommission(p, deductionType) where commission >= 0 select p); }