public PassBookReport(PassBookDto model) { Date = model.CreatedDate; RefernceNo = (ReferenceIdHelper.getRefId((ServiceType)model.ServiceId)) + model.TransactionId; Amount = model.Amount.HasValue?model.Amount.Value:0; Debit = model.Debit.HasValue ? model.Debit.Value : 0; Credit = model.Credit.HasValue ? model.Credit.Value : 0; Balance = model.Balance.HasValue ? model.Balance.Value : 0; Remarks = model.Remarks; }
private async Task <ObjectDto <BalanceRequestViewModel> > ApproveBalanceFromAccountToRail(BalanceRequestViewModel model) { var messages = new Messages(); ObjectDto <BalanceRequestViewModel> result = new ObjectDto <BalanceRequestViewModel>(); try { using (var db = new ApplicationDbContext()) { var userId = User.Identity.GetUserId(); var userObj = await db.PUserProfile.FindAsync(userId); var childObj = await db.PUserProfile.FindAsync(model.UserId); if (childObj.Balance >= model.AmountApproved) { userObj.Balance += model.AmountApproved; childObj.Balance -= model.AmountApproved; model.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); childObj.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); userObj.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); db.Entry(new PBalanceRequestDto(model)).State = EntityState.Modified; db.Entry(userObj).State = EntityState.Modified; db.Entry(childObj).State = EntityState.Modified; var childPassBook = new PassBookDto { Amount = model.AmountApproved, Balance = childObj.Balance, Credit = 0, Debit = model.AmountApproved, ServiceId = 0, Status = (int)StatusFlag.Success, TransactionId = model.Id, UserId = childObj.UserId, Remarks = "Rail Balance Approved", LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")) }; var userPassBook = new PassBookDto { Amount = model.AmountApproved, Balance = userObj.Balance, Credit = model.AmountApproved, Debit = 0, Status = (int)StatusFlag.Success, TransactionId = model.Id, UserId = userObj.UserId, Remarks = "Rail Balance Approved", ServiceId = 0, LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")) }; db.PassBook.Add(userPassBook); db.PassBook.Add(childPassBook); if ((await db.SaveChangesAsync()) > 0) { result.Object = model; result.valid = true; messages.Message = "You have approved rail balance request for " + childObj.Agency; messages.Type = Toaster.SUCCESS.ToString(); result.messages.Add(messages); } else { messages.Message = "Internal Server Error"; result.messages.Add(messages); } } else { messages.Message = "Not enough balance is available in agent's account"; result.messages.Add(messages); } } } catch (Exception e) { messages.Message = e.Message; result.messages.Add(messages); } return(result); }
public async Task <ObjectDto <string> > Refund(UserCasesViewModel model) { var messages = new Messages(); ObjectDto <string> result = new ObjectDto <string>(); using (var db = new ApplicationDbContext()) { var userCaseDto = await db.UserCases.FindAsync(model.Id); var userId = User.Identity.GetUserId(); var userObj = await db.PUserProfile.FindAsync(userId); var childObj = await db.PUserProfile.FindAsync(userCaseDto.UserId); if (userObj.Balance >= model.Refund) { userObj.Balance -= model.Refund; childObj.Balance += model.Refund; userCaseDto.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); childObj.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); userObj.LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")); userCaseDto.Status = (int)UserCasesStatus.Closed; userCaseDto.Remarks += "<br/>Admin:" + model.Remarks; userCaseDto.Refund = model.Refund; db.Entry(userCaseDto).State = EntityState.Modified; db.Entry(userObj).State = EntityState.Modified; db.Entry(childObj).State = EntityState.Modified; var childPassBook = new PassBookDto { Amount = model.Refund, Balance = childObj.Balance, Credit = model.Refund, Debit = 0, ServiceId = userCaseDto.ServiceTypeId, Status = (int)StatusFlag.Success, TransactionId = model.TransactionId, UserId = childObj.UserId, Remarks = ((UserCaseReason)userCaseDto.Issue).ToString().Replace("_", " ") + " Refund", LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")) }; var userPassBook = new PassBookDto { Amount = model.Refund, Balance = userObj.Balance, Credit = 0, Debit = model.Refund, Status = (int)StatusFlag.Success, TransactionId = model.TransactionId, UserId = userObj.UserId, Remarks = ((UserCaseReason)userCaseDto.Issue).ToString().Replace("_", " ") + " Refund", ServiceId = userCaseDto.ServiceTypeId, LastModifiedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")), CreatedDate = TimeZoneInfo.ConvertTime(DateTime.Now, TimeZoneInfo.FindSystemTimeZoneById("India Standard Time")) }; db.PassBook.Add(userPassBook); db.PassBook.Add(childPassBook); if ((await db.SaveChangesAsync()) > 0) { result.valid = true; messages.Message = "Case closed & amount has been refunded to " + model.Agency + "'s account"; messages.Type = Toaster.SUCCESS.ToString(); result.messages.Add(messages); } else { messages.Message = "Internal Server Error."; result.messages.Add(messages); } } else { messages.Message = "Not enough balance is available in your account"; result.messages.Add(messages); } } return(result); }