public DataInserter() { InitializeComponent(); this.height_start = this.Height; this.dbInformation = new DbInformation(); this.dbFlyAway = new DbExecute(); //Set up this.ConfigureConnection(); }
/// <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")); }