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);
        }
示例#2
0
        public static ExpenseMember ToEntity(this ExpenseMemberModel model)
        {
            var entity = new ExpenseMember()
            {
                DId      = model.DId,
                MemberId = model.MemberId,
            };

            return(entity);
        }
示例#3
0
        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);
        }
示例#4
0
        /// <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);
            }
        }