diff options
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Seguros.Itens/GranizoViewModel.cs | 380 |
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)); + } +} |