public PartialViewResult Search(TransactionCycle form) { try { if (form != null) { if (form.CycleId != 0) { // form.CycleId = form. cycleId; ViewBag.showdata = 1; } else { ViewBag.showdata = 0; } // call search function var data = SeachInTransaction(form); return(PartialView("_TransactionReport", data)); } return(PartialView("_TransactionReport", null)); } catch (Exception ex) { return(PartialView("_TransactionReport", null)); } }
public IList <Transaction> GetTransactionCycleDetails(TransactionCycle transaction) { var query = Context.Transaction .Include(p => p.Cycle) .Include(c => c.TransactionDetail).ThenInclude(c => c.Product) .Include(c => c.FromUser) .Include(c => c.ToUser) .AsQueryable(); if (transaction.types?.Count > 0) { query = query.Where(p => transaction.types.Contains(p.TransType.Value)); } if (transaction.status?.Count > 0) { query = query.Where(p => transaction.status.Contains(p.Status.Value)); } if (!string.IsNullOrEmpty(transaction.CycleName)) { query = query.Where(p => p.Cycle.Name.Contains(transaction.CycleName)); } if (!string.IsNullOrEmpty(transaction.FromUserName)) { query = query.Where(p => p.FromUser.FullName.Contains(transaction.FromUserName) || p.ToUser.FullName.Contains(transaction.FromUserName)); } if (transaction.userId > 0) { query = query.Where(p => p.FromUserId == transaction.userId || p.ToUserId == transaction.userId); } if (!string.IsNullOrEmpty(transaction.Product)) { query = query.Where(p => p.TransactionDetail.Any(x => x.Product.Name.Contains(transaction.Product))); } if (transaction.CycleId != 0) { query = query.Where(p => p.CycleId == transaction.CycleId); } return(query.ToList()); }
public FileResult ExportTransaction(TransactionCycle form) { var stream = new MemoryStream(); try { // call search function var data = SeachInTransaction(form); var sheet = new List <TransactionExport>(); foreach (var item in data) { sheet.Add(new TransactionExport() { CycleName = item.CycleName ?? string.Empty, FromUserName = item.FromUserName ?? string.Empty, ToUser = item.ToUserName ?? string.Empty, Date = item.Date, Status = Enum.GetName(typeof(POPEnums.TransactionStatus), item.Status).ToString().Replace("_", " "), Type = Enum.GetName(typeof(POPEnums.TransactionTypes), item.Type), TotalItem = item.TotalItem.Count() }); } var ProdDT = Helper.GenerateDataTable(sheet.ToArray()); using (var wb = new XLWorkbook()) { wb.Worksheets.Add(ProdDT, "Transaction"); wb.SaveAs(stream); return(File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Transaction.xlsx")); } } catch (Exception e) { return(File(stream.ToArray(), e.ToString())); } }
public List <TransactionCycle> SeachInTransaction(TransactionCycle form) { List <Transaction> data = null; if (LoggedIsSystemAdmin) { data = UnitOfWork.TransactionBL.GetTransactionCycleDetails(form).ToList(); } else // normal user { data = UnitOfWork.TransactionBL.GetTransactionCycleDetails(form). Where(d => d.Cycle.DepartmentId == LoggedUserDepartmentId) .ToList(); } var UserIds = data?.Select(t => t.CreatedById).ToList(); var AllUsers = UnitOfWork.AppUserBL.GetAllWithSystemAdmin(u => UserIds.Contains(u.Id)).ToList(); var SelectedData = data? .Select(c => new TransactionCycle { CycleName = c.Cycle?.Name, FromUserName = c.FromUser?.FullName, Date = c.CreateDate?.ToString(), Status = c.Status.GetValueOrDefault(), Type = c.TransType.GetValueOrDefault(), ToUserName = c.ToUser?.FullName, TotalItem = c.TransactionDetail?.ToList(), TransId = c.TransactionId, // CreatedBy = c.CreatedById.ToString() CreatedBy = AllUsers .Where(u => u.Id == c.CreatedById) .Select(u => u.FullName) .FirstOrDefault() }).OrderByDescending(t => t.Date).ToList(); return(SelectedData); }