summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs380
1 files changed, 380 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs
new file mode 100644
index 0000000..b88277b
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs
@@ -0,0 +1,380 @@
+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 GranizoViewModel : ItemViewModel, IDisposable
+{
+ private new readonly ItemServico _itemServico;
+
+ private readonly GranizoServico _servico;
+
+ private bool _allowAlterarExcluir = true;
+
+ private object _cobertura;
+
+ private string _codigoItem;
+
+ private Item _selectedItem = new Item();
+
+ private Visibility _visibilityMaisInformacoes = (Visibility)2;
+
+ private Item ItemSelecionado { get; }
+
+ 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 VisibilityMaisInformacoes
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityMaisInformacoes;
+ }
+ 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)
+ _visibilityMaisInformacoes = value;
+ OnPropertyChanged("VisibilityMaisInformacoes");
+ }
+ }
+
+ public GranizoViewModel(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_0067: 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 GranizoServico();
+ 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.Granizo).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 IncluirItem(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> { 20L }.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.Granizo = await _itemServico.BuscaGranizo(((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 IncluirItem(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.Granizo = new Granizo
+ {
+ Item = SelectedItem
+ };
+ 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.Granizo.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.Granizo.Cultura + " " + SelectedItem.Granizo.Sitio + (ValidationHelper.IsNotNullOrEmpty(SelectedItem.Granizo.Area) ? "" : (" / " + SelectedItem.Granizo.Area));
+ List<KeyValuePair<string, string>> list = SelectedItem.Granizo.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);
+ 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 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));
+ }
+}