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.Seguros.Itens/VidaViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros.Itens/VidaViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Seguros.Itens/VidaViewModel.cs | 438 |
1 files changed, 438 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/VidaViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/VidaViewModel.cs new file mode 100644 index 0000000..6f59156 --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/VidaViewModel.cs @@ -0,0 +1,438 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels.Generic; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; + +namespace Gestor.Application.ViewModels.Seguros.Itens; + +public class VidaViewModel : ItemViewModel, IDisposable +{ + private new readonly ItemServico _itemServico; + + private readonly VidaServico _servico; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + private Visibility _atualizarCamposSaude; + + private Item ItemSelecionado { get; set; } + + private Ramo Ramo { get; } + + public bool Invoke { get; set; } + + public bool AllowAlterarExcluir + { + get + { + return _allowAlterarExcluir; + } + set + { + _allowAlterarExcluir = value; + OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public object Cobertura + { + get + { + return _cobertura; + } + set + { + _cobertura = value; + OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return _codigoItem; + } + set + { + _codigoItem = value; + OnPropertyChanged("CodigoItem"); + } + } + + public Item SelectedItem + { + get + { + return _selectedItem; + } + set + { + _selectedItem = value; + VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null); + OnPropertyChanged("SelectedItem"); + } + } + + public Visibility AtualizarCamposSaude + { + get + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + return _atualizarCamposSaude; + } + set + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + //IL_0002: Unknown result type (might be due to invalid IL or missing references) + _atualizarCamposSaude = value; + OnPropertyChanged("AtualizarCamposSaude"); + } + } + + public VidaViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Ramo ramo = null, bool endossoRenovacao = false) + { + //IL_0008: Unknown result type (might be due to invalid IL or missing references) + //IL_0012: Expected O, but got Unknown + //IL_0060: Unknown result type (might be due to invalid IL or missing references) + Invoke = itemSelecionado == null; + ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.Controle.Ramo; + if (Invoke) + { + ItemSelecionado = (Item)(((object)ItemSelecionado) ?? ((object)new Item())); + ItemSelecionado.Documento = ConsultaViewModel.DocumentoSelecionado; + } + _itemServico = new ItemServico(); + _servico = new VidaServico(); + Gestor.Application.Actions.Actions.UpdateItem = (Action<Item>)Delegate.Combine(Gestor.Application.Actions.Actions.UpdateItem, new Action<Item>(Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action<Item>)Delegate.Combine(Gestor.Application.Actions.Actions.SubstituirItem, new Action<Item>(Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action<Item, ManutencaoItem>)Delegate.Combine(Gestor.Application.Actions.Actions.ManterItem, new Action<Item, ManutencaoItem>(Manter)); + Seleciona(ItemSelecionado); + if (substituir) + { + Substituir(ItemSelecionado); + } + if (manutencao != null) + { + Manter(ItemSelecionado, manutencao); + } + AllowAlterarExcluir = !endossoRenovacao; + CarregaCobertura(); + } + + public void CarregaCobertura() + { + CoberturaViewModel.Item = ItemSelecionado; + CoberturaViewModel.Ramo = Ramo; + Cobertura = new CoberturaView(CoberturaViewModel); + } + + public void Descarregar() + { + Cobertura = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + //IL_0001: Unknown result type (might be due to invalid IL or missing references) + //IL_0007: Invalid comparison between Unknown and I4 + if ((int)manutencao.Tipo == 1) + { + base.ItemSubstituido = item; + } + Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + //IL_006d: Unknown result type (might be due to invalid IL or missing references) + //IL_0077: Expected O, but got Unknown + //IL_0149: Unknown result type (might be due to invalid IL or missing references) + //IL_00c0: Unknown result type (might be due to invalid IL or missing references) + List<Cobertura> obj = CoberturaViewModel.Coberturas?.ToList(); + List<long> list = new List<long> { 6L, 7L, 9L, 10L, 47L, 53L, 66L }; + if (SelectedItem.Vida == null) + { + SelectedItem.Vida = new Vida(); + } + if (((DomainBase)ItemSelecionado.Documento.Controle).Id != ((DomainBase)SelectedItem.Documento.Controle).Id) + { + Item selectedItem = SelectedItem; + if (selectedItem == null || selectedItem.Sinistros.Count() <= 0 || (int)manutencao.Tipo != 0) + { + if (!list.Contains(((DomainBase)Ramo).Id)) + { + ((DomainBase)SelectedItem).Id = 0L; + } + goto IL_0108; + } + } + ((DomainBase)SelectedItem).Id = 0L; + ((DomainBase)SelectedItem.Vida).Id = 0L; + goto IL_0108; + IL_0108: + Item selectedItem2 = SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + selectedItem2.Substituicao = ((itemSubstituido != null) ? new long?(((DomainBase)itemSubstituido).Id) : null); + SelectedItem.Documento = ItemSelecionado.Documento; + if ((int)manutencao.Tipo == 0) + { + SelectedItem.Sinistrado = false; + SelectedItem.Status = ""; + SelectedItem.Sinistro = null; + SelectedItem.Sinistros = null; + } + CoberturaViewModel.CarregaPadrao(); + CoberturaViewModel.Coberturas = new ObservableCollection<Cobertura>(); + obj?.ForEach(delegate(Cobertura x) + { + x.Item = SelectedItem; + CoberturaViewModel.Coberturas.Add(x); + }); + Alterar(alterar: true); + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await Incluir(substituir: true); + } + + private async void Seleciona(Item item) + { + Loading(isLoading: true); + await PermissaoTela((TipoTela)3); + await SelecionaItem(item); + Loading(isLoading: false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + if (item != null && LastAccessId == ((DomainBase)item).Id && (int)LastAccessTela == 9) + { + return; + } + base.Mantido = false; + if (!new List<long> { 6L, 7L, 9L, 10L, 47L, 53L, 66L }.Contains(((DomainBase)Ramo).Id)) + { + return; + } + AtualizarCamposSaude = (Visibility)((((DomainBase)Ramo).Id == 9) ? 2 : 0); + CoberturaViewModel.Ramo = Ramo; + if (CoberturaViewModel.CoberturasPadrao == null) + { + await CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || ((DomainBase)item).Id == 0L) + { + SelectedItem = null; + CoberturaViewModel.Coberturas = null; + base.IsVisible = (Visibility)0; + base.Titulares = new ObservableCollection<TitularesVida>(); + return; + } + Loading(isLoading: true); + item = await _itemServico.BuscarItemPorIdAsync(((DomainBase)item).Id); + Item val = item; + val.Vida = await _itemServico.BuscaVida(((DomainBase)item).Id); + await CarregarTitulares(((DomainBase)item).Id); + SelectedItem = item; + ((DomainBase)SelectedItem).Initialize(); + Initialized = true; + CoberturaViewModel.Item = item; + await CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + RegistrarAcao("ACESSOU ITEM DE DESCRIÇÃO \"" + SelectedItem.Descricao + "\"", ((DomainBase)SelectedItem).Id, (TipoTela)3, $"ID ITEM: {((DomainBase)SelectedItem).Id}\nID DOCUMENTO: {((DomainBase)SelectedItem.Documento).Id}\nRAMO: {SelectedItem.Documento.Controle.Ramo.Nome}\nCLIENTE: {SelectedItem.Documento.Controle.Cliente.Nome}\nID CLIENTE: {((DomainBase)SelectedItem.Documento.Controle.Cliente).Id}"); + } + LastAccessId = ((DomainBase)SelectedItem).Id; + LastAccessTela = (TipoTela)3; + CodigoItem = ((DomainBase)SelectedItem).Id.ToString(); + Loading(isLoading: false); + } + + public async Task Incluir(bool substituir = false) + { + List<Cobertura> coberturas = ((CoberturaViewModel.Coberturas == null) ? CoberturaViewModel.CarregaCoberturaPadrao().ToList() : CoberturaViewModel.Coberturas.ToList()); + Item val = new Item(); + val.Documento = ItemSelecionado.Documento; + Item val2 = val; + int? ordem = (substituir ? base.ItemSubstituido.Ordem : new int?(await QuantidadeDeItens(((DomainBase)ItemSelecionado.Documento.Controle).Id))); + val2.Ordem = ordem; + val.Vida = new Vida + { + Item = SelectedItem + }; + val.Substituicao = (substituir ? new long?(((DomainBase)base.ItemSubstituido).Id) : null); + Item item = val; + base.Titulares = new ObservableCollection<TitularesVida>(); + if (item.Ordem.GetValueOrDefault() == 2 && !(await ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO"))) + { + return; + } + bool flag = substituir; + if (flag) + { + flag = await ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO"); + } + if (flag) + { + ((DomainBase)SelectedItem).Id = 0L; + SelectedItem.Documento = ItemSelecionado.Documento; + } + else + { + SelectedItem = item; + SelectedItem.Vida.Item = item; + } + flag = item.Ordem > 1; + if (flag) + { + flag = await ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO"); + } + if (flag) + { + CoberturaViewModel.Coberturas = new ObservableCollection<Cobertura>(); + coberturas.ForEach(delegate(Cobertura x) + { + x.Item = SelectedItem; + CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + CoberturaViewModel.CarregaPadrao(); + } + if (substituir) + { + CoberturaViewModel.Coberturas = new ObservableCollection<Cobertura>(); + coberturas.ForEach(delegate(Cobertura x) + { + x.Item = SelectedItem; + CoberturaViewModel.Coberturas.Add(x); + }); + } + Alterar(alterar: true); + } + + public async Task<List<KeyValuePair<string, string>>> Salvar(List<TitularesVida> titularesGrid) + { + SelectedItem.Descricao = (string.IsNullOrWhiteSpace(SelectedItem.Descricao) ? (SelectedItem.Vida.Plano ?? "") : SelectedItem.Descricao); + SelectedItem.Titulares = titularesGrid; + List<KeyValuePair<string, string>> list = SelectedItem.Validate(); + if (list.Count > 0) + { + return list; + } + Item selectedItem = SelectedItem; + selectedItem.Coberturas = await CoberturaViewModel.LimpaCoberturas(); + string status = ((SelectedItem.Documento.Ordem <= 0) ? "" : (base.Mantido ? $"ITEM ALTERADO NO ENDOSSO ORDEM {SelectedItem.Documento.Ordem}" : ((base.ItemSubstituido != null) ? $"SUBSTITUIÇÃO DO ITEM {base.ItemSubstituido.Ordem} NO ENDOSSO ORDEM {SelectedItem.Documento.Ordem}" : $"ITEM INCLUÍDO NO ENDOSSO ORDEM {SelectedItem.Documento.Ordem}"))); + if (((DomainBase)SelectedItem).Id == 0L) + { + SelectedItem.Status = status; + } + await _itemServico.DeleteTitulares(base.ExcluirTitulares); + base.ExcluirTitulares = new List<TitularesVida>(); + string acao = ((((DomainBase)SelectedItem).Id == 0L) ? "INCLUIU" : "ALTEROU"); + SelectedItem = await _itemServico.Save(SelectedItem); + foreach (TitularesVida item in titularesGrid) + { + item.IdItem = ((DomainBase)SelectedItem).Id; + } + List<TitularesVida> list2 = new List<TitularesVida>(); + foreach (TitularesVida t in titularesGrid) + { + if (((DomainBase)t).Id == 0L) + { + if (t.Inicio.HasValue) + { + list2.Add(t); + } + continue; + } + TitularesVida val = base.OldTitulares.First((TitularesVida x) => ((DomainBase)x).Id == ((DomainBase)t).Id); + if (t.Codigo != val.Codigo || t.Inicio != val.Inicio || t.Fim != val.Fim || t.Fatura != val.Fatura || t.Nome != val.Nome || t.Observacao != val.Observacao || t.Nascimento != val.Nascimento || t.Cpf != val.Cpf || t.Matricula != val.Matricula || !(t.Premio == val.Premio) || !(t.Capital == val.Capital) || t.Tipo != val.Tipo || t.Dependente != val.Dependente) + { + list2.Add(t); + } + } + base.Titulares = new ObservableCollection<TitularesVida>(await _itemServico.SaveTitulares(list2)); + if (!_itemServico.Sucesso) + { + return null; + } + if (base.ItemSubstituido != null) + { + string descricao = (base.Mantido ? $"ITEM ALTERADO NO ENDOSSO ORDEM {SelectedItem.Documento.Ordem}" : $"ITEM SUBSTITUIDO NO ENDOSSO ORDEM {SelectedItem.Documento.Ordem}"); + await _itemServico.Substituir(base.ItemSubstituido, ((DomainBase)SelectedItem).Id, descricao); + } + base.Mantido = false; + await SelecionaItem(SelectedItem, registrar: false); + ItemSelecionado = SelectedItem; + if (Invoke) + { + ConsultaViewModel.ItemSelecionado = SelectedItem; + } + ToggleSnackBar(Ramo.Nome + " SALVO COM SUCESSO"); + RegistrarAcao(acao + " ITEM DE DESCRIÇÃO \"" + SelectedItem.Descricao + "\"", ((DomainBase)SelectedItem).Id, (TipoTela)3, $"ID ITEM: {((DomainBase)SelectedItem).Id}\nID DOCUMENTO: {((DomainBase)SelectedItem.Documento).Id}\nRAMO: {SelectedItem.Documento.Controle.Ramo.Nome}\nCLIENTE: {SelectedItem.Documento.Controle.Cliente.Nome}\nID CLIENTE: {((DomainBase)SelectedItem.Documento.Controle.Cliente).Id}"); + Alterar(alterar: false); + return null; + } + + public async void CancelarAlteracao() + { + Loading(isLoading: true); + base.AllSelected = false; + await SelecionaItem(ItemSelecionado, registrar: false); + await CoberturaViewModel.CancelarAlteracao(); + Alterar(alterar: false); + Loading(isLoading: false); + } + + public async Task<bool> Excluir() + { + if (SelectedItem == null || ((DomainBase)SelectedItem).Id == 0L) + { + return false; + } + if (!(await ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO"))) + { + return false; + } + Loading(isLoading: true); + bool num = await _servico.Delete(SelectedItem); + Loading(isLoading: false); + if (!num) + { + await ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM"); + return false; + } + RegistrarAcao("EXCLUIU ITEM DE DESCRIÇÃO \"" + SelectedItem.Descricao + "\"", ((DomainBase)SelectedItem).Id, (TipoTela)3, $"ID ITEM: {((DomainBase)SelectedItem).Id}\nID DOCUMENTO: {((DomainBase)SelectedItem.Documento).Id}\nRAMO: {SelectedItem.Documento.Controle.Ramo.Nome}\nCLIENTE: {SelectedItem.Documento.Controle.Cliente.Nome}\nID CLIENTE: {((DomainBase)SelectedItem.Documento.Controle.Cliente).Id}"); + ToggleSnackBar(Ramo.Nome + " EXCLUÍDO COM SUCESSO"); + return true; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action<Item>)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action<Item>(Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action<Item>)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action<Item>(Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action<Item, ManutencaoItem>)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action<Item, ManutencaoItem>(Manter)); + } +} |