public ActionResult KDMHelpTest() { KDMTRHelper kdmHelper = new KDMTRHelper(); //kdmHelper.WalletBonus(10004); //kdmHelper.UpdateFundMonthlyRoyalityBonusByMemberSource(10004); kdmHelper.UpdateFundPerformanceBonusByMemberSource("10004"); return(View()); }
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")); }