using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Data; using System.Windows.Input; using System.Windows.Markup; using Gestor.Application.Helpers; using Gestor.Application.ViewModels; using Gestor.Application.Views.Ferramentas; using Gestor.Application.Views.Generic; using Gestor.Application.Views.Seguros; using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.BI; using Gestor.Model.Domain.Configuracoes; using Gestor.Model.Domain.Ferramentas; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.MalaDireta; using Gestor.Model.Domain.Seguros; using MaterialDesignThemes.Wpf; namespace Gestor.Application.Componentes; public class DialogAnaliticoBi : BaseUserControl, IComponentConnector, IStyleConnector { internal AnaliticoViewModel ViewModel; internal Grid MainGrid; internal DataGrid Grid; internal DataGridTemplateColumn InfoButton; internal TextBlock Totalizacao; private bool _contentLoaded; public List Lista { get; set; } public List Campos { get; set; } public DialogAnaliticoBi(string titulo, List analitico, string tipo, List campos) { ViewModel = new AnaliticoViewModel(tipo); ((FrameworkElement)this).DataContext = ViewModel; InitializeComponent(); ViewModel.Head = titulo; Lista = analitico; Campos = campos; ConstruirLista(); } private void ConstruirLista() { ViewModel.Loading(isLoading: true); PropertyInfo[] properties = ((object)Lista.First()).GetType().GetProperties(); Campos.ForEach(delegate(string x) { //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b4: Expected O, but got Unknown //IL_00c8: Unknown result type (might be due to invalid IL or missing references) //IL_00cf: Expected O, but got Unknown //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_014c: Unknown result type (might be due to invalid IL or missing references) //IL_0153: Expected O, but got Unknown //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_016e: Expected O, but got Unknown //IL_0237: 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_0243: Unknown result type (might be due to invalid IL or missing references) //IL_024a: Unknown result type (might be due to invalid IL or missing references) //IL_024b: Unknown result type (might be due to invalid IL or missing references) //IL_0250: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0266: Expected O, but got Unknown //IL_0266: Unknown result type (might be due to invalid IL or missing references) //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_027a: Expected O, but got Unknown //IL_027a: Unknown result type (might be due to invalid IL or missing references) //IL_0282: Unknown result type (might be due to invalid IL or missing references) //IL_028f: Expected O, but got Unknown //IL_018e: Unknown result type (might be due to invalid IL or missing references) //IL_0195: Expected O, but got Unknown //IL_01a9: Unknown result type (might be due to invalid IL or missing references) //IL_01b0: Expected O, but got Unknown //IL_01cd: Unknown result type (might be due to invalid IL or missing references) //IL_01d4: Expected O, but got Unknown //IL_01e8: Unknown result type (might be due to invalid IL or missing references) //IL_01ef: Expected O, but got Unknown //IL_0205: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Expected O, but got Unknown //IL_0220: Unknown result type (might be due to invalid IL or missing references) //IL_0227: Expected O, but got Unknown PropertyInfo propertyInfo = properties.FirstOrDefault((PropertyInfo p) => p.Name == x); if (!(propertyInfo == null)) { object obj = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), inherit: true).FirstOrDefault(); string header = propertyInfo.Name.ToUpper(); if (obj != null) { header = ((DescriptionAttribute)obj).Description; } object obj2 = propertyInfo.GetCustomAttributes(typeof(TipoAttribute), inherit: true).FirstOrDefault(); string text = ""; if (obj2 != null) { text = ((TipoAttribute)obj2).Description; } string stringFormat = ""; Style elementStyle = (Style)Application.Current.Resources[(object)"VerticalCenterStyle3"]; Style headerStyle = (Style)Application.Current.Resources[(object)"MaterialDesignDataGridColumnHeader"]; switch (text) { case "DATA": case "DATA?": stringFormat = "d"; elementStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterStyle2"]; headerStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterHeaderStyle"]; break; case "PERCENTUAL": stringFormat = "{0:0.00}%"; elementStyle = (Style)Application.Current.Resources[(object)"HorizontalRightStyle"]; headerStyle = (Style)Application.Current.Resources[(object)"HorizontalRightHeaderStyle"]; break; case "VALOR": case "VALOR?": stringFormat = "c"; elementStyle = (Style)Application.Current.Resources[(object)"HorizontalRightStyle"]; headerStyle = (Style)Application.Current.Resources[(object)"HorizontalRightHeaderStyle"]; break; case "QUANTIDADE": elementStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterStyle2"]; headerStyle = (Style)Application.Current.Resources[(object)"HorizontalCenterHeaderStyle"]; break; } Grid.Columns.Add((DataGridColumn)new MaterialDataGridTextColumn { IsReadOnly = true, Header = header, Binding = (BindingBase)new Binding { Path = new PropertyPath(propertyInfo.Name, Array.Empty()), StringFormat = stringFormat, UpdateSourceTrigger = (UpdateSourceTrigger)1 }, ElementStyle = elementStyle, HeaderStyle = headerStyle }); } }); ((ItemsControl)Grid).ItemsSource = Lista; Totalizar(); ViewModel.Loading(isLoading: false); } private void Totalizar() { switch (ViewModel.Tipo) { case "CLIENTES": Totalizacao.Text = $"TOTAL DE {Lista.Count} CLIENTES"; break; default: Totalizacao.Text = $"TOTAL DE {Lista.Count} SEGUROS SOMANDO O VALOR DE {Lista.Sum((Analitico x) => x.PremioLiquido):c}"; break; case "PARCELAS": Totalizacao.Text = $"TOTAL DE {Lista.Count} SEGUROS SOMANDO O VALOR DE {Lista.Sum((Analitico x) => x.Valor):c}"; break; case "COMISSÃO": Totalizacao.Text = $"TOTAL DE {Lista.Count} SEGUROS SOMANDO O VALOR DE COMISSÃO RECEBIDA DE {Lista.Sum((Analitico x) => x.ValorComissao):c}"; break; } } private void CheckBox_Checked(object sender, RoutedEventArgs e) { Lista.ForEach(delegate(Analitico x) { x.Selecionado = !x.Selecionado; }); ((ItemsControl)Grid).ItemsSource = null; ((ItemsControl)Grid).ItemsSource = Lista; } private async void Tarefas_OnClick(object sender, RoutedEventArgs e) { Tarefa data = new Tarefa { Entidade = (TipoTarefa)1, Titulo = ViewModel.Head, Usuario = Recursos.Usuario, Agendamento = Funcoes.GetNetworkTime() }; await AbrirTarefa(data); List second = Lista.Where((Analitico x) => x.Selecionado).ToList(); Lista = Lista.Except(second).ToList(); ((ItemsControl)Grid).ItemsSource = null; ((ItemsControl)Grid).ItemsSource = Lista; Totalizar(); } private async Task AbrirTarefa(Tarefa data) { ViewModel.Loading(isLoading: true); Tarefa tarefa; while (true) { tarefa = await ViewModel.ShowTarefaDialog(data, nota: true); List> list = new List>(); if (tarefa == null) { ViewModel.Loading(isLoading: false); return; } tarefa.AgendamentoRetroativo = Recursos.Configuracoes.Any((ConfiguracaoSistema x) => (int)x.Configuracao == 45); List> list2 = tarefa.Validate(); if (list2 == null || list2.Count == 0) { break; } if (list2.Count > 0) { list.AddRange(list2); } await ViewModel.ShowMessage(list, ViewModel.ErroCamposInvalidos, "OK"); } if (tarefa.Usuario == null) { tarefa.Usuario = tarefa.UsuariosVinculados.FirstOrDefault(); } List responsaveis = ((IEnumerable)tarefa.UsuariosVinculados).Select((Func)((Usuario x) => new ResponsavelTarefa { IdTarefa = ((DomainBase)tarefa).Id, Usuario = x })).ToList(); List source = Lista.Where((Analitico x) => x.Selecionado).ToList(); List list3; switch (ViewModel.Tipo) { case "CLIENTES": list3 = ((IEnumerable)source).Select((Func)((Analitico x) => new Tarefa { Entidade = (TipoTarefa)2, IdEntidade = x.Cliente.Id, Agendamento = tarefa.Agendamento, Titulo = tarefa.Titulo, Descricao = tarefa.Anotacoes, Usuario = tarefa.Usuario, UsuarioCadastro = Recursos.Usuario, Cliente = x.Nome, IdCliente = x.Cliente.Id, Responsaveis = responsaveis })).ToList(); break; default: list3 = ((IEnumerable)source).Select((Func)((Analitico x) => new Tarefa { Entidade = (TipoTarefa)0, IdEntidade = ((DomainBase)x.Documento).Id, Agendamento = tarefa.Agendamento, Titulo = tarefa.Titulo, Descricao = tarefa.Anotacoes, Usuario = tarefa.Usuario, UsuarioCadastro = Recursos.Usuario, Cliente = x.Nome, IdCliente = ((DomainBase)x.Documento.Controle.Cliente).Id, Referencia = ((x.Documento.Tipo == 0 && !string.IsNullOrWhiteSpace(x.Documento.Apolice)) ? ("APÓLICE NÚMERO " + x.Documento.Apolice) : ((x.Documento.Tipo > 0) ? ("APÓLICE NÚMERO " + x.Documento.Apolice + " ENDOSSO " + x.Documento.Endosso) : ("PROPOSTA NÚMERO " + x.Documento.Proposta))), Responsaveis = responsaveis })).ToList(); break; case "PARCELAS": case "COMISSÃO": list3 = ((IEnumerable)source).Select((Func)((Analitico x) => new Tarefa { Entidade = (TipoTarefa)3, IdEntidade = ((DomainBase)x.Parcela).Id, Agendamento = tarefa.Agendamento, Titulo = tarefa.Titulo, Descricao = tarefa.Anotacoes, Usuario = tarefa.Usuario, UsuarioCadastro = Recursos.Usuario, Cliente = x.Nome, IdCliente = ((DomainBase)x.Parcela.Documento.Controle.Cliente).Id, Referencia = ((x.Parcela.Documento.Tipo == 0 && !string.IsNullOrWhiteSpace(x.Parcela.Documento.Apolice)) ? $"PARCELA {x.NumeroParcela} DA APÓLICE {x.Parcela.Documento.Apolice}" : ((x.Documento.Tipo > 0) ? $"PARCELA {x.NumeroParcela} DA APÓLICE {x.Parcela.Documento.Apolice} ENDOSSO {x.Parcela.Documento.Endosso}" : $"PARCELA {x.NumeroParcela} DA PROPOSTA {x.Parcela.Documento.Proposta}")), Responsaveis = responsaveis })).ToList(); break; } if (list3.Count == 0) { ViewModel.Loading(isLoading: false); await ViewModel.ShowMessage("FALHA AO CRIAR TAREFA."); return; } await ViewModel.Save(list3); ViewModel.ToggleSnackBar("TAREFA SALVA COM SUCESSO."); ViewModel.Alterar(alterar: false); ViewModel.Loading(isLoading: false); } private async void Email_OnClick(object sender, RoutedEventArgs e) { if (!Lista.Any((Analitico x) => x.Selecionado)) { await ViewModel.ShowMessage("NECESSÁRIO SELECIONAR AO MENOS UM CLIENTE PARA PROSSEGUIR"); return; } if (Funcoes.IsWindowOpen("ENVIO DE E-MAIL")) { Funcoes.Destroy("ENVIO DE E-MAIL"); } ((Window)new HosterWindow((ContentControl)(object)new MalaDiretaView(Lista.Where((Analitico x) => x.Selecionado).Select((Func)((Analitico x) => new MalaDireta { Cliente = new Cliente { Id = x.Cliente.Id, Nome = x.Cliente.Nome, Nascimento = x.Cliente.Nascimento, VencimentoHabilitacao = x.Cliente.VencimentoCnh }, Apolice = x.Documento, Parcela = x.Parcela, Tela = ViewModel.Tela })).ToList()), "ENVIO DE E-MAIL", 1200.0, 600.0, canMaximize: true)).Show(); } private async void Grid_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { if (((Selector)Grid).SelectedItem != null && (!(ViewModel.Tipo == "PARCELAS") || !(ViewModel.Tipo == "APOLICES"))) { if (ViewModel.Tipo == "CLIENTES") { Analitico val = (Analitico)((Selector)Grid).SelectedItem; Cliente val2 = await ViewModel.CarregaCliente(val.Cliente.Id); ((Window)new HosterWindow((ContentControl)(object)new ClienteView(val2, lockInsert: true), "CADASTRO DE CLIENTE - " + val2.Nome)).Show(); } else { Analitico val3 = (Analitico)((Selector)Grid).SelectedItem; ((Window)new HosterWindow((ContentControl)(object)new ApoliceView(val3.Documento, lockInsert: true, invoke: false, (AcessoApolice)0, 0L), "CADASTRO DE APÓLICES - " + val3.Cliente.Nome)).Show(); } } } private async void Print_OnClick(object sender, RoutedEventArgs e) { ViewModel.Loading(isLoading: true); await ViewModel.Print(Grid); ViewModel.Loading(isLoading: false); } private async void Open_OnClick(object sender, RoutedEventArgs e) { if (((Selector)Grid).SelectedItem != null && (!(ViewModel.Tipo == "PARCELAS") || !(ViewModel.Tipo == "APOLICES"))) { if (ViewModel.Tipo == "CLIENTES") { Analitico val = (Analitico)((Selector)Grid).SelectedItem; Cliente val2 = await ViewModel.CarregaCliente(val.Cliente.Id); ((Window)new HosterWindow((ContentControl)(object)new ClienteView(val2, lockInsert: true), "CADASTRO DE CLIENTE - " + val2.Nome)).Show(); } else { Analitico val3 = (Analitico)((Selector)Grid).SelectedItem; ((Window)new HosterWindow((ContentControl)(object)new ApoliceView(val3.Documento, lockInsert: true, invoke: false, (AcessoApolice)0, 0L), "CADASTRO DE APÓLICES - " + val3.Cliente.Nome)).Show(); } } } [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] public void InitializeComponent() { if (!_contentLoaded) { _contentLoaded = true; Uri uri = new Uri("/Gestor.Application;component/componentes/dialoganaliticobi.xaml", UriKind.Relative); Application.LoadComponent((object)this, uri); } } [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] [EditorBrowsable(EditorBrowsableState.Never)] void IComponentConnector.Connect(int connectionId, object target) { //IL_0033: Unknown result type (might be due to invalid IL or missing references) //IL_003d: Expected O, but got Unknown //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_004a: Expected O, but got Unknown //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_006e: Expected O, but got Unknown //IL_0071: Unknown result type (might be due to invalid IL or missing references) //IL_007b: Expected O, but got Unknown //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0089: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Expected O, but got Unknown //IL_0095: Unknown result type (might be due to invalid IL or missing references) //IL_00a1: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown //IL_00ad: Unknown result type (might be due to invalid IL or missing references) //IL_00b9: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Expected O, but got Unknown switch (connectionId) { case 1: MainGrid = (Grid)target; break; case 2: Grid = (DataGrid)target; ((Control)Grid).MouseDoubleClick += new MouseButtonEventHandler(Grid_OnMouseDoubleClick); break; case 4: InfoButton = (DataGridTemplateColumn)target; break; case 6: Totalizacao = (TextBlock)target; break; case 7: ((MenuItem)target).Click += new RoutedEventHandler(Tarefas_OnClick); break; case 8: ((MenuItem)target).Click += new RoutedEventHandler(Email_OnClick); break; case 9: ((MenuItem)target).Click += new RoutedEventHandler(Print_OnClick); break; default: _contentLoaded = true; break; } } [DebuggerNonUserCode] [GeneratedCode("PresentationBuildTasks", "4.0.0.0")] [EditorBrowsable(EditorBrowsableState.Never)] void IStyleConnector.Connect(int connectionId, object target) { //IL_000a: 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_0020: Expected O, but got Unknown //IL_0021: 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_0037: Expected O, but got Unknown //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0045: Unknown result type (might be due to invalid IL or missing references) //IL_004f: Expected O, but got Unknown switch (connectionId) { case 3: ((ToggleButton)(CheckBox)target).Checked += new RoutedEventHandler(CheckBox_Checked); ((ToggleButton)(CheckBox)target).Unchecked += new RoutedEventHandler(CheckBox_Checked); break; case 5: ((ButtonBase)(Button)target).Click += new RoutedEventHandler(Open_OnClick); break; } } }