/// <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")); }
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); }
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" })); }
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)); }
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" })); }
/// <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); } }
/// <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); }
/// <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")); } }
public EditVanBanDenModel(HSCV_VANBANDEN entity) { this.groupHours = Utility.GetHours(entity.GIO_CONGTAC.GetValueOrDefault()); this.groupMinutes = Utility.GetMinutes(entity.PHUT_CONGTAC.GetValueOrDefault()); }
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" })); } }
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); }