summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
commit225aa1499e37faf9d38257caabbadc68d78b427e (patch)
tree102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs
parent1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff)
downloadgestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz
gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs530
1 files changed, 530 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs
new file mode 100644
index 0000000..d0e5947
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/PatrimonialViewModel.cs
@@ -0,0 +1,530 @@
+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;
+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 PatrimonialViewModel : ItemViewModel, IDisposable
+{
+ private new readonly ItemServico _itemServico;
+
+ private readonly PatrimonialServico _servico;
+
+ private bool _allowAlterarExcluir = true;
+
+ private object _cobertura;
+
+ private string _codigoItem;
+
+ private Item _selectedItem = new Item();
+
+ private Visibility _visibilityTipoMoradia = (Visibility)2;
+
+ private Visibility _visibilityFianca = (Visibility)2;
+
+ private Visibility _visibilityPatrimonial;
+
+ private string _bensInformacoes = "BENS/INFORMAÇÕES";
+
+ private string _locatarioTomador1 = "LOCATÁRIO 1:";
+
+ private string _locatarioTomador2 = "LOCATÁRIO 2:";
+
+ private string _locatarioTomador3 = "LOCATÁRIO 3:";
+
+ private Visibility _visibilityDescricao = (Visibility)2;
+
+ 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 VisibilityTipoMoradia
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityTipoMoradia;
+ }
+ 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)
+ _visibilityTipoMoradia = value;
+ OnPropertyChanged("VisibilityTipoMoradia");
+ }
+ }
+
+ public Visibility VisibilityFianca
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityFianca;
+ }
+ 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)
+ _visibilityFianca = value;
+ OnPropertyChanged("VisibilityFianca");
+ }
+ }
+
+ public Visibility VisibilityPatrimonial
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityPatrimonial;
+ }
+ 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)
+ _visibilityPatrimonial = value;
+ OnPropertyChanged("VisibilityPatrimonial");
+ }
+ }
+
+ public string BensInformacoes
+ {
+ get
+ {
+ return _bensInformacoes;
+ }
+ set
+ {
+ _bensInformacoes = value;
+ OnPropertyChanged("BensInformacoes");
+ }
+ }
+
+ public string LocatarioTomador1
+ {
+ get
+ {
+ return _locatarioTomador1;
+ }
+ set
+ {
+ _locatarioTomador1 = value;
+ OnPropertyChanged("LocatarioTomador1");
+ }
+ }
+
+ public string LocatarioTomador2
+ {
+ get
+ {
+ return _locatarioTomador2;
+ }
+ set
+ {
+ _locatarioTomador2 = value;
+ OnPropertyChanged("LocatarioTomador2");
+ }
+ }
+
+ public string LocatarioTomador3
+ {
+ get
+ {
+ return _locatarioTomador3;
+ }
+ set
+ {
+ _locatarioTomador3 = value;
+ OnPropertyChanged("LocatarioTomador3");
+ }
+ }
+
+ public Visibility VisibilityDescricao
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityDescricao;
+ }
+ 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)
+ _visibilityDescricao = value;
+ OnPropertyChanged("VisibilityDescricao");
+ }
+ }
+
+ public bool Garantia { get; set; }
+
+ public PatrimonialViewModel(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_0014: Unknown result type (might be due to invalid IL or missing references)
+ //IL_001b: Unknown result type (might be due to invalid IL or missing references)
+ //IL_004e: Unknown result type (might be due to invalid IL or missing references)
+ //IL_00a1: 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 PatrimonialServico();
+ 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.Patrimonial).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 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.Patrimonial = new Patrimonial
+ {
+ Item = SelectedItem
+ };
+ val.Substituicao = (substituir ? new long?(((DomainBase)base.ItemSubstituido).Id) : null);
+ Item item = val;
+ bool flag = !Garantia;
+ if (flag)
+ {
+ flag = await ShowMessage("COPIAR OS DADOS DE ENDEREÇO DO CLIENTE?", "SIM", "NÃO");
+ }
+ if (flag)
+ {
+ ObservableCollection<ClienteEndereco> observableCollection = await new ClienteServico().BuscarEnderecosAsync(((DomainBase)item.Documento.Controle.Cliente).Id);
+ if (observableCollection != null && observableCollection.Any())
+ {
+ List<Patrimonial> source = ((IEnumerable<ClienteEndereco>)observableCollection.OrderBy((ClienteEndereco x) => x.Ordem.GetValueOrDefault() == 1)).Select((Func<ClienteEndereco, Patrimonial>)((ClienteEndereco e) => new Patrimonial
+ {
+ Endereco = ((EnderecoBase)e).Endereco,
+ Numero = ((EnderecoBase)e).Numero,
+ Complemento = ((EnderecoBase)e).Complemento,
+ Bairro = ((EnderecoBase)e).Bairro,
+ Cidade = ((EnderecoBase)e).Cidade,
+ Estado = ((EnderecoBase)e).Estado,
+ Cep = ((EnderecoBase)e).Cep
+ })).ToList();
+ item.Patrimonial = (source.Any() ? source.Last() : null);
+ }
+ }
+ if (item.Ordem.GetValueOrDefault() == 2 && !(await ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO")))
+ {
+ return;
+ }
+ SelectedItem = item;
+ SelectedItem.Patrimonial.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 = (((int)VisibilityPatrimonial == 0) ? (((EnderecoBase)SelectedItem.Patrimonial).Endereco + ", " + ((EnderecoBase)SelectedItem.Patrimonial).Numero + " - " + ((EnderecoBase)SelectedItem.Patrimonial).Complemento + " - " + ((EnderecoBase)SelectedItem.Patrimonial).Bairro + ", " + ((EnderecoBase)SelectedItem.Patrimonial).Cidade + " / " + ((EnderecoBase)SelectedItem.Patrimonial).Estado) : SelectedItem.Descricao);
+ 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 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> { 1L, 2L, 3L, 15L, 18L, 30L, 38L }.Contains(((DomainBase)Ramo).Id))
+ {
+ return;
+ }
+ VisibilityTipoMoradia = (Visibility)((((DomainBase)Ramo).Id != 1) ? 2 : 0);
+ CoberturaViewModel.Ramo = Ramo;
+ if (CoberturaViewModel.CoberturasPadrao == null)
+ {
+ await CoberturaViewModel.SelectionaCoberturas();
+ }
+ VisibilityFianca = (Visibility)((((DomainBase)Ramo).Id != 15 && ((DomainBase)Ramo).Id != 38) ? 2 : 0);
+ if (((DomainBase)Ramo).Id == 38)
+ {
+ HabilitaCamposGarantia();
+ }
+ 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.Patrimonial = await _itemServico.BuscaPatrimonial(((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);
+ }
+
+ private void HabilitaCamposGarantia()
+ {
+ VisibilityPatrimonial = (Visibility)((((DomainBase)Ramo).Id == 38) ? 2 : 0);
+ BensInformacoes = "OBSERVAÇÕES";
+ LocatarioTomador1 = "TOMADOR 1:";
+ LocatarioTomador2 = "TOMADOR 2:";
+ LocatarioTomador3 = "TOMADOR 3:";
+ VisibilityDescricao = (Visibility)0;
+ Garantia = 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));
+ }
+}