// METHOD ID: M_0000009 public bool GiveStockistCommission(string StockistID) { bool ret = false; double stockistCommissionAmount = 0; double stockistCommissionNewAmount = 0; double stockistCommissionPVLeft = 0; int totalNoOfPV = 0; Int64 totalPVUsed = 0; using (var tr = db.Database.BeginTransaction()) { try { var stockistBonusMaster = db.tbl_dealer_stockist_commission_master.Where(x => x.DealerID == StockistID).FirstOrDefault(); var memberBonusTemp = db.tbl_member_bonus_temp.Where(x => x.MemberID == StockistID).FirstOrDefault(); if (stockistBonusMaster == null) { stockistBonusMaster = new tbl_dealer_stockist_commission_master() { DealerID = StockistID }; db.tbl_dealer_stockist_commission_master.Add(stockistBonusMaster); db.SaveChanges(); } if (stockistBonusMaster != null && memberBonusTemp != null) { var currentTempStockistBonus = memberBonusTemp.StockistBonusBalance; if (currentTempStockistBonus >= KDMBonusSlabs.PVForStockistCommision) { totalNoOfPV = (int)(currentTempStockistBonus / KDMBonusSlabs.PVForStockistCommision); totalPVUsed = totalNoOfPV * KDMBonusSlabs.PVForStockistCommision; stockistCommissionAmount = totalNoOfPV * KDMBonusSlabs.StockistCommission; stockistCommissionNewAmount = (double)stockistBonusMaster.StockistCommission + stockistCommissionAmount; stockistCommissionPVLeft = (double)(currentTempStockistBonus % KDMBonusSlabs.PVForStockistCommision); #region Member Bonus History Create tbl_member_bonus_history tbl = new tbl_member_bonus_history(); tbl.MemberID = StockistID; tbl.BonusSource = KDMBonusConstants.Stockist; tbl.BonusAmount = Convert.ToDecimal(stockistCommissionAmount); tbl.BonusTotalAmount = Convert.ToDecimal(stockistCommissionNewAmount); tbl.BonusUnitAmount = Convert.ToDecimal(KDMBonusSlabs.StockistCommission); tbl.PVTotal = totalPVUsed; tbl.PVUnit = KDMBonusSlabs.PVForDealerCommision; tbl.BonusUnit = KDMBonusUnitConstants.Taka; db.tbl_member_bonus_history.Add(tbl); #endregion memberBonusTemp.StockistBonusBalance = Convert.ToDecimal(stockistCommissionPVLeft); stockistBonusMaster.StockistCommission = Convert.ToDecimal(stockistCommissionNewAmount); db.SaveChanges(); tr.Commit(); ret = true; } } } catch (Exception ex) { Log.Error(ex, "[M_0000009] [ERROR]"); tr.Rollback(); } } return(ret); }
// METHOD ID: M_0000002 public bool GiveSponsorBonus(KDMDB kdmDB, string MemberID) { bool ret = false; double sponsorBonusAmount = 0; double sponsorBonusPVLeft = 0; int totalNoOfPV = 0; Int64 totalPVUsed = 0; //using (var tr = kdmDB.Database.BeginTransaction()) //{ try { var sponsorID = kdmDB.tbl_members.Where(x => x.PlacementID == MemberID).Select(x => x.SponsorID).FirstOrDefault(); sponsorID = sponsorID.Trim(); if (sponsorID == null) { Log.Warning("[M_0000002] Sponsor ID not found for member id " + MemberID); return(false); } var sponsorBonusMaster = kdmDB.tbl_member_bonus_master.Where(x => x.MemberID == sponsorID).FirstOrDefault(); var memberBonusTemp = kdmDB.tbl_member_bonus_temp.Where(x => x.MemberID == MemberID).FirstOrDefault(); if (sponsorBonusMaster == null) { sponsorBonusMaster = new tbl_member_bonus_master() { MemberID = sponsorID, WalletBonus = 0, SponsorBonus = 0, BinaryMatchingBonus = 0, GenerationBonus = 0, MonthlyRoyalityBonus = 0, PerformanceBonus = 0, LeadershipBonus = 0, RankIncentive = 0, RoyalClubBonus = 0, ECommerceBonus = 0, UpdateDate = DateTime.Now }; kdmDB.tbl_member_bonus_master.Add(sponsorBonusMaster); kdmDB.SaveChanges(); } if (sponsorBonusMaster != null && memberBonusTemp != null) { var currentTempSponsorBonus = memberBonusTemp.SponsorBonusBalance; if (currentTempSponsorBonus >= KDMBonusSlabs.PVForSponsorBonus) { totalNoOfPV = (int)(currentTempSponsorBonus / KDMBonusSlabs.PVForSponsorBonus); totalPVUsed = totalNoOfPV * KDMBonusSlabs.PVForSponsorBonus; sponsorBonusAmount = totalNoOfPV * KDMBonusSlabs.SponsorBonus; sponsorBonusPVLeft = (double)(currentTempSponsorBonus - totalPVUsed); #region Member Bonus History Create tbl_member_bonus_history tbl = new tbl_member_bonus_history(); tbl.MemberID = sponsorID.Trim(); tbl.FromMemberID = MemberID.Trim(); tbl.BonusSource = KDMBonusConstants.Sponsor; tbl.PreviousAmount = sponsorBonusMaster.SponsorBonus; tbl.BonusTotalAmount = Convert.ToDecimal(sponsorBonusAmount); tbl.BonusLeftPV = Convert.ToDecimal(sponsorBonusPVLeft); tbl.BonusLeftBV = 0; tbl.BonusUnitAmount = Convert.ToDecimal(KDMBonusSlabs.SponsorBonus); tbl.PVTotal = totalPVUsed; tbl.PVUnit = KDMBonusSlabs.PVForSponsorBonus; tbl.BVTotal = 0; tbl.BonusUnit = KDMBonusUnitConstants.Taka; kdmDB.tbl_member_bonus_history.Add(tbl); #endregion memberBonusTemp.SponsorBonusBalance = Convert.ToDecimal(sponsorBonusPVLeft); sponsorBonusMaster.SponsorBonus = Convert.ToDecimal((double)sponsorBonusMaster.SponsorBonus + sponsorBonusAmount); kdmDB.SaveChanges(); // tr.Commit(); ret = true; } } } catch (Exception ex) { Log.Error(ex, "[M_0000002] [ERROR]"); // tr.Rollback(); } //} return(ret); }
// METHOD ID: M_0000001 public bool GiveWalletBonus(string MemberID) { bool ret = false; double walletBonusAmount = 0; double walletBonusNewAmount = 0; double walletBonusAmountLeft = 0; int totalNoOfPV = 0; Int64 totalPVUsed = 0; using (var tr = db.Database.BeginTransaction()) { try { var memberBonusMaster = db.tbl_member_bonus_master.Where(x => x.MemberID == MemberID).FirstOrDefault(); var memberBonusTemp = db.tbl_member_bonus_temp.Where(x => x.MemberID == MemberID).FirstOrDefault(); if (memberBonusMaster == null) { memberBonusMaster = new tbl_member_bonus_master() { MemberID = MemberID }; db.tbl_member_bonus_master.Add(memberBonusMaster); db.SaveChanges(); } if (memberBonusMaster != null && memberBonusTemp != null) { var currentTempWalletBonus = memberBonusTemp.WalleBonusBalance; if (currentTempWalletBonus >= KDMBonusSlabs.PVForWalletBonus) { totalNoOfPV = (int)(currentTempWalletBonus / KDMBonusSlabs.PVForWalletBonus); totalPVUsed = totalNoOfPV * KDMBonusSlabs.PVForWalletBonus; walletBonusAmount = totalNoOfPV * KDMBonusSlabs.WalletBonus; walletBonusNewAmount = (double)memberBonusMaster.WalletBonus + walletBonusAmount; walletBonusAmountLeft = (double)(currentTempWalletBonus % KDMBonusSlabs.PVForWalletBonus); #region Member Bonus History Create tbl_member_bonus_history tbl = new tbl_member_bonus_history(); tbl.MemberID = MemberID; tbl.BonusSource = KDMBonusConstants.Wallet; tbl.BonusAmount = Convert.ToDecimal(walletBonusAmount); tbl.BonusTotalAmount = Convert.ToDecimal(walletBonusNewAmount); tbl.BonusUnitAmount = Convert.ToDecimal(KDMBonusSlabs.WalletBonus); tbl.PVTotal = totalPVUsed; tbl.PVUnit = KDMBonusSlabs.PVForWalletBonus; tbl.BonusUnit = KDMBonusUnitConstants.WalletBonus; tbl.BonusDate = DateTime.Now; db.tbl_member_bonus_history.Add(tbl); #endregion memberBonusTemp.WalleBonusBalance = Convert.ToDecimal(walletBonusAmountLeft); memberBonusMaster.WalletBonus = Convert.ToDecimal(walletBonusNewAmount); db.SaveChanges(); tr.Commit(); ret = true; } } } catch (Exception ex) { Log.Error(ex, "[M_0000001] [ERROR]"); tr.Rollback(); } } return(ret); }