コード例 #1
0
        /// <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;
        }
コード例 #2
0
 /// <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();
 }
コード例 #3
0
        /// <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();
        }
コード例 #4
0
        /// <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();
        }
コード例 #5
0
        /// <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();
        }
コード例 #6
0
        /// <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);
                }
            }
        }