summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Generic/DialogEditarParcelasViewModel.cs245
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;
+ }
+ }
+}