Ejemplo n.º 1
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);
        }
        public ActionResult EditVanBanDen(long id, int type = VANBANDEN_CONSTANT.CHUA_XULY)
        {
            AssignUserInfo();
            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();
            attachmentBusiness    = Get <TAILIEUDINHKEMBusiness>();

            HSCV_VANBANDEN entityVanBanDen = hscvVanBanDenBusiness.Find(id);

            if (entityVanBanDen != null)
            {
                EditVanBanDenModel model = new EditVanBanDenModel(entityVanBanDen);
                model.typeOfVanBanDen      = type;
                model.groupDonViGuis       = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.DONVIGUI_VANBAN, currentUser.ID, entityVanBanDen.DONVI_ID.GetValueOrDefault());
                model.groupDoKhans         = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.DOKHAN, currentUser.ID, entityVanBanDen.DOKHAN_ID.GetValueOrDefault());
                model.groupDoUuTiens       = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.DOUUTIEN, currentUser.ID, entityVanBanDen.DOMAT_ID.GetValueOrDefault());
                model.groupLoaiVanBans     = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.LOAI_VANBAN, currentUser.ID, entityVanBanDen.LOAIVANBAN_ID.GetValueOrDefault());
                model.groupLinhVucVanBans  = dmDanhMucDataBusiness.DsByMaNhom(DMLOAI_CONSTANT.LINHVUCVANBAN, currentUser.ID, entityVanBanDen.LINHVUCVANBAN_ID.GetValueOrDefault());
                model.groupSoVanBanDens    = dmDanhMucDataBusiness.DsByMaNhomByDept(DMLOAI_CONSTANT.SOVANBANDEN, currentUser.ID, currentUser.DeptParentID.Value, entityVanBanDen.SOVANBANDEN_ID.GetValueOrDefault());
                model.groupTaiLieuDinhKems = attachmentBusiness.GetDataByItemID(entityVanBanDen.ID, LOAITAILIEU.VANBANDEN);
                model.entityVanBanDen      = entityVanBanDen;
                model.fileExtension        = extensionOfVanBanDen;
                model.fileMaxSize          = maxSizeOfVanBanDen;

                model.UsersReceived = entityVanBanDen.NGUOINHAN_TRUCTIEP_IDS != null?entityVanBanDen.NGUOINHAN_TRUCTIEP_IDS.ToListLong(',') : new List <long>();

                //model.Recipients = recipientBusiness.GetRecipientGroups(currentUser.DM_PHONGBAN_ID.GetValueOrDefault());

                model.GroupDeptTypes     = dmDanhMucDataBusiness.DsByMaNhom(VanBanConstant.LOAI_COQUAN, currentUser.ID, entityVanBanDen.LOAI_COQUAN_ID.GetValueOrDefault());
                model.GroupDocTypes      = dmDanhMucDataBusiness.DsByMaNhom(VanBanConstant.PHANLOAI_VANBAN, currentUser.ID, entityVanBanDen.THONGTIN_LOAI_ID.GetValueOrDefault());
                model.GroupDispatchTypes = dmDanhMucDataBusiness.DsByMaNhom(VanBanConstant.CONGVANDEN, currentUser.ID, entityVanBanDen.CONGVAN_DEN_ID.GetValueOrDefault());
                return(View("CreateVanBanDen", model));
            }
            return(Redirect("/Home/UnAuthor"));
        }
Ejemplo n.º 3
0
        public static ElasticModel ConvertVanBanDen(HSCV_VANBANDEN VanBan, List <long> ListUser)
        {
            ElasticModel elasticModel = new ElasticModel();

            elasticModel.Id            = VanBan.ID;
            elasticModel.ListUser      = ListUser;
            elasticModel.NguoiKy       = VanBan.CHUCVU + " " + VanBan.NGUOIKY;
            elasticModel.NguoiKyNoSign = elasticModel.NguoiKy.ConvertToVN();
            if (!string.IsNullOrEmpty(VanBan.NOIDUNG))
            {
                elasticModel.NoiDung       = HttpUtility.HtmlDecode(VanBan.NOIDUNG).Trim().RemoveHtml();
                elasticModel.NoiDungNoSign = HttpUtility.HtmlDecode(VanBan.NOIDUNG.ConvertToVN()).Trim().RemoveHtml();
            }
            else
            {
                elasticModel.NoiDung       = string.Empty;
                elasticModel.NoiDungNoSign = string.Empty;
            }

            elasticModel.SoHieu         = VanBan.SOHIEU;
            elasticModel.SoHieuNoSign   = VanBan.SOHIEU.ConvertToVN();
            elasticModel.TrichYeu       = VanBan.TRICHYEU;
            elasticModel.TrichYeuNoSign = VanBan.TRICHYEU.ConvertToVN();
            elasticModel.Type           = 1;
            elasticModel.Url            = "/HSCV_VANBANDENArea/HSCV_VANBANDEN/DetailVanBanDen?id=" + VanBan.ID;
            return(elasticModel);
        }
Ejemplo n.º 4
0
        public JsonResult Delete(long id)
        {
            HSCV_VANBANDENBusiness = Get <HSCV_VANBANDENBusiness>();
            HSCV_VANBANDEN VanBan = HSCV_VANBANDENBusiness.Find(id);

            AssignUserInfo();
            if (VanBan == null || currentUser.ID != VanBan.NGUOITAO)
            {
                return(Json(new { Type = "ERROR", Message = "Không tìm thấy văn bản phát hành cần xóa" }));
            }
            TAILIEUDINHKEMBusiness = Get <TAILIEUDINHKEMBusiness>();
            FileUltilities        file        = new FileUltilities();
            List <TAILIEUDINHKEM> ListTaiLieu = TAILIEUDINHKEMBusiness.GetDataByItemID(id, LOAITAILIEU.VANBANDEN);

            foreach (var item in ListTaiLieu)
            {
                TAILIEUDINHKEMBusiness.repository.Delete(item.TAILIEU_ID);
                file.RemoveFile(URL_FOLDER + item.DUONGDAN_FILE);
                if (!string.IsNullOrEmpty(item.PDF_VERSION))
                {
                    file.RemoveFile(URL_FOLDER + item.PDF_VERSION);
                }
            }
            THUMUC_LUUTRUBusiness = Get <THUMUC_LUUTRUBusiness>();
            THUMUC_LUUTRU ThuMuc = THUMUC_LUUTRUBusiness.GetDataByNam(id.ToString(), ThuMucLuuTruConstant.DefaultVbDen);

            if (ThuMuc != null)
            {
                ThuMuc.IS_DELETE = true;
                THUMUC_LUUTRUBusiness.Save(ThuMuc);
            }
            TAILIEUDINHKEMBusiness.Save();
            HSCV_VANBANDENBusiness.repository.Delete(id);
            HSCV_VANBANDENBusiness.Save();
            #region Xóa đơn vị nhận văn bản
            HSCV_VANBANDEN_DONVINHANBusiness = Get <HSCV_VANBANDEN_DONVINHANBusiness>();
            var ListDonVi = HSCV_VANBANDEN_DONVINHANBusiness.GetData(id);
            if (ListDonVi.Any())
            {
                foreach (var item in ListDonVi)
                {
                    HSCV_VANBANDEN_DONVINHANBusiness.repository.Delete(item.ID);
                }
                HSCV_VANBANDEN_DONVINHANBusiness.Save();
            }
            #endregion
            return(Json(new { Type = "SUCCESS", Message = "Xóa văn bản phát hành thành công" }));
        }
Ejemplo n.º 5
0
        public PartialViewResult ShowDepartment(long id)
        {
            HSCV_VANBANDENBusiness = Get <HSCV_VANBANDENBusiness>();
            HSCV_VANBANDEN VanBan = HSCV_VANBANDENBusiness.Find(id);

            if (VanBan == null)
            {
                VanBan = new HSCV_VANBANDEN();
            }
            DonViNhanModel model = new DonViNhanModel();

            HSCV_VANBANDEN_DONVINHANBusiness = Get <HSCV_VANBANDEN_DONVINHANBusiness>();
            model.VanBan    = VanBan;
            model.ListDonVi = HSCV_VANBANDEN_DONVINHANBusiness.GetDataBO(id);
            return(PartialView("_ShowDepartment", model));
        }
Ejemplo n.º 6
0
        public ActionResult CreateLichCongTac(long idVanBanDen = 0)
        {
            AssignUserInfo();
            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            cctcThanhPhanBusiness = Get <CCTC_THANHPHANBusiness>();
            dmNguoiDungBusiness   = Get <DM_NGUOIDUNGBusiness>();
            dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();
            wfLogBusiness         = Get <WF_LOGBusiness>();

            EditLichCongTacViewModel model = new EditLichCongTacViewModel();
            long userId = 0;

            if (idVanBanDen > 0)
            {
                HSCV_VANBANDEN entityVanBanDen = hscvVanBanDenBusiness.Find(idVanBanDen);
                if (entityVanBanDen != null && entityVanBanDen.NGUOITAO == currentUser.ID && hscvVanBanDenBusiness.CheckIsFinish(entityVanBanDen.ID))
                {
                    LICHCONGTAC calendar = new LICHCONGTAC();
                    calendar.TIEUDE       = entityVanBanDen.TRICHYEU;
                    calendar.NGAY_CONGTAC = entityVanBanDen.NGAYCONGTAC ?? DateTime.Now;
                    calendar.GIO_CONGTAC  = entityVanBanDen.GIO_CONGTAC.GetValueOrDefault();
                    calendar.PHUT_CONGTAC = entityVanBanDen.PHUT_CONGTAC.GetValueOrDefault();
                    model = new EditLichCongTacViewModel(calendar);
                    model.entityLichCongTac = calendar;

                    //lấy người xử lý cuối làm người chủ trì công tác
                    DM_NGUOIDUNG_BO lastProcessor = wfLogBusiness.GetFinalProcessor(entityVanBanDen.ID, MODULE_CONSTANT.VANBANDEN);
                    userId = lastProcessor.ID;
                }
                else
                {
                    return(Redirect("/Home/UnAuthor"));
                }
            }
            else if (SessionManager.HasValue("CreateCalendarOfTheDay"))
            {
                LICHCONGTAC entityCalendar = (LICHCONGTAC)SessionManager.GetValue("CreateCalendarOfTheDay");
                model = new EditLichCongTacViewModel(entityCalendar);

                SessionManager.Remove("CreateCalendarOfTheDay");
            }
            model.groupOfLanhDaos     = dmNguoiDungBusiness.GetDropDownByDeptParentId(currentUser.DeptParentID.GetValueOrDefault(), userId);
            model.groupOfDestinations = dmDanhMucDataBusiness.GetGroupTextByCode(DMLOAI_CONSTANT.DIEM_DEN);
            return(View("EditLichCongTac", model));
        }
        public JsonResult Delete(long id)
        {
            hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
            HSCV_VANBANDEN entityVanBanDen = hscvVanBanDenBusiness.Find(id);

            AssignUserInfo();
            if (entityVanBanDen == null || currentUser.ID != entityVanBanDen.NGUOITAO)
            {
                return(Json(new { Type = "ERROR", Message = "Bạn không có quyền xóa văn bản trình ký này" }));
            }
            attachmentBusiness = Get <TAILIEUDINHKEMBusiness>();
            FileUltilities        file        = new FileUltilities();
            List <TAILIEUDINHKEM> ListTaiLieu = attachmentBusiness.GetDataByItemID(id, LOAITAILIEU.VANBANDEN);

            foreach (var item in ListTaiLieu)
            {
                attachmentBusiness.repository.Delete(item.TAILIEU_ID);
                file.RemoveFile(uploadFolder + item.DUONGDAN_FILE);
                if (!string.IsNullOrEmpty(item.PDF_VERSION))
                {
                    file.RemoveFile(uploadFolder + item.PDF_VERSION);
                }
            }
            storeFolderBusiness = Get <THUMUC_LUUTRUBusiness>();
            THUMUC_LUUTRU ThuMuc = storeFolderBusiness.GetDataByNam(id.ToString(), ThuMucLuuTruConstant.DefaultVanban);

            if (ThuMuc != null)
            {
                ThuMuc.IS_DELETE = true;
                storeFolderBusiness.Save(ThuMuc);
            }
            attachmentBusiness.Save();
            hscvVanBanDenBusiness.repository.Delete(id);
            #region xóa văn bản đến trong elastic

            ElasticSearch.deleteDocument(id.ToString(), ElasticType.VanBanDen);
            #endregion
            return(Json(new { Type = "SUCCESS", Message = "Xóa văn bản đến thành công" }));
        }
Ejemplo n.º 8
0
 /// <summary>
 /// @author:duynn
 /// @description: chuyển các file từ văn bản đi ==> thành văn bản đến
 /// </summary>
 /// <param name="groupFiles"></param>
 /// <param name="entityVanBanDen"></param>
 /// <returns></returns>
 public IEnumerable <TAILIEUDINHKEM> GenerateFiles(List <TAILIEUDINHKEM> groupFiles, HSCV_VANBANDEN entityVanBanDen)
 {
     foreach (var item in groupFiles)
     {
         var file = new TAILIEUDINHKEM();
         file.IS_ACTIVE         = item.IS_ACTIVE;
         file.ACCESS_MODIFIER   = item.ACCESS_MODIFIER;
         file.CONTENT_CHANGE    = item.CONTENT_CHANGE;
         file.DINHDANG_FILE     = item.DINHDANG_FILE;
         file.DM_LOAITAILIEU_ID = item.DM_LOAITAILIEU_ID;
         file.DONVI_ID          = item.DONVI_ID;
         file.DUONGDAN_FILE     = item.DUONGDAN_FILE;
         file.FOLDER_ID         = item.FOLDER_ID;
         file.IS_PHEDUYET       = item.IS_PHEDUYET;
         file.IS_PRIVATE        = item.IS_PRIVATE;
         file.IS_QLPHIENBAN     = item.IS_QLPHIENBAN;
         file.KICHCO            = item.KICHCO;
         file.MATAILIEU         = item.MATAILIEU;
         file.MOTA             = item.MOTA;
         file.SOLUONG_DOWNLOAD = item.SOLUONG_DOWNLOAD;
         file.NGAYTAO          = DateTime.Now;
         file.NGAYPHATHANH     = DateTime.Now;
         file.VERSION          = item.VERSION;
         file.TENTACGIA        = item.TENTACGIA;
         file.TENTAILIEU       = item.TENTAILIEU;
         file.PDF_VERSION      = item.PDF_VERSION;
         file.PERMISSION       = item.PERMISSION;
         file.TRANGTHAI        = item.TRANGTHAI;
         file.ITEM_ID          = entityVanBanDen.ID;
         file.USER_ID          = file.USER_ID;
         file.LOAI_TAILIEU     = LOAITAILIEU.VANBANDEN;
         file.IS_LOCK          = file.IS_LOCK;
         file.NGUOI_LOCK       = file.NGUOI_LOCK;
         yield return(file);
     }
 }
Ejemplo n.º 9
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);
        }
Ejemplo n.º 10
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));
        }
        public ActionResult SaveVanBanDen(HSCV_VANBANDEN entity, FormCollection fc, IEnumerable <HttpPostedFileBase> filebase, string[] filename, string[] FOLDER_ID)
        {
            try
            {
                AssignUserInfo();

                UploadFileTool uploadFileTool = new UploadFileTool();
                hscvVanBanDenBusiness = Get <HSCV_VANBANDENBusiness>();
                wfProcessBusiness     = Get <WF_PROCESSBusiness>();
                dmDanhMucDataBusiness = Get <DM_DANHMUC_DATABusiness>();

                entity.SOHIEU            = fc["SOHIEU"].Trim();
                entity.TRICHYEU          = fc["TRICHYEU"].Trim();
                entity.SOTRANG           = fc["SOTRANG"].ToIntOrZero();
                entity.LOAIVANBAN_ID     = fc["LOAIVANBAN_ID"].ToIntOrZero();
                entity.DONVI_ID          = fc["DONVI_ID"].ToIntOrZero();
                entity.LINHVUCVANBAN_ID  = fc["LINHVUCVANBAN_ID"].ToIntOrZero();
                entity.DOKHAN_ID         = fc["DOKHAN_ID"].ToIntOrZero();
                entity.NGAY_HIEULUC      = fc["NGAY_HIEULUC"].ToDateTime();
                entity.NGAYHET_HIEULUC   = fc["NGAYHET_HIEULUC"].ToDateTime();
                entity.NGAY_VANBAN       = fc["NGAY_VANBAN"].ToDateTime();
                entity.NGAY_BANHANH      = fc["NGAY_BANHANH"].ToDateTime();
                entity.NGUOIKY           = !string.IsNullOrEmpty(fc["NGUOIKY"]) ? fc["NGUOIKY"].Trim() : string.Empty;
                entity.CHUCVU            = !string.IsNullOrEmpty(fc["CHUCVU"]) ? fc["CHUCVU"].Trim() : string.Empty;
                entity.NOIDUNG           = !string.IsNullOrEmpty(fc["NOIDUNGVANBAN"]) ? fc["NOIDUNGVANBAN"].Trim() : string.Empty;
                entity.DOMAT_ID          = fc["DOMAT_ID"].ToIntOrZero();
                entity.SOVANBANDEN_ID    = fc["SOVANBANDEN_ID"].ToIntOrZero();
                entity.SODITHEOSO        = fc["SODITHEOSO"].Trim();
                entity.NGAYCONGTAC       = fc["NGAYCONGTAC"].ToDateTime();
                entity.GIO_CONGTAC       = fc["GIO_CONGTAC"].ToIntOrNULL();
                entity.PHUT_CONGTAC      = fc["PHUT_CONGTAC"].ToIntOrNULL();
                entity.SODITHEOSO_NUMBER = int.Parse(entity.SODITHEOSO);
                entity.MA_DANGKY         = fc["MA_DANGKY"];
                entity.LOAI_COQUAN_ID    = fc["LOAI_COQUAN_ID"].ToIntOrNULL();
                entity.SO_BAN            = fc["SO_BAN"].ToIntOrNULL();
                entity.THONGTIN_LOAI_ID  = fc["THONGTIN_LOAI_ID"].ToIntOrNULL();
                entity.TACGIA            = fc["TACGIA"];
                entity.CONGVAN_DEN_ID    = fc["CONGVAN_DEN_ID"].ToIntOrNULL();
                entity.THOIHAN_GIAIQUYET = fc["THOIHAN_GIAIQUYET"].ToDateTime();
                List <long> ListUser = new List <long>();
                ListUser.Add(currentUser.ID);
                if (entity.ID == 0)
                {
                    entity.NGAYTAO  = DateTime.Now;
                    entity.NGUOITAO = currentUser.ID;
                    entity.NGAYSUA  = DateTime.Now;
                    entity.NGUOISUA = currentUser.ID;
                    hscvVanBanDenBusiness.Save(entity);
                    #region insert elastic search
                    ElasticModel model = ElasticModel.ConvertVanBanDen(entity, ListUser);
                    ElasticSearch.insertDocument(model, model.Id.ToString(), ElasticType.VanBanDen);
                    #endregion
                    JsonResultBO processResult = wfProcessBusiness.AddFlow(entity.ID, MODULE_CONSTANT.VANBANDEN, currentUser);
                    if (processResult.Status)
                    {
                        uploadFileTool.UploadFiles(filebase, extensionOfVanBanDen.Split(',').ToList(), uploadFolder, filename, entity.ID, LOAITAILIEU.VANBANDEN, maxSizeOfVanBanDen, currentUser);
                    }
                    //cập nhật số đi theo sổ
                    dmDanhMucDataBusiness.UpdateSoVanBan(entity.SOVANBANDEN_ID.GetValueOrDefault(), entity.SODITHEOSO.ToIntOrZero());
                }
                else
                {
                    HSCV_VANBANDEN dbEntity = hscvVanBanDenBusiness.Find(entity.ID);

                    dbEntity.SOHIEU           = entity.SOHIEU;
                    dbEntity.TRICHYEU         = entity.TRICHYEU;
                    dbEntity.SOTRANG          = entity.SOTRANG;
                    dbEntity.DONVI_ID         = entity.DONVI_ID;
                    dbEntity.LOAIVANBAN_ID    = entity.LOAIVANBAN_ID;
                    dbEntity.LINHVUCVANBAN_ID = entity.LINHVUCVANBAN_ID;
                    dbEntity.DOKHAN_ID        = entity.DOKHAN_ID;
                    dbEntity.NGAY_HIEULUC     = entity.NGAY_HIEULUC;
                    dbEntity.NGAYHET_HIEULUC  = entity.NGAYHET_HIEULUC;
                    dbEntity.NGAY_VANBAN      = entity.NGAY_VANBAN;
                    dbEntity.NGAY_BANHANH     = entity.NGAY_BANHANH;
                    dbEntity.NGUOIKY          = entity.NGUOIKY;
                    dbEntity.CHUCVU           = entity.CHUCVU;
                    dbEntity.NOIDUNG          = entity.NOIDUNG;
                    dbEntity.DOMAT_ID         = entity.DOMAT_ID;

                    dbEntity.NGAYCONGTAC       = entity.NGAYCONGTAC;
                    dbEntity.SOVANBANDEN_ID    = entity.SOVANBANDEN_ID;
                    dbEntity.SODITHEOSO        = entity.SODITHEOSO;
                    dbEntity.SODITHEOSO_NUMBER = entity.SODITHEOSO_NUMBER;

                    dbEntity.GIO_CONGTAC  = entity.GIO_CONGTAC;
                    dbEntity.PHUT_CONGTAC = entity.PHUT_CONGTAC;

                    dbEntity.MA_DANGKY              = entity.MA_DANGKY;
                    dbEntity.LOAI_COQUAN_ID         = entity.LOAI_COQUAN_ID;
                    dbEntity.SO_BAN                 = entity.SO_BAN;
                    dbEntity.THONGTIN_LOAI_ID       = entity.THONGTIN_LOAI_ID;
                    dbEntity.TACGIA                 = entity.TACGIA;
                    dbEntity.CONGVAN_DEN_ID         = entity.CONGVAN_DEN_ID;
                    dbEntity.THOIHAN_GIAIQUYET      = entity.THOIHAN_GIAIQUYET;
                    dbEntity.NGUOINHAN_TRUCTIEP_IDS = entity.NGUOINHAN_TRUCTIEP_IDS;
                    dbEntity.NGAYSUA                = DateTime.Now;
                    dbEntity.NGUOISUA               = currentUser.ID;
                    hscvVanBanDenBusiness.Save(dbEntity);

                    uploadFileTool.UploadFiles(filebase, extensionOfVanBanDen.Split(',').ToList(), uploadFolder, filename, dbEntity.ID, LOAITAILIEU.VANBANDEN, maxSizeOfVanBanDen, currentUser);

                    #region update elastic
                    ElasticModel model = ElasticModel.ConvertVanBanDen(dbEntity, ListUser);
                    ElasticSearch.updateDocument(model, model.Id.ToString(), ElasticType.VanBanDen);
                    #endregion
                }
                return(RedirectToAction("DetailVanBanDen", new { id = entity.ID }));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 13
0
 public EditVanBanDenModel(HSCV_VANBANDEN entity)
 {
     this.groupHours   = Utility.GetHours(entity.GIO_CONGTAC.GetValueOrDefault());
     this.groupMinutes = Utility.GetMinutes(entity.PHUT_CONGTAC.GetValueOrDefault());
 }
Ejemplo n.º 14
0
        public JsonResult SaveObj(HSCV_VANBANDEN VanBan, FormCollection col, IEnumerable <HttpPostedFileBase> filebase, string[] filename, string[] FOLDER_ID)
        {
            try
            {
                List <CommonError> ListError = new List <CommonError>();
                Regex regex = new Regex(@"\d{2}/\d{2}/\d{4}");
                #region Gán dữ liệu string
                string NGUOIKY     = string.Empty;
                string CHUCVU      = string.Empty;
                string TRICHYEU    = string.Empty;
                string NOIDUNG     = string.Empty;
                string SOHIEU      = string.Empty;
                string SOTHEOSO    = string.Empty;
                string YKIENCHIDAO = string.Empty;
                if (!string.IsNullOrEmpty(col["NGUOIKY"]))
                {
                    NGUOIKY = col["NGUOIKY"].Trim();
                }
                if (!string.IsNullOrEmpty(col["CHUCVU"]))
                {
                    CHUCVU = col["CHUCVU"].Trim();
                }
                if (!string.IsNullOrEmpty(col["TRICHYEU"]))
                {
                    TRICHYEU = col["TRICHYEU"].Trim();
                }
                if (!string.IsNullOrEmpty(col["NOIDUNG"]))
                {
                    NOIDUNG = col["NOIDUNG"].Trim();
                }
                if (!string.IsNullOrEmpty(col["SOHIEU"]))
                {
                    SOHIEU = col["SOHIEU"].Trim();
                }
                CommonError commonError;
                if (!string.IsNullOrEmpty(col["NGAY_HIEULUC"]))
                {
                    if (regex.IsMatch(col["NGAY_HIEULUC"]))
                    {
                        VanBan.NGAY_HIEULUC = col["NGAY_HIEULUC"].ToDataTime();
                        if (!VanBan.NGAY_HIEULUC.HasValue)
                        {
                            commonError         = new CommonError();
                            commonError.Field   = "NGAY_HIEULUC";
                            commonError.Message = "Ngày hiệu lực không tồn tại";
                            ListError.Add(commonError);
                        }
                    }
                    else
                    {
                        commonError         = new CommonError();
                        commonError.Field   = "NGAY_HIEULUC";
                        commonError.Message = "Ngày hiệu lực không đúng định dạng";
                        ListError.Add(commonError);
                    }
                }
                if (!string.IsNullOrEmpty(col["NGAYHET_HIEULUC"]))
                {
                    if (regex.IsMatch(col["NGAYHET_HIEULUC"]))
                    {
                        VanBan.NGAYHET_HIEULUC = col["NGAYHET_HIEULUC"].ToDataTime();
                        if (!VanBan.NGAYHET_HIEULUC.HasValue)
                        {
                            commonError         = new CommonError();
                            commonError.Field   = "NGAYHET_HIEULUC";
                            commonError.Message = "Ngày hết hiệu lực không tồn tại";
                            ListError.Add(commonError);
                        }
                    }
                    else
                    {
                        commonError         = new CommonError();
                        commonError.Field   = "NGAYHET_HIEULUC";
                        commonError.Message = "Ngày hết hiệu lực không đúng định dạng";
                        ListError.Add(commonError);
                    }
                }
                if (!string.IsNullOrEmpty(col["NGAY_VANBAN"]))
                {
                    if (regex.IsMatch(col["NGAY_VANBAN"]))
                    {
                        VanBan.NGAY_VANBAN = col["NGAY_VANBAN"].ToDataTime();
                        if (!VanBan.NGAY_VANBAN.HasValue)
                        {
                            commonError         = new CommonError();
                            commonError.Field   = "NGAY_VANBAN";
                            commonError.Message = "Ngày văn bản không tồn tại";
                            ListError.Add(commonError);
                        }
                    }
                    else
                    {
                        commonError         = new CommonError();
                        commonError.Field   = "NGAY_VANBAN";
                        commonError.Message = "Ngày văn bản không đúng định dạng";
                        ListError.Add(commonError);
                    }
                }
                if (VanBan.NGAY_HIEULUC > VanBan.NGAYHET_HIEULUC)
                {
                    commonError         = new CommonError();
                    commonError.Field   = "NGAY_HIEULUC";
                    commonError.Message = "Ngày có hiệu lực phải nhỏ hơn hoặc bằng ngày hết hiệu lực";
                    ListError.Add(commonError);
                }
                if (!string.IsNullOrEmpty(col["NGAY_BANHANH"]))
                {
                    if (regex.IsMatch(col["NGAY_BANHANH"]))
                    {
                        VanBan.NGAY_BANHANH = col["NGAY_BANHANH"].ToDataTime();
                        if (!VanBan.NGAY_BANHANH.HasValue)
                        {
                            commonError         = new CommonError();
                            commonError.Field   = "NGAY_BANHANH";
                            commonError.Message = "Ngày ban hành không tồn tại";
                            ListError.Add(commonError);
                        }
                    }
                    else
                    {
                        commonError         = new CommonError();
                        commonError.Field   = "NGAY_BANHANH";
                        commonError.Message = "Ngày ban hành không đúng định dạng";
                        ListError.Add(commonError);
                    }
                }
                else
                {
                    commonError         = new CommonError();
                    commonError.Field   = "NGAY_BANHANH";
                    commonError.Message = "Bạn chưa chọn ngày ban hành";
                    ListError.Add(commonError);
                }
                //if (!string.IsNullOrEmpty(col["SOTHEOSO"]))
                //{
                //    SOTHEOSO = col["SOTHEOSO"].Trim();
                //}
                //if (!string.IsNullOrEmpty(col["YKIENCHIDAO"]))
                //{
                //    YKIENCHIDAO = col["YKIENCHIDAO"].Trim();
                //}
                #endregion
                VanBan.NGUOIKY  = NGUOIKY;
                VanBan.CHUCVU   = CHUCVU;
                VanBan.TRICHYEU = TRICHYEU;
                VanBan.NOIDUNG  = NOIDUNG;
                VanBan.SOHIEU   = SOHIEU;
                //VanBan.SOTHEOSO = SOTHEOSO;
                //VanBan.YKIENCHIDAO = YKIENCHIDAO;
                ListError.AddRange(IsValid(VanBan));
                if (ListError.Count > 0)
                {
                    return(Json(new { Type = "INVALID", Message = ListError }));
                }
                AssignUserInfo();
                HSCV_VANBANDENBusiness = Get <HSCV_VANBANDENBusiness>();

                UploadFileTool tool = new UploadFileTool();
                if (VanBan.ID > 0)
                {
                    #region Cập nhật văn bản
                    var result = HSCV_VANBANDENBusiness.Find(VanBan.ID);
                    if (result == null || currentUser.ID != result.NGUOITAO)
                    {
                        return(Json(new { Type = "ERROR", Message = "Không tìm thấy văn bản phát hành cần cập nhật" }));
                    }
                    result.CHUCVU    = VanBan.CHUCVU;
                    result.DOKHAN_ID = VanBan.DOKHAN_ID;
                    result.DOMAT_ID  = VanBan.DOMAT_ID;
                    //result.DOUUTIEN_ID = VanBan.DOUUTIEN_ID;
                    result.LINHVUCVANBAN_ID = VanBan.LINHVUCVANBAN_ID;
                    result.LOAIVANBAN_ID    = VanBan.LOAIVANBAN_ID;
                    result.NGAYSUA          = DateTime.Now;
                    result.NGUOIKY          = VanBan.NGUOIKY;
                    result.NGUOISUA         = currentUser.ID;
                    result.NOIDUNG          = VanBan.NOIDUNG;
                    //result.SOBANSAO = VanBan.SOBANSAO;
                    result.SOHIEU = VanBan.SOHIEU;
                    //result.SOTHEOSO = VanBan.SOTHEOSO;
                    //result.SOTO = VanBan.SOTO;
                    result.SOTRANG  = VanBan.SOTRANG;
                    result.TRICHYEU = VanBan.TRICHYEU;
                    //result.YKIENCHIDAO = VanBan.YKIENCHIDAO;
                    result.NGAY_BANHANH    = VanBan.NGAY_BANHANH;
                    result.NGAY_HIEULUC    = VanBan.NGAY_HIEULUC;
                    result.NGAY_VANBAN     = VanBan.NGAY_VANBAN;
                    result.NGAYHET_HIEULUC = VanBan.NGAYHET_HIEULUC;
                    HSCV_VANBANDENBusiness.Save(result);
                    tool.UploadCustomFileVer3(filebase, true, VbDenExtension, URL_FOLDER, VbDenSize, FOLDER_ID, filename, result.ID, LOAITAILIEU.VANBANDEN, "Văn bản đến", currentUser);
                    return(Json(new { Type = "SUCCESS", Message = "Cập nhật văn bản phát hành thành công" }));

                    #endregion
                }
                else
                {
                    #region Thêm mới văn bản
                    VanBan.NGAYTAO  = DateTime.Now;
                    VanBan.NGUOITAO = currentUser.ID;
                    VanBan.DONVI_ID = currentUser.DM_PHONGBAN_ID;
                    HSCV_VANBANDENBusiness.Save(VanBan);
                    tool.UploadCustomFileVer3(filebase, true, VbDenExtension, URL_FOLDER, VbDenSize, FOLDER_ID, filename, VanBan.ID, LOAITAILIEU.VANBANDEN, "Văn bản đến", currentUser);
                    #endregion
                }
                #region Thêm đơn vị nhận
                HSCV_VANBANDEN_DONVINHANBusiness = Get <HSCV_VANBANDEN_DONVINHANBusiness>();
                var ListDonVi = HSCV_VANBANDEN_DONVINHANBusiness.GetData(VanBan.ID);
                foreach (var item in ListDonVi)
                {
                    HSCV_VANBANDEN_DONVINHANBusiness.repository.Delete(item.ID);
                }
                HSCV_VANBANDEN_DONVINHANBusiness.Save();
                var selectedDept = col["department-choose"];
                if (!string.IsNullOrEmpty(selectedDept))
                {
                    var Ids = selectedDept.ToListInt(',');
                    foreach (var item in Ids)
                    {
                        HSCV_VANBANDEN_DONVINHAN DonVi = new HSCV_VANBANDEN_DONVINHAN();
                        DonVi.DONVI_ID     = item;
                        DonVi.VANBANDEN_ID = VanBan.ID;
                        HSCV_VANBANDEN_DONVINHANBusiness.Save(DonVi);
                    }
                }
                #endregion
                return(Json(new { Type = "SUCCESS", Message = "Thêm mới văn bản phát hành thành công" }));
            }
            catch (Exception ex)
            {
                return(Json(new { Type = "ERROR", Message = "Đã có lỗi xảy ra. Vui lòng kiểm tra lại" }));
            }
        }
Ejemplo n.º 15
0
        private List <CommonError> IsValid(HSCV_VANBANDEN VanBan)
        {
            List <CommonError> ListError = new List <CommonError>();
            CommonError        error     = new CommonError();

            if (string.IsNullOrEmpty(VanBan.SOHIEU))
            {
                error.Field   = "SOHIEU";
                error.Message = "Bạn chưa nhập số/ ký hiệu";
                ListError.Add(error);
            }
            else if (VanBan.SOHIEU.Length > 50)
            {
                error.Field   = "SOHIEU";
                error.Message = "Số/ ký hiệu không được lớn hơn 50 ký tự";
                ListError.Add(error);
            }
            if (string.IsNullOrEmpty(VanBan.NGUOIKY))
            {
                error.Field   = "NGUOIKY";
                error.Message = "Bạn chưa nhập người ký";
                ListError.Add(error);
            }
            if (string.IsNullOrEmpty(VanBan.TRICHYEU))
            {
                error         = new CommonError();
                error.Field   = "SOHIEU";
                error.Message = "Bạn chưa nhập số/ ký hiệu";
                ListError.Add(error);
            }
            if (!VanBan.LOAIVANBAN_ID.HasValue)
            {
                error         = new CommonError();
                error.Field   = "LOAIVANBAN_ID";
                error.Message = "Bạn chưa chọn loại văn bản";
                ListError.Add(error);
            }
            if (!VanBan.LINHVUCVANBAN_ID.HasValue)
            {
                error         = new CommonError();
                error.Field   = "LINHVUCVANBAN_ID";
                error.Message = "Bạn chưa chọn lĩnh vực văn bản";
                ListError.Add(error);
            }
            if (!VanBan.DOKHAN_ID.HasValue)
            {
                error         = new CommonError();
                error.Field   = "DOKHAN_ID";
                error.Message = "Bạn chưa chọn độ khẩn văn bản";
                ListError.Add(error);
            }
            if (!VanBan.DOMAT_ID.HasValue)
            {
                error         = new CommonError();
                error.Field   = "DOMAT_ID";
                error.Message = "Bạn chưa chọn độ mật văn bản";
                ListError.Add(error);
            }

            return(ListError);
        }