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 ExpenseMember ToEntity(this ExpenseMemberModel model) { var entity = new ExpenseMember() { DId = model.DId, MemberId = model.MemberId, }; return(entity); }
public static ExpenseMemberModel ToModel(this ExpenseMember entity) { var model = new ExpenseMemberModel() { Id = entity.Id, DId = entity.DId, MemberId = entity.MemberId, User = entity.User.ToModel() }; 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); } }