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/MenuItemViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels/MenuItemViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels/MenuItemViewModel.cs | 798 |
1 files changed, 798 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels/MenuItemViewModel.cs b/Decompiler/Gestor.Application.ViewModels/MenuItemViewModel.cs new file mode 100644 index 0000000..10e8bf1 --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels/MenuItemViewModel.cs @@ -0,0 +1,798 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Linq; +using System.Threading.Tasks; +using System.Windows; +using Gestor.Application.Actions; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Application.Views.Seguros.Itens; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; + +namespace Gestor.Application.ViewModels; + +public class MenuItemViewModel : BaseSegurosViewModel +{ + private readonly ItemServico _servico; + + private string _acaoItens = "MANTER"; + + private readonly Documento _documentoSelecionado; + + public bool AlterandoSelectedItem; + + private bool _endossoRenovacao; + + private ObservableCollection<Item> _itens = new ObservableCollection<Item>(); + + private ObservableCollection<Item> _itensFiltrados = new ObservableCollection<Item>(); + + private Item _selectedItem = new Item(); + + private bool _mostrarLista; + + private bool _isExpanded = true; + + private ManutencaoItem _manutencao; + + private object _view; + + private bool _allSelectedChanging; + + private bool? _allSelected = false; + + private string _manterTodosText = "MANTER TODOS OS ITENS"; + + private string _manterText = "MANTER ITENS"; + + public long Ramo { get; set; } + + public bool EndossoRenovacao + { + get + { + return _endossoRenovacao; + } + set + { + _endossoRenovacao = value; + OnPropertyChanged("EndossoRenovacao"); + } + } + + public ObservableCollection<Item> Itens + { + get + { + return _itens; + } + set + { + _itens = value; + OnPropertyChanged("Itens"); + } + } + + public ObservableCollection<Item> ItensFiltrados + { + get + { + return _itensFiltrados; + } + set + { + _itensFiltrados = value; + IsExpanded = value != null && value.Count > 0; + foreach (Item itensFiltrado in ItensFiltrados) + { + itensFiltrado.PropertyChanged += EntryOnPropertyChanged; + } + OnPropertyChanged("ItensFiltrados"); + } + } + + public Item SelectedItem + { + get + { + return _selectedItem; + } + set + { + WorkOnSelectedItem(value); + _selectedItem = value; + OnPropertyChanged("SelectedItem"); + } + } + + public bool MostrarLista + { + get + { + return _mostrarLista; + } + set + { + _mostrarLista = value; + OnPropertyChanged("MostrarLista"); + } + } + + public bool IsExpanded + { + get + { + return _isExpanded; + } + set + { + _isExpanded = value; + OnPropertyChanged("IsExpanded"); + } + } + + public ManutencaoItem Manutencao + { + get + { + return _manutencao; + } + set + { + _manutencao = value; + OnPropertyChanged("Manutencao"); + } + } + + public object View + { + get + { + return _view; + } + set + { + _view = value; + OnPropertyChanged("View"); + } + } + + private bool Carregando { get; set; } + + public bool? AllSelected + { + get + { + return _allSelected; + } + set + { + if (value != _allSelected) + { + _allSelected = value; + AllSelectedChanged(); + Itens = new ObservableCollection<Item>(Itens); + OnPropertyChanged("AllSelected"); + } + } + } + + public string ManterTodosText + { + get + { + return _manterTodosText; + } + set + { + _manterTodosText = value; + OnPropertyChanged("ManterTodosText"); + } + } + + public string ManterText + { + get + { + return _manterText; + } + set + { + _manterText = value; + OnPropertyChanged("ManterText"); + } + } + + public MenuItemViewModel(long ramo, ManutencaoItem manutencao) + { + //IL_0022: Unknown result type (might be due to invalid IL or missing references) + //IL_002c: Expected O, but got Unknown + //IL_00e0: Unknown result type (might be due to invalid IL or missing references) + //IL_00e6: Invalid comparison between Unknown and I4 + if (ramo == 6 || ramo == 7 || ramo == 9 || ramo == 10 || ramo == 53 || ramo == 66) + { + _acaoItens = "MOVER"; + } + _manterTodosText = _acaoItens + " TODOS OS ITENS"; + _manterText = _acaoItens + " ITEM"; + Ramo = ramo; + _servico = new ItemServico(); + _documentoSelecionado = ((manutencao == null) ? ConsultaViewModel.DocumentoSelecionado : manutencao.Documento); + if (manutencao != null && (int)manutencao.Tipo == 2) + { + ConsultaViewModel.FiltrarItens = 4; + } + Seleciona(manutencao == null); + if (manutencao != null) + { + Manutencao = manutencao; + MostrarLista = true; + } + } + + public async void Seleciona(bool item = true) + { + if (!item || ConsultaViewModel.ItemSelecionado != null) + { + await SelecionaItens(ConsultaViewModel.FiltrarItens, ConsultaViewModel.ItemSelecionado); + } + else + { + Load(); + } + } + + public async void RecarregarItens(Item item) + { + ManutencaoItem manutencao = Manutencao; + if (manutencao != null && (int)manutencao.Tipo == 0) + { + ItensFiltrados.Remove(SelectedItem); + Itens.Remove(SelectedItem); + if (ItensFiltrados.Count == 0) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + return; + } + AllSelected = false; + ManterTodosText = _acaoItens + " TODOS OS ITENS"; + SelecionaItem(ItensFiltrados.First()); + return; + } + ManutencaoItem manutencao2 = Manutencao; + if (manutencao2 != null && (int)manutencao2.Tipo == 2) + { + ConsultaViewModel.FiltrarItens = 4; + } + await SelecionaItens(ConsultaViewModel.FiltrarItens, (Item)(((object)item) ?? ((object)new Item + { + Id = 0L + }))); + AlterandoSelectedItem = true; + SelectedItem = (Item)((item != null) ? ((object)(((IEnumerable<Item>)Itens).FirstOrDefault((Func<Item, bool>)((Item x) => ((DomainBase)x).Id == ((DomainBase)item).Id)) ?? Itens.FirstOrDefault())) : ((object)((Itens.Count > 0) ? Itens[0] : null))); + AlterandoSelectedItem = false; + } + + public async Task SelecionaItens(int type, Item item = null) + { + Loading(isLoading: true); + Carregando = true; + switch (type) + { + default: + Itens = await _servico.BuscarItens(((DomainBase)_documentoSelecionado.Controle).Id, (StatusItem)0); + break; + case 1: + case 2: + Itens = await _servico.BuscarItens(((DomainBase)_documentoSelecionado).Id, (StatusItem)2); + break; + case 3: + Itens = await _servico.BuscarItens(((DomainBase)_documentoSelecionado.Controle).Id, (StatusItem)1); + break; + case 4: + Itens = await _servico.BuscarItens(((DomainBase)_documentoSelecionado.Controle).Id, (StatusItem)3); + break; + } + ItensFiltrados = Itens; + if (item != null && ((DomainBase)item).Id > 0) + { + AlterandoSelectedItem = true; + SelectedItem = ((ItensFiltrados != null && ItensFiltrados.Count > 0) ? ((IEnumerable<Item>)ItensFiltrados).FirstOrDefault((Func<Item, bool>)((Item x) => ((DomainBase)x).Id == ((DomainBase)item).Id)) : null); + Gestor.Application.Actions.Actions.ScrollToItem?.Invoke(); + AlterandoSelectedItem = false; + } + MenuItemViewModel menuItemViewModel = this; + int mostrarLista; + if (!MostrarLista) + { + ObservableCollection<Item> itens = Itens; + mostrarLista = ((itens != null && itens.Count > 1) ? 1 : 0); + } + else + { + mostrarLista = 1; + } + menuItemViewModel.MostrarLista = (byte)mostrarLista != 0; + Carregando = false; + Loading(isLoading: false); + } + + private void WorkOnSelectedItem(Item value) + { + ConsultaViewModel.ItemSelecionado = value; + Load(); + } + + private async void Load(bool substituir = false, ManutencaoItem manutencao = null) + { + long ramo = Ramo; + if (ramo <= 38) + { + long num = ramo - 1; + if ((ulong)num <= 19uL) + { + switch (num) + { + case 4L: + goto IL_00f3; + case 0L: + case 1L: + case 2L: + case 14L: + case 17L: + goto IL_01e8; + case 12L: + goto IL_02dd; + case 19L: + goto IL_03d2; + case 5L: + case 6L: + case 8L: + case 9L: + goto IL_04c7; + case 3L: + case 7L: + case 10L: + case 11L: + case 13L: + case 15L: + case 16L: + case 18L: + goto IL_06b1; + } + } + if (ramo == 30) + { + goto IL_01e8; + } + long num2 = ramo - 36; + if ((ulong)num2 <= 2uL) + { + switch (num2) + { + case 1L: + break; + case 2L: + goto IL_01e8; + case 0L: + goto IL_05bc; + default: + goto IL_06b1; + } + goto IL_00f3; + } + } + else if (ramo == 47 || ramo == 53 || ramo == 66) + { + goto IL_04c7; + } + goto IL_06b1; + IL_00f3: + if (View != null && View.GetType() == typeof(AutoView)) + { + await ((AutoView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((AutoView)View).Substituir(); + } + if (manutencao != null) + { + ((AutoView)View).Manter(manutencao); + } + return; + } + View = new AutoView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + IL_06b1: + if (View != null && View.GetType() == typeof(RiscosDiversosView)) + { + await ((RiscosDiversosView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((RiscosDiversosView)View).Substituir(); + } + if (manutencao != null) + { + ((RiscosDiversosView)View).Manter(manutencao); + } + return; + } + View = new RiscosDiversosView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + IL_05bc: + if (View != null && View.GetType() == typeof(ConsorcioView)) + { + await ((ConsorcioView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((ConsorcioView)View).Substituir(); + } + if (manutencao != null) + { + ((ConsorcioView)View).Manter(manutencao); + } + return; + } + View = new ConsorcioView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + IL_079e: + base.IsVisible = (Visibility)0; + return; + IL_01e8: + if (View != null && View.GetType() == typeof(PatrimonialView)) + { + await ((PatrimonialView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((PatrimonialView)View).Substituir(); + } + if (manutencao != null) + { + ((PatrimonialView)View).Manter(manutencao); + } + return; + } + View = new PatrimonialView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + IL_02dd: + if (View != null && View.GetType() == typeof(AeronauticoView)) + { + await ((AeronauticoView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((AeronauticoView)View).Substituir(); + } + if (manutencao != null) + { + ((AeronauticoView)View).Manter(manutencao); + } + return; + } + View = new AeronauticoView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + IL_04c7: + if (View != null && View.GetType() == typeof(VidaView)) + { + await ((VidaView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((VidaView)View).Substituir(); + } + if (manutencao != null) + { + ((VidaView)View).Manter(manutencao); + } + return; + } + View = new VidaView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + IL_03d2: + if (View != null && View.GetType() == typeof(GranizoView)) + { + await ((GranizoView)View).Selecionar(ConsultaViewModel.ItemSelecionado); + if (substituir) + { + ((GranizoView)View).Substituir(); + } + if (manutencao != null) + { + ((GranizoView)View).Manter(manutencao); + } + return; + } + View = new GranizoView(this, lockInsert: false, substituir, manutencao, null, null, EndossoRenovacao); + goto IL_079e; + } + + public void SelecionaItem(Item item) + { + if (!Carregando) + { + AlterandoSelectedItem = true; + SelectedItem = item; + ConsultaViewModel.ItemSelecionado = SelectedItem; + AlterandoSelectedItem = false; + } + } + + internal async Task<List<Item>> Filtrar(string value) + { + return await Task.Run(() => FiltrarItem(value)); + } + + public List<Item> FiltrarItem(string filter) + { + ItensFiltrados = (string.IsNullOrWhiteSpace(filter) ? Itens : new ObservableCollection<Item>(from x in Itens + where ValidationHelper.RemoveDiacritics(x.Descricao.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)) + orderby x.Ordem + select x)); + return ItensFiltrados.ToList(); + } + + public async void CancelarItem(Item item) + { + if (item != null) + { + Loading(isLoading: true); + await _servico.Cancelar(item, $"CANCELADO NO ENDOSSO ORDEM {Manutencao.Documento.Ordem}", ((DomainBase)Manutencao.Documento).Id); + ToggleSnackBar("ITEM CANCELADO COM SUCESSO"); + Loading(isLoading: false); + RecarregarItens(item); + } + } + + public void Substituir(Item item) + { + Gestor.Application.Actions.Actions.EnableMenu?.Invoke(obj: false); + ConsultaViewModel.ItemSelecionado = item; + Load(substituir: true); + } + + public void Manter(Item item) + { + Gestor.Application.Actions.Actions.EnableMenu?.Invoke(obj: false); + ConsultaViewModel.ItemSelecionado = item; + Load(substituir: false, Manutencao); + } + + public async void ManterItens() + { + Gestor.Application.Actions.Actions.EnableMenu?.Invoke(obj: false); + Gestor.Application.Actions.Actions.EnableMainMenu?.Invoke(obj: false); + Loading(isLoading: true); + int ordem = 1; + foreach (Item item in (ManterTodosText == _acaoItens + " TODOS OS ITENS") ? new List<Item>(Itens) : new List<Item>(Itens.Where((Item x) => x.Selecionado))) + { + Item itemManter = await _servico.BuscarItemPorIdAsync(((DomainBase)item).Id); + Item val = itemManter; + val.Coberturas = await _servico.BuscarCoberturasPorItemAsync(((DomainBase)item).Id); + bool moverTitulares = false; + ((DomainBase)itemManter).Id = 0L; + itemManter.Sinistrado = false; + itemManter.Sinistros = null; + itemManter.Documento = ConsultaViewModel.DocumentoSelecionado; + itemManter.Ordem = ordem; + ordem++; + foreach (Cobertura cobertura in itemManter.Coberturas) + { + ((DomainBase)cobertura).Id = 0L; + cobertura.Item = itemManter; + } + long ramo = Ramo; + if (ramo <= 36) + { + long num = ramo - 1; + if ((ulong)num <= 19uL) + { + switch (num) + { + case 4L: + goto IL_0385; + case 0L: + case 1L: + case 2L: + case 14L: + case 17L: + goto IL_0537; + case 12L: + goto IL_0608; + case 19L: + goto IL_06d9; + case 5L: + case 6L: + case 8L: + case 9L: + goto IL_07aa; + case 3L: + case 7L: + case 10L: + case 11L: + case 13L: + case 15L: + case 16L: + case 18L: + goto IL_0953; + } + } + if (ramo == 36) + { + val = itemManter; + val.Consorcio = await _servico.BuscaConsorcio(((DomainBase)item).Id); + itemManter.Consorcio.Item = itemManter; + ((DomainBase)itemManter.Consorcio).Id = 0L; + goto IL_0a20; + } + } + else + { + if (ramo == 37) + { + goto IL_0385; + } + if (ramo == 53 || ramo == 66) + { + goto IL_07aa; + } + } + goto IL_0953; + IL_0a20: + itemManter.Status = ""; + item.Substituido = null; + itemManter = await _servico.Save(itemManter); + if (moverTitulares && ((DomainBase)itemManter).Id != ((DomainBase)item).Id) + { + List<TitularesVida> list = await _servico.BuscaTitularesVida(((DomainBase)item).Id); + if (list.Count > 0) + { + list.ForEach(delegate(TitularesVida t) + { + t.IdItem = ((DomainBase)itemManter).Id; + }); + await _servico.SaveTitulares(list); + } + } + ItensFiltrados.Remove(item); + Itens.Remove(item); + continue; + IL_07aa: + val = itemManter; + val.Vida = await _servico.BuscaVida(((DomainBase)item).Id); + itemManter.Vida.Item = itemManter; + ((DomainBase)itemManter.Vida).Id = 0L; + moverTitulares = true; + goto IL_0a20; + IL_0385: + val = itemManter; + val.Auto = await _servico.BuscaAuto(((DomainBase)item).Id); + itemManter.Auto.Item = itemManter; + ((DomainBase)itemManter.Auto).Id = 0L; + if (itemManter.Auto != null && itemManter.Auto.Placa == null) + { + await ShowMessage($"ITEM {itemManter.Ordem} ENCONTRADO SEM PLACA."); + Loading(isLoading: false); + Gestor.Application.Actions.Actions.EnableMenu?.Invoke(obj: true); + Gestor.Application.Actions.Actions.EnableMainMenu?.Invoke(obj: true); + return; + } + goto IL_0a20; + IL_0953: + val = itemManter; + val.RiscosDiversos = await _servico.BuscaRiscosDiversos(((DomainBase)item).Id); + itemManter.RiscosDiversos.Item = itemManter; + ((DomainBase)itemManter.RiscosDiversos).Id = 0L; + goto IL_0a20; + IL_06d9: + val = itemManter; + val.Granizo = await _servico.BuscaGranizo(((DomainBase)item).Id); + itemManter.Granizo.Item = itemManter; + ((DomainBase)itemManter.Granizo).Id = 0L; + goto IL_0a20; + IL_0608: + val = itemManter; + val.Aeronautico = await _servico.BuscaAeronautico(((DomainBase)item).Id); + itemManter.Aeronautico.Item = itemManter; + ((DomainBase)itemManter.Aeronautico).Id = 0L; + goto IL_0a20; + IL_0537: + val = itemManter; + val.Patrimonial = await _servico.BuscaPatrimonial(((DomainBase)item).Id); + itemManter.Patrimonial.Item = itemManter; + ((DomainBase)itemManter.Patrimonial).Id = 0L; + goto IL_0a20; + } + Loading(isLoading: false); + Gestor.Application.Actions.Actions.EnableMenu?.Invoke(obj: true); + Gestor.Application.Actions.Actions.EnableMainMenu?.Invoke(obj: true); + if (ItensFiltrados.Count == 0) + { + Gestor.Application.Actions.Actions.AcessaTela?.Invoke((TipoTela)21, ""); + return; + } + AllSelected = false; + ManterTodosText = _acaoItens + " TODOS OS ITENS"; + SelecionaItem(ItensFiltrados.First()); + } + + public async void Reativar(Item item) + { + if (item != null) + { + Loading(isLoading: true); + await _servico.Reativar(item, "ITEM REATIVADO PELO USUARIO " + Recursos.Usuario.Nome); + ToggleSnackBar("ITEM REATIVADO COM SUCESSO"); + Loading(isLoading: false); + RecarregarItens(item); + } + } + + private void AllSelectedChanged() + { + if (_allSelectedChanging) + { + return; + } + try + { + _allSelectedChanging = true; + if (!AllSelected.HasValue) + { + return; + } + ManterTodosText = (AllSelected.Value ? (_acaoItens + " ITENS SELECIONADOS") : (_acaoItens + " TODOS OS ITENS")); + foreach (Item iten in Itens) + { + iten.Selecionado = AllSelected.Value; + } + } + finally + { + _allSelectedChanging = false; + } + } + + private void EntryOnPropertyChanged(object sender, PropertyChangedEventArgs args) + { + if (args.PropertyName == "Selecionado") + { + RecheckAllSelected(); + } + } + + private void RecheckAllSelected() + { + if (_allSelectedChanging) + { + return; + } + try + { + _allSelectedChanging = true; + if (Itens.All((Item e) => e.Selecionado)) + { + AllSelected = true; + ManterTodosText = _acaoItens + " ITENS SELECIONADOS"; + } + else if (Itens.All((Item e) => !e.Selecionado)) + { + AllSelected = false; + ManterTodosText = _acaoItens + " TODOS OS ITENS"; + } + else + { + AllSelected = null; + ManterTodosText = _acaoItens + " ITENS SELECIONADOS"; + } + } + finally + { + _allSelectedChanging = false; + } + } +} |