diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:38:18 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 13:38:18 +0000 |
| commit | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (patch) | |
| tree | e1c3b20ea08f0cf71122a1e73f0d395f8fd83874 /Gestor.Application/ViewModels/Relatorios/SinteticoViewModel.cs | |
| parent | 674ca83ba9243a9e95a7568c797668dab6aee26a (diff) | |
| download | gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.tar.gz gestor-1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1.zip | |
chore: location
Diffstat (limited to 'Gestor.Application/ViewModels/Relatorios/SinteticoViewModel.cs')
| -rw-r--r-- | Gestor.Application/ViewModels/Relatorios/SinteticoViewModel.cs | 424 |
1 files changed, 0 insertions, 424 deletions
diff --git a/Gestor.Application/ViewModels/Relatorios/SinteticoViewModel.cs b/Gestor.Application/ViewModels/Relatorios/SinteticoViewModel.cs deleted file mode 100644 index 6adc8e5..0000000 --- a/Gestor.Application/ViewModels/Relatorios/SinteticoViewModel.cs +++ /dev/null @@ -1,424 +0,0 @@ -using ClosedXML.Excel;
-using Gestor.Application.Componentes;
-using Gestor.Application.Helpers;
-using Gestor.Application.Model;
-using Gestor.Application.ViewModels.Generic;
-using Gestor.Common.Helpers;
-using Gestor.Model.Attributes;
-using Gestor.Model.Domain.Configuracoes;
-using Gestor.Model.Domain.Relatorios;
-using LiveCharts;
-using LiveCharts.Definitions.Series;
-using LiveCharts.Helpers;
-using LiveCharts.Wpf;
-using NReco.PdfGenerator;
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.ComponentModel;
-using System.Diagnostics;
-using System.Globalization;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-using System.Windows;
-using System.Windows.Forms;
-using System.Windows.Media;
-
-namespace Gestor.Application.ViewModels.Relatorios
-{
- public class SinteticoViewModel : BaseSegurosViewModel
- {
- private Visibility _unicaPaginaVisibility = Visibility.Collapsed;
-
- private Geometry _maximizeRestore = Geometry.Parse((string)System.Windows.Application.Current.Resources["Restore"]);
-
- private ObservableCollection<SinteticoSource> _series;
-
- private string _titulotela = string.Format("RELATÓRIO SINTÉTICO | VERSÃO GESTOR {0}", ApplicationHelper.Versao);
-
- public Geometry MaximizeRestore
- {
- get
- {
- return this._maximizeRestore;
- }
- set
- {
- this._maximizeRestore = value;
- base.OnPropertyChanged("MaximizeRestore");
- }
- }
-
- public string Relatorio
- {
- get;
- set;
- }
-
- public ObservableCollection<SinteticoSource> Series
- {
- get
- {
- return this._series;
- }
- set
- {
- this._series = value;
- base.OnPropertyChanged("Series");
- }
- }
-
- public string Titulotela
- {
- get
- {
- return this._titulotela;
- }
- set
- {
- this._titulotela = value;
- base.OnPropertyChanged("Titulotela");
- }
- }
-
- public Visibility UnicaPaginaVisibility
- {
- get
- {
- return this._unicaPaginaVisibility;
- }
- set
- {
- this._unicaPaginaVisibility = value;
- base.OnPropertyChanged("UnicaPaginaVisibility");
- }
- }
-
- public SinteticoViewModel(List<Sintetico> sintetico, string relatorio)
- {
- this.Relatorio = relatorio;
- this.GerarSintetico(sintetico);
- }
-
- public async Task GerarExcel(SinteticoSource sintetico)
- {
- List<Listagem> listagems = SinteticoViewModel.GerarRelacao(sintetico.Lista.ToList<ValorSintetico>());
- string tempPath = "";
- string str = "";
- List<ConfiguracaoSistema> configuracoes = Recursos.Configuracoes;
- if (!configuracoes.Any<ConfiguracaoSistema>((ConfiguracaoSistema x) => x.get_Configuracao() == 41))
- {
- tempPath = Path.GetTempPath();
- str = string.Format("{0}{1}.xlsx", tempPath, Guid.NewGuid());
- }
- else
- {
- using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
- {
- if (DialogResult.OK == folderBrowserDialog.ShowDialog())
- {
- tempPath = string.Concat(folderBrowserDialog.SelectedPath, "\\");
- Directory.CreateDirectory(tempPath);
- }
- else
- {
- str = null;
- return;
- }
- }
- DateTime date = Functions.GetNetworkTime().Date;
- str = string.Concat(tempPath, "SINTETICO ", date.ToShortDateString().Replace("/", ""), ".xlsx");
- }
- await Funcoes.GerarXls<Listagem>(new XLWorkbook(), "SINTÉTICO", listagems, null).SaveAs(str);
- Process.Start(str);
- str = null;
- }
-
- public async Task GerarPdf(SinteticoSource sintetico)
- {
- string str = await Funcoes.GenerateTable<Listagem>(SinteticoViewModel.GerarRelacao(sintetico.Lista.ToList<ValorSintetico>()), new List<string>(), false, false, "", null);
- TipoRelatorio tipoRelatorio = new TipoRelatorio();
- tipoRelatorio.set_Nome(sintetico.Titulo);
- tipoRelatorio.set_Inicio(DateTime.MinValue);
- tipoRelatorio.set_Fim(DateTime.MinValue);
- string str1 = Funcoes.ExportarHtml(tipoRelatorio, str, "60", "landscape", false, "");
- NRecoHtmlToPdfConverter nRecoHtmlToPdfConverter = new NRecoHtmlToPdfConverter();
- ((HtmlToPdfConverter)nRecoHtmlToPdfConverter).set_Orientation(1);
- ((HtmlToPdfConverter)nRecoHtmlToPdfConverter).set_Zoom(0.5f);
- byte[] numArray = ((HtmlToPdfConverter)nRecoHtmlToPdfConverter).GeneratePdf(str1);
- using (SaveFileDialog saveFileDialog = new SaveFileDialog())
- {
- saveFileDialog.Filter = "All Files|*.*";
- saveFileDialog.FileName = string.Format("RELATORIO FINANCEIRO_{0:ddMMyyyyhhmmss}", Funcoes.GetNetworkTime());
- if (DialogResult.OK != saveFileDialog.ShowDialog())
- {
- return;
- }
- else if (!File.Exists(string.Concat(saveFileDialog.FileName, ".pdf")))
- {
- File.WriteAllBytes(string.Concat(saveFileDialog.FileName, ".pdf"), numArray);
- Process.Start(string.Concat(saveFileDialog.FileName, ".pdf"));
- }
- else
- {
- string[] fileName = new string[] { "JÁ EXISTE UM ARQUIVO COM O NOME DE ", saveFileDialog.FileName, ".pdf NA PASTA SELECIONADA. ", Environment.NewLine, "TENTE NOVAMENTE EM OUTRA PASTA." };
- await base.ShowMessage(string.Concat(fileName), "OK", "", false);
- return;
- }
- }
- saveFileDialog = null;
- }
-
- private static List<Listagem> GerarRelacao(List<ValorSintetico> lista)
- {
- return lista.Select<ValorSintetico, Listagem>((ValorSintetico x) => {
- Listagem listagem = new Listagem();
- listagem.set_Agrupamento(x.get_Indice());
- listagem.set_Valor((x.get_Formato() == "VALOR" ? x.get_Valor().ToString("c2") : (x.get_Formato() == "PERCENTUAL" ? x.get_Valor().ToString("p2") : x.get_Valor().ToString(new CultureInfo("pt-BR")))));
- listagem.set_NomeRelatorio(x.get_NomeRelatorio());
- return listagem;
- }).ToList<Listagem>();
- }
-
- private static List<List<Listagem>> GerarRelacao(List<List<ValorSintetico>> listas)
- {
- List<List<Listagem>> lists = new List<List<Listagem>>();
- foreach (List<ValorSintetico> lista in listas)
- {
- lists.Add(SinteticoViewModel.GerarRelacao(lista));
- }
- return lists;
- }
-
- private void GerarSintetico(List<Sintetico> sintetico)
- {
- IChartValues chartValue;
- decimal num;
- this.UnicaPaginaVisibility = (this.Relatorio == "RELATÓRIO DE FECHAMENTO" ? Visibility.Visible : Visibility.Collapsed);
- this.Series = new ObservableCollection<SinteticoSource>();
- PropertyInfo[] properties = sintetico.First<Sintetico>().GetType().GetProperties();
- for (int i = 0; i < (int)properties.Length; i++)
- {
- PropertyInfo propertyInfo = properties[i];
- if (!(propertyInfo.Name == "ValidationEvent") && !(propertyInfo.Name == "Agrupamento") && !sintetico.All<Sintetico>((Sintetico s) => {
- object value;
- PropertyInfo property = s.GetType().GetProperty(propertyInfo.Name);
- value = (property != null ? property.GetValue(s, null) : null);
- return value == null;
- }))
- {
- object obj = propertyInfo.GetCustomAttributes(typeof(DescriptionAttribute), true).FirstOrDefault<object>();
- if (obj != null)
- {
- string description = ((DescriptionAttribute)obj).Description;
- SinteticoSource sinteticoSource = new SinteticoSource()
- {
- Titulo = description,
- Colecao = new SeriesCollection(),
- Lista = new ObservableCollection<ValorSintetico>()
- };
- object obj1 = propertyInfo.GetCustomAttributes(typeof(TipoAttribute), true).FirstOrDefault<object>();
- string str = "";
- if (obj1 != null)
- {
- str = ((TipoAttribute)obj1).get_Description();
- }
- sintetico = (
- from x in sintetico
- orderby propertyInfo.GetValue(x, null) descending
- select x).ToList<Sintetico>();
- foreach (Sintetico sintetico1 in sintetico)
- {
- bool flag = false;
- PieSeries pieSeries = new PieSeries();
- pieSeries.set_Title(sintetico1.get_Agrupamento());
- pieSeries.set_DataLabels(false);
- PieSeries pieSeries1 = pieSeries;
- if (str == "PERCENTUAL")
- {
- flag = (decimal)propertyInfo.GetValue(sintetico1) < decimal.Zero;
- ChartValues<decimal> chartValue1 = new ChartValues<decimal>();
- chartValue1.Add(Math.Abs((decimal)propertyInfo.GetValue(sintetico1)));
- chartValue = chartValue1;
- ObservableCollection<ValorSintetico> lista = sinteticoSource.Lista;
- ValorSintetico valorSintetico = new ValorSintetico();
- valorSintetico.set_Indice(string.Concat(sintetico1.get_Agrupamento(), (flag ? " (-)" : "")));
- valorSintetico.set_Valor(Math.Round((decimal)propertyInfo.GetValue(sintetico1) * new decimal(1, 0, 0, false, 2), 2));
- valorSintetico.set_Unidate("%");
- valorSintetico.set_Sinal((flag ? 1 : 0));
- valorSintetico.set_NomeRelatorio(description);
- lista.Add(valorSintetico);
- pieSeries1.set_LabelPoint((ChartPoint chartPoint) => ((decimal)propertyInfo.GetValue(sintetico1)).ToString("n2"));
- }
- else if (str == "VALOR")
- {
- flag = (decimal)propertyInfo.GetValue(sintetico1) < decimal.Zero;
- ChartValues<decimal> chartValue2 = new ChartValues<decimal>();
- chartValue2.Add(Math.Abs((decimal)propertyInfo.GetValue(sintetico1)));
- chartValue = chartValue2;
- ObservableCollection<ValorSintetico> observableCollection = sinteticoSource.Lista;
- ValorSintetico valorSintetico1 = new ValorSintetico();
- valorSintetico1.set_Indice(string.Concat(sintetico1.get_Agrupamento(), (flag ? " (-)" : "")));
- valorSintetico1.set_Valor(Math.Round((decimal)propertyInfo.GetValue(sintetico1), 2));
- valorSintetico1.set_Formato(str);
- valorSintetico1.set_Unidate("R$");
- valorSintetico1.set_Sinal((flag ? 1 : 0));
- valorSintetico1.set_NomeRelatorio(description);
- observableCollection.Add(valorSintetico1);
- pieSeries1.set_LabelPoint((ChartPoint chartPoint) => ((decimal)propertyInfo.GetValue(sintetico1)).ToString("n2"));
- }
- else
- {
- flag = (int)propertyInfo.GetValue(sintetico1) < 0;
- ChartValues<int> chartValue3 = new ChartValues<int>();
- chartValue3.Add(Math.Abs((int)propertyInfo.GetValue(sintetico1)));
- chartValue = chartValue3;
- ObservableCollection<ValorSintetico> lista1 = sinteticoSource.Lista;
- ValorSintetico valorSintetico2 = new ValorSintetico();
- valorSintetico2.set_Indice(string.Concat(sintetico1.get_Agrupamento(), (flag ? " (-)" : "")));
- valorSintetico2.set_Valor(decimal.Parse(propertyInfo.GetValue(sintetico1).ToString()));
- valorSintetico2.set_Formato(str);
- valorSintetico2.set_Sinal((flag ? 1 : 0));
- valorSintetico2.set_NomeRelatorio(description);
- lista1.Add(valorSintetico2);
- pieSeries1.set_LabelPoint((ChartPoint chartPoint) => ((int)propertyInfo.GetValue(sintetico1)).ToString("n"));
- }
- pieSeries1.set_Values(chartValue);
- sinteticoSource.Colecao.Add(pieSeries1);
- }
- if (obj1 != null && !(str == "PERCENTUAL"))
- {
- if (str != "VALOR")
- {
- if (this.Relatorio.Equals("RELATÓRIO DE FECHAMENTO"))
- {
- int num1 = sintetico.Sum<Sintetico>((Sintetico x) => (int)propertyInfo.GetValue(x, null));
- if (num1 != 0)
- {
- foreach (ValorSintetico listum in sinteticoSource.Lista)
- {
- num = (new decimal(100) * listum.get_Valor()) / num1;
- listum.set_Porcentagem(string.Concat(num.ToString("F"), "%"));
- }
- }
- }
- else
- {
- int num2 = sintetico.Sum<Sintetico>((Sintetico x) => (int)propertyInfo.GetValue(x, null));
- if (num2 != 0)
- {
- foreach (ValorSintetico listum1 in sinteticoSource.Lista)
- {
- num = (new decimal(100) * listum1.get_Valor()) / num2;
- listum1.set_Porcentagem(string.Concat(num.ToString("F"), "%"));
- }
- }
- ObservableCollection<ValorSintetico> observableCollection1 = sinteticoSource.Lista;
- ValorSintetico valorSintetico3 = new ValorSintetico();
- valorSintetico3.set_Indice("TOTAL");
- valorSintetico3.set_Valor(num2);
- valorSintetico3.set_Formato(str);
- valorSintetico3.set_Sinal((sintetico.Sum<Sintetico>((Sintetico x) => (int)propertyInfo.GetValue(x, null)) < 0 ? 1 : 0));
- valorSintetico3.set_Porcentagem("100%");
- observableCollection1.Add(valorSintetico3);
- }
- }
- else if (this.Relatorio.Equals("RELATÓRIO DE FECHAMENTO"))
- {
- decimal num3 = Math.Round(sintetico.Sum<Sintetico>((Sintetico x) => (decimal)propertyInfo.GetValue(x, null)), 2);
- if (num3 != decimal.Zero)
- {
- foreach (ValorSintetico listum2 in sinteticoSource.Lista)
- {
- num = (new decimal(100) * listum2.get_Valor()) / num3;
- listum2.set_Porcentagem(string.Concat(num.ToString("F"), "%"));
- }
- }
- }
- else
- {
- decimal num4 = Math.Round(sintetico.Sum<Sintetico>((Sintetico x) => (decimal)propertyInfo.GetValue(x, null)), 2);
- if (num4 != decimal.Zero)
- {
- foreach (ValorSintetico listum3 in sinteticoSource.Lista)
- {
- num = (new decimal(100) * listum3.get_Valor()) / num4;
- listum3.set_Porcentagem(string.Concat(num.ToString("F"), "%"));
- }
- }
- ObservableCollection<ValorSintetico> lista2 = sinteticoSource.Lista;
- ValorSintetico valorSintetico4 = new ValorSintetico();
- valorSintetico4.set_Indice("TOTAL");
- valorSintetico4.set_Valor(num4);
- valorSintetico4.set_Unidate("R$");
- valorSintetico4.set_Formato(str);
- valorSintetico4.set_Sinal((sintetico.Sum<Sintetico>((Sintetico x) => (decimal)propertyInfo.GetValue(x, null)) < decimal.Zero ? 1 : 0));
- valorSintetico4.set_Porcentagem("100%");
- lista2.Add(valorSintetico4);
- }
- }
- this.Series.Add(sinteticoSource);
- }
- }
- }
- }
-
- public async Task Print(SinteticoSource sintetico)
- {
- DateTime dateTime;
- DateTime dateTime1;
- string str = Funcoes.GerarGrafico(sintetico.Lista.ToList<ValorSintetico>());
- string str1 = await Funcoes.GenerateTable<Listagem>(SinteticoViewModel.GerarRelacao(sintetico.Lista.ToList<ValorSintetico>()), new List<string>(), true, false, "", null);
- TipoRelatorio tipoRelatorio = new TipoRelatorio();
- tipoRelatorio.set_Nome(sintetico.Titulo);
- DateTime? dateStart = sintetico.DateStart;
- dateTime = (dateStart.HasValue ? dateStart.GetValueOrDefault() : DateTime.MinValue);
- tipoRelatorio.set_Inicio(dateTime);
- dateStart = sintetico.DateFinal;
- dateTime1 = (dateStart.HasValue ? dateStart.GetValueOrDefault() : DateTime.MinValue);
- tipoRelatorio.set_Fim(dateTime1);
- string str2 = Funcoes.ExportarHtml(tipoRelatorio, str1, "60", "landscape", false, str);
- string tempPath = Path.GetTempPath();
- string str3 = string.Format("{0}{1}_{2:ddMMyyyyhhmmss}.html", tempPath, (new Regex(string.Concat("[", Regex.Escape(string.Concat(new string(Path.GetInvalidFileNameChars()), new string(Path.GetInvalidPathChars()))), "]"))).Replace(this.Relatorio, ""), Funcoes.GetNetworkTime());
- StreamWriter streamWriter = new StreamWriter(str3, true, Encoding.UTF8);
- streamWriter.Write(str2);
- streamWriter.Close();
- Process.Start(str3);
- str = null;
- }
-
- public async Task PrintUnica(SinteticoSource sintetico)
- {
- DateTime dateTime;
- DateTime dateTime1;
- List<List<ValorSintetico>> lists = new List<List<ValorSintetico>>();
- foreach (SinteticoSource series in this.Series)
- {
- lists.Add(series.Lista.ToList<ValorSintetico>());
- }
- string str = Funcoes.GerarGraficoUnico(lists);
- string str1 = await Funcoes.GenerateMultipleTable(SinteticoViewModel.GerarRelacao(lists), new List<string>(), true, false, "", null);
- TipoRelatorio tipoRelatorio = new TipoRelatorio();
- tipoRelatorio.set_Nome("RELATÓRIOS");
- DateTime? dateStart = sintetico.DateStart;
- dateTime = (dateStart.HasValue ? dateStart.GetValueOrDefault() : DateTime.MinValue);
- tipoRelatorio.set_Inicio(dateTime);
- dateStart = sintetico.DateFinal;
- dateTime1 = (dateStart.HasValue ? dateStart.GetValueOrDefault() : DateTime.MinValue);
- tipoRelatorio.set_Fim(dateTime1);
- string str2 = Funcoes.ExportarMultipleHtml(tipoRelatorio, str1, "60", "landscape", false, str);
- string tempPath = Path.GetTempPath();
- string str3 = string.Format("{0}{1}_{2:ddMMyyyyhhmmss}.html", tempPath, (new Regex(string.Concat("[", Regex.Escape(string.Concat(new string(Path.GetInvalidFileNameChars()), new string(Path.GetInvalidPathChars()))), "]"))).Replace(this.Relatorio, ""), Funcoes.GetNetworkTime());
- StreamWriter streamWriter = new StreamWriter(str3, true, Encoding.UTF8);
- streamWriter.Write(str2);
- streamWriter.Close();
- Process.Start(str3);
- str = null;
- }
- }
-}
\ No newline at end of file |