/// <summary> /// 获取记录期初数据 /// </summary> /// <param name="settlement">能源结算</param> /// <param name="record">能源结算记录</param> /// <returns>期初用量,期初金额</returns> private Tuple <decimal, decimal> GetBeginData(Settlement settlement, SettlementRecord record) { TargetRecordBusiness trBusiness = new TargetRecordBusiness(); var targetRecord = trBusiness.FindByDepartment(settlement.TargetId, record.DepartmentId, record.EnergyType); decimal beginQuantum = 0; decimal beginAmount = 0; if (string.IsNullOrEmpty(settlement.PreviousId)) { if (targetRecord != null) { beginQuantum = targetRecord.PlanQuantum; beginAmount = targetRecord.PlanAmount; } else { beginQuantum = 0; beginAmount = 0; } } else { SettlementBusiness settlementBusiness = new SettlementBusiness(); var previous = settlementBusiness.FindById(settlement.PreviousId); var dal = this.baseDal as ISettlementRecordRepository; var previousRecord = dal.FindOne(previous.Id, record.DepartmentId, record.EnergyType); beginQuantum = previousRecord.BeginQuantum - previousRecord.Quantum; beginAmount = previousRecord.BeginAmount - previousRecord.Amount; } return(new Tuple <decimal, decimal>(beginQuantum, beginAmount)); }
/// <summary> /// 添加默认结算记录 /// </summary> /// <param name="entity">实体对象</param> /// <param name="user">操作用户</param> public void Create(SettlementRecord entity, LoginUser user) { var dal = this.baseDal as ISettlementRecordRepository; SettlementBusiness settlementBusiness = new SettlementBusiness(); var settlement = settlementBusiness.FindById(entity.SettlementId); TargetRecordBusiness trBusiness = new TargetRecordBusiness(); var targetRecord = trBusiness.FindByDepartment(settlement.TargetId, entity.DepartmentId, entity.EnergyType); DateTime now = DateTime.Now; entity.Quantum = 0; entity.Amount = 0; entity.Status = 0; entity.CreateBy = new UpdateStamp { UserId = user.Id, Name = user.Name, Time = now }; entity.UpdateBy = new UpdateStamp { UserId = user.Id, Name = user.Name, Time = now }; var begin = GetBeginData(settlement, entity); entity.BeginQuantum = begin.Item1; entity.BeginAmount = begin.Item2; dal.Create(entity); return; }