summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
commit225aa1499e37faf9d38257caabbadc68d78b427e (patch)
tree102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs
parent1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff)
downloadgestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz
gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs252
1 files changed, 252 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs
new file mode 100644
index 0000000..1ea9c15
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Financeiro/PlanosViewModel.cs
@@ -0,0 +1,252 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Threading.Tasks;
+using Gestor.Application.Servicos.Financeiro;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Common.Validation;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Financeiro;
+using Gestor.Model.Domain.Generic;
+
+namespace Gestor.Application.ViewModels.Financeiro;
+
+public class PlanosViewModel : BaseFinanceiroViewModel
+{
+ private readonly PlanosServico _planosServico;
+
+ private ObservableCollection<Plano> _plano = new ObservableCollection<Plano>();
+
+ private ObservableCollection<Planos> _planosFiltrados = new ObservableCollection<Planos>();
+
+ private bool _isExpanded;
+
+ private Planos _selectedPlanos;
+
+ private Plano _selectedPlano;
+
+ private bool _ativo;
+
+ private long _ultimoId;
+
+ public List<Planos> Planos { get; set; }
+
+ public ObservableCollection<Plano> Plano
+ {
+ get
+ {
+ return _plano;
+ }
+ set
+ {
+ _plano = value;
+ OnPropertyChanged("Plano");
+ }
+ }
+
+ public ObservableCollection<Planos> PlanosFiltrados
+ {
+ get
+ {
+ return _planosFiltrados;
+ }
+ set
+ {
+ _planosFiltrados = value;
+ IsExpanded = value != null && value.Count > 0;
+ OnPropertyChanged("PlanosFiltrados");
+ }
+ }
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return _isExpanded;
+ }
+ set
+ {
+ _isExpanded = value;
+ OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public Planos SelectedPlanos
+ {
+ get
+ {
+ return _selectedPlanos;
+ }
+ set
+ {
+ _selectedPlanos = value;
+ Planos obj = value;
+ SelectedPlano = ((((obj != null) ? obj.Plano : null) != null) ? ((IEnumerable<Plano>)Plano).FirstOrDefault((Func<Plano, bool>)((Plano x) => ((DomainBase)x).Id == ((DomainBase)value.Plano).Id)) : null);
+ Planos obj2 = value;
+ if (obj2 != null && ((DomainBase)obj2).Id > 0)
+ {
+ _ultimoId = ((DomainBase)value).Id;
+ }
+ Planos obj3 = value;
+ VerificarEnables((obj3 != null) ? new long?(((DomainBase)obj3).Id) : null);
+ OnPropertyChanged("SelectedPlanos");
+ }
+ }
+
+ public Plano SelectedPlano
+ {
+ get
+ {
+ return _selectedPlano;
+ }
+ set
+ {
+ _selectedPlano = value;
+ OnPropertyChanged("SelectedPlano");
+ }
+ }
+
+ public bool Ativo
+ {
+ get
+ {
+ return _ativo;
+ }
+ set
+ {
+ _ativo = value;
+ OnPropertyChanged("Ativo");
+ }
+ }
+
+ public PlanosViewModel()
+ {
+ _planosServico = new PlanosServico();
+ base.EnableMenu = true;
+ Seleciona();
+ }
+
+ private async void Seleciona()
+ {
+ Loading(isLoading: true);
+ await PermissaoTela((TipoTela)28);
+ await SelecionaPlanos();
+ await SelecionaPlanos(PlanosFiltrados.FirstOrDefault());
+ Loading(isLoading: false);
+ }
+
+ private async Task SelecionaPlanos()
+ {
+ Planos = (await new BaseServico().BuscarPlanosAsync()).OrderByDescending((Planos x) => x.Ativo).ThenBy(delegate(Planos x)
+ {
+ Plano plano = x.Plano;
+ return (plano == null) ? null : plano.Descricao;
+ }).ThenBy((Planos x) => x.Descricao)
+ .ToList();
+ PlanosFiltrados = new ObservableCollection<Planos>(Planos);
+ }
+
+ public async Task SelecionaPlanos(Planos planos)
+ {
+ if (planos == null)
+ {
+ Alterar(alterar: false);
+ base.EnableMenu = false;
+ base.EnableAlterar = false;
+ return;
+ }
+ Loading(isLoading: true);
+ ObservableCollection<Planos> source = await _planosServico.BuscarPlanos();
+ DomainBase.Copy<Planos, Planos>(PlanosFiltrados.First((Planos x) => ((DomainBase)x).Id == ((DomainBase)planos).Id), source.First((Planos x) => ((DomainBase)x).Id == ((DomainBase)planos).Id));
+ if (Plano == null)
+ {
+ Plano = new ObservableCollection<Plano>((from x in await new BaseServico().BuscarPlanoAsync()
+ orderby x.Ativo descending, x.Descricao
+ select x).ToList());
+ }
+ SelectedPlanos = PlanosFiltrados.First((Planos x) => ((DomainBase)x).Id == ((DomainBase)planos).Id);
+ Loading(isLoading: false);
+ }
+
+ public void Incluir()
+ {
+ //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_0012: Expected O, but got Unknown
+ Planos selectedPlanos = new Planos
+ {
+ Plano = SelectedPlano
+ };
+ SelectedPlanos = selectedPlanos;
+ Alterar(alterar: true);
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Validate()
+ {
+ List<KeyValuePair<string, string>> errors = new List<KeyValuePair<string, string>>();
+ bool valida = true;
+ (await new BaseServico().BuscarPlanosAsync())?.ForEach(delegate(Planos x)
+ {
+ if (((DomainBase)x).Id != ((DomainBase)SelectedPlanos).Id && x.Descricao == SelectedPlanos.Descricao)
+ {
+ valida = false;
+ }
+ });
+ if (!valida)
+ {
+ errors.Add(new KeyValuePair<string, string>("Descricao", "UM SUBNÍVEL COM ESSE NOME JÁ EXISTE."));
+ }
+ return errors;
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ SelectedPlanos.Plano = SelectedPlano;
+ List<KeyValuePair<string, string>> errorMessages = SelectedPlanos.Validate();
+ List<KeyValuePair<string, string>> list = errorMessages;
+ list.AddRange(await Validate());
+ if (errorMessages.Count > 0)
+ {
+ return errorMessages;
+ }
+ SelectedPlanos.Plano = SelectedPlano;
+ SelectedPlanos = await _planosServico.Save(SelectedPlanos);
+ if (!_planosServico.Sucesso)
+ {
+ return null;
+ }
+ await SelecionaPlanos();
+ await SelecionaPlanos(PlanosFiltrados.First((Planos x) => ((DomainBase)x).Id == ((DomainBase)SelectedPlanos).Id));
+ Alterar(alterar: false);
+ ToggleSnackBar("SUBNÍVEL SALVO COM SUCESSO");
+ return null;
+ }
+
+ public async void CancelarAlteracao()
+ {
+ Loading(isLoading: true);
+ Alterar(alterar: false);
+ if (((DomainBase)SelectedPlanos).Id > 0)
+ {
+ await SelecionaPlanos();
+ }
+ await SelecionaPlanos(((IEnumerable<Planos>)PlanosFiltrados).FirstOrDefault((Func<Planos, bool>)((Planos x) => ((DomainBase)x).Id == _ultimoId)));
+ Loading(isLoading: false);
+ }
+
+ public async Task<ObservableCollection<Planos>> Filtrar(string value)
+ {
+ return await Task.Run(() => FiltrarPlanos(value));
+ }
+
+ public ObservableCollection<Planos> FiltrarPlanos(string filter)
+ {
+ PlanosFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Planos>(Planos) : new ObservableCollection<Planos>(from x in Planos
+ where ValidationHelper.RemoveDiacritics(x.Descricao.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter))
+ orderby Ativo descending, x.Descricao
+ select x));
+ return PlanosFiltrados;
+ }
+}