public static ExpenseDetailModel ToModelWithParticant(this ExpenseDetail entity) { var model = new ExpenseDetailModel() { Id = entity.Id, MId = entity.MId, ODate = entity.ODate, EType = (ExpenseType)entity.EType, Remark = entity.Remark, PCount = entity.PCount, Amount = entity.Amount, ExpenseMain = entity.ExpenseMain.ToModelWithAuditHistory(), ExpenseType = (ExpenseType)entity.EType }; List <ExpenseMemberModel> result = new List <ExpenseMemberModel>(); if (entity.ExpenseMembers != null && entity.ExpenseMembers.Count > 0) { foreach (ExpenseMember item in entity.ExpenseMembers) { result.Add(item.ToModel()); model.ExpenseMemberNames = model.ExpenseMemberNames + item.User.EnglishName + ","; } model.ExpenseMemberNames = model.ExpenseMemberNames.Remove(model.ExpenseMemberNames.Length - 1); } model.ExpenseMembers = result; return(model); }
public ApiResponse <ExpenseMainModel> AddExpense(ApplyExpenseModel model) { // 1. 检查输入参数 if (model == null) { throw new ApiBadRequestException("无效的参数"); } // 2. 构造报销申请模型记录 var expenseMainDataModel = new ExpenseMainModel() { DeptNo = model.DeptNo, ProjNo = model.ProjNo, Amount = model.Amount, Reason = model.Reason, ApplyUserId = this.Member.Id, CreatedTime = DateTime.Now }; //3 构造请假单详情 expenseMainDataModel.ExpenseDetails = new List <ExpenseDetailModel>(); if (model.ExpenseDetails != null && (model.ExpenseDetails.Count > 0)) { foreach (ApplyExpenseDetailModel item in model.ExpenseDetails) { var expenseDetailModel = new ExpenseDetailModel() { ODate = item.ODate, EType = item.EType, Remark = item.Remark, PCount = 1, Amount = item.Amount }; //3.1 构造参与人员 List <ExpenseMemberModel> activyParticipants = new List <ExpenseMemberModel>(); if (item.participants != null && (item.participants.Length > 0)) { foreach (int participantItem in item.participants) { var expenseMemberModel = new ExpenseMemberModel() { MemberId = participantItem }; activyParticipants.Add(expenseMemberModel); } } expenseDetailModel.ExpenseMembers = activyParticipants; expenseMainDataModel.ExpenseDetails.Add(expenseDetailModel); } } //新增假单 如果是请假或者提交加班申请需要启动工作申请流程 // 3. Construct API Response var response = new ApiResponse <ExpenseMainModel>() { Result = ExpenseService.AddExpense(expenseMainDataModel) }; return(response); }
public static ExpenseDetailModel ToModel(this ExpenseDetail entity) { var model = new ExpenseDetailModel() { Id = entity.Id, MId = entity.MId, ODate = entity.ODate, EType = (ExpenseType)entity.EType, Remark = entity.Remark, PCount = entity.PCount, Amount = entity.Amount, ExpenseMain = entity.ExpenseMain.ToModel(), ExpenseType = (ExpenseType)entity.EType }; return(model); }
/// <summary> /// 添加报销详细信息 /// </summary> /// <returns>是否成功</returns> public bool AddExpenseDetailsOrder(int id, ApplyExpenseDetailModel model) { using (var dbContext = new MissionskyOAEntities()) { //查询报销信息是否存在 var expenseMain = dbContext.ExpenseMains.FirstOrDefault(it => it.Id == id); if (expenseMain == null) { throw new Exception("报销单id不存在"); } var expenseDetailModel = new ExpenseDetailModel() { ODate = model.ODate, EType = model.EType, Remark = model.Remark, PCount = 1, Amount = model.Amount }; if (model.Amount > 0) { CalculateExpenseSum(expenseMain.Id, model.Amount); } //3.1 构造参与人员 List <ExpenseMemberModel> activyParticipants = new List <ExpenseMemberModel>(); if (model.participants != null && (model.participants.Length > 0)) { foreach (int participantItem in model.participants) { var expenseMemberModel = new ExpenseMemberModel() { MemberId = participantItem }; activyParticipants.Add(expenseMemberModel); } } expenseDetailModel.ExpenseMembers = activyParticipants; expenseMain.ExpenseDetails.Add(expenseDetailModel.ToEntity()); dbContext.SaveChanges(); return(true); } }
public static ExpenseDetail ToEntity(this ExpenseDetailModel model) { var entity = new ExpenseDetail() { MId = model.MId, ODate = model.ODate, EType = (int)model.EType, Remark = model.Remark, PCount = model.PCount, Amount = model.Amount, }; ICollection <ExpenseMember> result = new Collection <ExpenseMember>(); if (model.ExpenseMembers != null && model.ExpenseMembers.Count > 0) { foreach (ExpenseMemberModel item in model.ExpenseMembers) { result.Add(item.ToEntity()); } } entity.ExpenseMembers = result; return(entity); }