public bool ValIdatePayment(DataAccess.Quote entity, DataAccess.PayFastNotify payFast) { bool success = true; var totalAmount = entity.QuoteDetails.Sum(a => a.SubscriptionTypeRuleAudit.AmountRand * a.Quantity); var payFastAmount = entity.PayFastNotifies.Sum(a => a.Amount_gross); if (payFastAmount != totalAmount) { success = false; } return(success); }
private void GenerateOrderDetail( IEnumerable <Cart> cartList, DataAccess.Quote quoteEntity) { List <DataAccess.OrderDetail> detailList = new List <DataAccess.OrderDetail>(); foreach (var item in cartList) { var currentRow = new DataAccess.OrderDetail { QuoteId = quoteEntity.Id, UnitPrice = item.Product.Price, ProductSizeId = item.ProductSizeId, Quantity = item.Count, CreatedUserId = quoteEntity.CreatedUserId, }; quoteEntity.OrderDetails.Add(currentRow); } }
private void GenerateQuoteDetail( QuoteViewModel model, DataAccess.Quote quoteEntity) { if (model.SubscriptionTypeRuleAuditIds.Any()) { List <DataAccess.QuoteDetail> detailList = new List <DataAccess.QuoteDetail>(); var distinctSubTypeRuleAudit = model.SubscriptionTypeRuleAuditIds.Distinct().ToArray(); for (int i = 0; i < distinctSubTypeRuleAudit.Count(); i++) { var currentRow = new DataAccess.QuoteDetail { QuoteId = quoteEntity.Id, SubscriptionTypeRuleAuditId = distinctSubTypeRuleAudit[i], Quantity = model.QuantityIds[i], ItemNo = i + 1, CreatedUserId = model.UserId, }; quoteEntity.QuoteDetails.Add(currentRow); } } }
public async Task <PayFastViewModel> SaveQuoteFromCart(string cartId, string sessionUserId) { var payFastVieModel = new PayFastViewModel(); QuoteStatusViewModel quoteStatus = await _quoteStatusBL.GetEntityByDiscr(OrderStatusRef.New); var quoteEntity = new DataAccess.Quote { QuoteNo = Guid.NewGuid().ToString().Substring(0, 8).ToUpper(), QuoteStatusId = quoteStatus.Id, FinYearId = _finYearBL.GetCurrentFinYearId(), CreatedUserId = sessionUserId, QuoteUserId = sessionUserId }; SaveResult saveResult = new SaveResult(); Dictionary <bool, string> dictionary = new Dictionary <bool, string>(); var cartList = _context.Cart .Include(a => a.ProductSize.Size) .Include(a => a.ProductSize.Product) .Include(a => a.Product) .Where(a => a.RecordId == cartId); try { this.GenerateOrderDetail(cartList, quoteEntity); saveResult = await AddEntity(quoteEntity); if (saveResult.IsSuccess) { saveResult = await EmptyCart(cartList); } if (saveResult.IsSuccess) { saveResult.Discriminator = quoteEntity.QuoteNo; saveResult.Id = quoteEntity.Id; quoteEntity = await _context.Quote.Include(a => a.QuoteUser).IgnoreQueryFilters().FirstOrDefaultAsync(a => a.Id == quoteEntity.Id); payFastVieModel = new PayFastViewModel { SaveResult = saveResult, name_first = quoteEntity.QuoteUser.FirstName, name_last = quoteEntity.QuoteUser.Surname, email_address = quoteEntity.QuoteUser.Email, cell_number = quoteEntity.QuoteUser.ContactNo, m_payment_Id = quoteEntity.QuoteNo, amount = cartList.Sum(a => a.Product.Price), item_name = "Order", item_description = string.Empty, custom_int1 = quoteEntity.Id, email_confirmation = 1, confirmation_address = quoteEntity.QuoteUser.Email, signature = string.Empty, FullName = quoteEntity.QuoteUser.FirstName + " " + quoteEntity.QuoteUser.Surname, MessageTemplate = quoteEntity.QuoteStatus.MessageTemplate.ToViewModel(new MessageTemplateViewModel()) }; } //if(saveResult.IsSuccess) //{ // //queuemail // var fullName = quoteEntity.QuoteUser.People.FirstOrDefault().Title.Name + " " + quoteEntity.QuoteUser.People.FirstOrDefault().FirstName + " " + quoteEntity.QuoteUser.People.FirstOrDefault().Surname; // _queuedEmail.QueueQuote(quoteEntity.QuoteStatu.MessageTemplate, quoteEntity.QuoteUser.Email, fullName,saveResult.ByteArray); //} } catch (DbUpdateException upDateEx) { var results = upDateEx.GetSqlerrorNo(); string msg = results == (int)SqlErrNo.FK ? ConstEntity.MissingValueMsg : ConstEntity.UniqueKeyMsg; saveResult = dictionary.GetValidateEntityResults(msg).ToSaveResult(); throw upDateEx; } catch (Exception ex) { saveResult.Message = CrudError.SaveErrorMsg; throw ex; } return(payFastVieModel); }
public void GenerateList( QuoteViewModel model, DataAccess.Quote quote) { foreach (var item in quote.QuoteDetails) { var subscription = new DataAccess.Subscription { CreatedUserId = model.SessionUserId, QuoteDetailId = item.Id, MemberId = model.ParentMemberId, StartDate = DateTime.Now, }; if (item.SubscriptionTypeRuleAudit.ActiveMonths.HasValue) { DateTime endDate = (subscription.StartDate).AddMonths((int)item.SubscriptionTypeRuleAudit.ActiveMonths); subscription.EndDate = endDate; } var subscriptionHistory = new DataAccess.SubscriptionHistory { CreatedUserId = model.SessionUserId, QuoteDetailId = item.Id, MemberId = model.ParentMemberId, SubscriptionId = subscription.Id, StartDate = subscription.StartDate, EndDate = subscription.EndDate }; subscription.SubscriptionHistories.Add(subscriptionHistory); item.Subscriptions.Add(subscription); if (item.SubscriptionTypeRuleAudit.HasRelations && model.MemberListIds != null) { foreach (var memberId in model.MemberListIds) { subscription = new DataAccess.Subscription { CreatedUserId = model.SessionUserId, QuoteDetailId = item.Id, MemberId = memberId, StartDate = DateTime.Now, }; if (item.SubscriptionTypeRuleAudit.ActiveMonths.HasValue) { DateTime endDate = (subscription.StartDate).AddMonths((int)item.SubscriptionTypeRuleAudit.ActiveMonths); subscription.EndDate = endDate; } subscriptionHistory = new DataAccess.SubscriptionHistory { CreatedUserId = model.SessionUserId, QuoteDetailId = item.Id, MemberId = memberId, SubscriptionId = subscription.Id, StartDate = subscription.StartDate, EndDate = subscription.EndDate }; subscription.SubscriptionHistories.Add(subscriptionHistory); item.Subscriptions.Add(subscription); } //all relations //generate subscriptions //generate subscriptions history } } ; }