diff options
Diffstat (limited to 'Decompiler/Gestor.Application.Helpers/Funcoes.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.Helpers/Funcoes.cs | 4086 |
1 files changed, 4086 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Helpers/Funcoes.cs b/Decompiler/Gestor.Application.Helpers/Funcoes.cs new file mode 100644 index 0000000..8088254 --- /dev/null +++ b/Decompiler/Gestor.Application.Helpers/Funcoes.cs @@ -0,0 +1,4086 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Threading.Tasks; +using System.Web; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Input; +using System.Windows.Threading; +using Agger.Registro; +using ClosedXML.Excel; +using CsQuery.ExtensionMethods; +using Gestor.Application.Actions; +using Gestor.Application.Properties; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Configuracoes; +using Gestor.Application.Servicos.Ferramentas; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.Views.Generic; +using Gestor.Common.Validation; +using Gestor.Infrastructure.UnitOfWork.Generic; +using Gestor.Infrastructure.UnitOfWork.Logic; +using Gestor.Model.API; +using Gestor.Model.Attributes; +using Gestor.Model.Common; +using Gestor.Model.Domain.Card; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.MalaDireta; +using Gestor.Model.Domain.Relatorios; +using Gestor.Model.Domain.Seguros; +using HtmlAgilityPack; +using MaterialDesignThemes.Wpf; +using Newtonsoft.Json; +using OfxSharpLib; +using Xceed.Wpf.AvalonDock.Controls; + +namespace Gestor.Application.Helpers; + +public static class Funcoes +{ + [CompilerGenerated] + private sealed class _003CDistinctBy_003Ed__55<TSource, TKey> : IEnumerable<TSource>, IEnumerable, IEnumerator<TSource>, IDisposable, IEnumerator + { + private int _003C_003E1__state; + + private TSource _003C_003E2__current; + + private int _003C_003El__initialThreadId; + + private IEnumerable<TSource> source; + + public IEnumerable<TSource> _003C_003E3__source; + + private Func<TSource, TKey> keySelector; + + public Func<TSource, TKey> _003C_003E3__keySelector; + + private HashSet<TKey> _003CseenKeys_003E5__2; + + private IEnumerator<TSource> _003C_003E7__wrap2; + + TSource IEnumerator<TSource>.Current + { + [DebuggerHidden] + get + { + return _003C_003E2__current; + } + } + + object IEnumerator.Current + { + [DebuggerHidden] + get + { + return _003C_003E2__current; + } + } + + [DebuggerHidden] + public _003CDistinctBy_003Ed__55(int _003C_003E1__state) + { + this._003C_003E1__state = _003C_003E1__state; + _003C_003El__initialThreadId = Environment.CurrentManagedThreadId; + } + + [DebuggerHidden] + void IDisposable.Dispose() + { + int num = _003C_003E1__state; + if (num == -3 || num == 1) + { + try + { + } + finally + { + _003C_003Em__Finally1(); + } + } + _003CseenKeys_003E5__2 = null; + _003C_003E7__wrap2 = null; + _003C_003E1__state = -2; + } + + private bool MoveNext() + { + try + { + switch (_003C_003E1__state) + { + default: + return false; + case 0: + _003C_003E1__state = -1; + _003CseenKeys_003E5__2 = new HashSet<TKey>(); + _003C_003E7__wrap2 = source.GetEnumerator(); + _003C_003E1__state = -3; + break; + case 1: + _003C_003E1__state = -3; + break; + } + while (_003C_003E7__wrap2.MoveNext()) + { + TSource current = _003C_003E7__wrap2.Current; + if (_003CseenKeys_003E5__2.Add(keySelector(current))) + { + _003C_003E2__current = current; + _003C_003E1__state = 1; + return true; + } + } + _003C_003Em__Finally1(); + _003C_003E7__wrap2 = null; + return false; + } + catch + { + //try-fault + ((IDisposable)this).Dispose(); + throw; + } + } + + bool IEnumerator.MoveNext() + { + //ILSpy generated this explicit interface implementation from .override directive in MoveNext + return this.MoveNext(); + } + + private void _003C_003Em__Finally1() + { + _003C_003E1__state = -1; + if (_003C_003E7__wrap2 != null) + { + _003C_003E7__wrap2.Dispose(); + } + } + + [DebuggerHidden] + void IEnumerator.Reset() + { + throw new NotSupportedException(); + } + + [DebuggerHidden] + IEnumerator<TSource> IEnumerable<TSource>.GetEnumerator() + { + _003CDistinctBy_003Ed__55<TSource, TKey> _003CDistinctBy_003Ed__; + if (_003C_003E1__state == -2 && _003C_003El__initialThreadId == Environment.CurrentManagedThreadId) + { + _003C_003E1__state = 0; + _003CDistinctBy_003Ed__ = this; + } + else + { + _003CDistinctBy_003Ed__ = new _003CDistinctBy_003Ed__55<TSource, TKey>(0); + } + _003CDistinctBy_003Ed__.source = _003C_003E3__source; + _003CDistinctBy_003Ed__.keySelector = _003C_003E3__keySelector; + return _003CDistinctBy_003Ed__; + } + + [DebuggerHidden] + IEnumerator IEnumerable.GetEnumerator() + { + return ((IEnumerable<TSource>)this).GetEnumerator(); + } + } + + public static Stopwatch Stopwatch; + + public static DateTime? StartTime; + + public static async Task<bool[]> VerificarPagamento(long id) + { + bool[] pagamento = new bool[2]; + if ((await new ParcelaServico().BuscarParcelas(id)).Any((Parcela x) => x.DataRecebimento.HasValue)) + { + pagamento[0] = true; + } + if ((await new VendedorServico().BuscaRepasse(id)).Any((VendedorParcela x) => x.DataPagamento.HasValue)) + { + pagamento[1] = true; + } + return pagamento; + } + + public static decimal CalculaPagamento(VendedorParcela pagamento, Parcela parcela, decimal comissaoPrevista) + { + //IL_003b: Unknown result type (might be due to invalid IL or missing references) + //IL_0041: Invalid comparison between Unknown and I4 + //IL_00c2: Unknown result type (might be due to invalid IL or missing references) + //IL_00c8: Invalid comparison between Unknown and I4 + //IL_0109: Unknown result type (might be due to invalid IL or missing references) + //IL_010f: Invalid comparison between Unknown and I4 + //IL_0129: Unknown result type (might be due to invalid IL or missing references) + //IL_012f: Invalid comparison between Unknown and I4 + decimal num = pagamento.PorcentagemRepasse.GetValueOrDefault(); + decimal valueOrDefault = pagamento.ValorRepasse.GetValueOrDefault(); + decimal num2 = parcela.ValorComDesconto; + Repasse repasse = pagamento.Repasse; + if (repasse != null && (int)repasse.Incidencia.GetValueOrDefault() == 2) + { + decimal num3 = parcela.Documento.Comissao * parcela.Documento.PremioLiquido * 0.01m; + decimal num4 = ((parcela.ValorComissao != 0m) ? (parcela.ValorComissao / num3) : 0m); + num2 = parcela.Documento.PremioLiquido * num4; + } + Repasse repasse2 = pagamento.Repasse; + if (repasse2 == null || (int)repasse2.Tipo.GetValueOrDefault() != 1) + { + num = num2 * pagamento.PorcentagemRepasse.GetValueOrDefault() * 0.01m; + } + Repasse repasse3 = pagamento.Repasse; + if (repasse3 != null && (int)repasse3.Tipo.GetValueOrDefault() == 1) + { + Repasse repasse4 = pagamento.Repasse; + if (repasse4 != null && (int)repasse4.Forma.GetValueOrDefault() == 1 && Recursos.Configuracoes.Any((ConfiguracaoSistema x) => (int)x.Configuracao == 25)) + { + decimal num5 = ((comissaoPrevista == 0m) ? 1m : (parcela.ValorComissao / comissaoPrevista)); + num *= num5; + } + } + if (!(Math.Abs(num) > Math.Abs(valueOrDefault))) + { + return num; + } + return valueOrDefault; + } + + public static async Task<Parcela> BaixarComissao(Parcela parcela, List<Parcela> parcelas, List<VendedorParcela> repasses, decimal tolerancia = 2m, bool comissaoAuto = false) + { + ParcelaServico servico = new ParcelaServico(); + parcela.ValorComDesconto = ((parcela.ValorComDesconto == 0m && Math.Abs(parcela.ValorComDesconto) < Math.Abs(parcela.ValorComissao)) ? parcela.ValorComissao : parcela.ValorComDesconto); + var source = from x in repasses + group x by new + { + Id = ((DomainBase)x.Parcela).Id, + vendedor = ((DomainBase)x.Vendedor).Id, + tipovendedor = ((DomainBase)x.TipoVendedor).Id + }; + BaseDialogViewModel viewmodel = new BaseDialogViewModel(); + if (source.Any(g => g.Count() > 1)) + { + Documento documento = parcela.Documento; + object obj; + if (!string.IsNullOrWhiteSpace((documento != null) ? documento.Apolice : null)) + { + Documento documento2 = parcela.Documento; + obj = ((documento2 != null) ? documento2.Proposta : null); + } + else + { + Documento documento3 = parcela.Documento; + obj = ((documento3 != null) ? documento3.Apolice : null); + } + string arg = (string)obj; + await viewmodel.ShowMessage($"HÁ VENDEDORES DUPLICADOS PARA A PARCELA {parcela.NumeroParcela} DO DOCUMENTO {arg}, BAIXA DE COMISSÃO INTERROMPIDA.{Environment.NewLine}REALIZE A CORREÇÃO DOS VENDEDORES E TENTE NOVAMENTE."); + parcela.DataRecebimento = null; + parcela.ValorComissao = 0m; + parcela.ValorComDesconto = 0m; + parcela.Irr = 0m; + parcela.Iss = 0m; + parcela.Outros = 0m; + parcela.Desconto = 0m; + return parcela; + } + DateTime now = GetNetworkTime(); + if ((int)parcela.SubTipo == 1 && (int)parcela.Documento.TipoRecebimento.GetValueOrDefault() == 1) + { + decimal num = (parcela.Documento.AdicionalComiss ? (parcela.Documento.PremioLiquido + parcela.Documento.PremioAdicional) : parcela.Documento.PremioLiquido); + decimal comissaoPrevista = num * parcela.Documento.Comissao * 0.01m; + decimal comissaoRecebida = parcelas.Where((Parcela x) => (int)x.SubTipo == 1 && x.DataRecebimento.HasValue).Sum((Parcela x) => x.ValorComissao); + decimal diferenca = Math.Abs(comissaoPrevista) - Math.Abs(comissaoRecebida); + bool flag = diferenca <= tolerancia || diferenca < 0.01m; + bool baixarProximas = (int)parcela.Documento.TipoRecebimento.GetValueOrDefault() == 1 && flag; + bool esgotarParcelas = true; + if (baixarProximas && Recursos.Configuracoes.Any((ConfiguracaoSistema c) => (int)c.Configuracao == 54)) + { + Parcela obj2 = parcela; + object obj3; + if (obj2 == null) + { + obj3 = null; + } + else + { + Documento documento4 = obj2.Documento; + if (documento4 == null) + { + obj3 = null; + } + else + { + Controle controle = documento4.Controle; + if (controle == null) + { + obj3 = null; + } + else + { + Cliente cliente = controle.Cliente; + obj3 = ((cliente != null) ? cliente.Nome : null); + } + } + } + if (obj3 == null) + { + obj3 = string.Empty; + } + string text = (string)obj3; + if (string.IsNullOrEmpty(text)) + { + Documento documento5 = parcela.Documento; + int num2; + if (documento5 == null) + { + num2 = 0; + } + else + { + Controle controle2 = documento5.Controle; + long? obj4; + if (controle2 == null) + { + obj4 = null; + } + else + { + Cliente cliente2 = controle2.Cliente; + obj4 = ((cliente2 != null) ? new long?(((DomainBase)cliente2).Id) : null); + } + num2 = ((obj4 > 0) ? 1 : 0); + } + if (num2 != 0) + { + Cliente obj5 = await new ClienteServico().BuscarClienteAsync(((DomainBase)parcela.Documento.Controle.Cliente).Id); + text = ((obj5 != null) ? obj5.Nome : null) ?? string.Empty; + } + } + if (!string.IsNullOrEmpty(text)) + { + text = ", DO CLIENTE " + text; + } + Parcela obj6 = parcela; + object obj7; + if (obj6 == null) + { + obj7 = null; + } + else + { + Documento documento6 = obj6.Documento; + obj7 = ((documento6 != null) ? documento6.Apolice : null); + } + if (obj7 == null) + { + obj7 = string.Empty; + } + string text2 = (string)obj7; + if (!string.IsNullOrEmpty(text2)) + { + text2 = " - APÓLICE " + text2; + } + if (parcela.Documento.NumeroParcelas != (decimal)parcela.NumeroParcela) + { + bool flag2; + baixarProximas = (flag2 = await viewmodel.ShowMessage($"AINDA RESTA {diferenca:c}{text}{text2} QUE NÃO SERÁ REPASSADO, CONTINUAR A BAIXA POR ESGOTAMENTO?", "SIM, BAIXAR POR ESGOMENTO", "NÃO")); + esgotarParcelas = flag2; + } + } + List<VendedorParcela> list = repasses.Where(delegate(VendedorParcela x) + { + //IL_002d: Unknown result type (might be due to invalid IL or missing references) + //IL_0033: Invalid comparison between Unknown and I4 + if (((DomainBase)x.Parcela).Id == ((DomainBase)parcela).Id) + { + Repasse repasse4 = x.Repasse; + if (repasse4 != null && (int)repasse4.Forma.GetValueOrDefault() == 1) + { + return !x.DataPagamento.HasValue; + } + } + return false; + }).ToList(); + List<VendedorParcela> demaisRepasses = new List<VendedorParcela>(); + Parcela proximaParcela = ((IEnumerable<Parcela>)parcelas).FirstOrDefault((Func<Parcela, bool>)((Parcela x) => (int)x.SubTipo == 1 && x.NumeroParcela == parcela.NumeroParcela + 1)); + Parcela parcela2 = parcela; + ExtensionMethods.ForEach(from g in list + group g by new + { + Id = ((DomainBase)g.Parcela).Id, + vendedor = ((DomainBase)g.Vendedor).Id, + tipovendedor = ((DomainBase)g.TipoVendedor).Id + }, x => + { + //IL_00ba: Unknown result type (might be due to invalid IL or missing references) + //IL_00bf: Unknown result type (might be due to invalid IL or missing references) + //IL_00d0: Unknown result type (might be due to invalid IL or missing references) + //IL_00dc: Unknown result type (might be due to invalid IL or missing references) + //IL_00ed: Unknown result type (might be due to invalid IL or missing references) + //IL_00ff: Unknown result type (might be due to invalid IL or missing references) + //IL_0110: Unknown result type (might be due to invalid IL or missing references) + //IL_0121: Unknown result type (might be due to invalid IL or missing references) + //IL_0132: Unknown result type (might be due to invalid IL or missing references) + //IL_0143: Unknown result type (might be due to invalid IL or missing references) + //IL_0155: Expected O, but got Unknown + if (!x.First().CoCorretagem) + { + decimal valueOrDefault = x.First().ValorRepasse.GetValueOrDefault(); + decimal num4 = CalculaPagamento(x.First(), parcela2, comissaoPrevista); + x.First().ValorRepasse = ((Math.Abs(valueOrDefault) > Math.Abs(num4)) ? num4 : valueOrDefault); + x.First().DataPrePagamento = parcela2.DataRecebimento; + if ((!esgotarParcelas || !(Math.Abs(comissaoPrevista) - Math.Abs(comissaoRecebida) <= Math.Abs(tolerancia))) && proximaParcela != null) + { + VendedorParcela item = new VendedorParcela + { + Repasse = x.First().Repasse, + Parcela = proximaParcela, + Documento = parcela2.Documento, + ValorRepasse = valueOrDefault - num4, + Vendedor = x.First().Vendedor, + ValorTotal = x.First().ValorTotal, + PorcentagemRepasse = x.First().PorcentagemRepasse, + TipoVendedor = x.First().TipoVendedor, + CoCorretagem = x.First().CoCorretagem + }; + demaisRepasses.Add(item); + } + } + }); + if (demaisRepasses.Count > 0) + { + list.AddRange(demaisRepasses); + } + if (!(await servico.SaveRange(list))) + { + await MostrarErro((TipoErro)24); + return parcela; + } + Parcela val = await servico.Save(parcela, parcelas, null, abrirTela: false); + parcela = val; + if (!servico.Sucesso) + { + await MostrarErro((TipoErro)24); + return parcela; + } + if (baixarProximas) + { + List<Parcela> list2 = parcelas.Where((Parcela x) => !x.DataRecebimento.HasValue && (int)x.SubTipo == 1).ToList(); + List<VendedorParcela> baixarRepasses = new List<VendedorParcela>(); + list2.ForEach(delegate(Parcela x) + { + x.Documento = parcela.Documento; + x.DataRecebimento = parcela.DataRecebimento; + x.DataCredito = parcela.DataRecebimento; + x.ValorRealizado = 0m; + x.ValorComissao = 0m; + x.ValorComDesconto = 0m; + x.Irr = 0m; + x.Iss = 0m; + List<VendedorParcela> list4 = repasses.Where(delegate(VendedorParcela p) + { + //IL_002d: Unknown result type (might be due to invalid IL or missing references) + //IL_0033: Invalid comparison between Unknown and I4 + //IL_004b: Unknown result type (might be due to invalid IL or missing references) + //IL_0051: Invalid comparison between Unknown and I4 + if (((DomainBase)p.Parcela).Id == ((DomainBase)x).Id) + { + Repasse repasse2 = p.Repasse; + if (repasse2 != null && (int)repasse2.Forma.GetValueOrDefault() == 1) + { + Repasse repasse3 = p.Repasse; + if (repasse3 == null) + { + return true; + } + return (int)repasse3.Tipo.GetValueOrDefault() != 3; + } + } + return false; + }).ToList(); + list4.ForEach(delegate(VendedorParcela p) + { + p.Parcela = x; + p.Documento = parcela.Documento; + p.DataPrePagamento = now; + decimal? valorRepasse = p.ValorRepasse; + decimal num3 = tolerancia; + p.ValorRepasse = (((valorRepasse.GetValueOrDefault() > num3) & valorRepasse.HasValue) ? new decimal?(default(decimal)) : p.ValorRepasse); + }); + baixarRepasses.AddRange(list4); + }); + await servico.SaveRange(parcelas); + if (!servico.Sucesso) + { + await MostrarErro((TipoErro)24); + return parcela; + } + if (!(await servico.SaveRange(baixarRepasses))) + { + await MostrarErro((TipoErro)24); + return parcela; + } + } + } + else + { + List<VendedorParcela> list3 = repasses.Where(delegate(VendedorParcela x) + { + //IL_004a: Unknown result type (might be due to invalid IL or missing references) + //IL_0050: Invalid comparison between Unknown and I4 + if (((DomainBase)x.Parcela).Id == ((DomainBase)parcela).Id && !x.DataPagamento.HasValue) + { + if (x == null) + { + return false; + } + Repasse repasse = x.Repasse; + return (int)((repasse != null) ? repasse.Forma : null).GetValueOrDefault() == 1; + } + return false; + }).ToList(); + list3.ForEach(delegate(VendedorParcela x) + { + x.DataPrePagamento = parcela.DataRecebimento; + x.ValorRepasse = CalculaRepasse(x.Repasse, parcela, apolice: false); + }); + parcela = await servico.Save(parcela, parcelas, list3, abrirTela: false); + if (!servico.Sucesso) + { + await MostrarErro((TipoErro)24); + return parcela; + } + } + if (!comissaoAuto) + { + RegistrarLogBaixa(((DomainBase)parcela.Documento).Id, now); + } + return parcela; + } + + private static async void RegistrarLogBaixa(long id, DateTime now) + { + ApoliceServico apoliceServico = new ApoliceServico(); + ParcelaServico parcelaServico = new ParcelaServico(); + VendedorServico vendedoresServico = new VendedorServico(); + Documento apolice = await apoliceServico.BuscarApoliceAsync(id); + Documento val = apolice; + val.Parcelas = await parcelaServico.BuscarParcelasAsync(((DomainBase)apolice).Id); + List<VendedorParcela> list = await vendedoresServico.BuscaRepasse(((DomainBase)apolice).Id); + foreach (Parcela parcela in apolice.Parcelas) + { + foreach (VendedorParcela item in list) + { + if (((DomainBase)item.Parcela).Id == ((DomainBase)parcela).Id) + { + if (parcela.Vendedores == null) + { + parcela.Vendedores = new ObservableCollection<VendedorParcela>(); + } + parcela.Vendedores.Add(item); + } + } + } + IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); + RegistroLog val2 = new RegistroLog + { + Acao = (TipoAcao)1, + Usuario = Recursos.Usuario, + DataHora = now, + Descricao = JsonConvert.SerializeObject((object)apolice, new JsonSerializerSettings + { + ReferenceLoopHandling = (ReferenceLoopHandling)1 + }), + EntidadeId = ((DomainBase)apolice).Id, + Tela = (TipoTela)2, + NomeMaquina = Environment.MachineName, + UsuarioMaquina = Environment.UserName, + Ip = hostEntry.AddressList.FirstOrDefault((IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork)?.ToString() + }; + UnitOfWork commited = Instancia.Commited; + try + { + commited.RegistroLogRepository.SaveOrUpdate(val2); + ((GenericUnitOfWork)commited).Commit(); + } + finally + { + ((IDisposable)commited)?.Dispose(); + } + } + + public static async Task MostrarErro(TipoErro erro) + { + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + //IL_000f: Unknown result type (might be due to invalid IL or missing references) + await ((DispatcherObject)Application.Current).Dispatcher.BeginInvoke((DispatcherPriority)4, (Delegate)(Action)delegate + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + ((Window)new ErrorWindow(erro, fecharSistema: true)).ShowDialog(); + }); + } + + public static async Task RecusarApolice(Documento documento, string motivo, bool estorno) + { + ApoliceServico servico = new ApoliceServico(); + CriticaApoliceServico criticaServico = new CriticaApoliceServico(); + string label = ((documento.Tipo == 0 && string.IsNullOrEmpty(documento.Apolice)) ? "PROPOSTA RECUSADA" : ((documento.Tipo == 0 && !string.IsNullOrEmpty(documento.Apolice)) ? "APÓLICE RECUSADA" : "ENDOSSO RECUSADO")); + if (!string.IsNullOrWhiteSpace(motivo)) + { + documento.Observacao = $"{Recursos.Usuario.Nome}, ID: {((DomainBase)Recursos.Usuario).Id}, {GetNetworkTime():g}{Environment.NewLine}RECUSA: {motivo}{Environment.NewLine}{Environment.NewLine}{documento.Observacao}"; + } + bool flag; + if (documento.Tipo == 0) + { + await servico.Save(documento, updateParcelas: false, criarParcelas: false); + Controle controle = await servico.BuscarControleAsync(((DomainBase)documento.Controle).Id); + if (((DomainBase)controle).Id == 0L) + { + return; + } + foreach (Documento documento2 in controle.Documentos) + { + if (!documento2.NegocioCorretora.HasValue) + { + documento2.NegocioCorretora = (NegocioCorretora)((documento2.Negocio.HasValue && (int)documento2.Negocio.GetValueOrDefault() == 1) ? 1 : 0); + } + documento2.Situacao = (TipoSeguro)7; + documento2.Apolice = "RECUSADA"; + if (!(await servico.BaixarParcelasCancelamento(documento2, estorno))) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + } + } + flag = await servico.UpdateRange(controle); + } + else + { + if (!documento.NegocioCorretora.HasValue) + { + documento.NegocioCorretora = (NegocioCorretora)((documento.Negocio.HasValue && (int)documento.Negocio.GetValueOrDefault() == 1) ? 1 : 0); + } + documento.Situacao = (TipoSeguro)7; + documento.Apolice = "RECUSADA"; + documento.Endosso = "RECUSADA"; + if (!(await servico.BaixarParcelasCancelamento(documento, estorno))) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + } + await servico.Save(documento, updateParcelas: false, criarParcelas: false); + if (!servico.Sucesso) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + } + if (!servico.Sucesso) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + } + flag = await InativarItens(((DomainBase)documento).Id, ((DomainBase)documento.Controle.Ramo).Id, delete: false); + if (!flag) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + } + } + if (!flag) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + } + List<CriticaApolice> list = await criticaServico.BuscarCritica(((DomainBase)documento).Id); + if (list != null) + { + foreach (CriticaApolice item in list) + { + item.Critica = true; + await criticaServico.Save(item); + } + } + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + ToggleSnackBar(label + " COM SUCESSO"); + } + + public static void ToggleSnackBar(string message, bool active = true) + { + ((ContentControl)App.SnackBar.Message).Content = message; + App.SnackBar.IsActive = active; + if (active) + { + Task.Factory.StartNew(CloseSlackBar); + } + } + + private static void CloseSlackBar() + { + Thread.Sleep(5000); + Dispatcher dispatcher = ((DispatcherObject)App.ProgressRing).Dispatcher; + if (dispatcher != null) + { + dispatcher.BeginInvoke((DispatcherPriority)4, (Delegate)(Action)delegate + { + ToggleSnackBar("", active: false); + }); + } + } + + public static decimal CalculaRepasse(Repasse repasse, Parcela parcela, bool apolice = true) + { + //IL_0018: Unknown result type (might be due to invalid IL or missing references) + //IL_001e: Invalid comparison between Unknown and I4 + //IL_00e9: Unknown result type (might be due to invalid IL or missing references) + //IL_00ef: Invalid comparison between Unknown and I4 + //IL_0036: Unknown result type (might be due to invalid IL or missing references) + //IL_003c: Invalid comparison between Unknown and I4 + //IL_0042: Unknown result type (might be due to invalid IL or missing references) + //IL_0048: Invalid comparison between Unknown and I4 + //IL_010b: Unknown result type (might be due to invalid IL or missing references) + //IL_0111: Invalid comparison between Unknown and I4 + //IL_0170: Unknown result type (might be due to invalid IL or missing references) + //IL_0176: Invalid comparison between Unknown and I4 + //IL_018e: Unknown result type (might be due to invalid IL or missing references) + //IL_0194: Invalid comparison between Unknown and I4 + //IL_01ca: Unknown result type (might be due to invalid IL or missing references) + //IL_01d0: Invalid comparison between Unknown and I4 + //IL_01e9: Unknown result type (might be due to invalid IL or missing references) + //IL_01ef: Invalid comparison between Unknown and I4 + //IL_0280: Unknown result type (might be due to invalid IL or missing references) + //IL_0286: Invalid comparison between Unknown and I4 + //IL_0289: Unknown result type (might be due to invalid IL or missing references) + //IL_028f: Invalid comparison between Unknown and I4 + //IL_02a0: Unknown result type (might be due to invalid IL or missing references) + //IL_02a6: Invalid comparison between Unknown and I4 + if (repasse == null) + { + return 0m; + } + bool flag = (int)parcela.Documento.NegocioCorretora.GetValueOrDefault() == 1; + decimal num2; + decimal num3; + decimal num; + if (apolice && (int)parcela.Documento.TipoRecebimento.GetValueOrDefault() != 2 && (int)parcela.SubTipo == 1) + { + num = (parcela.Documento.AdicionalComiss ? (parcela.Documento.PremioLiquido + parcela.Documento.PremioAdicional) : parcela.Documento.PremioLiquido); + num2 = (parcela.Documento.AdicionalComiss ? (parcela.Documento.PremioLiquido + parcela.Documento.PremioAdicional) : parcela.Documento.PremioLiquido); + num3 = parcela.Documento.Comissao * 0.01m; + } + else + { + decimal num4 = (((int)parcela.Documento.TipoRecebimento.GetValueOrDefault() == 2) ? parcela.ValorLiquidoFatura : parcela.Valor); + num = (((int)repasse.Incidencia.GetValueOrDefault() == 2) ? num4 : ((parcela.ValorComDesconto == 0m) ? num4 : parcela.ValorComDesconto)); + num2 = num; + num3 = ((parcela.ValorComDesconto == 0m) ? (parcela.Comissao * 0.01m) : 1m); + } + num = (((int)repasse.Incidencia.GetValueOrDefault() == 2) ? num : (num * num3)); + num = (((int)repasse.Tipo.GetValueOrDefault() == 1) ? num : (num * (flag ? repasse.ValorRenovacao : repasse.ValorNovo) * 0.01m)); + decimal num5 = (((int)repasse.Incidencia.GetValueOrDefault() == 2) ? num2 : (num2 * num3)); + decimal num6; + if ((int)repasse.Tipo.GetValueOrDefault() == 1) + { + num6 = (flag ? repasse.ValorRenovacao : repasse.ValorNovo); + if (Recursos.Configuracoes.Any((ConfiguracaoSistema x) => (int)x.Configuracao == 24) && parcela.Valor < 0m) + { + num6 = -num6; + } + } + else + { + num6 = num5 * (flag ? repasse.ValorRenovacao : repasse.ValorNovo) * 0.01m; + } + if ((int)parcela.Documento.TipoRecebimento.GetValueOrDefault() != 2 && (int)parcela.SubTipo == 1 && (int)parcela.Documento.TipoEndosso.GetValueOrDefault() != 2) + { + if (Math.Abs(num6) > Math.Abs(num)) + { + new BaseDialogViewModel().ShowMessage("OS VALORES DE REPASSE ULTRAPASSARAM O VALOR DE COMISSÃO FECHADA. REVEJA OS VALORES."); + } + if (!(Math.Abs(num6) > Math.Abs(num))) + { + return num6; + } + return num; + } + if (!(parcela.ValorComDesconto != 0m) || !(Math.Abs(num6) > Math.Abs(parcela.ValorComDesconto)) || !Recursos.Configuracoes.All((ConfiguracaoSistema x) => (int)x.Configuracao != 15)) + { + return num6; + } + return parcela.ValorComDesconto; + } + + public static async Task<Parcela> ExcluirBaixa(Parcela parcela, List<VendedorParcela> repasses, List<Parcela> parcelas = null) + { + ParcelaServico servico = new ParcelaServico(); + if ((int)parcela.SubTipo == 1 && (int)parcela.Documento.TipoRecebimento.GetValueOrDefault() == 1) + { + List<VendedorParcela> source = repasses.Where(delegate(VendedorParcela x) + { + //IL_0006: Unknown result type (might be due to invalid IL or missing references) + //IL_000c: Invalid comparison between Unknown and I4 + //IL_0023: Unknown result type (might be due to invalid IL or missing references) + //IL_0029: Invalid comparison between Unknown and I4 + if ((int)x.Parcela.SubTipo == 1) + { + Repasse repasse4 = x.Repasse; + if (repasse4 != null && (int)repasse4.Forma.GetValueOrDefault() == 1) + { + if (((DomainBase)x.Parcela).Id != ((DomainBase)parcela).Id) + { + return !x.DataPrePagamento.HasValue; + } + return true; + } + } + return false; + }).ToList(); + decimal comiss = (parcela.Documento.PremioLiquido + (parcela.Documento.AdicionalComiss ? parcela.Documento.PremioAdicional : 0m)) * parcela.Documento.Comissao * 0.01m; + List<VendedorParcela> refazerRepasses = (from x in source + group x by ((DomainBase)x.Vendedor).Id).Select((Func<IGrouping<long, VendedorParcela>, VendedorParcela>)delegate(IGrouping<long, VendedorParcela> x) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0005: Unknown result type (might be due to invalid IL or missing references) + //IL_0016: Unknown result type (might be due to invalid IL or missing references) + //IL_0027: Unknown result type (might be due to invalid IL or missing references) + //IL_003d: Unknown result type (might be due to invalid IL or missing references) + //IL_0067: Unknown result type (might be due to invalid IL or missing references) + //IL_006d: Invalid comparison between Unknown and I4 + //IL_013e: Unknown result type (might be due to invalid IL or missing references) + //IL_014f: Unknown result type (might be due to invalid IL or missing references) + //IL_0160: Unknown result type (might be due to invalid IL or missing references) + //IL_0171: Unknown result type (might be due to invalid IL or missing references) + //IL_0183: Expected O, but got Unknown + VendedorParcela val2 = new VendedorParcela + { + Repasse = x.First().Repasse, + Parcela = parcela, + Documento = parcela.Documento + }; + VendedorParcela obj = x.First(); + decimal? valorTotal; + if (obj != null) + { + Repasse repasse3 = obj.Repasse; + if ((int)((repasse3 != null) ? repasse3.Tipo : null).GetValueOrDefault() == 3) + { + valorTotal = x.First().ValorRepasse; + goto IL_0139; + } + } + VendedorParcela obj2 = x.First(); + if (obj2 == null || !obj2.ValorTotal.HasValue) + { + goto IL_00d5; + } + VendedorParcela obj3 = x.First(); + decimal? valorTotal2; + if (obj3 != null) + { + valorTotal2 = obj3.ValorTotal; + if ((valorTotal2.GetValueOrDefault() == default(decimal)) & valorTotal2.HasValue) + { + goto IL_00d5; + } + } + VendedorParcela obj4 = x.First(); + valorTotal = ((obj4 != null) ? obj4.ValorTotal : null); + goto IL_0139; + IL_0139: + val2.ValorTotal = valorTotal; + val2.Vendedor = x.First().Vendedor; + val2.PorcentagemRepasse = x.First().PorcentagemRepasse; + val2.TipoVendedor = x.First().TipoVendedor; + val2.CoCorretagem = x.First().CoCorretagem; + return val2; + IL_00d5: + decimal value = comiss; + valorTotal2 = x.First().PorcentagemRepasse; + valorTotal = (decimal?)value * valorTotal2 * (decimal?)0.01m; + goto IL_0139; + }).ToList(); + List<Parcela> parcelasAnteriores = ((parcelas != null) ? parcelas.Where((Parcela x) => (int)x.SubTipo == 1 && x.NumeroParcela < parcela.NumeroParcela).ToList() : new List<Parcela>()); + refazerRepasses.ForEach(delegate(VendedorParcela y) + { + y.ValorRepasse = y.ValorTotal - repasses.Where(delegate(VendedorParcela x) + { + //IL_0006: Unknown result type (might be due to invalid IL or missing references) + //IL_000c: Invalid comparison between Unknown and I4 + //IL_0026: Unknown result type (might be due to invalid IL or missing references) + //IL_002c: Invalid comparison between Unknown and I4 + if ((int)x.Parcela.SubTipo == 1) + { + Repasse repasse2 = x.Repasse; + if (repasse2 != null && (int)repasse2.Forma.GetValueOrDefault() == 1 && ((DomainBase)x.Vendedor).Id == ((DomainBase)y.Vendedor).Id) + { + return parcelasAnteriores.Select((Parcela z) => ((DomainBase)z).Id).ToList().Contains(((DomainBase)x.Parcela).Id); + } + } + return false; + }).Sum((VendedorParcela x) => x.ValorRepasse); + }); + List<Parcela> demaisParcelas3 = ((parcelas != null) ? parcelas.Where((Parcela x) => (int)x.SubTipo == 1 && x.NumeroParcela > parcela.NumeroParcela).ToList() : new List<Parcela>()); + demaisParcelas3.Add(parcela); + List<VendedorParcela> repasses2 = repasses.Where(delegate(VendedorParcela x) + { + //IL_0006: Unknown result type (might be due to invalid IL or missing references) + //IL_000c: Invalid comparison between Unknown and I4 + //IL_0023: Unknown result type (might be due to invalid IL or missing references) + //IL_0029: Invalid comparison between Unknown and I4 + if ((int)x.Parcela.SubTipo == 1) + { + Repasse repasse = x.Repasse; + if (repasse != null && (int)repasse.Forma.GetValueOrDefault() == 1) + { + if (x.Parcela.NumeroParcela < parcela.NumeroParcela) + { + return !x.DataPrePagamento.HasValue; + } + return true; + } + } + return false; + }).ToList(); + if (!(await servico.DeletePagamentoRange(repasses2))) + { + await MostrarErro((TipoErro)191); + return parcela; + } + if (!(await servico.SaveRange(refazerRepasses))) + { + await MostrarErro((TipoErro)191); + return parcela; + } + demaisParcelas3 = demaisParcelas3.Where((Parcela dParcela) => dParcela.ValorComissao != 0m || dParcela.ValorComissao != 0m || dParcela.DataRecebimento.HasValue || dParcela.DataCredito.HasValue || dParcela.ValorRealizado != 0m).ToList(); + if (demaisParcelas3 != null && demaisParcelas3.Count > 0) + { + demaisParcelas3.ForEach(delegate(Parcela dParcela) + { + dParcela.Documento = parcela.Documento; + dParcela.ValorComissao = 0m; + dParcela.ValorComDesconto = 0m; + dParcela.DataRecebimento = null; + dParcela.DataCredito = null; + dParcela.ValorRealizado = 0m; + }); + demaisParcelas3 = await servico.UpdateRange(demaisParcelas3); + if (!servico.Sucesso) + { + await MostrarErro((TipoErro)191); + return parcela; + } + parcela = ((IEnumerable<Parcela>)demaisParcelas3).FirstOrDefault((Func<Parcela, bool>)((Parcela x) => ((DomainBase)x).Id == ((DomainBase)parcela).Id)); + } + } + else + { + List<VendedorParcela> list = repasses.Where((VendedorParcela x) => ((DomainBase)x.Parcela).Id == ((DomainBase)parcela).Id && !x.DataPagamento.HasValue).ToList(); + list.ForEach(delegate(VendedorParcela x) + { + x.DataPrePagamento = null; + x.ValorRepasse = x.ValorTotal ?? CalculaPagamento(x, x.Parcela, 0m); + }); + parcela.ValorComissao = 0m; + parcela.ValorComDesconto = 0m; + parcela.DataRecebimento = null; + parcela.DataCredito = null; + parcela.ValorRealizado = 0m; + parcela = await servico.Save(parcela, parcelas, list, abrirTela: false); + if (!servico.Sucesso) + { + await MostrarErro((TipoErro)191); + return parcela; + } + } + ApoliceServico apoliceServico = new ApoliceServico(); + ParcelaServico parcelaServico = new ParcelaServico(); + VendedorServico vendedoresServico = new VendedorServico(); + if (parcela != null) + { + Documento apolice = await apoliceServico.BuscarApoliceAsync(((DomainBase)parcela.Documento).Id); + Documento val = apolice; + val.Parcelas = await parcelaServico.BuscarParcelasAsync(((DomainBase)apolice).Id); + List<VendedorParcela> list2 = await vendedoresServico.BuscaRepasse(((DomainBase)apolice).Id); + foreach (Parcela parcela2 in apolice.Parcelas) + { + foreach (VendedorParcela item in list2) + { + if (((DomainBase)item.Parcela).Id == ((DomainBase)parcela2).Id) + { + if (parcela2.Vendedores == null) + { + parcela2.Vendedores = new ObservableCollection<VendedorParcela>(); + } + parcela2.Vendedores.Add(item); + } + } + } + IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); + RegistroLog registroLog = new RegistroLog + { + Acao = (TipoAcao)2, + Usuario = Recursos.Usuario, + DataHora = GetNetworkTime(), + Descricao = JsonConvert.SerializeObject((object)apolice, new JsonSerializerSettings + { + ReferenceLoopHandling = (ReferenceLoopHandling)1 + }), + EntidadeId = ((DomainBase)apolice).Id, + Tela = (TipoTela)2, + NomeMaquina = Environment.MachineName, + UsuarioMaquina = Environment.UserName, + Ip = hostEntry.AddressList.FirstOrDefault((IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork)?.ToString() + }; + await Task.Run(delegate + { + UnitOfWork commited = Instancia.Commited; + try + { + commited.RegistroLogRepository.SaveOrUpdate(registroLog); + ((GenericUnitOfWork)commited).Commit(); + } + finally + { + ((IDisposable)commited)?.Dispose(); + } + }); + } + return parcela; + } + + public static void DatePicker_OnLostKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + //IL_0006: Unknown result type (might be due to invalid IL or missing references) + DatePicker val = (DatePicker)sender; + val.Text = ValidationHelper.FormatDate(val.Text); + } + + public static void DatePicker_PreviewKeyDown(object sender, KeyEventArgs e) + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + //IL_0007: Invalid comparison between Unknown and I4 + //IL_000b: Unknown result type (might be due to invalid IL or missing references) + if ((int)e.Key == 6) + { + ((DatePicker)sender).Text = GetNetworkTime().Date.ToString("dd/MM/yyyy"); + } + } + + public static async Task OrganizarDocumentos(long id) + { + ApoliceServico servico = new ApoliceServico(); + Controle val = await servico.BuscarControleAsync(id); + int ordem = 1; + (from x in val.Documentos + where !x.Excluido + orderby x.Vigencia1 + select x).ToList().ForEach(delegate(Documento x) + { + if (x.Tipo == 0) + { + x.Ordem = 0; + } + else + { + x.Ordem = ordem; + ordem++; + } + }); + await servico.UpdateRange(val); + } + + public static async Task<bool> ReativarItens(List<long> ids) + { + ItemServico servico = new ItemServico(); + List<Item> list = await servico.BuscarItems(ids); + list.ForEach(delegate(Item x) + { + x.Substituido = null; + x.Cancelado = false; + x.Status = x.StatusInclusao; + }); + await servico.SaveRange(list); + return servico.Sucesso; + } + + public static async Task<bool> InativarItens(long id, long ramo, bool delete = true) + { + ItemServico servico = new ItemServico(); + ObservableCollection<Item> itens = await servico.BuscarItens(id); + if (!(await ReativarItens((from x in itens + where x.Substituicao.HasValue + select x.Substituicao.Value).ToList()))) + { + return false; + } + if (delete) + { + await servico.DeleteRange(itens.ToList(), ramo); + } + else + { + itens.ToList().ForEach(delegate(Item x) + { + x.Cancelado = true; + }); + await servico.SaveRange(itens.ToList()); + } + return servico.Sucesso; + } + + public static string ExportarHtml(TipoRelatorio tipo, string dados, string porcentagem = "60", string orientation = "landscape", bool search = false, string grafico = "") + { + string newValue = $"DATA DE EMISSÃO DO RELATÓRIO EM {GetNetworkTime():G}"; + if (tipo.Inicio != DateTime.MinValue && tipo.Nome != "RELATÓRIO DE CLIENTE") + { + newValue = $"PERÍODO DE {tipo.Inicio:d} ATÉ {tipo.Fim:d}. DATA DE EMISSÃO DO RELATÓRIO EM {GetNetworkTime():G}"; + } + string newValue2 = ((!search) ? "<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css' integrity='sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC' crossorigin='anonymous'>" : "<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css' integrity='sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm' crossorigin='anonymous'>"); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(Resources.RelatorioTemplate.Replace("{style}", newValue2).Replace("Orientation", orientation).Replace("{NomeRelatorio}", Recursos.Empresa.NomeSocial + " - " + tipo.Nome) + .Replace("{EmissaoRelatorio}", newValue) + .Replace("{Grafico}", grafico) + .Replace("{DadosRelatorio}", dados)); + return stringBuilder.ToString(); + } + + public static string ExportarMultipleHtml(TipoRelatorio tipo, string dados, string porcentagem = "60", string orientation = "landscape", bool search = false, string grafico = "") + { + string newValue = $"DATA DE EMISSÃO DO RELATÓRIO EM {GetNetworkTime():G}"; + if (tipo.Inicio != DateTime.MinValue && tipo.Nome != "RELATÓRIO DE CLIENTE") + { + newValue = $"PERÍODO DE {tipo.Inicio:d} ATÉ {tipo.Fim:d}. DATA DE EMISSÃO DO RELATÓRIO EM {GetNetworkTime():G}"; + } + string newValue2 = ((!search) ? "<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css' integrity='sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC' crossorigin='anonymous'>" : "<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css' integrity='sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm' crossorigin='anonymous'>"); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(Resources.RelatorioMultipleTemplate.Replace("{style}", newValue2).Replace("Orientation", orientation).Replace("{NomeRelatorio}", Recursos.Empresa.NomeSocial + " - " + tipo.Nome) + .Replace("{EmissaoRelatorio}", newValue) + .Replace("{Grafico}", grafico) + .Replace("{DadosRelatorio}", dados)); + return stringBuilder.ToString(); + } + + public static string CriarRecibo(Vendedor vendedor, decimal valor, Filtros filtro, bool segundavia) + { + string text = (segundavia ? " acima listados" : $" no periodo de {filtro.Inicio:d} até {filtro.Fim:d}"); + string text2 = "CPF"; + if (vendedor.Documento != null && ValidationHelper.OnlyNumber(vendedor.Documento).Length > 12) + { + text2 = "CNPJ"; + } + return $" <div class='card'>\r\n <h5 class='card-header'>RECIBO DE PAGAMENTO</h5>\r\n <div class='card-body'>\r\n <h5 class='card-title'>Declaração de recebimento de Comissão</h5>\r\n <p class='card-text'>Eu {vendedor.Nome}, portador(a) do {text2} {vendedor.Documento} declaro que recebi de {Recursos.Empresa.Nome} o valor de {valor:c} referente a comissão dos seguros{text}.</p>\r\n\r\n <p class='card-text'>Para maior clareza firmo(a) o presente recibo para que produza os seus efeitos, dando plena, rasa e irrevogável quitação, pelo valor recebido.</p>\r\n\r\n <p class='card-text'>_____________________________________________________________ </br> {GetNetworkTime().Date:d}</p>\r\n </div>\r\n </div>"; + } + + public static string CreateCard(string title, string body, bool pageBreak = false) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append(pageBreak ? "<div class='card p-0' style='page-break-after:always;'>" : "<div class='card p-0'>"); + stringBuilder.Append("<div class='card-body'>"); + stringBuilder.Append("<h5 class='card-title'>" + title + "</h5>"); + stringBuilder.Append(body); + stringBuilder.Append("</div>"); + stringBuilder.Append("</div>"); + return stringBuilder.ToString(); + } + + public static async Task<string> GenerateTableSintetic(List<SinteticModel> sintetic, int fontSize = 0) + { + if (sintetic == null || sintetic.Count == 0) + { + return ""; + } + string classSize = ((fontSize == 0) ? "" : $"fs-{fontSize}'"); + return await Task.Run(delegate + { + StringBuilder stringBuilder = new StringBuilder(); + StringBuilder stringBuilder2 = new StringBuilder(); + StringBuilder headerContent = new StringBuilder(); + StringBuilder stringBuilder3 = new StringBuilder(); + StringBuilder content = new StringBuilder(); + sintetic.ForEach(delegate(SinteticModel x) + { + headerContent.Append(Resources.HeaderTemplate.Replace("{Align}", "text-center").Replace("{Size}", classSize).Replace("{FontWeight}", "fw-bold") + .Replace("{Content}", x.Hint)); + content.Append(Resources.ColumnTemplate.Replace("{Align}", "text-center").Replace("{Size}", classSize).Replace("{FontWeight}", "") + .Replace("{Content}", (x.Value == null) ? "" : x.Value.ToString())); + }); + stringBuilder2.Append(Resources.RowTemplate.Replace("{Content}", headerContent.ToString()).Replace("{Color}", "")); + stringBuilder3.Append(Resources.RowTemplate.Replace("{Content}", content.ToString()).Replace("{Color}", "")); + stringBuilder.Append(Resources.TableTemplate.Replace("{Head}", stringBuilder2.ToString()).Replace("{Body}", stringBuilder3.ToString()).Replace("{Footer}", "")); + return stringBuilder.ToString(); + }); + } + + public static async Task<string> GenerateTableSintetic(List<SinteticModelList> sintetic, int fontSize = 0) + { + if (sintetic == null || sintetic.Count == 0) + { + return ""; + } + string classSize = ((fontSize == 0) ? "" : $"fs-{fontSize}'"); + return await Task.Run(delegate + { + StringBuilder stringBuilder = new StringBuilder(); + StringBuilder stringBuilder2 = new StringBuilder(); + StringBuilder headerContent = new StringBuilder(); + StringBuilder stringBuilder3 = new StringBuilder(); + sintetic.ForEach(delegate(SinteticModelList x) + { + headerContent.Append(Resources.HeaderTemplate.Replace("{Align}", "text-center").Replace("{Size}", classSize).Replace("{FontWeight}", "fw-bold") + .Replace("{Content}", x.Hint)); + }); + stringBuilder2.Append(Resources.RowTemplate.Replace("{Content}", headerContent.ToString()).Replace("{Color}", "")); + for (int i = 0; i < sintetic.First().Value.Count; i++) + { + StringBuilder stringBuilder4 = new StringBuilder(); + bool flag = false; + foreach (SinteticModelList item in sintetic) + { + flag = flag || (item.Value[0] != null && item.Value[i].ToString() == "TOTAL"); + stringBuilder4.Append(Resources.ColumnTemplate.Replace("{Align}", "text-center").Replace("{Size}", classSize).Replace("{FontWeight}", flag ? "fw-bold" : "") + .Replace("{Content}", $"{item.Value[i]}")); + } + stringBuilder3.Append(Resources.RowTemplate.Replace("{Content}", stringBuilder4.ToString()).Replace("{Color}", "")); + } + stringBuilder.Append(Resources.TableTemplate.Replace("{Head}", stringBuilder2.ToString()).Replace("{Body}", stringBuilder3.ToString()).Replace("{Footer}", "")); + return stringBuilder.ToString(); + }); + } + + public static async Task<string> GenerateTable<T>(List<T> analitico, List<string> colunasOcultas, bool grafico = false, bool propertyName = false, string footer = "", ConfiguracaoImpressao config = null) + { + if (analitico == null) + { + return ""; + } + if (analitico.Count == 0) + { + return ""; + } + int num = 0; + if (config != null) + { + num = config.TamanhoFonte; + } + string classSize = ((num == 0) ? "" : $"fs-{num}'"); + return await Task.Run(delegate + { + //IL_0112: Unknown result type (might be due to invalid IL or missing references) + StringBuilder stringBuilder = new StringBuilder(); + StringBuilder stringBuilder2 = new StringBuilder(); + StringBuilder rowContent = new StringBuilder(); + Type type = analitico[0].GetType(); + PropertyInfo[] properties = type.GetProperties(); + int num2 = 0; + PropertyInfo[] array = properties; + foreach (PropertyInfo propertyInfo in array) + { + if (!(propertyInfo.Name == "ValidationEvent")) + { + object obj = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj != null) + { + string description = ((DescriptionAttribute)obj).Description; + if ((!propertyName || !colunasOcultas.Contains(propertyInfo.Name)) && (propertyName || !colunasOcultas.Contains(description))) + { + object obj2 = propertyInfo.GetCustomAttributes(typeof(TipoAttribute), inherit: true).FirstOrDefault(); + string text = ""; + if (obj2 != null) + { + text = ((TipoAttribute)obj2).Description; + } + string newValue = "text-start"; + switch (text) + { + case "PERCENTUAL": + case "VALOR": + newValue = "text-center"; + break; + case "QUANTIDADE": + case "DATA": + newValue = "text-end"; + break; + } + stringBuilder2.Append(Resources.HeaderTemplate.Replace("{Align}", newValue).Replace("{Size}", classSize).Replace("{FontWeight}", "fw-bold") + .Replace("{Content}", description)); + num2++; + } + } + } + } + stringBuilder.Append(Resources.RowTemplate.Replace("{Content}", stringBuilder2.ToString()).Replace("{Color}", "")); + analitico.ForEach(delegate(T x) + { + //IL_00ca: Unknown result type (might be due to invalid IL or missing references) + //IL_00cd: Invalid comparison between Unknown and I4 + //IL_01d8: Unknown result type (might be due to invalid IL or missing references) + type = x.GetType(); + properties = type.GetProperties(); + PropertyInfo propertyInfo2 = properties.FirstOrDefault((PropertyInfo b) => b.Name == "Bold"); + bool flag = propertyInfo2 != null && (bool)propertyInfo2.GetValue(x); + PropertyInfo propertyInfo3 = properties.FirstOrDefault((PropertyInfo b) => b.Name == "Sinal"); + Sinal result; + string text2 = ((propertyInfo3 != null && propertyInfo3.GetValue(x) != null && Enum.TryParse<Sinal>(propertyInfo3.GetValue(x).ToString(), ignoreCase: true, out result) && (int)result == 1) ? "color: red;" : "color: black;"); + if (!flag) + { + _ = "<tr style='" + text2 + "'>"; + } + else + { + _ = "<tr style='font-weight: bold; " + text2 + "'>"; + } + StringBuilder stringBuilder4 = new StringBuilder(); + PropertyInfo[] array2 = properties; + foreach (PropertyInfo propertyInfo4 in array2) + { + if (!(propertyInfo4.Name == "ValidationEvent")) + { + object obj3 = propertyInfo4.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj3 != null) + { + string description2 = ((DescriptionAttribute)obj3).Description; + if ((!propertyName || !colunasOcultas.Contains(propertyInfo4.Name)) && (propertyName || !colunasOcultas.Contains(description2))) + { + object obj4 = propertyInfo4.GetCustomAttributes(typeof(TipoAttribute), inherit: true).FirstOrDefault(); + string text3 = ""; + if (obj4 != null) + { + text3 = ((TipoAttribute)obj4).Description; + } + string newValue2 = "text-start"; + string newValue3; + switch (text3) + { + default: + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{propertyInfo4.GetValue(x)}" : ""); + break; + case "PERCENTUAL": + newValue2 = "text-end"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{(decimal)propertyInfo4.GetValue(x) * 0.01m:p2}" : ""); + break; + case "VALOR": + newValue2 = "text-end"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{(decimal)propertyInfo4.GetValue(x):c2}" : ""); + break; + case "VALORDECIMAL2": + newValue2 = "text-end"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{(decimal)propertyInfo4.GetValue(x):n2}" : ""); + break; + case "DATA": + newValue2 = "text-center"; + newValue3 = ((propertyInfo4.GetValue(x) == null || (DateTime)propertyInfo4.GetValue(x) == DateTime.MinValue) ? "" : $"{(DateTime)propertyInfo4.GetValue(x):d}"); + break; + case "QUANTIDADE": + newValue2 = "text-center"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{propertyInfo4.GetValue(x)}" : ""); + break; + case "ENUM": + newValue3 = ((propertyInfo4.GetValue(x) != null) ? (ValidationHelper.GetDescription((Enum)propertyInfo4.GetValue(x)) ?? "") : ""); + break; + case "DATA/TIME?": + case "DATA/TIME": + newValue2 = "text-center"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{(DateTime?)propertyInfo4.GetValue(x):G}" : ""); + break; + case "DATA?": + newValue2 = "text-center"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{(DateTime?)propertyInfo4.GetValue(x):d}" : ""); + break; + case "VALOR?": + newValue2 = "text-end"; + newValue3 = ((propertyInfo4.GetValue(x) != null) ? $"{(decimal?)propertyInfo4.GetValue(x):c2}" : ""); + break; + } + stringBuilder4.Append(Resources.ColumnTemplate.Replace("{Align}", newValue2).Replace("{Size}", classSize).Replace("{FontWeight}", flag ? "fw-bold" : "") + .Replace("{Content}", newValue3)); + } + } + } + } + rowContent.Append(Resources.RowTemplate.Replace("{Content}", stringBuilder4.ToString()).Replace("{Color}", "style='" + text2 + "'")); + }); + StringBuilder stringBuilder3 = new StringBuilder(); + if (grafico) + { + rowContent.Append("<td>"); + rowContent.Append("<div id=\"donutchart\" style=\"width: 500px; height: 300px;\"></div>"); + rowContent.Append("<h6 style='text-align:center'>*VALORES NEGATIVOS NÃO SÃO REPRESENTADOS NO GRÁFICO DE PIZZA.</h6>"); + rowContent.Append("</td>"); + } + stringBuilder3.Append(Resources.TableTemplate.Replace("{Head}", stringBuilder.ToString()).Replace("{Body}", rowContent.ToString()).Replace("{Footer}", (!string.IsNullOrEmpty(footer)) ? Resources.FooterTemplate.Replace("{Content}", $"<tr><td colspan='{num2}' style='color:gray'>{footer}</td></tr>") : "")); + return stringBuilder3.ToString(); + }); + } + + public static async Task<string> GenerateMultipleTable(List<List<Listagem>> analiticos, List<string> colunasOcultas, bool grafico = false, bool propertyName = false, string footer = "", ConfiguracaoImpressao config = null) + { + if (analiticos == null) + { + return ""; + } + if (analiticos.Count == 0) + { + return ""; + } + int num = 0; + if (config != null) + { + num = config.TamanhoFonte; + } + string classSize = ((num == 0) ? "" : $"fs-{num}'"); + return await Task.Run(delegate + { + StringBuilder stringBuilder = new StringBuilder(); + int num2 = 0; + foreach (List<Listagem> analitico in analiticos) + { + StringBuilder stringBuilder2 = new StringBuilder(); + StringBuilder stringBuilder3 = new StringBuilder(); + StringBuilder stringBuilder4 = new StringBuilder(); + int num3 = 0; + stringBuilder3.Append(Resources.HeaderTemplate.Replace("{Align}", "text-start").Replace("{Size}", "").Replace("{FontWeight}", "fw-bold") + .Replace("{Content}", analitico[0].NomeRelatorio)); + stringBuilder2.Append(Resources.RowTemplate.Replace("{Content}", stringBuilder3.ToString()).Replace("{Color}", "")); + analitico.ForEach(delegate(Listagem x) + { + //IL_0098: Unknown result type (might be due to invalid IL or missing references) + //IL_009b: Invalid comparison between Unknown and I4 + //IL_018c: Unknown result type (might be due to invalid IL or missing references) + PropertyInfo[] properties = ((object)x).GetType().GetProperties(); + PropertyInfo propertyInfo = properties.FirstOrDefault((PropertyInfo b) => b.Name == "Bold"); + bool flag = propertyInfo != null && (bool)propertyInfo.GetValue(x); + PropertyInfo propertyInfo2 = properties.FirstOrDefault((PropertyInfo b) => b.Name == "Sinal"); + Sinal result; + string text = ((propertyInfo2 != null && propertyInfo2.GetValue(x) != null && Enum.TryParse<Sinal>(propertyInfo2.GetValue(x).ToString(), ignoreCase: true, out result) && (int)result == 1) ? "color: red;" : "color: black;"); + if (!flag) + { + _ = "<tr style='" + text + "'>"; + } + else + { + _ = "<tr style='font-weight: bold; " + text + "'>"; + } + StringBuilder stringBuilder6 = new StringBuilder(); + PropertyInfo[] array = properties; + foreach (PropertyInfo propertyInfo3 in array) + { + if (!(propertyInfo3.Name == "ValidationEvent")) + { + object obj = propertyInfo3.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj != null) + { + string description = ((DescriptionAttribute)obj).Description; + if ((!propertyName || !colunasOcultas.Contains(propertyInfo3.Name)) && (propertyName || !colunasOcultas.Contains(description))) + { + object obj2 = propertyInfo3.GetCustomAttributes(typeof(TipoAttribute), inherit: true).FirstOrDefault(); + string text2 = ""; + if (obj2 != null) + { + text2 = ((TipoAttribute)obj2).Description; + } + string newValue = "text-start"; + string newValue2; + switch (text2) + { + default: + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{propertyInfo3.GetValue(x)}" : ""); + break; + case "PERCENTUAL": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{(decimal)propertyInfo3.GetValue(x) * 0.01m:p2}" : ""); + break; + case "VALOR": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{(decimal)propertyInfo3.GetValue(x):c2}" : ""); + break; + case "DATA": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(x) == null || (DateTime)propertyInfo3.GetValue(x) == DateTime.MinValue) ? "" : $"{(DateTime)propertyInfo3.GetValue(x):d}"); + break; + case "QUANTIDADE": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{propertyInfo3.GetValue(x)}" : ""); + break; + case "ENUM": + newValue2 = ((propertyInfo3.GetValue(x) != null) ? (ValidationHelper.GetDescription((Enum)propertyInfo3.GetValue(x)) ?? "") : ""); + break; + case "DATA/TIME?": + case "DATA/TIME": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{(DateTime?)propertyInfo3.GetValue(x):G}" : ""); + break; + case "DATA?": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{(DateTime?)propertyInfo3.GetValue(x):d}" : ""); + break; + case "VALOR?": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(x) != null) ? $"{(decimal?)propertyInfo3.GetValue(x):c2}" : ""); + break; + } + stringBuilder6.Append(Resources.ColumnTemplate.Replace("{Align}", newValue).Replace("{Size}", classSize).Replace("{FontWeight}", flag ? "fw-bold" : "") + .Replace("{Content}", newValue2)); + } + } + } + } + }); + StringBuilder stringBuilder5 = new StringBuilder(); + if (grafico) + { + stringBuilder4.Append($"<div id=\"donutchart{num2}\" style=\"width: 70%; height: 125px;\"></div>"); + } + num2++; + stringBuilder5.Append(Resources.TableMultipleTemplate.Replace("{Head}", stringBuilder2.ToString()).Replace("{Body}", stringBuilder4.ToString()).Replace("{Footer}", (!string.IsNullOrEmpty(footer)) ? Resources.FooterTemplate.Replace("{Content}", $"<tr><td colspan='{num3}' style='color:gray'>{footer}</td></tr>") : "")); + stringBuilder.Append(stringBuilder5.ToString()); + } + return stringBuilder.ToString(); + }); + } + + public static async Task<XLWorkbook> GerarXlsSintetico(XLWorkbook xlWorkbook, string nome, List<SinteticModel> sintetic) + { + return await Task.Run((Func<XLWorkbook>)delegate + { + try + { + nome = nome.ValidaNomePlanilha(); + IXLWorksheet xlWorksheet = xlWorkbook.Worksheets.Add(nome); + int indexColumn = 1; + sintetic.ForEach(delegate(SinteticModel x) + { + xlWorksheet.Cell(1, indexColumn).Value = x.Hint; + xlWorksheet.Cell(2, indexColumn).Value = x.Value; + indexColumn++; + }); + ((IXLFontBase)((IXLRangeBase)xlWorksheet.Row(1)).Style.Font).Bold = true; + xlWorksheet.Columns().AdjustToContents(); + return xlWorkbook; + } + catch (Exception) + { + return (XLWorkbook)null; + } + }); + } + + public static async Task<string> GenerateTable<T>(List<T> analitico, Relatorio relatorio, bool grafico = false, bool verificarColunas = true, string footer = "", ConfiguracaoImpressao config = null) + { + //IL_0016: Unknown result type (might be due to invalid IL or missing references) + //IL_0017: Unknown result type (might be due to invalid IL or missing references) + int fontSize = 0; + List<ParametrosRelatorio> parametros; + if (config == null) + { + List<ParametrosRelatorio> list = ((!verificarColunas) ? null : (await new ConfuguracoesServico().BuscarParametros(relatorio))); + parametros = list; + if (parametros == null || parametros.Count == 0) + { + PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public); + parametros = ((IEnumerable<PropertyInfo>)properties).Select((Func<PropertyInfo, ParametrosRelatorio>)((PropertyInfo x) => new ParametrosRelatorio + { + Campo = x.Name, + Header = x.GetDescriptionAttribute(), + Tipo = x.GetTypeAttribute(), + Relatorio = relatorio, + Width = 0, + Ordem = 0 + })).ToList(); + } + } + else + { + parametros = config.Campos; + fontSize = config.TamanhoFonte; + } + string classSize = ((fontSize == 0) ? "" : $"fs-{fontSize}'"); + parametros = await GetRestricoesColunas(parametros); + if (analitico == null) + { + return ""; + } + if (analitico.Count == 0) + { + return ""; + } + return await Task.Run(delegate + { + StringBuilder stringBuilder = new StringBuilder(); + StringBuilder headerContent = new StringBuilder(); + StringBuilder rowContent = new StringBuilder(); + Type type = analitico[0].GetType(); + PropertyInfo[] properties2 = type.GetProperties(); + int columnsCount = 0; + ExtensionMethods.ForEach<ParametrosRelatorio>((IEnumerable<ParametrosRelatorio>)(from x in parametros + orderby x.Ordem, x.Header + select x), (Action<ParametrosRelatorio>)delegate(ParametrosRelatorio x) + { + if (!(x.Tipo == "INVALID")) + { + PropertyInfo propertyInfo4 = properties2.FirstOrDefault((PropertyInfo p) => p.Name == x.Campo); + if (!(propertyInfo4 == null)) + { + string descriptionAttribute = propertyInfo4.GetDescriptionAttribute(); + string newValue3 = "text-start"; + switch (x.Tipo) + { + case "PERCENTUAL": + case "VALOR": + newValue3 = "text-center"; + break; + case "QUANTIDADE": + case "DATA": + newValue3 = "text-end"; + break; + } + headerContent.Append(Resources.HeaderTemplate.Replace("{Align}", newValue3).Replace("{Size}", classSize).Replace("{FontWeight}", "fw-bold") + .Replace("{Content}", descriptionAttribute)); + columnsCount++; + } + } + }); + stringBuilder.Append(Resources.RowTemplate.Replace("{Content}", headerContent.ToString()).Replace("{Color}", "")); + analitico.ForEach(delegate(T a) + { + //IL_0101: Unknown result type (might be due to invalid IL or missing references) + //IL_0104: Invalid comparison between Unknown and I4 + StringBuilder content = new StringBuilder(); + type = a.GetType(); + properties2 = type.GetProperties(); + PropertyInfo propertyInfo = properties2.FirstOrDefault((PropertyInfo b) => b.Name == "Bold"); + bool bold = propertyInfo != null && (bool)propertyInfo.GetValue(a); + PropertyInfo propertyInfo2 = properties2.FirstOrDefault((PropertyInfo b) => b.Name == "Sinal"); + Sinal result; + string text = ((propertyInfo2 != null && propertyInfo2.GetValue(a) != null && Enum.TryParse<Sinal>(propertyInfo2.GetValue(a).ToString(), ignoreCase: true, out result) && (int)result == 1) ? "color: red;" : "color: black;"); + if (!bold) + { + _ = "<tr style='" + text + "'>"; + } + else + { + _ = "<tr class='fw-bold' style='" + text + "'>"; + } + ExtensionMethods.ForEach<ParametrosRelatorio>((IEnumerable<ParametrosRelatorio>)(from x in parametros + orderby x.Ordem, x.Header + select x), (Action<ParametrosRelatorio>)delegate(ParametrosRelatorio x) + { + if (!(x.Tipo == "INVALID")) + { + PropertyInfo propertyInfo3 = properties2.FirstOrDefault((PropertyInfo p) => p.Name == x.Campo); + if (!(propertyInfo3 == null)) + { + string newValue = "text-start"; + string newValue2; + switch (x.Tipo) + { + default: + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{propertyInfo3.GetValue(a)}" : ""); + break; + case "PERCENTUAL": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{(decimal)propertyInfo3.GetValue(a) * 0.01m:p2}" : ""); + break; + case "VALOR": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{(decimal)propertyInfo3.GetValue(a):c2}" : ""); + break; + case "VALORDECIMAL2": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{(decimal)propertyInfo3.GetValue(a):n2}" : ""); + break; + case "DATA": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(a) == null || (DateTime)propertyInfo3.GetValue(a) == DateTime.MinValue) ? "" : $"{(DateTime)propertyInfo3.GetValue(a):d}"); + break; + case "QUANTIDADE": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{propertyInfo3.GetValue(a)}" : ""); + break; + case "ENUM": + newValue2 = ((propertyInfo3.GetValue(a) != null && Convert.ToInt32(propertyInfo3.GetValue(a)) != 0) ? (ValidationHelper.GetDescription((Enum)propertyInfo3.GetValue(a)) ?? "") : ""); + break; + case "DATA/TIME?": + case "DATA/TIME": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{(DateTime?)propertyInfo3.GetValue(a):G}" : ""); + break; + case "DATA?": + newValue = "text-center"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{(DateTime?)propertyInfo3.GetValue(a):d}" : ""); + break; + case "VALOR?": + newValue = "text-end"; + newValue2 = ((propertyInfo3.GetValue(a) != null) ? $"{(decimal?)propertyInfo3.GetValue(a):c2}" : ""); + break; + } + content.Append(Resources.ColumnTemplate.Replace("{Align}", newValue).Replace("{Size}", classSize).Replace("{FontWeight}", bold ? "fw-bold" : "") + .Replace("{Content}", newValue2)); + } + } + }); + rowContent.Append(Resources.RowTemplate.Replace("{Content}", content.ToString()).Replace("{Color}", "style='" + text + "'")); + }); + StringBuilder stringBuilder2 = new StringBuilder(); + stringBuilder2.Append(Resources.TableTemplate.Replace("{Head}", stringBuilder.ToString()).Replace("{Body}", rowContent.ToString()).Replace("{Footer}", (!string.IsNullOrEmpty(footer)) ? Resources.FooterTemplate.Replace("{Content}", $"<tr><td colspan='{columnsCount}' style='color:gray'>{footer}</td></tr>") : "")); + return stringBuilder2.ToString(); + }); + } + + public static async Task<XLWorkbook> GerarXls<T>(XLWorkbook xlWorkbook, string nome, List<T> analitico, Relatorio relatorio, bool verificarColunas = true) + { + //IL_0026: Unknown result type (might be due to invalid IL or missing references) + //IL_0027: Unknown result type (might be due to invalid IL or missing references) + nome = nome.ValidaNomePlanilha(); + List<ParametrosRelatorio> list = ((!verificarColunas) ? null : (await new ConfuguracoesServico().BuscarParametros(relatorio))); + List<ParametrosRelatorio> parametros = list; + if (parametros == null || parametros.Count == 0) + { + PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public); + parametros = ((IEnumerable<PropertyInfo>)properties).Select((Func<PropertyInfo, ParametrosRelatorio>)((PropertyInfo x) => new ParametrosRelatorio + { + Campo = x.Name, + Header = x.GetDescriptionAttribute(), + Tipo = x.GetTypeAttribute(), + Relatorio = relatorio, + Width = 0, + Ordem = 0 + })).ToList(); + } + parametros = await GetRestricoesColunas(parametros); + return await Task.Run((Func<XLWorkbook>)delegate + { + try + { + IXLWorksheet xlWorksheet = xlWorkbook.Worksheets.Add(nome); + Type type = analitico[0].GetType(); + PropertyInfo[] properties2 = type.GetProperties(); + int indexColumn = 1; + ExtensionMethods.ForEach<ParametrosRelatorio>((IEnumerable<ParametrosRelatorio>)(from x in parametros + orderby x.Ordem, x.Header + select x), (Action<ParametrosRelatorio>)delegate(ParametrosRelatorio x) + { + if (!(x.Tipo == "INVALID")) + { + PropertyInfo propertyInfo2 = properties2.FirstOrDefault((PropertyInfo p) => p.Name == x.Campo || (p.Name.ToUpper().Equals("NOME") && x.Campo.ToUpper().Equals("VENDEDOR") && nome.Equals("SINTÉTICO POR VENDEDOR") && (int)relatorio == 7) || (p.Name.ToUpper().Equals("NOME") && x.Campo.ToUpper().Equals("SEGURADORA") && nome.Equals("SINTÉTICO POR SEGURADORA") && (int)relatorio == 7) || (p.Name.ToUpper().Equals("NOME") && x.Campo.ToUpper().Equals("RAMO") && nome.Equals("SINTÉTICO POR RAMO") && (int)relatorio == 7)); + if (!(propertyInfo2 == null)) + { + xlWorksheet.Cell(1, indexColumn).Value = propertyInfo2.GetDescriptionAttribute(); + indexColumn++; + } + } + }); + int indexRow = 2; + analitico.ForEach(delegate(T a) + { + indexColumn = 1; + int row = indexRow; + ExtensionMethods.ForEach<ParametrosRelatorio>((IEnumerable<ParametrosRelatorio>)(from x in parametros + orderby x.Ordem, x.Header + select x), (Action<ParametrosRelatorio>)delegate(ParametrosRelatorio x) + { + if (!(x.Tipo == "INVALID")) + { + PropertyInfo propertyInfo = properties2.FirstOrDefault((PropertyInfo p) => p.Name == x.Campo || (p.Name.ToUpper().Equals("NOME") && x.Campo.ToUpper().Equals("VENDEDOR") && nome.Equals("SINTÉTICO POR VENDEDOR") && (int)relatorio == 7) || (p.Name.ToUpper().Equals("NOME") && x.Campo.ToUpper().Equals("SEGURADORA") && nome.Equals("SINTÉTICO POR SEGURADORA") && (int)relatorio == 7) || (p.Name.ToUpper().Equals("NOME") && x.Campo.ToUpper().Equals("RAMO") && nome.Equals("SINTÉTICO POR RAMO") && (int)relatorio == 7)); + if (!(propertyInfo == null)) + { + Regex regex = new Regex("\\<[^\\>]*\\>"); + object obj = propertyInfo.GetValue(a); + if (obj != null && obj.ToString().Contains(">") && obj.ToString().Contains("<")) + { + obj = regex.Replace(obj.ToString(), ""); + } + switch (x.Tipo) + { + default: + ((IXLNumberFormatBase)xlWorksheet.Cell(row, indexColumn).Style.NumberFormat).Format = "@"; + xlWorksheet.Cell(row, indexColumn).Value = $"{obj}"; + break; + case "DATA/TIME?": + case "DATA/TIME": + ((IXLNumberFormatBase)xlWorksheet.Cell(row, indexColumn).Style.NumberFormat).Format = "dd/MM/yyyy HH:mm:ss"; + xlWorksheet.Cell(row, indexColumn).Value = $"{obj}"; + break; + case "DATA?": + case "DATA": + ((IXLNumberFormatBase)xlWorksheet.Cell(row, indexColumn).Style.NumberFormat).Format = "dd/MM/yyyy"; + xlWorksheet.Cell(row, indexColumn).Value = $"{obj}"; + break; + case "VALOR": + xlWorksheet.Cell(row, indexColumn).Style.NumberFormat.SetNumberFormatId(2); + xlWorksheet.Cell(row, indexColumn).Value = ((decimal?)obj).GetValueOrDefault(); + break; + case "QUANTIDADE": + xlWorksheet.Cell(row, indexColumn).Style.NumberFormat.SetNumberFormatId(1); + xlWorksheet.Cell(row, indexColumn).Value = obj; + break; + case "PERCENTUAL": + xlWorksheet.Cell(row, indexColumn).Style.NumberFormat.SetNumberFormatId(10); + xlWorksheet.Cell(row, indexColumn).Value = ((decimal?)obj).GetValueOrDefault() * 0.01m; + break; + } + int num = indexColumn; + indexColumn = num + 1; + } + } + }); + indexRow++; + }); + ((IXLFontBase)((IXLRangeBase)xlWorksheet.Row(1)).Style.Font).Bold = true; + xlWorksheet.Columns().AdjustToContents(); + return xlWorkbook; + } + catch (Exception) + { + return (XLWorkbook)null; + } + }); + } + + public static async Task<XLWorkbook> GerarXls<T>(XLWorkbook xlWorkbook, string nome, List<T> analitico, List<string> colunasOcultas = null) + { + return await Task.Run((Func<XLWorkbook>)delegate + { + try + { + nome = nome.ValidaNomePlanilha(); + IXLWorksheet xlWorksheet = xlWorkbook.Worksheets.Add(nome); + Type type = analitico[0].GetType(); + PropertyInfo[] properties = type.GetProperties(); + int indexColumn = 1; + PropertyInfo[] array = properties; + foreach (PropertyInfo propertyInfo in array) + { + if (!(propertyInfo.Name == "ValidationEvent")) + { + object obj = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj != null) + { + string description = ((DescriptionAttribute)obj).Description; + if (colunasOcultas == null || !colunasOcultas.Contains(description)) + { + xlWorksheet.Cell(1, indexColumn).Value = description; + indexColumn++; + } + } + } + } + int indexRow = 2; + analitico.ForEach(delegate(T x) + { + indexColumn = 1; + type = x.GetType(); + properties = type.GetProperties(); + PropertyInfo[] array2 = properties; + foreach (PropertyInfo propertyInfo2 in array2) + { + if (propertyInfo2.Name == "ValidationEvent") + { + continue; + } + object obj2 = propertyInfo2.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj2 == null) + { + continue; + } + string description2 = ((DescriptionAttribute)obj2).Description; + if (colunasOcultas != null && colunasOcultas.Contains(description2)) + { + continue; + } + string name = propertyInfo2.Name; + if (!name.Contains("Fipe")) + { + switch (name) + { + case "NumeroProposta": + case "NumeroApolice": + case "NumeroPedidoEndosso": + break; + default: + goto IL_010f; + } + } + ((IXLNumberFormatBase)xlWorksheet.Cell(indexRow, indexColumn).Style.NumberFormat).Format = "@"; + goto IL_010f; + IL_010f: + xlWorksheet.Cell(indexRow, indexColumn).Value = propertyInfo2.GetValue(x); + indexColumn++; + } + indexRow++; + }); + ((IXLFontBase)((IXLRangeBase)xlWorksheet.Row(1)).Style.Font).Bold = true; + xlWorksheet.Columns().AdjustToContents(); + return xlWorkbook; + } + catch (Exception) + { + return (XLWorkbook)null; + } + }); + } + + public static bool IsWindowOpen<T>(string title) where T : Window + { + return ((IEnumerable)Application.Current.Windows).OfType<T>().Any((T x) => ((Window)x).Title == title); + } + + public static void Destroy<T>() where T : Window + { + object obj = ((IEnumerable)Application.Current.Windows).OfType<T>().FirstOrDefault(); + if (obj != null) + { + ((Window)obj).Close(); + } + } + + public static void Destroy<T>(string title) where T : Window + { + object obj = ((IEnumerable)Application.Current.Windows).OfType<T>().FirstOrDefault((T x) => ((Window)x).Title == title); + if (obj != null) + { + ((Window)obj).Close(); + } + } + + public static T GetValueFromType<T>(this object objeto) + { + Type typeFromHandle = typeof(T); + PropertyInfo[] properties = objeto.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public); + foreach (PropertyInfo propertyInfo in properties) + { + if (!(propertyInfo.PropertyType != typeFromHandle)) + { + return (T)propertyInfo.GetValue(objeto); + } + } + return default(T); + } + + private static async Task<List<ParametrosRelatorio>> GetRestricoesColunas(List<ParametrosRelatorio> parametros) + { + List<RestricaoUsuarioCamposRelatorios> restricoes = await new RestricaoUsuarioServico().BuscarRestricoesCamposRelatorios(((DomainBase)Recursos.Usuario).Id); + restricoes = restricoes.Where((RestricaoUsuarioCamposRelatorios x) => x.Restricao).ToList(); + return parametros.Where((ParametrosRelatorio x) => restricoes.Where((RestricaoUsuarioCamposRelatorios y) => x.Relatorio == y.Relatorio).All((RestricaoUsuarioCamposRelatorios y) => x.Header != y.Campo)).ToList(); + } + + public static async Task ContruirLista<T>(this DataGrid grid, Relatorio relatorio) + { + //IL_0016: Unknown result type (might be due to invalid IL or missing references) + //IL_0017: Unknown result type (might be due to invalid IL or missing references) + List<ParametrosRelatorio> list = await new ConfuguracoesServico().BuscarParametros(relatorio); + if (list == null || list.Count == 0) + { + list = ((IEnumerable<PropertyInfo>)typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public)).Select((Func<PropertyInfo, ParametrosRelatorio>)((PropertyInfo x) => new ParametrosRelatorio + { + Campo = x.Name, + Header = x.GetDescriptionAttribute(), + Tipo = x.GetTypeAttribute(), + Relatorio = relatorio, + Width = 0, + Ordem = 0 + })).ToList(); + } + if (!Recursos.Usuario.Administrador) + { + list = await GetRestricoesColunas(list); + } + (from x in list + orderby x.Ordem, x.Header + select x).ToList().ForEach(delegate(ParametrosRelatorio x) + { + //IL_0077: Unknown result type (might be due to invalid IL or missing references) + //IL_007d: Expected O, but got Unknown + //IL_0091: Unknown result type (might be due to invalid IL or missing references) + //IL_0097: Expected O, but got Unknown + //IL_0335: Unknown result type (might be due to invalid IL or missing references) + //IL_033a: Unknown result type (might be due to invalid IL or missing references) + //IL_021a: Unknown result type (might be due to invalid IL or missing references) + //IL_0220: Expected O, but got Unknown + //IL_0234: Unknown result type (might be due to invalid IL or missing references) + //IL_023a: Expected O, but got Unknown + //IL_01db: Unknown result type (might be due to invalid IL or missing references) + //IL_01e1: Expected O, but got Unknown + //IL_01f5: Unknown result type (might be due to invalid IL or missing references) + //IL_01fb: Expected O, but got Unknown + //IL_0361: Unknown result type (might be due to invalid IL or missing references) + //IL_0362: Unknown result type (might be due to invalid IL or missing references) + //IL_0367: Unknown result type (might be due to invalid IL or missing references) + //IL_0373: Unknown result type (might be due to invalid IL or missing references) + //IL_037d: Expected O, but got Unknown + //IL_037d: Unknown result type (might be due to invalid IL or missing references) + //IL_0384: Unknown result type (might be due to invalid IL or missing references) + //IL_038b: Unknown result type (might be due to invalid IL or missing references) + //IL_0397: Expected O, but got Unknown + //IL_0397: Unknown result type (might be due to invalid IL or missing references) + //IL_02d4: Unknown result type (might be due to invalid IL or missing references) + //IL_02da: Expected O, but got Unknown + //IL_02ee: Unknown result type (might be due to invalid IL or missing references) + //IL_02f4: Expected O, but got Unknown + //IL_03b8: Unknown result type (might be due to invalid IL or missing references) + //IL_03a7: Unknown result type (might be due to invalid IL or missing references) + //IL_0298: Unknown result type (might be due to invalid IL or missing references) + //IL_029e: Expected O, but got Unknown + //IL_02b2: Unknown result type (might be due to invalid IL or missing references) + //IL_02b8: Expected O, but got Unknown + //IL_0259: Unknown result type (might be due to invalid IL or missing references) + //IL_025f: Expected O, but got Unknown + //IL_0273: Unknown result type (might be due to invalid IL or missing references) + //IL_0279: Expected O, but got Unknown + //IL_03c2: Unknown result type (might be due to invalid IL or missing references) + //IL_03c9: Unknown result type (might be due to invalid IL or missing references) + //IL_03d5: Expected O, but got Unknown + //IL_030a: Unknown result type (might be due to invalid IL or missing references) + //IL_0310: Expected O, but got Unknown + //IL_0324: Unknown result type (might be due to invalid IL or missing references) + //IL_032a: Expected O, but got Unknown + if (!(x.Tipo == "INVALID") && (!(x.Campo == "DataControle") || Recursos.Usuario.Administrador || !Recursos.Configuracoes.Any((ConfiguracaoSistema c) => (int)c.Configuracao == 33))) + { + string stringFormat = ""; + Style elementStyle = (Style)Application.Current.Resources[(object)"VerticalCenterStyle3"]; + Style headerStyle = (Style)Application.Current.Resources[(object)"MaterialDesignDataGridColumnHeaderNew"]; + switch (x.Tipo) + { + case "DATA/TIME?": + case "DATA/TIME": + stringFormat = "G"; + elementStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterStyle2"]; + headerStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterHeaderStyleNew"]; + break; + case "DATA?": + case "DATA": + stringFormat = "d"; + elementStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterStyle2"]; + headerStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterHeaderStyleNew"]; + break; + case "PERCENTUAL": + stringFormat = "{0:0.00}%"; + elementStyle = (Style)Application.Current.Resources[(object)"HorizontalRightStyle"]; + headerStyle = (Style)Application.Current.Resources[(object)"HorizontalRightHeaderStyleNew"]; + break; + case "VALOR": + stringFormat = "c"; + elementStyle = (Style)Application.Current.Resources[(object)"HorizontalRightStyle"]; + headerStyle = (Style)Application.Current.Resources[(object)"HorizontalRightHeaderStyleNew"]; + break; + case "VALORDECIMAL2": + stringFormat = "n2"; + elementStyle = (Style)Application.Current.Resources[(object)"HorizontalRightStyle"]; + headerStyle = (Style)Application.Current.Resources[(object)"HorizontalRightHeaderStyleNew"]; + break; + case "QUANTIDADE": + elementStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterStyle2"]; + headerStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterHeaderStyleNew"]; + break; + } + grid.Columns.Add((DataGridColumn)new MaterialDataGridTextColumn + { + Header = (x.Header?.ToUpper() ?? x.Campo.ToUpper()), + Binding = (BindingBase)new Binding + { + Path = new PropertyPath(x.Campo, Array.Empty<object>()), + StringFormat = stringFormat, + Mode = (BindingMode)0, + UpdateSourceTrigger = (UpdateSourceTrigger)1 + }, + Width = (DataGridLength)((x.Width == 0) ? new DataGridLength(1.0, (DataGridLengthUnitType)0) : DataGridLength.op_Implicit((double)x.Width)), + ElementStyle = elementStyle, + HeaderStyle = headerStyle + }); + } + }); + } + + public static List<SinteticModelList> ConstruirSintetico(this List<Sintetico> sintetico, Relatorio relatorio) + { + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + //IL_000f: Unknown result type (might be due to invalid IL or missing references) + if (sintetico == null) + { + return null; + } + List<SinteticModelList> sintetics = new List<SinteticModelList>(); + typeof(Sintetico).GetProperties(BindingFlags.Instance | BindingFlags.Public).ToList().ForEach(delegate(PropertyInfo props) + { + //IL_0744: Unknown result type (might be due to invalid IL or missing references) + //IL_0724: Unknown result type (might be due to invalid IL or missing references) + //IL_078d: Unknown result type (might be due to invalid IL or missing references) + //IL_0792: Unknown result type (might be due to invalid IL or missing references) + //IL_0799: Unknown result type (might be due to invalid IL or missing references) + //IL_07a9: Expected O, but got Unknown + if (props.GetValue(sintetico.First()) != null) + { + string descriptionAttribute = props.GetDescriptionAttribute(); + TipoRestricao? val = null; + switch (descriptionAttribute) + { + case "PRÊMIO TOTAL": + val = (TipoRestricao)65; + break; + case "TOTAL DE CLIENTES": + case "TOTAL DE CLIENTES ATIVOS": + case "TOTAL DE CLIENTES INATIVOS": + val = (TipoRestricao)66; + break; + case "PRÊMIO LÍQUIDO": + val = (TipoRestricao)67; + break; + case "MÉDIA DE COMISSÃO GERADA": + case "MÉDIA DE COMISSÃO PONDERADA": + case "MÉDIA DE COMISSÃO FECHADA": + val = (TipoRestricao)68; + break; + case "QUANTIDADE DE NOVOS NEGÓCIOS": + case "QUANTIDADE DE NEGÓCIOS PRÓPRIOS": + val = (TipoRestricao)69; + break; + case "QUANTIDADE DE RENOVAÇÕES": + case "QUANTIDADE DE SEGUROS NOVOS": + val = (TipoRestricao)70; + break; + case "QUANTIDADE DE CANCELAMENTOS": + val = (TipoRestricao)71; + break; + case "QUANTIDADE DE APÓLICES": + val = (TipoRestricao)72; + break; + case "QUANTIDADE DE ENDOSSOS": + val = (TipoRestricao)73; + break; + case "QUANTIDADE DE FATURAS": + val = (TipoRestricao)74; + break; + case "TOTAL GERAL": + val = (TipoRestricao)75; + break; + case "TOTAL DE LÍQUIDO": + val = (TipoRestricao)76; + break; + case "QUANTIDADE DE PROSPECÇÕES": + val = (TipoRestricao)77; + break; + case "TOTAL DE COMISSÃO GERADA": + val = (TipoRestricao)78; + break; + case "COMISSÃO RECEBIDA BRUTA": + val = (TipoRestricao)79; + break; + case "COMISSÃO RECEBIDA LÍQUIDA": + val = (TipoRestricao)92; + break; + case "IMPOSTOS": + val = (TipoRestricao)93; + break; + case "COMISSÃO PREVISTA": + val = (TipoRestricao)80; + break; + case "REPASSE": + val = (TipoRestricao)81; + break; + case "TOTAL PREVISTO": + val = (TipoRestricao)82; + break; + case "TOTAL DE TERCEIROS": + val = (TipoRestricao)83; + break; + case "QUANTIDADE LIQUIDADO": + val = (TipoRestricao)84; + break; + case "QUANTIDADE PENDENTE": + val = (TipoRestricao)85; + break; + case "VALOR LIQUIDADO": + val = (TipoRestricao)86; + break; + case "VALOR": + val = (TipoRestricao)100; + break; + case "VALOR ORÇADO": + val = (TipoRestricao)101; + break; + case "VALOR LIBERADO": + val = (TipoRestricao)103; + break; + case "VALOR PAGO": + val = (TipoRestricao)104; + break; + case "VALOR SALVADO": + val = (TipoRestricao)105; + break; + case "VALOR FRANQUIA": + val = (TipoRestricao)106; + break; + case "COMISSÃO PENDENTE": + val = (TipoRestricao)87; + break; + case "META ATINGIR": + val = (TipoRestricao)88; + break; + case "META CUMPRIDA": + val = (TipoRestricao)89; + break; + case "TOTAL PARCELAS": + val = (TipoRestricao)102; + break; + } + if (val.HasValue) + { + RestricaoUsuario val2 = new RestricaoUsuarioServico().BuscarRestricao(Recursos.Usuario, val.Value); + if (val2 != null && val2.Restricao) + { + return; + } + } + List<ParametrosTotalizacao> list = new ConfuguracoesServico().BuscarParametroTotalizacao(relatorio); + if (list == null || list.Count <= 0 || !list.All((ParametrosTotalizacao y) => y.Campo != props.Name) || props.Name.ToUpperInvariant().Contains("AGRUPAMENTO")) + { + SinteticModelList sintetic = new SinteticModelList + { + Hint = descriptionAttribute, + Value = new List<object>() + }; + string tipo = props.GetTypeAttribute(); + sintetico.ForEach(delegate(Sintetico s) + { + object item; + switch (tipo) + { + default: + item = $"{props.GetValue(s)}"; + break; + case "DATA/TIME": + case "DATA/TIME?": + item = ((DateTime?)props.GetValue(s))?.ToString("G"); + break; + case "DATA": + case "DATA?": + item = ((DateTime?)props.GetValue(s))?.ToString("d"); + break; + case "PERCENTUAL": + item = $"{props.GetValue(s):n2} %"; + break; + case "VALOR": + item = ((decimal)props.GetValue(s)).ToString("c2"); + break; + } + sintetic.Value.Add(item); + }); + sintetics.Add(sintetic); + } + } + }); + return sintetics; + } + + public static List<SinteticModel> ConstruirSintetico(this Sintetico sintetico, Relatorio relatorio) + { + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + //IL_000f: Unknown result type (might be due to invalid IL or missing references) + if (sintetico == null) + { + return null; + } + List<SinteticModel> sintetics = new List<SinteticModel>(); + typeof(Sintetico).GetProperties(BindingFlags.Instance | BindingFlags.Public).ToList().ForEach(delegate(PropertyInfo x) + { + //IL_074d: Unknown result type (might be due to invalid IL or missing references) + //IL_072d: Unknown result type (might be due to invalid IL or missing references) + //IL_077d: Unknown result type (might be due to invalid IL or missing references) + //IL_0782: Unknown result type (might be due to invalid IL or missing references) + //IL_0789: Unknown result type (might be due to invalid IL or missing references) + //IL_0792: Expected O, but got Unknown + if (x.GetValue(sintetico) != null) + { + string descriptionAttribute = x.GetDescriptionAttribute(); + TipoRestricao? val = null; + string descriptionField = null; + switch (descriptionAttribute) + { + case "PRÊMIO TOTAL": + val = (TipoRestricao)65; + break; + case "TOTAL DE CLIENTES": + case "TOTAL DE CLIENTES ATIVOS": + case "TOTAL DE CLIENTES INATIVOS": + val = (TipoRestricao)66; + break; + case "PRÊMIO LÍQUIDO": + val = (TipoRestricao)67; + break; + case "MÉDIA DE COMISSÃO GERADA": + case "MÉDIA DE COMISSÃO PONDERADA": + case "MÉDIA DE COMISSÃO FECHADA": + val = (TipoRestricao)68; + break; + case "QUANTIDADE DE NOVOS NEGÓCIOS": + case "QUANTIDADE DE NEGÓCIOS PRÓPRIOS": + val = (TipoRestricao)69; + break; + case "QUANTIDADE DE RENOVAÇÕES": + case "QUANTIDADE DE SEGUROS NOVOS": + val = (TipoRestricao)70; + break; + case "QUANTIDADE DE CANCELAMENTOS": + val = (TipoRestricao)71; + break; + case "QUANTIDADE DE APÓLICES": + val = (TipoRestricao)72; + break; + case "QUANTIDADE DE ENDOSSOS": + val = (TipoRestricao)73; + break; + case "QUANTIDADE DE FATURAS": + val = (TipoRestricao)74; + break; + case "TOTAL GERAL": + val = (TipoRestricao)75; + descriptionField = "CONTAGEM GERAL DE DOCUMENTOS"; + break; + case "TOTAL DE LÍQUIDO": + val = (TipoRestricao)76; + descriptionField = "CONTAGEM GERAL DOS DOCUMENTOS ATIVOS"; + break; + case "QUANTIDADE DE PROSPECÇÕES": + val = (TipoRestricao)77; + break; + case "TOTAL DE COMISSÃO GERADA": + val = (TipoRestricao)78; + break; + case "COMISSÃO RECEBIDA BRUTA": + val = (TipoRestricao)79; + break; + case "COMISSÃO RECEBIDA LÍQUIDA": + val = (TipoRestricao)92; + break; + case "IMPOSTOS": + val = (TipoRestricao)93; + break; + case "COMISSÃO PREVISTA": + val = (TipoRestricao)80; + break; + case "REPASSE": + val = (TipoRestricao)81; + break; + case "TOTAL PREVISTO": + val = (TipoRestricao)82; + break; + case "TOTAL DE TERCEIROS": + val = (TipoRestricao)83; + break; + case "QUANTIDADE LIQUIDADO": + val = (TipoRestricao)84; + break; + case "QUANTIDADE PENDENTE": + val = (TipoRestricao)85; + break; + case "VALOR LIQUIDADO": + val = (TipoRestricao)86; + break; + case "VALOR": + val = (TipoRestricao)100; + break; + case "VALOR ORÇADO": + val = (TipoRestricao)101; + break; + case "VALOR LIBERADO": + val = (TipoRestricao)103; + break; + case "VALOR PAGO": + val = (TipoRestricao)104; + break; + case "VALOR SALVADO": + val = (TipoRestricao)105; + break; + case "VALOR FRANQUIA": + val = (TipoRestricao)106; + break; + case "COMISSÃO PENDENTE": + val = (TipoRestricao)87; + break; + case "META ATINGIR": + val = (TipoRestricao)88; + break; + case "META CUMPRIDA": + val = (TipoRestricao)89; + break; + case "TOTAL PARCELAS": + val = (TipoRestricao)102; + break; + } + if (val.HasValue) + { + RestricaoUsuario val2 = new RestricaoUsuarioServico().BuscarRestricao(Recursos.Usuario, val.Value); + if (val2 != null && val2.Restricao) + { + return; + } + } + List<ParametrosTotalizacao> list = new ConfuguracoesServico().BuscarParametroTotalizacao(relatorio); + if (list == null || list.Count <= 0 || !list.All((ParametrosTotalizacao y) => y.Campo != x.Name)) + { + SinteticModel val3 = new SinteticModel + { + Hint = descriptionAttribute, + DescriptionField = descriptionField + }; + switch (x.GetTypeAttribute()) + { + default: + val3.Value = $"{x.GetValue(sintetico)}"; + break; + case "DATA/TIME?": + case "DATA/TIME": + val3.Value = ((DateTime?)x.GetValue(sintetico))?.ToString("G"); + break; + case "DATA?": + case "DATA": + val3.Value = ((DateTime?)x.GetValue(sintetico))?.ToString("d"); + break; + case "PERCENTUAL": + val3.Value = $"{x.GetValue(sintetico)} %"; + break; + case "VALOR": + val3.Value = ((decimal)x.GetValue(sintetico)).ToString("c2"); + break; + case "VALORDECIMAL2": + val3.Value = ((decimal)x.GetValue(sintetico)).ToString("n2"); + break; + } + sintetics.Add(val3); + } + } + }); + return sintetics; + } + + public static string GetTypeAttribute(this PropertyInfo pi) + { + //IL_0021: Unknown result type (might be due to invalid IL or missing references) + object obj = pi.GetCustomAttributes(typeof(TipoAttribute), inherit: true).FirstOrDefault(); + if (obj == null) + { + return ""; + } + return ((TipoAttribute)obj).Description; + } + + public static string GetDescriptionAttribute(this PropertyInfo pi) + { + object obj = pi.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj == null) + { + return pi.Name.ToUpper(); + } + return ((DescriptionAttribute)obj).Description; + } + + public static List<string> OcultarColunasDescricao(Type type, string categoria) + { + List<string> list = new List<string>(); + PropertyInfo[] properties = type.GetProperties(); + foreach (PropertyInfo propertyInfo in properties) + { + if (propertyInfo.Name == "ValidationEvent") + { + continue; + } + object obj = propertyInfo.GetCustomAttributes(typeof(CategoryAttribute), inherit: true).FirstOrDefault(); + if (obj != null && !(((CategoryAttribute)obj).Category == categoria)) + { + object obj2 = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); + if (obj2 != null) + { + string description = ((DescriptionAttribute)obj2).Description; + list.Add(description); + } + } + } + return list; + } + + public static string SubstituirVariaveis(string corpo, MalaDireta envio) + { + //IL_0025: Unknown result type (might be due to invalid IL or missing references) + //IL_002d: Unknown result type (might be due to invalid IL or missing references) + //IL_0097: Expected I4, but got Unknown + //IL_009d: Unknown result type (might be due to invalid IL or missing references) + //IL_00c6: Unknown result type (might be due to invalid IL or missing references) + //IL_0108: Unknown result type (might be due to invalid IL or missing references) + //IL_012b: Unknown result type (might be due to invalid IL or missing references) + //IL_05ce: Unknown result type (might be due to invalid IL or missing references) + //IL_0655: Unknown result type (might be due to invalid IL or missing references) + //IL_068d: Unknown result type (might be due to invalid IL or missing references) + //IL_06c5: Unknown result type (might be due to invalid IL or missing references) + //IL_070e: Unknown result type (might be due to invalid IL or missing references) + //IL_078a: Unknown result type (might be due to invalid IL or missing references) + //IL_023a: Unknown result type (might be due to invalid IL or missing references) + //IL_0268: Unknown result type (might be due to invalid IL or missing references) + //IL_034c: Unknown result type (might be due to invalid IL or missing references) + //IL_0388: Unknown result type (might be due to invalid IL or missing references) + //IL_03d9: Unknown result type (might be due to invalid IL or missing references) + //IL_0415: Unknown result type (might be due to invalid IL or missing references) + //IL_0451: Unknown result type (might be due to invalid IL or missing references) + //IL_047f: Unknown result type (might be due to invalid IL or missing references) + //IL_04ad: Unknown result type (might be due to invalid IL or missing references) + //IL_018a: Unknown result type (might be due to invalid IL or missing references) + //IL_01e9: Unknown result type (might be due to invalid IL or missing references) + //IL_050d: Unknown result type (might be due to invalid IL or missing references) + //IL_05f0: Unknown result type (might be due to invalid IL or missing references) + //IL_06f2: Unknown result type (might be due to invalid IL or missing references) + //IL_02d0: Unknown result type (might be due to invalid IL or missing references) + //IL_0314: Unknown result type (might be due to invalid IL or missing references) + //IL_063b: Unknown result type (might be due to invalid IL or missing references) + //IL_0753: Unknown result type (might be due to invalid IL or missing references) + //IL_0759: Invalid comparison between Unknown and I4 + //IL_058f: Unknown result type (might be due to invalid IL or missing references) + //IL_07e6: Unknown result type (might be due to invalid IL or missing references) + //IL_07ec: Invalid comparison between Unknown and I4 + DateTime networkTime = GetNetworkTime(); + VariaveisMalaDireta[] array = (VariaveisMalaDireta[])Enum.GetValues(typeof(VariaveisMalaDireta)); + foreach (VariaveisMalaDireta val in array) + { + switch ((int)val) + { + case 0: + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), networkTime.ToString(new CultureInfo("pt-BR"))); + break; + case 1: + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), ValidationHelper.IsNotNullOrEmpty(envio.Cliente.NomeSocialRg) ? envio.Cliente.NomeSocialRg : envio.Cliente.Nome); + break; + case 2: + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Cliente.Documento); + break; + case 16: + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Cliente.VencimentoHabilitacao?.ToString("d")); + break; + case 14: + if (envio.Cliente.Nascimento.HasValue) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Cliente.Nascimento?.ToString("dd/MM")); + } + break; + case 15: + if (envio.Cliente.Nascimento.HasValue) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Cliente.Nascimento?.ToString("d")); + } + break; + case 3: + if (envio.Apolice != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Apolice.Proposta); + } + break; + case 4: + if (envio.Apolice != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Apolice.Apolice + ((envio.Apolice.Tipo != 0) ? (", endosso de número: " + envio.Apolice.Endosso) : "")); + } + break; + case 5: + { + Documento apolice9 = envio.Apolice; + if (((apolice9 != null) ? apolice9.Controle : null) != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Apolice.Controle.Ramo.Nome); + } + break; + } + case 6: + { + Documento apolice3 = envio.Apolice; + if (((apolice3 != null) ? apolice3.Controle : null) != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Apolice.Controle.Seguradora.Nome); + } + break; + } + case 7: + if (envio.Apolice != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Apolice.Vigencia1.ToString("d")); + } + break; + case 8: + if (envio.Apolice != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Apolice.Vigencia2?.ToString("d")); + } + break; + case 9: + if (envio.Parcela != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Parcela.Vencimento.ToString("d")); + } + break; + case 10: + if (envio.Parcela != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Parcela.Valor.ToString("c2")); + } + break; + case 11: + if (envio.Item != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Item.Descricao); + } + break; + case 12: + if (envio.Sinistro != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Sinistro.Numero); + } + break; + case 13: + if (envio.Parcela != null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), envio.Parcela.NumeroParcela.ToString()); + } + break; + case 17: + { + if (envio.ArquivoDigital == null || envio.ArquivoDigital.All((IndiceArquivoDigital x) => string.IsNullOrWhiteSpace(x.UrlAssinatura))) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), string.Empty); + break; + } + string links = "<table><thead><tr><th>ABAIXO OS DOCUMENTOS PARA ASSINATURA</th></thead><tbody>"; + envio.ArquivoDigital.Where((IndiceArquivoDigital x) => !string.IsNullOrWhiteSpace(x.UrlAssinatura)).ToList().ForEach(delegate(IndiceArquivoDigital x) + { + links = links + "<tr><td><a href='" + x.UrlAssinatura + "'>" + x.Descricao + "</a></td></tr>"; + }); + links += "</tbody></table>"; + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), links); + break; + } + case 18: + { + string newValue3 = $"<strong>ABAIXO O LINK PARA MEU CARTÃO DE VISITA.</strong><br><a target='_blank' href='{Address.Card}{((DomainBase)Recursos.Usuario).Id.GeraCartaoVisita()}'>CARTÃO DE VISITA ELETRÔNICO</a>"; + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), newValue3); + break; + } + case 19: + { + if (envio.Apolice == null) + { + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), string.Empty); + break; + } + Uri assistance = Address.Assistance; + object arg; + if (envio == null) + { + arg = null; + } + else + { + Documento apolice7 = envio.Apolice; + arg = ((apolice7 != null) ? ((DomainBase)apolice7).Id.GeraAssistencia() : null); + } + string newValue2 = $"<strong>ABAIXO O LINK PARA O SEU CARTÃO ASSISTÊNCIA.</strong><br><a target='_blank' href='{assistance}{arg}'>CARTÃO ASSISTÊNCIA</a>"; + corpo = corpo.Replace(ValidationHelper.GetEntity((Enum)(object)val), newValue2); + break; + } + case 20: + { + string text3 = corpo; + string entity3 = ValidationHelper.GetEntity((Enum)(object)val); + Documento apolice4 = envio.Apolice; + corpo = text3.Replace(entity3, (apolice4 != null) ? apolice4.PremioLiquido.ToString("c") : null); + break; + } + case 21: + { + string text2 = corpo; + string entity2 = ValidationHelper.GetEntity((Enum)(object)val); + Documento apolice2 = envio.Apolice; + corpo = text2.Replace(entity2, (apolice2 != null) ? apolice2.PremioTotal.ToString("c") : null); + break; + } + case 22: + { + string text5 = corpo; + string entity5 = ValidationHelper.GetEntity((Enum)(object)val); + Documento apolice8 = envio.Apolice; + object newValue4; + if (apolice8 == null) + { + newValue4 = null; + } + else + { + FormaPagamento? formaPagamento = apolice8.FormaPagamento; + newValue4 = (formaPagamento.HasValue ? ValidationHelper.GetDescription((Enum)(object)formaPagamento.GetValueOrDefault()) : null); + } + corpo = text5.Replace(entity5, (string?)newValue4); + break; + } + case 23: + { + string text4 = corpo; + string entity4 = ValidationHelper.GetEntity((Enum)(object)val); + Documento apolice5 = envio.Apolice; + object newValue; + if (((apolice5 != null) ? new decimal?(apolice5.NumeroParcelas) : null).HasValue && (int)envio.Apolice.TipoRecebimento.GetValueOrDefault() != 2) + { + Documento apolice6 = envio.Apolice; + newValue = ((apolice6 != null) ? apolice6.NumeroParcelas.ToString() : null); + } + else + { + newValue = "Indefinido"; + } + corpo = text4.Replace(entity4, (string?)newValue); + break; + } + case 24: + { + string text = corpo; + string entity = ValidationHelper.GetEntity((Enum)(object)val); + Documento apolice = envio.Apolice; + corpo = text.Replace(entity, (!((apolice != null) ? new decimal?(apolice.NumeroParcelas) : null).HasValue || envio.Apolice.NumeroParcelas == 0m || (int)envio.Apolice.TipoRecebimento.GetValueOrDefault() == 2) ? "Verificar documento anexado" : (envio.Apolice.PremioTotal / envio.Apolice.NumeroParcelas).ToString()); + break; + } + } + } + return corpo; + } + + public static string GetText(string html) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0005: Unknown result type (might be due to invalid IL or missing references) + HtmlDocument val = new HtmlDocument(); + val.LoadHtml(html); + return NodeText(val.DocumentNode); + } + + private static string NodeText(HtmlNode node) + { + //IL_0056: Unknown result type (might be due to invalid IL or missing references) + //IL_005c: Invalid comparison between Unknown and I4 + //IL_0025: Unknown result type (might be due to invalid IL or missing references) + //IL_002b: Invalid comparison between Unknown and I4 + string text = ""; + if (node.HasChildNodes) + { + foreach (HtmlNode item in (IEnumerable<HtmlNode>)node.ChildNodes) + { + text += (((int)item.NodeType == 3) ? item.InnerText : NodeText(item)); + } + } + else if ((int)node.NodeType == 3) + { + text = node.InnerText; + } + return text; + } + + public static string AdicionarLog(string html) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0005: Unknown result type (might be due to invalid IL or missing references) + HtmlDocument val = new HtmlDocument(); + val.LoadHtml(html); + DateTime networkTime = GetNetworkTime(); + foreach (HtmlNode item in (IEnumerable<HtmlNode>)val.DocumentNode.ChildNodes) + { + if (!(item.Name != "body")) + { + item.InnerHtml = $"<p>{Recursos.Usuario.Nome} ID-{((DomainBase)Recursos.Usuario).Id} {networkTime:g} </p>{item.InnerHtml}<hr>"; + return item.InnerHtml; + } + } + return ""; + } + + public static List<FiltroPersonalizado> PopularFiltroPersonalizado<T>() + { + //IL_0062: Unknown result type (might be due to invalid IL or missing references) + //IL_0067: Unknown result type (might be due to invalid IL or missing references) + //IL_0073: Unknown result type (might be due to invalid IL or missing references) + //IL_0080: Expected O, but got Unknown + List<FiltroPersonalizado> list = new List<FiltroPersonalizado>(); + foreach (PropertyInfo item in from x in typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public) + orderby ValidationHelper.DescriptionAttribute(x) + select x) + { + if (item.Name == "ValidationEvent") + { + continue; + } + FiltroPersonalizado val = new FiltroPersonalizado + { + Propriedade = item.Name, + Nome = item.GetDescriptionAttribute() + }; + if (!(item.GetTypeAttribute() == "INVALID")) + { + Type type = item.PropertyType; + if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) + { + type = type.GetGenericArguments()[0]; + } + val.Tipo = ((type.BaseType == typeof(Enum)) ? type.BaseType : type); + list.Add(val); + } + } + return list; + } + + public static List<FiltroPersonalizado> PopularFiltroFinanceiro() + { + //IL_0006: Unknown result type (might be due to invalid IL or missing references) + //IL_000b: Unknown result type (might be due to invalid IL or missing references) + //IL_0016: Unknown result type (might be due to invalid IL or missing references) + //IL_0021: Unknown result type (might be due to invalid IL or missing references) + //IL_0036: Expected O, but got Unknown + //IL_0037: Unknown result type (might be due to invalid IL or missing references) + //IL_003c: Unknown result type (might be due to invalid IL or missing references) + //IL_0047: Unknown result type (might be due to invalid IL or missing references) + //IL_0052: Unknown result type (might be due to invalid IL or missing references) + //IL_0067: Expected O, but got Unknown + //IL_0068: Unknown result type (might be due to invalid IL or missing references) + //IL_006d: Unknown result type (might be due to invalid IL or missing references) + //IL_0078: Unknown result type (might be due to invalid IL or missing references) + //IL_0083: Unknown result type (might be due to invalid IL or missing references) + //IL_0098: Expected O, but got Unknown + //IL_0099: Unknown result type (might be due to invalid IL or missing references) + //IL_009e: Unknown result type (might be due to invalid IL or missing references) + //IL_00a9: Unknown result type (might be due to invalid IL or missing references) + //IL_00b4: Unknown result type (might be due to invalid IL or missing references) + //IL_00c9: Expected O, but got Unknown + //IL_00ca: Unknown result type (might be due to invalid IL or missing references) + //IL_00cf: Unknown result type (might be due to invalid IL or missing references) + //IL_00da: Unknown result type (might be due to invalid IL or missing references) + //IL_00e5: Unknown result type (might be due to invalid IL or missing references) + //IL_00fa: Expected O, but got Unknown + //IL_00fb: Unknown result type (might be due to invalid IL or missing references) + //IL_0100: Unknown result type (might be due to invalid IL or missing references) + //IL_010b: Unknown result type (might be due to invalid IL or missing references) + //IL_0116: Unknown result type (might be due to invalid IL or missing references) + //IL_012b: Expected O, but got Unknown + //IL_012c: Unknown result type (might be due to invalid IL or missing references) + //IL_0131: Unknown result type (might be due to invalid IL or missing references) + //IL_013c: Unknown result type (might be due to invalid IL or missing references) + //IL_0147: Unknown result type (might be due to invalid IL or missing references) + //IL_015c: Expected O, but got Unknown + //IL_015d: Unknown result type (might be due to invalid IL or missing references) + //IL_0162: Unknown result type (might be due to invalid IL or missing references) + //IL_016d: Unknown result type (might be due to invalid IL or missing references) + //IL_0178: Unknown result type (might be due to invalid IL or missing references) + //IL_018d: Expected O, but got Unknown + //IL_018e: Unknown result type (might be due to invalid IL or missing references) + //IL_0193: Unknown result type (might be due to invalid IL or missing references) + //IL_019e: Unknown result type (might be due to invalid IL or missing references) + //IL_01a9: Unknown result type (might be due to invalid IL or missing references) + //IL_01be: Expected O, but got Unknown + //IL_01bf: Unknown result type (might be due to invalid IL or missing references) + //IL_01c4: Unknown result type (might be due to invalid IL or missing references) + //IL_01cf: Unknown result type (might be due to invalid IL or missing references) + //IL_01da: Unknown result type (might be due to invalid IL or missing references) + //IL_01ef: Expected O, but got Unknown + //IL_01f0: Unknown result type (might be due to invalid IL or missing references) + //IL_01f5: Unknown result type (might be due to invalid IL or missing references) + //IL_0200: Unknown result type (might be due to invalid IL or missing references) + //IL_020b: Unknown result type (might be due to invalid IL or missing references) + //IL_0220: Expected O, but got Unknown + //IL_0221: Unknown result type (might be due to invalid IL or missing references) + //IL_0226: Unknown result type (might be due to invalid IL or missing references) + //IL_0231: Unknown result type (might be due to invalid IL or missing references) + //IL_023c: Unknown result type (might be due to invalid IL or missing references) + //IL_0251: Expected O, but got Unknown + //IL_0252: Unknown result type (might be due to invalid IL or missing references) + //IL_0257: Unknown result type (might be due to invalid IL or missing references) + //IL_0262: Unknown result type (might be due to invalid IL or missing references) + //IL_026d: Unknown result type (might be due to invalid IL or missing references) + //IL_0282: Expected O, but got Unknown + //IL_0283: Unknown result type (might be due to invalid IL or missing references) + //IL_0288: Unknown result type (might be due to invalid IL or missing references) + //IL_0293: Unknown result type (might be due to invalid IL or missing references) + //IL_029e: Unknown result type (might be due to invalid IL or missing references) + //IL_02b3: Expected O, but got Unknown + //IL_02b4: Unknown result type (might be due to invalid IL or missing references) + //IL_02b9: Unknown result type (might be due to invalid IL or missing references) + //IL_02c4: Unknown result type (might be due to invalid IL or missing references) + //IL_02cf: Unknown result type (might be due to invalid IL or missing references) + //IL_02e4: Expected O, but got Unknown + //IL_02e5: Unknown result type (might be due to invalid IL or missing references) + //IL_02ea: Unknown result type (might be due to invalid IL or missing references) + //IL_02f5: Unknown result type (might be due to invalid IL or missing references) + //IL_0300: Unknown result type (might be due to invalid IL or missing references) + //IL_0315: Expected O, but got Unknown + //IL_0316: Unknown result type (might be due to invalid IL or missing references) + //IL_031b: Unknown result type (might be due to invalid IL or missing references) + //IL_0326: Unknown result type (might be due to invalid IL or missing references) + //IL_0331: Unknown result type (might be due to invalid IL or missing references) + //IL_0346: Expected O, but got Unknown + //IL_0347: Unknown result type (might be due to invalid IL or missing references) + //IL_034c: Unknown result type (might be due to invalid IL or missing references) + //IL_0357: Unknown result type (might be due to invalid IL or missing references) + //IL_0362: Unknown result type (might be due to invalid IL or missing references) + //IL_0377: Expected O, but got Unknown + //IL_0378: Unknown result type (might be due to invalid IL or missing references) + //IL_037d: Unknown result type (might be due to invalid IL or missing references) + //IL_0388: Unknown result type (might be due to invalid IL or missing references) + //IL_0393: Unknown result type (might be due to invalid IL or missing references) + //IL_03a8: Expected O, but got Unknown + //IL_03a9: Unknown result type (might be due to invalid IL or missing references) + //IL_03ae: Unknown result type (might be due to invalid IL or missing references) + //IL_03b9: Unknown result type (might be due to invalid IL or missing references) + //IL_03c4: Unknown result type (might be due to invalid IL or missing references) + //IL_03d9: Expected O, but got Unknown + return new List<FiltroPersonalizado> + { + new FiltroPersonalizado + { + Propriedade = "Id", + Nome = "ID", + Tipo = typeof(long) + }, + new FiltroPersonalizado + { + Propriedade = "Controle.Fornecedor.NomeSocial", + Nome = "FORNECEDOR", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Controle.Fornecedor.Ativo", + Nome = "FORNECEDOR ATIVO", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Historico", + Nome = "HISTÓRICO", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Parcela", + Nome = "PARCELA", + Tipo = typeof(int) + }, + new FiltroPersonalizado + { + Propriedade = "Documento", + Nome = "DOCUMENTO", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Competencia", + Nome = "COMPETÊNCIA", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Complemento", + Nome = "COMPLEMENTO", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Vencimento", + Nome = "VENCIMENTO", + Tipo = typeof(DateTime) + }, + new FiltroPersonalizado + { + Propriedade = "Valor", + Nome = "VALOR", + Tipo = typeof(decimal) + }, + new FiltroPersonalizado + { + Propriedade = "Baixa", + Nome = "DATA BAIXA", + Tipo = typeof(DateTime) + }, + new FiltroPersonalizado + { + Propriedade = "ValorPago", + Nome = "VALOR PAGO", + Tipo = typeof(decimal) + }, + new FiltroPersonalizado + { + Propriedade = "Pagamento", + Nome = "PAGAMENTO", + Tipo = typeof(DateTime) + }, + new FiltroPersonalizado + { + Propriedade = "Conta.Descricao", + Nome = "CONTA", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Controle.Plano.Descricao", + Nome = "PLANO DE CONTAS", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Controle.Centro.Descricao", + Nome = "CENTRO DE CUSTO", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Sinal", + Nome = "SINAL", + Tipo = typeof(Enum) + }, + new FiltroPersonalizado + { + Propriedade = "TipoPagamento", + Nome = "FORMA PAGAMENTO", + Tipo = typeof(Enum) + }, + new FiltroPersonalizado + { + Propriedade = "Observacao", + Nome = "OBSERVAÇÃO", + Tipo = typeof(string) + }, + new FiltroPersonalizado + { + Propriedade = "Controle.Plano.Nome", + Nome = "PLANO", + Tipo = typeof(string) + } + }; + } + + public static List<ParametrosRelatorio> ColunasRelatorio<T>(Relatorio relatorio, List<ParametrosRelatorio> parametrosAdicionados) + { + //IL_00a3: Unknown result type (might be due to invalid IL or missing references) + //IL_00a8: Unknown result type (might be due to invalid IL or missing references) + //IL_00cd: Unknown result type (might be due to invalid IL or missing references) + //IL_00de: Unknown result type (might be due to invalid IL or missing references) + //IL_00ef: Unknown result type (might be due to invalid IL or missing references) + //IL_00ff: Unknown result type (might be due to invalid IL or missing references) + //IL_0100: Unknown result type (might be due to invalid IL or missing references) + //IL_0106: Unknown result type (might be due to invalid IL or missing references) + //IL_0117: Unknown result type (might be due to invalid IL or missing references) + //IL_011e: Unknown result type (might be due to invalid IL or missing references) + //IL_0143: Expected O, but got Unknown + List<ParametrosRelatorio> list = new List<ParametrosRelatorio>(); + foreach (PropertyInfo pi in from x in typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public) + orderby x.GetDescriptionAttribute() + select x) + { + if (!(pi.Name == "ValidationEvent") && !(pi.GetTypeAttribute() == "INVALID") && !parametrosAdicionados.Any((ParametrosRelatorio x) => x.Campo == pi.Name)) + { + ParametrosRelatorio val = new ParametrosRelatorio(); + ParametrosRelatorio? obj = ((IEnumerable<ParametrosRelatorio>)parametrosAdicionados).FirstOrDefault((Func<ParametrosRelatorio, bool>)((ParametrosRelatorio x) => x.IdUsuario != 0L && x.Campo == pi.Name)); + val.Id = ((obj != null) ? obj.Id : 0); + val.Campo = pi.Name; + val.Header = pi.GetDescriptionAttribute(); + val.IdUsuario = ((DomainBase)Recursos.Usuario).Id; + val.Relatorio = relatorio; + val.Tipo = pi.GetTypeAttribute(); + val.Width = 0; + ParametrosRelatorio? obj2 = ((IEnumerable<ParametrosRelatorio>)parametrosAdicionados).FirstOrDefault((Func<ParametrosRelatorio, bool>)((ParametrosRelatorio x) => x.Campo == pi.Name)); + val.Ordem = ((obj2 != null) ? obj2.Ordem : 0); + ParametrosRelatorio item = val; + list.Add(item); + } + } + return list; + } + + public static List<ParametrosTotalizacao> TotalizacoesRelatorio<T>(Relatorio relatorio, List<ParametrosTotalizacao> parametrosAdicionados) + { + //IL_000c: Unknown result type (might be due to invalid IL or missing references) + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + //IL_0050: Expected I4, but got Unknown + //IL_0395: Unknown result type (might be due to invalid IL or missing references) + //IL_039a: Unknown result type (might be due to invalid IL or missing references) + //IL_03bf: Unknown result type (might be due to invalid IL or missing references) + //IL_03d0: Unknown result type (might be due to invalid IL or missing references) + //IL_03e1: Unknown result type (might be due to invalid IL or missing references) + //IL_03f1: Unknown result type (might be due to invalid IL or missing references) + //IL_03f2: Unknown result type (might be due to invalid IL or missing references) + //IL_03fa: Expected O, but got Unknown + List<ParametrosTotalizacao> list = new List<ParametrosTotalizacao>(); + List<string> list2 = new List<string>(); + switch (relatorio - 2) + { + case 0: + case 1: + list2.Add("PremioTotal"); + list2.Add("PremioLiquido"); + list2.Add("MediaComissao"); + list2.Add("ComissaoGerada"); + list2.Add("Cancelamentos"); + list2.Add("Novos"); + list2.Add("NegociosProprios"); + list2.Add("Renovacoes"); + list2.Add("SegurosNovos"); + list2.Add("Apolices"); + list2.Add("Endossos"); + list2.Add("Faturas"); + list2.Add("TotalGeral"); + list2.Add("MediaPonderada"); + break; + case 2: + list2.Add("Cancelamentos"); + list2.Add("Novos"); + list2.Add("Renovacoes"); + list2.Add("Apolices"); + list2.Add("Endossos"); + list2.Add("Faturas"); + list2.Add("TotalProspeccao"); + list2.Add("TotalGeral"); + list2.Add("PremioTotal"); + list2.Add("PremioLiquido"); + list2.Add("ComissaoGerada"); + break; + case 3: + list2.Add("ComissaoRecebidaBruta"); + list2.Add("ComissaoRecebidaLiquida"); + list2.Add("ComissaoPrevista"); + list2.Add("Repasse"); + list2.Add("Impostos"); + list2.Add("PremioTotal"); + list2.Add("PremioLiquido"); + break; + case 4: + case 14: + list2.Add("ComissaoPrevista"); + list2.Add("TotalPrevista"); + list2.Add("TotalGeral"); + list2.Add("TotalParcela"); + break; + case 7: + case 8: + list2.Add("Liquidado"); + list2.Add("ValorLiquidado"); + list2.Add("Pendente"); + list2.Add("TotalGeral"); + list2.Add("TotalClientes"); + list2.Add("TotalTerceiros"); + break; + case 6: + list2.Add("PremioTotal"); + list2.Add("PremioLiquido"); + list2.Add("ComissaoRecebidaBruta"); + list2.Add("MediaComissao"); + list2.Add("TotalPrevista"); + list2.Add("ComissaoGerada"); + list2.Add("Cancelamentos"); + list2.Add("Novos"); + list2.Add("Renovacoes"); + list2.Add("Apolices"); + list2.Add("Endossos"); + list2.Add("Faturas"); + list2.Add("TotalGeral"); + break; + } + foreach (PropertyInfo pi in from x in typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public) + orderby x.GetDescriptionAttribute() + select x) + { + if (!(pi.Name == "ValidationEvent") && !(pi.GetTypeAttribute() == "INVALID") && list2.Contains(pi.Name) && !(pi.Name == "Agrupamento") && !parametrosAdicionados.Any((ParametrosTotalizacao x) => x.Campo == pi.Name)) + { + ParametrosTotalizacao val = new ParametrosTotalizacao(); + ParametrosTotalizacao? obj = ((IEnumerable<ParametrosTotalizacao>)parametrosAdicionados).FirstOrDefault((Func<ParametrosTotalizacao, bool>)((ParametrosTotalizacao x) => x.IdUsuario != 0L && x.Campo == pi.Name)); + val.Id = ((obj != null) ? obj.Id : 0); + val.Campo = pi.Name; + val.Header = pi.GetDescriptionAttribute(); + val.IdUsuario = ((DomainBase)Recursos.Usuario).Id; + val.Relatorio = relatorio; + ParametrosTotalizacao item = val; + list.Add(item); + } + } + return list; + } + + public static async Task<List<string>> OcultarColunas<T>(Relatorio relatorio) + { + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + //IL_000f: Unknown result type (might be due to invalid IL or missing references) + List<string> filtros = new List<string>(); + List<ParametrosRelatorio> list = await new ConfuguracoesServico().BuscarParametros(relatorio); + if (list == null || list.Count == 0) + { + return filtros; + } + list = await GetRestricoesColunas(list); + PropertyInfo[] properties = typeof(T).GetProperties(BindingFlags.Instance | BindingFlags.Public); + foreach (PropertyInfo pi in properties) + { + object obj = pi.GetCustomAttributes(typeof(TipoAttribute), inherit: true).FirstOrDefault(); + string text = ""; + if (obj != null) + { + text = ((TipoAttribute)obj).Description; + } + string descriptionAttribute = pi.GetDescriptionAttribute(); + if (text == "INVALID") + { + filtros.Add(descriptionAttribute); + } + if (!list.Any((ParametrosRelatorio x) => x.Campo == pi.Name) && !(pi.Name == "ValidationEvent")) + { + filtros.Add(descriptionAttribute); + } + } + return filtros; + } + + public static async Task<bool> ExcluirPagamento(VendedorParcela pagamento) + { + pagamento.DataPagamento = null; + ParcelaServico servico = new ParcelaServico + { + Sucesso = true + }; + await servico.Save(pagamento); + return servico.Sucesso; + } + + public static TipoTela? ConvertTela(string name) + { + //IL_0032: Unknown result type (might be due to invalid IL or missing references) + return ((IEnumerable<TipoTela>)((TipoTela[])Enum.GetValues(typeof(TipoTela))).ToList()).FirstOrDefault((Func<TipoTela, bool>)((TipoTela x) => ValidationHelper.GetEntity((Enum)(object)x) == name)); + } + + public static string PlacaVencimento(string placa, Categoria? categoria) + { + //IL_007b: Unknown result type (might be due to invalid IL or missing references) + //IL_0081: Invalid comparison between Unknown and I4 + //IL_009a: Unknown result type (might be due to invalid IL or missing references) + //IL_00a0: Invalid comparison between Unknown and I4 + //IL_00b9: Unknown result type (might be due to invalid IL or missing references) + //IL_00bf: Invalid comparison between Unknown and I4 + //IL_00d8: Unknown result type (might be due to invalid IL or missing references) + //IL_00de: Invalid comparison between Unknown and I4 + //IL_00f7: Unknown result type (might be due to invalid IL or missing references) + //IL_00fd: Invalid comparison between Unknown and I4 + //IL_0116: Unknown result type (might be due to invalid IL or missing references) + //IL_011c: Invalid comparison between Unknown and I4 + //IL_0135: Unknown result type (might be due to invalid IL or missing references) + //IL_013b: Invalid comparison between Unknown and I4 + //IL_0154: Unknown result type (might be due to invalid IL or missing references) + //IL_015a: Invalid comparison between Unknown and I4 + //IL_0173: Unknown result type (might be due to invalid IL or missing references) + //IL_0179: Invalid comparison between Unknown and I4 + if (string.IsNullOrEmpty(placa)) + { + return ""; + } + switch (placa.Substring(placa.Length - 1, 1)) + { + case "1": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "ABRIL"; + } + return "SETEMBRO"; + case "2": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "MAIO"; + } + return "SETEMBRO"; + case "3": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "JUNHO"; + } + return "OUTUBRO"; + case "4": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "JULHO"; + } + return "OUTUBRO"; + case "5": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "AGOSTO"; + } + return "OUTUBRO"; + case "6": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "AGOSTO"; + } + return "NOVEMBRO"; + case "7": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "SETEMBRO"; + } + return "NOVEMBRO"; + case "8": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "OUTUBRO"; + } + return "NOVEMBRO"; + case "9": + if (!categoria.HasValue || (int)categoria.GetValueOrDefault() != 4) + { + return "NOVEMBRO"; + } + return "DEZEMBRO"; + case "0": + return "DEZEMBRO"; + default: + return ""; + } + } + + public static ParentescoVinculo? ParentescoInverso(ParentescoVinculo? parentesco) + { + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + //IL_0013: Unknown result type (might be due to invalid IL or missing references) + //IL_0014: Unknown result type (might be due to invalid IL or missing references) + //IL_0076: Expected I4, but got Unknown + return parentesco switch + { + 0L => (ParentescoVinculo)1, + 1L => (ParentescoVinculo)0, + 3L => (ParentescoVinculo)4, + 4L => (ParentescoVinculo)3, + 5L => (ParentescoVinculo)6, + 6L => (ParentescoVinculo)5, + 7L => (ParentescoVinculo)8, + 8L => (ParentescoVinculo)7, + 10L => (ParentescoVinculo)11, + 11L => (ParentescoVinculo)10, + 13L => (ParentescoVinculo)14, + 14L => (ParentescoVinculo)13, + 19L => (ParentescoVinculo)20, + 20L => (ParentescoVinculo)19, + 22L => (ParentescoVinculo)21, + 21L => (ParentescoVinculo)22, + _ => parentesco, + }; + } + + public static string DiaDaSemana(this int? dia) + { + if (!dia.HasValue) + { + return ""; + } + return (DayOfWeek)dia.Value switch + { + DayOfWeek.Sunday => "DOMINGO", + DayOfWeek.Monday => "SEGUNDA-FEIRA", + DayOfWeek.Tuesday => "TERÇA-FEIRA", + DayOfWeek.Wednesday => "QUARTA-FEIRA", + DayOfWeek.Thursday => "QUINTA-FEIRA", + DayOfWeek.Friday => "SEXTA-FEIRA", + DayOfWeek.Saturday => "SABADO", + _ => "", + }; + } + + public static string GetBody(this string html) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0005: Unknown result type (might be due to invalid IL or missing references) + HtmlDocument val = new HtmlDocument(); + val.LoadHtml(html); + HtmlNode obj = val.DocumentNode.SelectSingleNode("//body"); + if (obj == null) + { + return null; + } + return obj.InnerHtml; + } + + public static string GerarGrafico(List<ValorSintetico> sinteticoLista) + { + string rows = "['NOME', 'VALOR'], "; + sinteticoLista.ForEach(delegate(ValorSintetico x) + { + if (x.Indice != "TOTAL" && x.Valor > 0m) + { + rows = rows + "[`" + x.Indice + " " + x.Porcentagem + "`, " + x.Valor.ToString("F2", CultureInfo.InvariantCulture) + "], "; + } + }); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append("<script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>"); + stringBuilder.Append("<script type=\"text/javascript\">"); + stringBuilder.Append("google.charts.load(\"current\", {packages:[\"corechart\"]});"); + stringBuilder.Append("google.charts.setOnLoadCallback(drawChart);"); + stringBuilder.Append("function drawChart() {"); + stringBuilder.Append("var data = google.visualization.arrayToDataTable([" + rows + "]);"); + stringBuilder.Append("var options = { pieHole:0.4, chartArea:{top:100,width:'100%',height:'100%'}, pieSliceText:'none', enableInteractivity:false, legend:{alignment:'center', position:'top', maxLines:6}, pieStartAngle: 50 };"); + stringBuilder.Append("var chart = new google.visualization.PieChart(document.getElementById('donutchart'));"); + stringBuilder.Append("chart.draw(data, options); }"); + stringBuilder.Append("</script>"); + return stringBuilder.ToString(); + } + + public static string GerarGraficoUnico(List<List<ValorSintetico>> sinteticosListas) + { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.Append("<script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>"); + stringBuilder.Append("<script type=\"text/javascript\">"); + stringBuilder.Append("google.charts.load(\"current\", {packages:[\"corechart\"]});"); + stringBuilder.Append("google.charts.setOnLoadCallback(drawAllCharts);"); + stringBuilder.Append("function drawAllCharts() {"); + stringBuilder.Append("var data;"); + stringBuilder.Append("var chart;"); + stringBuilder.Append("var options = { pieHole:0.4, chartArea:{left: 0,width:'100%',height:'100%'}, pieSliceText:'none', enableInteractivity:false, legend:{alignment:'center'}, pieStartAngle: 50 };"); + int num = 0; + foreach (List<ValorSintetico> sinteticosLista in sinteticosListas) + { + string rows = "['NOME', 'VALOR'], "; + sinteticosLista.ForEach(delegate(ValorSintetico x) + { + if (x.Indice != "TOTAL") + { + string text = $"{x.Valor}"; + if (x.Unidate != null && x.Unidate.Equals("R$")) + { + text = $"{x.Valor:c2}"; + } + rows = rows + "[`" + x.Indice + " \n" + text + "\n" + x.Porcentagem + "`, " + x.Valor.ToString("F2", CultureInfo.InvariantCulture) + "], "; + } + }); + stringBuilder.Append("data = google.visualization.arrayToDataTable([" + rows + "]);"); + stringBuilder.Append($"chart = new google.visualization.PieChart(document.getElementById('donutchart{num}'));"); + stringBuilder.Append("chart.draw(data, options);"); + num++; + } + stringBuilder.Append("}"); + stringBuilder.Append("</script>"); + return stringBuilder.ToString(); + } + + [IteratorStateMachine(typeof(_003CDistinctBy_003Ed__55<, >))] + public static IEnumerable<TSource> DistinctBy<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector) + { + //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() + return new _003CDistinctBy_003Ed__55<TSource, TKey>(-2) + { + _003C_003E3__source = source, + _003C_003E3__keySelector = keySelector + }; + } + + public static string Clear(this string stringToClean) + { + if (stringToClean != null) + { + return Regex.Replace(stringToClean, "[^\\d]", string.Empty); + } + return null; + } + + public static string RemoverAcentos(string text) + { + string source = text.Normalize(NormalizationForm.FormD); + StringBuilder stringBuilder = new StringBuilder(); + foreach (char item in from c in source + let unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c) + where unicodeCategory != UnicodeCategory.NonSpacingMark + select c) + { + stringBuilder.Append(item); + } + return stringBuilder.ToString().Normalize(NormalizationForm.FormC); + } + + public static Cor? GetCor(string text) + { + //IL_0031: Unknown result type (might be due to invalid IL or missing references) + if (text.Contains("outro")) + { + return (Cor)16; + } + if (Enum.TryParse<Cor>(text, ignoreCase: true, out Cor _)) + { + return (Cor)Enum.Parse(typeof(Cor), text, ignoreCase: true); + } + return null; + } + + public static Correcao? GetCorrecao(string text) + { + if (text.Contains("mercado")) + { + return (Correcao)0; + } + if (text.Contains("determinado")) + { + return (Correcao)1; + } + return null; + } + + public static TabelaReferencia? GetTabelaReferencia(string text) + { + //IL_001c: Unknown result type (might be due to invalid IL or missing references) + if (Enum.TryParse<TabelaReferencia>(text, ignoreCase: true, out TabelaReferencia _)) + { + return (TabelaReferencia)Enum.Parse(typeof(TabelaReferencia), text, ignoreCase: true); + } + return null; + } + + public static Categoria? GetCategoria(string text) + { + //IL_0094: Unknown result type (might be due to invalid IL or missing references) + if (text.Contains("caminhao") || text.Contains("caminhão")) + { + return (Categoria)4; + } + if (text.Contains("onibus") || text.Contains("ônibus")) + { + return (Categoria)6; + } + if (text.Contains("utilitario") || text.Contains("utilitário")) + { + return (Categoria)6; + } + if (text.Contains("moto")) + { + return (Categoria)9; + } + if (Enum.TryParse<Categoria>(text, ignoreCase: true, out Categoria _)) + { + return (Categoria)Enum.Parse(typeof(Categoria), text, ignoreCase: true); + } + return null; + } + + public static TipoCobertura? GetTipoCobertura(string text) + { + //IL_0086: Unknown result type (might be due to invalid IL or missing references) + if (text.Contains("incendio") || text.Contains("incêndio")) + { + return (TipoCobertura)2; + } + if (text.Contains("roubo") && text.Contains("furto")) + { + return (TipoCobertura)5; + } + if (text.Contains("terceiros")) + { + return (TipoCobertura)3; + } + if (text.Contains("compreensiva")) + { + return (TipoCobertura)1; + } + if (Enum.TryParse<TipoCobertura>(text, ignoreCase: true, out TipoCobertura _)) + { + return (TipoCobertura)Enum.Parse(typeof(TipoCobertura), text, ignoreCase: true); + } + return null; + } + + public static Isencao? GetIsencao(string text) + { + if (text.Contains("sem")) + { + return (Isencao)0; + } + if (text.Contains("ipi") && text.Contains("icms")) + { + return (Isencao)3; + } + if (text.Contains("ipi")) + { + return (Isencao)2; + } + if (text.Contains("icms")) + { + return (Isencao)1; + } + return null; + } + + public static Combustivel? GetCombustivel(string text) + { + //IL_015d: Unknown result type (might be due to invalid IL or missing references) + if (text.Contains("flex")) + { + return (Combustivel)4; + } + if (text.Contains("gasolina") && (text.Contains("alcool") || text.Contains("álcool"))) + { + if (text.Contains("gnv")) + { + return (Combustivel)8; + } + if (text.Contains("eletrico") || text.Contains("elétrico")) + { + return (Combustivel)12; + } + return (Combustivel)4; + } + if (text.Contains("gasolina") && text.Contains("gnv")) + { + return (Combustivel)7; + } + if (text.Contains("gasolina") && (text.Contains("eletrico") || text.Contains("elétrico"))) + { + return (Combustivel)9; + } + if (text.Contains("eletrico") || text.Contains("elétrico")) + { + return (Combustivel)11; + } + if (text.Contains("alcool") || text.Contains("álcool")) + { + return (Combustivel)1; + } + if (text.Contains("hibrido") || text.Contains("híbrido")) + { + return (Combustivel)10; + } + if (text.Contains("outro")) + { + return (Combustivel)6; + } + if (Enum.TryParse<Combustivel>(text, ignoreCase: true, out Combustivel _)) + { + return (Combustivel)Enum.Parse(typeof(Combustivel), text, ignoreCase: true); + } + return null; + } + + public static async Task<Fabricante> GetFabricante(string text) + { + List<Fabricante> list = await new BaseServico().BuscarFabricante(text); + return (list.Count < 1) ? null : list.First(); + } + + public static string ValidaNomePlanilha(this string nome, string agrupamento = "", int index = 0) + { + if (string.IsNullOrWhiteSpace(nome)) + { + nome = agrupamento; + } + nome = nome.Replace("/", "_").Replace(":", " ").Replace("*", " ") + .Replace("?", "") + .Trim(); + if (index > 0) + { + nome = $"{index} {nome}"; + } + if (nome.Length > 30) + { + nome = nome.Substring(0, 30); + } + return nome; + } + + public static bool IsEmpty(this string html) + { + int count = Regex.Matches(html, "<body>").Count; + bool flag = true; + int startIndex = 0; + for (int i = 0; i < count; i++) + { + int num = html.IndexOf("<body>", startIndex, StringComparison.Ordinal) + 6; + if (num == 5) + { + break; + } + int num2 = html.IndexOf("</body>", startIndex, StringComparison.Ordinal); + startIndex = num2 + 7; + flag = string.IsNullOrWhiteSpace(html.Substring(num, num2 - num)); + if (!flag) + { + break; + } + } + return flag; + } + + public static Window IsHosterOpen(string name) + { + return (Window)(object)((IEnumerable)Application.Current.Windows).OfType<HosterWindow>().ToList().FirstOrDefault(delegate(HosterWindow x) + { + ContentControl? obj = Extentions.FindVisualChildren<ContentControl>((DependencyObject)(object)x).FirstOrDefault(); + return ((obj != null) ? ((FrameworkElement)obj).Tag.ToString() : null) == name; + }); + } + + public static DateTime GetNetworkTime() + { + try + { + if (StartTime.HasValue) + { + return StartTime.Value.AddMilliseconds(Stopwatch.ElapsedMilliseconds); + } + byte[] array = new byte[48]; + array[0] = 27; + IPEndPoint remoteEP = new IPEndPoint(Dns.GetHostEntry("time.google.com").AddressList.First((IPAddress a) => a.AddressFamily == AddressFamily.InterNetwork), 123); + using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)) + { + socket.Connect(remoteEP); + socket.ReceiveTimeout = 3000; + socket.Send(array); + socket.Receive(array); + socket.Close(); + } + ulong num = ((ulong)array[40] << 24) | ((ulong)array[41] << 16) | ((ulong)array[42] << 8) | array[43]; + ulong num2 = ((ulong)array[44] << 24) | ((ulong)array[45] << 16) | ((ulong)array[46] << 8) | array[47]; + ulong num3 = num * 1000 + num2 * 1000 / 4294967296L; + DateTime value = new DateTime(1900, 1, 1).AddMilliseconds((long)num3).ToLocalTime(); + StartTime = value; + Stopwatch = Stopwatch.StartNew(); + return StartTime.Value; + } + catch (Exception) + { + StartTime = DateTime.Now; + Stopwatch = Stopwatch.StartNew(); + return StartTime.Value; + } + } + + public static TipoPagamento ParseTransactionType(this OfxTransactionType type) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0042: Expected I4, but got Unknown + switch ((int)type) + { + default: + return (TipoPagamento)12; + case 0: + return (TipoPagamento)5; + case 1: + case 4: + return (TipoPagamento)7; + case 11: + return (TipoPagamento)15; + case 6: + case 13: + return (TipoPagamento)8; + case 7: + case 12: + return (TipoPagamento)10; + case 14: + return (TipoPagamento)6; + case 10: + return (TipoPagamento)4; + } + } + + public static string GeraCartaoVisita(this long id) + { + try + { + return HttpUtility.UrlEncode($"{DateTime.Now.Ticks}:{ApplicationHelper.IdFornecedor}:V:{id}".Base64Encode()); + } + catch + { + } + return ""; + } + + public static string GeraAssistencia(this long id) + { + try + { + return HttpUtility.UrlEncode($"{DateTime.Now.Ticks}:{ApplicationHelper.IdFornecedor}:A:{id}".Base64Encode()); + } + catch + { + } + return ""; + } + + public static long UnixTimeStamp() + { + return (long)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds; + } + + public static async Task<string> CriarCartao(this Card card) + { + return await Connection.Post<string>("Card", card); + } + + public static async Task<string> AtualizarCartao(this Card card, string id) + { + return (await Connection.Put<string>("Card/" + id, card) == null) ? id : null; + } + + public static async Task<string> CriarAssistencia(this Assistance assistance) + { + return await Connection.Post<string>("Assistance", assistance); + } + + public static async Task<string> Criarlogo(this Logo logo) + { + return await Connection.Post<string>("Card/Logo", logo); + } + + public static async Task<string> Atualizarlogo(this Logo logo, string id) + { + return await Connection.Put<string>("Card/Logo/" + id, logo); + } + + public static async Task<string> CriarSeguradora(this AssistenciaCia cia) + { + return await Connection.Post<string>("Assistance/Seguradora", cia); + } + + public static async Task<string> AtualizarSeguradora(this AssistenciaCia cia, string id) + { + return await Connection.Put<string>("Assistance/Seguradora/" + id, cia); + } + + public static async Task<string> AtualizarAssistencia(this Assistance assistance, string id) + { + return (await Connection.Put<string>("Assistance/" + id, assistance) == null) ? id : null; + } + + public static bool EnviarWhatsapp(this string numero, string anotacoes = null) + { + Uri uri = (string.IsNullOrEmpty(anotacoes) ? Recursos.WhatsAppLink.SetQuery("phone", numero) : Recursos.WhatsAppLink.AddQuery("phone", numero).SetQuery("text", anotacoes)); + try + { + Process.Start(new ProcessStartInfo(uri.AbsoluteUri)); + return true; + } + catch (Exception) + { + uri.AbsoluteUri.CopyToClipboard(); + return false; + } + } + + public static bool ProgramaEmExecucao(this string programName) + { + return Process.GetProcessesByName(programName).Length != 0; + } + + [DllImport("user32.dll")] + private static extern bool SetForegroundWindow(IntPtr hWnd); + + [DllImport("user32.dll")] + private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); + + public static void BringToFront(this string programName) + { + try + { + Process[] processesByName = Process.GetProcessesByName(programName); + if (processesByName.Length != 0) + { + IntPtr mainWindowHandle = processesByName[0].MainWindowHandle; + ShowWindow(mainWindowHandle, 5); + ShowWindow(mainWindowHandle, 9); + SetForegroundWindow(mainWindowHandle); + } + } + catch (Exception) + { + } + } + + public static List<TupleList> LogList(this List<ValorOriginal> valores, bool restricaoComissao = false) + { + //IL_0030: Unknown result type (might be due to invalid IL or missing references) + //IL_0035: Unknown result type (might be due to invalid IL or missing references) + //IL_004b: Expected O, but got Unknown + List<Tuple<string, string, string>> tuples = new List<Tuple<string, string, string>>(); + valores.ForEach(delegate(ValorOriginal x) + { + if (!restricaoComissao || !x.Campo.ToUpper().Contains("COMISSÃO")) + { + tuples.Add(new Tuple<string, string, string>(x.Descricao, string.IsNullOrEmpty(x.ValorAtual) ? "NÃO PREENCHIDO" : ((x.ValorAtual == "True") ? "SIM" : ((x.ValorAtual == "False") ? "NÃO" : x.ValorAtual)), "")); + } + }); + return new List<TupleList> + { + new TupleList + { + Tuples = new ObservableCollection<Tuple<string, string, string>>(tuples) + } + }; + } + + public static List<TupleList> LogList(this List<Diferenca> valores, bool restricaoComissao = false) + { + //IL_0030: Unknown result type (might be due to invalid IL or missing references) + //IL_0035: Unknown result type (might be due to invalid IL or missing references) + //IL_004b: Expected O, but got Unknown + List<Tuple<string, string, string>> tuples = new List<Tuple<string, string, string>>(); + valores.ForEach(delegate(Diferenca x) + { + if (!restricaoComissao || !x.Campo.ToUpper().Contains("COMISSÃO")) + { + tuples.Add(new Tuple<string, string, string>(x.Descricao, string.IsNullOrEmpty(x.ValorAtual) ? "NÃO PREENCHIDO" : ((x.ValorAtual == "True") ? "SIM" : ((x.ValorAtual == "False") ? "NÃO" : x.ValorAtual)), string.IsNullOrEmpty(x.ValorAnterior) ? "NÃO PREENCHIDO" : ((x.ValorAnterior == "True") ? "SIM" : ((x.ValorAnterior == "False") ? "NÃO" : x.ValorAnterior)))); + } + }); + return new List<TupleList> + { + new TupleList + { + Tuples = new ObservableCollection<Tuple<string, string, string>>(tuples) + } + }; + } + + public static void CopyToClipboard(this string text) + { + try + { + Clipboard.SetText(text); + } + catch (Exception) + { + } + } + + public static async Task<string> GerarCsv<T>(List<T> Conteudo, IEnumerable<string> colunasExportacao) + { + PropertyInfo[] source = (from p in typeof(T).GetProperties() + where colunasExportacao.Contains(p.Name) + select p).ToArray(); + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.AppendLine(string.Join(";", source.Select((PropertyInfo p) => p.Name))); + foreach (T item in Conteudo) + { + IEnumerable<string> values = source.Select((PropertyInfo p) => p.GetValue(item, null)?.ToString() ?? string.Empty); + stringBuilder.AppendLine(string.Join(";", values)); + } + return stringBuilder.ToString(); + } + + public static UsoVeiculo? GetUsoveiculo(string text) + { + //IL_000e: Unknown result type (might be due to invalid IL or missing references) + UsoVeiculo result; + return (UsoVeiculo)(Enum.TryParse<UsoVeiculo>(text, ignoreCase: true, out result) ? ((int)result) : 0); + } + + public static string BoolToString(this bool boolean) + { + if (!boolean) + { + return "0"; + } + return "1"; + } + + public static string ConvertGaragemTrabalhoEstudoCalculo(this GaragemTrabalhoEstudo garagemTrabalhoEstudo) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_001e: Expected I4, but got Unknown + switch ((int)garagemTrabalhoEstudo) + { + case 0: + return "0"; + case 1: + return "1"; + case 2: + return "2"; + case 4: + case 5: + return "3"; + default: + return string.Empty; + } + } + + public static string ConvertTipoSeguroCalculo(this TipoSeguro tipoSeguro) + { + //IL_0000: Unknown result type (might be due to invalid IL or missing references) + //IL_0002: Unknown result type (might be due to invalid IL or missing references) + //IL_0004: Invalid comparison between Unknown and I4 + if (tipoSeguro - 1 <= 1) + { + return "1"; + } + return "0"; + } + + public static string ConvertTempoHabilitacaoCalculo(this DateTime tempoHabilitacao) + { + if (tempoHabilitacao == DateTime.MinValue) + { + return "0"; + } + int num = DateTime.Now.Year - tempoHabilitacao.Year; + if (num >= 11) + { + return "11"; + } + return num.ToString(); + } + + public static TempoHabilitacao ConvertTempoHabilitacao(int tempoHabilitacao = 0) + { + if (tempoHabilitacao != 1) + { + if (tempoHabilitacao != 2) + { + if (tempoHabilitacao != 3) + { + if (tempoHabilitacao != 4) + { + if (tempoHabilitacao != 5) + { + if (tempoHabilitacao != 6) + { + if (tempoHabilitacao != 7) + { + if (tempoHabilitacao != 8) + { + if (tempoHabilitacao != 9) + { + if (tempoHabilitacao != 10) + { + if (tempoHabilitacao < 11) + { + return (TempoHabilitacao)0; + } + return (TempoHabilitacao)10; + } + return (TempoHabilitacao)9; + } + return (TempoHabilitacao)8; + } + return (TempoHabilitacao)7; + } + return (TempoHabilitacao)6; + } + return (TempoHabilitacao)5; + } + return (TempoHabilitacao)4; + } + return (TempoHabilitacao)3; + } + return (TempoHabilitacao)2; + } + return (TempoHabilitacao)1; + } + return (TempoHabilitacao)0; + } +} |