summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs1337
1 files changed, 1337 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs
new file mode 100644
index 0000000..d5b0f8f
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs
@@ -0,0 +1,1337 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.Globalization;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using Gestor.Application.Drawers;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Application.Servicos.Seguros;
+using Gestor.Application.Servicos.Seguros.Itens;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Application.Views.Ferramentas;
+using Gestor.Application.Views.Generic;
+using Gestor.Common.Validation;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Configuracoes;
+using Gestor.Model.Domain.Ferramentas;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.MalaDireta;
+using Gestor.Model.Domain.Seguros;
+
+namespace Gestor.Application.ViewModels.Seguros;
+
+public class SinistroViewModel : BaseSegurosViewModel
+{
+ private readonly SinistroServico _servico;
+
+ private readonly ItemServico _itemServico;
+
+ private readonly Documento _documentoSelecionado;
+
+ private readonly ClienteServico _clienteServico;
+
+ private bool _editarObservacao = Recursos.Configuracoes.Any((ConfiguracaoSistema x) => (int)x.Configuracao == 49);
+
+ private bool _isAnotacoes = true;
+
+ private List<TipoPerda> _tipoPerdaAuto = new List<TipoPerda>
+ {
+ (TipoPerda)1,
+ (TipoPerda)2,
+ (TipoPerda)4,
+ (TipoPerda)3,
+ (TipoPerda)8
+ };
+
+ private List<TipoPerda> _tipoPerdaVida = new List<TipoPerda>
+ {
+ (TipoPerda)5,
+ (TipoPerda)6,
+ (TipoPerda)7,
+ (TipoPerda)8
+ };
+
+ private Credencial _selectedCredencial = new Credencial();
+
+ private List<Credencial> _credenciais = new List<Credencial>();
+
+ private ObservableCollection<Item> _itens = new ObservableCollection<Item>();
+
+ private ObservableCollection<Item> _itensFiltrados = new ObservableCollection<Item>();
+
+ private ObservableCollection<Parceiro> _parceiros = new ObservableCollection<Parceiro>(GerarParceiros());
+
+ private bool _habilitarImprimirHistorico;
+
+ private bool _habilitarEnviarHistorico;
+
+ private Visibility _isVisibleImprimirHistorico;
+
+ private Visibility _isVisibleIncluir;
+
+ private Visibility _isVisibleTerceiro = (Visibility)2;
+
+ private Visibility _visibilityAuto = (Visibility)2;
+
+ private Visibility _visibilityVida = (Visibility)2;
+
+ private Visibility _liquidacaoVisibility;
+
+ private bool _isReadOnlyItem = true;
+
+ private bool _tipoSinistroEnabled;
+
+ private Item _selectedItem = new Item();
+
+ private bool _mostrarLista;
+
+ private bool _isExpandedItem = true;
+
+ private bool _isExpandedSinistro = true;
+
+ private List<ControleSinistro> _controles = new List<ControleSinistro>();
+
+ private ObservableCollection<ControleSinistro> _controlesFiltrados = new ObservableCollection<ControleSinistro>();
+
+ private ControleSinistro _selectedControle = new ControleSinistro();
+
+ private Sinistro _selectedSinistro;
+
+ private string _codigoSinistro;
+
+ private string _anotacoes;
+
+ private string _anotacoesInternas;
+
+ private string _telefonesMecanica;
+
+ private string _telefonesFunileiro;
+
+ public int FiltroItens { get; set; }
+
+ public Item ItemSelecionado { get; set; }
+
+ public bool EditarObservacao
+ {
+ get
+ {
+ return _editarObservacao;
+ }
+ set
+ {
+ _editarObservacao = value;
+ OnPropertyChanged("EditarObservacao");
+ }
+ }
+
+ public bool IsAnotacoes
+ {
+ get
+ {
+ return _isAnotacoes;
+ }
+ set
+ {
+ _isAnotacoes = value;
+ OnPropertyChanged("IsAnotacoes");
+ }
+ }
+
+ private bool Carregando { get; set; }
+
+ public List<TipoPerda> TipoPerdaAuto
+ {
+ get
+ {
+ return _tipoPerdaAuto;
+ }
+ set
+ {
+ _tipoPerdaAuto = value;
+ OnPropertyChanged("TipoPerdaAuto");
+ }
+ }
+
+ public List<TipoPerda> TipoPerdaVida
+ {
+ get
+ {
+ return _tipoPerdaVida;
+ }
+ set
+ {
+ _tipoPerdaVida = value;
+ OnPropertyChanged("TipoPerdaVida");
+ }
+ }
+
+ public Credencial SelectedCredencial
+ {
+ get
+ {
+ return _selectedCredencial;
+ }
+ set
+ {
+ _selectedCredencial = value;
+ OnPropertyChanged("SelectedCredencial");
+ }
+ }
+
+ public List<Credencial> Credenciais
+ {
+ get
+ {
+ return _credenciais;
+ }
+ set
+ {
+ _credenciais = value;
+ OnPropertyChanged("Credenciais");
+ }
+ }
+
+ public ObservableCollection<Item> Itens
+ {
+ get
+ {
+ return _itens;
+ }
+ set
+ {
+ _itens = value;
+ OnPropertyChanged("Itens");
+ }
+ }
+
+ public ObservableCollection<Item> ItensFiltrados
+ {
+ get
+ {
+ return _itensFiltrados;
+ }
+ set
+ {
+ _itensFiltrados = value;
+ IsExpandedItem = value != null && value.Count > 0;
+ OnPropertyChanged("ItensFiltrados");
+ }
+ }
+
+ public ObservableCollection<Parceiro> Parceiros
+ {
+ get
+ {
+ return _parceiros;
+ }
+ set
+ {
+ _parceiros = value;
+ OnPropertyChanged("Parceiros");
+ }
+ }
+
+ public bool HabilitarImprimirHistorico
+ {
+ get
+ {
+ return _habilitarImprimirHistorico;
+ }
+ set
+ {
+ _habilitarImprimirHistorico = value;
+ OnPropertyChanged("HabilitarImprimirHistorico");
+ }
+ }
+
+ public bool HabilitarEnviarHistorico
+ {
+ get
+ {
+ return _habilitarEnviarHistorico;
+ }
+ set
+ {
+ _habilitarEnviarHistorico = value;
+ OnPropertyChanged("HabilitarEnviarHistorico");
+ }
+ }
+
+ public Visibility IsVisibleImprimirHistorico
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _isVisibleImprimirHistorico;
+ }
+ 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)
+ _isVisibleImprimirHistorico = value;
+ OnPropertyChanged("IsVisibleImprimirHistorico");
+ }
+ }
+
+ public Visibility IsVisibleIncluir
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _isVisibleIncluir;
+ }
+ 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)
+ _isVisibleIncluir = value;
+ OnPropertyChanged("IsVisibleIncluir");
+ }
+ }
+
+ public Visibility IsVisibleTerceiro
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _isVisibleTerceiro;
+ }
+ 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)
+ _isVisibleTerceiro = value;
+ OnPropertyChanged("IsVisibleTerceiro");
+ }
+ }
+
+ public Visibility VisibilityAuto
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityAuto;
+ }
+ 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)
+ _visibilityAuto = value;
+ OnPropertyChanged("VisibilityAuto");
+ }
+ }
+
+ public Visibility VisibilityVida
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _visibilityVida;
+ }
+ 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)
+ _visibilityVida = value;
+ OnPropertyChanged("VisibilityVida");
+ }
+ }
+
+ public Visibility LiquidacaoVisibility
+ {
+ get
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ return _liquidacaoVisibility;
+ }
+ 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)
+ _liquidacaoVisibility = value;
+ OnPropertyChanged("LiquidacaoVisibility");
+ }
+ }
+
+ public bool IsReadOnlyItem
+ {
+ get
+ {
+ return _isReadOnlyItem;
+ }
+ set
+ {
+ _isReadOnlyItem = value;
+ OnPropertyChanged("IsReadOnlyItem");
+ }
+ }
+
+ public bool TipoSinistroEnabled
+ {
+ get
+ {
+ return _tipoSinistroEnabled;
+ }
+ set
+ {
+ _tipoSinistroEnabled = value;
+ OnPropertyChanged("TipoSinistroEnabled");
+ }
+ }
+
+ public Item SelectedItem
+ {
+ get
+ {
+ return _selectedItem;
+ }
+ set
+ {
+ _selectedItem = value;
+ VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null);
+ OnPropertyChanged("SelectedItem");
+ }
+ }
+
+ public bool MostrarLista
+ {
+ get
+ {
+ return _mostrarLista;
+ }
+ set
+ {
+ _mostrarLista = value;
+ OnPropertyChanged("MostrarLista");
+ }
+ }
+
+ public bool IsExpandedItem
+ {
+ get
+ {
+ return _isExpandedItem;
+ }
+ set
+ {
+ _isExpandedItem = value;
+ OnPropertyChanged("IsExpandedItem");
+ }
+ }
+
+ public bool IsExpandedSinistro
+ {
+ get
+ {
+ return _isExpandedSinistro;
+ }
+ set
+ {
+ _isExpandedSinistro = value;
+ OnPropertyChanged("IsExpandedSinistro");
+ }
+ }
+
+ public List<ControleSinistro> Controles
+ {
+ get
+ {
+ return _controles;
+ }
+ set
+ {
+ _controles = value;
+ base.EnableIncluir = value == null || value.Count == 0;
+ OnPropertyChanged("Controles");
+ }
+ }
+
+ public ObservableCollection<ControleSinistro> ControlesFiltrados
+ {
+ get
+ {
+ return _controlesFiltrados;
+ }
+ set
+ {
+ _controlesFiltrados = value;
+ IsExpandedSinistro = value != null && value.Count > 0;
+ OnPropertyChanged("ControlesFiltrados");
+ }
+ }
+
+ public ControleSinistro SelectedControle
+ {
+ get
+ {
+ return _selectedControle;
+ }
+ set
+ {
+ _selectedControle = value;
+ if (value != null)
+ {
+ base.EnableButtons = ((DomainBase)value).Id > 0;
+ base.EnableIncluir = ((DomainBase)value).Id > 0;
+ IsVisibleTerceiro = (Visibility)((value.Sinistros == null || (value.Sinistros != null && value.Sinistros.Count < 2)) ? 2 : 0);
+ IsVisibleIncluir = (Visibility)((value.Sinistros != null && value.Sinistros.Any()) ? 2 : 0);
+ int mostrarLista;
+ if (!MostrarLista)
+ {
+ List<ControleSinistro> controles = Controles;
+ mostrarLista = ((controles != null && controles.Count > 1) ? 1 : 0);
+ }
+ else
+ {
+ mostrarLista = 1;
+ }
+ MostrarLista = (byte)mostrarLista != 0;
+ }
+ OnPropertyChanged("SelectedControle");
+ }
+ }
+
+ public Sinistro SelectedSinistro
+ {
+ get
+ {
+ return _selectedSinistro;
+ }
+ set
+ {
+ //IL_0186: Unknown result type (might be due to invalid IL or missing references)
+ //IL_008d: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0093: Invalid comparison between Unknown and I4
+ _selectedSinistro = value;
+ Anotacoes = string.Empty;
+ AnotacoesInternas = string.Empty;
+ HabilitarImprimirHistorico = value != null;
+ HabilitarEnviarHistorico = value != null;
+ CodigoSinistro = ((SelectedSinistro == null || ((DomainBase)SelectedSinistro).Id == 0L) ? "" : $"CÓDIGO SINISTRO {((DomainBase)SelectedSinistro).Id}");
+ if (value != null && ((DomainBase)value).Id != 0L && (LastAccessId != ((DomainBase)value).Id || (int)LastAccessTela != 7))
+ {
+ RegistrarAcao($"ACESSOU SINISTRO DE ID \"{((DomainBase)value).Id}\"", ((DomainBase)value).Id, (TipoTela)7, $"ID ITEM: {((DomainBase)value.ControleSinistro.Item).Id}\nID DOCUMENTO: {((DomainBase)value.ControleSinistro.Item.Documento).Id}\nRAMO: {value.ControleSinistro.Item.Documento.Controle.Ramo.Nome}\nCLIENTE: {value.ControleSinistro.Item.Documento.Controle.Cliente.Nome}\nID CLIENTE: {((DomainBase)value.ControleSinistro.Item.Documento.Controle.Cliente).Id}\nDESCRIÇÃO: \"{value.Descricao}\"");
+ LastAccessId = ((DomainBase)value).Id;
+ LastAccessTela = (TipoTela)7;
+ }
+ VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null);
+ OnPropertyChanged("SelectedSinistro");
+ }
+ }
+
+ public string CodigoSinistro
+ {
+ get
+ {
+ return _codigoSinistro;
+ }
+ set
+ {
+ _codigoSinistro = value;
+ OnPropertyChanged("CodigoSinistro");
+ }
+ }
+
+ public new string Anotacoes
+ {
+ get
+ {
+ return _anotacoes;
+ }
+ set
+ {
+ _anotacoes = value;
+ OnPropertyChanged("Anotacoes");
+ }
+ }
+
+ public string AnotacoesInternas
+ {
+ get
+ {
+ return _anotacoesInternas;
+ }
+ set
+ {
+ _anotacoesInternas = value;
+ OnPropertyChanged("AnotacoesInternas");
+ }
+ }
+
+ public string TelefonesMecanica
+ {
+ get
+ {
+ return _telefonesMecanica;
+ }
+ set
+ {
+ _telefonesMecanica = value;
+ OnPropertyChanged("TelefonesMecanica");
+ }
+ }
+
+ public string TelefonesFunileiro
+ {
+ get
+ {
+ return _telefonesFunileiro;
+ }
+ set
+ {
+ _telefonesFunileiro = value;
+ OnPropertyChanged("TelefonesFunileiro");
+ }
+ }
+
+ public SinistroViewModel(Item item, bool attached)
+ {
+ //IL_008c: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0096: Expected O, but got Unknown
+ //IL_00c9: Unknown result type (might be due to invalid IL or missing references)
+ //IL_00d0: Unknown result type (might be due to invalid IL or missing references)
+ //IL_00d7: Unknown result type (might be due to invalid IL or missing references)
+ //IL_00e4: Unknown result type (might be due to invalid IL or missing references)
+ //IL_00ee: Expected O, but got Unknown
+ //IL_0113: Unknown result type (might be due to invalid IL or missing references)
+ //IL_011d: Expected O, but got Unknown
+ _servico = new SinistroServico();
+ _itemServico = new ItemServico();
+ _clienteServico = new ClienteServico();
+ _documentoSelecionado = (attached ? ConsultaViewModel.DocumentoSelecionado : item.Documento);
+ FiltroItens = ConsultaViewModel.FiltrarItens;
+ ItemSelecionado = ConsultaViewModel.ItemSelecionado;
+ if (!attached)
+ {
+ FiltroItens = 4;
+ ItemSelecionado = item;
+ }
+ if (((item != null) ? item.Documento : null) != null)
+ {
+ Documento documentoSelecionado = ConsultaViewModel.DocumentoSelecionado;
+ if (((documentoSelecionado != null) ? documentoSelecionado.VendedorPrincipal : null) != null)
+ {
+ item.Documento.VendedorPrincipal = ConsultaViewModel.DocumentoSelecionado.VendedorPrincipal;
+ }
+ }
+ Seleciona(item);
+ }
+
+ public async void SelecionaItem(Item item)
+ {
+ if (Carregando)
+ {
+ return;
+ }
+ SelectedItem = item;
+ if (SelectedItem == null || Carregando)
+ {
+ return;
+ }
+ if (((DomainBase)item).Id != ((DomainBase)SelectedItem).Id)
+ {
+ SelectedItem = ((IEnumerable<Item>)ItensFiltrados).FirstOrDefault((Func<Item, bool>)((Item x) => ((DomainBase)x).Id == ((DomainBase)item).Id));
+ }
+ await SelecionaControles(item);
+ }
+
+ public void SelecionaControle(ControleSinistro controle)
+ {
+ if (Carregando)
+ {
+ return;
+ }
+ SelectedControle = controle;
+ ControleSinistro selectedControle = SelectedControle;
+ ControleSinistro selectedControle2 = SelectedControle;
+ selectedControle.Sinistros = ((selectedControle2 == null) ? null : selectedControle2.Sinistros?.OrderBy((Sinistro x) => ((DomainBase)x).Id).ToList());
+ if (Carregando)
+ {
+ return;
+ }
+ if (((DomainBase)controle).Id != ((DomainBase)SelectedControle).Id)
+ {
+ SelectedControle = controle;
+ }
+ ControleSinistro selectedControle3 = SelectedControle;
+ if (((selectedControle3 != null) ? selectedControle3.Sinistros : null) != null)
+ {
+ TipoSinistroEnabled = !SelectedControle.Sinistros.Any((Sinistro x) => x.TipoSinistro == (TipoSinistro?)0) || SelectedControle.Sinistros.Count <= 1;
+ }
+ }
+
+ public void CarregarParceiros()
+ {
+ //IL_0006: Unknown result type (might be due to invalid IL or missing references)
+ //IL_000b: Unknown result type (might be due to invalid IL or missing references)
+ //IL_001b: Expected O, but got Unknown
+ List<Parceiro> list = new List<Parceiro>
+ {
+ new Parceiro
+ {
+ Nome = "NENHUM"
+ }
+ };
+ list.AddRange(Recursos.Parceiros.OrderBy((Parceiro x) => x.Nome));
+ Parceiros = new ObservableCollection<Parceiro>(list);
+ }
+
+ private static List<Parceiro> GerarParceiros()
+ {
+ //IL_0006: Unknown result type (might be due to invalid IL or missing references)
+ //IL_000b: Unknown result type (might be due to invalid IL or missing references)
+ //IL_001b: Expected O, but got Unknown
+ List<Parceiro> list = new List<Parceiro>();
+ list.Add(new Parceiro
+ {
+ Nome = "NENHUM"
+ });
+ list.AddRange(Recursos.Parceiros.OrderBy((Parceiro x) => x.Nome));
+ return list;
+ }
+
+ public async Task IncluirSinistro()
+ {
+ if (SelectedItem == null)
+ {
+ await ShowMessage("NECESSÁRIO INCLUIR O ITEM ANTES DE INCLUIR UM SINISTRO.");
+ return;
+ }
+ DateTime now = Funcoes.GetNetworkTime();
+ ControleSinistro controle = new ControleSinistro
+ {
+ DataSinistro = now,
+ Item = SelectedItem
+ };
+ Cobertura val = ((IEnumerable<Cobertura>)(await _itemServico.BuscarCoberturasPorItemAsync(((DomainBase)SelectedItem).Id))).FirstOrDefault((Func<Cobertura, bool>)((Cobertura x) => x.CoberturaPadrao != null && ((DomainBase)x.CoberturaPadrao).Id == 1));
+ Sinistro val2 = new Sinistro
+ {
+ ControleSinistro = controle,
+ TipoSinistro = (TipoSinistro)0,
+ Ativo = true,
+ DataReclamacao = now,
+ StatusSinistro = (StatusSinistro)1,
+ ItemSinistrado = SelectedItem.Descricao,
+ ValorFranquia = ((val != null) ? val.Franquia : 0m)
+ };
+ long id = ((DomainBase)_documentoSelecionado.Controle.Ramo).Id;
+ long num = id - 5;
+ if ((ulong)num <= 5uL)
+ {
+ switch (num)
+ {
+ case 0L:
+ goto IL_0215;
+ case 1L:
+ case 2L:
+ case 4L:
+ case 5L:
+ goto IL_022e;
+ case 3L:
+ goto IL_0239;
+ }
+ }
+ if (id == 37)
+ {
+ goto IL_0215;
+ }
+ if (id == 53)
+ {
+ goto IL_022e;
+ }
+ goto IL_0239;
+ IL_0215:
+ val2.SinistroAuto = new SinistroAuto
+ {
+ Culpado = false
+ };
+ goto IL_0239;
+ IL_0239:
+ IsReadOnlyItem = true;
+ SelectedControle = controle;
+ SelectedSinistro = val2;
+ Alterar(alterar: true);
+ return;
+ IL_022e:
+ val2.SinistroVida = new SinistroVida();
+ goto IL_0239;
+ }
+
+ public async void IncluirEnvolvido()
+ {
+ Sinistro sinistro = new Sinistro
+ {
+ ControleSinistro = SelectedControle,
+ TipoSinistro = (TipoSinistro)1,
+ Ativo = true,
+ StatusSinistro = (StatusSinistro)1
+ };
+ long id = ((DomainBase)_documentoSelecionado.Controle.Ramo).Id;
+ long num = id - 5;
+ if ((ulong)num <= 5uL)
+ {
+ switch (num)
+ {
+ case 0L:
+ goto IL_0098;
+ case 1L:
+ case 2L:
+ case 4L:
+ case 5L:
+ goto IL_00aa;
+ case 3L:
+ goto IL_011e;
+ }
+ }
+ if (id == 37)
+ {
+ goto IL_0098;
+ }
+ if (id == 53)
+ {
+ goto IL_00aa;
+ }
+ goto IL_011e;
+ IL_00aa:
+ sinistro.SinistroVida = new SinistroVida();
+ goto IL_011e;
+ IL_011e:
+ if (await ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO"))
+ {
+ sinistro.ItemSinistrado = SelectedItem.Descricao;
+ sinistro.Descricao = SelectedSinistro.Descricao;
+ sinistro.DataReclamacao = SelectedSinistro.DataReclamacao;
+ if (sinistro.SinistroAuto != null)
+ {
+ if (SelectedSinistro.SinistroAuto == null)
+ {
+ SelectedSinistro.SinistroAuto = new SinistroAuto();
+ }
+ sinistro.SinistroAuto.Endereco = SelectedSinistro.SinistroAuto.Endereco;
+ }
+ }
+ else
+ {
+ sinistro.DataReclamacao = Funcoes.GetNetworkTime();
+ }
+ IsReadOnlyItem = false;
+ SelectedSinistro = sinistro;
+ Alterar(alterar: true);
+ return;
+ IL_0098:
+ sinistro.SinistroAuto = new SinistroAuto();
+ goto IL_011e;
+ }
+
+ internal void ImprimirHistorico()
+ {
+ Vendedor vendedorPrincipal = _documentoSelecionado.VendedorPrincipal;
+ string value = GerarHtmlSinistro((vendedorPrincipal != null) ? vendedorPrincipal.Nome : null);
+ string tempPath = Path.GetTempPath();
+ string text = $"{tempPath}{(object)(TipoTela)7}_{Funcoes.GetNetworkTime():ddMMyyyyhhmmss}.html";
+ StreamWriter streamWriter = new StreamWriter(text, append: true, Encoding.UTF8);
+ streamWriter.Write(value);
+ streamWriter.Close();
+ Process.Start(text);
+ }
+
+ public string GerarHtmlSinistro(string vendedorPrincipal = "")
+ {
+ string text = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><meta http-equiv='Content-Language' content='pt-br'><meta charset='utf-8'><meta name='viewport' content='width=device-width, initial-scale=1, shrink-to-fit=yes'><link rel='stylesheet' href='https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css' integrity='sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T' crossorigin='anonymous'><style type='text/css' media='print'>@page{ size: A4;} body; -webkit-print-color-adjust: exact; }</style><title> HISTÓRICO DO SINISTRO </title></head><body ><div class='-2'>";
+ string text2 = "";
+ foreach (Sinistro item in SelectedControle.Sinistros.OrderBy((Sinistro x) => x.TipoSinistro))
+ {
+ text += "<h2 style='text-align: center'>";
+ text2 = (string.IsNullOrEmpty(text2) ? "CLIENTE" : ("TERCEIRO Nº " + item.Numero));
+ text = text + text2 + "</h2>";
+ text += "<div class='table-responsive'><table class='table table-bordered' style='width:100%'>";
+ int num = 0;
+ if (text2 == "CLIENTE")
+ {
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>CLIENTE: </b>" + item.ControleSinistro.Item.Documento.Controle.Cliente.Nome + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>DOCUMENTO DO SEGURADO: </b>" + item.ControleSinistro.Item.Documento.Controle.Cliente.Documento + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>APÓLICE: </b>" + item.ControleSinistro.Item.Documento.Apolice + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VIGÊNCIA INICIAL: </b>" + item.ControleSinistro.Item.Documento.Vigencia1.ToShortDateString() + "</td></tr>";
+ num = 0;
+ string text3 = ((!(item.ControleSinistro.Item.Documento.Vigencia2.GetValueOrDefault().ToString(new CultureInfo("pt-BR")) != "01/01/0001 00:00:00")) ? "NÃO POSSUI" : item.ControleSinistro.Item.Documento.Vigencia2?.ToShortDateString());
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VIGÊNCIA FINAL: </b>" + text3 + "</td></tr>";
+ num = 1;
+ vendedorPrincipal = ((item.ControleSinistro.Item.Documento.VendedorPrincipal == null) ? vendedorPrincipal : item.ControleSinistro.Item.Documento.VendedorPrincipal.Nome);
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VENDEDOR PRINCIPAL: </b>" + vendedorPrincipal + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>SEGURADORA: </b>" + item.ControleSinistro.Item.Documento.Controle.Seguradora.Nome + "</td></tr>";
+ }
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>NÚMERO SINISTRO: </b>" + item.Numero + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>DATA DO SINISTRO: </b>" + item.ControleSinistro.DataSinistro?.ToShortDateString() + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>HORA DO SINISTRO: </b>" + item.ControleSinistro.HoraSinistro?.ToShortTimeString() + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>DATA/HORA ABERTURA: </b>" + item.DataReclamacao.ToString() + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>DATA LIQUIDAÇÃO: </b>" + item.DataLiquidacao.ToString() + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>DESCRIÇÃO DO BEM SINISTRADO: </b>" + item.ItemSinistrado + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VALOR ORÇADO: </b>" + item.ValorOrcado.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)) + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VALOR LIBERADO: </b>" + item.ValorLiberado.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)) + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VALOR PAGO: </b>" + item.ValorPago.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)) + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>VALOR FRANQUIA: </b>" + item.ValorFranquia.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)) + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>SITUAÇÃO: </b>" + ValidationHelper.GetDescription((Enum)(object)item.StatusSinistro) + "</td></tr>";
+ text += "</table></div>";
+ string text4;
+ object obj;
+ if (item.SinistroAuto != null)
+ {
+ text += "<div class='table-responsive'><table class='table table-bordered' style='width:100%'>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>NÚMERO B.O.: </b>" + item.SinistroAuto.NumeroBo + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>TIPO PERDA: </b>" + ValidationHelper.GetDescription((Enum)(object)item.SinistroAuto.TipoPerda) + "</td></tr>";
+ num = 0;
+ text4 = text;
+ if ("<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>CONSIDERA-SE CULPADO? </b>" + item.SinistroAuto.Culpado != null)
+ {
+ SinistroAuto sinistroAuto = item.SinistroAuto;
+ if (sinistroAuto == null || sinistroAuto.Culpado != false)
+ {
+ obj = "SIM</td></tr>";
+ goto IL_08f0;
+ }
+ }
+ obj = "NÃO";
+ goto IL_08f0;
+ }
+ goto IL_14d5;
+ IL_14d5:
+ if (item.SinistroVida != null)
+ {
+ text += "<div class='table-responsive'><table class='table table-bordered' style='width:100%'>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>TIPO PERDA: </b>" + ValidationHelper.GetDescription((Enum)(object)item.SinistroVida.TipoPerda) + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>AUXÍLIO FUNERAL: </b>" + ((item.SinistroVida.AuxFuneral.HasValue && item.SinistroVida.AuxFuneral.Value) ? "SIM" : "NÃO") + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>ESTADO CIVIL: </b>" + ValidationHelper.GetDescription((Enum)(object)item.SinistroVida.EstadoCivil) + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>CERTIDÃO DE ÓBITO: </b>" + item.SinistroVida.CertObito + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>BENEFICIÁRIO: </b>" + item.SinistroVida.Beneficiario + "</td></tr>";
+ text += "</table></div>";
+ }
+ if (!string.IsNullOrWhiteSpace(item.Descricao))
+ {
+ text += "<hr/>";
+ text += "<h4>DESCRIÇÃO</h4>";
+ text += "<br>";
+ text = text + "<div>" + item.Descricao + "</div>";
+ }
+ if (!string.IsNullOrWhiteSpace(item.Observacao))
+ {
+ text += "<hr/>";
+ text += "<h4>HISTÓRICO</h4>";
+ text += "<br>";
+ text = text + "<div>" + item.Observacao.Replace("<BODY>", "").Replace("</BODY>", "") + "</div>";
+ }
+ continue;
+ IL_08f0:
+ text = text4 + (string?)obj;
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>ÚLTIMO DOC. ENVIADO: </b>" + $"{item.SinistroAuto.UltimoDocEnviado:dd/MM/yyyy}" + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>ENDEREÇO: </b>" + item.SinistroAuto.Endereco + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>ENVOLVIDO/PROPRIETÁRIO: </b>" + item.SinistroAuto.Envolvido + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>MOTORISTA: </b>" + item.SinistroAuto.Motorista + "</td></tr>";
+ num = 1;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>TELEFONE: </b>(" + item.SinistroAuto.Ddd + ") " + item.SinistroAuto.Telefone + "</td></tr>";
+ num = 0;
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>E-MAIL: </b>" + item.SinistroAuto.Email + "</td></tr>";
+ text += "</table></div>";
+ text += "<div class='table-responsive'><table class='table table-bordered' style='width:100%'>";
+ num = 1;
+ string text5 = ((item.SinistroAuto.ParceiroMecanica != null) ? item.SinistroAuto.ParceiroMecanica.Nome : "");
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>PARCEIRO MECÂNICA: </b>" + text5 + "</td></tr>";
+ num = 0;
+ string text6 = ((item.SinistroAuto.ParceiroMecanica == null || (string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Ddd1) && string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Telefone1))) ? "" : ("(" + item.SinistroAuto.ParceiroMecanica.Ddd1 + ") " + item.SinistroAuto.ParceiroMecanica.Telefone1));
+ string text7 = ((item.SinistroAuto.ParceiroMecanica == null || (string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Ddd2) && string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Telefone2))) ? "" : (" / (" + item.SinistroAuto.ParceiroMecanica.Ddd2 + ") " + item.SinistroAuto.ParceiroMecanica.Telefone2));
+ string text8 = ((item.SinistroAuto.ParceiroMecanica == null || (string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Ddd3) && string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Telefone3))) ? "" : (" / (" + item.SinistroAuto.ParceiroMecanica.Ddd3 + ") " + item.SinistroAuto.ParceiroMecanica.Telefone3));
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>CONTATOS: </b>" + text6 + text7 + text8 + "</td></tr>";
+ num = 1;
+ string text9 = ((item.SinistroAuto.ParceiroMecanica == null) ? "" : item.SinistroAuto.ParceiroMecanica.Email);
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>EMAIL: </b>" + text9 + "</td></tr>";
+ num = 0;
+ string text10 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Endereco)) ? "" : (item.SinistroAuto.ParceiroMecanica.Endereco ?? ""));
+ string text11 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Numero)) ? "" : (", " + item.SinistroAuto.ParceiroMecanica.Numero));
+ string text12 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Complemento)) ? "" : (", " + item.SinistroAuto.ParceiroMecanica.Complemento));
+ string text13 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Bairro)) ? "" : (", " + item.SinistroAuto.ParceiroMecanica.Bairro));
+ string text14 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Cidade)) ? "" : (" - " + item.SinistroAuto.ParceiroMecanica.Cidade));
+ string text15 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Uf)) ? "" : (" - " + item.SinistroAuto.ParceiroMecanica.Uf));
+ string text16 = ((item.SinistroAuto.ParceiroMecanica == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroMecanica.Cep)) ? "" : (" - " + item.SinistroAuto.ParceiroMecanica.Cep));
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>ENDEREÇO: </b>" + text10 + text11 + text12 + text13 + text14 + text15 + text16 + "</td></tr>";
+ text += "</table></div>";
+ text += "<div class='table-responsive'><table class='table table-bordered' style='width:100%'>";
+ num = 1;
+ text5 = ((item.SinistroAuto.ParceiroFunilaria != null) ? item.SinistroAuto.ParceiroFunilaria.Nome : "");
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>PARCEIRO FUNILARIA: </b>" + text5 + "</td></tr>";
+ num = 0;
+ text6 = ((item.SinistroAuto.ParceiroFunilaria == null || (string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Ddd1) && string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Telefone1))) ? "" : ("(" + item.SinistroAuto.ParceiroFunilaria.Ddd1 + ") " + item.SinistroAuto.ParceiroFunilaria.Telefone1));
+ text7 = ((item.SinistroAuto.ParceiroFunilaria == null || (string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Ddd2) && string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Telefone2))) ? "" : (" / (" + item.SinistroAuto.ParceiroFunilaria.Ddd2 + ") " + item.SinistroAuto.ParceiroFunilaria.Telefone2));
+ text8 = ((item.SinistroAuto.ParceiroFunilaria == null || (string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Ddd3) && string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Telefone3))) ? "" : (" / (" + item.SinistroAuto.ParceiroFunilaria.Ddd3 + ") " + item.SinistroAuto.ParceiroFunilaria.Telefone3));
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>CONTATOS: </b>" + text6 + text7 + text8 + "</td></tr>";
+ num = 1;
+ text9 = ((item.SinistroAuto.ParceiroFunilaria == null) ? "" : item.SinistroAuto.ParceiroFunilaria.Email);
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>EMAIL: </b>" + text9 + "</td></tr>";
+ num = 0;
+ text10 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Endereco)) ? "" : (item.SinistroAuto.ParceiroFunilaria.Endereco ?? ""));
+ text11 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Numero)) ? "" : (", " + item.SinistroAuto.ParceiroFunilaria.Numero));
+ text12 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Complemento)) ? "" : (", " + item.SinistroAuto.ParceiroFunilaria.Complemento));
+ text13 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Bairro)) ? "" : (", " + item.SinistroAuto.ParceiroFunilaria.Bairro));
+ text14 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Cidade)) ? "" : (" - " + item.SinistroAuto.ParceiroFunilaria.Cidade));
+ text15 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Uf)) ? "" : (" - " + item.SinistroAuto.ParceiroFunilaria.Uf));
+ text16 = ((item.SinistroAuto.ParceiroFunilaria == null || string.IsNullOrEmpty(item.SinistroAuto.ParceiroFunilaria.Cep)) ? "" : (" - " + item.SinistroAuto.ParceiroFunilaria.Cep));
+ text = text + "<tr><td bgcolor='" + ((num % 2 == 0) ? "WhiteSmoke" : "White") + "'><b>ENDEREÇO: </b>" + text10 + text11 + text12 + text13 + text14 + text15 + text16 + "</td></tr>";
+ text += "</table></div>";
+ goto IL_14d5;
+ }
+ return text + "</div></body></html>";
+ }
+
+ public async void CancelarAlteracao()
+ {
+ Loading(isLoading: true);
+ ControleSinistro selectedControle = SelectedControle;
+ long controle = ((selectedControle != null) ? ((DomainBase)selectedControle).Id : 0);
+ Sinistro selectedSinistro = SelectedSinistro;
+ long sinistro = ((selectedSinistro != null) ? ((DomainBase)selectedSinistro).Id : 0);
+ await CarregarControles(SelectedItem);
+ Anotacoes = string.Empty;
+ AnotacoesInternas = string.Empty;
+ SelectedControle = ((IEnumerable<ControleSinistro>)ControlesFiltrados).FirstOrDefault((Func<ControleSinistro, bool>)((ControleSinistro x) => ((DomainBase)x).Id == controle)) ?? ControlesFiltrados.FirstOrDefault();
+ SinistroViewModel sinistroViewModel = this;
+ object obj;
+ if (SelectedControle == null)
+ {
+ obj = null;
+ }
+ else
+ {
+ ControleSinistro selectedControle2 = SelectedControle;
+ obj = ((selectedControle2 == null) ? null : selectedControle2.Sinistros?.FirstOrDefault((Func<Sinistro, bool>)((Sinistro x) => ((DomainBase)x).Id == sinistro)));
+ if (obj == null)
+ {
+ ControleSinistro selectedControle3 = SelectedControle;
+ obj = ((selectedControle3 == null) ? null : selectedControle3.Sinistros?.FirstOrDefault());
+ }
+ }
+ sinistroViewModel.SelectedSinistro = (Sinistro)obj;
+ Alterar(alterar: false);
+ SinistroViewModel sinistroViewModel2 = this;
+ Sinistro selectedSinistro2 = SelectedSinistro;
+ sinistroViewModel2.VerificarEnables((selectedSinistro2 != null) ? new long?(((DomainBase)selectedSinistro2).Id) : null);
+ Loading(isLoading: false);
+ }
+
+ public async void Excluir()
+ {
+ if (SelectedSinistro == null || ((DomainBase)SelectedSinistro).Id == 0L || !(await ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO")))
+ {
+ return;
+ }
+ Loading(isLoading: true);
+ RegistrarAcao($"EXCLUIU SINISTRO DE ID \"{((DomainBase)SelectedSinistro).Id}\"", ((DomainBase)SelectedSinistro).Id, (TipoTela)7, $"ID ITEM: {((DomainBase)SelectedSinistro.ControleSinistro.Item).Id}\nID DOCUMENTO: {((DomainBase)SelectedSinistro.ControleSinistro.Item.Documento).Id}\nRAMO: {SelectedSinistro.ControleSinistro.Item.Documento.Controle.Ramo.Nome}\nCLIENTE: {SelectedSinistro.ControleSinistro.Item.Documento.Controle.Cliente.Nome}\nID CLIENTE: {((DomainBase)SelectedSinistro.ControleSinistro.Item.Documento.Controle.Cliente).Id}\nDESCRIÇÃO: {((DomainBase)SelectedSinistro).Id}");
+ if (SelectedControle.Sinistros.Count == 1)
+ {
+ List<ControleSinistro> controles = Controles;
+ controles.Remove(SelectedControle);
+ if (!(await _servico.DeleteControle(SelectedControle, controles == null || controles.Count == 0)))
+ {
+ return;
+ }
+ int num = ControlesFiltrados.IndexOf(SelectedControle);
+ Controles.Remove(SelectedControle);
+ ControlesFiltrados.Remove(SelectedControle);
+ ControlesFiltrados = new ObservableCollection<ControleSinistro>(ControlesFiltrados);
+ if (ControlesFiltrados.Count > 0)
+ {
+ SelectedControle = ((num < ControlesFiltrados.Count) ? ControlesFiltrados.ElementAt(((num == 0) ? 1 : num) - 1) : ControlesFiltrados.Last());
+ }
+ else
+ {
+ SelectedControle = new ControleSinistro();
+ Alterar(alterar: false);
+ base.EnableMenu = false;
+ }
+ SinistroViewModel sinistroViewModel = this;
+ ControleSinistro selectedControle = SelectedControle;
+ sinistroViewModel.SelectedSinistro = ((selectedControle == null) ? null : selectedControle.Sinistros?.FirstOrDefault());
+ }
+ else
+ {
+ if (!(await _servico.Delete(SelectedSinistro)))
+ {
+ return;
+ }
+ int num2 = SelectedControle.Sinistros.IndexOf(SelectedSinistro);
+ SelectedControle.Sinistros.Remove(SelectedSinistro);
+ long id = ((DomainBase)SelectedControle).Id;
+ SelectedControle = null;
+ SelectedControle = ControlesFiltrados.First((ControleSinistro x) => ((DomainBase)x).Id == id);
+ SelectedSinistro = ((num2 < SelectedControle.Sinistros.Count) ? SelectedControle.Sinistros.ElementAt(num2) : SelectedControle.Sinistros.Last());
+ }
+ if (Controles == null || Controles.Count == 0)
+ {
+ ItemServico itemServico = new ItemServico();
+ Item val = await itemServico.BuscarItemPorIdAsync(((DomainBase)SelectedItem).Id);
+ val.Sinistrado = false;
+ await itemServico.Save(val);
+ }
+ if (ItensFiltrados.Count > 0 && ItensFiltrados != null)
+ {
+ Item obj = ItensFiltrados.First((Item x) => ((DomainBase)x).Id == ((DomainBase)SelectedItem).Id);
+ ControleSinistro selectedControle2 = SelectedControle;
+ obj.Sinistrado = selectedControle2 != null && selectedControle2.Sinistros?.Count > 0;
+ }
+ ItensFiltrados = new ObservableCollection<Item>(ItensFiltrados);
+ Loading(isLoading: false);
+ ToggleSnackBar("SINISTRO EXCLUÍDO COM SUCESSO");
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ List<KeyValuePair<string, string>> list = SelectedSinistro.Validate();
+ if (list.Count > 0)
+ {
+ return list;
+ }
+ Sinistro sinistro = SelectedSinistro;
+ if (sinistro.SinistroAuto != null)
+ {
+ Parceiro parceiroFunilaria = sinistro.SinistroAuto.ParceiroFunilaria;
+ if (parceiroFunilaria != null && ((DomainBase)parceiroFunilaria).Id == 0)
+ {
+ sinistro.SinistroAuto.ParceiroFunilaria = null;
+ }
+ Parceiro parceiroMecanica = sinistro.SinistroAuto.ParceiroMecanica;
+ if (parceiroMecanica != null && ((DomainBase)parceiroMecanica).Id == 0)
+ {
+ sinistro.SinistroAuto.ParceiroMecanica = null;
+ }
+ }
+ DateTime networkTime = Funcoes.GetNetworkTime();
+ if (!string.IsNullOrWhiteSpace(Anotacoes) && !Anotacoes.IsEmpty())
+ {
+ sinistro.Observacao = $"<p>{Recursos.Usuario.Nome}, ID: {((DomainBase)Recursos.Usuario).Id}, {networkTime:g}<br>{Anotacoes}<p/><br><br>{sinistro.Observacao}";
+ }
+ if (!string.IsNullOrWhiteSpace(AnotacoesInternas) && !AnotacoesInternas.IsEmpty())
+ {
+ sinistro.ObservacaoInterna = $"<p>{Recursos.Usuario.Nome}, ID: {((DomainBase)Recursos.Usuario).Id}, {networkTime:g}<br>{AnotacoesInternas}<p/><br><br>{sinistro.ObservacaoInterna}";
+ }
+ if (((DomainBase)sinistro).Id == 0L)
+ {
+ sinistro.DataCriacao = DateTime.Now;
+ sinistro.IdUsuarioCriacao = ((DomainBase)Recursos.Usuario).Id;
+ }
+ else
+ {
+ sinistro.DataAlteracao = DateTime.Now;
+ sinistro.IdUsuarioAlteracao = ((DomainBase)Recursos.Usuario).Id;
+ }
+ string acao = ((((DomainBase)sinistro).Id == 0L) ? "INCLUIU" : "ALTEROU");
+ sinistro = await _servico.Save(sinistro, ((DomainBase)_documentoSelecionado.Controle.Ramo).Id);
+ if (!_servico.Sucesso)
+ {
+ return null;
+ }
+ await CarregarControles(sinistro.ControleSinistro.Item);
+ SelectedControle = ControlesFiltrados.First((ControleSinistro x) => ((DomainBase)x).Id == ((DomainBase)sinistro.ControleSinistro).Id);
+ SelectedSinistro = SelectedControle.Sinistros.First((Sinistro x) => ((DomainBase)x).Id == ((DomainBase)sinistro).Id);
+ Recursos.Parceiros = Parceiros.ToList();
+ Alterar(alterar: false);
+ ToggleSnackBar("SINISTRO SALVO COM SUCESSO");
+ RegistrarAcao($"{acao} SINISTRO DE ID \"{((DomainBase)sinistro).Id}\"", ((DomainBase)sinistro).Id, (TipoTela)7, $"ID ITEM: {((DomainBase)sinistro.ControleSinistro.Item).Id}\nID DOCUMENTO: {((DomainBase)sinistro.ControleSinistro.Item.Documento).Id}\nRAMO: {sinistro.ControleSinistro.Item.Documento.Controle.Ramo.Nome}\nCLIENTE: {sinistro.ControleSinistro.Item.Documento.Controle.Cliente.Nome}\nID CLIENTE: {((DomainBase)sinistro.ControleSinistro.Item.Documento.Controle.Cliente).Id}\nDESCRIÇÃO: \"{sinistro.Descricao}\"");
+ return null;
+ }
+
+ public async void Seleciona(Item item)
+ {
+ Loading(isLoading: true);
+ await PermissaoTela((TipoTela)7);
+ SelectedItem = ItemSelecionado;
+ VisibilityAuto = (Visibility)((((DomainBase)_documentoSelecionado.Controle.Ramo).Id != 5) ? 2 : 0);
+ VisibilityVida = (Visibility)((((DomainBase)_documentoSelecionado.Controle.Ramo).Id != 6) ? 2 : 0);
+ if (item == null)
+ {
+ Loading(isLoading: false);
+ return;
+ }
+ await SelecionaControles(item);
+ Loading(isLoading: false);
+ }
+
+ public async Task SelecionaItens(int type, Item item = null)
+ {
+ Loading(isLoading: true);
+ Carregando = true;
+ switch (type)
+ {
+ default:
+ Itens = await _itemServico.BuscarItens(((DomainBase)_documentoSelecionado.Controle).Id, (StatusItem)0);
+ break;
+ case 1:
+ case 2:
+ Itens = await _itemServico.BuscarItens(((DomainBase)_documentoSelecionado).Id, (StatusItem)2);
+ break;
+ case 3:
+ Itens = await _itemServico.BuscarItens(((DomainBase)_documentoSelecionado.Controle).Id, (StatusItem)1);
+ break;
+ case 4:
+ Itens = await _itemServico.BuscarItens(((DomainBase)_documentoSelecionado.Controle).Id, (StatusItem)3);
+ break;
+ }
+ ItensFiltrados = Itens;
+ if (item != null && ((DomainBase)item).Id > 0)
+ {
+ SelectedItem = ((ItensFiltrados != null && ItensFiltrados.Count > 0) ? ((IEnumerable<Item>)ItensFiltrados).FirstOrDefault((Func<Item, bool>)((Item x) => ((DomainBase)x).Id == ((DomainBase)item).Id)) : null);
+ }
+ SinistroViewModel sinistroViewModel = this;
+ int mostrarLista;
+ if (!MostrarLista)
+ {
+ ObservableCollection<Item> itens = Itens;
+ mostrarLista = ((itens != null && itens.Count > 1) ? 1 : 0);
+ }
+ else
+ {
+ mostrarLista = 1;
+ }
+ sinistroViewModel.MostrarLista = (byte)mostrarLista != 0;
+ Carregando = false;
+ Loading(isLoading: false);
+ }
+
+ public async Task SelecionaControles(Item item)
+ {
+ Loading(isLoading: true);
+ await CarregarControles(item);
+ if (ControlesFiltrados.Count > 0)
+ {
+ SelectedControle = ControlesFiltrados.FirstOrDefault();
+ }
+ else
+ {
+ SelectedControle = new ControleSinistro();
+ Alterar(alterar: false);
+ }
+ SinistroViewModel sinistroViewModel = this;
+ ControleSinistro selectedControle = SelectedControle;
+ sinistroViewModel.SelectedSinistro = ((selectedControle == null) ? null : selectedControle.Sinistros?.FirstOrDefault());
+ Loading(isLoading: false);
+ }
+
+ private async Task CarregarControles(Item item)
+ {
+ Controles = (await _servico.BuscarControles(((DomainBase)item).Id)).OrderByDescending((ControleSinistro x) => x.DataSinistro).ToList();
+ ControlesFiltrados = new ObservableCollection<ControleSinistro>(Controles);
+ }
+
+ internal async Task<List<ControleSinistro>> SinistroFiltrar(string value)
+ {
+ return await Task.Run(() => FiltrarSinistro(value));
+ }
+
+ public List<ControleSinistro> FiltrarSinistro(string filter)
+ {
+ ControlesFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<ControleSinistro>(Controles) : new ObservableCollection<ControleSinistro>(from x in Controles
+ where ValidationHelper.RemoveDiacritics(x.DataSinistro.ToString().Trim()).Contains(filter) || (x.Sinistros != null && x.Sinistros.Count > 0 && ValidationHelper.RemoveDiacritics(x.Sinistros[0].Numero.Trim()).Contains(filter))
+ orderby x.DataSinistro
+ select x));
+ SelectedControle = ((ControlesFiltrados.Count > 0) ? ControlesFiltrados.First() : null);
+ return ControlesFiltrados.ToList();
+ }
+
+ internal async Task<List<Item>> ItemFiltrar(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 Task<Cliente> BuscarClienteSinistro()
+ {
+ return await _itemServico.BuscarCliente(((DomainBase)SelectedItem).Id);
+ }
+
+ public async void EnviarLogEmail()
+ {
+ List<Credencial> list = Credenciais;
+ if (list == null)
+ {
+ list = await new BaseServico().BuscarCredenciais();
+ }
+ Credenciais = list;
+ SelectedCredencial = ((IEnumerable<Credencial>)Credenciais).FirstOrDefault((Func<Credencial, bool>)((Credencial x) => x.IdUsuario == ((DomainBase)Recursos.Usuario).Id)) ?? Credenciais.FirstOrDefault();
+ ObservableCollection<ClienteEmail> mails = await _clienteServico.BuscarEmailsAsync(((DomainBase)SelectedSinistro.ControleSinistro.Item.Documento.Controle.Cliente).Id);
+ if (mails.Count == 0)
+ {
+ await ShowMessage("O CLIENTE NÃO POSSUI NENHUM E-MAIL CADASTRADO");
+ return;
+ }
+ Documento val = await new ApoliceServico().BuscarApoliceAsync(((DomainBase)_documentoSelecionado).Id);
+ SinistroViewModel sinistroViewModel = this;
+ Vendedor vendedorPrincipal = val.VendedorPrincipal;
+ string text = sinistroViewModel.GerarHtmlSinistro((vendedorPrincipal != null) ? vendedorPrincipal.Nome : null);
+ string input = new Regex("<title>.*<\\/title>").Replace(text, " ").Trim();
+ input = new Regex("(<[^>]*>)|(p\\s?{[^}]*})|(\\r)|(\\n)").Replace(input, " ").Trim();
+ input = input.Replace("@page{ size: A4;} body; -webkit-print-color-adjust: exact; }", " ");
+ input.Replace("NEW P { MARGIN-BOTTOM: 0; MARGIN-TOP: 0; }", " ");
+ MalaDireta val2 = new MalaDireta
+ {
+ Cliente = val.Controle.Cliente,
+ ArquivoDigital = null,
+ Sinistro = SelectedSinistro,
+ Item = SelectedItem,
+ Apolice = val,
+ Tela = (TipoTela)7
+ };
+ ClienteEmail? obj = mails.FirstOrDefault();
+ val2.Email = ((obj != null) ? ((EmailBase)obj).Email : null);
+ ClienteEmail? obj2 = mails.FirstOrDefault();
+ val2.Ordem = ((obj2 != null) ? obj2.Ordem : null).GetValueOrDefault();
+ MalaDireta item = val2;
+ if (Funcoes.IsWindowOpen<HosterWindow>("ENVIO DE E-MAIL"))
+ {
+ Funcoes.Destroy<HosterWindow>("ENVIO DE E-MAIL");
+ }
+ ((Window)new HosterWindow((ContentControl)(object)new MalaDiretaView(new List<MalaDireta> { item }, "HISTÓRICO DO SINISTRO DO ITEM " + SelectedItem.Descricao, text), "ENVIO DE E-MAIL", 1200.0, 600.0, canMaximize: true)).ShowDialog();
+ }
+
+ public void AbrirInfo()
+ {
+ ShowDrawer(new InfoDrawer(_documentoSelecionado), 0, close: false);
+ }
+}