public async Task <IActionResult> View(long id) { var constructor = await _businessManager.GetConstructorInvoice(id); var summaryRange = await _companyBusinessManager.GetSummaryRange(constructor.SummaryRangeId); ViewBag.SummaryRange = $"{summaryRange.From} - {summaryRange.To}"; var searchCriteria = await _businessManager.GetInvoiceConstructorSearchCriteria(constructor.SearchCriteriaId); ViewBag.SearchCriteria = _mapper.Map <InvoiceConstructorSearchViewModel>(searchCriteria); if (searchCriteria.Group == CustomerGroupType.OnlyNew) { ViewBag.CreatedDate = $"{constructor.Date.FirstDayOfMonth().ToString("MM/dd/yyyy")} - {constructor.Date.LastDayOfMonth().ToString("MM/dd/yyyy")}"; } else if (searchCriteria.Group == CustomerGroupType.ExcludeNew) { ViewBag.CreatedDate = $"None - {constructor.Date.AddMonths(-1).LastDayOfMonth().ToString("MM/dd/yyyy")}"; } else if (searchCriteria.Group == CustomerGroupType.All) { ViewBag.CreatedDate = $"None - {constructor.Date.LastDayOfMonth().ToString("MM/dd/yyyy")}"; } var tags = await _businessManager.GetCustomerTags(); ViewBag.Tags = string.Join(',', tags.Where(x => searchCriteria.TagsIds.Contains(x.Id)).Select(x => x.Name)); var types = await _businessManager.GetCustomerTypes(); ViewBag.Types = string.Join(',', types.Where(x => searchCriteria.TypeIds.Contains(x.Id)).Select(x => x.Name)); var constructors = await _businessManager.GetConstructorInvoices(constructor.CompanyId, constructor.Date); constructors = constructors.Where(x => x.SearchCriteriaId == constructor.SearchCriteriaId).ToList(); var invoices = await _businessManager.GetInvoiceDraft(constructors.Select(x => x.Id).ToArray()); ViewBag.Invoices = invoices.Count(); var customers = await _businessManager.GetCustomers(constructor); ViewBag.Customers = customers.Count(); var model = _mapper.Map <InvoiceConstructorViewModel>(constructor); if (IsAjaxRequest) { return(PartialView(model)); } else { return(View(model)); } }
public async Task <IActionResult> EditSummary(long id) { var item = await _companyBusinessManager.GetSummaryRange(id); if (item == null) { return(NotFound()); } var company = await _companyBusinessManager.GetCompany(item.CompanyId); if (company == null) { return(NotFound()); } ViewBag.CompanyName = company.Name; return(View(_mapper.Map <CompanySummaryRangeViewModel>(item))); }
public async Task <IActionResult> GenerateBulkInvoices(InvoiceBulkViewModel model) { try { if (ModelState.IsValid) { var customers = await _businessManager.GetCustomers(model.Customers.ToArray()); var subtotalRange = await _companyBusinessManager.GetSummaryRange(model.SummaryRangeId ?? 0); if (subtotalRange != null) { model.Header = $"{subtotalRange.From}-{subtotalRange.To}"; List <InvoiceViewModel> invoices = new List <InvoiceViewModel>(); Random random = new Random(); foreach (var customer in customers) { var date = random.NextDate(model.DateFrom, model.DateTo); var invoice = new InvoiceViewModel() { CompanyId = model.CompanyId, CustomerId = customer.Id, Customer = _mapper.Map <CustomerViewModel>(customer), Date = date, DueDate = date.AddDays(30), No = $"{date.ToString("mmyy")}_{random.Next(100000, 999999)}", Subtotal = random.NextDecimal(subtotalRange.From, subtotalRange.To) }; invoices.Add(invoice); } model.Invoices = invoices; string html = await _viewRenderService.RenderToStringAsync("_BulkInvoicePartial", model); return(Ok(html)); } else { return(BadRequest()); } } } catch (Exception er) { Console.WriteLine(er.Message); } return(Ok(model)); }