public PartialViewResult DetailDanhGia(long id) { DanhGiaCongViecModel model = new DanhGiaCongViecModel(); HSCV_CONGVIECBusiness = Get <HSCV_CONGVIECBusiness>(); CongViecBO CongViec = HSCV_CONGVIECBusiness.FindById(id); if (CongViec != null) { model.CongViec = CongViec; PHIEUDANHGIACONGVIECBusiness = Get <PHIEUDANHGIACONGVIECBusiness>(); model.PhieuDanhGia = PHIEUDANHGIACONGVIECBusiness.GetData(id); } else { model.CongViec = new CongViecBO(); model.PhieuDanhGia = new PHIEUDANHGIACONGVIEC(); } return(PartialView("_Detail", model)); }
public ActionResult ExportData(long id) { DanhGiaCongViecModel model = new DanhGiaCongViecModel(); HSCV_CONGVIECBusiness = Get <HSCV_CONGVIECBusiness>(); CongViecBO CongViec = HSCV_CONGVIECBusiness.FindById(id); if (CongViec != null) { model.CongViec = CongViec; PHIEUDANHGIACONGVIECBusiness = Get <PHIEUDANHGIACONGVIECBusiness>(); model.PhieuDanhGia = PHIEUDANHGIACONGVIECBusiness.GetData(id); } else { model.CongViec = new CongViecBO(); model.PhieuDanhGia = new PHIEUDANHGIACONGVIEC(); } return(View("Export", model)); }
private void InitRow(List <CongViecBO> LstCongViec, List <HSCV_CONGVIEC_NGUOITHAMGIAXULY> ListThamGia, List <HSCV_CONGVIEC_LAPKEHOACH> ListPlan, List <DM_NGUOIDUNG> ListNguoiDung, ref string html, ref int rootIdx, out int sizePlan, out int size, ref string thamgia, CongViecBO item, string idx, bool isRoot) { int chenhlech = 0; var LstTrinhDuyet = HSCV_TRINHDUYETCONGVIECBusiness.repository.All().Where(x => x.CONGVIEC_ID == item.ID).ToArray(); var LstLuiHan = HSCV_CONGVIEC_XINLUIHANBusiness.repository.All().Where(x => x.CONGVIEC_ID == item.ID).Count(); var DanhGia = PHIEUDANHGIACONGVIECBusiness.repository.All().Where(x => x.CONGVIEC_ID == item.ID).FirstOrDefault(); var ListNguoiDungTemp = ListNguoiDung.Where(x => ListThamGia.Select(y => y.CONGVIEC_ID).Contains(item.ID)).ToList(); var ListPlanTemp = ListPlan.Where(x => item.ID == x.CONGVIEC_ID).ToList(); ReportExcelModel reportExcel = new ReportExcelModel(); string level = "level-"; if (string.IsNullOrEmpty(idx)) { level = "level-1"; } else { level = "level-" + (currentJobStt + idx.ToString()).ToListInt('.').Count; } html += "<tr " + (isRoot ? "class='job-parent " + level + "'" : "class='" + level + "'") + ">"; //STT reportExcel.Stt = (string.IsNullOrEmpty(idx) ? rootIdx.ToString() : (currentJobStt + idx.ToString())); html += "<td class='first-child'><strong>" + (string.IsNullOrEmpty(idx) ? rootIdx.ToString() : (currentJobStt + idx.ToString())) + "</strong></td>"; //Hạng mục công việc reportExcel.JobName = item.TENCONGVIEC; html += "<td><div title='" + item.TENCONGVIEC + "'>" + (!string.IsNullOrEmpty(item.TENCONGVIEC) && item.TENCONGVIEC.Trim().Length > 150 ? (item.TENCONGVIEC.Trim().Substring(0, 150) + "...") : item.TENCONGVIEC) + "</div></td>"; //Nội dung chi tiết string noidung = HttpUtility.HtmlDecode(item.NOIDUNGCONGVIEC.RemoveHtml()); reportExcel.JobContent = noidung; html += "<td><div title='" + noidung + "' >" + (!string.IsNullOrEmpty(noidung) && noidung.Trim().Length > 150 ? (noidung.Substring(0, 150) + "...") : noidung) + "</div></td>"; //Các bước thực hiện string step = HttpUtility.HtmlDecode(item.CACBUOC_THUCHIEN.RemoveHtml()); reportExcel.JobStep = step; html += "<td><div title='" + step + "' >" + (!string.IsNullOrEmpty(step) && step.Trim().Length > 150 ? (step.Substring(0, 150) + "...") : step) + "</div></td>"; //Mục tiêu công việc string muctieu = HttpUtility.HtmlDecode(item.MUCTIEU_CONGVIEC.RemoveHtml()); reportExcel.Purpose = muctieu; html += "<td><div title='" + muctieu + "'>" + (!string.IsNullOrEmpty(muctieu) && muctieu.Trim().Length > 150 ? (muctieu.Substring(0, 150) + "...") : muctieu) + "</div></td>"; //Người xử lý chính reportExcel.MainUser = item.TEN_NGUOIXULYCHINH; html += "<td>" + item.TEN_NGUOIXULYCHINH + "</td>"; size = ListNguoiDungTemp.Count; thamgia = ""; for (int i = 0; i < size; i++) { if (i == size - 1) { thamgia += ListNguoiDungTemp[i].HOTEN; } else { thamgia += ListNguoiDungTemp[i].HOTEN + ", "; } } //Người hỗ trợ reportExcel.JoinUser = thamgia; html += "<td>" + thamgia + "</td>"; //Ngày nhận việc reportExcel.ReceiveDate = (item.NGAY_NHANVIEC.HasValue ? item.NGAY_NHANVIEC.Value.ToString("dd/MM/yyyy") : ""); html += "<td>" + (item.NGAY_NHANVIEC.HasValue ? item.NGAY_NHANVIEC.Value.ToString("dd/MM/yyyy") : "") + "</td>"; //Ngày hoàn thành reportExcel.DateLine = (item.NGAYHOANTHANH_THEOMONGMUON.HasValue ? item.NGAYHOANTHANH_THEOMONGMUON.Value.ToString("dd/MM/yyyy") : ""); html += "<td>" + (item.NGAYHOANTHANH_THEOMONGMUON.HasValue ? item.NGAYHOANTHANH_THEOMONGMUON.Value.ToString("dd/MM/yyyy") : "") + "</td>"; var TongSoNgayChoDuyet = 0; sizePlan = ListPlanTemp.Count; #region Kế hoạch công việc for (var i = 0; i < 3; i++) { if (i < sizePlan) { string Browser = (ListPlanTemp[i].CREATED_AT.HasValue ? ListPlanTemp[i].CREATED_AT.Value.ToString("dd/MM/yyyy") : ""); string FeedBack = ListPlanTemp[i].NGAYCAPTRENPHANHOI != null ? ListPlanTemp[i].NGAYCAPTRENPHANHOI.Value.ToString("dd/MM/yyyy") : ""; string WaitingResponse = ListPlanTemp[i].SONGAYCHOPHANHOI.HasValue ? ListPlanTemp[i].SONGAYCHOPHANHOI.Value.ToString() : ""; string Result = ListPlanTemp[i].KETQUATRINHDUYET; switch (i) { case 0: reportExcel.FirstReview = Browser; reportExcel.FirstFeedback = FeedBack; reportExcel.FirstWaitingResponse = WaitingResponse; reportExcel.SecondResult = Result; break; case 1: reportExcel.SecondReview = Browser; reportExcel.SecondFeedback = FeedBack; reportExcel.SecondWaitingResponse = WaitingResponse; reportExcel.FirstResult = Result; break; case 2: reportExcel.ThirdReview = Browser; reportExcel.ThirdFeedback = FeedBack; reportExcel.ThirdWaitingResponse = WaitingResponse; reportExcel.ThirdResult = Result; break; } html += "<td>" + Browser + "</td>"; html += "<td>" + FeedBack + "</td>"; html += "<td>" + WaitingResponse + "</td>"; html += "<td>" + Result + "</td>"; TongSoNgayChoDuyet += ListPlanTemp[i].SONGAYCHOPHANHOI.HasValue ? ListPlanTemp[i].SONGAYCHOPHANHOI.Value : 0; } else { switch (i) { case 0: reportExcel.FirstReview = ""; reportExcel.FirstFeedback = ""; reportExcel.FirstWaitingResponse = ""; reportExcel.FirstResult = ""; break; case 1: reportExcel.SecondReview = ""; reportExcel.SecondFeedback = ""; reportExcel.SecondWaitingResponse = ""; reportExcel.SecondResult = ""; break; case 2: reportExcel.ThirdReview = ""; reportExcel.ThirdFeedback = ""; reportExcel.ThirdWaitingResponse = ""; reportExcel.ThirdResult = ""; break; } html += "<td></td>"; html += "<td></td>"; html += "<td></td>"; html += "<td></td>"; } } #endregion //Ngày duyệt kế hoạch string ApprovalDate = (item.NGAYDUYET.HasValue ? item.NGAYDUYET.Value.ToString("dd/MM/yyyy") : ""); reportExcel.ApprovalDate = ApprovalDate; html += "<td>" + ApprovalDate + "</td>"; //Ngày bắt đầu KH string StartDate = (item.NGAYBATDAU_KEHOACH.HasValue ? item.NGAYBATDAU_KEHOACH.Value.ToString("dd/MM/yyyy") : ""); reportExcel.StartDate = StartDate; html += "<td>" + StartDate + "</td>"; //Ngày hoàn thành KH string CompleteDate = (item.NGAYKETTHUC_KEHOACH.HasValue ? item.NGAYKETTHUC_KEHOACH.Value.ToString("dd/MM/yyyy") : ""); reportExcel.CompleteDate = CompleteDate; html += "<td>" + CompleteDate + "</td>"; //Thời gian triển khai theo KH if (item.NGAYBATDAU_KEHOACH.HasValue && item.NGAYKETTHUC_KEHOACH.HasValue) { chenhlech = (int)(item.NGAYKETTHUC_KEHOACH.Value - item.NGAYBATDAU_KEHOACH.Value).TotalDays; html += "<td>" + chenhlech + "</td>"; } else { html += "<td>0</td>"; } reportExcel.DeployDay = chenhlech.ToString(); //Ngày bắt đầu string DeployDate = (item.NGAYBATDAU_THUCTE.HasValue ? item.NGAYBATDAU_THUCTE.Value.ToString("dd/MM/yyyy") : ""); reportExcel.DeployDate = DeployDate; html += "<td>" + DeployDate + "</td>"; size = LstTrinhDuyet.Count(); #region Thời gian triển khai thực tế for (var i = 0; i < 3; i++) { if (i < size) { string Browser = (LstTrinhDuyet[i].CREATED_AT.HasValue ? LstTrinhDuyet[i].CREATED_AT.Value.ToString("dd/MM/yyyy") : ""); string FeedbackBrowser = LstTrinhDuyet[i].NGAYPHANHOI != null ? LstTrinhDuyet[i].NGAYPHANHOI.Value.ToString("dd/MM/yyyy") : ""; string WaitingBrowser = LstTrinhDuyet[i].SONGAYCHOPHANHOI.HasValue ? LstTrinhDuyet[i].SONGAYCHOPHANHOI.Value.ToString() : ""; string ResultBrowser = LstTrinhDuyet[i].KETQUATRINHDUYET; switch (i) { case 0: reportExcel.FirstBrowser = Browser; reportExcel.FirstFeedbackBrowser = FeedbackBrowser; reportExcel.FirstWaitingBrowser = WaitingBrowser; reportExcel.FirstResultBrowser = ResultBrowser; break; case 1: reportExcel.SecondReview = Browser; reportExcel.SecondFeedback = FeedbackBrowser; reportExcel.SecondWaitingResponse = WaitingBrowser; reportExcel.FirstResult = ResultBrowser; break; case 2: reportExcel.ThirdReview = Browser; reportExcel.ThirdFeedback = FeedbackBrowser; reportExcel.ThirdWaitingResponse = WaitingBrowser; reportExcel.ThirdResult = ResultBrowser; break; } TongSoNgayChoDuyet = TongSoNgayChoDuyet + LstTrinhDuyet[i].SONGAYCHOPHANHOI.Value; html += "<td>" + (LstTrinhDuyet[i].CREATED_AT.HasValue ? LstTrinhDuyet[i].CREATED_AT.Value.ToString("dd/MM/yyyy") : "") + "</td>"; html += "<td>" + LstTrinhDuyet[i].NGAYPHANHOI + "</td>"; html += "<td>" + LstTrinhDuyet[i].SONGAYCHOPHANHOI + "</td>"; html += "<td>" + LstTrinhDuyet[i].KETQUATRINHDUYET + "</td>"; } else { switch (i) { case 0: reportExcel.FirstBrowser = ""; reportExcel.FirstFeedbackBrowser = ""; reportExcel.FirstWaitingBrowser = ""; reportExcel.FirstResultBrowser = ""; break; case 1: reportExcel.SecondReview = ""; reportExcel.SecondFeedback = ""; reportExcel.SecondWaitingResponse = ""; reportExcel.FirstResult = ""; break; case 2: reportExcel.ThirdReview = ""; reportExcel.ThirdFeedback = ""; reportExcel.ThirdWaitingResponse = ""; reportExcel.ThirdResult = ""; break; } html += "<td></td>"; html += "<td></td>"; html += "<td></td>"; html += "<td></td>"; } } #endregion // Ngày hoàn thành và được phê duyệt string ApprovedDate = (item.NGAYKETTHUC_THUCTE.HasValue ? item.NGAYKETTHUC_THUCTE.Value.ToString("dd/MM/yyyy") : ""); html += "<td>" + ApprovedDate + "</td>"; #region Số ngày triển khai theo thực tế var SoNgayTrienKhai = 0; if (item.NGAYKETTHUC_THUCTE.HasValue) { SoNgayTrienKhai = (int)(item.NGAYKETTHUC_THUCTE.Value - item.NGAYBATDAU_THUCTE.Value).TotalDays; SoNgayTrienKhai = SoNgayTrienKhai > 0 ? SoNgayTrienKhai : 0; html += "<td>" + SoNgayTrienKhai.ToString() + "</td>"; } else { html += "<td>0</td>"; } reportExcel.ImplementedReality = SoNgayTrienKhai.ToString(); #endregion //Số ngày dành cho công việc int TotalDays = 0; if (sizePlan > 0 && ListPlanTemp[0].NGAYTRINHKEHOACH.HasValue && item.NGAYKETTHUC_THUCTE.HasValue) { TotalDays = (int)(item.NGAYKETTHUC_THUCTE.Value - ListPlanTemp[0].NGAYTRINHKEHOACH.Value).TotalDays; html += "<td>" + TotalDays.ToString() + "</td>"; } else { html += "<td>0</td>"; } reportExcel.TotalDays = TotalDays.ToString(); //SỐ ngày chờ cấp trên duyệt reportExcel.TotalWaitingApproval = TongSoNgayChoDuyet.ToString(); html += "<td>" + TongSoNgayChoDuyet.ToString() + "</td>"; //Số ngày triển khai thực tế int chenhlechthucte = 0; if (item.NGAYBATDAU_THUCTE.HasValue && item.NGAYKETTHUC_THUCTE.HasValue) { chenhlechthucte = Math.Abs((int)(item.NGAYKETTHUC_THUCTE.Value - item.NGAYBATDAU_THUCTE.Value).TotalDays); html += "<td>" + chenhlechthucte + "</td>"; } else { html += "<td>0</td>"; } reportExcel.TotalDeployed = chenhlechthucte.ToString(); //Số lần trình duyệt reportExcel.TotalBrowsers = (size + sizePlan).ToString(); html += "<td>" + (size + sizePlan) + "</td>"; //Số lần điều chỉnh reportExcel.TotalEdit = LstLuiHan.ToString(); html += "<td>" + LstLuiHan.ToString() + "</td>"; //Chênh lệch reportExcel.TotalDifferences = Math.Abs((chenhlech - chenhlechthucte)).ToString(); html += "<td>" + Math.Abs((chenhlech - chenhlechthucte)) + "</td>"; if (DanhGia != null) { reportExcel.Score = DanhGia.TONGDIEM.HasValue ? DanhGia.TONGDIEM.Value.ToString() : "0"; reportExcel.Rank = DanhGia.XEPLOAI; html += "<td>" + DanhGia.TONGDIEM + "</td>"; html += "<td>" + DanhGia.XEPLOAI + "</td>"; } else { reportExcel.Score = "0"; reportExcel.Rank = ""; html += "<td></td>"; html += "<td></td>"; } html += "</tr>"; ListReportModel.Add(reportExcel); html += RecusiveCongViec(item.ID, LstCongViec, idx.ToString(), ListNguoiDung, ListThamGia, ListPlan); rootIdx = rootIdx + 1; }