Exemple #1
0
        public DataInserter()
        {
            InitializeComponent();

            this.height_start = this.Height;

            this.dbInformation = new DbInformation();
            this.dbFlyAway     = new DbExecute();

            //Set up
            this.ConfigureConnection();
        }
Exemple #2
0
        /// <summary>
        /// Chốt kỳ kinh doanh
        /// </summary>
        /// <param name="model"></param>
        public void ActionChotKy(ModDT_KyModel model)
        {
            CPViewPage.Message.MessageType = Message.MessageTypeEnum.Error;

            DbDataContext db           = DbExecute.Create(true);
            Mod_DT_Ky     objMod_DT_Ky = db.Mod_DT_Kies.Where(o => o.ID == model.RecordID).SingleOrDefault();

            if (objMod_DT_Ky == null)
            {
                CPViewPage.Message.ListMessage.Add("Không tìm thấy kỳ kinh doanh hiện tại.");
                return;
            }

            // Cập nhật trạng thái cho Kỳ
            objMod_DT_Ky.Activity = false; // Đóng kỳ

            // Tổng hợp lại các giá trị hoa hồng cho từng đại lý
            if (objMod_DT_Ky.Mod_DT_Ky_DaiLies == null || objMod_DT_Ky.Mod_DT_Ky_DaiLies.Count <= 0)
            {
                db.SubmitChanges();
                return;
            }

            List <Mod_DT_Ky_DaiLy> lstMod_DT_Ky_DaiLy = objMod_DT_Ky.Mod_DT_Ky_DaiLies.ToList();

            lstMod_DT_Ky_DaiLy = lstMod_DT_Ky_DaiLy.OrderBy(o => o.ModProductAgentParentId).ToList();

            // Tính tổng tiền lấy hàng
            foreach (var itemKyDaiLy in lstMod_DT_Ky_DaiLy)
            {
                List <Mod_DT_Ky_DaiLy_DonHang> lstMod_DT_Ky_DaiLy_DonHang = itemKyDaiLy.Mod_DT_Ky_DaiLy_DonHangs.ToList();
                double doubTongTienLayHang = 0;
                foreach (var itemDaiLy_DonHang in lstMod_DT_Ky_DaiLy_DonHang)
                {
                    doubTongTienLayHang += getValueDouble(itemDaiLy_DonHang.TongSauGiam);
                }

                // Cập nhật tổng tiền
                itemKyDaiLy.TongTienLayHang = doubTongTienLayHang;
            }

            // Lấy cấp tỷ lệ ăn chia hoa hồng
            List <Mod_DT_CapDaiLy_TyLe> lstMod_DT_CapDaiLy_TyLe = db.Mod_DT_CapDaiLy_TyLes.OrderBy(o => o.ID).ToList();

            // Lấy các cấp cha để duyệt
            List <Mod_DT_Ky_DaiLy> lstMod_DT_Ky_DaiLy_Parent = lstMod_DT_Ky_DaiLy
                                                               .Where(o => o.ModProductAgentParentId == null || o.ModProductAgentParentId == 0).ToList();
            // TÍnh tổng hoa hồng trong kỳ
            double doubTongHoaHong = 0;

            foreach (var itemParent in lstMod_DT_Ky_DaiLy)
            {
                int    iCapHoaHong         = 0;
                double doubTongTienHoaHong = 0;
                // Cộng giá trị đầu kỳ nếu có
                double doubTotalLast = getValueDouble(itemParent.TotalFirst);

                // Lấy các đại lý con: Tính hoa hồng
                List <Mod_DT_Ky_DaiLy> lstMod_DT_Ky_DaiLy_Child = lstMod_DT_Ky_DaiLy
                                                                  .Where(o => o.ModProductAgentParentId != null && o.ModProductAgentParentId == itemParent.ModProductAgentId)
                                                                  .ToList();

                if (lstMod_DT_Ky_DaiLy_Child != null && lstMod_DT_Ky_DaiLy_Child.Count > 0)
                {
                    // Tính hoa hồng cho đại lý cấp đầu trước (Nếu tồn tại ít nhất một con)
                    doubTongTienHoaHong = (getValueDouble(itemParent.TongTienLayHang) * getValueDouble(lstMod_DT_CapDaiLy_TyLe[iCapHoaHong].Value)) / 100;
                }

                // Duyệt các đại lý con
                foreach (var itemChild in lstMod_DT_Ky_DaiLy_Child)
                {
                    doubTongTienHoaHong += getTienHoaHong(ref lstMod_DT_Ky_DaiLy, itemChild, lstMod_DT_CapDaiLy_TyLe, iCapHoaHong + 1);
                }

                // Lưu lại tổng tiền hoa hồng
                itemParent.TongTienHoaHong = doubTongTienHoaHong;
                // Tổng tiền thu nhập cuối kỳ
                itemParent.TotalLast = doubTotalLast + doubTongTienHoaHong;
                // Tổng hoa hồng trong kỳ
                doubTongHoaHong += doubTongTienHoaHong;
            }

            // Tính tổng hoa hồng trong kỳ
            doubTongHoaHong += getValueDouble(objMod_DT_Ky.TotalFirst);

            // Tổng hoa hồng trong kỳ
            objMod_DT_Ky.TotalLast = doubTongHoaHong;

            // Cập nhật vào DB
            db.SubmitChanges();

            // Hiển thị thông báo
            CPViewPage.SetMessage("Đã chốt kỳ doanh thu thành công.");
            CPViewPage.Response.Redirect(CPViewPage.Request.RawUrl.Replace("Add.aspx", "Index.aspx"));
        }