Пример #1
0
        public JsonResult RejectCarRegistration(FormCollection fc)
        {
            AssignUserInfo();
            JsonResultBO result = new JsonResultBO(false);

            qlDangKyXeBusiness  = Get <QL_DANGKY_XEBusiness>();
            dmNguoiDungBusiness = Get <DM_NGUOIDUNGBusiness>();
            sysTinNhanBusiness  = Get <SYS_TINNHANBusiness>();

            long         id           = fc["ID"].ToLongOrZero();
            QL_DANGKY_XE registration = qlDangKyXeBusiness.Find(id);

            if (registration != null && registration.IS_DELETE != true)
            {
                registration.TRANGTHAI   = TRANGTHAI_DANGKY_XE_CONSTANT.MOITAO_ID;
                registration.LYDO_TUCHOI = fc["LYDO_TUCHOI"].Trim();
                qlDangKyXeBusiness.Save(registration);
                result.Status  = true;
                result.Message = "Đã hủy tiếp nhận yêu cầu đăng ký xe";

                //gửi tin nhắn cho người tạo yêu cầu
                List <long> notifyUsers = new List <long>()
                {
                    registration.NGUOITAO.GetValueOrDefault()
                };
                string title   = "KHÔNG TIẾP NHẬN YÊU CẦU SỬ DỤNG XE";
                string content = string.Format("{0} đã từ chối tiếp nhận một yêu cầu sử dụng xe", currentUser.HOTEN);

                sysTinNhanBusiness.sendMessageMultipleUsers(notifyUsers, currentUser, title, content, Url.Action("Details", new { id = id }), string.Empty, false, id, 0);
            }
            return(Json(result));
        }
Пример #2
0
        public JsonResult SendCarRegistration(long registrationId)
        {
            AssignUserInfo();
            JsonResultBO result = new JsonResultBO(false);

            qlDangKyXeBusiness  = Get <QL_DANGKY_XEBusiness>();
            dmNguoiDungBusiness = Get <DM_NGUOIDUNGBusiness>();
            sysTinNhanBusiness  = Get <SYS_TINNHANBusiness>();

            QL_DANGKY_XE registration = qlDangKyXeBusiness.Find(registrationId);

            if (registration != null && registration.IS_DELETE != true)
            {
                registration.TRANGTHAI = TRANGTHAI_DANGKY_XE_CONSTANT.DAGUI_ID;
                qlDangKyXeBusiness.Save(registration);
                result.Status  = true;
                result.Message = "Đã gửi yêu cầu đăng ký sử dụng xe";

                //gửi tin nhắn cho người có quyền xác nhận yêu cầu sử dụng xe
                List <long> notifyUsers = dmNguoiDungBusiness.GetListUsersByFunctionCodeAndDeptId(CONFIRM_CAR_REGISTRATION, currentUser.DeptParentID.GetValueOrDefault());
                string      title       = "YÊU CẦU SỬ DỤNG XE";
                string      content     = string.Format("{0} đã gửi một yêu cầu sử dụng xe", currentUser.HOTEN);

                sysTinNhanBusiness.sendMessageMultipleUsers(notifyUsers, currentUser, title, content, Url.Action("Details", new { id = registrationId }), string.Empty, false, registrationId, 0);
            }
            else
            {
                result.Message = "Không tìm thấy đăng ký xe";
            }
            return(Json(result));
        }
Пример #3
0
        public JsonResult searchData(FormCollection form)
        {
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            var searchModel = SessionManager.GetValue("nofifSearch") as SYS_TINNHAN_SEARCH;

            if (searchModel == null)
            {
                searchModel          = new SYS_TINNHAN_SEARCH();
                searchModel.pageSize = 20;
            }
            searchModel.TIEUDE = string.IsNullOrEmpty(form["TIEUDE"]) ? form["TIEUDE"] : form["TIEUDE"].Trim();
            if (!string.IsNullOrEmpty(form["TUNGAY"]))
            {
                searchModel.TUNGAY = form["TUNGAY"].ToDateTime();
            }
            if (!string.IsNullOrEmpty(form["DENNGAY"]))
            {
                searchModel.DENNGAY = form["DENNGAY"].ToDateTime();
            }
            if (!string.IsNullOrEmpty(form["TRANGTHAI"]))
            {
                searchModel.TRANGTHAI = form["TRANGTHAI"].Equals("1");
            }
            SessionManager.SetValue("thuoctinhSearch", searchModel);
            var data = SYS_TINNHANBusiness.GetDaTaByPage(searchModel, searchModel.pageSize, 1);

            return(Json(data));
        }
Пример #4
0
        public JsonResult DeleteLichHop(long id, bool isCancel = false)
        {
            AssignUserInfo();
            JsonResultBO result = new JsonResultBO(true);

            QUANLY_PHONGHOPBusiness = Get <QUANLY_PHONGHOPBusiness>();
            QUANLY_PHONGHOP entity = QUANLY_PHONGHOPBusiness.Find(id);

            if (entity != null && entity.IS_DELETE != true)
            {
                entity.IS_DELETE = true;
                QUANLY_PHONGHOPBusiness.Save(entity);

                if (isCancel)
                {
                    SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
                    string bookDate = entity.NGAYDAT != null?entity.NGAYDAT.Value.ToVietnameseDateFormat() : string.Empty;

                    string title     = "THÔNG BÁO HỦY LỊCH";
                    string url       = string.Empty;
                    string startTime = string.Format("{0}h{1}", entity.GIOBATDAU.Value.ToString("D2"), entity.PHUTBATDAU.Value.ToString("D2"));
                    string endTime   = string.Format("{0}h{1}", entity.GIOKETTHUC.Value.ToString("D2"), entity.PHUTKETTHUC.Value.ToString("D2"));

                    string content = string.Format("Cuộc họp về \"{0}\" trong ngày {1} ({2} - {3}) đã bị hủy", entity.MUCDICH, bookDate, startTime, endTime);
                    SYS_TINNHANBusiness.sendMessageMultipleUsers(new List <long> {
                        entity.CREATED_BY.GetValueOrDefault()
                    }, currentUser, title, content, url, string.Empty, false, entity.ID, 0);
                }
            }
            else
            {
                result.Status = false;
            }
            return(Json(result));
        }
Пример #5
0
        public ActionResult Index()
        {
            AssignUserInfo();
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            SYS_TINNHAN_SEARCH searchModel = new SYS_TINNHAN_SEARCH();

            searchModel.USER_ID  = currentUser.ID;
            searchModel.pageSize = MaxPerpage;
            var data = SYS_TINNHANBusiness.GetDaTaByPage(searchModel, MaxPerpage);

            SessionManager.SetValue("nofifSearch", searchModel);
            return(View(data));
        }
Пример #6
0
        public JsonResult Delete(long id)
        {
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            AssignUserInfo();
            SYS_TINNHAN Message = SYS_TINNHANBusiness.Find(id);

            if (Message == null || currentUser.ID != Message.TO_USER_ID)
            {
                return(Json(new { Type = "ERROR", Message = "Bạn không có quyền xóa thông báo này" }));
            }
            SYS_TINNHANBusiness.repository.Delete(id);
            SYS_TINNHANBusiness.Save();
            return(Json(new { Type = "SUCCESS", Message = "Xóa thông báo thành công" }));
        }
Пример #7
0
        public JsonResult CancelRegistration(long registrationId)
        {
            AssignUserInfo();
            JsonResultBO result = new JsonResultBO(true);

            qlDangKyXeBusiness  = Get <QL_DANGKY_XEBusiness>();
            qlChuyenBusiness    = Get <QL_DANGKYXE_LAIXEBusiness>();
            dmNguoiDungBusiness = Get <DM_NGUOIDUNGBusiness>();
            sysTinNhanBusiness  = Get <SYS_TINNHANBusiness>();

            QL_DANGKY_XE registration = qlDangKyXeBusiness.Find(registrationId);

            if (registration != null && registration.IS_DELETE != true)
            {
                QL_DANGKYXE_LAIXE trip = qlChuyenBusiness.repository.All().Where(x => x.QL_DANGKY_XE_ID == registration.ID).FirstOrDefault();
                if (trip == null || trip.TRANGTHAI == TRANGTHAI_CHUYEN_CONSTANT.MOITAO_ID)
                {
                    if (trip != null)
                    {
                        qlChuyenBusiness.repository.Delete(trip);
                    }
                    registration.TRANGTHAI = TRANGTHAI_DANGKY_XE_CONSTANT.DA_HUY_ID;
                    qlDangKyXeBusiness.Save(registration);
                    result.Message = "Hủy yêu cầu thành công";

                    //gửi tin nhắn cho người có quyền xác nhận yêu cầu sử dụng xe
                    List <long> notifyUsers = dmNguoiDungBusiness.GetListUsersByFunctionCodeAndDeptId(CONFIRM_CAR_REGISTRATION, currentUser.DeptParentID.GetValueOrDefault());
                    string      title       = "HỦY YÊU CẦU SỬ DỤNG XE";
                    string      content     = string.Format("{0} đã hủy một yêu cầu sử dụng xe", currentUser.HOTEN);

                    sysTinNhanBusiness.sendMessageMultipleUsers(notifyUsers, currentUser, title, content, Url.Action("Details", new { id = registrationId }), string.Empty, false, registrationId, 0);
                }
                else
                {
                    result.Status = false;
                    if (trip.TRANGTHAI == TRANGTHAI_CHUYEN_CONSTANT.DANGCHAY_ID)
                    {
                        result.Message = "Yêu cầu đang được thực thi không thể hủy";
                    }
                    else
                    {
                        result.Message = "Hủy yêu cầu không thành công";
                    }
                }
            }
            return(Json(result));
        }
Пример #8
0
        public PartialViewResult Detail(long id)
        {
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            SYS_TINNHAN_BO notif = SYS_TINNHANBusiness.GetInfoBO(id);

            AssignUserInfo();
            if (notif == null || currentUser.ID != notif.TO_USER_ID)
            {
                notif = new SYS_TINNHAN_BO();
            }
            else
            {
                SYS_TINNHAN TinNhan = notif.ToModel();
                if (false == TinNhan.IS_READ || !TinNhan.IS_READ.HasValue)
                {
                    TinNhan.IS_READ = true;
                    SYS_TINNHANBusiness.Save(TinNhan);
                }
            }
            return(PartialView("_Detail", notif));
        }
Пример #9
0
        public JsonResult ReadAll()
        {
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            var result = new JsonResultBO(true);

            AssignUserInfo();
            try
            {
                var lstThongBao = SYS_TINNHANBusiness.repository.All().Where(x => x.TO_USER_ID == currentUser.ID && x.IS_READ == false).ToList();
                foreach (var item in lstThongBao)
                {
                    item.IS_READ = true;
                    SYS_TINNHANBusiness.Save(item);
                }
            }
            catch (Exception ex)
            {
                result.MessageFail(ex.Message);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
Пример #10
0
        public JsonResult getData(int indexPage, string sortQuery, int pageSize)
        {
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            var searchModel = SessionManager.GetValue("nofifSearch") as SYS_TINNHAN_SEARCH;

            if (!string.IsNullOrEmpty(sortQuery))
            {
                if (searchModel == null)
                {
                    searchModel = new SYS_TINNHAN_SEARCH();
                }
                searchModel.sortQuery = sortQuery;
                if (pageSize > 0)
                {
                    searchModel.pageSize = pageSize;
                }
                SessionManager.SetValue("thuoctinhSearch", searchModel);
            }
            var data = SYS_TINNHANBusiness.GetDaTaByPage(searchModel, pageSize, indexPage);

            return(Json(data));
        }
Пример #11
0
        public JsonResult AcceptCarRegistration(FormCollection fc)
        {
            AssignUserInfo();
            JsonResultBO result = new JsonResultBO(false);

            qlChuyenBusiness    = Get <QL_DANGKYXE_LAIXEBusiness>();
            qlDangKyXeBusiness  = Get <QL_DANGKY_XEBusiness>();
            qlLaiXeBusiness     = Get <QL_LAIXEBusiness>();
            sysTinNhanBusiness  = Get <SYS_TINNHANBusiness>();
            dmNguoiDungBusiness = Get <DM_NGUOIDUNGBusiness>();
            try
            {
                long         registrationId = fc["DANGKY_XE_ID"].ToIntOrZero();
                QL_DANGKY_XE registration   = qlDangKyXeBusiness.Find(registrationId);

                if (registration != null)
                {
                    List <int> cars    = fc["XE_ID"].ToListInt(',');
                    List <int> drivers = fc["LAIXE_ID"].ToListInt(',');

                    for (int i = 0; i < cars.Count; i++)
                    {
                        QL_LAIXE          driver = qlLaiXeBusiness.Find(drivers[i]) ?? new QL_LAIXE();
                        QL_DANGKYXE_LAIXE item   = new QL_DANGKYXE_LAIXE();
                        item.CCTC_THANHPHAN_ID = currentUser.DeptParentID.GetValueOrDefault();
                        item.TEN_CHUYEN        = "Chuyến " + registrationId + "-" + driver.HOTEN;
                        item.QL_DANGKY_XE_ID   = registrationId;
                        item.XE_ID             = cars[i];
                        item.LAIXE_ID          = drivers[i];
                        item.TRANGTHAI         = TRANGTHAI_CHUYEN_CONSTANT.MOITAO_ID;
                        item.GHICHU            = fc["GHICHU"].Trim();
                        item.NGAYTAO           = DateTime.Now;
                        item.NGAYSUA           = DateTime.Now;
                        item.NGUOISUA          = currentUser.ID;
                        item.NGUOITAO          = currentUser.ID;
                        qlChuyenBusiness.Save(item);
                    }

                    registration.TRANGTHAI = TRANGTHAI_DANGKY_XE_CONSTANT.DA_TIEPNHAN_ID;
                    qlDangKyXeBusiness.Save(registration);

                    result.Status  = true;
                    result.Message = "Tiếp nhận yêu cầu thành công";

                    //gửi tin nhắn cho người tạo ra yêu cầu
                    //gửi tin nhắn cho người tạo yêu cầu
                    List <long> notifyUsers = new List <long>()
                    {
                        registration.NGUOITAO.GetValueOrDefault()
                    };
                    string title   = "TIẾP NHẬN YÊU CẦU SỬ DỤNG XE";
                    string content = string.Format("{0} đã tiếp nhận một yêu cầu sử dụng xe", currentUser.HOTEN);

                    sysTinNhanBusiness.sendMessageMultipleUsers(notifyUsers, currentUser, title, content, Url.Action("Details", new { id = registrationId }), string.Empty, false, registrationId, 0);
                }
                else
                {
                    result.Message = "Không tìm thấy yêu cầu đăng ký xe";
                }
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            return(Json(result));
        }
Пример #12
0
        public JsonResult SaveBooking(FormCollection col)
        {
            AssignUserInfo();

            JsonResultBO result = new JsonResultBO(true);

            QUANLY_PHONGHOPBusiness = Get <QUANLY_PHONGHOPBusiness>();
            QL_PHONGHOPBusiness     = Get <QL_PHONGHOPBusiness>();
            SYS_TINNHANBusiness     = Get <SYS_TINNHANBusiness>();
            List <long> notifyUsers = new List <long>();
            string      title       = string.Empty;
            string      content     = string.Empty;
            string      url         = string.Empty;
            string      bookDate    = string.Empty;
            string      startTime   = string.Empty;
            string      endTime     = string.Empty;
            string      roomName    = string.Empty;

            QUANLY_PHONGHOP bookEntity = QUANLY_PHONGHOPBusiness.Find(col["ID"].ToIntOrZero());

            if (bookEntity != null && bookEntity.IS_DELETE != true)
            {
                bookEntity.PHONG_ID = col["PHONG_ID"].ToIntOrZero();
                QUANLY_PHONGHOPBusiness.Save(bookEntity);
                //hủy lịch các phòng khác
                string duplicateIds = col["DUPLICATE"];
                if (!string.IsNullOrEmpty(duplicateIds))
                {
                    List <int> ids = duplicateIds.ToListInt(',');
                    foreach (var id in ids)
                    {
                        QUANLY_PHONGHOP cancelCalendar = QUANLY_PHONGHOPBusiness.Find(id);
                        if (cancelCalendar != null)
                        {
                            cancelCalendar.IS_DELETE = true;
                            QUANLY_PHONGHOPBusiness.Save(cancelCalendar);

                            //gửi thông báo hủy lịch đến người đặt lịch
                            bookDate = cancelCalendar.NGAYDAT != null?cancelCalendar.NGAYDAT.Value.ToVietnameseDateFormat() : string.Empty;

                            startTime = string.Format("{0}h{1}", cancelCalendar.GIOBATDAU.Value.ToString("D2"), cancelCalendar.PHUTBATDAU.Value.ToString("D2"));
                            endTime   = string.Format("{0}h{1}", cancelCalendar.GIOKETTHUC.Value.ToString("D2"), cancelCalendar.PHUTKETTHUC.Value.ToString("D2"));

                            title   = "THÔNG BÁO HỦY LỊCH";
                            content = string.Format("Cuộc họp về \"{0}\" trong ngày {1} ({2} - {3}) đã bị hủy", cancelCalendar.MUCDICH, bookDate, startTime, endTime);
                            SYS_TINNHANBusiness.sendMessageMultipleUsers(new List <long> {
                                cancelCalendar.CREATED_BY.GetValueOrDefault()
                            }, currentUser, title, content, url, string.Empty, false, cancelCalendar.ID, 0);
                        }
                    }
                }
                result.Message = "Đặt phòng thành công";

                //lấy thông tin phòng, người đặt lịch và thời gian đặt lịch
                QL_PHONGHOP room = QL_PHONGHOPBusiness.Find(bookEntity.PHONG_ID) ?? new QL_PHONGHOP();
                roomName = room.TENPHONG;
                notifyUsers.Add(bookEntity.CREATED_BY.GetValueOrDefault());
                bookDate = bookEntity != null?bookEntity.NGAYDAT.Value.ToVietnameseDateFormat() : string.Empty;

                startTime = string.Format("{0}h{1}", bookEntity.GIOBATDAU.Value.ToString("D2"), bookEntity.PHUTBATDAU.Value.ToString("D2"));
                endTime   = string.Format("{0}h{1}", bookEntity.GIOKETTHUC.Value.ToString("D2"), bookEntity.PHUTKETTHUC.Value.ToString("D2"));
            }
            else
            {
                result.Status  = false;
                result.Message = "Yêu cầu đặt lịch không tồn tại";
            }

            title   = "THÔNG BÁO ĐẶT PHÒNG";
            content = string.Format("Cuộc họp về \"{0}\" trong ngày {1} ({2} - {3}) được đặt tại {4}", bookEntity.MUCDICH, bookDate, startTime, endTime, roomName);
            SYS_TINNHANBusiness.sendMessageMultipleUsers(notifyUsers, currentUser, title, content, url, string.Empty, false, bookEntity.ID, 0);
            return(Json(result));
        }
Пример #13
0
        public JsonResult SaveRoomRequest(FormCollection fc)
        {
            AssignUserInfo();
            SYS_TINNHANBusiness     = Get <SYS_TINNHANBusiness>();
            QUANLY_PHONGHOPBusiness = Get <QUANLY_PHONGHOPBusiness>();
            DM_NGUOIDUNGBusiness    = Get <DM_NGUOIDUNGBusiness>();
            JsonResultBO result = new JsonResultBO(true);

            QUANLY_PHONGHOP entity = new QUANLY_PHONGHOP();

            entity.ID              = fc["ID"].ToIntOrZero();
            entity.USER_ID         = fc["USER_ID"].ToLongOrZero();
            entity.MUCDICH         = fc["MUCDICH"].Trim();
            entity.THANHPHANTHAMDU = fc["THANHPHANTHAMDU"].Trim();
            entity.GIOBATDAU       = fc["GIOBATDAU"].ToIntOrZero();
            entity.PHUTBATDAU      = fc["PHUTBATDAU"].ToIntOrZero();

            entity.GIOKETTHUC  = fc["GIOKETTHUC"].ToIntOrZero();
            entity.PHUTKETTHUC = fc["PHUTKETTHUC"].ToIntOrZero();

            entity.CREATED_AT        = DateTime.Now;
            entity.CREATED_BY        = currentUser.ID;
            entity.NGAYDAT           = fc["NGAYDAT"].ToDateTime();
            entity.IS_DELETE         = false;
            entity.CCTC_THANHPHAN_ID = currentUser.DeptParentID.GetValueOrDefault();

            //danh sách người nhận thông báo đặt lịch họp
            List <long> notifyUsers = DM_NGUOIDUNGBusiness.GetListUsersByFunctionCodeAndDeptId("QUANLY_DAT_PHONGHOP", currentUser.DeptParentID.GetValueOrDefault());
            string      title       = string.Empty;
            string      content     = string.Empty;
            string      url         = string.Empty;
            string      bookDate    = entity.NGAYDAT.Value.ToVietnameseDateFormat();
            string      startTime   = string.Format("{0}h{1}", entity.GIOBATDAU.Value.ToString("D2"), entity.PHUTBATDAU.Value.ToString("D2"));
            string      endTime     = string.Format("{0}h{1}", entity.GIOKETTHUC.Value.ToString("D2"), entity.PHUTKETTHUC.Value.ToString("D2"));

            //kiểm tra trùng lịch lãnh đạo
            if (entity.USER_ID > 0)
            {
                List <QUANLY_PHONGHOP> bookingsOfUserInDay = QUANLY_PHONGHOPBusiness.GetBookingsOfUserInDay(entity.NGAYDAT.Value, entity.USER_ID);
                if (entity.ID > 0)
                {
                    bookingsOfUserInDay = bookingsOfUserInDay.Where(x => x.ID != entity.ID).ToList();
                }

                if (bookingsOfUserInDay.Any())
                {
                    int totalBookDuplicate = 0; //tổng số lịch bị trùng

                    int totalStartMinutes = entity.GIOBATDAU.GetValueOrDefault() * 60 + entity.PHUTBATDAU.GetValueOrDefault();
                    int totalEndMinutes   = entity.GIOKETTHUC.GetValueOrDefault() * 60 + entity.PHUTKETTHUC.GetValueOrDefault();

                    foreach (var booking in bookingsOfUserInDay)
                    {
                        int totalStartMinutesDb = booking.GIOBATDAU.GetValueOrDefault() * 60 + booking.PHUTBATDAU.GetValueOrDefault();
                        int totalEndMinutesDb   = booking.GIOKETTHUC.GetValueOrDefault() * 60 + booking.PHUTKETTHUC.GetValueOrDefault();

                        //kiểm tra khoảng thời gian trùng lặp
                        if (totalStartMinutes >= totalStartMinutesDb && totalStartMinutes <= totalStartMinutesDb) //giờ bắt đầu nằm trong khoảng họp
                        {
                            totalBookDuplicate++;
                        }
                        else if (totalStartMinutes <= totalStartMinutesDb && totalEndMinutes >= totalStartMinutesDb &&
                                 totalEndMinutes <= totalEndMinutesDb) //giờ kết thúc nằm trong khoảng họp
                        {
                            totalBookDuplicate++;
                        }

                        else if (totalStartMinutes >= totalStartMinutesDb &&
                                 totalEndMinutes <= totalStartMinutesDb) //giờ bắt đầu và giờ kết thúc đều nằm trong khoảng họp
                        {
                            totalBookDuplicate++;
                        }
                    }

                    if (totalBookDuplicate > 0)
                    {
                        result.Message = string.Format("Trong ngày {0} lãnh đạo có {1} lịch diễn ra trong khoảng thời gian trên", bookDate, totalBookDuplicate);
                        result.Status  = false;
                        return(Json(result));
                    }
                }
            }

            if (entity.ID > 0)
            {
                QUANLY_PHONGHOP dbEntity = QUANLY_PHONGHOPBusiness.Find(entity.ID);
                dbEntity.USER_ID         = entity.USER_ID;
                dbEntity.MUCDICH         = entity.MUCDICH;
                dbEntity.THANHPHANTHAMDU = entity.THANHPHANTHAMDU;
                dbEntity.GIOBATDAU       = entity.GIOBATDAU;
                dbEntity.GIOKETTHUC      = entity.GIOKETTHUC;

                dbEntity.NGAYDAT           = entity.NGAYDAT;
                dbEntity.PHUTBATDAU        = entity.PHUTBATDAU;
                dbEntity.PHUTKETTHUC       = entity.PHUTKETTHUC;
                dbEntity.CCTC_THANHPHAN_ID = entity.CCTC_THANHPHAN_ID;
                QUANLY_PHONGHOPBusiness.Save(dbEntity);
                result.Message = "Cập nhật lịch họp thành công";

                title   = "THÔNG BÁO THAY ĐổI LỊCH HỌP";
                content = string.Format("{0} đã thay đổi thông tin lịch họp vào ngày {1} lúc {2} đến {3}", currentUser.HOTEN, bookDate, startTime, endTime);
            }
            else
            {
                QUANLY_PHONGHOPBusiness.Save(entity);
                result.Message = "Thêm mới lịch họp thành công";

                title   = "THÔNG BÁO ĐẶT LỊCH HỌP";
                content = string.Format("{0} đã đặt một lịch họp vào ngày {1} lúc {2} đến {3}", currentUser.HOTEN, bookDate, startTime, endTime);
            }

            //gửi tin nhắn cho người có nhiệm vụ đặt phòng
            SYS_TINNHANBusiness.sendMessageMultipleUsers(notifyUsers, currentUser, title, content, url, string.Empty, false, entity.ID, 0);
            return(Json(result));
        }
Пример #14
0
        public JsonResult SavePhatHanhVanBan(FormCollection col)
        {
            AssignUserInfo();
            SMSDAL.SendSMSDAL sms = new SMSDAL.SendSMSDAL();
            SYS_TINNHANBusiness = Get <SYS_TINNHANBusiness>();
            LogSMSBusiness      = Get <LogSMSBusiness>();

            HSCV_VANBANDIBusiness  = Get <HSCV_VANBANDIBusiness>();
            HSCV_VANBANDENBusiness = Get <HSCV_VANBANDENBusiness>();

            DM_NHOMDANHMUCBusiness  = Get <DM_NHOMDANHMUCBusiness>();
            DM_DANHMUC_DATABusiness = Get <DM_DANHMUC_DATABusiness>();
            TAILIEUDINHKEMBusiness  = Get <TAILIEUDINHKEMBusiness>();
            DM_NGUOIDUNGBusiness    = Get <DM_NGUOIDUNGBusiness>();


            WF_MODULEBusiness  = Get <WF_MODULEBusiness>();
            WF_PROCESSBusiness = Get <WF_PROCESSBusiness>();

            WF_STATE_FUNCTIONBusiness = Get <WF_STATE_FUNCTIONBusiness>();
            WF_STATEBusiness          = Get <WF_STATEBusiness>();
            WF_STREAMBusiness         = Get <WF_STREAMBusiness>();

            WF_FUNCTION_DONEBusiness     = Get <WF_FUNCTION_DONEBusiness>();
            WF_LOGBusiness               = Get <WF_LOGBusiness>();
            WF_ITEM_USER_PROCESSBusiness = Get <WF_ITEM_USER_PROCESSBusiness>();

            CCTC_THANHPHANBusiness = Get <CCTC_THANHPHANBusiness>();

            string selectedDept = col["department-choose"];
            long?  ID           = col["ID"].ToLongOrNULL();

            if (0 >= ID)
            {
                return(Json(new { Type = "ERROR", Message = "Không tìm thấy văn bản cần lưu sổ và phát hành" }));
            }

            #region cập nhật thông tin văn bản đi
            HSCV_VANBANDI VanBanDi = HSCV_VANBANDIBusiness.Find(ID);
            if (VanBanDi == null)
            {
                return(Json(new { Type = "ERROR", Message = "Không tìm thấy văn bản cần lưu sổ và phát hành" }));
            }

            if (!string.IsNullOrEmpty(col["SOHIEU"]))
            {
                VanBanDi.SOHIEU = col["SOHIEU"];
            }
            VanBanDi.USER_RECEIVE_DIRECTLY = col["USERS_RECEIVE_SPECIAL"];
            VanBanDi.DONVINHAN_INTERNAL_ID = selectedDept;
            VanBanDi.SOTHEOSO    = col["SOTHEOSO"];
            VanBanDi.SOVANBAN_ID = col["SOVANBAN_ID"].ToIntOrNULL();
            if (!string.IsNullOrEmpty(col["TRICHYEU"]))
            {
                VanBanDi.TRICHYEU = col["TRICHYEU"].Trim();
            }
            if (!string.IsNullOrEmpty(col["NGAY_HIEULUC"]))
            {
                try
                {
                    VanBanDi.NGAYCOHIEULUC = col["NGAY_HIEULUC"].ToDateTime();
                }
                catch (Exception e)
                {
                }
            }
            if (!string.IsNullOrEmpty(col["NGAYHET_HIEULUC"]))
            {
                try
                {
                    VanBanDi.NGAYHETHIEULUC = col["NGAYHET_HIEULUC"].ToDateTime();
                }
                catch (Exception e)
                {
                }
            }
            if (!string.IsNullOrEmpty(col["NGAYBANHANH"]))
            {
                try
                {
                    VanBanDi.NGAYBANHANH = col["NGAYBANHANH"].ToDateTime();
                }
                catch (Exception e)
                {
                }
            }
            HSCV_VANBANDIBusiness.Save(VanBanDi);
            #endregion

            //cập nhật số đi theo văn bản vào số văn bản hiện tại
            int numbSoDiTheoSo = VanBanDi.SOTHEOSO.GetPrefixNumber();
            DM_DANHMUC_DATABusiness.UpdateSoVanBan(VanBanDi.SOVANBAN_ID.GetValueOrDefault(), numbSoDiTheoSo);

            #region Convert Văn bản
            List <int> ListDonVi       = selectedDept.ToListInt(',');
            DateTime?  NGAY_HIEULUC    = col["NGAY_HIEULUC"].ToDateTime();
            DateTime?  NGAYHET_HIEULUC = col["NGAYHET_HIEULUC"].ToDateTime();
            string     TRICHYEU        = col["TRICHYEU"];
            string     SOHIEU          = col["SOHIEU"];
            if (!string.IsNullOrEmpty(SOHIEU))
            {
                SOHIEU = SOHIEU.Trim();
            }
            if (!string.IsNullOrEmpty(TRICHYEU))
            {
                TRICHYEU = TRICHYEU.Trim();
            }

            List <TAILIEUDINHKEM> ListTaiLieu = TAILIEUDINHKEMBusiness.GetDataByItemID(ID.HasValue ? ID.Value : 0, LOAITAILIEU.VANBAN);
            DM_NGUOIDUNG          NguoiDung   = DM_NGUOIDUNGBusiness.Find(VanBanDi.NGUOIKY_ID);

            #endregion
            #region cập nhật wf function done

            var process = WF_PROCESSBusiness.GetProcess(VanBanDi.ID, MODULE_CONSTANT.VANBANTRINHKY);

            var function     = WF_STATE_FUNCTIONBusiness.GetStateFunction((int)process.CURRENT_STATE);
            var functionDone = new WF_FUNCTION_DONE();
            functionDone.ITEM_TYPE      = MODULE_CONSTANT.VANBANTRINHKY;
            functionDone.ITEM_ID        = VanBanDi.ID;
            functionDone.STATE          = process.CURRENT_STATE;
            functionDone.FUNCTION_STATE = function.ID;
            functionDone.create_at      = DateTime.Now;
            functionDone.create_by      = currentUser.ID;
            WF_FUNCTION_DONEBusiness.Save(functionDone);
            var log = new WF_LOG();
            log.ITEM_ID      = VanBanDi.ID;
            log.ITEM_TYPE    = MODULE_CONSTANT.VANBANTRINHKY;
            log.MESSAGE      = "<div class='label label-info'>Đã phát hành</div>";
            log.WF_ID        = process.WF_ID;
            log.create_at    = DateTime.Now;
            log.create_by    = currentUser.ID;
            log.NGUOIXULY_ID = currentUser.ID;
            WF_LOGBusiness.Save(log);
            //Ghi nhận luồng đã xử lý xong
            var state = WF_STATEBusiness.Find(process.CURRENT_STATE);
            if (state != null && state.IS_KETTHUC == true)
            {
                process.IS_END = true;
                WF_PROCESSBusiness.Save(process);
            }

            var itemprocess = WF_ITEM_USER_PROCESSBusiness.repository.All().Where(x =>
                                                                                  x.ITEM_ID == process.ITEM_ID && x.ITEM_TYPE == process.ITEM_TYPE &&
                                                                                  x.STEP_ID == process.CURRENT_STATE)
                              .FirstOrDefault();
            if (itemprocess != null)
            {
                itemprocess.DAXULY = true;
                WF_ITEM_USER_PROCESSBusiness.Save(itemprocess);
            }
            #endregion

            //gửi văn bản đi cho đơn vị
            SaveVanBanPhatHanhToDonVi(VanBanDi, sms);

            //gửi văn bản đi cho cá nhân
            SaveVanBanPhatHanhToCaNhan(VanBanDi, sms);

            return(Json(new { Type = "SUCCESS", Message = "Lưu sổ và phát hành văn bản thành công" }));
        }