private async Task <byte[]> GerarAnexoPDF(int numeroPedido) { try { var pedido = await _pedidoAppServices.GetPedido(numeroPedido); var user = await _userManager.FindByIdAsync(pedido.userId); var empresa = await _empresaAppServices.GetEmpresaByUserId(pedido.userId); var usuario = await _usuarioAppServices.GetByUserIdAsync(pedido.userId); var produtos = await _pedidoAppServices.GetProdutosByPedido(pedido.Id); var quantidadeArmacoes = produtos.Sum(x => x.Quantidade); var pdfImpressaoModel = new ImpressaoPedidoViewModel(pedido, produtos.OrderBy(x => x.Produto.Referencia), user.Email, empresa, usuario.NomeCompleto, quantidadeArmacoes); var pdf = new ViewAsPdf { Model = pdfImpressaoModel, ViewName = "Impressao", FileName = "teste" }; return(await pdf.BuildFile(ControllerContext)); } catch (Exception) { return(null); } }
public async Task <IActionResult> Impressao(int pedido) { try { var pedidoViewModel = await _pedidoAppServices.GetPedido(pedido); var userIdPedido = pedidoViewModel.userId; var user = await _userManager.GetUserAsync(User); if (userIdPedido == user.Id) { return(await _pedidoAppServices.GerarPedidoPdf(pedidoViewModel, user.Email)); } var impressaoViewModel = new ImpressaoPedidoViewModel { StatusModel = "Error", PedidoViewModel = new PedidoDetailsViewModel(), ProdutosPedidoViewModel = new List <ProdutosPedidoViewModel>() }; ModelState.AddModelError(string.Empty, "Pedido não pertence ao usuário logado."); return(View(impressaoViewModel)); } catch (Exception ex) { throw ex; } }
public async Task <ViewAsPdf> GerarPedidoPdf(PedidoDetailsViewModel pedido, string email) { var empresa = await _empresaAppServices.GetEmpresaByUserId(pedido.userId); var usuario = await _usuarioServices.GetByUserIdAsync(pedido.userId); var produtos = await GetProdutosByPedido(pedido.Id); var quantidadeArmacoes = produtos.Sum(x => x.Quantidade); var pdfImpressaoModel = new ImpressaoPedidoViewModel(pedido, produtos.OrderBy(x => x.Produto.Referencia), email, empresa, usuario.NomeCompleto, quantidadeArmacoes); var pdf = new ViewAsPdf { Model = pdfImpressaoModel, ViewName = "Impressao" }; return(pdf); }