protected void btnApproveRegistration_Click(object sender, EventArgs e) { try { GridViewRow gvr = ((Button)sender).NamingContainer as GridViewRow; var id = int.Parse((gvr.FindControl("hdnID") as HiddenField).Value); var context = MyDBContext; var objUser = context.UserDetails.Where(x => x.ID == id).FirstOrDefault(); var refer = context.UserDetails.Where(x => x.ID == objUser.ReferrerID).ToList().FirstOrDefault(); var up = objUser.UserProducts.FirstOrDefault(); var productID = up.ProductID; var product = context.Products.Where(x => x.ID == productID).FirstOrDefault(); AssignDefaultPages(objUser.ID); if (product != null) { var productNth = context.ProductLevels.Where(x => x.ProductID == product.ID).OrderBy(x => x.LevelNumber).ToList(); foreach (var p in productNth) { var userNth = new UserNthLevel(); userNth.IsActive = true; userNth.LevelNumber = p.LevelNumber; userNth.Percentage = p.Percentage; userNth.CreatedBy = Utils.GetUserName(); userNth.TimeStamp = DateTime.Now; userNth.UserID = objUser.ID; context.UserNthLevels.Add(userNth); } context.SaveChanges(); var ur = context.UserRequests.Where(x => x.ID == objUser.ID && x.Status.ToLower() == "pending").FirstOrDefault(); if (ur != null) { ur.Status = "Approved"; context.SaveChanges(); } var firstLevel = context.UserNthLevels.Where(x => x.UserID == refer.ID && x.LevelNumber == 1).FirstOrDefault(); if (firstLevel != null) { //var count = context.UserSales.Where(x => x.AddedOn.Value.Date == DateTime.Now.Date).ToList().Count(); var totalPrice = product.FinalSalePrice * up.Quantity; var comissionAmount = firstLevel.Percentage * (totalPrice / 100); var us = new UserSale(); // count++; us.UserID = refer.ID; us.ReferredUserID = objUser.ID; us.Quantity = up.Quantity; us.ProductPrice = product.FinalSalePrice; us.SaleProductID = product.ID; us.ComissionPercentage = firstLevel.Percentage; us.ComissionAmount = comissionAmount; us.TotalPrice = product.FinalSalePrice * up.Quantity; us.IsActive = true; us.AddedOn = DateTime.Now; us.SalesNo = DateTime.Now.ToString("yyyyMMddhhmmss");// + "-" + count.ToString(); context.UserSales.Add(us); context.SaveChanges(); var userSale = context.UserSales.OrderByDescending(x => x.ID).FirstOrDefault(); var nthLevel = new SalesComissionNthLevel(); nthLevel.IsActive = true; nthLevel.IsCheckOut = false; nthLevel.UserSaleID = userSale.ID; nthLevel.BeneficierUserID = refer.ID; nthLevel.AddedOn = DateTime.Now; nthLevel.ComissionAmount = comissionAmount; nthLevel.ComissionPercentage = firstLevel.Percentage; context.SalesComissionNthLevels.Add(nthLevel); context.SaveChanges(); var referenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(refer.ID, comissionAmount.Value, referenceID, Utils.AdjustmentType.DebitAdjustment, String.Empty); var admins = context.UserDetails.Where(x => x.IsActive && x.UserType.ToLower().Contains("admin")).ToList(); foreach (var admin in admins) { var adminComm = new SalesComissionNthLevel(); var refCommAmount = (admin.PercentageOfSale.HasValue ? admin.PercentageOfSale.Value : 0) * (totalPrice / 100); adminComm.IsActive = true; adminComm.IsCheckOut = false; adminComm.UserSaleID = userSale.ID; adminComm.BeneficierUserID = admin.ID; adminComm.AddedOn = DateTime.Now; adminComm.ComissionAmount = refCommAmount; adminComm.ComissionPercentage = admin.PercentageOfSale; context.SalesComissionNthLevels.Add(adminComm); context.SaveChanges(); var adminReferenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(admin.ID, refCommAmount.Value, adminReferenceID, Utils.AdjustmentType.DebitAdjustment, String.Empty); } if (refer.ReferrerID.HasValue) { var lastReffererID = refer.ReferrerID.Value; int index = 2; do { var referrer = context.UserDetails.Where(x => x.ID == lastReffererID && x.IsActive).FirstOrDefault(); if (referrer != null) { var referrerNthLevel = context.UserNthLevels.Where(x => x.UserID == referrer.ID && x.LevelNumber == index).FirstOrDefault(); if (referrerNthLevel != null) { var referrerComm = new SalesComissionNthLevel(); var refCommAmount = referrerNthLevel.Percentage * (totalPrice / 100); referrerComm.IsActive = true; referrerComm.IsCheckOut = false; referrerComm.UserSaleID = userSale.ID; referrerComm.BeneficierUserID = referrer.ID; referrerComm.AddedOn = DateTime.Now; referrerComm.ComissionAmount = refCommAmount; referrerComm.ComissionPercentage = referrerNthLevel.Percentage; context.SalesComissionNthLevels.Add(referrerComm); context.SaveChanges(); var scReferenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(referrer.ID, refCommAmount.Value, scReferenceID, Utils.AdjustmentType.DebitAdjustment, String.Empty); } lastReffererID = referrer.ReferrerID.HasValue ? referrer.ReferrerID.Value : 0; if (!referrer.ReferrerID.HasValue) { break; } } index++; }while (index < 15); } } objUser.IsActive = true; up.IsActive = true; context.SaveChanges(); LoadData(); Utils.ShowAlert(this, "Success", "Approved successfully", true); } } catch (Exception ex) { Utils.ShowAlert(this, "Error", ex.Message, false); } }
protected void btnAddMember_Click(object sender, EventArgs e) { try { int userID = 0; var context = MyDBContext; if (context.UserDetails.Where(x => x.Username.ToLower() == txtUsername.Text.ToLower()).FirstOrDefault() == null) { var refer = context.UserDetails.Where(x => x.Username.ToLower() == txtReferBY.Text.ToLower()).ToList().FirstOrDefault(); if (refer != null) { var percentage = 0.0M; string fileName; SaveImage(out fileName); decimal.TryParse(txtPercentageOfSale.Text, out percentage); var user = new UserDetail(); user.FirstName = txtFirstName.Text; user.LastName = txtLastName.Text; user.Email = txtEmail.Text; user.Username = txtUsername.Text; user.Password = txtUsername.Text; user.ReferrerID = refer.ID; user.ImagePath = fileName; user.CNIC = txtCNIC.Text; user.FatherName = txtFatherName.Text; user.IsActive = true; user.IsSuperAdmin = false; user.UserType = ddlUserType.SelectedValue; user.ContactNo = txtPhone.Text; user.ContactNo2 = txtPhone2.Text; user.PercentageOfSale = percentage; user.CreatedBy = Utils.GetUserName(); user.CreatedOn = DateTime.Now; context.UserDetails.Add(user); if (context.SaveChanges() > 0) { if (ddlProduct.SelectedValue != "0") { var productID = int.Parse(ddlProduct.SelectedValue); var objUser = context.UserDetails.Where(x => x.Username.ToLower() == txtUsername.Text.ToLower()).OrderByDescending(x => x.ID).FirstOrDefault(); var up = new UserProduct(); AssignDefaultPages(objUser.ID); userID = objUser.ID; hdnUserID.Value = objUser.ID.ToString(); up.Quantity = int.Parse(txtQuantity.Text); up.UserID = objUser.ID; up.ProductID = int.Parse(ddlProduct.SelectedValue); up.IsActive = true; up.CreatedBy = Utils.GetUserName(); up.CreatedOn = DateTime.Now; context.UserProducts.Add(up); context.SaveChanges(); var product = context.Products.Where(x => x.ID == productID).FirstOrDefault(); if (product != null) { var productNth = context.ProductLevels.Where(x => x.ProductID == product.ID).OrderBy(x => x.LevelNumber).ToList(); foreach (var p in productNth) { var userNth = new UserNthLevel(); userNth.IsActive = true; userNth.LevelNumber = p.LevelNumber; userNth.Percentage = p.Percentage; userNth.CreatedBy = Utils.GetUserName(); userNth.TimeStamp = DateTime.Now; userNth.UserID = objUser.ID; context.UserNthLevels.Add(userNth); } context.SaveChanges(); var firstLevel = context.UserNthLevels.Where(x => x.UserID == refer.ID && x.LevelNumber == 1).FirstOrDefault(); if (firstLevel != null) { //var count = context.UserSales.Where(x => x.AddedOn.Value.Date == DateTime.Now.Date).ToList().Count(); var totalPrice = product.FinalSalePrice * int.Parse(txtQuantity.Text); var comissionAmount = firstLevel.Percentage * (totalPrice / 100); var us = new UserSale(); // count++; us.UserID = refer.ID; us.ReferredUserID = objUser.ID; us.Quantity = int.Parse(txtQuantity.Text); us.ProductPrice = product.FinalSalePrice; us.SaleProductID = product.ID; us.ComissionPercentage = firstLevel.Percentage; us.ComissionAmount = comissionAmount; us.TotalPrice = product.FinalSalePrice * int.Parse(txtQuantity.Text); us.IsActive = true; us.AddedOn = DateTime.Now; us.SalesNo = DateTime.Now.ToString("yyyyMMddhhmmss");// + "-" + count.ToString(); context.UserSales.Add(us); context.SaveChanges(); var userSale = context.UserSales.OrderByDescending(x => x.ID).FirstOrDefault(); var nthLevel = new SalesComissionNthLevel(); nthLevel.IsActive = true; nthLevel.IsCheckOut = false; nthLevel.UserSaleID = userSale.ID; nthLevel.BeneficierUserID = refer.ID; nthLevel.AddedOn = DateTime.Now; nthLevel.ComissionAmount = comissionAmount; nthLevel.ComissionPercentage = firstLevel.Percentage; context.SalesComissionNthLevels.Add(nthLevel); context.SaveChanges(); var referenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(refer.ID, comissionAmount.Value, referenceID, Utils.AdjustmentType.DebitAdjustment, String.Empty); var admins = context.UserDetails.Where(x => x.IsActive && x.UserType.ToLower().Contains("admin")).ToList(); foreach (var admin in admins) { var adminComm = new SalesComissionNthLevel(); var refCommAmount = (admin.PercentageOfSale.HasValue ? admin.PercentageOfSale.Value : 0) * (totalPrice / 100); adminComm.IsActive = true; adminComm.IsCheckOut = false; adminComm.UserSaleID = userSale.ID; adminComm.BeneficierUserID = admin.ID; adminComm.AddedOn = DateTime.Now; adminComm.ComissionAmount = refCommAmount; adminComm.ComissionPercentage = admin.PercentageOfSale; context.SalesComissionNthLevels.Add(adminComm); context.SaveChanges(); var adminReferenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(admin.ID, refCommAmount.Value, adminReferenceID, Utils.AdjustmentType.DebitAdjustment, String.Empty); } if (refer.ReferrerID.HasValue) { var lastReffererID = refer.ReferrerID.Value; int index = 2; do { var referrer = context.UserDetails.Where(x => x.ID == lastReffererID && x.IsActive).FirstOrDefault(); if (referrer != null) { var referrerNthLevel = context.UserNthLevels.Where(x => x.UserID == objUser.ID && x.LevelNumber == index).FirstOrDefault(); if (referrerNthLevel != null) { var referrerComm = new SalesComissionNthLevel(); var refCommAmount = referrerNthLevel.Percentage * (totalPrice / 100); referrerComm.IsActive = true; referrerComm.IsCheckOut = false; referrerComm.UserSaleID = userSale.ID; referrerComm.BeneficierUserID = referrer.ID; referrerComm.AddedOn = DateTime.Now; referrerComm.ComissionAmount = refCommAmount; referrerComm.ComissionPercentage = referrerNthLevel.Percentage; context.SalesComissionNthLevels.Add(referrerComm); context.SaveChanges(); var scReferenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(referrer.ID, refCommAmount.Value, scReferenceID, Utils.AdjustmentType.DebitAdjustment, String.Empty); } lastReffererID = referrer.ReferrerID.HasValue ? referrer.ReferrerID.Value : 0; if (!referrer.ReferrerID.HasValue) { break; } } index++; }while (index < 15); } } var desc = "Dear super admin, \n\r Please add a number of " + txtQuantity.Text + " " + ddlProduct.SelectedItem.Text + " on my account."; var req = new UserRequest(); req.RequestByUserID = Utils.GetUserData().ID; req.RequestTitle = "Add Product"; req.RequestDescription = desc; req.RequestType = "User"; req.CreatedOn = DateTime.Now; req.Status = "Approved"; req.TransactionID = txtTransactionID.Text; req.ProductID = int.Parse(ddlProduct.SelectedValue); req.Quantity = int.Parse(txtQuantity.Text); context.UserRequests.Add(req); context.SaveChanges(); } } } var levels = context.UserNthLevels.Where(x => x.UserID == userID).ToList(); rptLevels.DataSource = levels; rptLevels.DataBind(); Session["MemberLevels"] = levels; lblLevel.Text = (rptLevels.Items.Count + 1).ToString(); divLevels.Visible = true; divAddMember.Visible = false; Utils.ShowAlert(this, "Success", "User added successfully. Please adjust commission levels.", true); } else { Utils.ShowAlert(this, "Error", "Referrer not found. Please enter a valid referrer.", false); } } else { Utils.ShowAlert(this, "Error", "User already exists.", false); } } catch (Exception ex) { Utils.ShowAlert(this, "Error", ex.Message, false); } }
private void ApproveProductRequest(int ID) { ScentaurusEntities2 context = MyDBContext; UserRequest userRequest = context.UserRequests.FirstOrDefault(x => x.ID == ID); if (userRequest != null && userRequest.ProductID != null) { int? productID = userRequest.ProductID; UserDetail objUser = context.UserDetails.Where(x => x.Username.ToLower() == userRequest.UserDetail.Username.ToLower()).OrderByDescending(x => x.ID).FirstOrDefault(); int userID = userRequest.RequestByUserID; UserDetail refer = context.UserDetails.Where(x => x.ID == objUser.ReferrerID).ToList().FirstOrDefault(); UserProduct up = new UserProduct(); userID = objUser.ID; up.Quantity = userRequest.Quantity; up.UserID = objUser.ID; up.ProductID = productID; up.IsActive = true; up.CreatedBy = Utils.GetUserName(); up.CreatedOn = DateTime.Now; context.UserProducts.Add(up); context.SaveChanges(); Product product = context.Products.Where(x => x.ID == productID).FirstOrDefault(); if (product != null) { List <ProductLevel> productNth = context.ProductLevels.Where(x => x.ProductID == product.ID).OrderBy(x => x.LevelNumber).ToList(); foreach (ProductLevel p in productNth) { UserNthLevel userNth = new UserNthLevel { IsActive = true, LevelNumber = p.LevelNumber, Percentage = p.Percentage, CreatedBy = Utils.GetUserName(), TimeStamp = DateTime.Now, UserID = objUser.ID }; context.UserNthLevels.Add(userNth); } context.SaveChanges(); UserNthLevel firstLevel = context.UserNthLevels.Where(x => x.UserID == objUser.ID && x.LevelNumber == 1).FirstOrDefault(); if (firstLevel != null) { decimal? totalPrice = product.FinalSalePrice * userRequest.Quantity; decimal? comissionAmount = firstLevel.Percentage * (totalPrice / 100); UserSale us = new UserSale { // count++; UserID = refer.ID, ReferredUserID = objUser.ID, Quantity = userRequest.Quantity, ProductPrice = product.FinalSalePrice, SaleProductID = product.ID, ComissionPercentage = firstLevel.Percentage, ComissionAmount = comissionAmount, TotalPrice = product.FinalSalePrice * userRequest.Quantity, IsActive = true, AddedOn = DateTime.Now, SalesNo = DateTime.Now.ToString("yyyyMMddhhmmss")// + "-" + count.ToString(); }; context.UserSales.Add(us); context.SaveChanges(); UserSale userSale = context.UserSales.OrderByDescending(x => x.ID).FirstOrDefault(); SalesComissionNthLevel nthLevel = new SalesComissionNthLevel { IsActive = true, IsCheckOut = false, UserSaleID = userSale.ID, BeneficierUserID = refer.ID, AddedOn = DateTime.Now, ComissionAmount = comissionAmount, ComissionPercentage = firstLevel.Percentage }; context.SalesComissionNthLevels.Add(nthLevel); context.SaveChanges(); int referenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(refer.ID, comissionAmount.Value, referenceID, Utils.AdjustmentType.DebitAdjustment, string.Empty); List <UserDetail> admins = context.UserDetails.Where(x => x.IsActive && x.UserType.ToLower().Contains("admin")).ToList(); foreach (UserDetail admin in admins) { SalesComissionNthLevel adminComm = new SalesComissionNthLevel(); decimal?refCommAmount = (admin.PercentageOfSale.HasValue ? admin.PercentageOfSale.Value : 0) * (totalPrice / 100); adminComm.IsActive = true; adminComm.IsCheckOut = false; adminComm.UserSaleID = userSale.ID; adminComm.BeneficierUserID = admin.ID; adminComm.AddedOn = DateTime.Now; adminComm.ComissionAmount = refCommAmount; adminComm.ComissionPercentage = admin.PercentageOfSale; context.SalesComissionNthLevels.Add(adminComm); context.SaveChanges(); int adminReferenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(admin.ID, refCommAmount.Value, adminReferenceID, Utils.AdjustmentType.DebitAdjustment, string.Empty); } if (refer.ReferrerID.HasValue) { int lastReffererID = refer.ReferrerID.Value; int index = 2; do { UserDetail referrer = context.UserDetails.Where(x => x.ID == lastReffererID && x.IsActive).FirstOrDefault(); if (referrer != null) { UserNthLevel referrerNthLevel = context.UserNthLevels.Where(x => x.UserID == objUser.ID && x.LevelNumber == index).FirstOrDefault(); if (referrerNthLevel != null) { SalesComissionNthLevel referrerComm = new SalesComissionNthLevel(); decimal?refCommAmount = referrerNthLevel.Percentage * (totalPrice / 100); referrerComm.IsActive = true; referrerComm.IsCheckOut = false; referrerComm.UserSaleID = userSale.ID; referrerComm.BeneficierUserID = referrer.ID; referrerComm.AddedOn = DateTime.Now; referrerComm.ComissionAmount = refCommAmount; referrerComm.ComissionPercentage = referrerNthLevel.Percentage; context.SalesComissionNthLevels.Add(referrerComm); context.SaveChanges(); int scReferenceID = context.SalesComissionNthLevels.OrderByDescending(x => x.ID).FirstOrDefault().ID; Utils.AddEntryInCustomerLedger(referrer.ID, refCommAmount.Value, scReferenceID, Utils.AdjustmentType.DebitAdjustment, string.Empty); } lastReffererID = referrer.ReferrerID.HasValue ? referrer.ReferrerID.Value : 0; if (!referrer.ReferrerID.HasValue) { break; } } index++; }while (index < 15); } } context.SaveChanges(); } } }