/// <summary> /// Thêm điều chỉnh chi tiết cho quy /// </summary> /// <param name="dcId">Id điều chỉnh quý</param> /// <param name="LoaiDieuChinh">Loại điều chỉnh - Enums.KeHoachXuatBan</param> /// <param name="config">Thiết lập điều chỉnh chi tiết</param> /// <param name="lstThongTin">Danh sách điều chỉnh thông tin báo</param> /// <param name="GhiChu"></param> /// <param name="userCreate">Id người tạo</param> /// <returns></returns> /// <modify> /// Author Date comment /// Thang ? Tạo mới /// Anhhn 3/8/15 Sửa-Tách các loại điểu chỉnh ra thành các hàm riêng /// </modify> public ErrorObject CreateDieuChinhKHXBDetail(string dcId, int LoaiDieuChinh, string config, List<DCThongTinBaoModel> lstThongTin, string GhiChu, string userCreate) { ErrorObject err = new ErrorObject(); lstThongTin = lstThongTin ?? new List<DCThongTinBaoModel>(); BDieuChinhKHXB _dieuchinh = getDieuChinhKHXB(dcId); //Không tìm thấy điểu chỉnh if(_dieuchinh == null) { err.HasError = true; err.LstError.Add("", "Không có điều chỉnh"); return err; } //Gán dữ liệu điều chỉnh detail BDieuChinhKHXBDetail _dieuchinhDetail = new BDieuChinhKHXBDetail(); _dieuchinhDetail.Id = Guid.NewGuid().ToString(); _dieuchinhDetail.DieuChinhKHXBId = _dieuchinh.Id; _dieuchinhDetail.Config = config; _dieuchinhDetail.CreateBy = userCreate; _dieuchinhDetail.CreateDate = DateTime.Now; _dieuchinhDetail.ModifyBy = userCreate; _dieuchinhDetail.ModifyDate = _dieuchinhDetail.CreateDate; _dieuchinhDetail.GhiChu = GhiChu; _dieuchinhDetail.LoaiDieuChinh = LoaiDieuChinh; _dieuchinhDetail.NoiDung = JsonConvert.SerializeObject(lstThongTin); // if (lstThongTin.Where(d => d.Key.Equals("GiaBia")).Count() > 0) _dieuchinhDetail.GiaBao = Convert.ToInt32(lstThongTin.Where(d => d.Key.Equals("GiaBia")).FirstOrDefault().Value); if (lstThongTin.Where(d => d.Key.Equals("TrongLuong")).Count() > 0) _dieuchinhDetail.TrongLuong = Convert.ToInt32(lstThongTin.Where(d => d.Key.Equals("TrongLuong")).FirstOrDefault().Value); if (lstThongTin.Where(d => d.Key.Equals("SoTrang")).Count() > 0) _dieuchinhDetail.SoTrang = Convert.ToInt32(lstThongTin.Where(d => d.Key.Equals("SoTrang")).FirstOrDefault().Value); if (lstThongTin.Where(d => d.Key.Equals("KichThuoc")).Count() > 0) _dieuchinhDetail.KichThuoc = lstThongTin.Where(d => d.Key.Equals("KichThuoc")).FirstOrDefault().Value; //Hủy số if (LoaiDieuChinh == (int)Enums.KeHoachXuatBan.cancel) { DCHuySo(_dieuchinhDetail, _dieuchinh); } //Dồn số else if (LoaiDieuChinh == (int)Enums.KeHoachXuatBan.group) { DCDonSo(_dieuchinhDetail, _dieuchinh); } //Số ra riêng else if (LoaiDieuChinh == (int)Enums.KeHoachXuatBan.add) { DCSoRaRieng(_dieuchinhDetail, _dieuchinh); } //Thay đổi thông tin báo else { DCThongTinBao(_dieuchinhDetail, _dieuchinh); } return err; }
/// <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(); }
public void updateOldChiTiet(BKeHoachXuatBanDetail item, BDieuChinhKHXBDetail dieuChinhOld) { BDieuChinhKHXBDetail _dieuchinhDetail = db.BDieuChinhKHXBDetails.Where(d => !d.Id.Equals(dieuChinhOld.Id) && !d.DieuChinhKHXBId.Equals(dieuChinhOld.DieuChinhKHXBId) && d.SoBao.IndexOf("\"" + item.SoBao + "\"") > -1 && (d.LoaiDieuChinh == (int)Enums.KeHoachXuatBan.changed || d.LoaiDieuChinh == (int)Enums.KeHoachXuatBan.add || d.LoaiDieuChinh == (int)Enums.KeHoachXuatBan.group)).OrderByDescending(d => d.ModifyDate).FirstOrDefault(); if (_dieuchinhDetail == null) { item.GiaBao = null; item.TrongLuong = null; item.SoTrang = null; item.KichThuoc = null; item.GhiChu = null; item.Details = null; } else { item.GiaBao = _dieuchinhDetail.GiaBao; item.TrongLuong = _dieuchinhDetail.TrongLuong; item.SoTrang = _dieuchinhDetail.SoTrang; item.KichThuoc = _dieuchinhDetail.KichThuoc; item.GhiChu = _dieuchinhDetail.GhiChu; item.Details = _dieuchinhDetail.NoiDung; } }
/// <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); } } }