Esempio n. 1
0
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r1EvalueKPIOneUser(Report_TotalTimePara optionRePort)
        {
            try
            {
                var userId = 0;
                if (optionRePort.UserId == 0)
                {
                    userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                }
                else
                {
                    userId = optionRePort.UserId;
                }
                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = await _context.RePort_KpiForUseraMonth.FromSqlRaw("EXEC RePort_KPIForEmployeeaMonth {0}, {1}, {2}", userId,
                                                                                     TransforDate.FromDoubleToDate(optionRePort.dates ?? datesDefault),
                                                                                     TransforDate.FromDoubleToDate(optionRePort.datee ?? dateeDefault)
                                                                                     ).ToListAsync();

                return(new ObjectResult(new { error = 0, data = reports }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
Esempio n. 2
0
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r1WorkTimeForDepartment()
        {
            try
            {
                RequestToken token = CommonData.GetDataFromToken(User);
                var          user  = await _context.Sys_Dm_User.FindAsync(token.UserID);

                var listUser = await _context.Sys_Dm_User.Where(x => x.ParentDepartId == user.ParentDepartId).Select(x => x.Id).ToListAsync();

                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = from a in _context.CV_QT_MyWork
                                   join b in _context.Sys_Dm_User on a.UserTaskId equals b.Id
                                   where a.EndDate.Value.Date >= TransforDate.FromDoubleToDate(datesDefault).Date &&
                                   a.EndDate.Value.Date <= TransforDate.FromDoubleToDate(dateeDefault).Date &&
                                   listUser.Contains(a.UserTaskId)
                                   group a by new { a.UserTaskId, b.FullName } into gr
                    select new
                {
                    gr.Key.UserTaskId,
                    gr.Key.FullName,
                    PointCount = gr.Sum(x => x.WorkTime)
                };
                var qrs = await reports.OrderBy(x => x.FullName).ToListAsync();

                return(new ObjectResult(new { error = 0, data = qrs }));
            }
            catch (Exception e)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
Esempio n. 3
0
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r1EvalueReportTotalTime(Report_TotalTimePara report)
        {
            try
            {
                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = _context.Report_TotalTimeWork.FromSqlRaw("EXEC Report_TotalTimeWork {0}, {1}, {2}",
                                                                            TransforDate.FromDoubleToDate(report.dates ?? datesDefault),
                                                                            TransforDate.FromDoubleToDate(report.datee ?? dateeDefault),
                                                                            new DateTime(DateTime.Now.Year, 01, 01)).ToList();

                return(new ObjectResult(new { error = 0, data = reports }));
            }
            catch (Exception)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
Esempio n. 4
0
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r1ReportNoteWorks(Report_TotalTimePara model)
        {
            try
            {
                var userId = 0;
                if (model.UserId == 0)
                {
                    userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                }
                else
                {
                    userId = model.UserId;
                }

                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = from a in _context.CV_QT_WorkNote
                                   join b in _context.CV_QT_MyWork on a.MyWorkId equals b.Id
                                   where a.CreatedBy == userId &&
                                   a.DateStart.Value.Date >= TransforDate.FromDoubleToDate(model.dates ?? datesDefault).Date &&
                                   a.DateStart.Value.Date <= TransforDate.FromDoubleToDate(model.datee ?? dateeDefault).Date
                                   select new
                {
                    a.Id,
                    a.MyWorkId,
                    a.WorkTime,
                    a.DateStart,
                    a.DateEnd,
                    a.CreatedBy,
                    b.TaskCode,
                    b.TaskName
                };
                var qrs = await reports.OrderBy(x => x.DateStart).ToListAsync();

                return(new ObjectResult(new { error = 0, data = qrs }));
            }
            catch (Exception e)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }
Esempio n. 5
0
        public string GetConnectionId(string userId)
        {
            string connectionId = Context.ConnectionId;
            var    contact      = _context.Sys_Dm_Connection.FirstOrDefault(x => x.UserId == Convert.ToInt32(userId));

            if (contact != null)
            {
                contact.ConnectionId = connectionId;
                contact.CreatedDate  = TransforDate.FromDateToDouble(DateTime.Now);
            }
            else
            {
                Sys_Dm_Connection obj = new Sys_Dm_Connection()
                {
                    UserId       = Convert.ToInt32(userId),
                    ConnectionId = connectionId,
                    CreatedDate  = TransforDate.FromDateToDouble(DateTime.Now)
                };
                _context.Sys_Dm_Connection.Add(obj);
            }
            _context.SaveChanges();
            return(connectionId);
        }
Esempio n. 6
0
        public async Task <IActionResult> ExportTotalSumTimeExcel(Report_TotalTimePara report)
        {
            try
            {
                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = _context.Report_TotalTimeWork.FromSqlRaw("EXEC Report_TotalTimeWork {0}, {1}, {2}",
                                                                            TransforDate.FromDoubleToDate(report.dates ?? datesDefault),
                                                                            TransforDate.FromDoubleToDate(report.datee ?? dateeDefault),
                                                                            new DateTime(DateTime.Now.Year, 01, 01)).ToList();
                var userId = 0;
                userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                var user = await _context.Sys_Dm_User.FindAsync(userId);

                string   folderExport = "Resources\\ExportFile\\HieuQuaCV\\";
                var      ExPath       = Path.Combine(Directory.GetCurrentDirectory(), folderExport);
                string   fullPathEx   = "";
                Workbook wbex         = new Workbook(); // export
                #region Xuất báo cáo tổng hợp thời gian
                fullPathEx = ExPath + "Sumtime.xlsx";

                StringBuilder sb = new StringBuilder();
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
                FileInfo tempEx = new FileInfo(fullPathEx);
                using (ExcelPackage pckex = new ExcelPackage(tempEx))
                {
                    ExcelWorksheet ws = pckex.Workbook.Worksheets.FirstOrDefault();
                    for (int r = 0; r < reports.Count(); r++)
                    {
                        ws.Cells[r + 7, 1].Value  = (r + 1).ToString();
                        ws.Cells[r + 7, 2].Value  = reports[r].TaskName;
                        ws.Cells[r + 7, 3].Value  = reports[r].TaskCode;
                        ws.Cells[r + 7, 4].Value  = Math.Round(Convert.ToDouble(reports[r].Tong / report.TotalHour ?? 1), 2);
                        ws.Cells[r + 7, 5].Value  = Math.Round(Convert.ToDouble(reports[r].WorkNgay), 2);
                        ws.Cells[r + 7, 6].Value  = Math.Round(Convert.ToDouble(reports[r].Tong * 100) / report.TotalHour ?? 1, 2);
                        ws.Cells[r + 7, 7].Value  = Math.Round(Convert.ToDouble(reports[r].ChuTri), 2);
                        ws.Cells[r + 7, 8].Value  = Math.Round(Convert.ToDouble(reports[r].PhoiHop), 2);
                        ws.Cells[r + 7, 9].Value  = Math.Round(Convert.ToDouble((reports[r].TongLk * 100) / report.TotalHourLk ?? 1), 2);
                        ws.Cells[r + 7, 10].Value = Math.Round(Convert.ToDouble(reports[r].TongLk / report.TotalHourLk ?? 1), 2);
                        ws.Cells[r + 7, 11].Value = Math.Round(Convert.ToDouble(reports[r].NgayLk), 2);
                        ws.Cells[r + 7, 12].Value = Math.Round(Convert.ToDouble(reports[r].ChuTriLk), 2);
                        ws.Cells[r + 7, 13].Value = Math.Round(Convert.ToDouble(reports[r].PhoiHopLk), 2);
                    }

                    byte[] fileContents;
                    string ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                    //Dispose the Excel engine
                    fileContents = pckex.GetAsByteArray();
                    return(File(
                               fileContents: fileContents,
                               contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                               fileDownloadName: "test.xlsx"
                               ));
                }

                #endregion
            }
            catch (Exception ex)
            {
                return(NoContent());
            }
        }
Esempio n. 7
0
        public async Task <IActionResult> ExportTotalWorkExcel()
        {
            try
            {
                var model  = JsonConvert.DeserializeObject <Report_TotalTimePara>(Request.Form["model"]);
                var userId = 0;
                if (model.UserId == 0) // nếu user truyền vào = 0 thì gán cho user mặc định
                {
                    userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                }
                else
                {
                    userId = model.UserId;
                }

                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var startDate    = TransforDate.FromDoubleToDate(model.dates ?? datesDefault);
                var endDate      = TransforDate.FromDoubleToDate(model.datee ?? dateeDefault);
                var user         = await _context.Sys_Dm_User.FindAsync(userId);

                string   folderImport = "Resources\\ExportFile\\ParaFile\\";
                string   folderExport = "Resources\\ExportFile\\HieuQuaCV\\";
                var      ImPath       = Path.Combine(Directory.GetCurrentDirectory(), folderImport);
                var      ExPath       = Path.Combine(Directory.GetCurrentDirectory(), folderExport);
                string   fullPath     = "";
                string   fullPathEx   = "";
                Workbook workbook     = new Workbook(); // import
                Workbook wbex         = new Workbook(); // export
                if (Request.Form.Files.Count > 0)
                {
                    var    file     = Request.Form.Files[0];
                    string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).Name.Trim('"');
                    string Pathl    = ImPath + fileName;
                    fullPath = ImPath + fileName;
                    using (var stream = new FileStream(Pathl, FileMode.Create))
                    {
                        file.CopyTo(stream);
                    }
                }
                workbook.LoadFromFile(fullPath);
                #region Xuất báo cáo tổng hợp công việc
                fullPathEx = ExPath + "Sumtime.xlsx";

                StringBuilder sb = new StringBuilder();
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
                FileInfo temp   = new FileInfo(fullPath);
                FileInfo tempEx = new FileInfo(fullPathEx);
                using (ExcelPackage pck = new ExcelPackage(temp))
                {
                    ExcelWorksheet wsIm = pck.Workbook.Worksheets.FirstOrDefault();
                    using (ExcelPackage pckex = new ExcelPackage(tempEx))
                    {
                        ExcelWorksheet ws = pckex.Workbook.Worksheets.FirstOrDefault();
                        ws.Cells[4, 4].Value = "Từ ngày" + startDate.Date.ToString("dd/MM/yyyy") + "đến hết ngày" + endDate.Date.ToString("dd/MM/yyyy");
                        for (int r = 1; r <= wsIm.Dimension.End.Row; r++)
                        {
                            for (int c = 1; c <= wsIm.Dimension.End.Column; c++)
                            {
                                ws.Cells[r + 6, c].Value = wsIm.Cells[r, c].Value != null ? wsIm.Cells[r, c].Value : "";
                            }
                        }

                        byte[] fileContents;
                        string ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                        //Dispose the Excel engine
                        fileContents = pckex.GetAsByteArray();
                        return(File(
                                   fileContents: fileContents,
                                   contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                                   fileDownloadName: "baocao.xlsx"
                                   ));
                    }
                }

                #endregion
            }
            catch (Exception)
            {
                return(NoContent());
            }
        }
Esempio n. 8
0
        public async Task <IActionResult> ExportExcel()
        {
            try
            {
                var model  = JsonConvert.DeserializeObject <OptionRePort>(Request.Form["model"]);
                var userId = 0;
                if (model.UserId == 0)
                {
                    userId = Convert.ToInt32(User.Claims.First(c => c.Type == "UserId").Value);
                }
                else
                {
                    userId = model.UserId;
                }
                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var startDate    = TransforDate.FromDoubleToDate(model.ReportDate.dates ?? datesDefault);
                var endDate      = TransforDate.FromDoubleToDate(model.ReportDate.datee ?? dateeDefault);
                var user         = await _context.Sys_Dm_User.FindAsync(userId);

                string   folderImport = "Resources\\ExportFile\\ParaFile\\";
                string   folderExport = "Resources\\ExportFile\\HieuQuaCV\\";
                var      ImPath       = Path.Combine(Directory.GetCurrentDirectory(), folderImport);
                var      ExPath       = Path.Combine(Directory.GetCurrentDirectory(), folderExport);
                string   fullPath     = "";
                string   fullPathEx   = "";
                Workbook workbook     = new Workbook(); // import
                Workbook wbex         = new Workbook(); // export
                if (Request.Form.Files.Count > 0)
                {
                    var    file     = Request.Form.Files[0];
                    string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).Name.Trim('"');
                    string Pathl    = ImPath + fileName;
                    fullPath = ImPath + fileName;
                    using (var stream = new FileStream(Pathl, FileMode.Create))
                    {
                        file.CopyTo(stream);
                    }
                }
                workbook.LoadFromFile(fullPath);
                workbook.SaveToFile(fullPath, ExcelVersion.Version2013);
                #region Xuất báo cáo nhật ký công việc
                fullPathEx = ExPath + "KPI.xlsx";

                StringBuilder sb = new StringBuilder();
                ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
                FileInfo temp   = new FileInfo(fullPath);
                FileInfo tempEx = new FileInfo(fullPathEx);
                using (ExcelPackage pck = new ExcelPackage(temp))
                {
                    ExcelWorksheet wsIm = pck.Workbook.Worksheets.FirstOrDefault();
                    using (ExcelPackage pckex = new ExcelPackage(tempEx))
                    {
                        ExcelWorksheet ws = pckex.Workbook.Worksheets.FirstOrDefault();
                        ws.Cells[3, 1].Value = "Họ và tên: " + user.FullName.ToUpper() + "Từ " + startDate.ToString("dd/MM/yyyy") + " đến " + endDate.ToString("dd/MM/yyyy");
                        for (int r = 1; r < wsIm.Dimension.End.Row; r++)
                        {
                            for (int c = 1; c <= wsIm.Dimension.End.Column; c++)
                            {
                                ws.Cells[r + 6, c].Value = wsIm.Cells[r, c].Value != null ? wsIm.Cells[r, c].Value : "";
                                if (c == 8 || c == 18)
                                {
                                    ws.Cells[r + 6, c].Value = wsIm.Cells[r, c].Value != null?Convert.ToDouble(wsIm.Cells[r, c].Value) / 100 : 0;
                                }
                            }
                            ws.InsertRow(r + 7, 1, 7);
                            if (r == wsIm.Dimension.End.Row - 1)
                            {
                                ws.SelectedRange[r + 8, 7].Value    = "=Sum(G7:G" + (wsIm.Dimension.End.Row + 5) + ")";
                                ws.SelectedRange[r + 8, 7].Formula  = "=Sum(G7:G" + (wsIm.Dimension.End.Row + 5) + ")";
                                ws.SelectedRange[r + 8, 8].Value    = "=Sum(H7:H" + (wsIm.Dimension.End.Row + 5) + ")";
                                ws.SelectedRange[r + 8, 8].Formula  = "=Sum(H7:H" + (wsIm.Dimension.End.Row + 5) + ")";
                                ws.SelectedRange[r + 8, 17].Value   = "=Sum(R7:R" + (wsIm.Dimension.End.Row + 5) + ")";
                                ws.SelectedRange[r + 8, 17].Formula = "=Sum(Q7:Q" + (wsIm.Dimension.End.Row + 5) + ")";
                            }
                        }

                        byte[] fileContents;
                        string ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                        //Dispose the Excel engine
                        fileContents = pckex.GetAsByteArray();
                        return(File(
                                   fileContents: fileContents,
                                   contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                                   fileDownloadName: "test.xlsx"
                                   ));
                    }
                }

                #endregion
            }
            catch (Exception ex)
            {
                return(NoContent());
            }
        }
Esempio n. 9
0
        public async Task <ActionResult <IEnumerable <CV_QT_MyWork> > > r1SpaceTimeOnDay()
        {
            try
            {
                TimeSpan     ts17  = new TimeSpan(17, 00, 0);
                RequestToken token = CommonData.GetDataFromToken(User);

                var datesDefault = TransforDate.FromDateToDouble(new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01));
                var dateeDefault = TransforDate.FromDateToDouble(DateTime.Now);
                var reports      = (from a in _context.CV_QT_StartPauseHistory
                                    where a.UserCreateId == token.UserID && a.Done != true && a.CreateDate.Month == DateTime.Now.Month
                                    orderby a.Id
                                    select new
                {
                    a.Id,
                    a.CreateDate,
                    a.CycleWork,
                    a.MyWorkId,
                    a.UserCreateId
                }).ToList();
                if (reports.Count() < 2)
                {
                    return(new ObjectResult(new { error = 0 }));
                }
                List <CV_QT_SpaceTimeOnDay> listSpace = new List <CV_QT_SpaceTimeOnDay>();

                for (int i = 0; i < reports.Count() - 1; i++)
                {
                    if (reports[i].CreateDate.Hour >= 17 && reports[i].CreateDate.Minute > 3)
                    {
                        continue;
                    }
                    if (reports[i].CycleWork == 2)
                    {
                        CV_QT_SpaceTimeOnDay obj = new CV_QT_SpaceTimeOnDay()
                        {
                            SpaceStart = TransforDate.FromDateToDouble(reports[i].CreateDate),
                            SpaceEnd   = TransforDate.FromDateToDouble(reports[i + 1].CreateDate),
                            Time       = SpaceTimeOnDay.CalSpaceTimeOnDay(reports[i].CreateDate, reports[i + 1].CreateDate),
                            MyWorkId   = reports[i].MyWorkId,
                            UserId     = reports[i].UserCreateId
                        };
                        if (obj.Time >= 30)
                        {
                            listSpace.Add(obj);
                        }
                    }
                }
                var objup = _context.CV_QT_StartPauseHistory.Where(x => x.UserCreateId == token.UserID && x.Done != true);
                foreach (var item in objup)
                {
                    item.Done = true;
                }
                _context.CV_QT_StartPauseHistory.UpdateRange(objup);
                await _context.AddRangeAsync(listSpace);

                await _context.SaveChangesAsync();

                return(new ObjectResult(new { error = 0 }));
            }
            catch (Exception e)
            {
                return(new ObjectResult(new { error = 1 }));
            }
        }