コード例 #1
0
        public IActionResult date_search(int?status, DateTime?start, DateTime?end)
        {
            int DepId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERDEPARTMENTID));

            var table = DB.TTravelExpenseApplications
                        .Join(DB.TUsers, t => t.CEmployeeId, u => u.CEmployeeId, (t, u) => new {
                CApplyDate       = t.CApplyDate,
                CEmployeeId      = t.CEmployeeId,
                CAmont           = t.CAmont,
                CCheckStatus     = t.CCheckStatus,
                CTravelStartTime = t.CTravelStartTime,
                CTravelEndTime   = t.CTravelEndTime,
                CReason          = t.CReason,
                CApplyNumber     = t.CApplyNumber,
                CEmployeeName    = u.CEmployeeName,
                CDepartmentId    = u.CDepartmentId
            }).OrderByDescending(t => t.CApplyDate).Where(sc =>
                                                          sc.CDepartmentId == DepId &&
                                                          sc.CEmployeeId != 1 &&
                                                          (status != null?sc.CCheckStatus == status:true) &&
                                                          (start != null?sc.CApplyDate >= start:true) &&
                                                          (end != null?sc.CApplyDate <= end:true)).ToList();

            List <Travel_Expense_ApplicationViewModel> list = new List <Travel_Expense_ApplicationViewModel>();

            foreach (var item in table)
            {
                Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                {
                    employeeName     = item.CEmployeeName,
                    CApplyNumber     = item.CApplyNumber,
                    CApplyDate       = item.CApplyDate,
                    CTravelStartTime = item.CTravelStartTime,
                    CTravelEndTime   = item.CTravelEndTime,
                    CAmont           = item.CAmont,
                    CReason          = item.CReason,
                    CEmployeeId      = item.CEmployeeId,
                    CCheckStatus     = item.CCheckStatus
                };
                list.Add(traObj);
            }
            return(PartialView("date_search", list));
        }
コード例 #2
0
        public IActionResult List()
        {
            int DepId = int.Parse(HttpContext.Session.GetString(CDictionary.CURRENT_LOGINED_USERDEPARTMENTID));
            List <Travel_Expense_ApplicationViewModel> list = new List <Travel_Expense_ApplicationViewModel>();

            List <TCheckStatus> checkSta = getCheckStatus();//取得資料庫的審核狀態

            ViewBag.travelStatus = checkSta;


            //searching
            if (!string.IsNullOrEmpty(Request.ContentType))
            {
                string AppNum = Request.Form["txtAppNum"];
                string Id     = Request.Form["txtId"];
                string Name   = Request.Form["txtName"];

                //AppNum有值
                if (!string.IsNullOrEmpty(AppNum) && string.IsNullOrEmpty(Id) && string.IsNullOrEmpty(Name))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                travel.CApplyNumber.ToString().Contains(AppNum)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //Id有值
                else if (string.IsNullOrEmpty(AppNum) && !string.IsNullOrEmpty(Id) && string.IsNullOrEmpty(Name))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                travel.CEmployeeId.ToString().Contains(Id)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //Name有值
                else if (string.IsNullOrEmpty(AppNum) && string.IsNullOrEmpty(Id) && !string.IsNullOrEmpty(Name))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                user.CEmployeeName.Contains(Name)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //AppNum, Id有值
                else if (!string.IsNullOrEmpty(AppNum) && !string.IsNullOrEmpty(Id) && string.IsNullOrEmpty(Name))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                travel.CApplyNumber.ToString().Contains(AppNum) &&
                                travel.CEmployeeId.ToString().Contains(Id)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //Name, Id有值
                else if (!string.IsNullOrEmpty(Id) && !string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(AppNum))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                travel.CEmployeeId.ToString().Contains(Id) &&
                                user.CEmployeeName.Contains(Name)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //Name, AppNum有值
                else if (!string.IsNullOrEmpty(AppNum) && !string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(Id))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                travel.CApplyNumber.ToString().Contains(AppNum) &&
                                user.CEmployeeName.Contains(Name)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //全部有值
                else if (!string.IsNullOrEmpty(AppNum) && !string.IsNullOrEmpty(Id) && !string.IsNullOrEmpty(Name))
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1 &&
                                travel.CApplyNumber.ToString().Contains(AppNum) &&
                                travel.CEmployeeId.ToString().Contains(Id) &&
                                user.CEmployeeName.Contains(Name)
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
                //全部條件為空白
                else if (AppNum == "" && Id == "" && Name == "")
                {
                    var table = from travel in DB.TTravelExpenseApplications
                                join user in DB.TUsers on travel.CEmployeeId equals user.CEmployeeId
                                where travel.CDepartmentId == DepId &&
                                travel.CEmployeeId != 1
                                orderby travel.CApplyDate descending
                                select new
                    {
                        user.CEmployeeName,
                        travel.CApplyDate,
                        travel.CEmployeeId,
                        travel.CAmont,
                        travel.CCheckStatus,
                        travel.CTravelStartTime,
                        travel.CTravelEndTime,
                        travel.CReason,
                        travel.CApplyNumber
                    };
                    foreach (var item in table)
                    {
                        Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                        {
                            employeeName     = item.CEmployeeName,
                            CApplyNumber     = item.CApplyNumber,
                            CApplyDate       = item.CApplyDate,
                            CTravelStartTime = item.CTravelStartTime,
                            CTravelEndTime   = item.CTravelEndTime,
                            CAmont           = item.CAmont,
                            CReason          = item.CReason,
                            CEmployeeId      = item.CEmployeeId,
                            CCheckStatus     = item.CCheckStatus
                        };
                        list.Add(traObj);
                    }
                }
            }
            //全部條件為空白
            else
            {
                var table = from travel in DB.TTravelExpenseApplications
                            join user in DB.TUsers
                            on travel.CEmployeeId equals user.CEmployeeId
                            where travel.CDepartmentId == DepId &&
                            travel.CEmployeeId != 1
                            orderby travel.CApplyDate descending
                            select new
                {
                    user.CEmployeeName,
                    travel.CApplyDate,
                    travel.CEmployeeId,
                    travel.CAmont,
                    travel.CCheckStatus,
                    travel.CTravelStartTime,
                    travel.CTravelEndTime,
                    travel.CReason,
                    travel.CApplyNumber
                };

                foreach (var item in table)
                {
                    Travel_Expense_ApplicationViewModel traObj = new Travel_Expense_ApplicationViewModel()
                    {
                        employeeName     = item.CEmployeeName,
                        CApplyNumber     = item.CApplyNumber,
                        CApplyDate       = item.CApplyDate,
                        CTravelStartTime = item.CTravelStartTime,
                        CTravelEndTime   = item.CTravelEndTime,
                        CAmont           = item.CAmont,
                        CReason          = item.CReason,
                        CEmployeeId      = item.CEmployeeId,
                        CCheckStatus     = item.CCheckStatus
                    };
                    list.Add(traObj);
                }
            }
            return(View(list));
        }