void GerarRelatorio(object sender, RoutedEventArgs e) { var produtos = new Dictionary <ParCategoriaFornecedor, List <ExibicaoProduto> >(); using (var leitura = new BaseGeral.Repositorio.Leitura()) { foreach (var prod in leitura.ObterProdutos().ToArray()) { if (prod.IdCategoria == Guid.Empty && !InserirProdutosSemCategoria || prod.IdFornecedor == Guid.Empty && !InserirProdutosSemFornecedor) { continue; } var estoque = leitura.ObterEstoque(prod.Id); var exib = new ExibicaoProduto(prod, estoque?.Alteracoes.Sum(x => x.Alteração) ?? double.NaN); var categoria = CategoriasEscolhidas.FirstOrDefault(x => x.Id == prod.IdCategoria); if ((prod.IdCategoria != default(Guid) && categoria == null) || (prod.IdCategoria == default(Guid) && !InserirProdutosSemCategoria)) { continue; } var fornecedor = FornecedoresEscolhidos.FirstOrDefault(x => x.Id == prod.IdFornecedor); if ((prod.IdFornecedor != default(Guid) && fornecedor == null) || (prod.IdFornecedor == default(Guid) && !InserirProdutosSemFornecedor)) { continue; } var key = new ParCategoriaFornecedor(categoria, fornecedor); if (produtos.ContainsKey(key)) { produtos[key].Add(exib); } else { produtos.Add(key, new List <ExibicaoProduto> { exib }); } } } if (produtos.Count == 0) { Popup.Current.Escrever(TitulosComuns.Atenção, "Não há nenhum produto que corresponda aos critérios especificados."); return; } BasicMainPage.Current.Navegar <ImpressaoRelatorioProduto01>(produtos); }
async void ControlarEstoque(object sender, RoutedEventArgs e) { if (VerificarClassificacaoEmUso()) { return; } var contexto = ((FrameworkElement)sender).DataContext; var produto = (ProdutoDI)contexto; Estoque estoque = null; using (var leit = new BaseGeral.Repositorio.Leitura()) { estoque = leit.ObterEstoque(produto.Id); } if (estoque == null) { using (var repo = new BaseGeral.Repositorio.Escrita()) { var caixa = new MessageDialog("Essa é uma operação sem volta, uma vez adicionado ao controle de estoque este produto será permanentemente parte dele. Certeza que você realmente quer isso?", "Atenção"); caixa.Commands.Add(new UICommand("Sim", x => { estoque = new Estoque() { Id = produto.Id }; repo.SalvarItemSimples(estoque, DefinicoesTemporarias.DateTimeNow); repo.SalvarComTotalCerteza(); })); caixa.Commands.Add(new UICommand("Não")); if ((await caixa.ShowAsync()).Label == "Não") { return; } } BasicMainPage.Current.Navegar <ControleEstoque>(estoque); } else { BasicMainPage.Current.Navegar <ControleEstoque>(estoque); } }