async void Concluir(object sender, RoutedEventArgs e) { await Task.Delay(500); var produto = roteiro.Finalizar(); var caixa = new DefinirTotalImpostos(); if (await caixa.ShowAsync() == ContentDialogResult.Primary && caixa.ValorTotalTributos != 0) { produto.Impostos.vTotTrib = ExtensoesPrincipal.ToStr(caixa.ValorTotalTributos); } else { produto.Impostos.vTotTrib = null; } //Remove tela de manipulação do produto e de escolha dos impostos Frame.BackStack.RemoveAt(Frame.BackStack.Count - 1); Frame.BackStack.RemoveAt(Frame.BackStack.Count - 1); var parametro = Frame.BackStack[Frame.BackStack.Count - 1].Parameter; if (parametro is ViewProdutoVenda.IControleViewProdutoFiscal controle) { controle.Adicionar(produto); } else { throw new Exception(); } BasicMainPage.Current.Retornar(); }
public async Task <DetalhesProdutos> AplicarTributacaoAutomatica(bool definirTotalImpostos = true) { var icms = Produto.Auxiliar.GetICMSArmazenados(); var imps = Produto.Auxiliar.GetImpSimplesArmazenados(); var padrao = Produto.ImpostosPadrao; var detalhamentos = new IDetalhamentoImposto[padrao.Length]; for (int i = 0; i < padrao.Length; i++) { var(Tipo, NomeTemplate, CST) = padrao[i]; ImpostoArmazenado impPronto; if (Tipo == PrincipaisImpostos.ICMS) { impPronto = icms.First(Analisar); } else { impPronto = imps.First(Analisar); } bool Analisar(ImpostoArmazenado x) => x.Tipo == Tipo && x.NomeTemplate == NomeTemplate && x.CST == CST; detalhamentos[i] = impPronto; } var roteiro = new RoteiroAdicaoImpostos(detalhamentos, Produto.Completo); var produto = roteiro.Finalizar(); if (definirTotalImpostos) { var caixa = new DefinirTotalImpostos(); if (await caixa.ShowAsync() == ContentDialogResult.Primary && caixa.ValorTotalTributos != 0) { produto.Impostos.vTotTrib = ExtensoesPrincipal.ToStr(caixa.ValorTotalTributos); } else { produto.Impostos.vTotTrib = null; } } else { produto.Impostos.vTotTrib = null; } return(produto); }