Beispiel #1
0
        /// <summary>
        /// 取得RowUnid
        /// </summary>
        /// <param name="EmpID">員工代碼</param>
        /// <param name="WorkingDate">工作日</param>
        /// <remarks>
        /// 傳入EmpID, WorkingDate,查詢並轉換為單日填報RowUnid代碼
        /// </remarks>
        /// <returns></returns>
        protected string GetWorkingHoursRowUnidByWorkingDate(string EmpID, DateTime WorkingDate)
        {
            string RowUnid = null;

            // 查詢 [whs].[WorkingHours]
            var MyHrisDB             = new HrisDbContext();
            var WorkingHoursQuerable = MyHrisDB.TB_WorkingHours
                                       .Where(b => b.EmpID == EmpID && b.WorkingDate == WorkingDate);


            if (WorkingHoursQuerable != null && WorkingHoursQuerable.Count() > 0)
            {
                WorkingHoursEntity WorkingHoursInfo = WorkingHoursQuerable.FirstOrDefault();
                RowUnid = WorkingHoursInfo?.RowUnid;
            }

            return(RowUnid);
        }
Beispiel #2
0
        public ActionResult <ApplicationDetailEntity> GetApplicationDetail(string FlowID)
        {
            // ===========================================
            ApplicationDetailEntity retApplicationDetailInfo = new ApplicationDetailEntity();

            List <WorkdateListEntity> retWorkdateList = new List <WorkdateListEntity>();



            // ============================================
            var MyHrisDB = new HrisDbContext();


            // 查詢ProcessStatus ====================================================
            // 申請案件基本資料
            ProcessStatusEntity ProcessStatusInfo = MyHrisDB.TB_ProcessStatusEntitys
                                                    .Where(b => b.FlowID == FlowID && b.IsDeleted == "0").FirstOrDefault();

            if (ProcessStatusInfo == null)
            {
                return(NotFound(retApplicationDetailInfo));
            }

            string EmpID   = ProcessStatusInfo.ApplyID;
            string EmpName = MyHrisDB.TB_Employees
                             .Where(e => e.EmpID == EmpID).Select(e => e.EmpName.Trim()).FirstOrDefault();

            retApplicationDetailInfo.Home =
                new ApplicationDetailHomeEntity()
            {
                EmpName = EmpName
            };


            // 查詢ProcessStatusDetail ====================================================
            // 申請案件明細資料
            List <ProcessStatusDetailEntity> ProcessStatusDetailListInfo =
                MyHrisDB.TB_ProcessStatusDetailEntitys
                .Where(p => p.FlowID == FlowID).ToList();

            foreach (string currentRowUnid in ProcessStatusDetailListInfo
                     .Select(p => p.RowUnid.Trim()))
            {
                WorkingHoursEntity WorkingHoursEntityInfo =
                    MyHrisDB.TB_WorkingHours
                    .Where(w => w.RowUnid == currentRowUnid && w.IsDelete == "0")
                    .FirstOrDefault();

                if (WorkingHoursEntityInfo == null)
                {
                    return(NotFound(retApplicationDetailInfo));
                }


                List <WorkingHoursDetailWithJobNameEntity> WorkingHoursDetailWithJobNameListInfo =
                    (from currentvwWorkingHoursDetailInfo in MyHrisDB.VW_vwWorkingHoursDetailEntitys
                     where currentvwWorkingHoursDetailInfo.RowUnid == currentRowUnid
                     select new WorkingHoursDetailWithJobNameEntity
                {
                    TypeCode = currentvwWorkingHoursDetailInfo.TypeCode,
                    JobCode = currentvwWorkingHoursDetailInfo.JobCode,
                    JobName = currentvwWorkingHoursDetailInfo.JobName,
                    WorkingHours = currentvwWorkingHoursDetailInfo.WorkingHours,
                    Note = currentvwWorkingHoursDetailInfo.Note
                }).ToList();


                WorkdateListEntity WorkdateListInfo = new WorkdateListEntity();
                WorkdateListInfo.RowUnid               = WorkingHoursEntityInfo.RowUnid;
                WorkdateListInfo.WorkingDate           = WorkingHoursEntityInfo.WorkingDate.ToString("yyyy-MM-dd");
                WorkdateListInfo.WorkingHourDetailList = WorkingHoursDetailWithJobNameListInfo;

                retWorkdateList.Add(WorkdateListInfo);
            }

            retApplicationDetailInfo.WorkdateList = retWorkdateList;


            return(Ok(retApplicationDetailInfo));
        }