diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
| commit | 225aa1499e37faf9d38257caabbadc68d78b427e (patch) | |
| tree | 102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs new file mode 100644 index 0000000..46f1411 --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs @@ -0,0 +1,245 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using Gestor.Application.Actions; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos; +using Gestor.Model.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using Gestor.Model.Resources; + +namespace Gestor.Application.ViewModels.Generic; + +public class DialogEditarParcelasViewModel : BaseViewModel +{ + private List<Parcela> _parcelasOriginais; + + internal ParcelaServico ParcelaServico; + + private ObservableCollection<Parcela> _parcelas; + + private bool _isFatura; + + private string _status; + + private Parcela _selectedParcela; + + private Documento _selectedDocumento; + + public ObservableCollection<Parcela> Parcelas + { + get + { + return _parcelas; + } + set + { + _parcelas = value; + OnPropertyChanged("Parcelas"); + } + } + + public bool IsFatura + { + get + { + return _isFatura; + } + set + { + _isFatura = value; + OnPropertyChanged("IsFatura"); + } + } + + public string Status + { + get + { + return _status; + } + set + { + _status = value; + OnPropertyChanged("Status"); + } + } + + public Parcela SelectedParcela + { + get + { + return _selectedParcela; + } + set + { + _selectedParcela = value; + OnPropertyChanged("SelectedParcela"); + } + } + + public Documento SelectedDocumento + { + get + { + return _selectedDocumento; + } + set + { + _selectedDocumento = value; + OnPropertyChanged("SelectedDocumento"); + } + } + + public DialogEditarParcelasViewModel(Documento documento) + { + //IL_002f: Unknown result type (might be due to invalid IL or missing references) + //IL_0035: Invalid comparison between Unknown and I4 + SelectedDocumento = documento; + ParcelaServico = new ParcelaServico(); + Carregar(((DomainBase)documento).Id); + IsFatura = (int)documento.TipoRecebimento.GetValueOrDefault((TipoRecebimento)1) == 2; + } + + public async void Carregar(long id) + { + await CarregarParcelas(id); + } + + public async Task CarregarParcelas(long id) + { + ObservableCollection<Parcela> observableCollection = await new ParcelaServico().BuscarParcelasAsync(id); + _parcelasOriginais = new List<Parcela>(); + foreach (Parcela item in observableCollection) + { + _parcelasOriginais.Add((Parcela)((DomainBase)item).Clone()); + } + Parcelas = (IsFatura ? new ObservableCollection<Parcela>(observableCollection.OrderBy((Parcela x) => x.NumeroParcela)) : observableCollection); + } + + public async Task<bool> SalvarParcelas() + { + foreach (Parcela p in Parcelas) + { + Parcela val = _parcelasOriginais.First((Parcela x) => ((DomainBase)x).Id == ((DomainBase)p).Id); + if (!(p.Vencimento != val.Vencimento) && !(p.Valor != val.Valor)) + { + continue; + } + val.Vencimento = p.Vencimento; + val.Valor = p.Valor; + List<KeyValuePair<string, string>> list = SelectedParcela.Validate(Recursos.Configuracoes.Any((ConfiguracaoSistema x) => (int)x.Configuracao == 9), Recursos.Configuracoes.Any((ConfiguracaoSistema y) => (int)y.Configuracao == 11), true, Recursos.Configuracoes.Any((ConfiguracaoSistema x) => (int)x.Configuracao == 16)); + if (list.Count > 0) + { + string text = string.Join(", ", list.Select(delegate(KeyValuePair<string, string> x) + { + string[] array = x.Key.Split(new char[1] { '|' }); + return ((array.Length > 1) ? array[1] : x.Key) + ": " + x.Value + Environment.NewLine; + })); + Status = "NÃO FOI POSSÍVEL SALVAR DEVIDO AOS ERROS ABAIXO:" + Environment.NewLine + text; + return false; + } + await new ParcelaServico().Save(val, _parcelasOriginais); + } + RegistrarAcao($"EDITOU VENCIMENTO E/OU VALORES DAS PARCELAS/FATURAS DO DOCUMENTO DE ID {((DomainBase)Parcelas[0].Documento).Id}", ((DomainBase)Parcelas[0].Documento).Id, (TipoTela)5); + return true; + } + + public void AlterandoValor() + { + //IL_0042: Unknown result type (might be due to invalid IL or missing references) + //IL_0048: Invalid comparison between Unknown and I4 + //IL_0050: Unknown result type (might be due to invalid IL or missing references) + //IL_0056: Invalid comparison between Unknown and I4 + if (SelectedParcela.Documento == null) + { + SelectedParcela.Documento = SelectedDocumento; + } + SelectedParcela.Documento.Parcelas = Parcelas; + if ((int)SelectedDocumento.TipoRecebimento.GetValueOrDefault() == 1 && (int)SelectedParcela.SubTipo == 1 && SelectedParcela.Comissao == 0m) + { + SelectedParcela.Comissao = SelectedDocumento.Comissao; + } + SelectedParcela.Baixando = false; + AlterarValor(); + } + + public void AlterandoVencimento(Parcela parcela) + { + if (Recursos.Configuracoes.All((ConfiguracaoSistema y) => (int)y.Configuracao != 11) && parcela.Documento.Vigencia2.HasValue) + { + DateTime vencimento = parcela.Vencimento; + DateTime? vigencia = parcela.Documento.Vigencia2; + if (vigencia.HasValue && vencimento > vigencia.GetValueOrDefault() && ((DomainBase)parcela.Documento.Controle.Ramo).Id != 23) + { + Gestor.Application.Actions.Actions.AcionarSnackbar?.Invoke("DATA INVÁLIDA. " + Messages.VencimentoMaior); + parcela.Vencimento = _parcelasOriginais.First((Parcela x) => ((DomainBase)x).Id == ((DomainBase)parcela).Id).Vencimento; + } + } + if (Recursos.Configuracoes.All((ConfiguracaoSistema x) => (int)x.Configuracao != 9) && ((parcela.Documento.Vigencia1 > DateTime.MinValue && parcela.NumeroParcela == 1 && parcela.Vencimento < parcela.Documento.Vigencia1.AddDays(-30.0)) || (parcela.NumeroParcela != 1 && parcela.Vencimento < parcela.Documento.Vigencia1))) + { + Gestor.Application.Actions.Actions.AcionarSnackbar?.Invoke("DATA INVÁLIDA. " + Messages.VencimentoMenor); + parcela.Vencimento = _parcelasOriginais.First((Parcela x) => ((DomainBase)x).Id == ((DomainBase)parcela).Id).Vencimento; + } + Parcelas = new ObservableCollection<Parcela>(Parcelas.OrderBy((Parcela x) => x.NumeroParcela)); + } + + public void AlterarValor() + { + //IL_000f: Unknown result type (might be due to invalid IL or missing references) + //IL_0015: Invalid comparison between Unknown and I4 + if (SelectedParcela == null) + { + return; + } + if ((int)SelectedParcela.SubTipo == 1 && !IsFatura) + { + decimal valor = SelectedDocumento.PremioTotal - Parcelas.Where((Parcela x) => (int)x.SubTipo == 1 && ((DomainBase)x).Id != ((DomainBase)SelectedParcela).Id).Sum((Parcela x) => x.Valor); + decimal num = SelectedDocumento.PremioTotal - Parcelas.Where((Parcela x) => (int)x.SubTipo == 1 && ((DomainBase)x).Id < ((DomainBase)SelectedParcela).Id).Sum((Parcela x) => x.Valor); + num -= SelectedParcela.Valor; + decimal num2 = SelectedDocumento.NumeroParcelas - (decimal)SelectedParcela.NumeroParcela; + if (num2 == 0m) + { + num2 = 1m; + } + decimal valorDemais = ((num2 > 0m) ? (num / num2) : 0m); + if (valorDemais == 0m) + { + SelectedParcela.Valor = valor; + } + List<Parcela> parcelas = new List<Parcela> { SelectedParcela }; + decimal num3 = Math.Abs(valorDemais); + decimal? tolerancia = SelectedDocumento.Controle.Seguradora.Tolerancia; + if (((num3 > tolerancia.GetValueOrDefault()) & tolerancia.HasValue) && !Parcelas.Any((Parcela x) => (int)x.SubTipo == 1 && x.NumeroParcela > SelectedParcela.NumeroParcela)) + { + SelectedParcela.Valor = valor; + } + Parcelas.Where((Parcela x) => (int)x.SubTipo == 1 && x.NumeroParcela != SelectedParcela.NumeroParcela).ToList().ForEach(delegate(Parcela x) + { + if (x.NumeroParcela > SelectedParcela.NumeroParcela) + { + x.Valor = ((valorDemais > 0m) ? valorDemais : x.Valor); + x.Comissao = ((x.Comissao == 0m) ? SelectedDocumento.Comissao : x.Comissao); + } + parcelas.Add(x); + }); + foreach (Parcela item in parcelas.Where((Parcela x) => x.NumeroParcela >= SelectedParcela.NumeroParcela)) + { + item.Documento = SelectedDocumento; + if (((DomainBase)item).Id != ((DomainBase)SelectedParcela).Id) + { + item.Valor = valorDemais; + } + } + Parcelas = new ObservableCollection<Parcela>(parcelas.OrderBy((Parcela x) => x.NumeroParcela)); + } + else + { + SelectedParcela.Documento = SelectedDocumento; + } + } +} |