diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 15:29:41 +0000 |
| commit | 225aa1499e37faf9d38257caabbadc68d78b427e (patch) | |
| tree | 102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs | |
| parent | 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff) | |
| download | gestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip | |
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs')
| -rw-r--r-- | Decompiler/Gestor.Application.ViewModels.Seguros/SinistroViewModel.cs | 1337 |
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); + } +} |