summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels/AnaliticoViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels/AnaliticoViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels/AnaliticoViewModel.cs172
1 files changed, 172 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels/AnaliticoViewModel.cs b/Decompiler/Gestor.Application.ViewModels/AnaliticoViewModel.cs
new file mode 100644
index 0000000..da3773b
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels/AnaliticoViewModel.cs
@@ -0,0 +1,172 @@
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Windows.Controls;
+using System.Windows.Data;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.BI;
+using Gestor.Model.Domain.Ferramentas;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Relatorios;
+
+namespace Gestor.Application.ViewModels;
+
+internal class AnaliticoViewModel : BaseSegurosViewModel
+{
+ private string _head;
+
+ public TipoTela Tela { get; set; } = (TipoTela)1;
+
+
+ public string Tipo { get; set; }
+
+ public string Head
+ {
+ get
+ {
+ return _head;
+ }
+ set
+ {
+ _head = value;
+ OnPropertyChanged("Head");
+ }
+ }
+
+ public AnaliticoViewModel(string tipo)
+ {
+ //IL_0002: Unknown result type (might be due to invalid IL or missing references)
+ Tipo = tipo;
+ string tipo2 = Tipo;
+ if (!(tipo2 == "PARCELAS"))
+ {
+ if (!(tipo2 == "APOLICES"))
+ {
+ Tela = (TipoTela)1;
+ }
+ else
+ {
+ Tela = (TipoTela)2;
+ }
+ }
+ else
+ {
+ Tela = (TipoTela)5;
+ }
+ }
+
+ public async Task Save(List<Tarefa> tarefas)
+ {
+ await new TarefaServico().Salvar(tarefas);
+ }
+
+ public async Task<Trilha> Salvar(Trilha destino)
+ {
+ List<Fase> fases2 = destino.Fases;
+ TarefaServico servico = new TarefaServico();
+ Trilha trilha = await servico.Salvar(destino);
+ if (!servico.Sucesso)
+ {
+ return null;
+ }
+ fases2.ForEach(delegate(Fase x)
+ {
+ x.Trilha = trilha;
+ });
+ fases2 = await servico.Salvar(fases2);
+ if (!servico.Sucesso)
+ {
+ return null;
+ }
+ trilha.Fases = fases2;
+ return trilha;
+ }
+
+ public async Task<List<Analitico>> Validar(List<Analitico> analitico, Trilha trilha)
+ {
+ TarefaServico tarefaServico = new TarefaServico();
+ List<long> ids;
+ switch (Tipo)
+ {
+ case "CLIENTES":
+ ids = analitico.Select((Analitico x) => x.Cliente.Id).ToList();
+ break;
+ default:
+ ids = analitico.Select((Analitico x) => ((DomainBase)x.Documento).Id).ToList();
+ break;
+ case "PARCELAS":
+ case "COMISSÃO":
+ ids = analitico.Select((Analitico x) => ((DomainBase)x.Parcela).Id).ToList();
+ break;
+ }
+ List<long> excluirIds = await tarefaServico.Validar(ids, ((DomainBase)trilha).Id);
+ List<Analitico> second;
+ switch (Head)
+ {
+ case "CLIENTES":
+ second = analitico.Where((Analitico x) => excluirIds.Contains(x.Cliente.Id)).ToList();
+ break;
+ default:
+ second = analitico.Where((Analitico x) => excluirIds.Contains(((DomainBase)x.Documento).Id)).ToList();
+ break;
+ case "PARCELAS":
+ case "COMISSÃO":
+ second = analitico.Where((Analitico x) => excluirIds.Contains(((DomainBase)x.Parcela).Id)).ToList();
+ break;
+ }
+ return analitico.Except(second).ToList();
+ }
+
+ private async Task<string> GerarHtml(DataGrid grid)
+ {
+ List<string> first = (from x in typeof(Analitico).GetProperties()
+ select x.Name).ToList();
+ List<string> list = new List<string>();
+ for (int i = 0; i < grid.Columns.Count; i++)
+ {
+ if (!(grid.Columns[i] is DataGridTemplateColumn))
+ {
+ DataGridColumn obj = grid.Columns[i];
+ BindingBase binding = ((DataGridBoundColumn)((obj is DataGridBoundColumn) ? obj : null)).Binding;
+ Binding val = (Binding)(object)((binding is Binding) ? binding : null);
+ list.Add(val.Path.Path);
+ }
+ }
+ List<string> colunasOcultas = first.Except(list).ToList();
+ string text = Funcoes.CreateCard("", await Funcoes.GenerateTable((from Analitico x in (IEnumerable)((ItemsControl)grid).Items
+ where x.Selecionado
+ select x).ToList(), colunasOcultas, grafico: false, propertyName: true));
+ return Funcoes.ExportarHtml(new TipoRelatorio
+ {
+ Nome = "ANALÍTICO - " + Head
+ }, text ?? "");
+ }
+
+ public async Task Print(DataGrid grid)
+ {
+ if (!((IEnumerable)((ItemsControl)grid).Items).Cast<Analitico>().Any((Analitico x) => x.Selecionado))
+ {
+ await ShowMessage("É NECESSÁRIO SELECIONAR AO MENOS UM DOCUMENTO");
+ return;
+ }
+ string value = await GerarHtml(grid);
+ if (!string.IsNullOrEmpty(value))
+ {
+ string tempPath = Path.GetTempPath();
+ string text = string.Format("{0}{1}_{2:ddMMyyyyhhmmss}.html", tempPath, new Regex("[" + Regex.Escape(new string(Path.GetInvalidFileNameChars()) + new string(Path.GetInvalidPathChars())) + "]").Replace(Head, ""), Funcoes.GetNetworkTime());
+ StreamWriter streamWriter = new StreamWriter(text, append: true, Encoding.UTF8);
+ streamWriter.Write(value);
+ streamWriter.Close();
+ Process.Start(text);
+ }
+ }
+}