/// <summary> /// Them dieu chinh quy, copy cùng kỳ năm trước khi copy =1 /// </summary> /// <param name="id">Id của báo</param> /// <param name="year">Nam điều chỉnh</param> /// <param name="quy">Quý điều chỉnh</param> /// <param name="userID">Id người điều chỉnh</param> /// <param name="copy">1-copy cùng kỳ năm trc, 0-Nấy theo kế hoạch XB năm</param> /// <returns>1- Nếu thêm điều chỉnh thành công, 0- Nếu thêm thất bại</returns> /// <modify> /// Author Date comment /// Thang ? Tạo mới /// Anhhn 3/8/15 Thêm copy cùng kỳ năm trước /// </modify> public int addDieuChinhKHXB(string id, int year, int quy, string userID, string copy) { BKeHoachXuatBan objKeHoach = db.BKeHoachXuatBans.Where(a => a.ThongTinBaoId == id && a.Nam == year).FirstOrDefault(); BDieuChinhKHXB _dieuchinh = new BDieuChinhKHXB(); _dieuchinh.CreateBy = userID; _dieuchinh.CreateDate = DateTime.Now; _dieuchinh.Id = Guid.NewGuid().ToString().Trim(); _dieuchinh.ModifyBy = userID; _dieuchinh.ModifyDate = _dieuchinh.CreateDate; _dieuchinh.Nam = year; _dieuchinh.Quy = quy; _dieuchinh.ThongTinBaoId = id; _dieuchinh.LoaiKy = objKeHoach.LoaiKy; _dieuchinh.ChiTietKy = objKeHoach.ChiTietKy; db.BDieuChinhKHXBs.Add(_dieuchinh); List<BKeHoachXuatBanDetail> _chinhSua = db.BKeHoachXuatBanDetails.Where(d => d.ThongTinBaoId.Equals(id) && d.Nam == year && d.Quy == quy).ToList(); foreach (var item in _chinhSua) { item.status = (int)Enums.KeHoachXuatBan.approved; } db.SaveChanges(); //Anhhn-> //Nếu copy = 1 thì copy những điều chỉnh của năm trước if (copy.Equals("1")) { CopyDCCungKyNamTruoc(_dieuchinh, userID); } return 1; }
/// <summary> /// Điều chỉnh thay đổi thông tin báo /// </summary> /// <param name="_dieuchinhDetail"></param> /// <param name="_dieuchinh"></param> /// <param name="_config"></param> /// <modify> /// Author Date Comment /// Anhhn 3/8/15 Tách từ CreateDieuChinhKHXBDetail /// </modify> private void DCThongTinBao(BDieuChinhKHXBDetail _dieuchinhDetail, BDieuChinhKHXB _dieuchinh) { //Đọc dữ liệu thiếp lập điều chỉnh dynamic _config = JsonConvert.DeserializeObject<ExpandoObject>(_dieuchinhDetail.Config); //Nếu là thay đổi định kỳ thì lưu thứ, hoạc ngày điều chỉnh định kỳ if (_config.config.type == 1) { int[] numberConfig = ((List<dynamic>)_config.config.data).Select(d => d).ToList().ConvertAll(d => (int)Convert.ToInt32(d.ToString())).ToArray(); _dieuchinhDetail.NgayOrThu = JsonConvert.SerializeObject(numberConfig); } string[] numberSoBao = ((List<dynamic>)_config.content.data).Select(d => d.number).ToList().ConvertAll(d => (string)d.ToString()).ToArray(); _dieuchinhDetail.SoBao = JsonConvert.SerializeObject(numberSoBao); List<BKeHoachXuatBanDetail> _kehoach = getKeHoachXuatBanDetail(_dieuchinh.ThongTinBaoId, _dieuchinh.Nam, _dieuchinh.Quy).ToList(); foreach (var item in _kehoach.Where(d => numberSoBao.Contains(d.SoBao))) { item.GiaBao = _dieuchinhDetail.GiaBao; item.TrongLuong = _dieuchinhDetail.TrongLuong; item.SoTrang = _dieuchinhDetail.SoTrang; item.KichThuoc = _dieuchinhDetail.KichThuoc; item.GhiChu = _dieuchinhDetail.GhiChu; item.Details = _dieuchinhDetail.NoiDung; if (item.status == (int)Enums.KeHoachXuatBan.approved) item.status = (int)Enums.KeHoachXuatBan.changed; } db.BDieuChinhKHXBDetails.Add(_dieuchinhDetail); db.SaveChanges(); }
/// <summary> /// Điều chỉnh số ra riêng /// </summary> /// <param name="_dieuchinhDetail"></param> /// <param name="_dieuchinh"></param> /// <param name="_config"></param> /// <modify> /// Author Date Comment /// Anhhn 3/8/15 Tách từ CreateDieuChinhKHXBDetail /// </modify> private void DCSoRaRieng(BDieuChinhKHXBDetail _dieuchinhDetail, BDieuChinhKHXB _dieuchinh) { //Đọc dữ liệu thiếp lập điều chỉnh dynamic _config = JsonConvert.DeserializeObject<ExpandoObject>(_dieuchinhDetail.Config); BKeHoachXuatBanDetail _detailNew = new BKeHoachXuatBanDetail(); _detailNew.ThongTinBaoId = _dieuchinh.ThongTinBaoId; _detailNew.Nam = _dieuchinh.Nam; _detailNew.Quy = _dieuchinh.Quy; _detailNew.GiaBao = _dieuchinhDetail.GiaBao; _detailNew.TrongLuong = _dieuchinhDetail.TrongLuong; _detailNew.SoTrang = _dieuchinhDetail.SoTrang; _detailNew.KichThuoc = _dieuchinhDetail.KichThuoc; _detailNew.GhiChu = _dieuchinhDetail.GhiChu; _detailNew.Details = _dieuchinhDetail.NoiDung; _detailNew.status = (int)Enums.KeHoachXuatBan.add; int[] _dateS = ((string)_config.content.data.time).Split('/').Select(d => Convert.ToInt32(d)).ToArray(); DateTime _time = new DateTime(_dateS[2], _dateS[1], _dateS[0]); _detailNew.Number = -1; _detailNew.SoXuatBan = _config.content.data.data; _detailNew.Thang = _dateS[1]; _detailNew.Ngay = _dateS[0]; _detailNew.Thu = ((int)_time.DayOfWeek) == 0 ? 8 : ((int)_time.DayOfWeek) + 1; _detailNew.SoBao = Guid.NewGuid().ToString().Trim(); _dieuchinhDetail.SoBao = "[\"" + _detailNew.SoBao + "\"]"; db.BDieuChinhKHXBDetails.Add(_dieuchinhDetail); db.BKeHoachXuatBanDetails.Add(_detailNew); db.SaveChanges(); }
/// <summary> /// Điều chỉnh hủy số /// </summary> /// <param name="_dieuchinhDetail"></param> /// <param name="_dieuchinh"></param> /// <param name="_config"></param> /// <modify> /// Author Date Comment /// Anhhn 3/8/15 Tách từ CreateDieuChinhKHXBDetail /// </modify> private void DCHuySo(BDieuChinhKHXBDetail _dieuchinhDetail, BDieuChinhKHXB _dieuchinh) { //Đọc dữ liệu thiếp lập điều chỉnh dynamic _config = JsonConvert.DeserializeObject<ExpandoObject>(_dieuchinhDetail.Config); if (_config.config.type == 1) { int[] numberConfig = ((List<dynamic>)_config.config.data).Select(d => d).ToList().ConvertAll(d => (int)Convert.ToInt32(d.ToString())).ToArray(); _dieuchinhDetail.NgayOrThu = JsonConvert.SerializeObject(numberConfig); } string[] numberSoBao = ((List<dynamic>)_config.content.data).Select(d => d.number).ToList().ConvertAll(d => (string)d.ToString()).ToArray(); _dieuchinhDetail.SoBao = JsonConvert.SerializeObject(numberSoBao); List<BKeHoachXuatBanDetail> _kehoach = getKeHoachXuatBanDetail(_dieuchinh.ThongTinBaoId, _dieuchinh.Nam, _dieuchinh.Quy).ToList(); foreach (var item in _kehoach.Where(d => numberSoBao.Contains(d.SoBao))) { item.status = (int)Enums.KeHoachXuatBan.cancel; item.GhiChu = _dieuchinhDetail.GhiChu; } var _keHoachNoGroup = _kehoach.Where(d => d.Number != -1).ToList(); List<BKeHoachXuatBanDetail> _kehoachUpateNumber = _keHoachNoGroup.Where(d => d.status != (int)Enums.KeHoachXuatBan.cancel).ToList(); if (_kehoachUpateNumber.Count > 0) { int numberCancelFirst = _keHoachNoGroup.Where(d => d.status == (int)Enums.KeHoachXuatBan.group).Count() > 0 ? _keHoachNoGroup.Where(d => d.status == (int)Enums.KeHoachXuatBan.group).FirstOrDefault().Number : -1; int numberStart = numberCancelFirst == -1 ? _kehoachUpateNumber[0].Number : numberCancelFirst < _kehoachUpateNumber[0].Number ? numberCancelFirst : _kehoachUpateNumber[0].Number; foreach (var item in _kehoachUpateNumber) { item.Number = numberStart; numberStart++; } foreach (var item in _kehoach.Where(d => d.Number == -1 && d.status == (int)Enums.KeHoachXuatBan.group).ToList()) { item.SoXuatBan = string.Join(",", _kehoachUpateNumber.Where(d => d.DonSo != null && d.DonSo.Equals(item.SoBao)).Select(d => d.Number)); } } db.BDieuChinhKHXBDetails.Add(_dieuchinhDetail); db.SaveChanges(); }
/// <summary> /// Điểu chỉnh dồn số /// </summary> /// <param name="_dieuchinhDetail"></param> /// <param name="_dieuchinh"></param> /// <param name="_config"></param> /// <modify> /// Author Date Comment /// Anhhn 3/8/15 Tách từ CreateDieuChinhKHXBDetail /// </modify> private void DCDonSo(BDieuChinhKHXBDetail _dieuchinhDetail, BDieuChinhKHXB _dieuchinh) { //Đọc dữ liệu thiếp lập điều chỉnh dynamic _config = JsonConvert.DeserializeObject<ExpandoObject>(_dieuchinhDetail.Config); if (_config.config.type == 1) { int[] numberConfig = ((List<dynamic>)_config.config.data).Select(d => d).ToList().ConvertAll(d => (int)Convert.ToInt32(d.ToString())).ToArray(); _dieuchinhDetail.NgayOrThu = JsonConvert.SerializeObject(numberConfig); } List<BKeHoachXuatBanDetail> _kehoach = getKeHoachXuatBanDetail(_dieuchinh.ThongTinBaoId, _dieuchinh.Nam, _dieuchinh.Quy).ToList(); List<BKeHoachXuatBanDetail> khxbdetailAdd = new List<BKeHoachXuatBanDetail>(); List<string> numberSoBao = new List<string>(); foreach (var item in _config.content.data) { string[] arNum = ((List<object>)item.data).Select(d => d.ToString()).ToArray(); numberSoBao.AddRange(arNum); BKeHoachXuatBanDetail _detailNew = new BKeHoachXuatBanDetail(); foreach (var itemNumber in _kehoach.Where(d => arNum.Contains(d.SoBao))) { itemNumber.DonSo = item.id; itemNumber.GiaBao = _dieuchinhDetail.GiaBao; itemNumber.TrongLuong = _dieuchinhDetail.TrongLuong; itemNumber.SoTrang = _dieuchinhDetail.SoTrang; itemNumber.KichThuoc = _dieuchinhDetail.KichThuoc; itemNumber.GhiChu = _dieuchinhDetail.GhiChu; itemNumber.Details = _dieuchinhDetail.NoiDung; itemNumber.status = (int)Enums.KeHoachXuatBan.group; _detailNew.ThongTinBaoId = itemNumber.ThongTinBaoId; _detailNew.Nam = itemNumber.Nam; _detailNew.Quy = itemNumber.Quy; _detailNew.DonSo = item.id; _detailNew.GiaBao = _dieuchinhDetail.GiaBao; _detailNew.TrongLuong = _dieuchinhDetail.TrongLuong; _detailNew.SoTrang = _dieuchinhDetail.SoTrang; _detailNew.KichThuoc = _dieuchinhDetail.KichThuoc; _detailNew.GhiChu = _dieuchinhDetail.GhiChu; _detailNew.Details = _dieuchinhDetail.NoiDung; _detailNew.status = (int)Enums.KeHoachXuatBan.group; _detailNew.SoBao = item.id; } int[] _dateS = ((string)item.time).Split('/').Select(d => Convert.ToInt32(d)).ToArray(); DateTime _time = new DateTime(_dateS[2], _dateS[1], _dateS[0]); _detailNew.Number = -1; _detailNew.SoXuatBan = string.Join(",", arNum); _detailNew.Thang = _dateS[1]; _detailNew.Ngay = _dateS[0]; _detailNew.Thu = ((int)_time.DayOfWeek) == 0 ? 8 : ((int)_time.DayOfWeek) + 1; khxbdetailAdd.Add(_detailNew); } _dieuchinhDetail.SoBao = JsonConvert.SerializeObject(numberSoBao); db.BDieuChinhKHXBDetails.Add(_dieuchinhDetail); db.BKeHoachXuatBanDetails.AddRange(khxbdetailAdd); db.SaveChanges(); }
/// <summary> /// Copy điều chỉnh cùng kỳ năm trước /// </summary> /// <param name="dcId">Id điều chỉnh của quý đang điều chỉnh</param> /// <param name="baoId">Id của báo đang điều chỉnh</param> /// <param name="year">Nam điều chỉnh</param> /// <param name="quy">Tháng điều chỉnh</param> /// <param name="userId">Người điều chỉnh</param> /// <modify> /// Author Date Commnet /// Anhhn 3/8/15 Tạo mới /// </modify> private void CopyDCCungKyNamTruoc(BDieuChinhKHXB _dieuchinh, string userId) { //Lấy điều chỉnh cùng ký năm trước BDieuChinhKHXB dcOld = db.BDieuChinhKHXBs.Include(dc => dc.BDieuChinhKHXBDetails).Where(dc => dc.ThongTinBaoId == _dieuchinh.ThongTinBaoId && dc.Nam == (_dieuchinh.Nam - 1) && dc.Quy == _dieuchinh.Quy).FirstOrDefault(); if (dcOld == null || dcOld.BDieuChinhKHXBDetails == null || dcOld.BDieuChinhKHXBDetails.Count == 0) return; foreach (BDieuChinhKHXBDetail dcDeatil in dcOld.BDieuChinhKHXBDetails) { BDieuChinhKHXBDetail newDCDetail = new BDieuChinhKHXBDetail() { Id = Guid.NewGuid().ToString(), DieuChinhKHXBId = _dieuchinh.Id, LoaiDieuChinh = dcDeatil.LoaiDieuChinh, GiaBao = dcDeatil.GiaBao, KichThuoc = dcDeatil.KichThuoc, TrongLuong = dcDeatil.TrongLuong, SoTrang = dcDeatil.SoTrang, GhiChu = dcDeatil.GhiChu, Config = dcDeatil.Config, NoiDung = dcDeatil.NoiDung, NgayOrThu = dcDeatil.NgayOrThu, SoBao = dcDeatil.SoBao }; //Hủy số if (newDCDetail.LoaiDieuChinh == (int)Enums.KeHoachXuatBan.cancel) { DCHuySo(newDCDetail, _dieuchinh); } //Dồn số else if (newDCDetail.LoaiDieuChinh == (int)Enums.KeHoachXuatBan.group) { DCDonSo(newDCDetail, _dieuchinh); } //Số ra riêng else if (newDCDetail.LoaiDieuChinh == (int)Enums.KeHoachXuatBan.add) { DCSoRaRieng(newDCDetail, _dieuchinh); } //Thay đổi thông tin báo else { DCThongTinBao(newDCDetail, _dieuchinh); } } }