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/AeronauticoViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros.Itens/AeronauticoViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Seguros.Itens/AeronauticoViewModel.cs | 435 |
1 files changed, 435 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/AeronauticoViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/AeronauticoViewModel.cs new file mode 100644 index 0000000..54e530c --- /dev/null +++ b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/AeronauticoViewModel.cs @@ -0,0 +1,435 @@ +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.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; + +namespace Gestor.Application.ViewModels.Seguros.Itens; + +public class AeronauticoViewModel : ItemViewModel, IDisposable +{ + private new readonly ItemServico _itemServico; + + private readonly AeronauticoServico _servico; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + private bool _aero = true; + + private string _serie = "REGISTRO"; + + private string _prefixo = "PREFIXO"; + + private string _marinaAero = "AERÓDROMO"; + + 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 bool Aero + { + get + { + return _aero; + } + set + { + _aero = value; + OnPropertyChanged("Aero"); + } + } + + public string Serie + { + get + { + return _serie; + } + set + { + _serie = value; + OnPropertyChanged("Serie"); + } + } + + public string Prefixo + { + get + { + return _prefixo; + } + set + { + _prefixo = value; + OnPropertyChanged("Prefixo"); + } + } + + public string MarinaAero + { + get + { + return _marinaAero; + } + set + { + _marinaAero = value; + OnPropertyChanged("MarinaAero"); + } + } + + public AeronauticoViewModel(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_0088: 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 AeronauticoServico(); + 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_0077: Unknown result type (might be due to invalid IL or missing references) + List<Cobertura> obj = CoberturaViewModel.Coberturas?.ToList(); + ((DomainBase)SelectedItem).Id = 0L; + ((DomainBase)SelectedItem.Aeronautico).Id = 0L; + Item selectedItem = SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + selectedItem.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> { 13L }.Contains(((DomainBase)Ramo).Id)) + { + return; + } + 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; + return; + } + Loading(isLoading: true); + item = await _itemServico.BuscarItemPorIdAsync(((DomainBase)item).Id); + Item val = item; + val.Aeronautico = await _itemServico.BuscaAeronautico(((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.Aeronautico = new Aeronautico + { + Tipo = (TipoAeronautico)1 + }; + val.Substituicao = (substituir ? new long?(((DomainBase)base.ItemSubstituido).Id) : null); + Item item = val; + 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.Aeronautico.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() + { + SelectedItem.Descricao = $"{SelectedItem.Aeronautico.Tipo} - FABRICANTE: {SelectedItem.Aeronautico.Fabricante} - MODELO: {SelectedItem.Aeronautico.Modelo}"; + 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; + } + string acao = ((((DomainBase)SelectedItem).Id == 0L) ? "INCLUIU" : "ALTEROU"); + SelectedItem = await _itemServico.Save(SelectedItem); + 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); + 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 UpdateAero() + { + //IL_000c: Unknown result type (might be due to invalid IL or missing references) + Aero = ValidationHelper.GetCategory((Enum)(object)SelectedItem.Aeronautico.Tipo) == "Aero"; + Serie = (Aero ? "REGISTRO" : "SÉRIE"); + Prefixo = (Aero ? "PREFIXO" : "NOME"); + MarinaAero = (Aero ? "AERÓDROMO" : "MARINA"); + } + + 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)); + } +} |