Exemplo n.º 1
0
        public ActionResult KDMHelpTest()
        {
            KDMTRHelper kdmHelper = new KDMTRHelper();

            //kdmHelper.WalletBonus(10004);
            //kdmHelper.UpdateFundMonthlyRoyalityBonusByMemberSource(10004);
            kdmHelper.UpdateFundPerformanceBonusByMemberSource("10004");
            return(View());
        }
Exemplo n.º 2
0
        public ActionResult OrderApprove(int OrderId)
        {
            using (var tr = db.Database.BeginTransaction())
            {
                try
                {
                    int totalPVForTemp = 0;
                    #region Update Order Status
                    var order = db.tbl_orders.FirstOrDefault(x => x.OrderID == OrderId);

                    if (order != null && order.MemberID != "")
                    {
                        var orderLine = db.tbl_order_Line_item.Where(x => x.OrderID == order.OrderID).ToList();


                        orderLine.ForEach(x =>
                        {
                            #region Update Member Tree

                            var memberExist = db.tbl_members.FirstOrDefault(y => y.MemberID == order.MemberID);

                            if (memberExist == null)
                            {
                                throw new Exception("Member not found in members");
                            }
                            var member = db.tbl_member_tree.Where(m => m.PlacementID == memberExist.PlacementID).FirstOrDefault();

                            if (member == null)
                            {
                                throw new Exception("Member not found in member tree");
                            }

                            member.PV = (member.PV ?? 0) + (x.BP * x.Quantity);
                            member.BV = (member.BV ?? 0) + (x.RB * x.Quantity);

                            totalPVForTemp += (int)x.BP * (int)x.Quantity;

                            db.Entry(member).State = EntityState.Modified;

                            #endregion

                            // db.SaveChanges();

                            #region Purchase Entry

                            tbl_purchase tblpur = new tbl_purchase();
                            tblpur.OrderID      = OrderId;
                            tblpur.ProductID    = x.ProductID;
                            tblpur.ProductName  = x.ProductName;
                            tblpur.MRP          = x.MRP;
                            tblpur.DP           = x.DP;
                            tblpur.SP           = x.SP;
                            tblpur.MemberID     = order.MemberID;
                            tblpur.BP           = x.BP;
                            tblpur.RB           = x.RB;
                            //tblpur.DealerID
                            tblpur.PaymentAddress   = order.PaymentAddress;
                            tblpur.ShipmentAddress  = order.ShipmentAddress;
                            tblpur.OrderStatus      = KDMOrderStatus.Approved;
                            tblpur.OrderDate        = order.OrderDateTime;
                            tblpur.OrderBy          = order.OrderBy;
                            tblpur.OrderApprovedBy  = User.Identity.Name;
                            tblpur.OrderCanceledBy  = "";
                            tblpur.Quantity         = x.Quantity;
                            tblpur.PaymentType      = order.PaymentType;
                            tblpur.TotalAmount      = x.DP;
                            tblpur.TotalPV          = 0;
                            tblpur.TotalBV          = 0;
                            tblpur.StatusUpdateDate = DateTime.Now;
                            db.tbl_purchase.Add(tblpur);

                            #endregion

                            #region Vat Entry

                            tbl_vat_account_data vad = new tbl_vat_account_data();

                            var rowCount = db.tbl_vat_account_data.ToList();
                            int lastRow  = 0;
                            if (rowCount.Count > 0)
                            {
                                lastRow        = (int)db.tbl_vat_account_data.Max(y => y.trSerialNo);
                                vad.trSerialNo = lastRow + 1;
                            }
                            else
                            {
                                vad.trSerialNo = 1;
                            }
                            decimal balance  = (decimal)db.tbl_vat_account_data.Where(z => z.trSerialNo == lastRow).Select(s => s.Balance).FirstOrDefault();
                            vad.ForAccount   = order.OrderID.ToString();
                            vad.PurposeCode  = 1;
                            vad.DebitAmount  = 0;
                            vad.CreditAmount = x.Vat;
                            vad.Balance      = db.tbl_vat_account_data.FirstOrDefault(y => y.trSerialNo == lastRow).Balance ?? 0 + vad.CreditAmount;
                            vad.PostingDate  = DateTime.Now.Date;
                            vad.PostingTime  = DateTime.Now.TimeOfDay;
                            vad.PostedBy     = User.Identity.Name;
                            vad.ApprovedBy   = User.Identity.Name;
                            db.tbl_vat_account_data.Add(vad);

                            #endregion
                        });

                        db.tbl_orders.Remove(order);
                        db.tbl_order_Line_item.RemoveRange(orderLine);
                    }
                    #endregion

                    #region Bonus Processing
                    KDMTRHelper trHelper = new KDMTRHelper();

                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.Wallet, (double)order.TotalPV);
                    trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.Sponsor, (double)totalPVForTemp);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.BinaryMatching, (double)order.TotalPV);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.Generation, (double)order.TotalBV);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.MonthlyRoyalty, (double)order.TotalPV);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.Performance, (double)order.TotalAmount);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.Leadership, (double)order.TotalAmount);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.Rank, (double)order.TotalAmount);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.RoyalClub, (double)order.TotalAmount);
                    //trHelper.UpdateMemberBonusTemp(db, order.MemberID, KDMBonusConstants.ECommerce, (double)order.TotalAmount);

                    //trHelper.GiveWalletBonus(order.MemberID);
                    trHelper.GiveSponsorBonus(db, order.MemberID);
                    //trHelper.UpdateFundMonthlyRoyalityBonusByMemberSource(order.MemberID);
                    //trHelper.UpdateFundPerformanceBonusByMemberSource(order.MemberID);
                    //trHelper.UpdateFundLadershipBonusByMemberSource(order.MemberID);
                    //trHelper.UpdateFundRoyalClubBonusByMemberSource(order.MemberID);
                    //trHelper.UpdateFundECommerceBonusByMemberSource(order.MemberID);


                    #endregion

                    db.SaveChanges();
                    tr.Commit();
                    TempData["SMsg"] = "Order# " + OrderId + " approved";
                }
                catch (Exception ex)
                {
                    tr.Rollback();
                    Log.Error(ex, "[M_0000013] [ERROR]");
                    TempData["EMsg"] = "Can't approve the order# " + OrderId;
                }
            }

            return(RedirectToAction("OrderList"));
        }