private void ConfigurarCabecalho(CardapioReportParamsViewModel param, CardapioReportResultViewModel result, string nomeCardapio, string nomeIntervaloSemanas, string nomeIntervaloItens, string listaReceitasSemCardapio) { if (listaReceitasSemCardapio != string.Empty) { result.CabecalhoDoRelatorio.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Lista de receitas"].Value, ValorCampo = listaReceitasSemCardapio }); result.CabecalhoDoRelatorio.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Porções"].Value, ValorCampo = param.Porcoes.ToString() });; } else { result.CabecalhoDoRelatorio.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Cardápio"].Value, ValorCampo = nomeCardapio }); result.CabecalhoDoRelatorio.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Intervalo de semanas"].Value, ValorCampo = nomeIntervaloSemanas }); result.CabecalhoDoRelatorio.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Intervalo de itens"].Value, ValorCampo = nomeIntervaloItens }); } }
private ActionResult GerarRelatorio(CardapioReportParamsViewModel param) { var relNome = param.Titulo == string.Empty ? _localizer["Lista de Ingredientes"].Value : param.Titulo; try { /* * param.Titulo = relNome; * param.Subtitulo = _localizer["Por categoria, totalizando todas as receitas"].Value; */ var result = _appReportService.Execute(param); if (result != null) { return(Ok(result)); } return(NoContent()); } catch (Exception e) { return(BadRequest(new { Mensagem = _localizer["Ocorreu um erro ao gerar relatório \"{0}\".{1}", relNome, e.Message].Value })); } }
public ItemParaComputarIngrediente(IServiceBase <Receita> receitaService, CardapioReportParamsViewModel param) { Ocorrencias = new List <ItemOcorrenciaParaComputarIngrediente>(); ItensDemostrativo = new List <string>(); _receitaService = receitaService; _param = param; }
private CardapioReportResultViewModel Execute(Guid cardapioId) { var relNome = "Lista de Ingredientes"; var param = new CardapioReportParamsViewModel(); param.CardapioId = cardapioId; param.Titulo = relNome; param.Subtitulo = _localizer["Por categoria, totalizando todas as receitas"].Value; var result = _appReportService.Execute(param); return(result); }
public ActionResult GetReportById(Guid id) { var relNome = _localizer["Lista de Ingredientes"].Value; var param = new CardapioReportParamsViewModel(); param.CardapioId = id; param.Titulo = relNome; param.Subtitulo = _localizer["Por categoria, totalizando todas as receitas"].Value; return(GerarRelatorio(param)); /* * var result = _appReportService.Execute(param); * * if (result != null) * return Ok(result); * * return NoContent(); */ }
public CardapioReportResultViewModel Execute(CardapioReportParamsViewModel param) { _param = param; var result = new CardapioReportResultViewModel(); result.Parametros = param; result.Titulo = param.Titulo; result.Subtitulo = param.Subtitulo; Guid id = param.CardapioId ?? Guid.Empty; var nomeCardapio = _localizer["Nenhum cardápio definido"].Value; var nomeIntervaloSemanas = _localizer["Nenhum intervalo selecionado"].Value; var nomeIntervaloItens = nomeIntervaloSemanas; var listaReceitasSemCardapio = string.Empty; IList <Receita> listaReceitas = new List <Receita>(); List <ItemParaComputarIngrediente> lista = null; Cardapio c = null; if (id != Guid.Empty) { c = _service.GetById(id); } if (param.ListaReceitas != null && param.ListaReceitas.Count > 0) { foreach (var sid in param.ListaReceitas) { Guid idrec; if (Guid.TryParse(sid, out idrec)) { var rec = _receitaService.GetById(idrec); if (listaReceitasSemCardapio != string.Empty) { listaReceitasSemCardapio += ", "; } listaReceitasSemCardapio += rec.Nome; listaReceitas.Add(rec); } } lista = ObterDadosAgrupadosListaReceitas(listaReceitas, param.Porcoes); } else if (c != null) { nomeCardapio = c.Nome; lista = ObterDadosAgrupados(id); } ConfigurarCabecalho(param, result, nomeCardapio, nomeIntervaloSemanas, nomeIntervaloItens, listaReceitasSemCardapio); if (lista == null) { return(result); } //percorre somando foreach (var ocor in lista) { if (param.MostrarDetalhesDoCalculo) { foreach (var o in ocor.Ocorrencias) { //aqui //o.gerarTextoDetalhe } } //var SomaReceitaQuantidades = ocor.Ocorrencias.Select(p => p.ReceitaQuantidade).ToList().Sum(); var SomaItensCardapioQuantidades = ocor.Ocorrencias.Select(p => p.ItemCardapioQuantidade).ToList().Sum(); ocor.QuantidadeTotal = SomaItensCardapioQuantidades; } // Ordena por categoria para agrupar var ordenada = lista.OrderBy(p => p.NomeCategoria).ToList(); //Novo cabeçalho para cada mudança de categoria string cat = "indefinida"; // deixar em branco dá problema se vir assim também dos dados int qtd = 0; CardapioReportResultGruposDeRegistrosViewModel grupo = null; foreach (var ocor in ordenada) { if (grupo == null || cat != ocor.NomeCategoria) { if (grupo != null) { grupo.RodapeDoGrupo.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Contador"].Value, ValorCampo = qtd.ToString() }); } grupo = new CardapioReportResultGruposDeRegistrosViewModel(); result.Dados.Add(grupo); grupo.CabecalhoDoGrupo.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = "", ValorCampo = ocor.NomeCategoria }); grupo.Registros.TitulosColunas.Add(_localizer["Item"].Value); grupo.Registros.TitulosColunas.Add(_localizer["Ingrediente"].Value); grupo.Registros.TitulosColunas.Add(_localizer["Quantidade"].Value); grupo.Registros.TitulosColunas.Add(_localizer["Unidade"].Value); grupo.Registros.NomesColunas.Add("item"); grupo.Registros.NomesColunas.Add("ing"); grupo.Registros.NomesColunas.Add("count"); grupo.Registros.NomesColunas.Add("unit"); if (_param.MostrarDetalhesDoCalculo) { grupo.Registros.TitulosColunas.Add(_localizer["Informação Adicional"].Value); grupo.Registros.NomesColunas.Add("infoadic"); } qtd = 0; cat = ocor.NomeCategoria; } if (grupo != null) { qtd++; var qtdTotal = Math.Round(ocor.QuantidadeTotal, 1, MidpointRounding.ToEven); var sreg = $"\"item={qtd}\",\"ing={ocor.NomeIngrediente}\",\"count={qtdTotal}\",\"unit={ocor.NomeUnidadeMedida}\""; if (_param.MostrarDetalhesDoCalculo) { var texto = string.Join("|||", ocor.ItensDemostrativo); sreg = $"{sreg},\"infoadic={texto}\""; } grupo.Registros.CommaTextRegisters.Add(sreg); } } if (grupo != null) { grupo.RodapeDoGrupo.Add(new CardapioReportResultValorCabecalhoViewModel { NomeCampo = _localizer["Contador"].Value, ValorCampo = qtd.ToString() }); } return(result); }
public ActionResult GetReportById(CardapioReportParamsViewModel param) { return(GerarRelatorio(param)); }