コード例 #1
0
        public async Task <PaginatedList <SettlementView> > Settlement(string timestart, string timeend, string companyid, int page, int pageSize)
        {
            DateTime             start = Method.StampToDateTime(timestart);
            DateTime             end   = Method.StampToDateTime(timeend);
            IQueryable <Company> cmps  = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            var price   = Convert.ToDouble(Context.Set <TbDictionary>().Where(x => x.DictionaryCode.Trim() == "X1000").FirstOrDefault().DictionaryName);
            var dbitems = from cmp in cmps
                          orderby cmp.Sort ascending
                          select new SettlementView
            {
                DepartmentName         = cmp.Name.Trim(),
                CompanyName            = Context.Set <Company>().Where(x => x.Id == cmp.ParentId).FirstOrDefault().Name.Trim(),
                TotalPersonNumber      = Context.Set <Employee>().Where(x => x.CompanyId.Trim().Equals(cmp.Id.Trim())).Count(),
                PriceOfSettlement      = price,
                AmountOfSettlement     = Context.Set <Employee>().Where(x => x.CompanyId.Trim().Equals(cmp.Id.Trim())).Count() * price,
                ActualSettlementAmount = 0
            };
            var result = await PaginatedList <SettlementView> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(result);
        }
コード例 #2
0
        public async Task <PaginatedList <Rules> > Page(string searchString, int page, int pageSize)
        {
            var rules = Context.Set <Rules>().Where(x => x.Name.Contains(searchString)).OrderBy(y => y.Sort);
            var rule  = await PaginatedList <Rules> .CreatepagingAsync(rules.AsNoTracking(), page, pageSize);

            return(rule);
        }
コード例 #3
0
        public async Task <PaginatedList <Company> > DepartmentPage(string searchString, int page, int pageSize, string parentid)
        {
            var companys = Context.Set <Company>().Where(x => x.Name.Contains(searchString) && x.ParentId == parentid).OrderBy(y => y.Sort);
            var company  = await PaginatedList <Company> .CreatepagingAsync(companys.AsNoTracking(), page, pageSize);

            return(company);
        }
コード例 #4
0
        //后台主页
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            //从session中获取用户名和头像
            ViewData["Name"] = HttpContext.Session.GetString(AdminName);
            ViewData["Img"]  = HttpContext.Session.GetString(AdminImg);

            //排序
            ViewData["CurrentSort"]  = sortOrder;
            ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["DateSortParm"] = sortOrder == "Date" ? "date_desc" : "Date";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var blogs = from a in blogContext.Blogs
                        join b in blogContext.Tallys on a.Tally_Id equals b.Tally_Id
                        select new AdminHome
            {
                ID        = a.Blog_Id,
                Title     = a.Blog_Title,
                Time      = a.Blog_Time,
                Digest    = a.Blog_Digest,
                TallyName = b.Tally_Name
            };

            if (!String.IsNullOrEmpty(searchString))
            {
                blogs = blogs.Where(s => s.Title.Contains(searchString));
            }
            switch (sortOrder)
            {
            case "name_desc":
                blogs = blogs.OrderByDescending(s => s.Title);
                break;

            case "Date":
                blogs = blogs.OrderBy(s => s.Time);
                break;

            case "date_desc":
                blogs = blogs.OrderByDescending(s => s.Time);
                break;

            default:
                blogs = blogs.OrderBy(s => s.Title);
                break;
            }

            int pageSize = 6;

            return(View(await PaginatedList <AdminHome> .CreatepagingAsync(blogs.AsNoTracking(), page ?? 1, pageSize)));
        }
コード例 #5
0
        public async Task <PaginatedList <EmployeeCountAneNum> > PageCountNum(string companyid, string employeename, string jobid, int page, int pageSize)
        {
            var employees             = Context.Set <Employee>().Where(x => x.Name.Contains(employeename) && x.JobId.Contains(jobid)).OrderBy(y => y.Sort);
            IQueryable <Company> cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            var dbitems = from emp in employees
                          join company in cmps
                          on emp.CompanyId.Trim() equals company.Id.Trim()
                          //   where emp.CompanyId.Trim().Contains(companyid.Trim())
                          select new EmployeeCountAneNum
            {
                jobId          = emp.JobId.Trim(),
                employeeName   = emp.Name.Trim(),
                departmentName = company.Name.Trim(),
                departmentId   = company.Id.Trim(),
                conpanyId      = company.ParentId.Trim(),
                companyName    = Context.Set <Company>().Where(x => x.Id == company.ParentId).FirstOrDefault().Name.Trim(),
                availableCount = emp.AvailableCount,
                availableMoney = emp.AvailableMoney
            };
            var Employee = await PaginatedList <EmployeeCountAneNum> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(Employee);
        }
コード例 #6
0
        public async Task <PaginatedList <EmployeeInfo> > Page(string companyid, string employeename, string jobid, int page, int pageSize)
        {
            var employees             = Context.Set <Employee>().Where(x => x.Name.Contains(employeename) && x.JobId.Contains(jobid)).OrderBy(y => y.Sort);
            IQueryable <Company> cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            var dbitems = from emp in employees
                          join company in cmps
                          on emp.CompanyId.Trim() equals company.Id.Trim()
                          //   where emp.CompanyId.Trim().Contains(companyid.Trim())
                          select new EmployeeInfo
            {
                sort        = emp.Sort,
                name        = emp.Name.Trim(),
                jobId       = emp.JobId.Trim(),
                numbers     = emp.Numbers,
                companyName = company.Name.Trim(),
                companyId   = company.Id.Trim(),
                remarks     = emp.Remarks.Trim(),
                password    = emp.Password.Trim(),
                qrCode      = emp.QrCodeNumber.Trim()
            };
            var Employee = await PaginatedList <EmployeeInfo> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(Employee);
        }
コード例 #7
0
        public async Task <PaginatedList <EmployeeRecoreDetail> > RecordDetail(string jobid, string timestart, string timeend, string usagetype, string consumptiontype, int page, int pageSize)
        {
            DateTime start      = string.IsNullOrEmpty(timestart) ? DateTime.Now.AddDays(-DateTime.Now.DayOfYear + 1) : Method.StampToDateTime(timestart);
            DateTime end        = string.IsNullOrEmpty(timeend) ? DateTime.Now.AddYears(1).AddDays(-DateTime.Now.AddYears(1).DayOfYear) : Method.StampToDateTime(timeend);
            var      dictionary = Context.Set <TbDictionary>().Where(x => x.ParentDictionaryCode == "A1000" || x.ParentDictionaryCode == "A5000" || x.ParentDictionaryCode == "A4000");
            var      employee   = await Context.Set <Employee>().Where(x => x.JobId == jobid).FirstOrDefaultAsync();

            var department = await Context.Set <Company>().Where(x => x.Id == employee.CompanyId).FirstOrDefaultAsync();

            var company = await Context.Set <Company>().Where(x => x.Id == department.ParentId).FirstOrDefaultAsync();

            var givedbitems = from give in Context.Vw_GiveRecords   //Context.Vw_GiveRecords                                                                  //   join use in Context.Set<Vw_UseRecord>()
                              where give.JobId.Trim() == jobid.Trim()
                              where start <= give.AddAt && give.AddAt <= end
                              where string.IsNullOrEmpty(usagetype) || usagetype.Trim() == give.UseType.Trim()            //A100001次数 A100002钱包
                              where string.IsNullOrEmpty(consumptiontype) || give.GiveType == consumptiontype             //A600001发放 A600002消费
                              orderby give.AddAt descending
                              select new EmployeeRecoreDetail
            {
                CompanyName     = company.Name.Trim(),
                CompanyId       = company.Id.Trim(),
                DepartmentName  = department.Name.Trim(),
                DepartmentId    = department.Id.Trim(),
                JobId           = employee.JobId.Trim(),
                EmployeeName    = employee.Name.Trim(),
                AddAt           = give.AddAt,
                GiveCountType   = dictionary.Where(x => x.DictionaryCode == give.GiveMoneyOrNumType).FirstOrDefault().DictionaryName,
                UsageType       = give.UseType,
                ConsumptionType = dictionary.Where(x => x.DictionaryCode == give.GiveType).FirstOrDefault().DictionaryName,
                UseMoney        = give.GiveType.Equals("A100002") ? give.GiveMoneyOrNum : 0,
                UseNumber       = give.GiveType.Equals("A100001") ? give.GiveMoneyOrNum : 0
            };
            var usedbitems = from use in Context.Vw_UseRecords   //Context.Vw_GiveRecords                                                        //   join use in Context.Set<Vw_UseRecord>()
                             where use.JobId.Trim() == jobid.Trim()
                             where start <= use.AddAt && use.AddAt <= end
                             where string.IsNullOrEmpty(usagetype) || usagetype.Trim() == use.UseType.Trim()                 //A100001次数 A100002钱包
                             where string.IsNullOrEmpty(consumptiontype) || use.GiveCountType == consumptiontype             //A600001发放 A600002消费
                             orderby use.AddAt descending
                             select new EmployeeRecoreDetail
            {
                CompanyName     = company.Name.Trim(),
                CompanyId       = company.Id.Trim(),
                DepartmentName  = department.Name.Trim(),
                DepartmentId    = department.Id.Trim(),
                JobId           = employee.JobId.Trim(),
                EmployeeName    = employee.Name.Trim(),
                AddAt           = use.AddAt,
                GiveCountType   = null,
                UsageType       = use.UseType,
                ConsumptionType = dictionary.Where(x => x.DictionaryCode == use.GiveCountType).FirstOrDefault().DictionaryName,
                UseMoney        = use.UseMoney,
                UseNumber       = use.UseNumber
            };
            var items    = givedbitems.Union(usedbitems);
            var Employee = await PaginatedList <EmployeeRecoreDetail> .CreatepagingAsync(items.AsNoTracking(), page, pageSize);

            return(Employee);
        }
コード例 #8
0
        //后台主页
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            //排序
            ViewData["CurrentSort"]  = sortOrder;
            ViewData["NameSortParm"] = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            ViewData["DateSortParm"] = sortOrder == "Date" ? "date_desc" : "Date";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewData["CurrentFilter"] = searchString;

            var contacts = from a in blogContext.Contacts
                           select a;

            if (!String.IsNullOrEmpty(searchString))
            {
                contacts = contacts.Where(s => s.Name.Contains(searchString));
            }
            switch (sortOrder)
            {
            case "name_desc":
                contacts = contacts.OrderByDescending(s => s.Name);
                break;

            case "Date":
                contacts = contacts.OrderBy(s => s.Time);
                break;

            case "date_desc":
                contacts = contacts.OrderByDescending(s => s.Time);
                break;

            default:
                contacts = contacts.OrderBy(s => s.Name);
                break;
            }

            int pageSize = 6;

            return(View(await PaginatedList <Contact> .CreatepagingAsync(contacts.AsNoTracking(), page ?? 1, pageSize)));
        }
コード例 #9
0
ファイル: TallyController.cs プロジェクト: lzfsuifeng/My-Blog
        //展示所有标签
        public async Task <IActionResult> Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            ViewData["CurrentSort"] = sortOrder;
            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            var tallys   = from Tally in blogContext.Tallys select Tally;
            int pageSize = 8;

            return(View(await PaginatedList <Tally> .CreatepagingAsync(tallys.AsNoTracking(), page ?? 1, pageSize)));
        }
コード例 #10
0
        //首页
        public async Task <IActionResult> Index(string blogtitle, string sortOrder, string currentFilter, string searchString, int?page)
        {
            MenuList();
            ViewData["tag"]         = "博客";
            ViewData["CurrentSort"] = sortOrder;

            //搜索的关键字
            ViewData["blogtitle"] = blogtitle;

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }
            ViewData["CurrentFilter"] = searchString;

            var blogs = (from a in blogContext.Blogs
                         join c in blogContext.Tallys on a.Tally_Id equals c.Tally_Id
                         select new HomeBlog
            {
                Title = a.Blog_Title,
                dateTime = a.Blog_Time,
                BlogImg = a.Blog_Img,
                tallyName = c.Tally_Name,
                Digest = a.Blog_Digest,
                Id = a.Blog_Id
            });

            //模糊搜索
            if (!string.IsNullOrWhiteSpace(blogtitle))
            {
                blogs = blogs.Where(a => a.Title.Contains(blogtitle));
            }
            //每页显示数量
            int pageSize = 4;

            return(View(await PaginatedList <HomeBlog> .CreatepagingAsync(blogs.AsNoTracking(), page ?? 1, pageSize)));
        }
コード例 #11
0
        public async Task <PaginatedList <EmployeeMoneyRecord> > GiveMoneyRecord(string jobid, string timestart, string timeend, string empname, string companyid, int page, int pageSize)
        {
            DateTime             start      = string.IsNullOrEmpty(timestart) ? DateTime.Now.AddDays(-DateTime.Now.DayOfYear + 1) : Method.StampToDateTime(timestart);
            DateTime             end        = string.IsNullOrEmpty(timeend) ? DateTime.Now.AddYears(1).AddDays(-DateTime.Now.AddYears(1).DayOfYear) : Method.StampToDateTime(timeend);
            var                  dictionary = Context.Set <TbDictionary>().Where(x => x.ParentDictionaryCode == "A5000");
            var                  employees  = Context.Set <Employee>().Where(x => x.Name.Contains(empname) && x.JobId.Contains(jobid));
            IQueryable <Company> cmps       = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            var dbitems = from emp in employees
                          join company in cmps
                          on emp.CompanyId.Trim() equals company.Id.Trim()
                          join givecount in Context.Set <GiveMoney>()
                          on emp.JobId.Trim() equals givecount.JobId
                          //   where emp.CompanyId.Trim().Contains(companyid.Trim())
                              where start <= givecount.AddAt && givecount.AddAt <= end
                          orderby givecount.AddAt descending
                          select new EmployeeMoneyRecord
            {
                jobId          = emp.JobId.Trim(),
                name           = emp.Name.Trim(),
                departmentName = company.Name.Trim(),
                departmentId   = company.Id.Trim(),
                conpanyId      = company.ParentId.Trim(),
                companyName    = Context.Set <Company>().Where(x => x.Id == company.ParentId).FirstOrDefault().Name.Trim(),
                giveTime       = givecount.AddAt,
                giveMoney      = givecount.GiveMoney1,
                giveType       = dictionary.Where(x => x.DictionaryCode == givecount.GiveMoneyType).FirstOrDefault().DictionaryName
            };
            var Employee = await PaginatedList <EmployeeMoneyRecord> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(Employee);
        }
コード例 #12
0
        // GET: Students
        public async Task <IActionResult> Index(string sortOrder, string searchStudent, int?page, string currentStudent)
        {
            #region   搜索和排序

            //姓名的排序参数
            ViewData["Name_Sort_Parm"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            //时间的排序参数
            ViewData["Date_Sort_Parm"] = sortOrder == "Date" ? "date_desc" : "Date";
            //搜索的关键字
            ViewData["SearchStudent"] = searchStudent;

            #endregion


            ViewData["CurrentSort"] = sortOrder;


            if (searchStudent != null)
            {
                page = 1;
            }
            else
            {
                searchStudent = currentStudent;
            }

            #region 搜索和排序功能

            var students = from student in _context.Students select student;

            if (!string.IsNullOrWhiteSpace(searchStudent))
            {
                students = students.Where(a => a.RealName.Contains(searchStudent));
            }


            switch (sortOrder)
            {
            case "name_desc":
                students = students.OrderByDescending(a => a.RealName);
                break;

            case "Date":
                students = students.OrderBy(a => a.EnrollmentDate);
                break;

            case "date_desc":
                students = students.OrderByDescending(a => a.EnrollmentDate);
                break;

            default:
                students = students.OrderBy(a => a.RealName);
                break;
            }

            #endregion

            var pageSize = 5;


            var entities = students.AsNoTracking();

            var dtos = await PaginatedList <Student> .CreatepagingAsync(entities, page ?? 1, pageSize);

            return(View(dtos));
        }
コード例 #13
0
        public async Task <PaginatedList <PersonPayoffTableView> > PersonPayoffTable(string timestart, string timeend, string companyid, string employeename, int page, int pageSize)
        {
            DateTime start     = string.IsNullOrEmpty(timestart) ? DateTime.Now.AddDays(-DateTime.Now.DayOfYear + 1) : Method.StampToDateTime(timestart);
            DateTime end       = string.IsNullOrEmpty(timeend) ? DateTime.Now.AddYears(1).AddDays(-DateTime.Now.AddYears(1).DayOfYear) : Method.StampToDateTime(timeend);
            var      employees = Context.Set <Employee>().Where(x => x.Name.Contains(employeename)).OrderBy(y => y.Sort);
            var      records   = (from emp in employees
                                  join ur in Context.Vw_UseRecords
                                  on emp.JobId.Trim() equals ur.JobId.Trim()
                                  from rule in Context.Set <Rules>()
                                  where start <= ur.AddAt && ur.AddAt <= end
                                  where Method.isLegalTime(Convert.ToDateTime(ur.AddAt), rule.StartTime + "-" + rule.EndTime)
                                  select new
            {
                recordId = ur.UseRecordId,
                useNumber = ur.UseNumber,
                useMoney = ur.UseMoney,
                ruleId = rule.Id,
                ruleName = rule.Name,
                rulePrice = rule.Price,
                jobId = emp.JobId,
                type = ur.GiveCountType
            }).ToList();
            IQueryable <Company> cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            //breakfast
            var breakfastId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("早餐")).FirstOrDefault().Id;
            //lunch
            var lunchId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("午餐")).FirstOrDefault().Id;
            //dinner
            var dinnerId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("晚餐")).FirstOrDefault().Id;
            //snake
            var snakeId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("夜宵")).FirstOrDefault().Id;
            var dbitems = from emp in employees
                          join company in cmps
                          on emp.CompanyId.Trim() equals company.Id.Trim()
                          orderby company.Sort ascending
                          orderby emp.Sort ascending
                          select new PersonPayoffTableView
            {
                DepartmentName        = company.Name.Trim(),
                CompanyName           = Context.Set <Company>().Where(x => x.Id == company.ParentId).FirstOrDefault().Name.Trim(),
                EmployeeName          = emp.Name,
                NumberOfBreakfast     = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(breakfastId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                MoneyOfBreakfast      = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(breakfastId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber * x.rulePrice),
                NumberOfLunch         = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(lunchId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                MoneyOfLunch          = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(lunchId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber * x.rulePrice),
                NumberOfDinner        = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(dinnerId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                MoneyOfDinner         = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(dinnerId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber * x.rulePrice),
                NumberOfMidnightsnack = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(snakeId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                MoneyOfMidnightsnack  = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(snakeId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber * x.rulePrice),
                OtherBreakfastCount   = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(breakfastId) && x.type.Trim().Equals("A100002")).Count(),
                OtherLunchCount       = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(lunchId) && x.type.Trim().Equals("A100002")).Count(),
                OtherDinnerCount      = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(dinnerId) && x.type.Trim().Equals("A100002")).Count(),
                OtherSnackCount       = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(snakeId) && x.type.Trim().Equals("A100002")).Count(),
                OtherBreakfastMoney   = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(breakfastId) && x.type.Trim().Equals("A100002")).Sum(x => x.useMoney),
                OtherLunchMoney       = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(lunchId) && x.type.Trim().Equals("A100002")).Sum(x => x.useMoney),
                OtherDinnerMoney      = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(dinnerId) && x.type.Trim().Equals("A100002")).Sum(x => x.useMoney),
                OtherSnackMoney       = records.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(snakeId) && x.type.Trim().Equals("A100002")).Sum(x => x.useMoney),
                TotalNumber           = 0,
                TotalMoney            = 0
            };
            var result = await PaginatedList <PersonPayoffTableView> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(result);
        }
コード例 #14
0
        // GET: Students
        /// <summary>
        ///
        /// </summary>
        /// <param name="sortOrder">排序字段</param>
        /// <param name="searchStudent">搜索参数</param>
        /// <param name="page">第几页</param>
        /// <param name="currentStudent">当前学生参数</param>
        /// <returns></returns>
        public async Task <IActionResult> Index(string sortOrder, string searchStudent, int?page, string currentStudent)
        {
            #region 参数
            // 姓名排序参数
            ViewData["Name_Sort_Parm"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            // 时间排序参数
            ViewData["Date_Sort_Parm"] = sortOrder == "Date" ? "date_desc" : "Date";
            // 搜索关键字
            ViewData["SearchStudent"] = searchStudent;

            ViewData["CurrentSort"] = sortOrder;
            #endregion
            var students = from student in _context.Students select student;
            // 当前排序得关键字
            // 当前过滤页得参数
            if (!string.IsNullOrEmpty(searchStudent))
            {
                page = 1;
            }
            else
            {
                searchStudent = currentStudent;
            }
            #region 排序搜索功能
            #region 搜索

            if (!string.IsNullOrWhiteSpace(searchStudent))
            {
                // Contains 相当于模糊查询 sql中的 like
                students = students.Where(a => a.RealName.Contains(searchStudent));
            }
            #endregion

            #region 排序

            switch (sortOrder)
            {
            case "name_desc":
                students = students.OrderByDescending(a => a.RealName);
                break;

            case "Date":
                students = students.OrderBy(a => a.EnrollmentDate);
                break;

            case "date_desc":
                students = students.OrderByDescending(a => a.EnrollmentDate);
                break;

            default:
                students = students.OrderBy(a => a.RealName);
                break;
            }
            #endregion
            //var dtos = await students.AsNoTracking().ToListAsync();
            #endregion

            #region 分页 这块更排序和搜索功能一起用有问题 紧紧参考代码逻辑就好

            int pageSize = 3;

            var entities = students.AsNoTracking();

            var dtos = await PaginatedList <Student> .CreatepagingAsync(entities, page ?? 1, pageSize);

            #endregion

            return(View(dtos));
        }
コード例 #15
0
        // GET: Students
        public async Task <IActionResult> Index(string sortOrder, string searchStudent, int?page, string currentStudent)//首先看传过来的值,排序是否有值
        {
            #region   搜索和排序
            //ViewData DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。
            //姓名的排序参数
            ViewData["Name_Sort_Parm"] = string.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            //时间的排序参数
            ViewData["Date_Sort_Parm"] = sortOrder == "Date" ? "date_desc" : "Date";
            //搜索的关键字
            ViewData["SearchStudent"] = searchStudent;
            //当前排序的参数
            //当前过滤页的参数
            #endregion


            ViewData["CurrentSort"] = sortOrder;


            if (searchStudent != null)
            {
                page = 1;
            }
            else
            {
                searchStudent = currentStudent;
            }

            #region 搜索和排序功能

            var students = from student in _context.Students select student;

            if (!string.IsNullOrWhiteSpace(searchStudent))
            {
                students = students.Where(a => a.RealName.Contains(searchStudent));//Contains模糊查询相当于sql 的likeS
            }
            switch (sortOrder)
            {
            case "name_desc":
                students = students.OrderByDescending(a => a.RealName);    //倒序
                break;

            case "Date":
                students = students.OrderBy(a => a.EnrollmentDate);    //正序
                break;

            case "date_desc":
                students = students.OrderByDescending(a => a.EnrollmentDate);
                break;

            default:
                students = students.OrderBy(a => a.RealName);
                break;
            }

            #endregion

            var pageSize = 4;//当前页为4页


            var entities = students.AsNoTracking();
            //将当前的页传过去,如果当前页为1,再把页传给他          //先将当前数据库实体传过去,在将当前页传过去,在将每一页有多少分页值
            var dtos = await PaginatedList <Student> .CreatepagingAsync(entities, page ?? 1, pageSize);

            return(View(dtos));
        }
コード例 #16
0
        public async Task <PaginatedList <TopUpView> > PersonTopUpTable(string timestart, string timeend, string companyid, string employeename, int page, int pageSize)
        {
            DateTime start = string.IsNullOrEmpty(timestart) ? DateTime.Now.AddDays(-DateTime.Now.DayOfYear + 1) : Method.StampToDateTime(timestart);
            DateTime end   = string.IsNullOrEmpty(timeend) ? DateTime.Now.AddYears(1).AddDays(-DateTime.Now.AddYears(1).DayOfYear) : Method.StampToDateTime(timeend);
            // DateTime dt = DateTime.Now;
            // //本月第一天时间
            // DateTime dt_First = dt.AddDays(1 - (dt.Day));
            // //获得某年某月的天数
            // int year = dt.Date.Year;
            // int month = dt.Date.Month;
            // int dayCount = DateTime.DaysInMonth(year, month);
            // //本月最后一天时间
            // DateTime dt_Last = dt_First.AddDays(dayCount - 1);
            var employees             = Context.Set <Employee>().Where(x => x.Name.Contains(employeename)).OrderBy(y => y.Sort);
            IQueryable <Company> cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            var countToMoney = Convert.ToInt32(Context.Set <TbDictionary>().Where(x => x.DictionaryCode.Trim() == "A300001").FirstOrDefault().DictionaryName);
            //breakfast
            var breakfastId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("早餐")).FirstOrDefault().Id;
            //lunch
            var lunchId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("午餐")).FirstOrDefault().Id;
            //dinner
            var dinnerId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("晚餐")).FirstOrDefault().Id;
            //snake
            var snakeId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("夜宵")).FirstOrDefault().Id;
            var dbGive  = (from emp in employees
                           join give in Context.Vw_GiveRecords
                           on emp.JobId.Trim() equals give.JobId.Trim()
                           where start <= give.AddAt && give.AddAt <= end
                           select give).ToList();
            var dbRecord = (from emp in employees
                            join ur in Context.Vw_UseRecords
                            on emp.JobId.Trim() equals ur.JobId.Trim()
                            from rule in Context.Set <Rules>()
                            where start <= ur.AddAt && ur.AddAt <= end
                            where Method.isLegalTime(Convert.ToDateTime(ur.AddAt), rule.StartTime + "-" + rule.EndTime)
                            select new
            {
                recordId = ur.UseRecordId,
                useNumber = ur.UseNumber,
                ruleId = rule.Id,
                ruleName = rule.Name,
                jobId = emp.JobId,
                type = ur.GiveCountType
            }).ToList();

            var dbitems = from emp in employees
                          join company in cmps
                          on emp.CompanyId.Trim() equals company.Id.Trim()
                          orderby company.Sort ascending
                          orderby emp.Sort ascending
                          select new TopUpView
            {
                DepartmentName       = company.Name.Trim(),
                CompanyName          = Context.Set <Company>().Where(x => x.Id == company.ParentId).FirstOrDefault().Name.Trim(),
                EmployeeName         = emp.Name,
                LastMonthCarryNumber = dbRecord.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.type.Trim().Equals("A100003")).Sum(x => x.useNumber),
                LastMonthCarryMoney  = dbGive.Where(x => x.JobId.Trim().Equals(emp.JobId.Trim()) && x.GiveMoneyOrNumType.Trim().Equals("A500001")).Sum(x => x.GiveMoneyOrNum),
                TopUpNumber          = dbGive.Where(x => x.JobId.Trim().Equals(emp.JobId.Trim()) && x.GiveMoneyOrNumType.Trim().Equals("A400003")).Sum(x => x.GiveMoneyOrNum),
                SubsidiesMoney       = 0,         //dbGive.Where(x => x.JobId.Trim().Equals(emp.JobId.Trim()) && x.GiveMoneyOrNumType.Trim().Equals("A500002")).Sum(x => x.GiveMoneyOrNum),
                DeductionsBreakfast  = dbRecord.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(breakfastId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                DeductionsLunch      = dbRecord.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(lunchId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                DeductionsDinner     = dbRecord.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(dinnerId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                DeductionsSnack      = dbRecord.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.ruleId.Equals(snakeId) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                TotalDeductions      = dbRecord.Where(x => x.jobId.Trim().Equals(emp.JobId.Trim()) && x.type.Trim().Equals("A100001")).Sum(x => x.useNumber),
                ThisMonthCarryNumber = emp.AvailableCount,
                ThisMonthCarryMoney  = emp.AvailableCount * countToMoney
            };
            var result = await PaginatedList <TopUpView> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(result);
        }
コード例 #17
0
        public async Task <PaginatedList <CompanyPayoffTableView> > CompanyPayoffTable(string timestart, string timeend, string companyid, int page, int pageSize)
        {
            DateTime             start = Method.StampToDateTime(timestart);
            DateTime             end   = Method.StampToDateTime(timeend);
            IQueryable <Company> cmps  = Context.Set <Company>().Where(x => x.Id.Contains(companyid));

            if (cmps.FirstOrDefault().ParentId.Trim() == "0" && cmps.Count() == 1)
            {
                cmps = Context.Set <Company>().Where(x => x.ParentId.Equals(companyid));
            }
            else
            {
                cmps = Context.Set <Company>().Where(x => x.Id.Contains(companyid) && x.ParentId.Trim() != "0");
            }
            var records = (from ur in Context.Vw_UseRecords
                           from rule in Context.Set <Rules>()
                           from cmp in cmps
                           join emp in Context.Set <Employee>()
                           on cmp.Id.Trim() equals emp.CompanyId.Trim()
                           where ur.JobId.Trim() == emp.JobId.Trim()
                           where start <= ur.AddAt && ur.AddAt <= end
                           where ur.GiveCountType.Trim() == "A100001"
                           where Method.isLegalTime(Convert.ToDateTime(ur.AddAt), rule.StartTime + "-" + rule.EndTime)
                           select new
            {
                recordId = ur.UseRecordId,
                useNumber = ur.UseNumber,
                useMoney = ur.UseMoney,
                ruleId = rule.Id,
                ruleName = rule.Name,
                rulePrice = rule.Price,
                companyId = cmp.Id,
            }).ToList();

            var breakfastId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("早餐")).FirstOrDefault().Id;
            //lunch
            var lunchId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("午餐")).FirstOrDefault().Id;
            //dinner
            var dinnerId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("晚餐")).FirstOrDefault().Id;
            //snake
            var snakeId = Context.Set <Rules>().Where(x => x.Name.Trim().Equals("夜宵")).FirstOrDefault().Id;
            var dbitems = from cmp in cmps
                          orderby cmp.Sort ascending
                          select new CompanyPayoffTableView
            {
                DepartmentName          = cmp.Name.Trim(),
                CompanyName             = Context.Set <Company>().Where(x => x.Id == cmp.ParentId).FirstOrDefault().Name.Trim(),
                NumberOfBreakfast       = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(breakfastId)).Sum(x => x.useNumber),
                BreakfastPrice          = Context.Set <Rules>().Where(x => x.Id.Equals(breakfastId)).FirstOrDefault().Price,
                UseMoneyOfBreakfast     = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(breakfastId)).Sum(x => x.useNumber * x.rulePrice),
                NumberOfLunch           = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(lunchId)).Sum(x => x.useNumber),
                LunchPrice              = Context.Set <Rules>().Where(x => x.Id.Equals(lunchId)).FirstOrDefault().Price,
                UseMoneyOfLunch         = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(lunchId)).Sum(x => x.useNumber * x.rulePrice),
                NumberOfDinner          = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(dinnerId)).Sum(x => x.useNumber),
                DinnerPrice             = Context.Set <Rules>().Where(x => x.Id.Equals(dinnerId)).FirstOrDefault().Price,
                UseMoneyOfDinner        = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(dinnerId)).Sum(x => x.useNumber * x.rulePrice),
                NumberOfMidnightsnack   = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(snakeId)).Sum(x => x.useNumber),
                MidnightsnackPrice      = Context.Set <Rules>().Where(x => x.Id.Equals(snakeId)).FirstOrDefault().Price,
                UseMoneyOfMidnightsnack = records.Where(x => x.companyId.Trim().Equals(cmp.Id.Trim()) && x.ruleId.Equals(snakeId)).Sum(x => x.useNumber * x.rulePrice),
                AmountPayable           = 0,
                ActualAmount            = 0,
                Remarks = ""
            };
            var result = await PaginatedList <CompanyPayoffTableView> .CreatepagingAsync(dbitems.AsNoTracking(), page, pageSize);

            return(result);
        }