Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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;
        }