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);
        }
예제 #2
0
        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);
            }
        }