/// <summary> /// 查询包含DateTime.Now时间点的已缴房租时间段 /// 1、如果最近一次的缴费期始时间大于DateTime.Now时间点,则包含此时间段,并向下查询,找到包含DateTime.Now时间点的缴费时间区域,并叠加。) /// 2、如果欠费,即最近一次缴费期末时间小于DateTime.Now,那么返回最近缴费时间区域 /// </summary> /// <param name="context"></param> /// <param name="kf"></param> /// <returns></returns> public static MyDate GetRecentMyDate(MyContext context, 客房 kf) { MyDate myDate = new MyDate(); var result = GetRentDetails_Current2(kf); var temp = result.GetEnumerator(); do { if (temp.MoveNext()) { myDate.Begin = MyDate.Smaller(temp.Current.起付日期, myDate.Begin); myDate.End = MyDate.Bigger(temp.Current.止付日期, myDate.End); } else { break; } }while (temp.Current.起付日期.Date > DateTime.Now.Date); if (myDate.Begin == DateTime.MaxValue || myDate.End == DateTime.MinValue) { return(null); } else { myDate.ContractEnd = kf.期止;//当有缴费数据时,同时得到客房协议期止时间 return(myDate); } }
/// <summary> /// 查询包含DateTime.Now时间点的已缴房租时间段 /// 1、如果最近一次的缴费期始时间大于DateTime.Now时间点,则包含此时间段,并向下查询,找到包含DateTime.Now时间点的缴费时间区域,并叠加。) /// 2、如果欠费,即最近一次缴费期末时间小于DateTime.Now,那么返回最近缴费时间区域 /// </summary> /// <param name="context"></param> /// <param name="yf"></param> /// <returns></returns> public static MyDate GetRecentPayMyDate(MyContext context, 源房 yf) { MyDate myDate = new MyDate(); var result = compiledQuery1.Invoke(context, yf.ID, "房租").Execute(MergeOption.NoTracking).ToList(); var temp = result.GetEnumerator(); do { if (temp.MoveNext()) { myDate.Begin = MyDate.Smaller(temp.Current.期始.Value, myDate.Begin); myDate.End = MyDate.Bigger(temp.Current.期止.Value, myDate.End); } else { break; } }while (temp.Current.期始.Value.Date > DateTime.Now.Date); if (myDate.Begin == DateTime.MaxValue || myDate.End == DateTime.MinValue) { return(null); } else { myDate.ContractEnd = 源房涨租协定.GetByYFid(context, yf.ID).Execute(MergeOption.NoTracking).Max(m => m.期止);//当有缴费数据时,同时得到源房协议期止时间 return(myDate); } }