/// <summary> /// 根据成本中心ID返回成本中心对象 /// </summary> /// <param name="ID">成本中心ID</param> public CCDetailDto GetCCByID(string ID) { CCDetailDto cc = Mapper.Map <CostCenter, CCDetailDto> (_costCenterRepository.GetByID(ID).AsNoTracking().FirstOrDefault()); if (cc != null) { if (!string.IsNullOrEmpty(cc.CC_TypeID)) { CostCenter_Type c = _costCenter_TypeRepository.GetByID(cc.CC_TypeID); if (c != null) { cc.CC_TypeName = c.CC_T_Description; } } if (!string.IsNullOrEmpty(cc.CC_TemplateID)) { CC_Type_TemplateDto ctp = Mapper.Map <CC_Type_Template, CC_Type_TemplateDto>(_cc_Type_TemplateRepository.GetByID(cc.CC_TemplateID).AsNoTracking().FirstOrDefault()); if (ctp != null) { cc.CC_AEACheckers = ctp.CC_TT_AEACheckers; cc.CC_FinancialCheckers = ctp.CC_TT_FinancialCheckers; } } if (!string.IsNullOrEmpty(cc.CC_DepartmentID)) { DepDetailDto d = Mapper.Map <Department, DepDetailDto>(_departmentRepository.GetByID(cc.CC_DepartmentID).AsNoTracking().FirstOrDefault()); if (d != null) { cc.CC_DepName = d.Dep_Name; } } } return(cc); }
/// <summary> /// 添加报销单 /// </summary> /// <param name="entity">报销单对象</param> public ReturnInfo CreateRB(RBInputDto entity) { ReturnInfo RInfo = new ReturnInfo(); StringBuilder sb = new StringBuilder(); string MaxID = _reimbursementRepository.GetMaxID(); string NowID = Helper.GenerateID("RB", MaxID); entity.RB_ID = NowID; string ValidateInfo = Helper.ValidateRBInputDto(entity); sb.Append(ValidateInfo); if (string.IsNullOrEmpty(ValidateInfo)) { try { Reimbursement rb = Mapper.Map <RBInputDto, Reimbursement>(entity); rb.RB_CreateDate = DateTime.Now; rb.RB_UpdateDate = DateTime.Now; rb.RB_AEADate = DateTime.Now; rb.RB_FinDate = DateTime.Now; rb.RB_LiableDate = DateTime.Now; rb.RB_Status = (int)RB_Status.新建; rb.RB_CurrantCheck = ""; if (!string.IsNullOrEmpty(entity.CC_ID)) { CCDetailDto cc = Mapper.Map <CostCenter, CCDetailDto> (_costCenterRepository.GetByID(entity.CC_ID).AsNoTracking().FirstOrDefault()); rb.RB_LiableMan = cc.CC_LiableMan; if (!string.IsNullOrEmpty(cc.CC_TemplateID)) { CC_Type_TemplateDto ctp = Mapper.Map <CC_Type_Template, CC_Type_TemplateDto>(_cc_Type_TemplateRepository.GetByID(cc.CC_TemplateID).AsNoTracking().FirstOrDefault()); rb.RB_AEACheckers = ctp.CC_TT_AEACheckers; rb.RB_FinancialCheckers = ctp.CC_TT_FinancialCheckers; } } decimal Total = 0; string MaxID2 = _reimbursementRepository.GetMaxID(); string NowID2 = Helper.GenerateID("RB", MaxID2); rb.RB_ID = NowID2; foreach (RB_RowsInputDto row in entity.RB_Rows) { RB_Rows r = _rbrowsRepository.GetByID(row.R_ID).FirstOrDefault(); r.RB_ID = NowID2; _unitOfWork.RegisterDirty(r); Total += row.R_Amount; } rb.RB_TotalAmount = Total; _unitOfWork.RegisterNew(rb); bool result = _unitOfWork.Commit(); RInfo.IsSuccess = result; RInfo.ErrorInfo = sb.ToString(); return(RInfo); } catch (Exception ex) { _unitOfWork.Rollback(); sb.Append(ex.Message); RInfo.IsSuccess = false; RInfo.ErrorInfo = sb.ToString(); return(RInfo); } } else { RInfo.IsSuccess = false; RInfo.ErrorInfo = sb.ToString(); return(RInfo); } }