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); }
protected override void OnNavigatedTo(NavigationEventArgs e) { roteiro = (RoteiroAdicaoImpostos)e.Parameter; var telas = roteiro.Telas; for (int i = 0; i < telas.Length; i++) { if (telas[i] != null) { var infoTipo = telas[i].GetType().GetTypeInfo(); var detalhe = infoTipo.GetCustomAttribute <DetalhePagina>(); stkImpostos.Children.Add(new TextBlock { Margin = new Thickness(0, 16, 0, 0), Text = detalhe.Titulo, Style = (Style)Resources["TitleTextBlockStyle"] }); stkImpostos.Children.Add(telas[i]); } } }