コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #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);
            }
        }
コード例 #5
0
        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);
        }