Esempio n. 1
0
        public ViewResult Detail(string id)
        {
            var categories = new List <SelectListItem>()
            {
                new SelectListItem()
                {
                    Value = "材料费", Text = "材料费"
                }, new SelectListItem()
                {
                    Value = "修理费", Text = "修理费"
                }
            };

            ViewData["categories"] = categories;

            var user    = OperatorProvider.Provider.Current();
            var deptbll = new DepartmentBLL();
            var dept    = deptbll.GetEntity(user.DeptId);

            if (dept == null)
            {
                dept = deptbll.GetRootDepartment();
            }
            var subdepts = deptbll.GetChildDepartments(user.DeptId);
            var depts    = subdepts.OrderBy(x => x.EnCode).Select(x => new SelectListItem()
            {
                Value = x.DepartmentId, Text = x.FullName
            }).ToList();

            ViewData["depts"] = depts;

            ViewBag.id = id;
            var itemdetialbll = new DataItemDetailBLL();
            var itembll       = new DataItemBLL();
            var main          = itembll.GetEntityByName("费用专业类型");
            var content       = itemdetialbll.GetList(main.ItemId).ToList();
            var professionals = content.Select(x => new SelectListItem()
            {
                Value = x.ItemValue, Text = x.ItemName
            }).ToList();

            professionals.Insert(0, new SelectListItem()
            {
                Value = "", Text = "==请选择=="
            });
            ViewData["professionals"] = professionals;

            var now    = DateTime.Now;
            var record = new CostRecordEntity()
            {
                RecordMonth  = new DateTime(now.Year, now.Month, 1),
                RecordUserId = user.UserId,
                RecordUser   = user.UserName,
                RecordDeptId = dept.DepartmentId,
                RecordDept   = dept.FullName,
                RecordTime   = DateTime.Now
            };

            return(View(record));
        }
Esempio n. 2
0
        public List <CostRecordEntity> GetCostRecords(int page, int pagesize, out int total, string[] deptids, string year, string month, string category, string dept)
        {
            var result = new List <CostRecordEntity>();

            using (var ctx = new DataContext())
            {
                var query = ctx.CostRecords.AsQueryable();

                if (deptids != null)
                {
                    query = query.Where(x => deptids.Contains(x.DeptId));
                }
                if (!string.IsNullOrEmpty(year))
                {
                    var from = new DateTime(int.Parse(year), 1, 1);
                    if (!string.IsNullOrEmpty(month))
                    {
                        from = from.AddMonths(int.Parse(month) - 1);
                    }
                    var to = from.AddMonths(1).AddMinutes(-1);
                    if (string.IsNullOrEmpty(month))
                    {
                        to = to.AddMonths(11);
                    }
                    query = query.Where(x => x.RecordMonth >= from && x.RecordMonth <= to);
                }
                if (!string.IsNullOrEmpty(category))
                {
                    query = query.Where(x => x.Category == category);
                }
                if (!string.IsNullOrEmpty(dept))
                {
                    query = query.Where(x => x.DeptName.Contains(dept));
                }

                total = query.Count();
                var data = query.OrderByDescending(x => x.RecordMonth).ThenBy(x => x.DeptName).Skip(pagesize * (page - 1)).Take(pagesize).ToList();
                foreach (var item in data)
                {
                    var record = new CostRecordEntity()
                    {
                        RecordId     = item.RecordId,
                        RecordDeptId = item.DeptId,
                        RecordDept   = item.DeptName,
                        RecordUserId = item.RecordUserId,
                        RecordUser   = item.RecordUser,
                        Category     = item.Category,
                        RecordMonth  = item.RecordMonth,
                        BudgetAmount = item.BudgetAmount,
                        RecordTime   = item.RecordTime
                    };
                    result.Add(record);
                }
            }
            return(result);
        }
Esempio n. 3
0
        public void AddCost(CostRecordEntity record)
        {
            var entity = new CostRecord()
            {
                RecordId     = record.RecordId,
                DeptId       = record.RecordDeptId,
                DeptName     = record.RecordDept,
                Category     = record.Category,
                BudgetAmount = record.BudgetAmount,
                RecordUserId = record.RecordUserId,
                RecordUser   = record.RecordUser,
                RecordMonth  = record.RecordMonth,
                RecordTime   = record.RecordTime,
                Professional = record.professional,
                CostItems    = record.CostItems.Select(x => new CostItem()
                {
                    CostItemId = x.CostItemId,
                    DeptId     = x.DeptId,
                    DeptName   = x.DeptName,
                    Amount     = x.Amount
                }).ToList()
            };

            var departmentservie = new DepartmentService();
            var depts            = departmentservie.GetSubDepartments(entity.DeptId, null).Select(x => x.DepartmentId).ToList();
            var year             = entity.RecordMonth.Year.ToString();
            var month            = entity.RecordMonth.Month.ToString();

            using (var ctx = new DataContext())
            {
                var cnt = ctx.CostRecords.Where(x => x.DeptId == entity.DeptId && x.Category == entity.Category && x.RecordMonth == entity.RecordMonth).Count();
                if (cnt > 0)
                {
                    throw new Exception("已经存在费用记录!");
                }

                var ddd = ctx.Budgets.Include("BudgetItems").Where(x => x.Category == entity.Category && x.Year == year).ToList();
                ddd = ddd.Where(x => depts.Any(y => y == x.DeptId)).ToList();
                var sss = ddd.SelectMany(x => x.BudgetItems).Where(x => x.Month == month);
                entity.BudgetAmount = sss.Sum(x => x.Amount);
                ctx.CostRecords.Add(entity);
                ctx.SaveChanges();
            }
        }
Esempio n. 4
0
        public void AddCost(CostRecordEntity record)
        {
            ICostService service = new CostService();

            service.AddCost(record);
        }
Esempio n. 5
0
        public JsonResult DoImport(CostRecordEntity record)
        {
            var success = true;
            var message = "保存成功!";

            var user = OperatorProvider.Provider.Current();

            if (this.Request.Files.Count > 0)
            {
                var book = default(Workbook);
                try
                {
                    book = new Workbook(this.Request.Files[0].InputStream);
                }
                catch (Exception e)
                {
                    return(Json(new AjaxResult()
                    {
                        type = ResultType.error, message = "无法识别的文件!"
                    }));
                }

                try
                {
                    var sheet      = book.Worksheets[0];
                    var titleIndex = this.GetTitleRow(sheet, record.Category);
                    var dataindex  = this.GetDataIndex(sheet, titleIndex);

                    var costbll   = new CostBLL();
                    var costitems = this.GetCostData(sheet, titleIndex, dataindex);
                    record.CostItems = costitems;
                    record.RecordId  = Guid.NewGuid();
                    costbll.AddCost(record);
                    var filename = this.Request.Files[0].FileName;
                    var path     = Path.Combine(Server.MapPath("~/Resource"), "Budget");
                    if (!Directory.Exists(path))
                    {
                        Directory.CreateDirectory(path);
                    }

                    var id = Guid.NewGuid().ToString();
                    this.Request.Files[0].SaveAs(Path.Combine(path, id + Path.GetExtension(filename)));
                    var fileinfo = new FileInfoEntity()
                    {
                        FileId         = id,
                        FilePath       = "~/Resource/Budget/" + id + Path.GetExtension(filename),
                        FileName       = filename,
                        CreateDate     = DateTime.Now,
                        CreateUserId   = user.UserId,
                        CreateUserName = user.UserName,
                        DeleteMark     = 0,
                        EnabledMark    = 1,
                        FileExtensions = Path.GetExtension(filename),
                        FileSize       = this.Request.Files[0].ContentLength.ToString(),
                        ModifyDate     = DateTime.Now,
                        ModifyUserId   = user.UserId,
                        ModifyUserName = user.UserName,
                        RecId          = record.RecordId.ToString()
                    };
                    var filebll = new FileInfoBLL();
                    filebll.SaveForm(null, fileinfo);
                }
                catch (Exception e)
                {
                    success = false;
                    message = e.Message;
                }
            }

            return(Json(new AjaxResult()
            {
                type = success ? ResultType.success : ResultType.error, message = message
            }));
        }