public ActionResult TaoSoVanBanTheoNam(int year, string code)
 {
     AssignUserInfo();
     DM_DANHMUC_DATABusiness = Get<DM_DANHMUC_DATABusiness>();
     CCTC_THANHPHANBusiness = Get<CCTC_THANHPHANBusiness>();
     DM_NHOMDANHMUCBusiness = Get<DM_NHOMDANHMUCBusiness>();
     var Nhom = DM_NHOMDANHMUCBusiness.repository.All().Where(x => x.GROUP_CODE == code).FirstOrDefault();
     if (Nhom != null)
     {
         string TenSo = Nhom.GROUP_NAME + " " + year.ToString();
         var LstTypeLabel = CCTC_THANHPHANBusiness.repository.All().Where(x => x.TYPE == 10).ToList();
         foreach (var item in LstTypeLabel)
         {
             var checkExist = DM_DANHMUC_DATABusiness.repository.All().Where(x => x.DEPTID == item.ID && x.DATA == year && x.TEXT == TenSo).FirstOrDefault();
             if (checkExist == null)
             {
                 DM_DANHMUC_DATA model = new DM_DANHMUC_DATA();
                 model.DM_NHOM_ID = Nhom.ID;
                 model.TEXT = TenSo;
                 model.DATA = year;
                 model.DEPTID = item.ID;
                 DM_DANHMUC_DATABusiness.Save(model);
             }
         }
     }
     return Redirect("/");
 }
Exemple #2
0
        public JsonResult Create(FormCollection collection, string[] FOLDER_ID, string[] filename, IEnumerable <HttpPostedFileBase> filebase)
        {
            DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>();
            var result = new JsonResultBO(true);

            try
            {
                var myobj = new DM_DANHMUC_DATA();
                myobj.DM_NHOM_ID = collection["DM_NHOM_ID"].ToIntOrZero();
                myobj.DATA       = collection["DATA"].ToIntOrZero();
                myobj.TEXT       = collection["TEXT"].ToString();
                myobj.CODE       = collection["CODE"];
                myobj.COLOR      = collection["COLOR"].ToString();
                myobj.GHICHU     = collection["GHICHU"].ToString();
                myobj.DEPTID     = collection["DEPTID"].ToIntOrNULL();
                DM_DANHMUC_DATABusiness.Save(myobj);
                if (filebase != null)
                {
                    if (filename == null)
                    {
                        filename = new string[filebase.Count()];
                    }
                    UploadFileTool tool     = new UploadFileTool();
                    List <string>  FileName = new List <string>();
                    List <string>  FilePath = new List <string>();
                    List <long>    FileId   = new List <long>();
                    tool.UploadCustomFileAndOutPath(filebase, false, MstDivisionExtension, UPLOADFOLDER,
                                                    int.Parse(MstDivisionSize), FOLDER_ID, filename, myobj.ID,
                                                    out FilePath, out FileName, out FileName, out FileId, LOAITAILIEU.MST_DIVISION,
                                                    "Danh mục dùng chung");
                    if (FilePath.Any())
                    {
                        myobj.ICON = FilePath[0];
                        DM_DANHMUC_DATABusiness.Save(myobj);
                    }
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = "Không thêm mới được";
            }
            return(Json(result));
        }
Exemple #3
0
        public JsonResult SaveImportData(int idNhomDanhMuc, List <List <string> > Data)
        {
            var result = new JsonResultBO(true);

            AssignUserInfo();
            DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>();
            var lstObjSave = new List <DM_DANHMUC_DATA>();

            try
            {
                foreach (var item in Data)
                {
                    var newObj = new DM_DANHMUC_DATA();
                    newObj.TEXT = item[0];
                    newObj.DATA = item[1].ToIntOrNULL();
                    if (item[2] != null && item[2] != "null")
                    {
                        newObj.DEPTID = item[2].ToIntOrNULL();
                    }

                    newObj.CODE = item[3];
                    //newObj.GHICHU = item[3];
                    newObj.DM_NHOM_ID = idNhomDanhMuc;
                    lstObjSave.Add(newObj);
                }
                if (lstObjSave.Count > 0)
                {
                    result = DM_DANHMUC_DATABusiness.saveImport(lstObjSave);
                }
                else
                {
                    result.Status  = false;
                    result.Message = "Không có dữ liệu để lưu";
                }
            }
            catch
            {
                result.Status  = false;
                result.Message = "Lỗi dữ liệu, không thể import";
            }

            return(Json(result));
        }
Exemple #4
0
        public JsonResult SaveItem(LOAITAILIEU_THUOCTINH ThuocTinh)
        {
            if (ThuocTinh.DANHMUC_ID == 0)
            {
                return(Json(new { Type = "ERROR", Message = "Bạn chưa chọn loại tài liệu cho thuộc tính" }, JsonRequestBehavior.AllowGet));
            }
            DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>();
            DM_DANHMUC_DATA DanhMuc = DM_DANHMUC_DATABusiness.Find(ThuocTinh.DANHMUC_ID);

            if (DanhMuc == null)
            {
                return(Json(new { Type = "ERROR", Message = "Không tìm thấy loại tài liệu được chọn" }, JsonRequestBehavior.AllowGet));
            }
            LOAITAILIEU_THUOCTINHBusiness = Get <LOAITAILIEU_THUOCTINHBusiness>();
            if (ThuocTinh.ID > 0)
            {
                #region Cập nhật thuộc tính
                var result = LOAITAILIEU_THUOCTINHBusiness.Find(ThuocTinh.ID);
                if (result == null)
                {
                    return(Json(new { Type = "ERROR", Message = "Không tìm thấy thuộc tính cần cập nhật" }, JsonRequestBehavior.AllowGet));
                }
                result.DANHMUC_ID    = ThuocTinh.DANHMUC_ID;
                result.MOTA          = ThuocTinh.MOTA;
                result.TEN_THUOCTINH = ThuocTinh.TEN_THUOCTINH;
                result.TRANGTHAI     = ThuocTinh.TRANGTHAI;
                LOAITAILIEU_THUOCTINHBusiness.Save(result);
                return(Json(new { Type = "SUCCESS", Message = "Cập nhật thuộc tính thành công" }, JsonRequestBehavior.AllowGet));

                #endregion
            }
            else
            {
                #region Thêm mới thuộc tính
                LOAITAILIEU_THUOCTINHBusiness.Save(ThuocTinh);
                #endregion
            }
            return(Json(new { Type = "SUCCESS", Message = "Thêm mới thuộc tính thành công" }, JsonRequestBehavior.AllowGet));
        }
Exemple #5
0
        public JsonResult SaveDangKyXe(FormCollection collection)
        {
            qlDangKyXeBusiness    = Get <QL_DANGKY_XEBusiness>();
            dmNhomDanhMucBusiness = Get <DM_NHOMDANHMUCBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();

            JsonResultBO result = new JsonResultBO(true);

            try
            {
                AssignUserInfo();
                long         id     = collection["ID"].ToLongOrZero();
                QL_DANGKY_XE entity = new QL_DANGKY_XE();
                entity.NGAY_XUATPHAT = collection["NGAY_XUATPHAT"].ToDateTime();
                //kiểm tra ngày xuất phát <= ngày hiện tại
                if (entity.ID == 0 && entity.NGAY_XUATPHAT.HasValue && entity.NGAY_XUATPHAT.Value < DateTime.Now.ToVietnameseDateFormat().ToStartDay())
                {
                    result.Status  = false;
                    result.Message = "Thời gian xuất phát không thể nhỏ hơn ngày hiện tại";
                    return(Json(result));
                }

                entity.PHONGBAN_ID       = currentUser.DM_PHONGBAN_ID;
                entity.SONGUOI           = collection["SONGUOI"].ToIntOrZero();
                entity.MUCDICH           = collection["MUCDICH"].Trim();
                entity.NOIDUNG           = collection["NOIDUNG"].Trim();
                entity.GIO_XUATPHAT      = collection["GIO_XUATPHAT"].ToIntOrZero();
                entity.PHUT_XUATPHAT     = collection["PHUT_XUATPHAT"].ToIntOrZero();
                entity.DIEM_XUATPHAT     = collection["DIEM_XUATPHAT"].Trim();
                entity.DIEM_KETTHUC      = collection["DIEM_KETTHUC"].Trim();
                entity.GHICHU            = collection["GHICHU"].Trim();
                entity.TRANGTHAI         = TRANGTHAI_DANGKY_XE_CONSTANT.MOITAO_ID;
                entity.LICHCONGTAC_ID    = collection["LICHCONGTAC_ID"].ToIntOrNULL();
                entity.CCTC_THANHPHAN_ID = currentUser.DeptParentID.GetValueOrDefault();
                //if (!string.IsNullOrEmpty(collection["TEN_BENHNHAN"]))
                //{
                //    entity.TEN_BENHNHAN = collection["TEN_BENHNHAN"].Trim();
                //}
                if (!string.IsNullOrEmpty(collection["CANBO_ID"]))
                {
                    entity.CANBO_ID = collection["CANBO_ID"].ToIntOrNULL();
                }
                //if (!string.IsNullOrEmpty(collection["IS_BHYT"]))
                //{
                //    entity.IS_BHYT = collection["IS_BHYT"].ToIntOrNULL() > 0;
                //}

                //if (!string.IsNullOrEmpty(collection["LOAI_CHUYEN_ID"]))
                //{
                //    entity.LOAI_CHUYEN_ID = collection["LOAI_CHUYEN_ID"].ToIntOrZero();
                //}

                entity.DIEM_XUATPHAT = collection["DIEM_XUATPHAT"].Trim();
                entity.DIEM_KETTHUC  = collection["DIEM_KETTHUC"].Trim();

                DM_DANHMUC_DATA dataStartPointItem = dmDanhMucDataBusiness.GetItemByCodeAndText(DMLOAI_CONSTANT.DIEM_XUATPHAT, entity.DIEM_XUATPHAT);
                if (dataStartPointItem == null)
                {
                    DM_NHOMDANHMUC  groupCategory    = dmNhomDanhMucBusiness.GetByCode(DMLOAI_CONSTANT.DIEM_XUATPHAT) ?? new DM_NHOMDANHMUC();
                    DM_DANHMUC_DATA startPointEntity = new DM_DANHMUC_DATA();
                    startPointEntity.DM_NHOM_ID = groupCategory.ID;
                    startPointEntity.TEXT       = entity.DIEM_XUATPHAT;
                    dmDanhMucDataBusiness.Save(startPointEntity);
                }

                DM_DANHMUC_DATA dataDestinationItem = dmDanhMucDataBusiness.GetItemByCodeAndText(DMLOAI_CONSTANT.DIEM_DEN, entity.DIEM_KETTHUC);
                if (dataDestinationItem == null)
                {
                    DM_NHOMDANHMUC  groupCategory     = dmNhomDanhMucBusiness.GetByCode(DMLOAI_CONSTANT.DIEM_DEN) ?? new DM_NHOMDANHMUC();
                    DM_DANHMUC_DATA destinationEntity = new DM_DANHMUC_DATA();
                    destinationEntity.DM_NHOM_ID = groupCategory.ID;
                    destinationEntity.TEXT       = entity.DIEM_KETTHUC;
                    dmDanhMucDataBusiness.Save(destinationEntity);
                }
                entity.NGAYSUA  = DateTime.Now;
                entity.NGAYTAO  = DateTime.Now;
                entity.NGUOITAO = currentUser.ID;
                entity.NGUOISUA = currentUser.ID;
                if (id > 0)
                {
                    QL_DANGKY_XE dbEntity = qlDangKyXeBusiness.Find(id);
                    if (dbEntity != null)
                    {
                        dbEntity.PHONGBAN_ID       = entity.PHONGBAN_ID;
                        dbEntity.SONGUOI           = entity.SONGUOI;
                        dbEntity.MUCDICH           = entity.MUCDICH;
                        dbEntity.NOIDUNG           = entity.NOIDUNG;
                        dbEntity.NGAY_XUATPHAT     = entity.NGAY_XUATPHAT;
                        dbEntity.GIO_XUATPHAT      = entity.GIO_XUATPHAT;
                        dbEntity.PHUT_XUATPHAT     = entity.PHUT_XUATPHAT;
                        dbEntity.DIEM_XUATPHAT     = entity.DIEM_XUATPHAT;
                        dbEntity.DIEM_KETTHUC      = entity.DIEM_KETTHUC;
                        dbEntity.CCTC_THANHPHAN_ID = entity.CCTC_THANHPHAN_ID;
                        dbEntity.GHICHU            = entity.GHICHU;
                        dbEntity.NGAYSUA           = DateTime.Now;
                        dbEntity.NGUOISUA          = currentUser.ID;
                        qlDangKyXeBusiness.Save(dbEntity);
                        result.Message = "Cập nhật đăng ký xe thành công";
                    }
                }
                else
                {
                    qlDangKyXeBusiness.Save(entity);
                    result.Message = "Thêm mới đăng ký xe thành công";
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = ex.ToString();
            }
            return(Json(result));
        }
Exemple #6
0
        /// <summary>
        /// @author:duynn
        /// @description: chuyển văn bản đi ==> văn bản đến
        /// </summary>
        /// <param name="entityVanBanDi"></param>
        /// <param name="signer"></param>
        /// <param name="dataSoVanBanDen"></param>
        /// <returns></returns>
        public HSCV_VANBANDEN ConvertToVanBanDen(HSCV_VANBANDI entityVanBanDi, DM_NGUOIDUNG signer, DM_DANHMUC_DATA dataSoVanBanDen)
        {
            HSCV_VANBANDEN result = new HSCV_VANBANDEN();

            result.SOHIEU            = entityVanBanDi.SOHIEU;
            result.DOKHAN_ID         = entityVanBanDi.DOKHAN_ID;
            result.DOMAT_ID          = entityVanBanDi.DOUUTIEN_ID;
            result.LINHVUCVANBAN_ID  = entityVanBanDi.LINHVUCVANBAN_ID;
            result.LOAIVANBAN_ID     = entityVanBanDi.LOAIVANBAN_ID;
            result.NGAYHET_HIEULUC   = entityVanBanDi.NGAYHETHIEULUC;
            result.NGAYTAO           = entityVanBanDi.CREATED_AT;
            result.NGAY_HIEULUC      = entityVanBanDi.NGAYCOHIEULUC;
            result.NGUOITAO          = entityVanBanDi.CREATED_BY;
            result.NOIDUNG           = entityVanBanDi.NOIDUNG;
            result.SOHIEU            = entityVanBanDi.SOHIEU;
            result.TRICHYEU          = entityVanBanDi.TRICHYEU;
            result.VANBANDI_ID       = entityVanBanDi.ID;
            result.NGUOIKY           = signer != null ? signer.HOTEN : null;
            result.CHUCVU            = entityVanBanDi.CHUCVU;
            result.NGAY_BANHANH      = DateTime.Now;
            result.SOTRANG           = entityVanBanDi.SOTO;
            result.SOVANBANDEN_ID    = dataSoVanBanDen.ID;
            result.SODITHEOSO        = dataSoVanBanDen.GHICHU.ToIntOrZero().ToString();
            result.SODITHEOSO_NUMBER = dataSoVanBanDen.GHICHU.ToIntOrZero();
            return(result);
        }
Exemple #7
0
        /// <summary>
        /// @author:duynn
        /// @description: gửi cá nhân nhận bên ngoài
        /// @since: 10/06/2019
        /// </summary>
        /// <param name="entityVanBanDi"></param>
        /// <param name="sms"></param>
        /// <returns></returns>
        public bool SaveVanBanPhatHanhToCaNhan(HSCV_VANBANDI entityVanBanDi, SMSDAL.SendSMSDAL sms)
        {
            List <TAILIEUDINHKEM> groupForwardFiles = new List <TAILIEUDINHKEM>();
            List <LOGSMS>         groupLogSMSs      = new List <LOGSMS>();
            var  idsNguoiNhanDichDanh = entityVanBanDi.USER_RECEIVE_DIRECTLY.ToListLong(',');
            bool result = true;

            try
            {
                /**
                 * nhóm sổ văn bản
                 */
                var dataNhomSoVanBanDen = DM_NHOMDANHMUCBusiness.repository.All()
                                          .FirstOrDefault(x => x.GROUP_CODE == DMLOAI_CONSTANT.SOVANBANDEN);

                /**
                 * gửi từng người nhận đích danh
                 */
                foreach (var userId in idsNguoiNhanDichDanh)
                {
                    var entityNguoiNhan = DM_NGUOIDUNGBusiness.GetNewUserInfo(userId);
                    var dataSoVanBanDen = DM_DANHMUC_DATABusiness.GetSoVanBan(DMLOAI_CONSTANT.SOVANBANDEN, DateTime.Now.Year, entityNguoiNhan.DeptParentID.Value);

                    if (dataSoVanBanDen == null)
                    {
                        dataSoVanBanDen = new DM_DANHMUC_DATA()
                        {
                            DEPTID     = entityNguoiNhan.DM_PHONGBAN_ID.GetValueOrDefault(),
                            TEXT       = "Sổ văn bản đến " + DateTime.Now.Year,
                            DATA       = DateTime.Now.Year,
                            DM_NHOM_ID = dataNhomSoVanBanDen.ID
                        };
                        DM_DANHMUC_DATABusiness.Save(dataSoVanBanDen);
                    }

                    DM_NGUOIDUNG   entityNguoiKy   = DM_NGUOIDUNGBusiness.Find(entityVanBanDi.NGUOIKY_ID);
                    HSCV_VANBANDEN entityVanBanDen = this.ConvertToVanBanDen(entityVanBanDi, entityNguoiKy, dataSoVanBanDen);
                    HSCV_VANBANDENBusiness.Save(entityVanBanDen);

                    JsonResultBO workflowResult = WF_PROCESSBusiness.AddFlow(entityVanBanDen.ID, MODULE_CONSTANT.VANBANDEN, entityNguoiNhan);
                    if (!workflowResult.Status)
                    {
                        continue;
                    }

                    /**
                     * Cập nhật số theo sổ
                     */
                    dataSoVanBanDen.GHICHU = (dataSoVanBanDen.GHICHU.ToIntOrZero() + 1).ToString();
                    DM_DANHMUC_DATABusiness.Save(dataSoVanBanDen);

                    /**
                     * cập nhật tài liệu đính kèm
                     */
                    List <TAILIEUDINHKEM> groupFiles = TAILIEUDINHKEMBusiness.GetNewestData(entityVanBanDi.ID, LOAITAILIEU.VANBAN);
                    groupForwardFiles.AddRange(this.GenerateFiles(groupFiles, entityVanBanDen));

                    /**
                     * cập nhật elastic search
                     */
                    ElasticSearch.updateListUser(entityVanBanDen.ID.ToString(), new List <long> {
                        entityNguoiNhan.ID
                    }, ElasticType.VanBanDen);

                    /**
                     * gửi email
                     */
                    if (entityNguoiNhan.EMAIL != null && !string.IsNullOrEmpty(entityNguoiNhan.EMAIL))
                    {
                        var ContentEmail = currentUser.TenPhongBan + " đã gửi bạn một văn bản đến <a href='" + SERVERADDRESS + "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen?id=" + entityVanBanDen.ID.ToString() + "'>" + entityVanBanDen.SOHIEU + "</a>";
                        EmailProvider.SendMailTemplate(currentUser, ContentEmail, ContentEmail, new List <string> {
                            entityNguoiNhan.EMAIL
                        });
                    }

                    //gửi sms
                    if (currentUser.CanSendSMS && entityVanBanDi.CAN_SEND_SMS == true)
                    {
                        if (!string.IsNullOrEmpty(entityNguoiNhan.DIENTHOAI))
                        {
                            var ContentSMS = currentUser.TenPhongBan + " đã gửi bạn một văn bản đến " + entityVanBanDen.SOHIEU;
                            ContentSMS = sms.locDau(ContentSMS);
                            var      DoDaiSMS = ContentSMS.Length;
                            string[] noiDung  = new string[1];
                            noiDung[0] = ContentSMS;
                            string resultsend = sms.guiTinNhan(entityNguoiNhan.DIENTHOAI, "177403", noiDung);
                            LOGSMS SmsObject  = new LOGSMS();
                            SmsObject.SODIENTHOAINHAN = entityNguoiNhan.DIENTHOAI;
                            SmsObject.NOIDUNG         = ContentSMS;
                            SmsObject.SOKYTU          = DoDaiSMS;
                            SmsObject.KETQUA          = resultsend;
                            SmsObject.DONVI_GUI       = currentUser.DM_PHONGBAN_ID.GetValueOrDefault();
                            SmsObject.CREATED_AT      = DateTime.Now;
                            SmsObject.CREATED_BY      = currentUser.ID;
                            SmsObject.HOTENNGUOIGUI   = currentUser.HOTEN;
                            SmsObject.ITEMTYPE        = "VANBANDEN";
                            SmsObject.ITEMID          = entityVanBanDen.ID;
                            SmsObject.HOTENNGUOINHAN  = entityNguoiNhan.HOTEN;
                            SmsObject.DONVI_NHAN      = entityNguoiNhan.DM_PHONGBAN_ID.GetValueOrDefault();
                            groupLogSMSs.Add(SmsObject);
                        }
                    }
                    //gửi tin nhắn

                    SYS_TINNHAN noti = new SYS_TINNHAN();
                    noti.FROM_USERNAME = currentUser.HOTEN;
                    noti.FROM_USER_ID  = currentUser.ID;
                    noti.NGAYTAO       = DateTime.Now;
                    noti.NOIDUNG       = currentUser.TenPhongBan + " đã gửi đến bạn một văn bản đến";
                    noti.URL           = "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen/" + entityVanBanDen.ID.ToString();
                    noti.TIEUDE        = "Xử lý văn bản đến";
                    noti.TO_USER_ID    = entityNguoiNhan.ID;
                    SYS_TINNHANBusiness.Save(noti, "", false, entityVanBanDen.ID, TargetDocType.COORDINATED);
                }

                /**
                 * lưu file và log SMS
                 */
                TAILIEUDINHKEMBusiness.repository.InsertRange(groupForwardFiles);
                LogSMSBusiness.repository.InsertRange(groupLogSMSs);
                TAILIEUDINHKEMBusiness.Save();
            }
            catch (Exception)
            {
                result = false;
            }
            return(result);
        }
Exemple #8
0
        /// <summary>
        /// @author:duynn
        /// @description: gửi đơn vị nhận bên ngoài
        /// @since: 10/06/2019
        /// </summary>
        /// <param name="entityVanBanDi"></param>
        /// <param name="sms"></param>
        /// <returns></returns>
        public bool SaveVanBanPhatHanhToDonVi(HSCV_VANBANDI entityVanBanDi, SMSDAL.SendSMSDAL sms)
        {
            bool result = true;

            try
            {
                DM_NHOMDANHMUC entityNhomDanhMuc = DM_NHOMDANHMUCBusiness.repository.All()
                                                   .FirstOrDefault(x => x.GROUP_CODE == DMLOAI_CONSTANT.SOVANBANDEN);

                DM_NGUOIDUNG entityNguoiKy = DM_NGUOIDUNGBusiness.Find(entityVanBanDi.NGUOIKY_ID);

                List <TAILIEUDINHKEM> groupFiles = TAILIEUDINHKEMBusiness.GetNewestData(entityVanBanDi.ID, LOAITAILIEU.VANBAN);

                List <int> idsDonViNhan = new List <int>();

                if (!string.IsNullOrEmpty(entityVanBanDi.DONVINHAN_INTERNAL_ID))
                {
                    var idsDonViDaNhan = entityVanBanDi.DONVINHAN_INTERNAL_ID.ToListInt(',');
                    idsDonViNhan.AddRange(idsDonViDaNhan);
                    entityVanBanDi.DONVINHAN_INTERNAL_ID = string.Join(",", idsDonViNhan.ToArray());
                }

                List <CCTC_THANHPHAN> groupDonViNhan = CCTC_THANHPHANBusiness.repository.AllNoTracking
                                                       .Where(x => idsDonViNhan.Contains(x.ID)).ToList();
                List <LOGSMS>               groupLogSMS          = new List <LOGSMS>();
                List <TAILIEUDINHKEM>       groupForwardFiles    = new List <TAILIEUDINHKEM>();
                List <WF_ITEM_USER_PROCESS> groupItemUserProcess = new List <WF_ITEM_USER_PROCESS>();
                foreach (var dept in groupDonViNhan)
                {
                    WF_STATE firstState = null;

                    //kiểm tra có phải là gửi nội bộ hay không?
                    bool isSendInternal = false;
                    //- trường hợp gửi cho các ban ngành cấp tỉnh và các huyện xa -> thành văn bản đến của các đơnvị nhận được
                    if (dept.TYPE == DEPTTYLELABEL.ToIntOrZero())
                    {
                        //- trường hợp này là văn bản đến bình thường
                        var workflowModule = WF_MODULEBusiness.repository
                                             .All().FirstOrDefault(x => x.MODULE_CODE == MODULE_CONSTANT.VANBANDEN);

                        var workflowStreamIds = workflowModule.WF_STREAM_ID.ToListInt(',');

                        //- lấy luồng xử lý của từng đơn vị
                        var workflowStream = WF_STREAMBusiness.repository.All()
                                             .FirstOrDefault(x => x.LEVEL_ID == dept.CATEGORY && workflowStreamIds.Contains(x.ID));

                        //lấy trạng thái xử lý ban đầu cảu đơn vị
                        firstState = WF_STATEBusiness.repository.All()
                                     .FirstOrDefault(x => x.IS_START == true && x.WF_ID == workflowStream.ID);
                    }
                    else if (dept.PARENT_ID == currentUser.DeptParentID)
                    {
                        isSendInternal = true;
                        //- trường hợp gửi các phòng ban thuộc tỉnh ủy => thành văn bản đến nội bộ của tỉnh
                        var workflowModule = WF_MODULEBusiness.repository.All()
                                             .FirstOrDefault(x => x.MODULE_CODE == MODULE_CONSTANT.VANBANDENNOIBO);

                        var workflowStreamIds = workflowModule.WF_STREAM_ID.ToListInt(',');

                        //- lấy luồng xử lý của từng đơn vị
                        var workflowStream = WF_STREAMBusiness.repository.All()
                                             .FirstOrDefault(x => x.LEVEL_ID == dept.CATEGORY && workflowStreamIds.Contains(x.ID));

                        firstState = WF_STATEBusiness.repository.All()
                                     .FirstOrDefault(x => x.IS_START == true && x.WF_ID == workflowStream.ID);
                    }


                    UserInfoBO processor = null;

                    /**
                     * kiểm tra vai trò nhận của trạng thái đầu tiên
                     */
                    if (firstState != null)
                    {
                        /**
                         * lấy người thuộc phòng ban có vai trò xử lý
                         */
                        var receiver = DM_NGUOIDUNGBusiness.GetUserByRoleAndDeptId(firstState.VAITRO_ID.GetValueOrDefault(), dept.ID).FirstOrDefault();
                        if (receiver != null)
                        {
                            processor = DM_NGUOIDUNGBusiness.GetNewUserInfo(receiver.Value.ToLongOrZero());
                        }
                    }


                    var dataSoVanBanDen = DM_DANHMUC_DATABusiness.GetSoVanBan(DMLOAI_CONSTANT.SOVANBANDEN, DateTime.Now.Year, dept.ID);
                    if (dataSoVanBanDen == null)
                    {
                        //tạo sổ văn bản đến
                        dataSoVanBanDen = new DM_DANHMUC_DATA()
                        {
                            DEPTID     = dept.ID,
                            TEXT       = "Sổ văn bản đến " + DateTime.Now.Year,
                            DATA       = DateTime.Now.Year,
                            DM_NHOM_ID = entityNhomDanhMuc.ID
                        };
                        DM_DANHMUC_DATABusiness.Save(dataSoVanBanDen);
                    }

                    HSCV_VANBANDEN entityVanBanDen = this.ConvertToVanBanDen(entityVanBanDi, entityNguoiKy, dataSoVanBanDen);
                    entityVanBanDen.IS_NOIBO = isSendInternal ? true : false;
                    HSCV_VANBANDENBusiness.Save(entityVanBanDen);

                    /**
                     * cập nhật số văn bản đến
                     */
                    dataSoVanBanDen.GHICHU = (dataSoVanBanDen.GHICHU.ToIntOrZero() + 1).ToString();
                    DM_DANHMUC_DATABusiness.Save(dataSoVanBanDen);

                    /**
                     * cập nhật tài liệu đính kèm
                     */
                    var files = this.GenerateFiles(groupFiles, entityVanBanDen);
                    groupForwardFiles.AddRange(files);

                    /**
                     * cập nhật thông tin văn bản đến trong luồng xử lý
                     */
                    if (processor != null)
                    {
                        WF_PROCESSBusiness.AddFlow(entityVanBanDen.ID, isSendInternal ? MODULE_CONSTANT.VANBANDENNOIBO : MODULE_CONSTANT.VANBANDEN, processor);
                    }

                    /**
                     * nếu không có người phù hợp trong luồng xử lý ==> lấy người có vai trò cao nhất tại phòng
                     */
                    if (processor == null)
                    {
                        /**
                         * lấy ra người có vai trò cao nhất tại phòng ban
                         */
                        processor = DM_NGUOIDUNGBusiness.GetUserHighestPriority(dept.ID);

                        /**
                         * lưu thông in người nhận vào bảng  WF_ITEM_USER_PROCESS
                         */
                        var itemUserProcess = new WF_ITEM_USER_PROCESS();
                        itemUserProcess.ITEM_ID      = entityVanBanDen.ID;
                        itemUserProcess.ITEM_TYPE    = isSendInternal ? MODULE_CONSTANT.VANBANDENNOIBO : MODULE_CONSTANT.VANBANDEN;
                        itemUserProcess.IS_XULYCHINH = false;
                        itemUserProcess.USER_ID      = processor.ID;
                        itemUserProcess.create_at    = DateTime.Now;
                        itemUserProcess.create_by    = currentUser.ID;
                        groupItemUserProcess.Add(itemUserProcess);
                    }


                    if (processor != null)
                    {
                        ElasticSearch.updateListUser(entityVanBanDen.ID.ToString(), new List <long> {
                            processor.ID
                        }, ElasticType.VanBanDen);

                        //gửi email
                        if (!string.IsNullOrEmpty(processor.EMAIL))
                        {
                            var ContentEmail = currentUser.TenPhongBan + " đã gửi bạn một văn bản đến <a href='" + SERVERADDRESS + "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen?id=" + entityVanBanDen.ID.ToString() + "'>" + entityVanBanDen.SOHIEU + "</a>";
                            EmailProvider.SendMailTemplate(currentUser, ContentEmail, ContentEmail, new List <string> {
                                processor.EMAIL
                            });
                        }
                        //gửi tin nhắn
                        if (currentUser.CanSendSMS && entityVanBanDi.CAN_SEND_SMS == true && processor.DIENTHOAI != null)
                        {
                            var ContentSMS = currentUser.TenPhongBan + " đã gửi bạn một văn bản đến " + entityVanBanDen.SOHIEU;
                            ContentSMS = sms.locDau(ContentSMS);
                            var      DoDaiSMS = ContentSMS.Length;
                            string[] noiDung  = new string[1];
                            noiDung[0] = ContentSMS;
                            string resultsend = sms.guiTinNhan(processor.DIENTHOAI, "177403", noiDung);
                            LOGSMS SmsObject  = new LOGSMS();
                            SmsObject.SODIENTHOAINHAN = processor.DIENTHOAI;
                            SmsObject.NOIDUNG         = ContentSMS;
                            SmsObject.SOKYTU          = DoDaiSMS;
                            SmsObject.KETQUA          = resultsend;
                            SmsObject.CREATED_AT      = DateTime.Now;
                            SmsObject.CREATED_BY      = currentUser.ID;
                            SmsObject.HOTENNGUOIGUI   = currentUser.HOTEN;
                            SmsObject.DONVI_GUI       = currentUser.DM_PHONGBAN_ID.GetValueOrDefault();
                            SmsObject.ITEMTYPE        = "VANBANDEN";
                            SmsObject.ITEMID          = entityVanBanDen.ID;
                            SmsObject.DONVI_NHAN      = processor.DM_PHONGBAN_ID.GetValueOrDefault();
                            SmsObject.HOTENNGUOINHAN  = processor.HOTEN;
                            groupLogSMS.Add(SmsObject);
                        }

                        //lưu thông báo
                        SYS_TINNHAN noti = new SYS_TINNHAN();
                        noti.FROM_USERNAME = currentUser.HOTEN;
                        noti.FROM_USER_ID  = currentUser.ID;
                        noti.NGAYTAO       = DateTime.Now;
                        noti.NOIDUNG       = currentUser.TenPhongBan + " đã gửi đến bạn một văn bản đến";
                        noti.URL           = "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen/" + entityVanBanDen.ID.ToString();
                        noti.TIEUDE        = "Xử lý văn bản đến";
                        noti.TO_USER_ID    = processor.ID;
                        SYS_TINNHANBusiness.Save(noti, "", false, entityVanBanDen.ID, TargetDocType.COORDINATED);
                    }
                }

                //lưu thông tin tài liệu, sms, luồng xử lý
                TAILIEUDINHKEMBusiness.repository.InsertRange(groupForwardFiles);
                LogSMSBusiness.repository.InsertRange(groupLogSMS);
                WF_ITEM_USER_PROCESSBusiness.repository.InsertRange(groupItemUserProcess);

                TAILIEUDINHKEMBusiness.repository.Save();
            }
            catch (Exception)
            {
                result = false;
            }
            return(result);
        }
        public ActionResult DetailVanBanDen(long id, int type = VANBANDEN_CONSTANT.CHUA_XULY)
        {
            AssignUserInfo();
            wfItemUserProcess     = Get <WF_ITEM_USER_PROCESSBusiness>();
            wfReviewUserBusiness  = Get <WF_REVIEW_USERBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();
            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            attachmentBusiness    = Get <TAILIEUDINHKEMBusiness>();
            var            HSCVREADVANBANBusiness = Get <HSCVREADVANBANBusiness>();
            HSCV_VANBANDEN entityVanBanDen        = hscvVanBanDenBusiness.Find(id);
            bool           canAccess = wfItemUserProcess.CheckPermissionProcess(id, true == entityVanBanDen.IS_NOIBO ? MODULE_CONSTANT.VANBANDENNOIBO : MODULE_CONSTANT.VANBANDEN, currentUser.ID);
            bool           canReview = wfReviewUserBusiness.CheckPermissionReview(id, true == entityVanBanDen.IS_NOIBO ? MODULE_CONSTANT.VANBANDENNOIBO : MODULE_CONSTANT.VANBANDEN, currentUser.ID);

            if ((!canAccess && !canReview) || entityVanBanDen == null)
            {
                return(Redirect("/Home/UnAuthor"));
            }

            var checkread = HSCVREADVANBANBusiness.repository.All()
                            .Where(x => x.USER_ID == currentUser.ID && x.TYPE == 1 && x.VANBAN_ID == id).FirstOrDefault();

            if (checkread == null)
            {
                HSCV_READVANBAN readObj = new HSCV_READVANBAN();
                readObj.TYPE      = 1;
                readObj.USER_ID   = currentUser.ID;
                readObj.VANBAN_ID = id;
                HSCVREADVANBANBusiness.Save(readObj);
            }

            DetailVanBanDenViewModel model                    = new DetailVanBanDenViewModel();
            DM_DANHMUC_DATA          entityDonViGui           = dmDanhMucDataBusiness.Find(entityVanBanDen.DONVI_ID);
            DM_DANHMUC_DATA          entityDoKhan             = dmDanhMucDataBusiness.Find(entityVanBanDen.DOKHAN_ID);
            DM_DANHMUC_DATA          entityDoUuTien           = dmDanhMucDataBusiness.Find(entityVanBanDen.DOMAT_ID);
            DM_DANHMUC_DATA          entityLinhVucVanBan      = dmDanhMucDataBusiness.Find(entityVanBanDen.LINHVUCVANBAN_ID);
            DM_DANHMUC_DATA          entityLoaiVanBan         = dmDanhMucDataBusiness.Find(entityVanBanDen.LOAIVANBAN_ID);
            DM_DANHMUC_DATA          entityLoaiCoQuan         = dmDanhMucDataBusiness.Find(entityVanBanDen.LOAI_COQUAN_ID);
            DM_DANHMUC_DATA          entityThongTinLoaiVanBan = dmDanhMucDataBusiness.Find(entityVanBanDen.THONGTIN_LOAI_ID);
            DM_DANHMUC_DATA          entityCongVanDen         = dmDanhMucDataBusiness.Find(entityVanBanDen.CONGVAN_DEN_ID);

            model.currentUserId         = currentUser.ID;
            model.entityVanBanDen       = entityVanBanDen;
            model.nameOfDonViGui        = entityDonViGui != null ? entityDonViGui.TEXT : string.Empty;
            model.nameOfDoKhan          = entityDoKhan != null ? entityDoKhan.TEXT : string.Empty;
            model.nameOfDoUuTien        = entityDoUuTien != null ? entityDoUuTien.TEXT : string.Empty;
            model.nameOfLinhVucVanBan   = entityLinhVucVanBan != null ? entityLinhVucVanBan.TEXT : string.Empty;
            model.nameOfLoaiVanBan      = entityLoaiVanBan != null ? entityLoaiVanBan.TEXT : string.Empty;
            model.nameOfLoaiCoQuan      = entityLoaiCoQuan != null ? entityLoaiCoQuan.TEXT : string.Empty;
            model.nameOfThongTinLoaiBan = entityThongTinLoaiVanBan != null ? entityThongTinLoaiVanBan.TEXT : string.Empty;
            model.nameOfCongVanDen      = entityCongVanDen != null ? entityCongVanDen.TEXT : string.Empty;

            model.groupOfTaiLieuDinhKems = attachmentBusiness.GetDataByItemID(entityVanBanDen.ID, LOAITAILIEU.VANBANDEN);
            model.typeOfVanBanDen        = type;

            bool isFinish = hscvVanBanDenBusiness.CheckIsFinish(id);

            model.canCreateCalendar = (entityVanBanDen.NGUOITAO == currentUser.ID && isFinish);
            if (isFinish == false && entityVanBanDen.NGAYCONGTAC != null)
            {
                //kiểm tra người dùng có bước xử lý hay không?
                bool hasSteps = false;
                wfProcessBusiness       = Get <WF_PROCESSBusiness>();
                wfReviewUserBusiness    = Get <WF_REVIEW_USERBusiness>();
                wfReviewBusiness        = Get <WF_REVIEWBusiness>();
                wfStateBusiness         = Get <WF_STATEBusiness>();
                wfStepBusiness          = Get <WF_STEPBusiness>();
                wfStateFunctionBusiness = Get <WF_STATE_FUNCTIONBusiness>();

                WF_PROCESS process = wfProcessBusiness.repository.All()
                                     .Where(x => x.ITEM_ID == id && x.ITEM_TYPE == MODULE_CONSTANT.VANBANDEN &&
                                            x.USER_ID == currentUser.ID).FirstOrDefault();

                WF_REVIEW reviewReject = wfReviewBusiness.repository.All()
                                         .Where(x => x.ITEMID == id && x.ITEMTYPE == MODULE_CONSTANT.VANBANDEN && x.IS_REJECT == true)
                                         .OrderByDescending(x => x.ID).FirstOrDefault();

                WF_FUNCTION       function      = null;
                bool              requireReview = false;
                List <WF_STEP>    nextSteps     = new List <WF_STEP>();
                List <StepBackBO> stepsBack     = new List <StepBackBO>();

                if (process != null)
                {
                    if (process != null || reviewReject != null)
                    {
                        WF_STATE startState = wfStateBusiness.Find(process.CURRENT_STATE);
                        if (startState != null)
                        {
                            if (startState.IS_KETTHUC != true)
                            {
                                nextSteps = wfStepBusiness.GetListNextStep(process.WF_ID.GetValueOrDefault(), startState.ID);
                                stepsBack = wfStepBusiness.GetListNextStepBack(process);
                            }

                            function = wfStateFunctionBusiness.CheckGetFunction(startState.ID, entityVanBanDen.ID, MODULE_CONSTANT.VANBANDEN);
                        }
                    }
                    else if (process.IS_PENDING == true)
                    {
                        WF_REVIEW reviewFinish = wfReviewBusiness.repository.All()
                                                 .Where(x => x.ITEMID == id && x.ITEMTYPE == MODULE_CONSTANT.VANBANDEN && x.IS_FINISH != true)
                                                 .OrderByDescending(x => x.ID).FirstOrDefault();
                        if (reviewFinish != null)
                        {
                            requireReview = wfReviewUserBusiness.CheckReviewing(reviewFinish.ID, currentUser.ID);
                        }
                    }

                    hasSteps = (nextSteps.Any() || stepsBack.Any() || function != null || requireReview == true);
                }
                model.hasSteps = hasSteps;
                if (hasSteps)
                {
                    entityVanBanDen.NGAYCONGTAC = new DateTime(entityVanBanDen.NGAYCONGTAC.Value.Year, entityVanBanDen.NGAYCONGTAC.Value.Month, entityVanBanDen.NGAYCONGTAC.Value.Day);
                    lichCongTacBusiness         = Get <LICHCONGTACBusiness>();
                    model.isDuplicateCalendar   = lichCongTacBusiness.repository.All()
                                                  .Where(x => x.LANHDAO_ID == currentUser.ID &&
                                                         x.NGAY_CONGTAC.Equals(entityVanBanDen.NGAYCONGTAC.Value)).Count() > 0;
                }
            }

            return(View(model));
        }
Exemple #10
0
        public PartialViewResult GetReportResult(FormCollection form)
        {
            string   categoryCode              = string.Empty;
            string   reportTitle               = string.Empty;
            int      reportType                = form["reportType"].ToIntOrZero();
            int      timeFilterType            = form["timeFilterType"].ToIntOrZero();
            int      queryItemCategoryType     = form["queryItemCategoryType"].ToIntOrZero();
            int      queryDepartment           = form["queryDepartment"].ToIntOrZero();
            string   categoryName              = string.Empty;
            string   departmentTitleExtenstion = string.Empty;
            DateTime?queryDateStart;
            DateTime?queryDateEnd;

            hscvVanBanDiBusiness  = Get <HSCV_VANBANDIBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();
            cctcThanhPhanBusiness = Get <CCTC_THANHPHANBusiness>();
            CCTC_THANHPHAN department = cctcThanhPhanBusiness.Find(queryDepartment);

            departmentTitleExtenstion = department != null && string.IsNullOrEmpty(department.NAME) == false ?
                                        (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_DONVINHAN_VANBANDI ? string.Format("TỪ ĐƠN VỊ {0}", department.NAME.ToUpper()) : string.Format("CỦA ĐƠN VỊ {0}", department.NAME.ToUpper()))
                : string.Empty;

            ReportVanBanDiResultViewModel viewModel = new ReportVanBanDiResultViewModel();

            if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI)
            {
                categoryCode = DMLOAI_CONSTANT.LOAI_VANBAN;
                if (queryItemCategoryType > 0)
                {
                    DM_DANHMUC_DATA category = dmDanhMucDataBusiness.Find(queryItemCategoryType) ?? new DM_DANHMUC_DATA();
                    categoryName = string.IsNullOrEmpty(category.TEXT) ? string.Empty : category.TEXT.ToUpper();
                }
            }
            else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI)
            {
                categoryCode = DMLOAI_CONSTANT.LINHVUCVANBAN;
                if (queryItemCategoryType > 0)
                {
                    DM_DANHMUC_DATA category = dmDanhMucDataBusiness.Find(queryItemCategoryType) ?? new DM_DANHMUC_DATA();
                    categoryName = string.IsNullOrEmpty(category.TEXT) ? string.Empty : category.TEXT.ToUpper();
                }
            }
            else
            {
                categoryCode = DMLOAI_CONSTANT.LINHVUCVANBAN;
                if (queryItemCategoryType > 0)
                {
                    CCTC_THANHPHAN receiveDepartment = cctcThanhPhanBusiness.Find(queryItemCategoryType) ?? new CCTC_THANHPHAN();
                    categoryName = string.IsNullOrEmpty(receiveDepartment.NAME) ? string.Empty : receiveDepartment.NAME.ToUpper();
                }
            }

            if (timeFilterType == LOAI_BAOCAO_THOIGIAN_CONSTANT.NGAY)
            {
                queryDateStart = form["queryDateStart"].ToDateTime();
                queryDateEnd   = form["queryDateEnd"].ToDateTime();
                if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI)
                {
                    reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐI THEO HÌNH THỨC {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", categoryName, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentTitleExtenstion);
                }
                else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI)
                {
                    reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐI THEO LĨNH VỰC {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", categoryName, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentTitleExtenstion);
                }
                else
                {
                    reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐI ĐÃ GỬI CHO ĐƠN VỊ {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", categoryName, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentTitleExtenstion);
                }
            }
            else if (timeFilterType == LOAI_BAOCAO_THOIGIAN_CONSTANT.THANG)
            {
                int month = form["queryMonth"].ToIntOrZero();
                int year  = form["queryYear"].ToIntOrZero();
                queryDateStart = new DateTime(year, month, 1);
                queryDateEnd   = new DateTime(year, month, DateTime.DaysInMonth(year, month));
                if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO HÌNH THỨC {0} TRONG THÁNG {1} NĂM {2} {3}", categoryName, month, year, departmentTitleExtenstion);
                }
                else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO LĨNH VỰC {0} TRONG THÁNG {1} NĂM {2} {3}", categoryName, month, year, departmentTitleExtenstion);
                }
                else
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI ĐÃ GỬI CHO ĐƠN VỊ {0} TRONG THÁNG {1} NĂM {2} {3}", categoryName, month, year, departmentTitleExtenstion);
                }
            }
            else
            {
                int year = form["queryYearOnly"].ToIntOrZero();
                queryDateStart = new DateTime(year, 1, 1);
                queryDateEnd   = new DateTime(year, 12, 31);

                if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_HINHTHUC_VANBANDI)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO HÌNH THỨC {0} TRONG NĂM {1} {2}", categoryName, year, departmentTitleExtenstion);
                }
                else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDI)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI THEO LĨNH VỰC {0} TRONG NĂM {1} {2}", categoryName, year, departmentTitleExtenstion);
                }
                else
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐI ĐÃ GỬI CHO ĐƠN VỊ {0} TRONG NĂM {1} {2}", categoryName, year, departmentTitleExtenstion);
                }
            }

            viewModel.title      = reportTitle;
            viewModel.reportType = reportType;
            if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_DONVINHAN_VANBANDI)
            {
                viewModel.groupOfReportResultItems = hscvVanBanDiBusiness.GetStatisticResultByInteralDepartment(queryDepartment, queryDateStart, queryDateEnd, queryItemCategoryType);
            }
            else
            {
                viewModel.groupOfReportResultItems = hscvVanBanDiBusiness.GetStatisticResultByCategory(queryDepartment, categoryCode, queryDateStart, queryDateEnd, queryItemCategoryType);
            }
            SessionManager.SetValue("ReportVanBanDi" + reportType, viewModel);
            return(PartialView("_ReportVanBanDiResult", viewModel));
        }
        public PartialViewResult GetReportResult(FormCollection form)
        {
            AssignUserInfo();
            string   categoryCode             = string.Empty;
            string   reportTitle              = string.Empty;
            string   departmentExtensionTitle = string.Empty;
            int      reportType            = form["reportType"].ToIntOrZero();
            int      timeFilterType        = form["timeFilterType"].ToIntOrZero();
            int      queryItemCategoryType = form["queryItemCategoryType"].ToIntOrZero();
            int      queryDepartment       = form["queryDepartment"].ToIntOrZero();
            DateTime?queryDateStart;
            DateTime?queryDateEnd;

            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();
            cctcThanhPhanBusiness = Get <CCTC_THANHPHANBusiness>();
            CCTC_THANHPHAN department = cctcThanhPhanBusiness.Find(queryDepartment);

            departmentExtensionTitle = department != null?string.Format("CỦA ĐƠN VỊ {0}", department.NAME.ToUpper()) : string.Empty;

            DM_DANHMUC_DATA category = dmDanhMucDataBusiness.Find(queryItemCategoryType) ?? new DM_DANHMUC_DATA();

            category.TEXT = string.IsNullOrEmpty(category.TEXT) ? string.Empty : category.TEXT.ToUpper();

            ReportVanBanDenResultViewModel viewModel = new ReportVanBanDenResultViewModel();

            viewModel.reportType = reportType;

            if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LOAI_VANBANDEN)
            {
                categoryCode = DMLOAI_CONSTANT.LOAI_VANBAN;
            }
            else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDEN)
            {
                categoryCode = DMLOAI_CONSTANT.LINHVUCVANBAN;
            }
            else
            {
                categoryCode = DMLOAI_CONSTANT.DONVIGUI_VANBAN;
            }

            if (timeFilterType == LOAI_BAOCAO_THOIGIAN_CONSTANT.NGAY)
            {
                queryDateStart = form["queryDateStart"].ToDateTime();
                queryDateEnd   = form["queryDateEnd"].ToDateTime();
                if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LOAI_VANBANDEN)
                {
                    reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐẾN THEO LOẠI {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", category.TEXT, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentExtensionTitle);
                }
                else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDEN)
                {
                    reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐẾN THEO LĨNH VỰC {0} TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", category.TEXT, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentExtensionTitle);
                }
                else
                {
                    reportTitle = string.Format("THỐNG KÊ VĂN BẢN ĐẾN THEO ĐƠN VỊ {0} GỬI TỪ NGÀY {1} ĐẾN NGÀY {2} {3}", category.TEXT, queryDateStart.Value.ToVietnameseDateFormat(), queryDateEnd.Value.ToVietnameseDateFormat(), departmentExtensionTitle);
                }
            }
            else if (timeFilterType == LOAI_BAOCAO_THOIGIAN_CONSTANT.THANG)
            {
                int month = form["queryMonth"].ToIntOrZero();
                int year  = form["queryYear"].ToIntOrZero();
                queryDateStart = new DateTime(year, month, 1);
                queryDateEnd   = new DateTime(year, month, DateTime.DaysInMonth(year, month));
                if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LOAI_VANBANDEN)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐẾN THEO LOẠI {0} TRONG THÁNG {1} NĂM {2} {3}", category.TEXT, month, year, departmentExtensionTitle);
                }
                else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDEN)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐẾN THEO LĨNH VỰC {0} TRONG THÁNG {1} NĂM {2} {3}", category.TEXT, month, year, departmentExtensionTitle);
                }
                else
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐẾN THEO ĐƠN VỊ {0} GỬI TRONG THÁNG {1} NĂM {2} {3}", category.TEXT, month, year, departmentExtensionTitle);
                }
            }
            else
            {
                int year = form["queryYearOnly"].ToIntOrZero();
                queryDateStart = new DateTime(year, 1, 1);
                queryDateEnd   = new DateTime(year, 12, 31);
                if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LOAI_VANBANDEN)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐẾN THEO LOẠI {0} TRONG NĂM {1} {2}", category.TEXT, year, departmentExtensionTitle);
                }
                else if (reportType == LOAI_BAOCAO_VANBAN_CONSTANT.BAOCAO_LINHVUC_VANBANDEN)
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐẾN THEO LĨNH VỰC {0} TRONG NĂM {1} {2}", category.TEXT, year, departmentExtensionTitle);
                }
                else
                {
                    reportTitle = string.Format("BÁO CÁO VĂN BẢN ĐẾN THEO ĐƠN VỊ {0} GỬI TRONG NĂM {1} {2}", category.TEXT, year, departmentExtensionTitle);
                }
            }
            viewModel.title = reportTitle;
            viewModel.groupOfReportResultItems = hscvVanBanDenBusiness.GetStatisticResultByCategory(queryDepartment, MODULE_CONSTANT.VANBANDEN, categoryCode, queryDateStart, queryDateEnd, queryItemCategoryType);
            SessionManager.SetValue("ReportVanBanDen" + reportType, viewModel);
            return(PartialView("_ReportVanBanDenResult", viewModel));
        }
Exemple #12
0
        public JsonResult SaveLichCongTac(LICHCONGTAC entity, FormCollection fc)
        {
            AssignUserInfo();
            qlDangKyXeBusiness    = Get <QL_DANGKY_XEBusiness>();
            lichCongTacBusiness   = Get <LICHCONGTACBusiness>();
            dmNhomDanhMucBusiness = Get <DM_NHOMDANHMUCBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();

            JsonResultBO editResult = new JsonResultBO(true);

            entity.NGAY_CONGTAC = fc["NGAY_CONGTAC"].ToDateTimeNotNull();

            bool isObsolete = entity.NGAY_CONGTAC.IsOldWeek();

            if (isObsolete)
            {
                editResult.Status  = false;
                editResult.Message = "Thời gian công tác đã quá hạn để thêm mới";
                return(Json(editResult));
            }

            entity.TIEUDE       = fc["TIEUDE"].Trim();
            entity.GIO_CONGTAC  = fc["GIO_CONGTAC"].ToIntOrZero();
            entity.PHUT_CONGTAC = fc["PHUT_CONGTAC"].ToIntOrZero();
            //entity.NGUOICHUTRI_ID = fc["NGUOICHUTRI_ID"].ToIntOrNULL();
            entity.LANHDAO_ID = fc["LANHDAO_ID"].ToIntOrNULL();
            entity.DIADIEM    = fc["DIADIEM"].Trim();
            entity.GHICHU     = fc["GHICHU"].Trim();
            entity.NGUOITAO   = currentUser.ID;
            entity.NGUOISUA   = currentUser.ID;
            entity.NGAYTAO    = DateTime.Now;
            entity.NGAYSUA    = DateTime.Now;
            entity.IS_LATTEST = true;
            entity.IS_DELETE  = false;
            string destination = fc["DIADIEM"].Trim();

            //kiểm tra trùng lịch của cán bộ trong ngày
            bool existed = lichCongTacBusiness.CheckIsDuplicate(entity.ID, entity.LANHDAO_ID.GetValueOrDefault(), entity.NGAY_CONGTAC, entity.GIO_CONGTAC, entity.PHUT_CONGTAC);

            if (existed == true)
            {
                editResult.Status  = false;
                editResult.Message = "Lịch công tác của cán bộ đã tồn tại";
                return(Json(editResult));
            }

            DM_DANHMUC_DATA dataItem = dmDanhMucDataBusiness.GetItemByCodeAndText(DMLOAI_CONSTANT.DIEM_DEN, destination);

            if (dataItem == null)
            {
                DM_NHOMDANHMUC  groupCategory     = dmNhomDanhMucBusiness.GetByCode(DMLOAI_CONSTANT.DIEM_DEN) ?? new DM_NHOMDANHMUC();
                DM_DANHMUC_DATA destinationEntity = new DM_DANHMUC_DATA();
                destinationEntity.DM_NHOM_ID = groupCategory.ID;
                destinationEntity.TEXT       = destination;
                dmDanhMucDataBusiness.Save(destinationEntity);
            }

            if (entity.ID <= 0)
            {
                lichCongTacBusiness.Save(entity);
                editResult.Message = "Thêm mới lịch công tác thành công";
            }
            else
            {
                LICHCONGTAC dbEntity = lichCongTacBusiness.Find(entity.ID);
                if (dbEntity != null && dbEntity.IS_DELETE != true)
                {
                    if (dbEntity.NGAY_CONGTAC.IsOldWeek())
                    {
                        editResult.Status  = false;
                        editResult.Message = "Thời gian công tác đã quá hạn cập nhật";
                        return(Json(editResult));
                    }

                    //so sánh 2 phiên bản nếu khác => tạo phiên bản mới có ROOT_LICH = 0;
                    bool hasChanged = CheckHasChanged(arrProperties, dbEntity, entity);
                    if (hasChanged)
                    {
                        entity.ID           = 0;
                        entity.LICH_GOC_ID  = dbEntity.ID;
                        dbEntity.IS_LATTEST = false; //cập nhật phiên bản trước đã cũ
                        lichCongTacBusiness.Save(entity);

                        //kiểm tra xem lịch công tác này đã được đăng ký xe hay chưa
                        //nếu có thì cập nhật đăng ký xe
                        QL_DANGKY_XE register = qlDangKyXeBusiness.GetAvailableRegistrationByCalendarId(dbEntity.ID);
                        if (register != null)
                        {
                            register.LICHCONGTAC_ID = entity.ID;
                            qlDangKyXeBusiness.Save(register);
                        }
                    }
                    lichCongTacBusiness.Save(dbEntity);
                    editResult.Message = "Cập nhật lịch công tác thành công";
                }
                else
                {
                    editResult.Status  = false;
                    editResult.Message = "Lịch công tác không tồn tại";
                    return(Json(editResult));
                }
            }

            return(Json(editResult));
        }