Esempio n. 1
0
        // 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);
        }
Esempio n. 2
0
        // 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);
        }