From 1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 Mon Sep 17 00:00:00 2001 From: Lucas Faria Mendes Date: Mon, 30 Mar 2026 10:38:18 -0300 Subject: chore: location --- .../ViewModels/Seguros/ApoliceViewModel.cs | 124 + .../ViewModels/Seguros/ClienteViewModel.cs | 1787 ++++++++++++ .../ViewModels/Seguros/ConsultaViewModel.cs | 2425 ++++++++++++++++ .../ViewModels/Seguros/CriticaApoliceViewModel.cs | 1486 ++++++++++ .../Seguros/Itens/AeronauticoViewModel.cs | 554 ++++ .../ViewModels/Seguros/Itens/AutoViewModel.cs | 3018 ++++++++++++++++++++ .../Seguros/Itens/BuscarModeloViewModel.cs | 95 + .../ViewModels/Seguros/Itens/ConsorcioViewModel.cs | 520 ++++ .../ViewModels/Seguros/Itens/GranizoViewModel.cs | 500 ++++ .../Seguros/Itens/PatrimonialViewModel.cs | 678 +++++ .../Seguros/Itens/RiscosDiversosViewModel.cs | 626 ++++ .../ViewModels/Seguros/Itens/VidaViewModel.cs | 661 +++++ .../ViewModels/Seguros/PerfilEmpresaViewModel.cs | 274 ++ .../ViewModels/Seguros/PerfilViewModel.cs | 183 ++ .../ViewModels/Seguros/SinistroViewModel.cs | 2104 ++++++++++++++ .../ViewModels/Seguros/TrocarClienteViewModel.cs | 92 + 16 files changed, 15127 insertions(+) create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/ApoliceViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/ClienteViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/ConsultaViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/CriticaApoliceViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AeronauticoViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AutoViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/BuscarModeloViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/ConsorcioViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/GranizoViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/PatrimonialViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/RiscosDiversosViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/Itens/VidaViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/PerfilEmpresaViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/PerfilViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/SinistroViewModel.cs create mode 100644 Codemerx/Gestor.Application/ViewModels/Seguros/TrocarClienteViewModel.cs (limited to 'Codemerx/Gestor.Application/ViewModels/Seguros') diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/ApoliceViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/ApoliceViewModel.cs new file mode 100644 index 0000000..94fc4be --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/ApoliceViewModel.cs @@ -0,0 +1,124 @@ +using Gestor.Application.Drawers; +using Gestor.Application.Helpers; +using Gestor.Application.ViewModels.Generic; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class ApoliceViewModel : BaseApoliceViewModel + { + private bool _documentoExcluido; + + public bool DocumentoExcluido + { + get + { + return this._documentoExcluido; + } + set + { + this._documentoExcluido = value; + base.OnPropertyChanged("DocumentoExcluido"); + } + } + + public ApoliceViewModel(AcessoApolice acesso, Documento documentoSelecionado, bool invoke = true, long idparcela = 0L) + { + long id; + base.Invoke = invoke; + base.Acesso = acesso; + base.DocumentoSelecionado = documentoSelecionado; + if (invoke) + { + Parcela parcelaSelecionada = ConsultaViewModel.ParcelaSelecionada; + if (parcelaSelecionada != null) + { + id = parcelaSelecionada.get_Id(); + } + else + { + id = (long)0; + } + } + else + { + id = idparcela; + } + base.ParcelaSelecionada = id; + this.DocumentoExcluido = (base.DocumentoSelecionado != null ? base.DocumentoSelecionado.get_Excluido() : false); + base.Seleciona(base.DocumentoSelecionado); + } + + public void AbrirInfo() + { + base.ShowDrawer(new InfoDrawer(base.SelectedDocumento, true), 0, false); + } + + public async Task Alteracao(bool alterar) + { + if (base.AllowEditApolice) + { + ObservableCollection parcelas = base.Parcelas; + if (!parcelas.Any((Parcela x) => x.get_DataRecebimento().HasValue)) + { + List repasses = base.Repasses; + if (!repasses.Any((VendedorParcela x) => x.get_DataPagamento().HasValue)) + { + List list = Recursos.Seguradoras.Where((Seguradora x) => { + if (x.get_Ativo()) + { + return true; + } + return x.get_Id() == base.SelectedDocumento.get_Controle().get_Seguradora().get_Id(); + }).ToList(); + base.Seguradoras = list; + base.SeguradorasAnteriores = Recursos.Seguradoras; + List ramos = Recursos.Ramos.Where((Ramo x) => { + if (x.get_Ativo()) + { + return true; + } + return x.get_Id() == base.SelectedDocumento.get_Controle().get_Ramo().get_Id(); + }).ToList(); + base.Ramos = ramos; + List produtos = Recursos.Produtos.Where((Produto x) => { + if (x.get_Ativo()) + { + return true; + } + if (base.SelectedDocumento.get_Controle().get_Produto() == null) + { + return false; + } + return x.get_Id() == base.SelectedDocumento.get_Controle().get_Produto().get_Id(); + }).ToList(); + base.Produtos = produtos; + List statuses = Recursos.Status.Where((Gestor.Model.Domain.Seguros.Status x) => { + if (x.get_Ativo()) + { + return true; + } + if (base.SelectedDocumento.get_Status() == null) + { + return false; + } + return x.get_Id() == base.SelectedDocumento.get_Status().get_Id(); + }).ToList(); + base.Status = statuses; + return; + } + } + } + await base.ShowMessage("DOCUMENTO POSSUI BAIXAS DE COMISSÃO OU PAGAMENTO DE VENDEDORES.\nNÃO SERÁ POSSÍVEL ALTERAR ALGUMAS INFORMAÇÕES DO DOCUMENTO.\nPARA ISSO, EXCLUA AS BAIXAS E O PAGAMENTO DO VENDEDOR", "OK", "", false); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/ClienteViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/ClienteViewModel.cs new file mode 100644 index 0000000..b68e57d --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/ClienteViewModel.cs @@ -0,0 +1,1787 @@ +using Agger.Registro; +using Gestor.Application.Actions; +using Gestor.Application.Drawers; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Ferramentas; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Command; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Security; +using Gestor.Common.Validation; +using Gestor.Model.API; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Ferramentas; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Net.Http; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Input; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class ClienteViewModel : BaseSegurosViewModel + { + private const int NumeroMaximoCadastros = 9; + + private readonly ClienteServico _servico; + + private const string AddCentralSegurado = "ADICIONAR CENTRAL SEGURADO"; + + private const string UpdateCentralSegurado = "ALTERAR DADOS/SENHA CENTRAL SEGURADO"; + + private bool _visibilityLogAntigo = Recursos.Configuracoes.Any(new Func((ConfiguracaoSistema x) => x.get_Configuracao() == 22)); + + private ObservableCollection _telefones = new ObservableCollection(); + + private ObservableCollection _emails = new ObservableCollection(); + + private ObservableCollection _enderecos = new ObservableCollection(); + + private ObservableCollection _contatos = new ObservableCollection(); + + private ObservableCollection _vinculos = new ObservableCollection(); + + private Cliente _vinculo; + + private bool _isLoading; + + private bool _clienteExcluido; + + private DateTime? _nascimentoCliente; + + private DateTime? _habilitaCliente; + + private DateTime? _vencimentoHabCliente; + + private DateTime? _expedicaoCliente; + + private Cliente _selectedCliente; + + private string _fieldNascimento = "NASCIMENTO"; + + private string _fieldDocumento = "CPF"; + + private Visibility _visibilityJuridica = Visibility.Collapsed; + + private Visibility _visibilityFisica = Visibility.Collapsed; + + private bool _enableAddTelephone = true; + + private bool _enableAddAddress = true; + + private bool _enableAddEmail = true; + + private bool _enableAddContact = true; + + private string _profissaoText; + + private string _atividadeText; + + private bool _saving; + + private ObservableCollection _origens; + + private OrigemCliente _selectedOrigem; + + public Visibility AddUsuarioCentralSeguradoVisibility { get; set; } = (string.IsNullOrEmpty(Connection.UrlCentralSegurado) ? Visibility.Collapsed : Visibility.Visible); + + public string AtividadeText + { + get + { + return this._atividadeText; + } + set + { + this._atividadeText = value; + base.OnPropertyChanged("AtividadeText"); + } + } + + public bool ClienteExcluido + { + get + { + return this._clienteExcluido; + } + set + { + this._clienteExcluido = value; + base.OnPropertyChanged("ClienteExcluido"); + } + } + + private Cliente ClienteSelecionado + { + get; + set; + } + + public ICommand CommandAddUsuarioCentralSegurado + { + get; + set; + } + + public ObservableCollection Contatos + { + get + { + return this._contatos; + } + set + { + this._contatos = value; + base.OnPropertyChanged("Contatos"); + } + } + + public ObservableCollection Emails + { + get + { + return this._emails; + } + set + { + this._emails = value; + base.OnPropertyChanged("Emails"); + } + } + + public bool EnableAddAddress + { + get + { + return this._enableAddAddress; + } + set + { + this._enableAddAddress = value; + base.OnPropertyChanged("EnableAddAddress"); + } + } + + public bool EnableAddContact + { + get + { + return this._enableAddContact; + } + set + { + this._enableAddContact = value; + base.OnPropertyChanged("EnableAddContact"); + } + } + + public bool EnableAddEmail + { + get + { + return this._enableAddEmail; + } + set + { + this._enableAddEmail = value; + base.OnPropertyChanged("EnableAddEmail"); + } + } + + public bool EnableAddTelephone + { + get + { + return this._enableAddTelephone; + } + set + { + this._enableAddTelephone = value; + base.OnPropertyChanged("EnableAddTelephone"); + } + } + + public ObservableCollection Enderecos + { + get + { + return this._enderecos; + } + set + { + this._enderecos = value; + base.OnPropertyChanged("Enderecos"); + } + } + + public DateTime? ExpedicaoCliente + { + get + { + return this._expedicaoCliente; + } + set + { + this._expedicaoCliente = value; + base.OnPropertyChanged("ExpedicaoCliente"); + } + } + + public string FieldDocumento + { + get + { + return this._fieldDocumento; + } + set + { + this._fieldDocumento = value; + base.OnPropertyChanged("FieldDocumento"); + } + } + + public string FieldNascimento + { + get + { + return this._fieldNascimento; + } + set + { + this._fieldNascimento = value; + base.OnPropertyChanged("FieldNascimento"); + } + } + + public DateTime? HabilitaCliente + { + get + { + return this._habilitaCliente; + } + set + { + this._habilitaCliente = value; + base.OnPropertyChanged("HabilitaCliente"); + } + } + + private bool Invoke + { + get; + } + + private bool IsJuridica + { + get; + set; + } + + public bool IsLoading + { + get + { + return this._isLoading; + } + set + { + this._isLoading = value; + base.OnPropertyChanged("IsLoading"); + } + } + + public string LabelAddUsuarioCentralSegurado + { + get + { + if (this.SelectedCliente != null && this.SelectedCliente.get_EstaNaCentralSegurado()) + { + return "ALTERAR DADOS/SENHA CENTRAL SEGURADO"; + } + return "ADICIONAR CENTRAL SEGURADO"; + } + } + + public DateTime? NascimentoCliente + { + get + { + return this._nascimentoCliente; + } + set + { + this._nascimentoCliente = value; + base.OnPropertyChanged("NascimentoCliente"); + } + } + + public ObservableCollection Origens + { + get + { + return this._origens; + } + set + { + this._origens = value; + base.OnPropertyChanged("Origens"); + if (this.Origens != null) + { + this.SelectedOrigem = this.Origens.FirstOrDefault(); + } + } + } + + public string ProfissaoText + { + get + { + return this._profissaoText; + } + set + { + this._profissaoText = value; + base.OnPropertyChanged("ProfissaoText"); + } + } + + public bool Salvando + { + get; + set; + } + + public Cliente SelectedCliente + { + get + { + return this._selectedCliente; + } + set + { + long? nullable; + this._selectedCliente = value; + this.WorkOnSelectedCliente(value); + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedCliente"); + base.OnPropertyChanged("LabelAddUsuarioCentralSegurado"); + } + } + + public OrigemCliente SelectedOrigem + { + get + { + return this._selectedOrigem; + } + set + { + this._selectedOrigem = value; + base.OnPropertyChanged("SelectedOrigem"); + } + } + + public ObservableCollection Telefones + { + get + { + return this._telefones; + } + set + { + this._telefones = value; + base.OnPropertyChanged("Telefones"); + } + } + + public DateTime? VencimentoHabCliente + { + get + { + return this._vencimentoHabCliente; + } + set + { + this._vencimentoHabCliente = value; + base.OnPropertyChanged("VencimentoHabCliente"); + } + } + + public Cliente Vinculo + { + get + { + return this._vinculo; + } + set + { + this._vinculo = value; + base.OnPropertyChanged("Vinculo"); + } + } + + public ObservableCollection Vinculos + { + get + { + return this._vinculos; + } + set + { + if (value != null && value.Count > 0 && this.SelectedCliente != null) + { + foreach (ClienteVinculo clienteVinculo in value) + { + if (clienteVinculo.get_Cliente2().get_Id() != this.SelectedCliente.get_Id()) + { + continue; + } + clienteVinculo.set_Parentesco(Funcoes.ParentescoInverso(clienteVinculo.get_Parentesco())); + } + } + this._vinculos = value; + base.OnPropertyChanged("Vinculos"); + } + } + + public Visibility VisibilityFisica + { + get + { + return this._visibilityFisica; + } + set + { + this._visibilityFisica = value; + base.OnPropertyChanged("VisibilityFisica"); + } + } + + public Visibility VisibilityJuridica + { + get + { + return this._visibilityJuridica; + } + set + { + this._visibilityJuridica = value; + base.OnPropertyChanged("VisibilityJuridica"); + } + } + + public bool VisibilityLogAntigo + { + get + { + return this._visibilityLogAntigo; + } + set + { + this._visibilityLogAntigo = value; + base.OnPropertyChanged("VisibilityLogAntigo"); + } + } + + public ClienteViewModel(Cliente cliente = null, bool invoke = true) + { + this.Invoke = invoke; + this._servico = new ClienteServico(); + this.ClienteSelecionado = cliente ?? MainViewModel.ClienteSelecionado; + this.SelecionaCliente(this.ClienteSelecionado); + this.CommandAddUsuarioCentralSegurado = new RelayCommand(() => this.AddUsuarioCentralSegurado()); + } + + public async void AbrirLogAntigo() + { + base.Loading(true); + string str = await this._servico.BuscarLogAntigo(this.SelectedCliente.get_Id()); + base.Loading(false); + if (!string.IsNullOrEmpty(str)) + { + base.ShowDrawer(new LogSistemaAntigo(this.SelectedCliente.get_Id(), str), 0, false); + } + else + { + await base.ShowMessage("NÃO HÁ LOG PARA ESSE CLIENTE", "OK", "", false); + } + } + + public async void AddUsuarioCentralSegurado() + { + string str; + string str1; + string str2; + string str3; + string str4; + string str5; + string str6; + string str7; + if (this.SelectedCliente != null && this.SelectedCliente.get_Emails().Count != 0) + { + base.Loading(true); + str7 = "CLIENTE CADASTRADO/ALTERADO COM SUCESSO!"; + try + { + str = (this.SelectedCliente.get_Telefones().Count == 0 ? string.Empty : string.Concat("(", this.SelectedCliente.get_Telefones()[0].get_Prefixo(), ") ", this.SelectedCliente.get_Telefones()[0].get_Numero())); + string str8 = str; + bool count = this.SelectedCliente.get_Enderecos().Count > 0; + Token token = new Token(); + UsuarioCentralSegurado usuarioCentralSegurado = new UsuarioCentralSegurado(); + usuarioCentralSegurado.set_Id(""); + usuarioCentralSegurado.set_Senha(""); + usuarioCentralSegurado.set_Serial(token.Encrypt(Recursos.Empresa.get_Serial())); + usuarioCentralSegurado.set_FornecedorId(ApplicationHelper.IdFornecedor); + usuarioCentralSegurado.set_Nome(token.Encrypt(this.SelectedCliente.get_Nome())); + usuarioCentralSegurado.set_Documento(token.Encrypt(this.SelectedCliente.get_Documento().Clear())); + usuarioCentralSegurado.set_Email(token.Encrypt(this.SelectedCliente.get_Emails()[0].get_Email())); + usuarioCentralSegurado.set_IdEmpresa(this.SelectedCliente.get_IdEmpresa()); + usuarioCentralSegurado.set_Telefone(token.Encrypt(str8)); + str1 = (count ? token.Encrypt(this.SelectedCliente.get_Enderecos()[0].get_Endereco()) : string.Empty); + usuarioCentralSegurado.set_Rua(str1); + str2 = (count ? token.Encrypt(this.SelectedCliente.get_Enderecos()[0].get_Numero()) : string.Empty); + usuarioCentralSegurado.set_Numero(str2); + str3 = (count ? token.Encrypt(this.SelectedCliente.get_Enderecos()[0].get_Bairro()) : string.Empty); + usuarioCentralSegurado.set_Bairro(str3); + str4 = (count ? token.Encrypt(this.SelectedCliente.get_Enderecos()[0].get_Cidade()) : string.Empty); + usuarioCentralSegurado.set_Cidade(str4); + str5 = (count ? token.Encrypt(this.SelectedCliente.get_Enderecos()[0].get_Estado()) : string.Empty); + usuarioCentralSegurado.set_Estado(str5); + str6 = (count ? token.Encrypt(this.SelectedCliente.get_Enderecos()[0].get_Cep()) : string.Empty); + usuarioCentralSegurado.set_Cep(str6); + usuarioCentralSegurado.set_Corretora(token.Encrypt(Recursos.Empresa.get_Nome())); + usuarioCentralSegurado.set_UriCorretora(token.Encrypt(Connection.UrlCentralSegurado)); + UsuarioCentralSegurado usuarioCentralSegurado1 = usuarioCentralSegurado; + using (HttpClient httpClient = new HttpClient()) + { + StringContent stringContent = new StringContent(JsonConvert.SerializeObject(usuarioCentralSegurado1), Encoding.UTF8, "application/json"); + Uri centralSegurado = Address.get_CentralSegurado(); + string[] strArrays = new string[] { "Usuario" }; + Uri uri = centralSegurado.Append(strArrays); + string[] strArrays1 = new string[] { "AddAggerApp" }; + Uri uri1 = uri.Append(strArrays1); + HttpResponseMessage httpResponseMessage = await httpClient.PostAsync(uri1, stringContent); + await this._servico.AddCentralSegurado(this.SelectedCliente.get_Id(), httpResponseMessage.get_IsSuccessStatusCode()); + if (!httpResponseMessage.get_IsSuccessStatusCode()) + { + string str9 = await httpResponseMessage.get_Content().ReadAsStringAsync(); + str7 = string.Concat("HOUVE(RAM) O(S) SEGUINTE(S) ERROS: ", str9.Replace(";", ", ").ToUpper()); + } + httpResponseMessage = null; + } + httpClient = null; + } + catch + { + str7 = "HOUVERAM ERROS AO CADASTRAR/ALTERAR O CLIENTE!"; + } + base.OnPropertyChanged("LabelAddUsuarioCentralSegurado"); + base.Loading(false); + await base.ShowMessage(str7, "OK", "", false); + } + str7 = null; + } + + public async void CancelarAlteracao() + { + base.Loading(true); + this.IsLoading = true; + base.Alterar(false); + await this.CarregaCliente(this.ClienteSelecionado); + this.Salvando = false; + this.IsLoading = false; + base.Loading(false); + } + + public async Task CarregaCliente(Cliente value) + { + bool count; + bool flag; + bool count1; + bool flag1; + bool count2; + bool flag2; + bool count3; + Cliente cliente; + if (value == null || value.get_Id() == 0) + { + this.SelectedCliente = null; + this.Telefones = null; + this.Enderecos = null; + this.Emails = null; + this.Contatos = null; + this.Vinculos = null; + this.Origens = null; + } + else + { + cliente = value; + if (value.get_Id() != 0) + { + cliente = await this._servico.BuscarCliente(value.get_Id()); + Cliente cliente1 = cliente; + ObservableCollection observableCollection = await this._servico.BuscarTelefonesAsync(value.get_Id()); + cliente1.set_Telefones(observableCollection); + cliente1 = null; + ClienteViewModel clienteViewModel = this; + ObservableCollection telefones = cliente.get_Telefones(); + if (telefones != null) + { + count = telefones.Count <= 9; + } + else + { + count = false; + } + clienteViewModel.EnableAddTelephone = count; + cliente1 = cliente; + ObservableCollection observableCollection1 = await this._servico.BuscarEmailsAsync(value.get_Id()); + cliente1.set_Emails(observableCollection1); + cliente1 = null; + ClienteViewModel clienteViewModel1 = this; + ObservableCollection emails = cliente.get_Emails(); + if (emails != null) + { + flag = emails.Count <= 9; + } + else + { + flag = false; + } + clienteViewModel1.EnableAddEmail = flag; + cliente1 = cliente; + ObservableCollection observableCollection2 = await this._servico.BuscarEnderecosAsync(value.get_Id()); + cliente1.set_Enderecos(observableCollection2); + cliente1 = null; + ClienteViewModel clienteViewModel2 = this; + ObservableCollection enderecos = cliente.get_Enderecos(); + if (enderecos != null) + { + count1 = enderecos.Count <= 9; + } + else + { + count1 = false; + } + clienteViewModel2.EnableAddAddress = count1; + cliente1 = cliente; + ObservableCollection observableCollection3 = await this._servico.BuscarContatosAsync(value.get_Id()); + cliente1.set_Contatos(observableCollection3); + cliente1 = null; + ClienteViewModel clienteViewModel3 = this; + ObservableCollection contatos = cliente.get_Contatos(); + if (contatos != null) + { + flag1 = contatos.Count <= 9; + } + else + { + flag1 = false; + } + clienteViewModel3.EnableAddContact = flag1; + cliente1 = cliente; + ObservableCollection observableCollection4 = await this._servico.BuscarVinculosAsync(value.get_Id()); + cliente1.set_Vinculos(observableCollection4); + cliente1 = null; + this.Origens = await this._servico.BuscarOrigens(value.get_Id()); + this.Telefones = cliente.get_Telefones(); + ObservableCollection telefones1 = this.Telefones; + if (telefones1 != null) + { + count2 = telefones1.Count == 0; + } + else + { + count2 = false; + } + if (count2) + { + this.IncluirTelefone(); + } + this.Emails = cliente.get_Emails(); + ObservableCollection emails1 = this.Emails; + if (emails1 != null) + { + flag2 = emails1.Count == 0; + } + else + { + flag2 = false; + } + if (flag2) + { + this.IncluirEmail(); + } + this.Enderecos = cliente.get_Enderecos(); + ObservableCollection enderecos1 = this.Enderecos; + if (enderecos1 != null) + { + count3 = enderecos1.Count == 0; + } + else + { + count3 = false; + } + if (count3) + { + this.IncluirEndereco(); + } + this.Contatos = cliente.get_Contatos(); + this.Vinculos = cliente.get_Vinculos(); + } + if (!cliente.get_DocumentoPrincipal().HasValue) + { + cliente.set_DocumentoPrincipal(new TipoDocumento?(0)); + } + if (cliente.get_ResponsavelAssinatura() == null) + { + Cliente cliente2 = cliente; + ResponsavelAssinatura responsavelAssinatura = new ResponsavelAssinatura(); + responsavelAssinatura.set_IdCliente(cliente.get_Id()); + cliente2.set_ResponsavelAssinatura(responsavelAssinatura); + } + this.SelectedCliente = cliente; + this.JuridicaouFisica(this.SelectedCliente.get_Documento()); + this.SelectedCliente.Initialize(); + ObservableCollection telefones2 = this.SelectedCliente.get_Telefones(); + if (telefones2 != null) + { + List list = telefones2.ToList(); + list.ForEach((ClienteTelefone telefone) => telefone.Initialize()); + } + else + { + } + ObservableCollection enderecos2 = this.SelectedCliente.get_Enderecos(); + if (enderecos2 != null) + { + List clienteEnderecos = enderecos2.ToList(); + clienteEnderecos.ForEach((ClienteEndereco endereco) => endereco.Initialize()); + } + else + { + } + ObservableCollection contatos1 = this.SelectedCliente.get_Contatos(); + if (contatos1 != null) + { + List maisContatos = contatos1.ToList(); + maisContatos.ForEach((MaisContato contato) => contato.Initialize()); + } + else + { + } + ObservableCollection emails2 = this.SelectedCliente.get_Emails(); + if (emails2 != null) + { + List clienteEmails = emails2.ToList(); + clienteEmails.ForEach((ClienteEmail email) => email.Initialize()); + } + else + { + } + ObservableCollection vinculos = this.SelectedCliente.get_Vinculos(); + if (vinculos != null) + { + List clienteVinculos = vinculos.ToList(); + clienteVinculos.ForEach((ClienteVinculo vinculo) => vinculo.Initialize()); + } + else + { + } + this.Initialized = true; + } + cliente = null; + } + + public async void Excluir() + { + Cliente selectedCliente; + if (this.SelectedCliente != null && this.SelectedCliente.get_Id() != 0) + { + if (await (new ApoliceServico()).BuscarApolicesAsync(this.SelectedCliente.get_Id(), 4, null).Count > 0) + { + await base.ShowMessage("NÃO É POSSÍVEL EXCLUIR O CLIENTE POIS POSSUI APÓLICES CADASTRADAS.", "OK", "", false); + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + selectedCliente = this.SelectedCliente; + selectedCliente.set_Excluido(true); + if (await this._servico.Delete(selectedCliente)) + { + this.ClienteSelecionado = null; + MainViewModel.ClienteSelecionado = null; + Action limparCliente = Gestor.Application.Actions.Actions.LimparCliente; + if (limparCliente != null) + { + limparCliente(); + } + else + { + } + Cliente cliente = new Cliente(); + cliente.set_IdEmpresa(Recursos.Usuario.get_IdEmpresa()); + cliente.set_DocumentoPrincipal(new TipoDocumento?(0)); + cliente.set_ClienteDesde(new DateTime?(Funcoes.GetNetworkTime().Date)); + this.SelectedCliente = cliente; + ObservableCollection observableCollection = new ObservableCollection(); + ClienteTelefone clienteTelefone = new ClienteTelefone(); + clienteTelefone.set_Cliente(this.SelectedCliente); + clienteTelefone.set_Tipo(new TipoTelefone?(1)); + clienteTelefone.set_Ordem(new int?(1)); + observableCollection.Add(clienteTelefone); + this.Telefones = observableCollection; + ObservableCollection observableCollection1 = new ObservableCollection(); + ClienteEndereco clienteEndereco = new ClienteEndereco(); + clienteEndereco.set_Cliente(this.SelectedCliente); + clienteEndereco.set_Ordem(new int?(1)); + observableCollection1.Add(clienteEndereco); + this.Enderecos = observableCollection1; + ObservableCollection observableCollection2 = new ObservableCollection(); + ClienteEmail clienteEmail = new ClienteEmail(); + clienteEmail.set_Cliente(this.SelectedCliente); + clienteEmail.set_Ordem(new int?(1)); + observableCollection2.Add(clienteEmail); + this.Emails = observableCollection2; + this.Contatos = new ObservableCollection(); + this.Vinculos = new ObservableCollection(); + this.Origens = new ObservableCollection(); + string str = string.Format("EXCLUIU CLIENTE \"{0}\", ID: {1}", selectedCliente.get_Nome(), selectedCliente.get_Id()); + base.RegistrarAcao(str, selectedCliente.get_Id(), new TipoTela?(1), string.Format("CLIENTE \"{0}\", ID: {1}", this.SelectedCliente.get_Nome(), this.SelectedCliente.get_Id())); + base.ToggleSnackBar("CLIENTE EXCLUÍDO COM SUCESSO", true); + } + } + } + selectedCliente = null; + } + + public void ExcluirContato(MaisContato contato) + { + this.EnableAddContact = this.Contatos.Count <= 9; + this.Contatos.Remove(contato); + } + + public async void ExcluirEmail(ClienteEmail email) + { + if (this.Emails.Count < 2) + { + List configuracoes = Recursos.Configuracoes; + if (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 29)) + { + await base.ShowMessage("É NECESSÁRIO TER AO MENOS UM CONTATO DE E-MAIL CADASTRADO.", "OK", "", false); + return; + } + } + this.EnableAddEmail = this.Emails.Count <= 9; + this.Emails.Remove(email); + } + + public async void ExcluirEndereco(ClienteEndereco endereco) + { + if (this.Enderecos.Count >= 2) + { + this.EnableAddAddress = this.Enderecos.Count <= 9; + this.Enderecos.Remove(endereco); + } + else + { + await base.ShowMessage("É NECESSÁRIO TER AO MENOS UM ENDEREÇO CADASTRADO.", "OK", "", false); + } + } + + public async Task ExcluirOrigem(OrigemCliente origem) + { + ClienteViewModel clienteViewModel = this; + clienteViewModel.Origens.Remove(origem); + clienteViewModel.OnPropertyChanged("Origens"); + } + + public async void ExcluirTelefone(ClienteTelefone telefone) + { + if (this.Telefones.Count >= 2) + { + this.EnableAddTelephone = this.Telefones.Count <= 9; + this.Telefones.Remove(telefone); + } + else + { + await base.ShowMessage("É NECESSÁRIO TER AO MENOS UM CONTATO TELEFÔNICO CADASTRADO.", "OK", "", false); + } + } + + public void ExcluirVinculo(ClienteVinculo vinculo) + { + this.Vinculos.Remove(vinculo); + } + + public void IncluirCliente() + { + DateTime date = Funcoes.GetNetworkTime().Date; + Cliente cliente = new Cliente(); + cliente.set_IdEmpresa(Recursos.Usuario.get_IdEmpresa()); + cliente.set_DocumentoPrincipal(new TipoDocumento?(0)); + cliente.set_ClienteDesde(new DateTime?(date)); + cliente.set_ResponsavelAssinatura(new ResponsavelAssinatura()); + this.SelectedCliente = cliente; + this.NascimentoCliente = new DateTime?(date); + this.HabilitaCliente = new DateTime?(date); + this.VencimentoHabCliente = new DateTime?(date); + this.ExpedicaoCliente = new DateTime?(date); + ObservableCollection observableCollection = new ObservableCollection(); + ClienteTelefone clienteTelefone = new ClienteTelefone(); + clienteTelefone.set_Cliente(this.SelectedCliente); + clienteTelefone.set_Tipo(new TipoTelefone?(1)); + clienteTelefone.set_Ordem(new int?(1)); + observableCollection.Add(clienteTelefone); + this.Telefones = observableCollection; + ObservableCollection observableCollection1 = new ObservableCollection(); + ClienteEndereco clienteEndereco = new ClienteEndereco(); + clienteEndereco.set_Cliente(this.SelectedCliente); + clienteEndereco.set_Ordem(new int?(1)); + observableCollection1.Add(clienteEndereco); + this.Enderecos = observableCollection1; + ObservableCollection observableCollection2 = new ObservableCollection(); + ClienteEmail clienteEmail = new ClienteEmail(); + clienteEmail.set_Cliente(this.SelectedCliente); + clienteEmail.set_Ordem(new int?(1)); + observableCollection2.Add(clienteEmail); + this.Emails = observableCollection2; + this.Contatos = new ObservableCollection(); + this.Vinculos = new ObservableCollection(); + this.Origens = new ObservableCollection(); + this.Salvando = true; + base.Alterar(true); + } + + public void IncluirContato() + { + if (this.SelectedCliente == null) + { + return; + } + if (this.Contatos == null) + { + this.Contatos = new ObservableCollection(); + } + MaisContato maisContato = new MaisContato(); + maisContato.set_Cliente(this.SelectedCliente); + MaisContato maisContato1 = maisContato; + this.EnableAddContact = this.Contatos.Count < 9; + this.Contatos.Add(maisContato1); + base.OnPropertyChanged("IncluirContato"); + } + + public void IncluirEmail() + { + if (this.SelectedCliente == null) + { + return; + } + if (this.Emails == null) + { + this.Emails = new ObservableCollection(); + } + this.EnableAddEmail = this.Emails.Count < 9; + ClienteEmail clienteEmail = new ClienteEmail(); + clienteEmail.set_Cliente(this.SelectedCliente); + clienteEmail.set_Ordem(new int?(this.Emails.Count + 1)); + this.Emails.Add(clienteEmail); + base.OnPropertyChanged("IncluirEmail"); + } + + public void IncluirEndereco() + { + if (this.SelectedCliente == null) + { + return; + } + if (this.Enderecos == null) + { + this.Enderecos = new ObservableCollection(); + } + this.EnableAddAddress = this.Enderecos.Count < 9; + ClienteEndereco clienteEndereco = new ClienteEndereco(); + clienteEndereco.set_Cliente(this.SelectedCliente); + clienteEndereco.set_Ordem(new int?(this.Enderecos.Count + 1)); + this.Enderecos.Add(clienteEndereco); + base.OnPropertyChanged("IncluirEndereco"); + } + + public async Task IncluirOrigem(string name) + { + if (this.SelectedCliente != null && !string.IsNullOrWhiteSpace(name)) + { + if (this.Origens == null) + { + this.Origens = new ObservableCollection(); + } + if (!this.Origens.Any((OrigemCliente x) => { + string str; + string nome = x.get_Nome(); + if (nome != null) + { + str = nome.Trim(); + } + else + { + str = null; + } + return str == name.Trim(); + })) + { + ObservableCollection origens = this.Origens; + OrigemCliente origemCliente = new OrigemCliente(); + origemCliente.set_Cliente(this.SelectedCliente); + origemCliente.set_Nome(name); + origemCliente.set_TipoOrigem((long)1); + origens.Insert(0, origemCliente); + base.OnPropertyChanged("Origens"); + } + else + { + await base.ShowMessage(string.Concat("JÁ EXISTE UMA ORIGEM ", name, ". PROCESSO CANCELADO."), "OK", "", false); + } + } + } + + public void IncluirTelefone() + { + if (this.SelectedCliente == null) + { + return; + } + if (this.Telefones == null) + { + this.Telefones = new ObservableCollection(); + } + this.EnableAddTelephone = this.Telefones.Count < 9; + ClienteTelefone clienteTelefone = new ClienteTelefone(); + clienteTelefone.set_Cliente(this.SelectedCliente); + clienteTelefone.set_Tipo(new TipoTelefone?(1)); + clienteTelefone.set_Ordem(new int?(this.Telefones.Count + 1)); + this.Telefones.Add(clienteTelefone); + base.OnPropertyChanged("IncluirTelefone"); + } + + public bool IncluirVinculo() + { + if (this.Vinculo == null || this.Vinculo.get_Id() == this.SelectedCliente.get_Id()) + { + return false; + } + if (this.Vinculos == null) + { + this.Vinculos = new ObservableCollection(); + } + if (this.Vinculos.Any((ClienteVinculo x) => { + if (x.get_Cliente1().get_Id() == this.Vinculo.get_Id()) + { + return true; + } + return x.get_Cliente2().get_Id() == this.Vinculo.get_Id(); + })) + { + return false; + } + ClienteVinculo clienteVinculo = new ClienteVinculo(); + clienteVinculo.set_Cliente1(this.SelectedCliente); + clienteVinculo.set_Cliente2(this.Vinculo); + this.Vinculos.Add(clienteVinculo); + this.Vinculo = null; + base.OnPropertyChanged("IncluirVinculo"); + return true; + } + + public void JuridicaouFisica(string documento) + { + if (this.SelectedCliente == null) + { + return; + } + this.ProfissaoText = ""; + this.AtividadeText = ""; + if (documento != null && ValidationHelper.OnlyNumber(documento).Length <= 11) + { + this.VisibilityJuridica = Visibility.Collapsed; + this.VisibilityFisica = Visibility.Visible; + this.FieldNascimento = "NASCIMENTO"; + this.FieldDocumento = "CPF"; + this.SelectedCliente.set_Atividade(null); + this.IsJuridica = false; + return; + } + this.VisibilityJuridica = Visibility.Visible; + this.VisibilityFisica = Visibility.Collapsed; + this.FieldNascimento = "FUNDAÇÃO"; + this.FieldDocumento = "CNPJ"; + this.SelectedCliente.set_Profissao(null); + this.IsJuridica = true; + } + + public async Task>> Salvar() + { + List> keyValuePairs; + long num; + long? nullable; + List list; + List clienteVinculos; + ObservableCollection observableCollection; + ObservableCollection observableCollection1; + List origemClientes; + bool id; + bool salvando; + long? nullable1; + long? nullable2; + ClienteViewModel.u003cu003ec__DisplayClass146_0 variable; + Cliente selectedCliente; + Func func = null; + ObservableCollection telefones = this.Telefones; + List clienteTelefones = ( + from x in telefones + where !string.IsNullOrEmpty(x.get_Numero()) + select x).ToList(); + ObservableCollection enderecos = this.Enderecos; + List clienteEnderecos = ( + from x in enderecos + where !string.IsNullOrEmpty(x.get_Endereco()) + select x).ToList(); + ObservableCollection contatos = this.Contatos; + if (contatos != null) + { + list = ( + from x in contatos + where !string.IsNullOrEmpty(x.get_Nome()) + select x).ToList(); + } + else + { + list = null; + } + List maisContatos = list; + ObservableCollection emails = this.Emails; + List clienteEmails = ( + from x in emails + where !string.IsNullOrEmpty(x.get_Email()) + select x).ToList(); + ObservableCollection vinculos = this.Vinculos; + if (vinculos != null) + { + clienteVinculos = vinculos.Where((ClienteVinculo x) => { + if (x.get_Cliente2() == null) + { + return false; + } + return x.get_Parentesco().HasValue; + }).ToList(); + } + else + { + clienteVinculos = null; + } + List clienteVinculos1 = clienteVinculos; + if (clienteVinculos1 != null && this.ClienteSelecionado != null) + { + List clienteVinculos2 = clienteVinculos1; + Func func1 = func; + if (func1 == null) + { + Func id1 = (ClienteVinculo c) => c.get_Cliente2().get_Id() == this.ClienteSelecionado.get_Id(); + Func func2 = id1; + func = id1; + func1 = func2; + } + foreach (ClienteVinculo clienteVinculo in clienteVinculos2.Where(func1)) + { + clienteVinculo.set_Parentesco(Funcoes.ParentescoInverso(clienteVinculo.get_Parentesco())); + } + } + this.SelectedCliente.set_Telefones(new ObservableCollection(clienteTelefones)); + this.SelectedCliente.set_Enderecos(new ObservableCollection(clienteEnderecos)); + Cliente cliente = this.SelectedCliente; + if (maisContatos != null) + { + observableCollection = new ObservableCollection(maisContatos); + } + else + { + observableCollection = null; + } + cliente.set_Contatos(observableCollection); + this.SelectedCliente.set_Emails(new ObservableCollection(clienteEmails)); + Cliente selectedCliente1 = this.SelectedCliente; + if (clienteVinculos1 != null) + { + observableCollection1 = new ObservableCollection(clienteVinculos1); + } + else + { + observableCollection1 = null; + } + selectedCliente1.set_Vinculos(observableCollection1); + Cliente cliente1 = this.SelectedCliente; + ObservableCollection origens = this.Origens; + if (origens != null) + { + origemClientes = origens.ToList(); + } + else + { + origemClientes = null; + } + cliente1.set_Origens(origemClientes); + if (ValidationHelper.OnlyNumber(this.SelectedCliente.get_Documento()).Length <= 11 && !string.IsNullOrWhiteSpace(this.ProfissaoText) && this.SelectedCliente.get_Profissao() == null) + { + ProfissaoServico profissaoServico = new ProfissaoServico(); + selectedCliente = this.SelectedCliente; + ProfissaoServico profissaoServico1 = profissaoServico; + Profissao profissao = new Profissao(); + profissao.set_Nome(this.ProfissaoText); + profissao.set_Codigo("0"); + Profissao profissao1 = profissao; + num = await profissaoServico.FindLastId(); + profissao1.set_Id(num + (long)1); + Profissao profissao2 = await profissaoServico1.Save(profissao); + profissaoServico1 = null; + profissao1 = null; + profissao = null; + selectedCliente.set_Profissao(profissao2); + selectedCliente = null; + if (profissaoServico.Sucesso) + { + profissaoServico = null; + } + else + { + keyValuePairs = null; + variable = null; + clienteEmails = null; + return keyValuePairs; + } + } + if (ValidationHelper.OnlyNumber(this.SelectedCliente.get_Documento()).Length > 11 && !string.IsNullOrWhiteSpace(this.AtividadeText) && this.SelectedCliente.get_Atividade() == null) + { + AtividadeServico atividadeServico = new AtividadeServico(); + selectedCliente = this.SelectedCliente; + AtividadeServico atividadeServico1 = atividadeServico; + Atividade atividade = new Atividade(); + atividade.set_Nome(this.AtividadeText); + atividade.set_Cnac("0"); + Atividade atividade1 = atividade; + num = await atividadeServico.FindLastId(); + atividade1.set_Id(num + (long)1); + Atividade atividade2 = await atividadeServico1.Save(atividade); + atividadeServico1 = null; + atividade1 = null; + atividade = null; + selectedCliente.set_Atividade(atividade2); + selectedCliente = null; + if (atividadeServico.Sucesso) + { + atividadeServico = null; + } + else + { + keyValuePairs = null; + variable = null; + clienteEmails = null; + return keyValuePairs; + } + } + if (this.IsJuridica) + { + this.SelectedCliente.set_Cei(null); + this.SelectedCliente.set_Rne(null); + this.SelectedCliente.set_Caepf(null); + } + List> keyValuePairs1 = this.SelectedCliente.Validate(); + clienteEmails.ForEach((ClienteEmail x) => keyValuePairs1.AddRange(x.Validate())); + List> keyValuePairs2 = keyValuePairs1; + keyValuePairs2.AddRange(await this.Validate()); + keyValuePairs2 = null; + foreach (MaisContato contato in this.Contatos) + { + keyValuePairs1.AddRange(contato.Validate()); + } + foreach (ClienteVinculo vinculo in this.Vinculos) + { + keyValuePairs1.AddRange(vinculo.Validate()); + } + if (keyValuePairs1.Count <= 0) + { + bool flag = this.SelectedCliente.get_Id() == (long)0; + this._saving = true; + Cliente clienteSelecionado = this.ClienteSelecionado; + if (clienteSelecionado != null) + { + id = clienteSelecionado.get_Id() != (long)0; + } + else + { + id = true; + } + if (id) + { + Cliente clienteSelecionado1 = this.ClienteSelecionado; + if (clienteSelecionado1 != null) + { + nullable1 = new long?(clienteSelecionado1.get_Id()); + } + else + { + nullable = null; + nullable1 = nullable; + } + long? nullable3 = nullable1; + Cliente selectedCliente2 = this.SelectedCliente; + if (selectedCliente2 != null) + { + nullable2 = new long?(selectedCliente2.get_Id()); + } + else + { + nullable = null; + nullable2 = nullable; + } + long? nullable4 = nullable2; + if (nullable3.GetValueOrDefault() != nullable4.GetValueOrDefault() | nullable3.HasValue != nullable4.HasValue) + { + goto Label2; + } + salvando = this.Salvando; + goto Label1; + } + Label2: + salvando = false; + Label1: + bool flag1 = salvando; + if (flag1) + { + flag1 = await base.ShowMessage("NÃO FOI POSSIVEL INCLUIR UM NOVO SEGURADO, TENTE NOVAMENTE", "OK", "", false); + } + if (!flag1) + { + this.SelectedCliente = await this._servico.Save(this.SelectedCliente, this.Salvando); + if (this._servico.Sucesso) + { + if (this.Invoke) + { + Action selectCliente = Gestor.Application.Actions.Actions.SelectCliente; + if (selectCliente != null) + { + selectCliente(this.SelectedCliente); + } + else + { + } + } + await this.CarregaCliente(this.SelectedCliente); + string str = (flag ? "INCLUIU" : "ALTEROU"); + base.RegistrarAcao(string.Concat(str, " CLIENTE \"", this.SelectedCliente.get_Nome(), "\""), this.SelectedCliente.get_Id(), new TipoTela?(1), string.Format("CLIENTE \"{0}\", ID: {1}", this.SelectedCliente.get_Nome(), this.SelectedCliente.get_Id())); + base.ToggleSnackBar("CLIENTE SALVO COM SUCESSO", true); + if (this.Invoke) + { + ConsultaViewModel.DocumentoSelecionado = null; + Action atualizaContatos = Gestor.Application.Actions.Actions.AtualizaContatos; + if (atualizaContatos != null) + { + atualizaContatos(); + } + else + { + } + if (flag) + { + MainViewModel.ClienteSelecionado = this.SelectedCliente; + if (await base.ShowMessage("DESEJA INCLUIR UMA APÓLICE AGORA?", "SIM", "NÃO", false)) + { + Action acessaTela = Gestor.Application.Actions.Actions.AcessaTela; + if (acessaTela != null) + { + acessaTela(2, ""); + } + else + { + } + } + } + } + this.Salvando = false; + base.Alterar(false); + this._saving = false; + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + variable = null; + clienteEmails = null; + return keyValuePairs; + } + + public async void SelecionaCliente(Cliente value) + { + if (!this._saving || !this.Invoke) + { + if (value == null) + { + this.ClienteSelecionado = new Cliente(); + value = this.ClienteSelecionado; + } + base.Loading(true); + await base.PermissaoTela(1); + await this.CarregaCliente(value); + base.Loading(false); + } + } + + public async Task Validate(ClienteEmail item) + { + bool flag; + if (!ValidationHelper.ValidateMail(item.get_Email())) + { + await base.ShowMessage("ENDEREÇO DE E-MAIL INVÁLIDO", "OK", "", false); + flag = false; + } + else + { + flag = true; + } + return flag; + } + + private async Task>> Validate() + { + List clientes; + long id; + List> keyValuePairs = new List>(); + bool flag = !string.IsNullOrEmpty(this.SelectedCliente.get_Nome()); + TipoDocumento? documentoPrincipal = this.SelectedCliente.get_DocumentoPrincipal(); + if (documentoPrincipal.HasValue) + { + switch (documentoPrincipal.GetValueOrDefault()) + { + case 0: + { + if (ValidationHelper.ValidateDocument(this.SelectedCliente.get_Documento())) + { + break; + } + flag = false; + break; + } + case 1: + { + if (ValidationHelper.ValidateRne(this.SelectedCliente.get_Rne())) + { + break; + } + flag = false; + break; + } + case 2: + { + if (ValidationHelper.ValidateCei(this.SelectedCliente.get_Cei())) + { + break; + } + flag = false; + break; + } + case 3: + { + if (ValidationHelper.ValidateCaepf(this.SelectedCliente.get_Caepf())) + { + break; + } + flag = false; + break; + } + } + } + if (ValidationHelper.ValidateDocument(this.SelectedCliente.get_Documento())) + { + documentoPrincipal = this.SelectedCliente.get_DocumentoPrincipal(); + if (documentoPrincipal.GetValueOrDefault() == 0 & documentoPrincipal.HasValue) + { + this.SelectedCliente.set_Documento(ValidationHelper.FormatDocument(this.SelectedCliente.get_Documento())); + } + } + if (!ValidationHelper.ValidateDocument(this.SelectedCliente.get_Documento())) + { + clientes = new List(); + } + else + { + clientes = await (new ClienteServico()).BuscarCliente(this.SelectedCliente.get_Documento(), null, 2); + } + List clientes1 = clientes; + if (!this.IsJuridica) + { + if (!ValidationHelper.ValidateCei(this.SelectedCliente.get_Cei())) + { + clientes = new List(); + } + else + { + clientes = await (new ClienteServico()).BuscarCliente(this.SelectedCliente.get_Cei(), null, 2); + } + List clientes2 = clientes; + if (!ValidationHelper.ValidateRne(this.SelectedCliente.get_Rne())) + { + clientes = new List(); + } + else + { + clientes = await (new ClienteServico()).BuscarCliente(this.SelectedCliente.get_Rne(), null, 2); + } + List clientes3 = clientes; + if (!ValidationHelper.ValidateCaepf(this.SelectedCliente.get_Caepf())) + { + clientes = new List(); + } + else + { + clientes = await (new ClienteServico()).BuscarCliente(this.SelectedCliente.get_Caepf(), null, 2); + } + List clientes4 = clientes; + List clientes5 = clientes1; + List clientes6 = clientes2; + if (clientes6 == null) + { + clientes6 = new List(); + } + clientes5.AddRange(clientes6); + List clientes7 = clientes1; + List clientes8 = clientes3; + if (clientes8 == null) + { + clientes8 = new List(); + } + clientes7.AddRange(clientes8); + List clientes9 = clientes1; + List clientes10 = clientes4; + if (clientes10 == null) + { + clientes10 = new List(); + } + clientes9.AddRange(clientes10); + clientes2 = null; + clientes3 = null; + } + string nome = ""; + string str = ""; + if (clientes1.Count > 0) + { + clientes1.ForEach((Cliente x) => { + if (x.get_Id() == this.SelectedCliente.get_Id()) + { + return; + } + if (x.get_IdEmpresa() != this.SelectedCliente.get_IdEmpresa()) + { + return; + } + if (!string.IsNullOrEmpty(this.SelectedCliente.get_Documento()) && x.get_Documento() == this.SelectedCliente.get_Documento()) + { + flag = false; + nome = x.get_Nome(); + } + if (!string.IsNullOrEmpty(this.SelectedCliente.get_Cei()) && x.get_Cei() == this.SelectedCliente.get_Cei()) + { + str = " (CEI)"; + flag = false; + nome = x.get_Nome(); + } + if (!string.IsNullOrEmpty(this.SelectedCliente.get_Rne()) && x.get_Rne() == this.SelectedCliente.get_Rne()) + { + str = " (RNE)"; + flag = false; + nome = x.get_Nome(); + } + if (!string.IsNullOrEmpty(this.SelectedCliente.get_Caepf()) && x.get_Caepf() == this.SelectedCliente.get_Caepf()) + { + str = " (CAEPF)"; + flag = false; + nome = x.get_Nome(); + } + }); + } + if (!flag && clientes1.Count((Cliente x) => x.get_Id() != this.SelectedCliente.get_Id()) > 0) + { + if (await (new VendedorUsuarioServico()).FindVinculoByUsuario(Recursos.Usuario.get_Id())) + { + Cliente cliente = clientes1.FirstOrDefault(); + if (cliente != null) + { + id = cliente.get_Id(); + } + else + { + id = (long)0; + } + List vendedors = await (new VendedorServico()).BuscarVinculosCliente(id); + string str1 = string.Join("|", + from vendedor in vendedors + select vendedor.get_Nome()); + List> keyValuePairs1 = keyValuePairs; + string[] strArrays = new string[] { "O DOCUMENTO", str, " JÁ ESTÁ CADASTRADO PARA O CLIENTE ", nome, ".\nEXISTENTE NO VINCULO COM VENDEDORES: ", str1, " " }; + keyValuePairs1.Add(new KeyValuePair("Documento", string.Concat(strArrays))); + } + else + { + keyValuePairs.Add(new KeyValuePair("Documento", string.Concat("O DOCUMENTO", str, " JÁ ESTÁ CADASTRADO PARA O CLIENTE ", nome))); + } + } + if (this.SelectedCliente.get_Telefones() == null || this.SelectedCliente.get_Telefones().Count == 0) + { + keyValuePairs.Add(new KeyValuePair("Telefones", "NECESSITA-SE AO MENOS UM TELEFONE VÁLIDO.")); + } + List configuracoes = Recursos.Configuracoes; + if (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 29) && (this.SelectedCliente.get_Emails() == null || this.SelectedCliente.get_Emails().Count == 0)) + { + keyValuePairs.Add(new KeyValuePair("Emails|E-MAILS", "NECESSITA-SE AO MENOS UM E-MAIL VÁLIDO.")); + } + if (this.SelectedCliente.get_Enderecos() == null || this.SelectedCliente.get_Enderecos().Count == 0) + { + keyValuePairs.Add(new KeyValuePair("Enderecos|ENDEREÇOS", "NECESSITA-SE AO MENOS UM ENDEREÇO VÁLIDO.")); + } + List> keyValuePairs2 = keyValuePairs; + keyValuePairs = null; + clientes1 = null; + return keyValuePairs2; + } + + private async void WorkOnSelectedCliente(Cliente value) + { + DateTime networkTime; + DateTime? nullable; + DateTime? primeiraHabilitacao; + DateTime? vencimentoHabilitacao; + DateTime? expedicao; + Cliente cliente; + if (value != null && value.get_Id() != 0 && !this.IsLoading) + { + base.Loading(true); + cliente = await this._servico.BuscarCliente(value.get_Id()); + if (cliente.get_ResponsavelAssinatura() == null) + { + Cliente cliente1 = cliente; + ResponsavelAssinatura responsavelAssinatura = new ResponsavelAssinatura(); + responsavelAssinatura.set_IdCliente(cliente.get_Id()); + cliente1.set_ResponsavelAssinatura(responsavelAssinatura); + } + Cliente cliente2 = cliente; + ObservableCollection observableCollection = await this._servico.BuscarTelefonesAsync(value.get_Id()); + cliente2.set_Telefones(observableCollection); + cliente2 = null; + cliente2 = cliente; + ObservableCollection observableCollection1 = await this._servico.BuscarEmailsAsync(value.get_Id()); + cliente2.set_Emails(observableCollection1); + cliente2 = null; + cliente2 = cliente; + ObservableCollection observableCollection2 = await this._servico.BuscarEnderecosAsync(value.get_Id()); + cliente2.set_Enderecos(observableCollection2); + cliente2 = null; + cliente2 = cliente; + ObservableCollection observableCollection3 = await this._servico.BuscarContatosAsync(value.get_Id()); + cliente2.set_Contatos(observableCollection3); + cliente2 = null; + cliente2 = cliente; + ObservableCollection observableCollection4 = await this._servico.BuscarVinculosAsync(value.get_Id()); + cliente2.set_Vinculos(observableCollection4); + cliente2 = null; + this.Origens = await this._servico.BuscarOrigens(value.get_Id()); + Cliente cliente3 = cliente; + TipoDocumento? documentoPrincipal = cliente.get_DocumentoPrincipal(); + cliente3.set_DocumentoPrincipal(new TipoDocumento?(documentoPrincipal.GetValueOrDefault())); + this.ClienteExcluido = cliente.get_Excluido(); + if (this.SelectedCliente != null) + { + DomainBase.Copy(this.SelectedCliente, cliente); + this.JuridicaouFisica(this.SelectedCliente.get_Documento()); + this.SelectedCliente.Initialize(); + this.ClienteSelecionado = cliente; + } + ClienteViewModel clienteViewModel = this; + if (value == null || !value.get_Nascimento().HasValue) + { + networkTime = Funcoes.GetNetworkTime(); + nullable = new DateTime?(networkTime.Date); + } + else + { + nullable = value.get_Nascimento(); + } + clienteViewModel.NascimentoCliente = nullable; + ClienteViewModel clienteViewModel1 = this; + if (value == null || !value.get_PrimeiraHabilitacao().HasValue) + { + networkTime = Funcoes.GetNetworkTime(); + primeiraHabilitacao = new DateTime?(networkTime.Date); + } + else + { + primeiraHabilitacao = value.get_PrimeiraHabilitacao(); + } + clienteViewModel1.HabilitaCliente = primeiraHabilitacao; + ClienteViewModel clienteViewModel2 = this; + if (value == null || !value.get_VencimentoHabilitacao().HasValue) + { + networkTime = Funcoes.GetNetworkTime(); + vencimentoHabilitacao = new DateTime?(networkTime.Date); + } + else + { + vencimentoHabilitacao = value.get_VencimentoHabilitacao(); + } + clienteViewModel2.VencimentoHabCliente = vencimentoHabilitacao; + ClienteViewModel clienteViewModel3 = this; + if (value == null || !value.get_Expedicao().HasValue) + { + networkTime = Funcoes.GetNetworkTime(); + expedicao = new DateTime?(networkTime.Date); + } + else + { + expedicao = value.get_Expedicao(); + } + clienteViewModel3.ExpedicaoCliente = expedicao; + this.Initialized = true; + base.Loading(false); + } + cliente = null; + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/ConsultaViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/ConsultaViewModel.cs new file mode 100644 index 0000000..ad65045 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/ConsultaViewModel.cs @@ -0,0 +1,2425 @@ +using Assinador.Infrastructure.Helpers; +using ClosedXML.Excel; +using Gestor.Application.Actions; +using Gestor.Application.Helpers; +using Gestor.Application.Model; +using Gestor.Application.Servicos; +using Gestor.Application.Servicos.Ferramentas; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Forms; +using System.Windows.Threading; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class ConsultaViewModel : BaseSegurosViewModel + { + private readonly ApoliceServico _apoliceServico; + + private readonly ParcelaServico _parcelaServico; + + private readonly ItemServico _itemServico; + + private readonly VendedorServico _vendedorServico; + + public bool UpdatingScroll; + + public static Parcela ParcelaSelecionada; + + public static Item ItemSelecionado; + + private static Documento _documentoSelecionado; + + private bool _apelido; + + private Visibility _semDocumentos = Visibility.Collapsed; + + private Cliente _selectedCliente = new Cliente(); + + private bool _carregando; + + private bool _isLoading; + + private Visibility _visibilityParcelasVendedores; + + private ObservableCollection _apolices = new ObservableCollection(); + + private ObservableCollection _endossos = new ObservableCollection(); + + private Documento _selectedEndosso = new Documento(); + + private string _parcelasLabel = "PARCELAS"; + + private Documento _selectedControle = new Documento(); + + private bool _isFatura; + + private bool _isEnabledParcelaItem = true; + + private Item _selectedItem = new Item(); + + private ObservableCollection _itens = new ObservableCollection(); + + private Parcela _selectedParcela = new Parcela(); + + private ObservableCollection _parcelas = new ObservableCollection(); + + private Visibility _isVisibleRadioEndosso = Visibility.Collapsed; + + private Visibility _isVisibleEndosso = Visibility.Collapsed; + + private Visibility _isVisibleApolice; + + private string _pendenciaApolice = ""; + + private Visibility _isVisiblePendenciaApolice = Visibility.Collapsed; + + private decimal _gerada; + + private decimal _recebida; + + private decimal _pendente; + + private bool _isLoadingParcelas = true; + + private bool _isLoadingItens = true; + + private int _filterItens; + + private int _filterDocumento; + + private Visibility _manutencaoItemVisibility; + + private Visibility _recusaVisibility; + + private Visibility _renovarVisibility; + + private Visibility _endossarVisibility; + + private Visibility _trocarClienteVisibility; + + private Visibility _tarefasVisibility; + + private Visibility _comissaoVisibility; + + private Visibility _comissaoValorVisibility; + + private Visibility _mostrarItensVisibility = Visibility.Collapsed; + + private Visibility _mostrarSinistroVisibility; + + private ObservableCollection _telefones = new ObservableCollection(); + + public bool Apelido + { + get + { + return this._apelido; + } + set + { + this._apelido = value; + base.OnPropertyChanged("Apelido"); + } + } + + public ObservableCollection Apolices + { + get + { + return this._apolices; + } + set + { + this._apolices = value; + base.OnPropertyChanged("Apolices"); + } + } + + public bool Carregando + { + get + { + return this._carregando; + } + set + { + this._carregando = value; + this.SemDocumentos = (value || this.Apolices != null && this.Apolices.Count != 0 ? Visibility.Collapsed : Visibility.Visible); + } + } + + public Visibility ComissaoValorVisibility + { + get + { + return this._comissaoValorVisibility; + } + set + { + this._comissaoValorVisibility = (!base.Restricao(14) ? value : Visibility.Collapsed); + base.OnPropertyChanged("ComissaoValorVisibility"); + } + } + + public Visibility ComissaoVisibility + { + get + { + return this._comissaoVisibility; + } + set + { + this._comissaoVisibility = (!base.Restricao(95) ? value : Visibility.Collapsed); + base.OnPropertyChanged("ComissaoVisibility"); + } + } + + public static Documento DocumentoRenovado + { + get; + set; + } + + public static Documento DocumentoSelecionado + { + get + { + return ConsultaViewModel._documentoSelecionado; + } + set + { + ConsultaViewModel._documentoSelecionado = value; + Action enableItens = Gestor.Application.Actions.Actions.EnableItens; + if (enableItens != null) + { + enableItens((value == null ? false : value.get_Id() > (long)0)); + } + else + { + } + Action enableDocumento = Gestor.Application.Actions.Actions.EnableDocumento; + if (enableDocumento == null) + { + return; + } + enableDocumento((value == null ? false : value.get_Id() > (long)0)); + } + } + + public Visibility EndossarVisibility + { + get + { + return this._endossarVisibility; + } + set + { + this._endossarVisibility = (!base.Restricao(33) ? value : Visibility.Collapsed); + base.OnPropertyChanged("EndossarVisibility"); + } + } + + public ObservableCollection Endossos + { + get + { + return this._endossos; + } + set + { + this._endossos = value; + base.OnPropertyChanged("Endossos"); + } + } + + public int FilterDocumento + { + get + { + return this._filterDocumento; + } + set + { + this._filterDocumento = value; + Action updateRadioApolice = Gestor.Application.Actions.Actions.UpdateRadioApolice; + if (updateRadioApolice != null) + { + updateRadioApolice(this._filterDocumento); + } + else + { + } + base.OnPropertyChanged("FilterDocumento"); + } + } + + public int FilterItens + { + get + { + return this._filterItens; + } + set + { + this._filterItens = value; + ConsultaViewModel.FiltrarItens = value; + base.OnPropertyChanged("FilterItens"); + } + } + + public static int FiltrarItens + { + get; + set; + } + + public decimal Gerada + { + get + { + return this._gerada; + } + set + { + this._gerada = value; + base.OnPropertyChanged("Gerada"); + } + } + + public bool IsEnabledParcelaItem + { + get + { + return this._isEnabledParcelaItem; + } + set + { + this._isEnabledParcelaItem = value; + base.OnPropertyChanged("IsEnabledParcelaItem"); + } + } + + public bool IsFatura + { + get + { + return this._isFatura; + } + set + { + if (!value) + { + value = this.ComissaoValorVisibility == Visibility.Collapsed; + } + this._isFatura = value; + base.OnPropertyChanged("IsFatura"); + } + } + + public bool IsLoading + { + get + { + return this._isLoading; + } + set + { + this._isLoading = value; + base.OnPropertyChanged("IsLoading"); + } + } + + public bool IsLoadingItens + { + get + { + return this._isLoadingItens; + } + set + { + this._isLoadingItens = value; + base.OnPropertyChanged("IsLoadingItens"); + } + } + + public bool IsLoadingParcelas + { + get + { + return this._isLoadingParcelas; + } + set + { + this._isLoadingParcelas = value; + base.OnPropertyChanged("IsLoadingParcelas"); + } + } + + public Visibility IsVisibleApolice + { + get + { + return this._isVisibleApolice; + } + set + { + this._isVisibleApolice = value; + base.OnPropertyChanged("IsVisibleApolice"); + } + } + + public Visibility IsVisibleEndosso + { + get + { + return this._isVisibleEndosso; + } + set + { + this._isVisibleEndosso = value; + base.OnPropertyChanged("IsVisibleEndosso"); + } + } + + public Visibility IsVisiblePendenciaApolice + { + get + { + return this._isVisiblePendenciaApolice; + } + set + { + this._isVisiblePendenciaApolice = value; + base.OnPropertyChanged("IsVisiblePendenciaApolice"); + } + } + + public Visibility IsVisibleRadioEndosso + { + get + { + return this._isVisibleRadioEndosso; + } + set + { + this._isVisibleRadioEndosso = value; + base.OnPropertyChanged("IsVisibleRadioEndosso"); + } + } + + public ObservableCollection Itens + { + get + { + return this._itens; + } + set + { + this._itens = value; + base.OnPropertyChanged("Itens"); + } + } + + public bool ItensRevelados + { + get; + set; + } + + public Visibility ManutencaoItemVisibility + { + get + { + return this._manutencaoItemVisibility; + } + set + { + this._manutencaoItemVisibility = (!base.Restricao(22) ? value : Visibility.Collapsed); + base.OnPropertyChanged("ManutencaoItemVisibility"); + } + } + + public Visibility MostrarItensVisibility + { + get + { + return this._mostrarItensVisibility; + } + set + { + this._mostrarItensVisibility = value; + base.OnPropertyChanged("MostrarItensVisibility"); + } + } + + public Visibility MostrarSinistroVisibility + { + get + { + return this._mostrarSinistroVisibility; + } + set + { + this._mostrarSinistroVisibility = value; + base.OnPropertyChanged("MostrarSinistroVisibility"); + } + } + + public ObservableCollection Parcelas + { + get + { + return this._parcelas; + } + set + { + this._parcelas = value; + base.OnPropertyChanged("Parcelas"); + } + } + + public string ParcelasLabel + { + get + { + return this._parcelasLabel; + } + set + { + this._parcelasLabel = value; + base.OnPropertyChanged("ParcelasLabel"); + } + } + + public string PendenciaApolice + { + get + { + return this._pendenciaApolice; + } + set + { + this._pendenciaApolice = value; + this.IsVisiblePendenciaApolice = (string.IsNullOrEmpty(this._pendenciaApolice) ? Visibility.Collapsed : Visibility.Visible); + base.OnPropertyChanged("PendenciaApolice"); + } + } + + public decimal Pendente + { + get + { + return this._pendente; + } + set + { + this._pendente = value; + base.OnPropertyChanged("Pendente"); + } + } + + public bool Pesquisando + { + get; + set; + } + + public bool Recarregando + { + get; + set; + } + + public decimal Recebida + { + get + { + return this._recebida; + } + set + { + this._recebida = value; + base.OnPropertyChanged("Recebida"); + } + } + + public Visibility RecusaVisibility + { + get + { + return this._recusaVisibility; + } + set + { + this._recusaVisibility = (!base.Restricao(18) ? value : Visibility.Collapsed); + base.OnPropertyChanged("RecusaVisibility"); + } + } + + public Visibility RenovarVisibility + { + get + { + return this._renovarVisibility; + } + set + { + this._renovarVisibility = (!base.Restricao(17) ? value : Visibility.Collapsed); + base.OnPropertyChanged("RenovarVisibility"); + } + } + + public Cliente SelectedCliente + { + get + { + return this._selectedCliente; + } + set + { + this._selectedCliente = value; + base.OnPropertyChanged("SelectedCliente"); + } + } + + public Documento SelectedControle + { + get + { + return this._selectedControle; + } + set + { + bool id; + bool flag; + Visibility visibility; + string apolice; + this._selectedControle = value; + if (value == null || value.get_Id() <= (long)0) + { + id = false; + } + else + { + Usuario usuario = Recursos.Usuario; + if (usuario != null) + { + id = usuario.get_Id() > (long)0; + } + else + { + id = false; + } + } + base.EnableButtons = id; + bool flag1 = Recursos.Configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 13); + if (value == null || value.get_Id() <= (long)0) + { + flag = false; + } + else if (flag1) + { + flag = true; + } + else + { + flag = (string.IsNullOrWhiteSpace(value.get_Apolice()) || string.IsNullOrWhiteSpace(value.get_Proposta()) ? false : value.get_Emissao().HasValue); + } + base.EnableEndossar = flag; + base.EnableRenovar = (value == null || value.get_Id() <= (long)0 || !value.get_Vigencia2().HasValue ? false : !string.IsNullOrWhiteSpace(value.get_Apolice())); + this.WorkOnSelectedDocumento(value); + if (Recursos.Configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 19)) + { + if (value != null) + { + apolice = value.get_Apolice(); + } + else + { + apolice = null; + } + if (string.IsNullOrWhiteSpace(apolice) || !value.get_Emissao().HasValue) + { + visibility = Visibility.Visible; + this.RecusaVisibility = visibility; + this.ItensRevelados = false; + this.MostrarItensVisibility = Visibility.Collapsed; + this.MostrarSinistroVisibility = Visibility.Visible; + base.OnPropertyChanged("SelectedControle"); + return; + } + visibility = Visibility.Collapsed; + this.RecusaVisibility = visibility; + this.ItensRevelados = false; + this.MostrarItensVisibility = Visibility.Collapsed; + this.MostrarSinistroVisibility = Visibility.Visible; + base.OnPropertyChanged("SelectedControle"); + return; + } + visibility = Visibility.Visible; + this.RecusaVisibility = visibility; + this.ItensRevelados = false; + this.MostrarItensVisibility = Visibility.Collapsed; + this.MostrarSinistroVisibility = Visibility.Visible; + base.OnPropertyChanged("SelectedControle"); + } + } + + public Documento SelectedEndosso + { + get + { + return this._selectedEndosso; + } + set + { + this._selectedEndosso = value; + this.WorkOnSelectedDocumento(value); + base.OnPropertyChanged("SelectedEndosso"); + } + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + this._selectedItem = value; + ConsultaViewModel.WorkOnSelectedItem(value); + base.OnPropertyChanged("SelectedItem"); + } + } + + public Parcela SelectedParcela + { + get + { + return this._selectedParcela; + } + set + { + this._selectedParcela = value; + base.OnPropertyChanged("SelectedParcela"); + } + } + + public Visibility SemDocumentos + { + get + { + return this._semDocumentos; + } + set + { + this._semDocumentos = value; + base.OnPropertyChanged("SemDocumentos"); + } + } + + public Visibility TarefasVisibility + { + get + { + return this._tarefasVisibility; + } + set + { + this._tarefasVisibility = (base.Permissao(38) ? value : Visibility.Collapsed); + base.OnPropertyChanged("TarefasVisibility"); + } + } + + public ObservableCollection Telefones + { + get + { + return this._telefones; + } + set + { + this._telefones = value; + base.OnPropertyChanged("Telefones"); + } + } + + public Visibility TrocarClienteVisibility + { + get + { + return this._trocarClienteVisibility; + } + set + { + this._trocarClienteVisibility = (!base.Restricao(21) ? value : Visibility.Collapsed); + base.OnPropertyChanged("TrocarClienteVisibility"); + } + } + + public Visibility VisibilityParcelasVendedores + { + get + { + return this._visibilityParcelasVendedores; + } + set + { + this._visibilityParcelasVendedores = value; + base.OnPropertyChanged("VisibilityParcelasVendedores"); + } + } + + public ConsultaViewModel() + { + this._apoliceServico = new ApoliceServico(); + this._parcelaServico = new ParcelaServico(); + this._vendedorServico = new VendedorServico(); + this._itemServico = new ItemServico(); + this.Apelido = Recursos.Configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 6); + this.SemDocumentos = Visibility.Visible; + base.EnableButtons = false; + if (MainViewModel.ClienteSelecionado != null && MainViewModel.ClienteSelecionado.get_Id() > (long)0) + { + this.SelecionarCliente(MainViewModel.ClienteSelecionado); + } + } + + public async Task AbrirDetalhes() + { + Documento selectedControle = this.SelectedControle; + if (this.FilterDocumento == 1) + { + Documento selectedEndosso = this.SelectedEndosso; + if (selectedEndosso == null) + { + selectedEndosso = this.SelectedControle; + } + selectedControle = selectedEndosso; + } + Documento documento = selectedControle; + List vendedorParcelas = await this._vendedorServico.BuscaRepasse(selectedControle.get_Id()); + documento.set_Pagamentos(vendedorParcelas); + documento = null; + documento = selectedControle; + ObservableCollection observableCollection = await this._parcelaServico.BuscarParcelasAsync(selectedControle.get_Id()); + documento.set_Parcelas(observableCollection); + documento = null; + Documento documento1 = selectedControle; + selectedControle = null; + return documento1; + } + + public async Task AbrirDetalhesParcela() + { + Parcela selectedParcela = this.SelectedParcela; + List vendedorParcelas = await this._vendedorServico.BuscaRepasseParcela(selectedParcela.get_Id()); + selectedParcela.set_Vendedores(new ObservableCollection(vendedorParcelas)); + Parcela parcela = selectedParcela; + selectedParcela = null; + return parcela; + } + + private void CalculaComissao(Documento documento, ObservableCollection parcelas) + { + decimal num = (documento.get_AdicionalComiss() ? documento.get_PremioLiquido() + documento.get_PremioAdicional() : documento.get_PremioLiquido()); + decimal comissao = documento.get_Comissao() * new decimal(1, 0, 0, false, 2); + this.Gerada = num * comissao; + this.Recebida = (Recursos.Configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 32) ? parcelas.Where((Parcela x) => { + if (x.get_SubTipo() == 1) + { + return true; + } + return x.get_SubTipo() == 6; + }).Sum((Parcela x) => x.get_ValorComissao()) : ( + from x in parcelas + where x.get_SubTipo() == 1 + select x).Sum((Parcela x) => x.get_ValorComissao())); + this.Pendente = this.Gerada - this.Recebida; + this.Pendente = (this.Pendente < new decimal(1, 0, 0, false, 2) ? new decimal(0, 0, 0, false, 2) : this.Pendente); + } + + public void CarregaDocumentos(int type) + { + this.IsVisibleApolice = Visibility.Collapsed; + this.IsVisibleEndosso = Visibility.Collapsed; + if (type != 1) + { + this.IsVisibleApolice = Visibility.Visible; + return; + } + this.IsVisibleEndosso = Visibility.Visible; + } + + public async Task CarregaItens(int type, Documento documento) + { + this.FilterItens = 0; + switch (type) + { + case 0: + { + this.Itens = await this._itemServico.BuscarItens(documento.get_Controle().get_Id(), 0); + break; + } + case 1: + { + this.FilterItens = 1; + this.Itens = await this._itemServico.BuscarItens(documento.get_Id(), 2); + break; + } + case 2: + { + this.FilterItens = 2; + Documento selectedEndosso = this.SelectedEndosso; + if (selectedEndosso == null) + { + selectedEndosso = documento; + } + documento = selectedEndosso; + this.Itens = await this._itemServico.BuscarItens(documento.get_Id(), 2); + break; + } + case 3: + { + this.FilterItens = 3; + this.Itens = await this._itemServico.BuscarItens(documento.get_Controle().get_Id(), 1); + break; + } + } + } + + private void Clear() + { + this.Apolices = null; + this.Parcelas = null; + this.Itens = null; + } + + public async Task CreateLink(Documento documento) + { + string str; + string descricao; + if (documento == null || this.SelectedCliente == null) + { + str = ""; + } + else + { + this.Telefones = new ObservableCollection((IEnumerable)await (new ClienteServico()).BuscarTelefonesAsync(this.SelectedCliente.get_Id())); + if (this.Itens == null) + { + descricao = ""; + } + else if (this.Itens.Count > 1) + { + descricao = "APÓLICE COLETIVA"; + } + else + { + Item item = this.Itens.FirstOrDefault(); + if (item != null) + { + descricao = item.get_Descricao(); + } + else + { + descricao = null; + } + } + str = await base.CreateLinkAssistencia(documento, descricao, true); + } + return str; + } + + public async Task EditarParcelas() + { + await base.ShowEditarParcelasDialog(ConsultaViewModel.DocumentoSelecionado); + await this.SelecionaParcelas(ConsultaViewModel.DocumentoSelecionado); + } + + public async Task GerarExcel(int type) + { + ObservableCollection observableCollection; + string str1; + ConsultaViewModel.u003cu003ec__DisplayClass212_0 variable; + string str2; + string str3; + if (this.SelectedControle != null) + { + base.Loading(true); + bool typeFromProgID = Type.GetTypeFromProgID("Excel.Application") != null; + str2 = "ATIVOS"; + switch (type) + { + case 1: + { + str2 = "DA APÓLICE"; + observableCollection = await this._itemServico.BuscarItems(this.SelectedControle.get_Id(), 2, true); + break; + } + case 2: + { + Documento selectedEndosso = this.SelectedEndosso; + if (selectedEndosso == null) + { + selectedEndosso = this.SelectedControle; + } + Documento documento = selectedEndosso; + str2 = (this.SelectedEndosso == null ? "DA APÓLICE" : "DO ENDOSSO"); + observableCollection = await this._itemServico.BuscarItems(documento.get_Id(), 2, true); + break; + } + case 3: + { + str2 = "INATIVOS"; + observableCollection = await this._itemServico.BuscarItems(this.SelectedControle.get_Controle().get_Id(), 1, true); + break; + } + default: + { + observableCollection = await this._itemServico.BuscarItems(this.SelectedControle.get_Controle().get_Id(), 0, true); + break; + } + } + if (observableCollection == null || observableCollection.Count == 0) + { + base.Loading(false); + await base.ShowMessage("NÃO HÁ ITENS PARA EXIBIR A RELAÇÃO", "OK", "", false); + } + else + { + List relacaoItens = new List(); + observableCollection.ToList().ForEach((Item x) => { + DateTime? nullable; + StatusSinistro? nullable1; + decimal? nullable2; + DateTime? dataSinistro; + string numero; + StatusSinistro? statusSinistro; + string itemSinistrado; + decimal? nullable3; + DateTime? dataLiquidacao; + DateTime? dataReclamacao; + string motivo; + string descricao; + string str = ""; + if (x.get_Coberturas().Count() > 0) + { + x.get_Coberturas().ToList().ForEach((Cobertura c) => str = string.Concat(str, string.Format("Cobertura: {0} | Premio: {1} | Franquia: {2} | LMI: {3}\n", new object[] { c.get_Observacao(), c.get_Premio(), c.get_Franquia(), c.get_Lmi() }))); + } + RelacaoItens relacaoIten = new RelacaoItens() + { + Nome = this.SelectedCliente.get_Nome(), + Documento = this.SelectedCliente.get_Documento(), + Apolice = this.SelectedControle.get_Apolice(), + VigenciaInicial = this.SelectedControle.get_Vigencia1(), + VigenciaFinal = this.SelectedControle.get_Vigencia2(), + Ordem = x.get_Ordem(), + Sinistrado = (x.get_Sinistrado() ? "SIM" : "NÃO") + }; + ControleSinistro controleSinistro = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro != null) + { + dataSinistro = controleSinistro.get_DataSinistro(); + } + else + { + nullable = null; + dataSinistro = nullable; + } + relacaoIten.DataSinistro = dataSinistro; + ControleSinistro controleSinistro1 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro1 != null) + { + Sinistro sinistro = controleSinistro1.get_Sinistros().FirstOrDefault(); + if (sinistro != null) + { + numero = sinistro.get_Numero(); + } + else + { + numero = null; + } + } + else + { + numero = null; + } + relacaoIten.NumSinistro = numero; + ControleSinistro controleSinistro2 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro2 != null) + { + Sinistro sinistro1 = controleSinistro2.get_Sinistros().FirstOrDefault(); + if (sinistro1 != null) + { + statusSinistro = sinistro1.get_StatusSinistro(); + } + else + { + nullable1 = null; + statusSinistro = nullable1; + } + } + else + { + nullable1 = null; + statusSinistro = nullable1; + } + relacaoIten.StatusSinistro = statusSinistro; + ControleSinistro controleSinistro3 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro3 != null) + { + Sinistro sinistro2 = controleSinistro3.get_Sinistros().FirstOrDefault(); + if (sinistro2 != null) + { + itemSinistrado = sinistro2.get_ItemSinistrado(); + } + else + { + itemSinistrado = null; + } + } + else + { + itemSinistrado = null; + } + relacaoIten.ItemSinistrado = itemSinistrado; + ControleSinistro controleSinistro4 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro4 != null) + { + Sinistro sinistro3 = controleSinistro4.get_Sinistros().FirstOrDefault(); + if (sinistro3 != null) + { + nullable3 = new decimal?(sinistro3.get_Valor()); + } + else + { + nullable2 = null; + nullable3 = nullable2; + } + } + else + { + nullable2 = null; + nullable3 = nullable2; + } + relacaoIten.Valor = nullable3; + ControleSinistro controleSinistro5 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro5 != null) + { + Sinistro sinistro4 = controleSinistro5.get_Sinistros().FirstOrDefault(); + if (sinistro4 != null) + { + dataLiquidacao = sinistro4.get_DataLiquidacao(); + } + else + { + nullable = null; + dataLiquidacao = nullable; + } + } + else + { + nullable = null; + dataLiquidacao = nullable; + } + relacaoIten.DataLiq = dataLiquidacao; + ControleSinistro controleSinistro6 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro6 != null) + { + Sinistro sinistro5 = controleSinistro6.get_Sinistros().FirstOrDefault(); + if (sinistro5 != null) + { + dataReclamacao = sinistro5.get_DataReclamacao(); + } + else + { + nullable = null; + dataReclamacao = nullable; + } + } + else + { + nullable = null; + dataReclamacao = nullable; + } + relacaoIten.DataRec = dataReclamacao; + ControleSinistro controleSinistro7 = x.get_Sinistros().FirstOrDefault(); + if (controleSinistro7 != null) + { + Sinistro sinistro6 = controleSinistro7.get_Sinistros().FirstOrDefault(); + if (sinistro6 != null) + { + motivo = sinistro6.get_Motivo(); + } + else + { + motivo = null; + } + } + else + { + motivo = null; + } + relacaoIten.Motivo = motivo; + relacaoIten.Status = (string.IsNullOrEmpty(x.get_Status()) ? x.get_StatusInclusao() : x.get_Status()); + relacaoIten.Cobertura = (str.Length > 4000 ? str.Substring(0, 4000) : str); + RelacaoItens endereco = relacaoIten; + long id = this.SelectedControle.get_Controle().get_Ramo().get_Id(); + if (id > (long)5) + { + if (id == (long)18) + { + endereco.Endereco = x.get_Patrimonial().get_Endereco(); + endereco.Numero = x.get_Patrimonial().get_Numero(); + endereco.Bairro = x.get_Patrimonial().get_Bairro(); + endereco.Cidade = x.get_Patrimonial().get_Cidade(); + endereco.Estado = x.get_Patrimonial().get_Estado(); + endereco.Cep = x.get_Patrimonial().get_Cep(); + endereco.Complemento = x.get_Patrimonial().get_Complemento(); + endereco.Bens = x.get_Patrimonial().get_Bens(); + endereco.Descricao = x.get_Descricao(); + relacaoItens.Add(endereco); + return; + } + if (id == (long)37) + { + goto Label1; + } + } + else + { + if (id - (long)1 <= (long)2) + { + endereco.Endereco = x.get_Patrimonial().get_Endereco(); + endereco.Numero = x.get_Patrimonial().get_Numero(); + endereco.Bairro = x.get_Patrimonial().get_Bairro(); + endereco.Cidade = x.get_Patrimonial().get_Cidade(); + endereco.Estado = x.get_Patrimonial().get_Estado(); + endereco.Cep = x.get_Patrimonial().get_Cep(); + endereco.Complemento = x.get_Patrimonial().get_Complemento(); + endereco.Bens = x.get_Patrimonial().get_Bens(); + endereco.Descricao = x.get_Descricao(); + relacaoItens.Add(endereco); + return; + } + if (id == (long)5) + { + goto Label1; + } + } + endereco.Descricao = x.get_Descricao(); + relacaoItens.Add(endereco); + return; + Label1: + endereco.Fipe = x.get_Auto().get_Fipe(); + RelacaoItens relacaoIten1 = endereco; + Fabricante fabricante = x.get_Auto().get_Fabricante(); + if (fabricante != null) + { + descricao = fabricante.get_Descricao(); + } + else + { + descricao = null; + } + relacaoIten1.Fabricante = descricao; + endereco.Modelo = x.get_Auto().get_Modelo(); + endereco.AnoFab = x.get_Auto().get_AnoFabricacao(); + endereco.AnoMod = x.get_Auto().get_AnoModelo(); + endereco.Chassi = x.get_Auto().get_Chassi(); + endereco.Placa = x.get_Auto().get_Placa(); + endereco.RegiaoCirculacao = x.get_Auto().get_RegiaoCirculacao(); + endereco.Bonus = x.get_Auto().get_Bonus(); + endereco.Descricao = x.get_Descricao(); + relacaoItens.Add(endereco); + }); + string tempPath = ""; + str3 = ""; + List configuracoes = Recursos.Configuracoes; + if (!configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 41)) + { + tempPath = Path.GetTempPath(); + str3 = string.Format("{0}{1}.xlsx", tempPath, Guid.NewGuid()); + } + else + { + using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) + { + if (DialogResult.OK == folderBrowserDialog.ShowDialog()) + { + tempPath = string.Concat(folderBrowserDialog.SelectedPath, "\\"); + Directory.CreateDirectory(tempPath); + } + else + { + variable = null; + str2 = null; + str3 = null; + return; + } + } + object[] objArray = new object[] { tempPath, str2, this.SelectedControle.get_Apolice().Replace("/", ""), Guid.NewGuid() }; + str3 = string.Format("{0}ITENS - {1} {2} {3}.xlsx", objArray); + } + XLWorkbook xLWorkbook = new XLWorkbook(); + string apolice = this.SelectedControle.get_Apolice(); + if (apolice != null) + { + str1 = apolice.Replace("/", ""); + } + else + { + str1 = null; + } + await Funcoes.GerarXls(xLWorkbook, string.Concat("ITENS - ", str1), relacaoItens, null).SaveAs(str3); + if (!typeFromProgID) + { + await base.ShowMessage(string.Concat("ARQUIVO SALVO NO CAMINHO ", str3), "OK", "", false); + } + else + { + Process.Start(str3); + } + base.RegistrarAcao(string.Format("GEROU A RELAÇÃO DOS ITENS DO DOCUMENTO DE ID {0}", this.SelectedControle.get_Id()), this.SelectedControle.get_Id(), new TipoTela?(21), null); + base.Loading(false); + } + } + variable = null; + str2 = null; + str3 = null; + } + + public void ManutecaoItens() + { + Action acessaTela = Gestor.Application.Actions.Actions.AcessaTela; + if (acessaTela == null) + { + return; + } + acessaTela(3, "Manutencao"); + } + + public async Task MostrarItens(int type = 0) + { + bool count; + Item item; + this.IsLoadingItens = false; + this.MostrarItensVisibility = Visibility.Collapsed; + this.MostrarSinistroVisibility = Visibility.Visible; + this.ItensRevelados = true; + Documento documentoSelecionado = ConsultaViewModel.DocumentoSelecionado; + if (type == 1 && ConsultaViewModel.DocumentoSelecionado.get_Tipo() == 1) + { + documentoSelecionado = this.SelectedControle; + } + await this.CarregaItens(type, documentoSelecionado); + ObservableCollection itens = this.Itens; + if (itens != null) + { + count = itens.Count > 1; + } + else + { + count = false; + } + if (count) + { + ConsultaViewModel consultaViewModel = this; + ObservableCollection observableCollection = this.Itens; + if (observableCollection != null) + { + item = observableCollection.FirstOrDefault(); + } + else + { + item = null; + } + consultaViewModel.SelectedItem = item; + } + this.IsLoadingItens = true; + } + + public async Task Pesquisar(PesquisaAvancada pesquisa) + { + TimeSpan vigencia1; + string str; + Visibility visibility; + int num; + int num1; + string str1; + ConsultaViewModel.u003cu003ec__DisplayClass24_0 variable; + MainViewModel.StatusSelecionado = pesquisa.get_Status(); + if (pesquisa.get_IdDocumento() != 0) + { + this.Pesquisando = true; + await this.SelecionarCliente(pesquisa.get_IdCliente(), false); + base.Loading(true); + Documento documento = await this._apoliceServico.BuscarApoliceAsync(pesquisa.get_IdDocumento(), false, false); + Documento documento1 = documento; + if (documento1 == null || this.Apolices.Count == 0 || this.Apolices == null) + { + this.Pesquisando = false; + base.Loading(false); + } + else + { + Documento documento2 = this.Apolices.FirstOrDefault((Documento x) => x.get_Controle().get_Id() == documento1.get_Controle().get_Id()); + if (documento2 == null && documento1.get_Tipo() == 1) + { + documento2 = documento1; + documento2.set_TemEndosso(true); + if (documento2 == null) + { + this.Pesquisando = false; + base.Loading(false); + variable = null; + return; + } + } + this.SelectedControle = documento2; + this.IsVisibleApolice = Visibility.Visible; + this.VisibilityParcelasVendedores = Visibility.Collapsed; + DateTime date = Funcoes.GetNetworkTime().Date; + ConsultaViewModel consultaViewModel = this; + if (string.IsNullOrEmpty(documento2.get_Apolice())) + { + vigencia1 = date - documento2.get_Vigencia1(); + str = string.Format("{0} DIAS DE PENDÊNCIA", vigencia1.TotalDays); + } + else + { + str = ""; + } + consultaViewModel.PendenciaApolice = str; + ConsultaViewModel consultaViewModel1 = this; + visibility = (documento2.get_TemEndosso() ? Visibility.Visible : Visibility.Collapsed); + consultaViewModel1.IsVisibleRadioEndosso = visibility; + if (documento2.get_TemEndosso()) + { + this.IsVisibleRadioEndosso = Visibility.Visible; + ConsultaViewModel observableCollection = this; + IList documentos = documento2.get_Controle().get_Documentos(); + observableCollection.Endossos = new ObservableCollection(documentos.Where((Documento x) => { + if (x.get_Tipo() != 1) + { + return false; + } + return !x.get_Excluido(); + })); + } + if (documento1.get_Tipo() == 1) + { + documento1 = this.Endossos.First((Documento x) => x.get_Id() == documento1.get_Id()); + this.FilterDocumento = 1; + this.IsVisibleEndosso = Visibility.Visible; + this.SelectedEndosso = documento1; + ConsultaViewModel consultaViewModel2 = this; + if (string.IsNullOrEmpty(documento1.get_Endosso())) + { + vigencia1 = date - documento1.get_Vigencia1(); + str1 = string.Format("{0} DIAS DE PENDÊNCIA", vigencia1.TotalDays); + } + else + { + str1 = ""; + } + consultaViewModel2.PendenciaApolice = str1; + } + this.CarregaDocumentos(documento1.get_Tipo()); + await this.SelecionaParcelas(documento1); + this.VisibilityParcelasVendedores = Visibility.Visible; + this.Pesquisando = false; + if (pesquisa.get_IdItem() != 0) + { + ConsultaViewModel consultaViewModel3 = this; + num = (documento1.get_Tipo() == 0 ? 1 : 2); + await consultaViewModel3.SelecionaItens(num, documento1, pesquisa.get_IdItem(), true); + this.SelecionaItem(this.Itens.FirstOrDefault((Item x) => x.get_Id() == pesquisa.get_IdItem())); + base.Loading(false); + if (pesquisa.get_IdSinistro() != 0) + { + Action acessaTela = Gestor.Application.Actions.Actions.AcessaTela; + if (acessaTela != null) + { + acessaTela(7, ""); + } + else + { + } + } + } + else + { + ConsultaViewModel consultaViewModel4 = this; + num1 = (documento1.get_Tipo() == 0 ? 1 : 2); + await consultaViewModel4.SelecionaItens(num1, documento1, (long)0, false); + base.Loading(false); + } + } + } + else + { + await this.SelecionarCliente(pesquisa.get_IdCliente(), true); + } + variable = null; + } + + public async Task RecusarDocumento() + { + bool flag; + IList list; + string str; + Documento documento; + if (ConsultaViewModel.DocumentoSelecionado != null) + { + bool[] flagArray = await Funcoes.VerificarPagamento(ConsultaViewModel.DocumentoSelecionado.get_Id()); + List configuracoes = Recursos.Configuracoes; + if (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 23)) + { + bool[] flagArray1 = flagArray; + if (((IEnumerable)flagArray1).Any((bool x) => x)) + { + await base.ShowMessage("NÃO É POSSÍVEL RECUSAR UMA APÓLICE ENQUANTO HOUVER RECEBIMENTO DE COMISSÃO OU PAGAMENTO DE VENDEDORES", "OK", "", false); + documento = null; + return; + } + } + List configuracaoSistemas = Recursos.Configuracoes; + flag = (!configuracaoSistemas.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 23) ? false : flagArray[1]); + bool flag1 = flag; + if (flag1) + { + flag1 = await base.ShowMessage("EXISTEM PAGAMENTOS PARA OS VENDEDORES DO CONTRATO, DESEJA CRIAR ESTORNOS PARA ESSES PAGAMENTOS?", "SIM", "NÃO", false); + } + bool flag2 = flag1; + documento = await this._apoliceServico.BuscarApoliceAsync(ConsultaViewModel.DocumentoSelecionado.get_Id(), false, false); + if (documento.get_Controle().get_Documentos().Count > 1) + { + IList documentos = documento.get_Controle().get_Documentos(); + IEnumerable excluido = + from x in documentos + where !x.get_Excluido() + select x; + list = ( + from x in excluido + orderby x.get_Ordem() + select x).ToList(); + } + else + { + list = documento.get_Controle().get_Documentos(); + } + IList documentos1 = list; + if (documentos1.Count > 1) + { + IList documentos2 = documentos1; + if (documentos2.Last((Documento x) => x.get_Situacao() != 7).get_Id() != ConsultaViewModel.DocumentoSelecionado.get_Id()) + { + await base.ShowMessage("NÃO É POSSÍVEL RECUSAR UM DOCUMENTO ENQUANTO HOUVER ENDOSSOS EM CIMA DO MESMO.", "OK", "", false); + documento = null; + return; + } + } + if (documento.get_Situacao() != 7) + { + if (documento.get_Tipo() != 0 || !string.IsNullOrEmpty(documento.get_Apolice())) + { + str = (documento.get_Tipo() != 0 || string.IsNullOrEmpty(documento.get_Apolice()) ? "O ENDOSSO SELECIONADO" : "A APÓLICE SELECIONADA"); + } + else + { + str = "A PROPOSTA SELECIONADA"; + } + string str1 = str; + if (await base.ShowMessage(string.Concat("DESEJA REALMENTE RECUSAR ", str1, "?"), "SIM", "NÃO", false)) + { + string str2 = null; + str2 = await base.ShowObservacaoDialog(); + if (str2 != null) + { + base.Loading(true); + await Funcoes.RecusarApolice(documento, str2, flag2); + ConsultaViewModel.DocumentoSelecionado = null; + await this.SelecionaCliente(this.SelectedCliente, true); + base.Loading(false); + } + } + } + else + { + await base.ShowMessage("NÃO É POSSÍVEL RECUSAR UM DOCUMENTO JÁ RECUSADO.", "OK", "", false); + } + } + documento = null; + } + + public async void SalvarOrdem(ObservableCollection itens) + { + if (itens != null) + { + ObservableCollection observableCollection = itens; + if (!observableCollection.Any((Item x) => { + int? ordem = x.get_Ordem(); + return ordem.GetValueOrDefault() == 0 & ordem.HasValue; + })) + { + ObservableCollection observableCollection1 = itens; + IEnumerable> groupings = + from item in observableCollection1 + group item by item.get_Ordem(); + if (!groupings.Any>((IGrouping x) => x.Count() > 1)) + { + base.Loading(true); + foreach (Item iten in itens) + { + await this._itemServico.Save(iten); + } + await this.SelecionaItens(this.FilterItens, null, (long)0, false); + base.Loading(false); + } + else + { + await base.ShowMessage("EXISTEM ITENS COM ORDEM REPETIDA. \nDEFINA UMA SEQUÊNCIA DIFERENTE PARA CADA ITEM.", "OK", "", false); + } + } + else + { + await base.ShowMessage("O CAMPO ORDEM DEVE SER MAIOR QUE ZERO.", "OK", "", false); + } + } + } + + public void ScrollDocumento() + { + if (this.UpdatingScroll) + { + return; + } + this.UpdatingScroll = true; + Task.Run(async () => { + await Task.Delay(300); + System.Windows.Application.Current.Dispatcher.Invoke(() => { + Action scrollDocumento = Gestor.Application.Actions.Actions.ScrollDocumento; + if (scrollDocumento == null) + { + return; + } + scrollDocumento(); + }); + }); + } + + public async Task SelecionaCliente(Cliente value, bool selecionar = true) + { + List vendedorUsuarios; + long? nullable1; + long? nullable2; + string str; + long? nullable3; + Documento documento; + long? nullable4; + long? nullable5; + long? nullable6; + bool flag; + Documento documento1; + this.Clear(); + if (value == null || value.get_Id() == 0) + { + base.IsVisible = Visibility.Collapsed; + } + else + { + try + { + this.Carregando = true; + base.Loading(true); + this.SelectedCliente = value; + ApoliceServico apoliceServico = this._apoliceServico; + long num = value.get_Id(); + FiltroStatusDocumento statusSelecionado = MainViewModel.StatusSelecionado; + if (Recursos.Usuario != null) + { + vendedorUsuarios = await base.VerificaVinculoVendedor(Recursos.Usuario); + } + else + { + vendedorUsuarios = new List(); + } + ObservableCollection observableCollection = await apoliceServico.BuscarApolicesAsync(num, statusSelecionado, vendedorUsuarios); + apoliceServico = null; + this.Apolices = observableCollection; + ConsultaViewModel consultaViewModel = this; + string[] nome = new string[] { "CONSULTOU ", null, null, null, null }; + str = (MainViewModel.StatusSelecionado != 4 ? string.Concat("OS ", Functions.GetDescription(MainViewModel.StatusSelecionado)) : "TODOS OS DOCUMENTOS"); + nome[1] = str; + nome[2] = " DO CLIENTE \""; + nome[3] = this.SelectedCliente.get_Nome(); + nome[4] = "\""; + string str1 = string.Concat(nome); + long num1 = this.SelectedCliente.get_Id(); + TipoTela? nullable7 = new TipoTela?(21); + Cliente selectedCliente = this.SelectedCliente; + if (selectedCliente != null) + { + nullable3 = new long?(selectedCliente.get_Id()); + } + else + { + nullable1 = null; + nullable3 = nullable1; + } + consultaViewModel.RegistrarAcao(str1, num1, nullable7, string.Format("ID CLIENTE: {0}", nullable3)); + if (this.Apolices == null || this.Apolices.Count <= 0) + { + this.SelectedControle = null; + this.SelectedEndosso = null; + this.SelectedItem = null; + this.SelectedParcela = null; + ConsultaViewModel.DocumentoSelecionado = null; + ConsultaViewModel.ItemSelecionado = null; + this.FilterDocumento = 0; + this.IsVisibleRadioEndosso = Visibility.Collapsed; + Action updateDocumento = Gestor.Application.Actions.Actions.UpdateDocumento; + if (updateDocumento != null) + { + updateDocumento(null); + } + else + { + } + } + else if (selecionar) + { + if (ConsultaViewModel.DocumentoSelecionado != null && ConsultaViewModel.DocumentoSelecionado.get_Tipo() != 0) + { + Controle controle = ConsultaViewModel.DocumentoSelecionado.get_Controle(); + if (controle != null) + { + Cliente cliente = controle.get_Cliente(); + if (cliente != null) + { + nullable4 = new long?(cliente.get_Id()); + } + else + { + nullable2 = null; + nullable4 = nullable2; + } + } + else + { + nullable2 = null; + nullable4 = nullable2; + } + nullable1 = nullable4; + long num2 = value.get_Id(); + if (nullable1.GetValueOrDefault() != num2 | !nullable1.HasValue) + { + goto Label2; + } + Controle controle1 = ConsultaViewModel.DocumentoSelecionado.get_Controle(); + if (controle1 != null) + { + IList documentos = controle1.get_Documentos(); + if (documentos != null) + { + Documento documento2 = documentos.FirstOrDefault((Documento x) => x.get_Tipo() == 0); + if (documento2 != null) + { + nullable5 = new long?(documento2.get_Id()); + } + else + { + nullable1 = null; + nullable5 = nullable1; + } + } + else + { + nullable1 = null; + nullable5 = nullable1; + } + } + else + { + nullable1 = null; + nullable5 = nullable1; + } + nullable1 = nullable5; + long valueOrDefault = nullable1.GetValueOrDefault(); + Documento documentoSelecionado = ConsultaViewModel.DocumentoSelecionado; + if (documentoSelecionado != null) + { + nullable6 = new long?(documentoSelecionado.get_Id()); + } + else + { + nullable1 = null; + nullable6 = nullable1; + } + long? nullable8 = nullable6; + if (valueOrDefault > (long)0) + { + flag = this.Apolices.FirstOrDefault((Documento x) => x.get_Id() == valueOrDefault); + } + else + { + flag = false; + } + if (!flag) + { + ConsultaViewModel consultaViewModel1 = this; + if (ConsultaViewModel.DocumentoSelecionado != null) + { + ObservableCollection apolices = this.Apolices; + documento1 = apolices.FirstOrDefault((Documento x) => x.get_Id() == ConsultaViewModel.DocumentoSelecionado.get_Id()); + if (documento1 == null) + { + documento1 = this.Apolices.FirstOrDefault(); + } + } + else + { + documento1 = this.Apolices.FirstOrDefault(); + } + await consultaViewModel1.SelecionaDocumento(0, documento1); + this.CarregaDocumentos(0); + } + else + { + await this.SelecionaDocumento(0, this.Apolices.FirstOrDefault((Documento x) => x.get_Id() == valueOrDefault)); + this.FilterDocumento = 1; + this.IsVisibleEndosso = Visibility.Visible; + ConsultaViewModel consultaViewModel2 = this; + Documento item = this.Endossos.FirstOrDefault((Documento x) => { + long id = x.get_Id(); + long? nullable = nullable8; + return id == nullable.GetValueOrDefault() & nullable.HasValue; + }); + if (item == null) + { + item = this.Endossos[0]; + } + consultaViewModel2.SelectedEndosso = item; + this.IsLoading = false; + await this.WorkOnSelectedEndosso(this.SelectedEndosso); + this.CarregaDocumentos(1); + } + goto Label1; + } + Label2: + ConsultaViewModel consultaViewModel3 = this; + if (ConsultaViewModel.DocumentoSelecionado != null) + { + ObservableCollection apolices1 = this.Apolices; + documento = apolices1.FirstOrDefault((Documento x) => x.get_Id() == ConsultaViewModel.DocumentoSelecionado.get_Id()); + if (documento == null) + { + documento = this.Apolices.FirstOrDefault(); + } + } + else + { + documento = this.Apolices.FirstOrDefault(); + } + await consultaViewModel3.SelecionaDocumento(0, documento); + this.CarregaDocumentos(0); + } + else + { + base.Loading(false); + this.Carregando = false; + return; + } + Label1: + this.ManutencaoItemVisibility = Visibility.Visible; + this.RenovarVisibility = Visibility.Visible; + this.TrocarClienteVisibility = Visibility.Visible; + this.TarefasVisibility = Visibility.Visible; + this.EndossarVisibility = Visibility.Visible; + this.ComissaoVisibility = Visibility.Visible; + base.Loading(false); + } + catch (Exception exception1) + { + Exception exception = exception1; + this.Clear(); + this.SelectedControle = null; + this.SelectedEndosso = null; + this.SelectedItem = null; + this.SelectedParcela = null; + ConsultaViewModel.DocumentoSelecionado = null; + ConsultaViewModel.ItemSelecionado = null; + this.FilterDocumento = 0; + this.IsVisibleRadioEndosso = Visibility.Collapsed; + Action action = Gestor.Application.Actions.Actions.UpdateDocumento; + if (action != null) + { + action(null); + } + else + { + } + (new BaseServico()).Registrar(exception, 1, 3, new { @value = value, selecionar = selecionar }, true); + } + this.Carregando = false; + } + } + + public async Task SelecionaDocumento(int type, Documento documento) + { + if (!this.Pesquisando) + { + if (documento != null) + { + documento.get_Controle().get_Cliente().set_Nome(this.SelectedCliente.get_Nome()); + if (type == 1) + { + this.FilterDocumento = 1; + this.IsVisibleEndosso = Visibility.Visible; + this.SelectedEndosso = documento; + await this.WorkOnSelectedEndosso(documento); + } + else + { + this.FilterDocumento = 0; + this.IsVisibleRadioEndosso = Visibility.Collapsed; + this.IsVisibleApolice = Visibility.Visible; + this.SelectedControle = documento; + await this.WorkOnSelectedControle(documento); + if (documento.get_TemEndosso()) + { + this.IsVisibleRadioEndosso = Visibility.Visible; + ConsultaViewModel observableCollection = this; + IList documentos = documento.get_Controle().get_Documentos(); + observableCollection.Endossos = new ObservableCollection(documentos.Where((Documento x) => { + if (x.get_Tipo() != 1) + { + return false; + } + if (Recursos.Usuario.get_Id() == 0) + { + return true; + } + return !x.get_Excluido(); + })); + } + else + { + return; + } + } + } + else + { + this.FilterDocumento = 0; + this.IsVisibleRadioEndosso = Visibility.Collapsed; + this.IsVisibleApolice = Visibility.Visible; + } + } + } + + public void SelecionaItem(Item item) + { + int num; + if (item == null || item.get_Id() == 0) + { + return; + } + if (item != null) + { + long? substituido = item.get_Substituido(); + long num1 = (long)0; + if (substituido.GetValueOrDefault() <= num1 | !substituido.HasValue) + { + num = 0; + this.FilterItens = num; + this.SelectedItem = item; + return; + } + num = 3; + this.FilterItens = num; + this.SelectedItem = item; + return; + } + num = 0; + this.FilterItens = num; + this.SelectedItem = item; + } + + public async Task SelecionaItens(int type, Documento documento = null, long iditem = 0L, bool pesquisaAvancada = false) + { + long? substituido; + long num; + Item item; + Item item1; + bool valueOrDefault; + Item item2; + Item item3; + bool flag; + Item item4; + Item item5; + if (documento == null) + { + documento = this.SelectedControle; + } + if (documento != null) + { + this.IsLoadingItens = false; + bool flag1 = !pesquisaAvancada; + if (flag1) + { + flag1 = await this.VerificaItens(documento); + } + if (!flag1) + { + await this.CarregaItens(type, documento); + int filterItens = this.FilterItens; + if (iditem == 0 && filterItens != 2) + { + ObservableCollection itens = this.Itens; + if (itens != null) + { + item = itens.FirstOrDefault((Item i) => { + long? nullable; + long id = i.get_Id(); + Item selectedItem = this.SelectedItem; + if (selectedItem != null) + { + nullable = new long?(selectedItem.get_Id()); + } + else + { + nullable = null; + } + long? nullable1 = nullable; + return id == nullable1.GetValueOrDefault() & nullable1.HasValue; + }); + } + else + { + item = null; + } + Item item6 = item; + if (item6 != null || filterItens == 0) + { + ConsultaViewModel consultaViewModel = this; + if (item6 != null) + { + item1 = item6; + } + else + { + ObservableCollection observableCollection = this.Itens; + if (observableCollection != null) + { + item1 = observableCollection.FirstOrDefault(); + } + else + { + item1 = null; + } + } + consultaViewModel.SelectedItem = item1; + } + else if (item6 == null && filterItens == 1) + { + Item item7 = this.SelectedItem; + if (item7 != null) + { + substituido = item7.get_Substituicao(); + num = (long)0; + flag = substituido.GetValueOrDefault() > num & substituido.HasValue; + } + else + { + flag = false; + } + if (flag) + { + ObservableCollection itens1 = this.Itens; + if (itens1 != null) + { + item5 = itens1.FirstOrDefault((Item i) => { + long? substituicao; + long id = i.get_Id(); + Item selectedItem = this.SelectedItem; + if (selectedItem != null) + { + substituicao = selectedItem.get_Substituicao(); + } + else + { + substituicao = null; + } + long? nullable = substituicao; + return id == nullable.GetValueOrDefault() & nullable.HasValue; + }); + } + else + { + item5 = null; + } + item6 = item5; + } + ConsultaViewModel consultaViewModel1 = this; + if (item6 != null) + { + item4 = item6; + } + else + { + ObservableCollection observableCollection1 = this.Itens; + if (observableCollection1 != null) + { + item4 = observableCollection1.FirstOrDefault(); + } + else + { + item4 = null; + } + } + consultaViewModel1.SelectedItem = item4; + } + Item item8 = this.SelectedItem; + if (item8 != null) + { + substituido = item8.get_Substituido(); + num = (long)0; + valueOrDefault = substituido.GetValueOrDefault() > num & substituido.HasValue; + } + else + { + valueOrDefault = false; + } + if (valueOrDefault && filterItens != 1) + { + this.FilterItens = 3; + this.Itens = await this._itemServico.BuscarItens(documento.get_Controle().get_Id(), 1); + ObservableCollection itens2 = this.Itens; + if (itens2 != null) + { + item2 = itens2.FirstOrDefault((Item i) => { + long? nullable; + long id = i.get_Id(); + Item selectedItem = this.SelectedItem; + if (selectedItem != null) + { + nullable = new long?(selectedItem.get_Id()); + } + else + { + nullable = null; + } + long? nullable1 = nullable; + return id == nullable1.GetValueOrDefault() & nullable1.HasValue; + }); + } + else + { + item2 = null; + } + item6 = item2; + ConsultaViewModel consultaViewModel2 = this; + if (item6 != null) + { + item3 = item6; + } + else + { + ObservableCollection observableCollection2 = this.Itens; + if (observableCollection2 != null) + { + item3 = observableCollection2.FirstOrDefault(); + } + else + { + item3 = null; + } + } + consultaViewModel2.SelectedItem = item3; + } + } + this.IsLoadingItens = true; + } + } + } + + public async Task SelecionaParcelas(Documento documento = null) + { + ObservableCollection observableCollection; + Parcela item; + if (documento == null) + { + documento = this.SelectedControle; + } + ObservableCollection observableCollection1 = await this._parcelaServico.BuscarParcelasPorDocumento(documento); + ConsultaViewModel consultaViewModel = this; + if (documento.get_TipoRecebimento().GetValueOrDefault() == 2) + { + ObservableCollection observableCollection2 = observableCollection1; + observableCollection = new ObservableCollection( + from x in observableCollection2 + orderby x.get_NumeroParcela() descending + select x); + } + else + { + observableCollection = observableCollection1; + } + consultaViewModel.Parcelas = observableCollection; + ConsultaViewModel consultaViewModel1 = this; + if (this.Parcelas == null || this.Parcelas.Count <= 0) + { + item = null; + } + else + { + item = this.Parcelas[0]; + } + consultaViewModel1.SelectedParcela = item; + this.CalculaComissao(documento, this.Parcelas); + this.IsLoadingParcelas = true; + } + + public async void SelecionarCliente(Cliente cliente) + { + await this.SelecionaCliente(cliente, true); + this.ScrollDocumento(); + } + + public async Task SelecionarCliente(long id, bool selecionar) + { + Cliente cliente = await (new ClienteServico()).BuscarCliente(id); + await this.SelecionaCliente(cliente, selecionar); + } + + public async Task VerificaItens(Documento documento) + { + bool flag; + if (!this.ItensRevelados) + { + if (await this._itemServico.ChecarQuantidade(documento.get_Id()) > 2) + { + this.Itens = new ObservableCollection(); + ObservableCollection itens = this.Itens; + Item item = new Item(); + item.set_Id((long)0); + item.set_Descricao("Item - Apólice Coletiva"); + itens.Add(item); + this.MostrarItensVisibility = Visibility.Visible; + this.MostrarSinistroVisibility = Visibility.Collapsed; + flag = true; + return flag; + } + } + flag = false; + return flag; + } + + private async Task WorkOnSelectedControle(Documento value) + { + string str; + Visibility visibility; + long id; + if (value != null && value.get_Id() != 0 && !this.IsLoading) + { + ConsultaViewModel.DocumentoSelecionado = value; + this.IsEnabledParcelaItem = false; + this.IsLoading = true; + this.VisibilityParcelasVendedores = Visibility.Collapsed; + ConsultaViewModel consultaViewModel = this; + if (string.IsNullOrEmpty(value.get_Apolice())) + { + DateTime networkTime = Funcoes.GetNetworkTime(); + TimeSpan date = networkTime.Date - value.get_Vigencia1(); + str = string.Format("{0} DIAS DE PENDÊNCIA", date.TotalDays); + } + else + { + str = ""; + } + consultaViewModel.PendenciaApolice = str; + ConsultaViewModel consultaViewModel1 = this; + visibility = (value.get_TemEndosso() ? Visibility.Visible : Visibility.Collapsed); + consultaViewModel1.IsVisibleRadioEndosso = visibility; + await this.SelecionaParcelas(value); + this.VisibilityParcelasVendedores = Visibility.Visible; + this.FilterItens = 0; + Item itemSelecionado = ConsultaViewModel.ItemSelecionado; + if (itemSelecionado != null) + { + id = itemSelecionado.get_Id(); + } + else + { + id = (long)0; + } + long num = id; + await this.SelecionaItens(this.FilterItens, value, (long)0, false); + if (num > (long)0 && this.Itens != null && this.Itens.Any((Item x) => x.get_Id() == num)) + { + ConsultaViewModel.ItemSelecionado = this.Itens.First((Item x) => x.get_Id() == num); + this.SelecionaItem(ConsultaViewModel.ItemSelecionado); + Action scrollToItem = Gestor.Application.Actions.Actions.ScrollToItem; + if (scrollToItem != null) + { + scrollToItem(); + } + else + { + } + } + this.IsLoading = false; + this.IsEnabledParcelaItem = true; + } + } + + private void WorkOnSelectedDocumento(Documento value) + { + if (value == null || value.get_Id() == 0 || this.Recarregando) + { + return; + } + ConsultaViewModel.DocumentoSelecionado = value; + this.ParcelasLabel = (ConsultaViewModel.DocumentoSelecionado.get_TipoRecebimento().GetValueOrDefault() == 2 ? "FATURAS" : "PARCELAS"); + TipoRecebimento? tipoRecebimento = ConsultaViewModel.DocumentoSelecionado.get_TipoRecebimento(); + this.IsFatura = tipoRecebimento.GetValueOrDefault() == 2; + Action updateDocumento = Gestor.Application.Actions.Actions.UpdateDocumento; + if (updateDocumento == null) + { + return; + } + updateDocumento(value); + } + + private async Task WorkOnSelectedEndosso(Documento value) + { + string str; + long id; + Visibility visibility; + string apolice; + if (value != null && value.get_Id() != 0 && !this.IsLoading) + { + ConsultaViewModel.DocumentoSelecionado = value; + base.IsEnabled = false; + this.IsLoading = true; + this.VisibilityParcelasVendedores = Visibility.Collapsed; + ConsultaViewModel consultaViewModel = this; + if (string.IsNullOrEmpty(value.get_Endosso())) + { + DateTime networkTime = Funcoes.GetNetworkTime(); + TimeSpan date = networkTime.Date - value.get_Vigencia1(); + str = string.Format("{0} DIAS DE PENDÊNCIA", date.TotalDays); + } + else + { + str = ""; + } + consultaViewModel.PendenciaApolice = str; + await this.SelecionaParcelas(value); + Item itemSelecionado = ConsultaViewModel.ItemSelecionado; + if (itemSelecionado != null) + { + id = itemSelecionado.get_Id(); + } + else + { + id = (long)0; + } + long num = id; + await this.SelecionaItens(this.FilterItens, null, (long)0, false); + if (num > (long)0 && this.Itens != null && this.Itens.Any((Item x) => x.get_Id() == num)) + { + ConsultaViewModel.ItemSelecionado = this.Itens.First((Item x) => x.get_Id() == num); + this.SelecionaItem(ConsultaViewModel.ItemSelecionado); + Action scrollToItem = Gestor.Application.Actions.Actions.ScrollToItem; + if (scrollToItem != null) + { + scrollToItem(); + } + else + { + } + } + this.VisibilityParcelasVendedores = Visibility.Visible; + ConsultaViewModel consultaViewModel1 = this; + List configuracoes = Recursos.Configuracoes; + if (configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 19)) + { + Documento documento = value; + if (documento != null) + { + apolice = documento.get_Apolice(); + } + else + { + apolice = null; + } + if (string.IsNullOrWhiteSpace(apolice) || !value.get_Emissao().HasValue) + { + goto Label1; + } + visibility = Visibility.Collapsed; + goto Label0; + } + Label1: + visibility = Visibility.Visible; + Label0: + consultaViewModel1.RecusaVisibility = visibility; + base.IsEnabled = true; + this.IsLoading = false; + } + } + + private static void WorkOnSelectedItem(Item value) + { + long? nullable; + if (value != null) + { + Item itemSelecionado = ConsultaViewModel.ItemSelecionado; + if (itemSelecionado != null) + { + nullable = new long?(itemSelecionado.get_Id()); + } + else + { + nullable = null; + } + long? nullable1 = nullable; + long id = value.get_Id(); + if (nullable1.GetValueOrDefault() == id & nullable1.HasValue) + { + return; + } + } + ConsultaViewModel.ItemSelecionado = value; + Action updateItem = Gestor.Application.Actions.Actions.UpdateItem; + if (updateItem == null) + { + return; + } + updateItem(value); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/CriticaApoliceViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/CriticaApoliceViewModel.cs new file mode 100644 index 0000000..7ec09a7 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/CriticaApoliceViewModel.cs @@ -0,0 +1,1486 @@ +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.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class CriticaApoliceViewModel : BaseApoliceViewModel + { + private readonly CriticaApoliceServico _criticaServico; + + private readonly ClienteServico _clienteServico; + + private readonly ItemServico _itemServico; + + private List Vinculos; + + private ObservableCollection _usuarios = new ObservableCollection(); + + private ObservableCollection _seguradorasFiltro = new ObservableCollection(); + + private string _fieldNascimento = "NASCIMENTO"; + + private bool _isExpanded = true; + + private DateTime _inicio = Funcoes.GetNetworkTime().Date.AddDays(-7); + + private DateTime _fim = Funcoes.GetNetworkTime().Date; + + private Usuario _selectedUsuario; + + private Seguradora _selectedSeguradora; + + private bool _criticado; + + private ObservableCollection _criticas = new ObservableCollection(); + + private ObservableCollection _criticaFiltrada = new ObservableCollection(); + + private bool _isCriticaSelected; + + private CriticaApolice _selectedCritica; + + private bool _hasChange; + + private bool _isParcela; + + private DateTime? _emissaoCritica; + + private DateTime? _transmissaoCritica; + + private DateTime? _nascimentoCritica; + + private TipoSeguro? _situacao; + + private Cliente _selectedCliente; + + private string _documentoPrincipal; + + private Visibility _visibilityFisica = Visibility.Collapsed; + + private ObservableCollection _telefones = new ObservableCollection(); + + private ObservableCollection _emails = new ObservableCollection(); + + private ObservableCollection _itens = new ObservableCollection(); + + private bool _enableGrid = true; + + private string _pesquisa = ""; + + private ObservableCollection _pesquisaCritica = new ObservableCollection(); + + private string _profissaoText; + + private string _atividadeText; + + private Visibility _visibilityJuridica = Visibility.Collapsed; + + private string _fieldDocumento = "CPF"; + + private Visibility _valorComissao; + + public string AtividadeText + { + get + { + return this._atividadeText; + } + set + { + this._atividadeText = value; + base.OnPropertyChanged("AtividadeText"); + } + } + + public bool BuscaInicial { get; set; } = true; + + public bool Criticado + { + get + { + return this._criticado; + } + set + { + this._criticado = value; + base.OnPropertyChanged("Criticado"); + } + } + + public ObservableCollection CriticaFiltrada + { + get + { + return this._criticaFiltrada; + } + set + { + this._criticaFiltrada = value; + base.OnPropertyChanged("CriticaFiltrada"); + } + } + + public ObservableCollection Criticas + { + get + { + return this._criticas; + } + set + { + this._criticas = value; + base.OnPropertyChanged("Criticas"); + } + } + + public string DocumentoPrincipal + { + get + { + return this._documentoPrincipal; + } + set + { + if (value == null || ValidationHelper.OnlyNumber(value).Length > 11) + { + this.VisibilityFisica = Visibility.Collapsed; + this.FieldNascimento = "FUNDAÇÃO"; + } + else + { + this.VisibilityFisica = Visibility.Visible; + this.FieldNascimento = "NASCIMENTO"; + } + this._documentoPrincipal = value; + if (this.SelectedCliente != null) + { + TipoDocumento? documentoPrincipal = this.SelectedCliente.get_DocumentoPrincipal(); + if (documentoPrincipal.HasValue) + { + TipoDocumento valueOrDefault = documentoPrincipal.GetValueOrDefault(); + if (valueOrDefault == 1) + { + this.SelectedCliente.set_Rne(value); + base.OnPropertyChanged("DocumentoPrincipal"); + return; + } + else + { + if (valueOrDefault != 2) + { + goto Label1; + } + this.SelectedCliente.set_Cei(value); + base.OnPropertyChanged("DocumentoPrincipal"); + return; + } + } + Label1: + this.SelectedCliente.set_Documento(value); + } + base.OnPropertyChanged("DocumentoPrincipal"); + } + } + + public ObservableCollection Emails + { + get + { + return this._emails; + } + set + { + this._emails = value; + base.OnPropertyChanged("Emails"); + } + } + + public DateTime? EmissaoCritica + { + get + { + return this._emissaoCritica; + } + set + { + this._emissaoCritica = value; + base.OnPropertyChanged("EmissaoCritica"); + } + } + + public bool EnableGrid + { + get + { + return this._enableGrid; + } + set + { + this._enableGrid = value; + base.OnPropertyChanged("EnableGrid"); + } + } + + public string FieldDocumento + { + get + { + return this._fieldDocumento; + } + set + { + this._fieldDocumento = value; + base.OnPropertyChanged("FieldDocumento"); + } + } + + public string FieldNascimento + { + get + { + return this._fieldNascimento; + } + set + { + this._fieldNascimento = value; + base.OnPropertyChanged("FieldNascimento"); + } + } + + public DateTime Fim + { + get + { + return this._fim; + } + set + { + this._fim = value; + base.OnPropertyChanged("Fim"); + } + } + + public bool HasChange + { + get + { + return this._hasChange; + } + set + { + this._hasChange = value; + base.OnPropertyChanged("HasChange"); + } + } + + public int Index { get; set; } = -1; + + public DateTime Inicio + { + get + { + return this._inicio; + } + set + { + this._inicio = value; + base.OnPropertyChanged("Inicio"); + } + } + + public bool IsCriticaSelected + { + get + { + return this._isCriticaSelected; + } + set + { + this._isCriticaSelected = value; + base.OnPropertyChanged("IsCriticaSelected"); + } + } + + public bool IsExpanded + { + get + { + return this._isExpanded; + } + set + { + this._isExpanded = value; + base.OnPropertyChanged("IsExpanded"); + } + } + + public bool IsLoading + { + get; + set; + } + + public bool IsParcela + { + get + { + return this._isParcela; + } + set + { + this._isParcela = value; + base.OnPropertyChanged("IsParcela"); + } + } + + public ObservableCollection Itens + { + get + { + return this._itens; + } + set + { + this._itens = value; + base.OnPropertyChanged("Itens"); + } + } + + public DateTime? NascimentoCritica + { + get + { + return this._nascimentoCritica; + } + set + { + this._nascimentoCritica = value; + base.OnPropertyChanged("NascimentoCritica"); + } + } + + public string Pesquisa + { + get + { + return this._pesquisa; + } + set + { + this._pesquisa = value; + base.OnPropertyChanged("Pesquisa"); + } + } + + public ObservableCollection PesquisaCritica + { + get + { + return this._pesquisaCritica; + } + set + { + this._pesquisaCritica = value; + base.OnPropertyChanged("PesquisaCritica"); + } + } + + public string ProfissaoText + { + get + { + return this._profissaoText; + } + set + { + this._profissaoText = value; + base.OnPropertyChanged("ProfissaoText"); + } + } + + public ObservableCollection SeguradorasFiltro + { + get + { + return this._seguradorasFiltro; + } + set + { + this._seguradorasFiltro = value; + this.SelectedSeguradora = this.SelectedSeguradora ?? value.FirstOrDefault(); + base.OnPropertyChanged("SeguradorasFiltro"); + } + } + + public bool SeguroCombinado + { + get; + set; + } + + public Cliente SelectedCliente + { + get + { + return this._selectedCliente; + } + set + { + this._selectedCliente = value; + base.OnPropertyChanged("SelectedCliente"); + } + } + + public CriticaApolice SelectedCritica + { + get + { + return this._selectedCritica; + } + set + { + this._selectedCritica = value; + this.IsCriticaSelected = value != null; + base.OnPropertyChanged("SelectedCritica"); + } + } + + public Seguradora SelectedSeguradora + { + get + { + return this._selectedSeguradora; + } + set + { + this._selectedSeguradora = value; + base.OnPropertyChanged("SelectedSeguradora"); + } + } + + public Usuario SelectedUsuario + { + get + { + return this._selectedUsuario; + } + set + { + this._selectedUsuario = value; + base.OnPropertyChanged("SelectedUsuario"); + } + } + + public TipoSeguro? StatusDocumento + { + get + { + return this._situacao; + } + set + { + this._situacao = value; + base.OnPropertyChanged("StatusDocumento"); + } + } + + public ObservableCollection Telefones + { + get + { + return this._telefones; + } + set + { + this._telefones = value; + base.OnPropertyChanged("Telefones"); + } + } + + public DateTime? TransmissaoCritica + { + get + { + return this._transmissaoCritica; + } + set + { + this._transmissaoCritica = value; + base.OnPropertyChanged("TransmissaoCritica"); + } + } + + public ObservableCollection Usuarios + { + get + { + return this._usuarios; + } + set + { + this._usuarios = value; + this.SelectedUsuario = this.SelectedUsuario ?? value.FirstOrDefault(); + base.OnPropertyChanged("Usuarios"); + } + } + + public Visibility ValorComissao + { + get + { + return this._valorComissao; + } + set + { + this._valorComissao = value; + base.OnPropertyChanged("ValorComissao"); + } + } + + public Visibility VisibilityFisica + { + get + { + return this._visibilityFisica; + } + set + { + this._visibilityFisica = value; + base.OnPropertyChanged("VisibilityFisica"); + } + } + + public Visibility VisibilityJuridica + { + get + { + return this._visibilityJuridica; + } + set + { + this._visibilityJuridica = value; + base.OnPropertyChanged("VisibilityJuridica"); + } + } + + public CriticaApoliceViewModel() + { + base.Invoke = false; + this._criticaServico = new CriticaApoliceServico(); + this._clienteServico = new ClienteServico(); + this._itemServico = new ItemServico(); + } + + public void AdcionarFiltro() + { + if (string.IsNullOrEmpty(this.Pesquisa)) + { + return; + } + if (string.IsNullOrWhiteSpace(this.Pesquisa.Replace("+", ""))) + { + return; + } + if (this.PesquisaCritica == null) + { + this.PesquisaCritica = new ObservableCollection(); + } + this.PesquisaCritica.Add(this.Pesquisa); + this.Pesquisa = string.Empty; + this.Pesquisar(); + } + + public void AlteraDocumentoPrincipal() + { + if (this.SelectedCliente == null) + { + return; + } + TipoDocumento? documentoPrincipal = this.SelectedCliente.get_DocumentoPrincipal(); + if (documentoPrincipal.HasValue) + { + TipoDocumento valueOrDefault = documentoPrincipal.GetValueOrDefault(); + if (valueOrDefault == 1) + { + this.DocumentoPrincipal = this.SelectedCliente.get_Rne(); + return; + } + if (valueOrDefault == 2) + { + this.DocumentoPrincipal = this.SelectedCliente.get_Cei(); + return; + } + } + this.DocumentoPrincipal = this.SelectedCliente.get_Documento(); + this.SelectedCliente.set_DocumentoPrincipal(new TipoDocumento?(0)); + } + + public async Task CarregaCritica(long usuario, long seguradora, bool criticado = false) + { + bool count; + Usuario usuario1; + Seguradora seguradora1; + object nome; + long num; + object obj; + long num1; + object obj1; + object obj2; + object nome1; + long num2; + object nome2; + long num3; + object obj3; + if (!this.IsLoading || this.BuscaInicial) + { + this.BuscaInicial = false; + this.EnableGrid = false; + base.Loading(true); + this.Criticado = criticado; + await this.CarregarUsuarios(usuario, this.Criticado); + List criticaApolices = await this._criticaServico.BuscarCritica(usuario, this.Inicio, this.Fim, (long)0, this.Criticado, this.Vinculos); + CriticaApoliceViewModel observableCollection = this; + IEnumerable criticaApolices1 = criticaApolices.Where((CriticaApolice x) => { + if (usuario != 0 && x.get_UsuarioImportacao().get_Id() != usuario) + { + return false; + } + if (seguradora == 0) + { + return true; + } + return x.get_Documento().get_Controle().get_Seguradora().get_Id() == seguradora; + }); + IOrderedEnumerable dataImportacao = + from x in criticaApolices1 + orderby x.get_DataImportacao() + select x; + observableCollection.Criticas = new ObservableCollection(dataImportacao.ThenByDescending((CriticaApolice x) => x.get_Documento().get_Controle().get_Cliente().get_Nome())); + this.CriticaFiltrada = this.Criticas; + if (this.CriticaFiltrada == null || this.CriticaFiltrada.Count <= 0) + { + this.IsCriticaSelected = false; + } + else + { + await this.SelecionaCritica(this.CriticaFiltrada.First()); + } + CriticaApoliceViewModel criticaApoliceViewModel = this; + ObservableCollection criticaFiltrada = this.CriticaFiltrada; + if (criticaFiltrada != null) + { + count = criticaFiltrada.Count > 0; + } + else + { + count = false; + } + criticaApoliceViewModel.IsExpanded = count; + base.Loading(false); + ObservableCollection usuarios = this.Usuarios; + if (usuarios != null) + { + usuario1 = usuarios.FirstOrDefault((Usuario x) => x.get_Id() == usuario); + } + else + { + usuario1 = null; + } + Usuario usuario2 = usuario1; + List seguradoras = base.Seguradoras; + if (seguradoras != null) + { + seguradora1 = seguradoras.FirstOrDefault((Seguradora x) => x.get_Id() == seguradora); + } + else + { + seguradora1 = null; + } + Seguradora seguradora2 = seguradora1; + CriticaApoliceViewModel criticaApoliceViewModel1 = this; + string str = string.Format("CONSULTOU CRÍTICAS NO PERÍODO ENTRE {0:d} E {1:d}", this.Inicio, this.Fim); + long num4 = (long)0; + TipoTela? nullable = new TipoTela?(20); + if (this.PesquisaCritica == null || this.PesquisaCritica.Count <= 0) + { + object[] objArray = new object[5]; + if (usuario2 != null) + { + nome = usuario2.get_Nome(); + } + else + { + nome = null; + } + if (nome == null) + { + nome = "TODOS USUÁRIOS"; + } + objArray[0] = nome; + num = (usuario2 != null ? usuario2.get_Id() : (long)0); + objArray[1] = num; + if (seguradora2 != null) + { + obj = seguradora2.get_Nome(); + } + else + { + obj = null; + } + if (obj == null) + { + obj = "TODAS AS SEGURADORAS"; + } + objArray[2] = obj; + num1 = (seguradora2 != null ? seguradora2.get_Id() : (long)0); + objArray[3] = num1; + obj1 = (this.Criticado ? "SIM" : "NÃO"); + objArray[4] = obj1; + obj2 = string.Format("USUÁRIO IMPORTAÇÃO: {0} ({1})\nSEGURADORA: {2} ({3})\nCRITICADOS: {4}", objArray); + } + else + { + object[] objArray1 = new object[6]; + if (usuario2 != null) + { + nome1 = usuario2.get_Nome(); + } + else + { + nome1 = null; + } + if (nome1 == null) + { + nome1 = "TODOS USUÁRIOS"; + } + objArray1[0] = nome1; + num2 = (usuario2 != null ? usuario2.get_Id() : (long)0); + objArray1[1] = num2; + if (seguradora2 != null) + { + nome2 = seguradora2.get_Nome(); + } + else + { + nome2 = null; + } + if (nome2 == null) + { + nome2 = "TODAS AS SEGURADORAS"; + } + objArray1[2] = nome2; + num3 = (seguradora2 != null ? seguradora2.get_Id() : (long)0); + objArray1[3] = num3; + obj3 = (this.Criticado ? "SIM" : "NÃO"); + objArray1[4] = obj3; + objArray1[5] = ValidationHelper.Join(this.PesquisaCritica, ", "); + obj2 = string.Format("USUÁRIO IMPORTAÇÃO: {0} ({1})\nSEGURADORA: {2} ({3})\nCRITICADOS: {4}\nPESQUISA PERSONALIZADA: \"{5}\"", objArray1); + } + criticaApoliceViewModel1.RegistrarAcao(str, num4, nullable, obj2); + this.EnableGrid = true; + } + } + + public async Task CarregarSeguradoras() + { + this.IsLoading = true; + List list = await this._criticaServico.BuscarSeguradorasAsync(); + List seguradoras = list; + list = ( + from x in seguradoras + orderby x.get_Nome() + select x).ToList(); + Seguradora seguradora = new Seguradora(); + seguradora.set_Id((long)0); + seguradora.set_Nome("TODAS AS SEGURADORAS"); + seguradora.set_Ativo(true); + list.Insert(0, seguradora); + CriticaApoliceViewModel observableCollection = this; + List seguradoras1 = list; + observableCollection.SeguradorasFiltro = new ObservableCollection( + from x in seguradoras1 + where x.get_Ativo() + select x); + this.SelectedSeguradora = this.SeguradorasFiltro.FirstOrDefault(); + this.IsLoading = false; + } + + public async Task CarregarUsuarios(long selected = 0L, bool criticado = false) + { + bool count; + this.IsLoading = true; + this.Criticado = criticado; + List usuarios = new List(); + List vinculos = this.Vinculos; + if (vinculos != null) + { + count = vinculos.Count > 0; + } + else + { + count = false; + } + if (!count) + { + usuarios = await this._criticaServico.BuscarUsuarioCritica(this.Inicio, this.Fim, this.Criticado); + Usuario usuario = new Usuario(); + usuario.set_Id((long)0); + usuario.set_Nome("TODOS OS USUÁRIOS"); + usuarios.Insert(0, usuario); + } + else + { + Usuario usuario1 = new Usuario(); + usuario1.set_Id(Recursos.Usuario.get_Id()); + usuario1.set_Nome(Recursos.Usuario.get_Nome()); + usuarios.Insert(0, usuario1); + } + this.Usuarios = new ObservableCollection(usuarios); + CriticaApoliceViewModel criticaApoliceViewModel = this; + Usuario usuario2 = this.Usuarios.FirstOrDefault((Usuario x) => x.get_Id() == selected); + if (usuario2 == null) + { + usuario2 = this.Usuarios.FirstOrDefault(); + } + criticaApoliceViewModel.SelectedUsuario = usuario2; + this.IsLoading = false; + } + + public async Task ConcluirCritica() + { + List criticaApolices; + string str; + string descricao; + DateTime networkTime = Funcoes.GetNetworkTime(); + this.SelectedCritica.set_Critica(new bool?(true)); + this.SelectedCritica.set_DataCritica(new DateTime?(networkTime)); + this.SelectedCritica.set_UsuarioCritica(new long?(Recursos.Usuario.get_Id())); + foreach (CriticaApolice criticaApolouse in await this._criticaServico.BuscarCritica(this.SelectedCritica.get_Documento().get_Id())) + { + criticaApolouse.set_Critica(new bool?(true)); + criticaApolouse.set_DataCritica(new DateTime?(networkTime)); + criticaApolouse.set_UsuarioCritica(new long?(Recursos.Usuario.get_Id())); + await this._criticaServico.Save(criticaApolouse); + } + if (this.SeguroCombinado) + { + List list = ((IEnumerable)await this._criticaServico.BuscarSeguroCombinado(this.SelectedCritica.get_Documento().get_Controle().get_Cliente().get_Id(), this.SelectedCritica.get_Documento().get_Vigencia1())).Where((CriticaApolice duo) => { + if (duo.get_Documento().get_Controle().get_Seguradora().get_Id() == this.SelectedCritica.get_Documento().get_Controle().get_Seguradora().get_Id() && duo.get_Documento().get_Controle().get_Cliente().get_Id() == this.SelectedCritica.get_Documento().get_Controle().get_Cliente().get_Id() && duo.get_Documento().get_Vigencia1() == this.SelectedCritica.get_Documento().get_Vigencia1()) + { + DateTime? vigencia2 = duo.get_Documento().get_Vigencia2(); + DateTime? nullable = this.SelectedCritica.get_Documento().get_Vigencia2(); + if ((vigencia2.HasValue == nullable.HasValue ? (vigencia2.HasValue ? vigencia2.GetValueOrDefault() == nullable.GetValueOrDefault() : true) : false) && duo.get_Documento().get_Id() != this.SelectedCritica.get_Documento().get_Id() && duo.get_Documento().get_Apolice() == this.SelectedCritica.get_Documento().get_Apolice() && duo.get_Documento().get_Proposta() == null) + { + return true; + } + } + return Regex.Replace(duo.get_Documento().get_Proposta(), "[^.'-,/]", "") == Regex.Replace(this.SelectedCritica.get_Documento().get_Proposta(), "[^.'-,/]", ""); + }).ToList(); + if (list == null || list.Count() <= 0) + { + criticaApolices = null; + } + else + { + criticaApolices = await this._criticaServico.BuscarCritica(list.FirstOrDefault().get_Documento().get_Id()); + } + list = criticaApolices; + if (list != null && list.Any()) + { + foreach (CriticaApolice criticaApolouse1 in list) + { + criticaApolouse1.set_Critica(new bool?(true)); + criticaApolouse1.set_DataCritica(new DateTime?(networkTime)); + criticaApolouse1.get_Documento().set_PremioLiquido(new decimal(1, 0, 0, false, 2)); + criticaApolouse1.get_Documento().set_PremioTotal(new decimal(1, 0, 0, false, 2)); + criticaApolouse1.get_Documento().set_Comissao(new decimal(1, 0, 0, false, 2)); + criticaApolouse1.set_UsuarioCritica(new long?(Recursos.Usuario.get_Id())); + await this._criticaServico.Save(criticaApolouse1); + await this.Servico.Save(criticaApolouse1.get_Documento(), false, false); + } + } + } + if (this.SelectedCritica.get_Tipo() == "0") + { + str = string.Concat("A PROPOSTA \"", this.CancelDocumento.get_Proposta(), "\""); + } + else + { + str = (this.SelectedCritica.get_Tipo() == "1" ? string.Concat("A APÓLICE \"", this.CancelDocumento.get_Apolice(), "\"") : string.Concat("O ENDOSSO \"", this.CancelDocumento.get_Endosso(), "\"")); + } + string str1 = str; + base.RegistrarAcao(string.Concat("CONCLUIU A CRÍTICA D", str1), this.SelectedCritica.get_Id(), new TipoTela?(20), null); + if (this.Itens == null) + { + descricao = ""; + } + else if (this.Itens.Count > 1) + { + descricao = "APÓLICE COLETIVA"; + } + else + { + Item item = this.Itens.FirstOrDefault(); + if (item != null) + { + descricao = item.get_Descricao(); + } + else + { + descricao = null; + } + } + string str2 = descricao; + try + { + if (string.IsNullOrEmpty(base.SelectedDocumento.get_Controle().get_AssistenciaId())) + { + await base.CreateLinkAssistencia(base.SelectedDocumento, str2, false); + } + } + catch (Exception exception) + { + } + base.SelectedDocumento = null; + this.SelectedCliente = null; + this.Telefones = null; + this.Emails = null; + this.Itens = null; + await this.CarregaCritica(this.SelectedUsuario.get_Id(), this.SelectedSeguradora.get_Id(), this.Criticado); + } + + public async void ExcluirEmail(ClienteEmail email) + { + if (this.Emails.Count >= 2) + { + this.HasChange = true; + int? nullable = email.get_Ordem(); + int count = this.Emails.Count; + int count1 = this.Emails.Count; + this.Emails.Remove(email); + if (!(nullable.GetValueOrDefault() == count & nullable.HasValue)) + { + if (this.Emails.FirstOrDefault((ClienteEmail x) => { + int? ordem = x.get_Ordem(); + int num = count1; + return ordem.GetValueOrDefault() == num & ordem.HasValue; + }) != null) + { + this.Emails.First((ClienteEmail x) => { + int? ordem = x.get_Ordem(); + int num = count1; + return ordem.GetValueOrDefault() == num & ordem.HasValue; + }).set_Ordem(email.get_Ordem()); + CriticaApoliceViewModel observableCollection = this; + ObservableCollection emails = this.Emails; + observableCollection.Emails = new ObservableCollection( + from x in emails + orderby x.get_Ordem() + select x); + } + } + } + else + { + await base.ShowMessage("É NECESSÁRIO TER AO MENOS UM CONTATO DE E-MAIL CADASTRADO.", "OK", "", false); + } + } + + public async void ExcluirTelefone(ClienteTelefone telefone) + { + if (this.Telefones.Count >= 2) + { + this.HasChange = true; + int? nullable = telefone.get_Ordem(); + int count = this.Telefones.Count; + int count1 = this.Telefones.Count; + this.Telefones.Remove(telefone); + if (!(nullable.GetValueOrDefault() == count & nullable.HasValue)) + { + if (this.Telefones.FirstOrDefault((ClienteTelefone x) => { + int? ordem = x.get_Ordem(); + int num = count1; + return ordem.GetValueOrDefault() == num & ordem.HasValue; + }) != null) + { + this.Telefones.First((ClienteTelefone x) => { + int? ordem = x.get_Ordem(); + int num = count1; + return ordem.GetValueOrDefault() == num & ordem.HasValue; + }).set_Ordem(telefone.get_Ordem()); + CriticaApoliceViewModel observableCollection = this; + ObservableCollection telefones = this.Telefones; + observableCollection.Telefones = new ObservableCollection( + from x in telefones + orderby x.get_Ordem() + select x); + } + } + } + else + { + await base.ShowMessage("É NECESSÁRIO TER AO MENOS UM TELEFONE CADASTRADO.", "OK", "", false); + } + } + + public async Task InitialLoad() + { + long id; + this.IsLoading = true; + base.Loading(true); + await base.PermissaoTela(2); + await this.SelecionaUsuario(); + await this.CarregarUsuarios((long)0, false); + await this.CarregarSeguradoras(); + CriticaApoliceViewModel criticaApoliceViewModel = this; + Usuario selectedUsuario = this.SelectedUsuario; + if (selectedUsuario != null) + { + id = selectedUsuario.get_Id(); + } + else + { + id = (long)0; + } + await criticaApoliceViewModel.CarregaCritica(id, (long)0, false); + base.Loading(false); + this.IsLoading = false; + } + + public void JuridicaouFisica(string documento) + { + if (this.SelectedCliente == null) + { + return; + } + this.ProfissaoText = ""; + this.AtividadeText = ""; + if (documento != null && ValidationHelper.OnlyNumber(documento).Length <= 11) + { + this.VisibilityJuridica = Visibility.Collapsed; + this.VisibilityFisica = Visibility.Visible; + this.FieldNascimento = "NASCIMENTO"; + this.FieldDocumento = "CPF"; + this.SelectedCliente.set_Atividade(null); + return; + } + this.VisibilityJuridica = Visibility.Visible; + this.VisibilityFisica = Visibility.Collapsed; + this.FieldNascimento = "FUNDAÇÃO"; + this.FieldDocumento = "CNPJ"; + this.SelectedCliente.set_Profissao(null); + } + + public async void Pesquisar() + { + this.EnableGrid = false; + if (this.PesquisaCritica == null || this.PesquisaCritica.Count == 0) + { + this.CriticaFiltrada = new ObservableCollection(this.Criticas); + } + else + { + CriticaApoliceViewModel observableCollection = this; + IEnumerable criticaApolices = this.Criticas.Where((CriticaApolice x) => { + Func func2 = null; + return this.PesquisaCritica.All((string s) => { + List list = s.Split(new char[] { '+' }).ToList(); + Func u003cu003e9_1484 = CriticaApoliceViewModel.u003cu003ec.u003cu003e9__148_4; + if (u003cu003e9_1484 == null) + { + u003cu003e9_1484 = (string f) => !string.IsNullOrWhiteSpace(f); + CriticaApoliceViewModel.u003cu003ec.u003cu003e9__148_4 = u003cu003e9_1484; + } + IEnumerable strs = list.Where(u003cu003e9_1484); + Func u003cu003e9_5 = func2; + if (u003cu003e9_5 == null) + { + Func func = (string f) => { + if (ValidationHelper.RemoveDiacritics(x.get_Documento().get_Controle().get_Cliente().get_Nome()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(f)) || x.get_Documento().get_Controle().get_Cliente().get_Documento() != null && x.get_Documento().get_Controle().get_Cliente().get_Documento().Contains(f) || x.get_Documento().get_Controle().get_Cliente().get_Cei() != null && x.get_Documento().get_Controle().get_Cliente().get_Cei().Contains(f) || x.get_Documento().get_Controle().get_Cliente().get_Rne() != null && x.get_Documento().get_Controle().get_Cliente().get_Rne().Contains(f) || x.get_UsuarioImportacao() != null && x.get_UsuarioImportacao().get_Nome().Contains(f) || x.get_DataImportacao().HasValue && x.get_DataImportacao().ToString().Contains(f) || x.get_Documento().get_Apolice() != null && x.get_Documento().get_Apolice().ToUpper().Contains(f.ToUpper())) + { + return true; + } + if (x.get_Documento().get_Proposta() == null) + { + return false; + } + return x.get_Documento().get_Proposta().ToUpper().Contains(f.ToUpper()); + }; + Func func1 = func; + func2 = func; + u003cu003e9_5 = func1; + } + return strs.Any(u003cu003e9_5); + }); + }); + IOrderedEnumerable dataImportacao = + from x in criticaApolices + orderby x.get_DataImportacao() + select x; + observableCollection.CriticaFiltrada = new ObservableCollection(dataImportacao.ThenByDescending((CriticaApolice x) => x.get_Documento().get_Controle().get_Cliente().get_Nome())); + } + await this.SelecionaCritica(this.CriticaFiltrada.FirstOrDefault()); + this.EnableGrid = true; + } + + public async Task>> SalvarCliente() + { + List> keyValuePairs; + List> keyValuePairs1; + Cliente cliente; + CriticaApoliceViewModel.u003cu003ec__DisplayClass132_0 variable; + List> keyValuePairs2; + List> keyValuePairs3; + if (!this.HasChange && !this.SelectedCliente.HasChange()) + { + ObservableCollection telefones = this.Telefones; + if (telefones.All((ClienteTelefone x) => !x.HasChange())) + { + ObservableCollection emails = this.Emails; + if (emails.All((ClienteEmail x) => !x.HasChange())) + { + keyValuePairs = null; + variable = null; + return keyValuePairs; + } + } + } + ObservableCollection observableCollection = this.Telefones; + List list = ( + from x in observableCollection + where !string.IsNullOrEmpty(x.get_Numero()) + select x).ToList(); + ObservableCollection emails1 = this.Emails; + List clienteEmails = ( + from x in emails1 + where !string.IsNullOrEmpty(x.get_Email()) + select x).ToList(); + this.SelectedCliente.set_Telefones(new ObservableCollection(list)); + this.SelectedCliente.set_Emails(new ObservableCollection(clienteEmails)); + TipoDocumento? documentoPrincipal = this.SelectedCliente.get_DocumentoPrincipal(); + if (documentoPrincipal.HasValue) + { + TipoDocumento valueOrDefault = documentoPrincipal.GetValueOrDefault(); + if (valueOrDefault == 1) + { + this.SelectedCliente.set_Rne(this.DocumentoPrincipal); + keyValuePairs3 = this.SelectedCliente.Validate(); + list.ForEach((ClienteTelefone x) => keyValuePairs3.AddRange(x.Validate())); + clienteEmails.ForEach((ClienteEmail x) => keyValuePairs3.AddRange(x.Validate())); + keyValuePairs2 = keyValuePairs3; + keyValuePairs1 = await this.Validate(); + keyValuePairs2.AddRange(keyValuePairs1); + keyValuePairs2 = null; + if (keyValuePairs3.Count <= 0) + { + cliente = await this._clienteServico.Save(this.SelectedCliente, false); + keyValuePairs = null; + } + else + { + keyValuePairs = keyValuePairs3; + } + variable = null; + return keyValuePairs; + } + else + { + if (valueOrDefault != 2) + { + goto Label2; + } + this.SelectedCliente.set_Cei(this.DocumentoPrincipal); + keyValuePairs3 = this.SelectedCliente.Validate(); + list.ForEach((ClienteTelefone x) => keyValuePairs3.AddRange(x.Validate())); + clienteEmails.ForEach((ClienteEmail x) => keyValuePairs3.AddRange(x.Validate())); + keyValuePairs2 = keyValuePairs3; + keyValuePairs1 = await this.Validate(); + keyValuePairs2.AddRange(keyValuePairs1); + keyValuePairs2 = null; + if (keyValuePairs3.Count <= 0) + { + cliente = await this._clienteServico.Save(this.SelectedCliente, false); + keyValuePairs = null; + } + else + { + keyValuePairs = keyValuePairs3; + } + variable = null; + return keyValuePairs; + } + } + Label2: + this.SelectedCliente.set_Documento(this.DocumentoPrincipal); + keyValuePairs3 = this.SelectedCliente.Validate(); + list.ForEach((ClienteTelefone x) => keyValuePairs3.AddRange(x.Validate())); + clienteEmails.ForEach((ClienteEmail x) => keyValuePairs3.AddRange(x.Validate())); + keyValuePairs2 = keyValuePairs3; + keyValuePairs1 = await this.Validate(); + keyValuePairs2.AddRange(keyValuePairs1); + keyValuePairs2 = null; + if (keyValuePairs3.Count <= 0) + { + cliente = await this._clienteServico.Save(this.SelectedCliente, false); + keyValuePairs = null; + } + else + { + keyValuePairs = keyValuePairs3; + } + variable = null; + return keyValuePairs; + } + + public async Task SelecionaCliente(Cliente cliente) + { + DateTime? nullable; + TipoDocumento? documentoPrincipal = cliente.get_DocumentoPrincipal(); + if (documentoPrincipal.HasValue) + { + TipoDocumento valueOrDefault = documentoPrincipal.GetValueOrDefault(); + if (valueOrDefault == 1) + { + this.DocumentoPrincipal = cliente.get_Rne(); + goto Label0; + } + else + { + if (valueOrDefault != 2) + { + goto Label1; + } + this.DocumentoPrincipal = cliente.get_Cei(); + goto Label0; + } + } + Label1: + this.DocumentoPrincipal = cliente.get_Documento(); + cliente.set_DocumentoPrincipal(new TipoDocumento?(0)); + Label0: + CriticaApoliceViewModel criticaApoliceViewModel = this; + nullable = (cliente == null || !cliente.get_Nascimento().HasValue ? new DateTime?(Funcoes.GetNetworkTime().Date) : cliente.get_Nascimento()); + criticaApoliceViewModel.NascimentoCritica = nullable; + this.SelectedCliente = cliente; + this.SelectedCliente.Initialize(); + this.Telefones = await this._clienteServico.BuscarTelefonesAsync(this.SelectedCliente.get_Id()); + if (this.Telefones.Count == 0) + { + ObservableCollection telefones = this.Telefones; + ClienteTelefone clienteTelefone = new ClienteTelefone(); + clienteTelefone.set_Cliente(this.SelectedCliente); + telefones.Add(clienteTelefone); + } + List list = this.Telefones.ToList(); + list.ForEach((ClienteTelefone x) => x.Initialize()); + this.Emails = await this._clienteServico.BuscarEmailsAsync(this.SelectedCliente.get_Id()); + if (this.Emails.Count == 0) + { + ObservableCollection emails = this.Emails; + ClienteEmail clienteEmail = new ClienteEmail(); + clienteEmail.set_Cliente(this.SelectedCliente); + emails.Add(clienteEmail); + } + List clienteEmails = this.Emails.ToList(); + clienteEmails.ForEach((ClienteEmail x) => x.Initialize()); + } + + public async Task SelecionaCritica(CriticaApolice critica) + { + DateTime networkTime; + DateTime? nullable; + DateTime? remessa; + TipoSeguro? nullable1; + if (critica != null && !this.IsLoading) + { + this.IsLoading = true; + base.Loading(true); + CriticaApolice criticaApolouse = critica; + Documento documento = await this.Servico.BuscarApoliceAsync(critica.get_Documento().get_Id(), false, false); + criticaApolouse.set_Documento(documento); + criticaApolouse = null; + base.SelectedDocumento = null; + base.Repasses = null; + base.Parcelas = null; + base.Pagamentos = null; + base.SelectedParcela = null; + base.SelectedPagamento = null; + this.SelectedCritica = critica; + await base.SelecionaDocumento(critica.get_Documento()); + CriticaApoliceViewModel criticaApoliceViewModel = this; + if (critica.get_Documento() == null || !critica.get_Documento().get_Emissao().HasValue) + { + networkTime = Funcoes.GetNetworkTime(); + nullable = new DateTime?(networkTime.Date); + } + else + { + nullable = critica.get_Documento().get_Emissao(); + } + criticaApoliceViewModel.EmissaoCritica = nullable; + CriticaApoliceViewModel criticaApoliceViewModel1 = this; + if (critica.get_Documento() == null || !critica.get_Documento().get_Remessa().HasValue) + { + networkTime = Funcoes.GetNetworkTime(); + remessa = new DateTime?(networkTime.Date); + } + else + { + remessa = critica.get_Documento().get_Remessa(); + } + criticaApoliceViewModel1.TransmissaoCritica = remessa; + CriticaApoliceViewModel criticaApoliceViewModel2 = this; + List configuracoes = Recursos.Configuracoes; + if (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 3)) + { + nullable1 = new TipoSeguro?(base.SelectedDocumento.get_Situacao()); + } + else + { + nullable1 = null; + } + criticaApoliceViewModel2.StatusDocumento = nullable1; + if (base.SelectedDocumento != null) + { + TipoRecebimento? tipoRecebimento = base.SelectedDocumento.get_TipoRecebimento(); + this.IsParcela = tipoRecebimento.GetValueOrDefault() == 1; + await this.SelecionaCliente(base.SelectedDocumento.get_Controle().get_Cliente()); + await this.SelecionaItens(base.SelectedDocumento.get_Controle().get_Id()); + this.HasChange = false; + base.Loading(false); + this.IsLoading = false; + } + else + { + this.IsParcela = true; + this.HasChange = false; + base.Loading(false); + } + } + } + + public async Task SelecionaItens(long id) + { + this.Itens = await this._itemServico.BuscarItens(id, 0); + } + + public async Task SelecionaUsuario() + { + this.IsLoading = true; + List configuracoes = Recursos.Configuracoes; + if (configuracoes.Any((ConfiguracaoSistema x) => { + if (x.get_Configuracao() == 38) + { + return true; + } + return x.get_Configuracao() == 43; + }) && Recursos.Usuario.get_Id() != 0) + { + this.Vinculos = await base.VerificaVinculoVendedor(Recursos.Usuario); + } + this.IsLoading = false; + } + + private async Task>> Validate() + { + List clientes; + List> keyValuePairs = new List>(); + bool flag = !string.IsNullOrEmpty(this.SelectedCliente.get_Nome()); + TipoDocumento? documentoPrincipal = this.SelectedCliente.get_DocumentoPrincipal(); + if (documentoPrincipal.HasValue) + { + switch (documentoPrincipal.GetValueOrDefault()) + { + case 0: + { + if (ValidationHelper.ValidateDocument(this.SelectedCliente.get_Documento())) + { + break; + } + flag = false; + break; + } + case 1: + { + if (ValidationHelper.ValidateRne(this.SelectedCliente.get_Rne())) + { + break; + } + flag = false; + break; + } + case 2: + { + if (ValidationHelper.ValidateCei(this.SelectedCliente.get_Cei())) + { + break; + } + flag = false; + break; + } + } + } + if (!ValidationHelper.ValidateDocument(this.SelectedCliente.get_Documento())) + { + clientes = new List(); + } + else + { + clientes = await (new ClienteServico()).BuscarClientePorDocumento(this.SelectedCliente.get_Documento()); + } + List clientes1 = clientes; + string nome = ""; + if (clientes1.Count > 0) + { + clientes1.ForEach((Cliente x) => { + if (x.get_Id() == this.SelectedCliente.get_Id()) + { + return; + } + if (this.SelectedCliente.get_IdEmpresa() != x.get_IdEmpresa()) + { + return; + } + if (!string.IsNullOrEmpty(this.SelectedCliente.get_Documento()) && x.get_Documento() == this.SelectedCliente.get_Documento()) + { + flag = false; + nome = x.get_Nome(); + } + }); + } + if (!flag) + { + keyValuePairs.Add(new KeyValuePair("Documento", string.Concat("O DOCUMENTO JÁ ESTÁ CADASTRADO PARA O CLIENTE ", nome, "."))); + } + if (this.SelectedCliente.get_Telefones() == null || this.SelectedCliente.get_Telefones().Count == 0) + { + keyValuePairs.Add(new KeyValuePair("Telefones", "NECESSITA-SE AO MENOS UM TELEFONE VÁLIDO.")); + } + List configuracoes = Recursos.Configuracoes; + if (configuracoes.All((ConfiguracaoSistema x) => x.get_Configuracao() != 29) && (this.SelectedCliente.get_Emails() == null || this.SelectedCliente.get_Emails().Count == 0)) + { + keyValuePairs.Add(new KeyValuePair("Emails", "NECESSITA-SE AO MENOS UM E-MAIL VÁLIDO.")); + } + List> keyValuePairs1 = keyValuePairs; + keyValuePairs = null; + return keyValuePairs1; + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AeronauticoViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AeronauticoViewModel.cs new file mode 100644 index 0000000..ded661f --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AeronauticoViewModel.cs @@ -0,0 +1,554 @@ +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class AeronauticoViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly AeronauticoServico _servico; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + private bool _aero = true; + + private string _serie = "REGISTRO"; + + private string _prefixo = "PREFIXO"; + + private string _marinaAero = "AERÓDROMO"; + + public bool Aero + { + get + { + return this._aero; + } + set + { + this._aero = value; + base.OnPropertyChanged("Aero"); + } + } + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public bool Invoke + { + get; + set; + } + + private Item ItemSelecionado + { + get; + set; + } + + public string MarinaAero + { + get + { + return this._marinaAero; + } + set + { + this._marinaAero = value; + base.OnPropertyChanged("MarinaAero"); + } + } + + public string Prefixo + { + get + { + return this._prefixo; + } + set + { + this._prefixo = value; + base.OnPropertyChanged("Prefixo"); + } + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public string Serie + { + get + { + return this._serie; + } + set + { + this._serie = value; + base.OnPropertyChanged("Serie"); + } + } + + public AeronauticoViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new AeronauticoServico(); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + } + + public async void CancelarAlteracao() + { + base.Loading(true); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public void Descarregar() + { + this.Cobertura = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + public async Task Incluir(bool substituir = false) + { + int? ordem; + List coberturas; + long? nullable; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + Item item2 = item; + Aeronautico aeronautico = new Aeronautico(); + aeronautico.set_Tipo(1); + item2.set_Aeronautico(aeronautico); + Item item3 = item; + if (substituir) + { + nullable = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item3.set_Substituicao(nullable); + Item item4 = item; + item1 = null; + item = null; + ordem = item4.get_Ordem(); + if (ordem.GetValueOrDefault() == 2) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item4 = null; + return; + } + } + bool valueOrDefault = substituir; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.SelectedItem = item4; + this.SelectedItem.get_Aeronautico().set_Item(item4); + } + else + { + this.SelectedItem.set_Id((long)0); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + } + ordem = item4.get_Ordem(); + int num = 1; + valueOrDefault = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item4 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Aeronautico().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + selectedItem.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + string str; + string str1; + string str2; + string str3; + this.SelectedItem.set_Descricao(string.Format("{0} - FABRICANTE: {1} - MODELO: {2}", this.SelectedItem.get_Aeronautico().get_Tipo(), this.SelectedItem.get_Aeronautico().get_Fabricante(), this.SelectedItem.get_Aeronautico().get_Modelo())); + List> keyValuePairs1 = this.SelectedItem.Validate(); + if (keyValuePairs1.Count <= 0) + { + Item selectedItem = this.SelectedItem; + selectedItem.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + selectedItem = null; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str = ""; + } + else if (base.Mantido) + { + str = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str4 = str; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str4); + } + str1 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str3 = str1; + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str2 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str5 = str2; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str5); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str6 = string.Concat(str3, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str6, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str3 = null; + return keyValuePairs; + } + + private async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + List nums = new List() + { + (long)13 + }; + if (nums.Contains(this.Ramo.get_Id())) + { + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + Aeronautico aeronautico = await this._itemServico.BuscaAeronautico(item.get_Id()); + item1.set_Aeronautico(aeronautico); + item1 = null; + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + base.Loading(false); + } + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.Incluir(true); + } + + public void UpdateAero() + { + this.Aero = ValidationHelper.GetCategory(this.SelectedItem.get_Aeronautico().get_Tipo()) == "Aero"; + this.Serie = (this.Aero ? "REGISTRO" : "SÉRIE"); + this.Prefixo = (this.Aero ? "PREFIXO" : "NOME"); + this.MarinaAero = (this.Aero ? "AERÓDROMO" : "MARINA"); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AutoViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AutoViewModel.cs new file mode 100644 index 0000000..735d4a7 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/AutoViewModel.cs @@ -0,0 +1,3018 @@ +using ClosedXML.Excel; +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Helpers; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Configuracoes; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using Gestor.Model.Helper; +using Microsoft.CSharp.RuntimeBinder; +using Microsoft.Office.Interop.Excel; +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Data; +using System.Diagnostics; +using System.Globalization; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Forms; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class AutoViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly AutoServico _servico; + + private bool _allowAlterarExcluir = true; + + private Visibility _isVisiblePorcentagemReferencia = Visibility.Collapsed; + + private Visibility _isVisibleValorDeterminado = Visibility.Collapsed; + + private object _cobertura; + + private List _combustivel = ((Gestor.Model.Common.Combustivel[])Enum.GetValues(typeof(Gestor.Model.Common.Combustivel))).OrderBy(new Func((Gestor.Model.Common.Combustivel x) => Gestor.Common.Validation.ValidationHelper.GetCategory(x))).ToList(); + + private Item _selectedItem = new Item(); + + private List _fabricantes; + + private Fabricante _selectedFabricante; + + private string _codigoItem; + + private Gestor.Model.Common.Categoria? _categocia; + + private Gestor.Model.Common.UsoVeiculo? _usoVeiculo; + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public Gestor.Model.Common.Categoria? Categoria + { + get + { + return this._categocia; + } + set + { + bool auto; + this._categocia = value; + Item selectedItem = this.SelectedItem; + if (selectedItem != null) + { + auto = selectedItem.get_Auto(); + } + else + { + auto = false; + } + if (auto) + { + this.SelectedItem.get_Auto().set_Categoria(value); + } + base.OnPropertyChanged("Categoria"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public List Combustivel + { + get + { + return this._combustivel; + } + set + { + this._combustivel = value; + base.OnPropertyChanged("Combustivel"); + } + } + + public List Fabricantes + { + get + { + return this._fabricantes; + } + set + { + this._fabricantes = value; + base.OnPropertyChanged("Fabricantes"); + } + } + + public bool Invoke + { + get; + set; + } + + public Visibility IsVisiblePorcentagemReferencia + { + get + { + return this._isVisiblePorcentagemReferencia; + } + set + { + this._isVisiblePorcentagemReferencia = value; + base.OnPropertyChanged("IsVisiblePorcentagemReferencia"); + } + } + + public Visibility IsVisibleValorDeterminado + { + get + { + return this._isVisibleValorDeterminado; + } + set + { + this._isVisibleValorDeterminado = value; + base.OnPropertyChanged("IsVisibleValorDeterminado"); + } + } + + private Item ItemSelecionado + { + get; + set; + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Fabricante SelectedFabricante + { + get + { + return this._selectedFabricante; + } + set + { + this._selectedFabricante = value; + base.OnPropertyChanged("SelectedFabricante"); + } + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public Gestor.Model.Common.UsoVeiculo? UsoVeiculo + { + get + { + return this._usoVeiculo; + } + set + { + bool auto; + if (value.GetValueOrDefault() == 2 || value.GetValueOrDefault() == 3) + { + this.SelectedItem.get_Auto().set_Categoria(new Gestor.Model.Common.Categoria?(3)); + this.Categoria = new Gestor.Model.Common.Categoria?(3); + } + Item selectedItem = this.SelectedItem; + if (selectedItem != null) + { + auto = selectedItem.get_Auto(); + } + else + { + auto = false; + } + if (auto && value.HasValue) + { + this.SelectedItem.get_Auto().set_UsoVeiculo(value); + } + this._usoVeiculo = value; + base.OnPropertyChanged("UsoVeiculo"); + } + } + + public AutoViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new AutoServico(); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + } + + public void Atualiza(string valorSelecionado) + { + if (valorSelecionado == "MERCADO") + { + this.IsVisiblePorcentagemReferencia = Visibility.Visible; + this.IsVisibleValorDeterminado = Visibility.Collapsed; + return; + } + this.IsVisiblePorcentagemReferencia = Visibility.Collapsed; + this.IsVisibleValorDeterminado = Visibility.Visible; + } + + public async void BaixarXls() + { + char chr; + object obj; + object obj1; + object obj2; + object obj3; + object obj4; + object obj5; + object obj6; + object obj7; + object obj8; + object obj9; + object obj10; + object obj11; + object obj12; + object obj13; + object obj14; + object obj15; + object obj16; + object obj17; + object obj18; + object obj19; + object obj20; + object obj21; + object obj22; + object obj23; + object obj24; + object obj25; + object obj26; + object obj27; + object obj28; + object obj29; + object obj30; + object obj31; + object obj32; + object obj33; + object obj34; + object obj35; + object obj36; + object obj37; + object obj38; + object obj39; + object obj40; + object obj41; + object obj42; + object obj43; + object obj44; + object obj45; + object obj46; + object obj47; + object obj48; + object obj49; + object obj50; + object obj51; + object obj52; + object obj53; + object obj54; + object obj55; + object obj56; + object obj57; + object obj58; + object obj59; + object obj60; + object obj61; + object obj62; + object obj63; + object obj64; + object obj65; + object obj66; + object obj67; + object obj68; + object obj69; + object obj70; + object obj71; + object obj72; + using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog()) + { + folderBrowserDialog.SelectedPath = Environment.SpecialFolder.Desktop.ToString(); + if (folderBrowserDialog.ShowDialog() == DialogResult.OK && !string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath)) + { + XLWorkbook xLWorkbook = new XLWorkbook(); + DataTable dataTable = new DataTable(); + List strs = new List() + { + "placa", + "fabricante", + "modelo", + "fipe", + "chassi", + "anofabricacao", + "anomodelo", + "cor", + "categoria", + "combustivel", + "zerokm", + "renavam", + "capacidade", + "portas", + "bonus", + "ceppernoite", + "ci", + "financiado", + "correcao", + "isencao", + "pcd", + "cepcirculacao", + "tipocobertura", + "porcentagemreferencia", + "tabelareferencia", + "valordeterminado", + "observacao", + "pr casco", + "fr casco", + "lmi casco", + "obs casco", + "pr dm", + "fr dm", + "lmi dm", + "obs dm", + "pr dc", + "fr dc", + "lmi dc", + "obs dc", + "pr morte", + "fr morte", + "lmi morte", + "obs morte", + "pr invalidez", + "fr invalidez", + "lmi invalidez", + "obs invalidez", + "pr carro reserva", + "fr carro reserva", + "lmi carro reserva", + "obs carro reserva", + "pr vidros", + "fr vidros", + "lmi vidros", + "obs vidros", + "pr carroceria", + "fr carroceria", + "lmi carroceria", + "obs carroceria", + "pr Ass 24Horas", + "fr Ass 24Horas", + "lmi Ass 24Horas", + "obs Ass 24Horas", + "pr Danos Morais", + "fr Danos Morais", + "lmi Danos Morais", + "obs Danos Morais", + "pr app", + "fr app", + "lmi app", + "obs app", + "pr equipamentos", + "fr equipamentos", + "lmi equipamentos", + "obs equipamentos" + }; + List strs1 = strs; + List> lists = new List>(); + List strs2 = new List() + { + "XXX0X00", + "FORD", + "MODELO", + "000000-0", + "75F 8C33MP Y2 W12900", + "2000", + "2001", + "PRETO", + "PASSEIO", + "FLEX", + "SIM", + "00000000000", + "5", + "5", + "100", + "00.000-000", + "000000", + "NÃO", + "MERCADO", + "SEM", + "NÃO", + "00.000-000", + "COMPREENSIVA", + "100", + "FIPE", + "", + "OBSERVAÇÕES", + "1000", + "2000", + "3000", + "teste obs", + "", + "", + "", + "", + "2000", + "3000", + "4000", + "teste obs", + "100000", + "200000", + "300000", + "teste obs", + "2000", + "3000", + "4000", + "teste obs", + "", + "", + "", + "", + "1000", + "2000", + "3000", + "teste obs", + "2000", + "3000", + "4000", + "teste obs", + "", + "", + "", + "", + "1000", + "2000", + "3000", + "teste obs", + "", + "", + "", + "", + "2000", + "3000", + "4000", + "teste obs", + "1000", + "2000", + "3000", + "teste obs" + }; + lists.Add(strs2); + List strs3 = new List() + { + "XXX0X01", + "CHEVROLET", + "MODELO", + "000000-1", + "4EL ZBE75H B5 A65693", + "2000", + "2001", + "VERDE", + "PICKUP", + "GASOLINA/ÁLCOOL/GNV", + "NÃO", + "00000000000", + "5", + "2", + "100", + "00.000-000", + "000000", + "SIM", + "DETERMINADO", + "IPI E ICMS", + "NÃO", + "00.000-000", + "INCÊNDIO E ROUBO/FURTO", + "100", + "MOLICAR", + "19767,34", + "OBSERVAÇÕES", + "1000", + "2000", + "3000", + "teste obs", + "", + "", + "", + "", + "2000", + "3000", + "4000", + "teste obs", + "100000", + "200000", + "300000", + "teste obs", + "2000", + "3000", + "4000", + "teste obs", + "", + "", + "", + "", + "1000", + "2000", + "3000", + "teste obs", + "2000", + "3000", + "4000", + "teste obs", + "", + "", + "", + "", + "1000", + "2000", + "3000", + "teste obs", + "", + "", + "", + "", + "2000", + "3000", + "4000", + "teste obs", + "1000", + "2000", + "3000", + "teste obs" + }; + lists.Add(strs3); + List> lists1 = lists; + List strs4 = new List() + { + "BRANCO", + "CINZA", + "PRATA", + "VERMELHO", + "AMARELO", + "OURO", + "LARANJA", + "ROSA", + "VERDE", + "AZUL", + "VINHO", + "MARROM", + "BEGE", + "DOURADO", + "OUTROS" + }; + List strs5 = strs4; + List strs6 = new List() + { + "PICKUP", + "OUTROS", + "PASSEIO", + "CAMINHÃO", + "CAMINHONETE", + "ÔNIBUS", + "UTILITÁRIO", + "CARGA", + "MOTOCICLETA", + "TAXI", + "UBER", + "REBOCADOR", + "REBOQUE/SEMI REBOQUE" + }; + List strs7 = strs6; + List strs8 = new List() + { + "ÁLCOOL", + "GASOLINA", + "DIESEL", + "FLEX", + "GNV", + "OUTROS", + "GASOLINA/GNV", + "GASOLINA/ÁLCOOL/GNV", + "GASOLINA/ELÉTRICO", + "HÍBRIDO", + "ELÉTRICO", + "GASOLINA/ÁLCOOL/ELÉTRICO" + }; + List strs9 = strs8; + List strs10 = new List() + { + "MERCADO", + "DETERMINADO" + }; + List strs11 = new List() + { + "SEM ISENÇÃO", + "ICMS", + "IPI", + "IPI E ICMS" + }; + List strs12 = new List() + { + "COMPREENSIVA", + "INCÊNDIO E ROUBO/FURTO", + "DANOS A TERCEIROS", + "PASSAGEIROS", + "ROUBO/FURTO" + }; + List strs13 = new List() + { + "MOLICAR", + "FIPE" + }; + List strs14 = new List() + { + "SIM", + "NÃO" + }; + foreach (string str in strs1) + { + DataColumn dataColumn = new DataColumn() + { + DataType = Type.GetType("System.String"), + ColumnName = str + }; + dataTable.Columns.Add(dataColumn); + } + foreach (List strs15 in lists1) + { + DataRow item = dataTable.NewRow(); + foreach (string str1 in strs1) + { + item[str1] = strs15[strs1.IndexOf(str1)]; + } + dataTable.Rows.Add(item); + } + xLWorkbook.get_Worksheets().Add(dataTable, "EXEMPLO AUTO EXCEL"); + xLWorkbook.SaveAs(string.Concat(folderBrowserDialog.SelectedPath, "\\EXEMPLO AUTO EXCEL.xlsx")); + xLWorkbook = new XLWorkbook(); + dataTable = new DataTable(); + foreach (string str2 in strs1) + { + DataColumn dataColumn1 = new DataColumn() + { + DataType = Type.GetType("System.String"), + ColumnName = str2 + }; + dataTable.Columns.Add(dataColumn1); + } + foreach (string str3 in strs5) + { + DataRow dataRow = dataTable.NewRow(); + Label2: + foreach (string str4 in strs1) + { + int num = strs5.IndexOf(str3); + if (str4 == null) + { + continue; + } + switch (str4.Length) + { + case 2: + { + if (str4 == "ci") + { + DataRow dataRow1 = dataRow; + string str5 = str4; + obj = (num == 0 ? "000000" : ""); + dataRow1[str5] = obj; + continue; + } + else + { + continue; + } + } + case 3: + { + chr = str4[0]; + if (chr != 'c') + { + if (chr == 'p') + { + if (str4 == "pcd") + { + break; + } + continue; + } + else + { + continue; + } + } + else if (str4 == "cor") + { + DataRow dataRow2 = dataRow; + string str6 = str4; + obj1 = (strs5.Count >= num + 1 ? strs5[num] : ""); + dataRow2[str6] = obj1; + continue; + } + else + { + continue; + } + } + case 4: + { + if (str4 == "fipe") + { + DataRow dataRow3 = dataRow; + string str7 = str4; + obj3 = (num == 0 ? "000000-0" : ""); + dataRow3[str7] = obj3; + continue; + } + else + { + continue; + } + } + case 5: + { + chr = str4[4]; + if (chr > 'c') + { + if (chr != 'm') + { + if (chr != 's') + { + continue; + } + else if (str4 == "bonus") + { + DataRow dataRow4 = dataRow; + string str8 = str4; + obj6 = (num == 0 ? "0" : ""); + dataRow4[str8] = obj6; + continue; + } + else + { + continue; + } + } + else if (str4 == "pr dm") + { + DataRow dataRow5 = dataRow; + string str9 = str4; + obj4 = (num == 0 ? "0" : ""); + dataRow5[str9] = obj4; + continue; + } + else if (str4 == "fr dm") + { + DataRow dataRow6 = dataRow; + string str10 = str4; + obj5 = (num == 0 ? "0" : ""); + dataRow6[str10] = obj5; + continue; + } + else + { + continue; + } + } + else if (chr == 'a') + { + if (str4 == "placa") + { + DataRow dataRow7 = dataRow; + string str11 = str4; + obj7 = (num == 0 ? "XXX0X00" : ""); + dataRow7[str11] = obj7; + continue; + } + else + { + continue; + } + } + else if (chr != 'c') + { + continue; + } + else if (str4 == "pr dc") + { + DataRow dataRow8 = dataRow; + string str12 = str4; + obj8 = (num == 0 ? "0" : ""); + dataRow8[str12] = obj8; + continue; + } + else if (str4 == "fr dc") + { + DataRow dataRow9 = dataRow; + string str13 = str4; + obj9 = (num == 0 ? "0" : ""); + dataRow9[str13] = obj9; + continue; + } + else + { + continue; + } + } + case 6: + { + chr = str4[0]; + if (chr > 'f') + { + switch (chr) + { + case 'l': + { + if (str4 == "lmi dm") + { + DataRow dataRow10 = dataRow; + string str14 = str4; + obj10 = (num == 0 ? "0" : ""); + dataRow10[str14] = obj10; + continue; + } + else if (str4 == "lmi dc") + { + DataRow dataRow11 = dataRow; + string str15 = str4; + obj11 = (num == 0 ? "0" : ""); + dataRow11[str15] = obj11; + continue; + } + else + { + continue; + } + } + case 'm': + { + if (str4 == "modelo") + { + DataRow dataRow12 = dataRow; + string str16 = str4; + obj12 = (num == 0 ? "MODELO" : ""); + dataRow12[str16] = obj12; + continue; + } + else + { + continue; + } + } + case 'n': + { + continue; + } + case 'o': + { + if (str4 == "obs dm") + { + DataRow dataRow13 = dataRow; + string str17 = str4; + obj13 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow13[str17] = obj13; + continue; + } + else if (str4 == "obs dc") + { + DataRow dataRow14 = dataRow; + string str18 = str4; + obj14 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow14[str18] = obj14; + continue; + } + else + { + continue; + } + } + case 'p': + { + if (str4 == "portas") + { + DataRow dataRow15 = dataRow; + string str19 = str4; + obj15 = (num == 0 ? "00" : ""); + dataRow15[str19] = obj15; + continue; + } + else if (str4 == "pr app") + { + DataRow dataRow16 = dataRow; + string str20 = str4; + obj16 = (num == 0 ? "0" : ""); + dataRow16[str20] = obj16; + continue; + } + else + { + continue; + } + } + default: + { + if (chr == 'z') + { + if (str4 == "zerokm") + { + goto Label0; + } + continue; + } + else + { + continue; + } + } + } + } + else if (chr == 'c') + { + if (str4 == "chassi") + { + DataRow dataRow17 = dataRow; + string str21 = str4; + obj17 = (num == 0 ? "XXX XXXXXX XX XXXXXX" : ""); + dataRow17[str21] = obj17; + continue; + } + else + { + continue; + } + } + else if (chr != 'f') + { + continue; + } + else if (str4 == "fr app") + { + DataRow dataRow18 = dataRow; + string str22 = str4; + obj18 = (num == 0 ? "0" : ""); + dataRow18[str22] = obj18; + continue; + } + else + { + continue; + } + break; + } + case 7: + { + chr = str4[0]; + if (chr <= 'l') + { + if (chr == 'i') + { + if (str4 == "isencao") + { + DataRow dataRow19 = dataRow; + string str23 = str4; + obj21 = (strs11.Count >= num + 1 ? strs11[num] : ""); + dataRow19[str23] = obj21; + continue; + } + else + { + continue; + } + } + else if (chr != 'l') + { + continue; + } + else if (str4 == "lmi app") + { + DataRow dataRow20 = dataRow; + string str24 = str4; + obj22 = (num == 0 ? "0" : ""); + dataRow20[str24] = obj22; + continue; + } + else + { + continue; + } + } + else if (chr == 'o') + { + if (str4 == "obs app") + { + DataRow dataRow21 = dataRow; + string str25 = str4; + obj19 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow21[str25] = obj19; + continue; + } + else + { + continue; + } + } + else if (chr != 'r') + { + continue; + } + else if (str4 == "renavam") + { + DataRow dataRow22 = dataRow; + string str26 = str4; + obj20 = (num == 0 ? "00000000000" : ""); + dataRow22[str26] = obj20; + continue; + } + else + { + continue; + } + } + case 8: + { + chr = str4[0]; + if (chr == 'c') + { + if (str4 == "correcao") + { + DataRow dataRow23 = dataRow; + string str27 = str4; + obj23 = (strs10.Count >= num + 1 ? strs10[num] : ""); + dataRow23[str27] = obj23; + continue; + } + else + { + continue; + } + } + else if (chr == 'f') + { + if (str4 == "fr casco") + { + DataRow dataRow24 = dataRow; + string str28 = str4; + obj24 = (num == 0 ? "0" : ""); + dataRow24[str28] = obj24; + continue; + } + else if (str4 == "fr morte") + { + DataRow dataRow25 = dataRow; + string str29 = str4; + obj25 = (num == 0 ? "0" : ""); + dataRow25[str29] = obj25; + continue; + } + else + { + continue; + } + } + else if (chr != 'p') + { + continue; + } + else if (str4 == "pr casco") + { + DataRow dataRow26 = dataRow; + string str30 = str4; + obj26 = (num == 0 ? "0" : ""); + dataRow26[str30] = obj26; + continue; + } + else if (str4 == "pr morte") + { + DataRow dataRow27 = dataRow; + string str31 = str4; + obj27 = (num == 0 ? "0" : ""); + dataRow27[str31] = obj27; + continue; + } + else + { + continue; + } + } + case 9: + { + chr = str4[0]; + if (chr > 'c') + { + if (chr != 'f') + { + switch (chr) + { + case 'l': + { + if (str4 == "lmi casco") + { + DataRow dataRow28 = dataRow; + string str32 = str4; + obj29 = (num == 0 ? "0" : ""); + dataRow28[str32] = obj29; + continue; + } + else if (str4 == "lmi morte") + { + DataRow dataRow29 = dataRow; + string str33 = str4; + obj30 = (num == 0 ? "0" : ""); + dataRow29[str33] = obj30; + continue; + } + else + { + continue; + } + } + case 'o': + { + if (str4 == "obs casco") + { + DataRow dataRow30 = dataRow; + string str34 = str4; + obj31 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow30[str34] = obj31; + continue; + } + else if (str4 == "obs morte") + { + DataRow dataRow31 = dataRow; + string str35 = str4; + obj32 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow31[str35] = obj32; + continue; + } + else + { + continue; + } + } + case 'p': + { + if (str4 == "pr vidros") + { + DataRow dataRow32 = dataRow; + string str36 = str4; + obj33 = (num == 0 ? "0" : ""); + dataRow32[str36] = obj33; + continue; + } + else + { + continue; + } + } + default: + { + continue; + } + } + } + else if (str4 == "fr vidros") + { + DataRow dataRow33 = dataRow; + string str37 = str4; + obj28 = (num == 0 ? "0" : ""); + dataRow33[str37] = obj28; + continue; + } + else + { + continue; + } + } + else if (chr == 'a') + { + if (str4 == "anomodelo") + { + DataRow dataRow34 = dataRow; + string str38 = str4; + obj34 = (num == 0 ? "0000" : ""); + dataRow34[str38] = obj34; + continue; + } + else + { + continue; + } + } + else if (chr != 'c') + { + continue; + } + else if (str4 == "categoria") + { + DataRow dataRow35 = dataRow; + string str39 = str4; + obj35 = (strs7.Count >= num + 1 ? strs7[num] : ""); + dataRow35[str39] = obj35; + continue; + } + else + { + continue; + } + break; + } + case 10: + { + chr = str4[2]; + if (chr <= 'i') + { + if (chr == 'b') + { + if (str4 == "fabricante") + { + DataRow dataRow36 = dataRow; + string str40 = str4; + obj39 = (num == 0 ? "FABRICANTE" : ""); + dataRow36[str40] = obj39; + continue; + } + else + { + continue; + } + } + else if (chr != 'i') + { + continue; + } + else if (str4 == "lmi vidros") + { + DataRow dataRow37 = dataRow; + string str41 = str4; + obj40 = (num == 0 ? "0" : ""); + dataRow37[str41] = obj40; + continue; + } + else + { + continue; + } + } + else if (chr == 'n') + { + if (str4 == "financiado") + { + break; + } + continue; + } + else if (chr == 'p') + { + if (str4 == "capacidade") + { + DataRow dataRow38 = dataRow; + string str42 = str4; + obj36 = (num == 0 ? "000" : ""); + dataRow38[str42] = obj36; + continue; + } + else + { + continue; + } + } + else if (chr != 's') + { + continue; + } + else if (str4 == "observacao") + { + DataRow dataRow39 = dataRow; + string str43 = str4; + obj37 = (num == 0 ? "OBSERVAÇÕES" : ""); + dataRow39[str43] = obj37; + continue; + } + else if (str4 == "obs vidros") + { + DataRow dataRow40 = dataRow; + string str44 = str4; + obj38 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow40[str44] = obj38; + continue; + } + else + { + continue; + } + } + case 11: + { + chr = str4[1]; + if (chr == 'e') + { + if (str4 == "ceppernoite") + { + DataRow dataRow41 = dataRow; + string str45 = str4; + obj41 = (num == 0 ? "00.000-000" : ""); + dataRow41[str45] = obj41; + continue; + } + else + { + continue; + } + } + else if (chr != 'o') + { + continue; + } + else if (str4 == "combustivel") + { + DataRow dataRow42 = dataRow; + string str46 = str4; + obj42 = (strs9.Count >= num + 1 ? strs9[num] : ""); + dataRow42[str46] = obj42; + continue; + } + else + { + continue; + } + } + case 12: + { + chr = str4[0]; + if (chr == 'f') + { + if (str4 == "fr invalidez") + { + DataRow dataRow43 = dataRow; + string str47 = str4; + obj43 = (num == 0 ? "0" : ""); + dataRow43[str47] = obj43; + continue; + } + else + { + continue; + } + } + else if (chr != 'p') + { + continue; + } + else if (str4 == "pr invalidez") + { + DataRow dataRow44 = dataRow; + string str48 = str4; + obj44 = (num == 0 ? "0" : ""); + dataRow44[str48] = obj44; + continue; + } + else + { + continue; + } + } + case 13: + { + chr = str4[0]; + if (chr > 'c') + { + if (chr != 'f') + { + switch (chr) + { + case 'l': + { + if (str4 == "lmi invalidez") + { + DataRow dataRow45 = dataRow; + string str49 = str4; + obj46 = (num == 0 ? "0" : ""); + dataRow45[str49] = obj46; + continue; + } + else + { + continue; + } + } + case 'm': + case 'n': + { + continue; + } + case 'o': + { + if (str4 == "obs invalidez") + { + DataRow dataRow46 = dataRow; + string str50 = str4; + obj47 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow46[str50] = obj47; + continue; + } + else + { + continue; + } + } + case 'p': + { + if (str4 == "pr carroceria") + { + DataRow dataRow47 = dataRow; + string str51 = str4; + obj48 = (num == 0 ? "0" : ""); + dataRow47[str51] = obj48; + continue; + } + else + { + continue; + } + } + default: + { + if (chr == 't') + { + break; + } + else + { + goto Label2; + } + } + } + if (str4 == "tipocobertura") + { + DataRow dataRow48 = dataRow; + string str52 = str4; + obj49 = (strs12.Count >= num + 1 ? strs12[num] : ""); + dataRow48[str52] = obj49; + continue; + } + else + { + continue; + } + } + else if (str4 == "fr carroceria") + { + DataRow dataRow49 = dataRow; + string str53 = str4; + obj45 = (num == 0 ? "0" : ""); + dataRow49[str53] = obj45; + continue; + } + else + { + continue; + } + } + else if (chr == 'a') + { + if (str4 == "anofabricacao") + { + DataRow dataRow50 = dataRow; + string str54 = str4; + obj50 = (num == 0 ? "0000" : ""); + dataRow50[str54] = obj50; + continue; + } + else + { + continue; + } + } + else if (chr != 'c') + { + continue; + } + else if (str4 == "cepcirculacao") + { + DataRow dataRow51 = dataRow; + string str55 = str4; + obj51 = (num == 0 ? "00.000-000" : ""); + dataRow51[str55] = obj51; + continue; + } + else + { + continue; + } + } + case 14: + { + chr = str4[0]; + if (chr != 'f') + { + switch (chr) + { + case 'l': + { + if (str4 == "lmi carroceria") + { + DataRow dataRow52 = dataRow; + string str56 = str4; + obj53 = (num == 0 ? "0" : ""); + dataRow52[str56] = obj53; + continue; + } + else + { + continue; + } + } + case 'o': + { + if (str4 == "obs carroceria") + { + DataRow dataRow53 = dataRow; + string str57 = str4; + obj54 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow53[str57] = obj54; + continue; + } + else + { + continue; + } + } + case 'p': + { + if (str4 == "pr Ass 24Horas") + { + DataRow dataRow54 = dataRow; + string str58 = str4; + obj55 = (num == 0 ? "0" : ""); + dataRow54[str58] = obj55; + continue; + } + else + { + continue; + } + } + default: + { + continue; + } + } + } + else if (str4 == "fr Ass 24Horas") + { + DataRow dataRow55 = dataRow; + string str59 = str4; + obj52 = (num == 0 ? "0" : ""); + dataRow55[str59] = obj52; + continue; + } + else + { + continue; + } + break; + } + case 15: + { + chr = str4[0]; + if (chr != 'f') + { + switch (chr) + { + case 'l': + { + if (str4 == "lmi Ass 24Horas") + { + DataRow dataRow56 = dataRow; + string str60 = str4; + obj58 = (num == 0 ? "0" : ""); + dataRow56[str60] = obj58; + continue; + } + else + { + continue; + } + } + case 'o': + { + if (str4 == "obs Ass 24Horas") + { + DataRow dataRow57 = dataRow; + string str61 = str4; + obj59 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow57[str61] = obj59; + continue; + } + else + { + continue; + } + } + case 'p': + { + if (str4 == "pr Danos Morais") + { + DataRow dataRow58 = dataRow; + string str62 = str4; + obj60 = (num == 0 ? "0" : ""); + dataRow58[str62] = obj60; + continue; + } + else if (str4 == "pr equipamentos") + { + DataRow dataRow59 = dataRow; + string str63 = str4; + obj61 = (num == 0 ? "0" : ""); + dataRow59[str63] = obj61; + continue; + } + else + { + continue; + } + } + default: + { + continue; + } + } + } + else if (str4 == "fr Danos Morais") + { + DataRow dataRow60 = dataRow; + string str64 = str4; + obj56 = (num == 0 ? "0" : ""); + dataRow60[str64] = obj56; + continue; + } + else if (str4 == "fr equipamentos") + { + DataRow dataRow61 = dataRow; + string str65 = str4; + obj57 = (num == 0 ? "0" : ""); + dataRow61[str65] = obj57; + continue; + } + else + { + continue; + } + break; + } + case 16: + { + chr = str4[0]; + if (chr <= 'p') + { + if (chr != 'f') + { + switch (chr) + { + case 'l': + { + if (str4 == "lmi Danos Morais") + { + DataRow dataRow62 = dataRow; + string str66 = str4; + obj65 = (num == 0 ? "0" : ""); + dataRow62[str66] = obj65; + continue; + } + else if (str4 == "lmi equipamentos") + { + DataRow dataRow63 = dataRow; + string str67 = str4; + obj66 = (num == 0 ? "0" : ""); + dataRow63[str67] = obj66; + continue; + } + else + { + continue; + } + } + case 'o': + { + if (str4 == "obs Danos Morais") + { + DataRow dataRow64 = dataRow; + string str68 = str4; + obj67 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow64[str68] = obj67; + continue; + } + else if (str4 == "obs equipamentos") + { + DataRow dataRow65 = dataRow; + string str69 = str4; + obj68 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow65[str69] = obj68; + continue; + } + else + { + continue; + } + } + case 'p': + { + if (str4 == "pr carro reserva") + { + DataRow dataRow66 = dataRow; + string str70 = str4; + obj69 = (num == 0 ? "0" : ""); + dataRow66[str70] = obj69; + continue; + } + else + { + continue; + } + } + default: + { + continue; + } + } + } + else if (str4 == "fr carro reserva") + { + DataRow dataRow67 = dataRow; + string str71 = str4; + obj64 = (num == 0 ? "0" : ""); + dataRow67[str71] = obj64; + continue; + } + else + { + continue; + } + } + else if (chr == 't') + { + if (str4 == "tabelareferencia") + { + DataRow dataRow68 = dataRow; + string str72 = str4; + obj62 = (strs13.Count >= num + 1 ? strs13[num] : ""); + dataRow68[str72] = obj62; + continue; + } + else + { + continue; + } + } + else if (chr != 'v') + { + continue; + } + else if (str4 == "valordeterminado") + { + DataRow dataRow69 = dataRow; + string str73 = str4; + obj63 = (num == 0 ? "000000" : ""); + dataRow69[str73] = obj63; + continue; + } + else + { + continue; + } + break; + } + case 17: + { + chr = str4[0]; + if (chr == 'l') + { + if (str4 == "lmi carro reserva") + { + DataRow dataRow70 = dataRow; + string str74 = str4; + obj70 = (num == 0 ? "0" : ""); + dataRow70[str74] = obj70; + continue; + } + else + { + continue; + } + } + else if (chr != 'o') + { + continue; + } + else if (str4 == "obs carro reserva") + { + DataRow dataRow71 = dataRow; + string str75 = str4; + obj71 = (num == 0 ? "OBSERVAÇÃO" : ""); + dataRow71[str75] = obj71; + continue; + } + else + { + continue; + } + } + case 21: + { + if (str4 == "porcentagemreferencia") + { + DataRow dataRow72 = dataRow; + string str76 = str4; + obj72 = (num == 0 ? "000" : ""); + dataRow72[str76] = obj72; + continue; + } + else + { + continue; + } + } + default: + { + continue; + } + } + Label0: + DataRow dataRow73 = dataRow; + string str77 = str4; + obj2 = (strs14.Count >= num + 1 ? strs14[num] : ""); + dataRow73[str77] = obj2; + } + dataTable.Rows.Add(dataRow); + } + xLWorkbook.get_Worksheets().Add(dataTable, "VALORES PERMITIDOS AUTO EXCEL"); + xLWorkbook.SaveAs(string.Concat(folderBrowserDialog.SelectedPath, "\\VALORES PERMITIDOS AUTO EXCEL.xlsx")); + } + await base.ShowMessage(string.Concat("\"EXEMPLO AUTO EXCEL.xlsx\" E \"VALORES PERMITIDOS AUTO EXCEL.xlsx\"\nFORAM SALVOS EM \"", folderBrowserDialog.SelectedPath, "\""), "OK", "", false); + } + folderBrowserDialog = null; + return; + goto Label2; + } + + public async Task BuscaModelo(string fipe) + { + return await this._itemServico.BuscarModelo(fipe); + } + + public async void CancelarAlteracao() + { + base.Loading(true); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public List Coberturas(DataRow row) + { + char chr; + List coberturas = new List(); + foreach (DataColumn column in row.Table.Columns) + { + if (!Regex.IsMatch(column.ColumnName, "pr .+")) + { + continue; + } + string value = Regex.Match(column.ColumnName, "pr (.+)").Groups[1].Value; + if (value != "casco" && value != "dm" && value != "dc" && value != "morte" && value != "invalidez" && value != "carro reserva" && value != "vidros" && value != "carroceria" && value != "ass 24horas" && value != "danos morais" && value != "app" && value != "equipamentos") + { + continue; + } + int num = 0; + string str = ""; + if (value != null) + { + switch (value.Length) + { + case 2: + { + chr = value[1]; + if (chr == 'c') + { + if (value == "dc") + { + num = 3; + str = "Danos Corporais"; + break; + } + else + { + break; + } + } + else if (chr != 'm') + { + break; + } + else if (value == "dm") + { + num = 2; + str = "Danos Materiais"; + break; + } + else + { + break; + } + } + case 3: + { + if (value == "app") + { + num = 53; + str = "Acidentes Pessoais"; + break; + } + else + { + break; + } + } + case 5: + { + chr = value[0]; + if (chr == 'c') + { + if (value == "casco") + { + num = 1; + str = "Veiculo (Casco)"; + break; + } + else + { + break; + } + } + else if (chr != 'm') + { + break; + } + else if (value == "morte") + { + num = 4; + str = "Morte"; + break; + } + else + { + break; + } + } + case 6: + { + if (value == "vidros") + { + num = 6; + str = "Vidros"; + break; + } + else + { + break; + } + } + case 9: + { + if (value == "invalidez") + { + num = 5; + str = "Invalidez"; + break; + } + else + { + break; + } + } + case 10: + { + if (value == "carroceria") + { + num = 25; + str = "Carroceria"; + break; + } + else + { + break; + } + } + case 11: + { + if (value == "ass 24horas") + { + num = 19; + str = "Assistência (Guincho)"; + break; + } + else + { + break; + } + } + case 12: + { + chr = value[0]; + if (chr == 'd') + { + if (value == "danos morais") + { + num = 17; + str = "Danos Morais"; + break; + } + else + { + break; + } + } + else if (chr != 'e') + { + break; + } + else if (value == "equipamentos") + { + num = 54; + str = "Equipamentos"; + break; + } + else + { + break; + } + } + case 13: + { + if (value == "carro reserva") + { + num = 7; + str = "Carro Reserva"; + break; + } + else + { + break; + } + } + } + } + decimal num1 = (string.IsNullOrWhiteSpace(row.Field(string.Concat("pr ", value)).ToString()) ? decimal.Zero : Gestor.Model.Helper.ValidationHelper.ToDecimal(row.Field(string.Concat("pr ", value)).ToString(), "pt-BR")); + decimal num2 = (string.IsNullOrWhiteSpace(row.Field(string.Concat("lmi ", value)).ToString()) ? decimal.Zero : Gestor.Model.Helper.ValidationHelper.ToDecimal(row.Field(string.Concat("lmi ", value)).ToString(), "pt-BR")); + decimal num3 = (string.IsNullOrWhiteSpace(row.Field(string.Concat("fr ", value)).ToString()) ? decimal.Zero : Gestor.Model.Helper.ValidationHelper.ToDecimal(row.Field(string.Concat("fr ", value)).ToString(), "pt-BR")); + string str1 = (string.IsNullOrWhiteSpace(row.Field(string.Concat("obs ", value)).ToString()) ? "" : row.Field(string.Concat("obs ", value)).ToString()); + if (!(num2 > decimal.Zero) && !(num3 > decimal.Zero) && !(num1 > decimal.Zero)) + { + continue; + } + Gestor.Model.Domain.Seguros.Cobertura cobertura = new Gestor.Model.Domain.Seguros.Cobertura(); + CoberturaPadrao coberturaPadrao = new CoberturaPadrao(); + coberturaPadrao.set_Id((long)num); + cobertura.set_CoberturaPadrao(coberturaPadrao); + cobertura.set_Observacao(string.Concat(str, " - ", str1)); + cobertura.set_Premio(num1); + cobertura.set_Lmi(num2); + cobertura.set_Franquia(num3); + coberturas.Add(cobertura); + } + return coberturas; + } + + public void Descarregar() + { + this.Cobertura = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + public async Task>> ImportarXls() + { + List> keyValuePairs; + string fileName; + List> keyValuePairs1 = new List>(); + using (OpenFileDialog openFileDialog = new OpenFileDialog()) + { + openFileDialog.Filter = "Excel|*.xls;*.xlsx"; + openFileDialog.InitialDirectory = Environment.SpecialFolder.Desktop.ToString(); + if (DialogResult.OK == openFileDialog.ShowDialog()) + { + fileName = openFileDialog.FileName; + } + else + { + keyValuePairs1.Add(new KeyValuePair("EXCEL", "ERRO AO SELECIONAR DOCUMENTO")); + keyValuePairs = keyValuePairs1; + keyValuePairs1 = null; + return keyValuePairs; + } + } + try + { + List> tasks1 = await Task.Run>>(() => { + string upper; + Microsoft.Office.Interop.Excel.Application variable = (Microsoft.Office.Interop.Excel.Application)Activator.CreateInstance(Marshal.GetTypeFromCLSID(new Guid("00024500-0000-0000-C000-000000000046"))); + Workbook variable1 = variable.Workbooks.Open(fileName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); + List strs = new List() + { + "placa", + "fabricante", + "modelo", + "fipe", + "chassi", + "anofabricacao", + "anomodelo", + "cor", + "categoria", + "combustivel", + "zerokm", + "renavam", + "capacidade", + "portas", + "bonus", + "ceppernoite", + "ci", + "financiado", + "correcao", + "isencao", + "pcd", + "cepcirculacao", + "tipocobertura", + "porcentagemreferencia", + "tabelareferencia", + "valordeterminado", + "observacao", + "usoveiculos" + }; + List dataTables = new List(); + foreach (object worksheet in variable1.Worksheets) + { + DataTable dataTable = new DataTable(); + Microsoft.Office.Interop.Excel.Range usedRange = ((Worksheet)worksheet).UsedRange; + if (AutoViewModel.u003cu003eo__77.u003cu003ep__0 == null) + { + AutoViewModel.u003cu003eo__77.u003cu003ep__0 = CallSite>.Create(Binder.Convert(CSharpBinderFlags.None, typeof(object[,]), typeof(AutoViewModel))); + } + object[,] target = AutoViewModel.u003cu003eo__77.u003cu003ep__0.Target(AutoViewModel.u003cu003eo__77.u003cu003ep__0, usedRange.Value2); + int num1 = 0; + for (int i = 0; i <= usedRange.Columns.Count - 1; i++) + { + if (target[1, i + 1] != null) + { + DataColumn dataColumn = new DataColumn() + { + DataType = Type.GetType("System.String"), + ColumnName = Funcoes.RemoverAcentos(target[1, i + 1].ToString().ToLower()) + }; + dataTable.Columns.Add(dataColumn); + for (int j = 0; j <= usedRange.Rows.Count - 2; j++) + { + object obj = target[j + 2, i + 1]; + string str = obj as string; + if (str != null) + { + upper = Funcoes.RemoverAcentos(str).ToUpper(); + } + else if (!(obj is double)) + { + upper = (!(obj is bool) ? "" : ((bool)obj ? "1" : "0")); + } + else + { + double num2 = (double)obj; + upper = (!num2.ToString(CultureInfo.InvariantCulture).Contains("+") ? num2.ToString(CultureInfo.InvariantCulture) : "."); + } + if (i + num1 != 0) + { + dataTable.Rows[j][i + num1] = upper; + } + else + { + dataTable.Rows.Add(dataTable.NewRow()); + dataTable.Rows[j][i + num1] = upper; + } + } + } + else + { + num1--; + } + } + dataTables.Add(dataTable); + } + variable.Quit(); + List> tasks = new List>(); + foreach (DataTable dataTable1 in dataTables) + { + for (int k = dataTable1.Rows.Count - 1; k >= 0; k--) + { + object[] itemArray = dataTable1.Rows[k].ItemArray; + Func u003cu003e9_772 = AutoViewModel.u003cu003ec.u003cu003e9__77_2; + if (u003cu003e9_772 == null) + { + u003cu003e9_772 = (object item) => string.IsNullOrEmpty((item != null ? item.ToString() : null)); + AutoViewModel.u003cu003ec.u003cu003e9__77_2 = u003cu003e9_772; + } + if (((IEnumerable)itemArray).All(u003cu003e9_772)) + { + dataTable1.Rows.RemoveAt(k); + } + } + tasks.AddRange(dataTable1.AsEnumerable().ToList().Select>(async (DataRow x) => { + decimal num; + bool? nullable; + bool? nullable1; + bool? nullable2; + bool? nullable3; + bool? nullable4; + Item item2 = new Item(); + Item item1 = item2; + Auto auto = new Auto(); + auto.set_Placa((!dataTable1.Columns.Contains("placa") || string.IsNullOrWhiteSpace(x.Field("placa").ToString()) ? null : x.Field("placa").ToString().ToUpper())); + auto.set_AnoFabricacao((!dataTable1.Columns.Contains("anofabricacao") || string.IsNullOrWhiteSpace(x.Field("anofabricacao").ToString()) ? null : (new Regex("[^0-9]")).Replace(x.Field("anofabricacao").ToString(), ""))); + auto.set_AnoModelo((!dataTable1.Columns.Contains("anomodelo") || string.IsNullOrWhiteSpace(x.Field("anomodelo").ToString()) ? null : (new Regex("[^0-9]")).Replace(x.Field("anomodelo").ToString(), ""))); + auto.set_Bonus((!dataTable1.Columns.Contains("bonus") || string.IsNullOrWhiteSpace(x.Field("bonus").ToString()) ? null : new int?(int.Parse((new Regex("[^0-9]")).Replace(x.Field("bonus").ToString(), ""))))); + auto.set_Capacidade((!dataTable1.Columns.Contains("capacidade") || string.IsNullOrWhiteSpace(x.Field("capacidade").ToString()) ? null : (new Regex("[^0-9]")).Replace(x.Field("capacidade").ToString(), ""))); + auto.set_CepPernoite((!dataTable1.Columns.Contains("ceppernoite") || string.IsNullOrWhiteSpace(x.Field("ceppernoite").ToString()) ? Gestor.Common.Validation.ValidationHelper.FormatPostCode((new Regex("[^0-9]")).Replace(x.Field("cepcirculacao").ToString(), "")) : Gestor.Common.Validation.ValidationHelper.FormatPostCode((new Regex("[^0-9]")).Replace(x.Field("ceppernoite").ToString(), "")))); + auto.set_Chassi((!dataTable1.Columns.Contains("chassi") || string.IsNullOrWhiteSpace(x.Field("chassi").ToString()) ? null : x.Field("chassi").ToString())); + auto.set_Ci((!dataTable1.Columns.Contains("ci") || string.IsNullOrWhiteSpace(x.Field("ci").ToString()) ? null : (new Regex("[^0-9]")).Replace(x.Field("ci").ToString(), ""))); + auto.set_Observacao((!dataTable1.Columns.Contains("observacao") || string.IsNullOrWhiteSpace(x.Field("observacao").ToString()) ? null : x.Field("observacao").ToString())); + auto.set_Cor((!dataTable1.Columns.Contains("cor") || string.IsNullOrWhiteSpace(x.Field("cor").ToString()) ? null : Funcoes.GetCor(x.Field("cor").ToString().ToLower()))); + Auto auto1 = auto; + if (!dataTable1.Columns.Contains("financiado") || string.IsNullOrWhiteSpace(x.Field("financiado").ToString())) + { + nullable = null; + nullable1 = nullable; + } + else + { + nullable1 = new bool?(x.Field("financiado").ToString().ToLower() == "sim"); + } + auto1.set_Financiado(nullable1); + Auto auto2 = auto; + if (!dataTable1.Columns.Contains("zerokm") || string.IsNullOrWhiteSpace(x.Field("zerokm").ToString())) + { + nullable = null; + nullable2 = nullable; + } + else + { + nullable2 = new bool?(x.Field("zerokm").ToString().ToLower() == "sim"); + } + auto2.set_ZeroKm(nullable2); + auto.set_Combustivel((!dataTable1.Columns.Contains("combustivel") || string.IsNullOrWhiteSpace(x.Field("combustivel").ToString()) ? null : Funcoes.GetCombustivel(x.Field("combustivel").ToString().ToLower()))); + auto.set_Correcao((!dataTable1.Columns.Contains("correcao") || string.IsNullOrWhiteSpace(x.Field("correcao").ToString()) ? null : Funcoes.GetCorrecao(x.Field("correcao").ToString().ToLower()))); + auto.set_Fabricante((!dataTable1.Columns.Contains("fabricante") || string.IsNullOrWhiteSpace(x.Field("fabricante").ToString()) ? null : await Funcoes.GetFabricante(x.Field("fabricante").ToString().ToLower()))); + auto.set_Fipe((!dataTable1.Columns.Contains("fipe") || string.IsNullOrWhiteSpace(x.Field("fipe").ToString()) ? null : Gestor.Model.Helper.ValidationHelper.FormataFipe((new Regex("[^0-9]")).Replace(x.Field("fipe").ToString(), "")))); + auto.set_Isencao((!dataTable1.Columns.Contains("isencao") || string.IsNullOrWhiteSpace(x.Field("isencao").ToString()) ? null : Funcoes.GetIsencao(x.Field("isencao").ToString().ToLower()))); + auto.set_Modelo((!dataTable1.Columns.Contains("modelo") || string.IsNullOrWhiteSpace(x.Field("modelo").ToString()) ? null : x.Field("modelo").ToString())); + Auto auto3 = auto; + if (!dataTable1.Columns.Contains("pcd") || string.IsNullOrWhiteSpace(x.Field("pcd").ToString())) + { + nullable = null; + nullable3 = nullable; + } + else + { + nullable3 = new bool?(x.Field("pcd").ToString().ToLower() == "sim"); + } + auto3.set_Pcd(nullable3); + auto.set_PorcentagemReferencia((!dataTable1.Columns.Contains("porcentagemreferencia") || string.IsNullOrWhiteSpace(x.Field("porcentagemreferencia").ToString()) ? decimal.Zero : (decimal.TryParse(x.Field("porcentagemreferencia").ToString(), out num) ? decimal.Parse(x.Field("porcentagemreferencia").ToString()) : decimal.Zero))); + auto.set_Portas((!dataTable1.Columns.Contains("portas") || string.IsNullOrWhiteSpace(x.Field("portas").ToString()) ? null : (new Regex("[^0-9]")).Replace(x.Field("portas").ToString(), ""))); + auto.set_RegiaoCirculacao((!dataTable1.Columns.Contains("cepcirculacao") || string.IsNullOrWhiteSpace(x.Field("cepcirculacao").ToString()) ? null : Gestor.Common.Validation.ValidationHelper.FormatPostCode((new Regex("[^0-9]")).Replace(x.Field("cepcirculacao").ToString(), "")))); + auto.set_Renavam((!dataTable1.Columns.Contains("renavam") || string.IsNullOrWhiteSpace(x.Field("renavam").ToString()) ? null : (new Regex("[^0-9]")).Replace(x.Field("renavam").ToString(), ""))); + auto.set_TabelaReferencia((!dataTable1.Columns.Contains("tabelareferencia") || string.IsNullOrWhiteSpace(x.Field("tabelareferencia").ToString()) ? null : Funcoes.GetTabelaReferencia(x.Field("tabelareferencia").ToString().ToLower()))); + auto.set_TipoCobertura((!dataTable1.Columns.Contains("tipocobertura") || string.IsNullOrWhiteSpace(x.Field("tipocobertura").ToString()) ? null : Funcoes.GetTipoCobertura(x.Field("tipocobertura").ToString().ToLower()))); + auto.set_ValorDeterminado((!dataTable1.Columns.Contains("valordeterminado") || string.IsNullOrWhiteSpace(x.Field("valordeterminado").ToString()) || !Gestor.Common.Validation.ValidationHelper.ValidateValor(x.Field("valordeterminado").ToString()) ? decimal.Zero : decimal.Parse(x.Field("valordeterminado").ToString()))); + auto.set_Categoria((!dataTable1.Columns.Contains("categoria") || string.IsNullOrWhiteSpace(x.Field("categoria").ToString()) ? null : Funcoes.GetCategoria(x.Field("categoria").ToString().ToLower()))); + auto.set_UsoVeiculo((!dataTable1.Columns.Contains("usoveiculo") || string.IsNullOrWhiteSpace(x.Field("usoveiculo").ToString()) ? null : Funcoes.GetUsoveiculo(x.Field("usoveiculo").ToString().ToUpper()))); + Auto auto4 = auto; + if (!dataTable1.Columns.Contains("KitGas") || string.IsNullOrWhiteSpace(x.Field("KitGas").ToString())) + { + nullable = null; + nullable4 = nullable; + } + else + { + nullable4 = new bool?(x.Field("KitGas").ToString().ToLower() == "sim"); + } + auto4.set_KitGas(nullable4); + item1.set_Auto(auto); + item2.set_Coberturas(this.Coberturas(x)); + item2.set_Documento(this.ItemSelecionado.get_Documento()); + item2.set_Substituicao(null); + return item2; + }).ToList>()); + } + return tasks; + }); + if (tasks1.Count != 0) + { + Item[] itemArray1 = await Task.WhenAll(tasks1); + keyValuePairs1 = await this.SalvarRange(itemArray1); + } + else + { + keyValuePairs1.Add(new KeyValuePair("EXCEL", "NENHUMA COLUNA FOI ENCONTRADA")); + keyValuePairs = keyValuePairs1; + keyValuePairs1 = null; + return keyValuePairs; + } + } + catch (Exception exception) + { + keyValuePairs1.Add(new KeyValuePair("EXCEL", "FALHA AO IMPORTAR O EXCEL,\nVERIFIQUE SE O ARQUIVO POSSUI ALGUM ERRO")); + } + keyValuePairs = keyValuePairs1; + keyValuePairs1 = null; + return keyValuePairs; + } + + public async Task Incluir(bool substituir = false) + { + int? ordem; + long? nullable; + List coberturas; + long? nullable1; + long? nullable2; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + Item item2 = item; + Auto auto = new Auto(); + auto.set_Isencao(new Isencao?(0)); + auto.set_ZeroKm(new bool?(false)); + auto.set_Financiado(new bool?(false)); + auto.set_UsoVeiculo(new Gestor.Model.Common.UsoVeiculo?(0)); + auto.set_Categoria(new Gestor.Model.Common.Categoria?(3)); + item2.set_Auto(auto); + Item item3 = item; + if (substituir) + { + nullable1 = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + nullable1 = nullable; + } + item3.set_Substituicao(nullable1); + Item item4 = item; + item1 = null; + item = null; + bool valueOrDefault = substituir; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.SelectedItem = item4; + this.SelectedItem.get_Auto().set_Item(item4); + this.UsoVeiculo = this.SelectedItem.get_Auto().get_UsoVeiculo(); + this.Categoria = this.SelectedItem.get_Auto().get_Categoria(); + } + else + { + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Auto().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable2 = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + nullable2 = nullable; + } + selectedItem.set_Substituicao(nullable2); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + } + ordem = item4.get_Ordem(); + if (ordem.GetValueOrDefault() == 2 && !substituir) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item4 = null; + return; + } + } + ordem = item4.get_Ordem(); + int num = 1; + valueOrDefault = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item4 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Auto().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + selectedItem.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + string str; + string descricao; + string str1; + string str2; + string str3; + string str4; + Auto auto = this.SelectedItem.get_Auto(); + str = (!string.IsNullOrEmpty(this.SelectedItem.get_Auto().get_Placa()) ? Gestor.Model.Helper.ValidationHelper.FormataPlaca(this.SelectedItem.get_Auto().get_Placa()) : string.Empty); + auto.set_Placa(str); + Item selectedItem = this.SelectedItem; + string[] modelo = new string[7]; + Fabricante fabricante = this.SelectedItem.get_Auto().get_Fabricante(); + if (fabricante != null) + { + descricao = fabricante.get_Descricao(); + } + else + { + descricao = null; + } + modelo[0] = descricao; + modelo[1] = " "; + modelo[2] = this.SelectedItem.get_Auto().get_Modelo(); + modelo[3] = " / "; + modelo[4] = this.SelectedItem.get_Auto().get_Chassi(); + modelo[5] = " / "; + modelo[6] = this.SelectedItem.get_Auto().get_Placa(); + selectedItem.set_Descricao(string.Concat(modelo)); + Item item = this.SelectedItem; + List configuracoes = Recursos.Configuracoes; + bool flag = configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 18); + List configuracaoSistemas = Recursos.Configuracoes; + List> keyValuePairs1 = item.Validate(flag, configuracaoSistemas.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 27)); + List> keyValuePairs2 = keyValuePairs1; + keyValuePairs2.AddRange(await this.Validate()); + keyValuePairs2 = null; + if (keyValuePairs1.Count <= 0) + { + Item selectedItem1 = this.SelectedItem; + selectedItem1.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + selectedItem1 = null; + str1 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str4 = str1; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str2 = ""; + } + else if (base.Mantido) + { + str2 = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str2 = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str5 = str2; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str5); + } + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str3 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str6 = str3; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str6); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str7 = string.Concat(str4, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str7, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + keyValuePairs1 = null; + str4 = null; + return keyValuePairs; + } + + public async Task>> SalvarRange(IEnumerable list) + { + List> keyValuePairs; + string str; + string descricao; + string str1; + string str2; + Item item = null; + Item item1 = new Item(); + List> keyValuePairs1 = new List>(); + int num = await base.QuantidadeDeItens(list.First().get_Documento().get_Controle().get_Id()); + foreach (Item item in list) + { + if (!item.get_Auto().get_Isencao().HasValue) + { + item.get_Auto().set_Isencao(new Isencao?(0)); + } + if (!item.get_Auto().get_ZeroKm().HasValue) + { + item.get_Auto().set_ZeroKm(new bool?(false)); + } + if (!item.get_Auto().get_Financiado().HasValue) + { + item.get_Auto().set_Financiado(new bool?(false)); + } + if (!item.get_Auto().get_UsoVeiculo().HasValue) + { + item.get_Auto().set_UsoVeiculo(new Gestor.Model.Common.UsoVeiculo?(0)); + } + item.set_Ordem(new int?(num)); + num++; + item.get_Auto().set_Item(item); + Auto auto = item.get_Auto(); + str = (!string.IsNullOrEmpty(item.get_Auto().get_Placa()) ? Gestor.Model.Helper.ValidationHelper.FormataPlaca(item.get_Auto().get_Placa()) : string.Empty); + auto.set_Placa(str); + Item item2 = item; + string[] modelo = new string[7]; + Fabricante fabricante = item.get_Auto().get_Fabricante(); + if (fabricante != null) + { + descricao = fabricante.get_Descricao(); + } + else + { + descricao = null; + } + modelo[0] = descricao; + modelo[1] = " "; + modelo[2] = item.get_Auto().get_Modelo(); + modelo[3] = " / "; + modelo[4] = item.get_Auto().get_Chassi(); + modelo[5] = " / "; + modelo[6] = item.get_Auto().get_Placa(); + item2.set_Descricao(string.Concat(modelo)); + Item item3 = item; + List configuracoes = Recursos.Configuracoes; + List> keyValuePairs2 = item3.Validate(configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 18), false); + List> keyValuePairs3 = keyValuePairs2; + keyValuePairs3.AddRange(await this.Validate(item)); + keyValuePairs3 = null; + Item item4 = item; + str1 = (item.get_Documento().get_Ordem() > 0 ? string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", item.get_Documento().get_Ordem()) : ""); + item4.set_Status(str1); + if (keyValuePairs2.Count <= 0) + { + continue; + } + keyValuePairs1.Add(new KeyValuePair("", item.get_Descricao())); + keyValuePairs1.AddRange(keyValuePairs2); + keyValuePairs2 = null; + } + if (keyValuePairs1.Count <= 0) + { + foreach (Item item5 in list) + { + str2 = (item5.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + string str3 = str2; + item1 = await this._itemServico.Save(item5); + string str4 = string.Concat(str3, " ITEM DE DESCRIÇÃO \"", item5.get_Descricao(), "\""); + long id = item5.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { item5.get_Id(), item5.get_Documento().get_Id(), item5.get_Documento().get_Controle().get_Ramo().get_Nome(), item5.get_Documento().get_Controle().get_Cliente().get_Nome(), item5.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str4, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + str3 = null; + } + this.SelectedItem = item1; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar("ITENS SALVOS COM SUCESSO", true); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = keyValuePairs1; + } + item1 = null; + keyValuePairs1 = null; + return keyValuePairs; + } + + public async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + this.Fabricantes = Recursos.Fabricantes; + List nums = new List() + { + (long)5, + (long)37 + }; + if (nums.Contains(this.Ramo.get_Id())) + { + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + Auto auto = await this._itemServico.BuscaAuto(item.get_Id()); + item1.set_Auto(auto); + item1 = null; + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.WorkOnSelectedAuto(this.SelectedItem.get_Auto()); + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + this.UsoVeiculo = this.SelectedItem.get_Auto().get_UsoVeiculo(); + this.Categoria = this.SelectedItem.get_Auto().get_Categoria(); + base.Loading(false); + } + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.Incluir(true); + } + + public async Task>> Validate() + { + List> keyValuePairs; + List> keyValuePairs1 = new List>(); + if (!string.IsNullOrEmpty(this.SelectedItem.get_Auto().get_Chassi())) + { + List configuracoes = Recursos.Configuracoes; + if (!configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 26)) + { + Documento documento = await (new AutoServico()).BuscarAuto(this.SelectedItem.get_Auto().get_Chassi(), this.SelectedItem.get_Auto().get_Id(), this.SelectedItem.get_Documento().get_Vigencia1(), this.SelectedItem.get_Documento().get_Vigencia2(), this.SelectedItem.get_Documento().get_Controle().get_Seguradora().get_Id()); + if (documento == null) + { + keyValuePairs = keyValuePairs1; + } + else if (this.AllowAlterarExcluir || this.SelectedItem.get_Documento().get_Controle().get_Id() != documento.get_Controle().get_Id()) + { + List> keyValuePairs2 = keyValuePairs1; + string[] apolice = new string[] { "CHASSI JÁ CADASTRADO NA APÓLICE ", documento.get_Apolice(), " DO CLIENTE ", documento.get_Controle().get_Cliente().get_Nome(), "." }; + keyValuePairs2.Add(new KeyValuePair("Chassi", string.Concat(apolice))); + keyValuePairs = keyValuePairs1; + } + else + { + keyValuePairs = keyValuePairs1; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + keyValuePairs1 = null; + return keyValuePairs; + } + + public async Task>> Validate(Item item) + { + List> keyValuePairs; + List> keyValuePairs1 = new List>(); + if (!string.IsNullOrEmpty(item.get_Auto().get_Chassi())) + { + List configuracoes = Recursos.Configuracoes; + if (!configuracoes.Any((ConfiguracaoSistema x) => x.get_Configuracao() == 26)) + { + Documento documento = await (new AutoServico()).BuscarAuto(item.get_Auto().get_Chassi(), item.get_Auto().get_Id(), item.get_Documento().get_Vigencia1(), item.get_Documento().get_Vigencia2(), item.get_Documento().get_Controle().get_Seguradora().get_Id()); + if (documento == null) + { + keyValuePairs = keyValuePairs1; + } + else if (this.AllowAlterarExcluir || item.get_Documento().get_Controle().get_Id() != documento.get_Controle().get_Id()) + { + List> keyValuePairs2 = keyValuePairs1; + string[] apolice = new string[] { "CHASSI JÁ CADASTRADO NA APÓLICE ", documento.get_Apolice(), " DO CLIENTE ", documento.get_Controle().get_Cliente().get_Nome(), "." }; + keyValuePairs2.Add(new KeyValuePair("Chassi", string.Concat(apolice))); + keyValuePairs = keyValuePairs1; + } + else + { + keyValuePairs = keyValuePairs1; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + keyValuePairs1 = null; + return keyValuePairs; + } + + private void WorkOnSelectedAuto(Auto value) + { + if (value == null || value.get_Id() == 0) + { + return; + } + this.SelectedFabricante = this.Fabricantes.FirstOrDefault((Fabricante x) => { + int? nullable; + int id = x.get_Id(); + Fabricante fabricante = value.get_Fabricante(); + if (fabricante != null) + { + nullable = new int?(fabricante.get_Id()); + } + else + { + nullable = null; + } + int? nullable1 = nullable; + return id == nullable1.GetValueOrDefault() & nullable1.HasValue; + }); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/BuscarModeloViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/BuscarModeloViewModel.cs new file mode 100644 index 0000000..b97c9ea --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/BuscarModeloViewModel.cs @@ -0,0 +1,95 @@ +using CsQuery.ExtensionMethods.Internal; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels.Generic; +using Gestor.Common.Validation; +using Gestor.Model.Domain.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class BuscarModeloViewModel : BaseSegurosViewModel + { + private Auto _selectedBuscaModelo = new Auto(); + + private ObservableCollection _modelosAutos = new ObservableCollection(); + + private Fipe _resultado = new Fipe(); + + public ObservableCollection ModelosAutos + { + get + { + return this._modelosAutos; + } + set + { + this._modelosAutos = value; + base.OnPropertyChanged("ModelosAutos"); + } + } + + public Fipe Resultado + { + get + { + return this._resultado; + } + set + { + this._resultado = value; + base.OnPropertyChanged("Resultado"); + } + } + + public Auto SelectedBuscaModelo + { + get + { + return this._selectedBuscaModelo; + } + set + { + this._selectedBuscaModelo = value; + base.OnPropertyChanged("SelectedBuscaModelo"); + } + } + + public BuscarModeloViewModel(string modelo, string ano) + { + Auto auto = new Auto(); + auto.set_AnoModelo(ano); + auto.set_Modelo(modelo); + this.SelectedBuscaModelo = auto; + } + + public async void Pesquisar() + { + string modelo = this.SelectedBuscaModelo.get_Modelo(); + int num = ValidationHelper.ToInt(this.SelectedBuscaModelo.get_AnoModelo()); + List list = await (new ItemServico()).BuscarPorModelo(modelo); + if ((this.SelectedBuscaModelo.get_AnoModelo() != null || ExtensionMethods.IsNullOrEmpty(list)) && this.SelectedBuscaModelo.get_Id() != 0) + { + list = list.Where((Fipe x) => { + if (x.get_AnoMinimo() > num) + { + return false; + } + return x.get_AnoMaximo() >= num; + }).ToList(); + this.ModelosAutos = new ObservableCollection(list); + } + else + { + this.ModelosAutos = new ObservableCollection(list); + } + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/ConsorcioViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/ConsorcioViewModel.cs new file mode 100644 index 0000000..0470058 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/ConsorcioViewModel.cs @@ -0,0 +1,520 @@ +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class ConsorcioViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly ConsorcioServico _servico; + + private bool _visibilityTitulares; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private object _sinistro; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public bool Invoke + { + get; + set; + } + + private Item ItemSelecionado + { + get; + set; + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public object Sinistro + { + get + { + return this._sinistro; + } + set + { + this._sinistro = value; + base.OnPropertyChanged("Sinistro"); + } + } + + public bool VisibilityTitulares + { + get + { + return this._visibilityTitulares; + } + set + { + this._visibilityTitulares = value; + base.OnPropertyChanged("VisibilityTitulares"); + } + } + + public ConsorcioViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new ConsorcioServico(); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + this.VisibilityTitulares = this.Ramo.get_Id() == (long)31; + } + + public async void CancelarAlteracao() + { + base.Loading(true); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public void Descarregar() + { + this.Cobertura = null; + this.Sinistro = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + public async Task Incluir(bool substituir = false) + { + int? ordem; + List coberturas; + long? nullable; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + item.set_Consorcio(new Consorcio()); + Item item2 = item; + if (substituir) + { + nullable = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item2.set_Substituicao(nullable); + Item item3 = item; + item1 = null; + item = null; + base.Titulares = new ObservableCollection(); + ordem = item3.get_Ordem(); + if (ordem.GetValueOrDefault() == 2) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item3 = null; + return; + } + } + bool valueOrDefault = substituir; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.SelectedItem = item3; + this.SelectedItem.get_Consorcio().set_Item(item3); + } + else + { + this.SelectedItem.set_Id((long)0); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + } + ordem = item3.get_Ordem(); + int num = 1; + valueOrDefault = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item3 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Consorcio().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + selectedItem.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + string str; + string str1; + string str2; + string str3; + this.SelectedItem.set_Descricao(this.SelectedItem.get_Consorcio().get_BensConsorcio()); + List> keyValuePairs1 = this.SelectedItem.Validate(); + if (keyValuePairs1.Count <= 0) + { + Item selectedItem = this.SelectedItem; + selectedItem.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + selectedItem = null; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str = ""; + } + else if (base.Mantido) + { + str = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str4 = str; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str4); + } + str1 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str3 = str1; + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str2 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str5 = str2; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str5); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str6 = string.Concat(str3, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str6, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str3 = null; + return keyValuePairs; + } + + private async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + base.Titulares = new ObservableCollection(); + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + Consorcio consorcio = await this._itemServico.BuscaConsorcio(item.get_Id()); + Item item2 = item1; + Consorcio consorcio1 = consorcio; + if (consorcio1 == null) + { + consorcio1 = new Consorcio(); + consorcio1.set_Item(item); + } + item2.set_Consorcio(consorcio1); + item1 = null; + if (this.VisibilityTitulares) + { + await base.CarregarTitulares(item.get_Id()); + } + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + base.Loading(false); + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.Incluir(true); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/GranizoViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/GranizoViewModel.cs new file mode 100644 index 0000000..b40ea83 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/GranizoViewModel.cs @@ -0,0 +1,500 @@ +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Common.Validation; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class GranizoViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly GranizoServico _servico; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + private Visibility _visibilityMaisInformacoes = Visibility.Collapsed; + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public bool Invoke + { + get; + set; + } + + private Item ItemSelecionado + { + get; + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public Visibility VisibilityMaisInformacoes + { + get + { + return this._visibilityMaisInformacoes; + } + set + { + this._visibilityMaisInformacoes = value; + base.OnPropertyChanged("VisibilityMaisInformacoes"); + } + } + + public GranizoViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new GranizoServico(); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + } + + public async void CancelarAlteracao() + { + base.Loading(true); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public void Descarregar() + { + this.Cobertura = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + public async Task IncluirItem(bool substituir = false) + { + int? ordem; + List coberturas; + long? nullable; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + Item item2 = item; + Granizo granizo = new Granizo(); + granizo.set_Item(this.SelectedItem); + item2.set_Granizo(granizo); + Item item3 = item; + if (substituir) + { + nullable = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item3.set_Substituicao(nullable); + Item item4 = item; + item1 = null; + item = null; + ordem = item4.get_Ordem(); + if (ordem.GetValueOrDefault() == 2) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item4 = null; + return; + } + } + bool valueOrDefault = substituir; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.SelectedItem = item4; + this.SelectedItem.get_Granizo().set_Item(item4); + } + else + { + this.SelectedItem.set_Id((long)0); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + } + ordem = item4.get_Ordem(); + int num = 1; + valueOrDefault = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item4 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Granizo().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + selectedItem.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + string str; + string str1; + string str2; + string str3; + string str4; + Item selectedItem = this.SelectedItem; + string cultura = this.SelectedItem.get_Granizo().get_Cultura(); + string sitio = this.SelectedItem.get_Granizo().get_Sitio(); + str = (ValidationHelper.IsNotNullOrEmpty(this.SelectedItem.get_Granizo().get_Area()) ? "" : string.Concat(" / ", this.SelectedItem.get_Granizo().get_Area())); + selectedItem.set_Descricao(string.Concat(cultura, " ", sitio, str)); + List> keyValuePairs1 = this.SelectedItem.get_Granizo().Validate(); + if (keyValuePairs1.Count <= 0) + { + Item item = this.SelectedItem; + item.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + item = null; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str1 = ""; + } + else if (base.Mantido) + { + str1 = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str1 = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str5 = str1; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str5); + } + str2 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str4 = str2; + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str3 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str6 = str3; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str6); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str7 = string.Concat(str4, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str7, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str4 = null; + return keyValuePairs; + } + + private async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + List nums = new List() + { + (long)20 + }; + if (nums.Contains(this.Ramo.get_Id())) + { + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + Granizo granizo = await this._itemServico.BuscaGranizo(item.get_Id()); + item1.set_Granizo(granizo); + item1 = null; + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + base.Loading(false); + } + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.IncluirItem(true); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/PatrimonialViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/PatrimonialViewModel.cs new file mode 100644 index 0000000..caf28fa --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/PatrimonialViewModel.cs @@ -0,0 +1,678 @@ +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class PatrimonialViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly PatrimonialServico _servico; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + private Visibility _visibilityTipoMoradia = Visibility.Collapsed; + + private Visibility _visibilityFianca = Visibility.Collapsed; + + private Visibility _visibilityPatrimonial; + + private string _bensInformacoes = "BENS/INFORMAÇÕES"; + + private string _locatarioTomador1 = "LOCATÁRIO 1:"; + + private string _locatarioTomador2 = "LOCATÁRIO 2:"; + + private string _locatarioTomador3 = "LOCATÁRIO 3:"; + + private Visibility _visibilityDescricao = Visibility.Collapsed; + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public string BensInformacoes + { + get + { + return this._bensInformacoes; + } + set + { + this._bensInformacoes = value; + base.OnPropertyChanged("BensInformacoes"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public bool Garantia + { + get; + set; + } + + public bool Invoke + { + get; + set; + } + + private Item ItemSelecionado + { + get; + set; + } + + public string LocatarioTomador1 + { + get + { + return this._locatarioTomador1; + } + set + { + this._locatarioTomador1 = value; + base.OnPropertyChanged("LocatarioTomador1"); + } + } + + public string LocatarioTomador2 + { + get + { + return this._locatarioTomador2; + } + set + { + this._locatarioTomador2 = value; + base.OnPropertyChanged("LocatarioTomador2"); + } + } + + public string LocatarioTomador3 + { + get + { + return this._locatarioTomador3; + } + set + { + this._locatarioTomador3 = value; + base.OnPropertyChanged("LocatarioTomador3"); + } + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public Visibility VisibilityDescricao + { + get + { + return this._visibilityDescricao; + } + set + { + this._visibilityDescricao = value; + base.OnPropertyChanged("VisibilityDescricao"); + } + } + + public Visibility VisibilityFianca + { + get + { + return this._visibilityFianca; + } + set + { + this._visibilityFianca = value; + base.OnPropertyChanged("VisibilityFianca"); + } + } + + public Visibility VisibilityPatrimonial + { + get + { + return this._visibilityPatrimonial; + } + set + { + this._visibilityPatrimonial = value; + base.OnPropertyChanged("VisibilityPatrimonial"); + } + } + + public Visibility VisibilityTipoMoradia + { + get + { + return this._visibilityTipoMoradia; + } + set + { + this._visibilityTipoMoradia = value; + base.OnPropertyChanged("VisibilityTipoMoradia"); + } + } + + public PatrimonialViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new PatrimonialServico(); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + } + + public async void CancelarAlteracao() + { + base.Loading(true); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public void Descarregar() + { + this.Cobertura = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + private void HabilitaCamposGarantia() + { + this.VisibilityPatrimonial = (this.Ramo.get_Id() == (long)38 ? Visibility.Collapsed : Visibility.Visible); + this.BensInformacoes = "OBSERVAÇÕES"; + this.LocatarioTomador1 = "TOMADOR 1:"; + this.LocatarioTomador2 = "TOMADOR 2:"; + this.LocatarioTomador3 = "TOMADOR 3:"; + this.VisibilityDescricao = Visibility.Visible; + this.Garantia = true; + } + + public async Task Incluir(bool substituir = false) + { + int? ordem; + List coberturas; + long? nullable; + Patrimonial patrimonial1; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + Item item2 = item; + Patrimonial patrimonial2 = new Patrimonial(); + patrimonial2.set_Item(this.SelectedItem); + item2.set_Patrimonial(patrimonial2); + Item item3 = item; + if (substituir) + { + nullable = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item3.set_Substituicao(nullable); + Item item4 = item; + item1 = null; + item = null; + bool garantia = !this.Garantia; + if (garantia) + { + garantia = await base.ShowMessage("COPIAR OS DADOS DE ENDEREÇO DO CLIENTE?", "SIM", "NÃO", false); + } + if (garantia) + { + ObservableCollection observableCollection = await (new ClienteServico()).BuscarEnderecosAsync(item4.get_Documento().get_Controle().get_Cliente().get_Id()); + if (observableCollection != null && observableCollection.Any()) + { + ObservableCollection observableCollection1 = observableCollection; + IOrderedEnumerable valueOrDefault = + from x in observableCollection1 + orderby x.get_Ordem().GetValueOrDefault() == 1 + select x; + List list = valueOrDefault.Select((ClienteEndereco e) => { + Patrimonial patrimonial = new Patrimonial(); + patrimonial.set_Endereco(e.get_Endereco()); + patrimonial.set_Numero(e.get_Numero()); + patrimonial.set_Complemento(e.get_Complemento()); + patrimonial.set_Bairro(e.get_Bairro()); + patrimonial.set_Cidade(e.get_Cidade()); + patrimonial.set_Estado(e.get_Estado()); + patrimonial.set_Cep(e.get_Cep()); + return patrimonial; + }).ToList(); + Item item5 = item4; + if (list.Any()) + { + patrimonial1 = list.Last(); + } + else + { + patrimonial1 = null; + } + item5.set_Patrimonial(patrimonial1); + } + } + ordem = item4.get_Ordem(); + if (ordem.GetValueOrDefault() == 2) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item4 = null; + return; + } + } + this.SelectedItem = item4; + this.SelectedItem.get_Patrimonial().set_Item(item4); + ordem = item4.get_Ordem(); + int num = 1; + garantia = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (garantia) + { + garantia = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!garantia) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item4 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Patrimonial().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + selectedItem.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + string descricao; + string str; + string str1; + string str2; + string str3; + Item selectedItem = this.SelectedItem; + if (this.VisibilityPatrimonial == Visibility.Visible) + { + string[] endereco = new string[] { this.SelectedItem.get_Patrimonial().get_Endereco(), ", ", this.SelectedItem.get_Patrimonial().get_Numero(), " - ", this.SelectedItem.get_Patrimonial().get_Complemento(), " - ", this.SelectedItem.get_Patrimonial().get_Bairro(), ", ", this.SelectedItem.get_Patrimonial().get_Cidade(), " / ", this.SelectedItem.get_Patrimonial().get_Estado() }; + descricao = string.Concat(endereco); + } + else + { + descricao = this.SelectedItem.get_Descricao(); + } + selectedItem.set_Descricao(descricao); + List> keyValuePairs1 = this.SelectedItem.Validate(); + if (keyValuePairs1.Count <= 0) + { + Item item = this.SelectedItem; + item.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + item = null; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str = ""; + } + else if (base.Mantido) + { + str = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str4 = str; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str4); + } + str1 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str3 = str1; + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str2 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str5 = str2; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str5); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str6 = string.Concat(str3, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str6, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str3 = null; + return keyValuePairs; + } + + private async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + Visibility visibility; + Visibility visibility1; + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + List nums = new List() + { + (long)1, + (long)2, + (long)3, + (long)15, + (long)18, + (long)30, + (long)38 + }; + if (nums.Contains(this.Ramo.get_Id())) + { + PatrimonialViewModel patrimonialViewModel = this; + visibility = (this.Ramo.get_Id() == (long)1 ? Visibility.Visible : Visibility.Collapsed); + patrimonialViewModel.VisibilityTipoMoradia = visibility; + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + PatrimonialViewModel patrimonialViewModel1 = this; + visibility1 = (this.Ramo.get_Id() == (long)15 || this.Ramo.get_Id() == (long)38 ? Visibility.Visible : Visibility.Collapsed); + patrimonialViewModel1.VisibilityFianca = visibility1; + if (this.Ramo.get_Id() == (long)38) + { + this.HabilitaCamposGarantia(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + Patrimonial patrimonial = await this._itemServico.BuscaPatrimonial(item.get_Id()); + item1.set_Patrimonial(patrimonial); + item1 = null; + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + base.Loading(false); + } + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.Incluir(true); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/RiscosDiversosViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/RiscosDiversosViewModel.cs new file mode 100644 index 0000000..7469ac9 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/RiscosDiversosViewModel.cs @@ -0,0 +1,626 @@ +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class RiscosDiversosViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly RiscosDiversosServico _servico; + + private bool _visibilityTitulares; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private object _sinistro; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + public Visibility _visibilityMultRisco { get; set; } = Visibility.Collapsed; + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public bool Invoke + { + get; + set; + } + + private Item ItemSelecionado + { + get; + set; + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public object Sinistro + { + get + { + return this._sinistro; + } + set + { + this._sinistro = value; + base.OnPropertyChanged("Sinistro"); + } + } + + public Visibility VisibilityMultRisco + { + get + { + return this._visibilityMultRisco; + } + set + { + this._visibilityMultRisco = value; + base.OnPropertyChanged("VisibilityMultRisco"); + } + } + + public bool VisibilityTitulares + { + get + { + return this._visibilityTitulares; + } + set + { + this._visibilityTitulares = value; + base.OnPropertyChanged("VisibilityTitulares"); + } + } + + public RiscosDiversosViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new RiscosDiversosServico(); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + this.VisibilityTitulares = this.Ramo.get_Id() == (long)31; + this.VisibilityMultRisco = (this.Ramo.get_Id() == (long)33 ? Visibility.Visible : Visibility.Collapsed); + } + + public async void CancelarAlteracao() + { + base.Loading(true); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public void Descarregar() + { + this.Cobertura = null; + this.Sinistro = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + public async Task Incluir(bool substituir = false) + { + int? ordem; + List coberturas; + long? nullable; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + item.set_RiscosDiversos(new RiscosDiversos()); + Item item2 = item; + if (substituir) + { + nullable = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item2.set_Substituicao(nullable); + Item item3 = item; + item1 = null; + item = null; + base.Titulares = new ObservableCollection(); + ordem = item3.get_Ordem(); + if (ordem.GetValueOrDefault() == 2) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item3 = null; + return; + } + } + bool valueOrDefault = substituir; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.SelectedItem = item3; + this.SelectedItem.get_RiscosDiversos().set_Item(item3); + } + else + { + this.SelectedItem.set_Id((long)0); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + } + ordem = item3.get_Ordem(); + int num = 1; + valueOrDefault = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item3 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_RiscosDiversos().set_Id((long)0); + Item selectedItem = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + selectedItem.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar(List titularesGrid) + { + List> keyValuePairs; + string str; + string str1; + string str2; + bool flag; + bool flag1; + bool flag2; + string str3; + if (this.VisibilityTitulares) + { + this.SelectedItem.set_Titulares(titularesGrid); + } + List> keyValuePairs1 = this.SelectedItem.Validate(); + if (keyValuePairs1.Count <= 0) + { + Item selectedItem = this.SelectedItem; + selectedItem.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + selectedItem = null; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str = ""; + } + else if (base.Mantido) + { + str = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str4 = str; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str4); + } + if (this.VisibilityTitulares) + { + await this._itemServico.DeleteTitulares(base.ExcluirTitulares); + base.ExcluirTitulares = new List(); + } + str1 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str3 = str1; + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + if (this.VisibilityTitulares) + { + foreach (TitularesVida titularesVida in titularesGrid) + { + titularesVida.set_IdItem(this.SelectedItem.get_Id()); + } + List titularesVidas = new List(); + foreach (TitularesVida titularesVida1 in titularesGrid) + { + if (titularesVida1.get_Id() != 0) + { + TitularesVida titularesVida2 = base.OldTitulares.First((TitularesVida x) => x.get_Id() == titularesVida1.get_Id()); + if (titularesVida1.get_Codigo() == titularesVida2.get_Codigo()) + { + DateTime? inicio = titularesVida1.get_Inicio(); + DateTime? fim = titularesVida2.get_Inicio(); + if (inicio.HasValue == fim.HasValue) + { + flag = (inicio.HasValue ? inicio.GetValueOrDefault() != fim.GetValueOrDefault() : false); + } + else + { + flag = true; + } + if (!flag) + { + fim = titularesVida1.get_Fim(); + inicio = titularesVida2.get_Fim(); + if (fim.HasValue == inicio.HasValue) + { + flag1 = (fim.HasValue ? fim.GetValueOrDefault() != inicio.GetValueOrDefault() : false); + } + else + { + flag1 = true; + } + if (!flag1 && !(titularesVida1.get_Fatura() != titularesVida2.get_Fatura()) && !(titularesVida1.get_Nome() != titularesVida2.get_Nome()) && !(titularesVida1.get_Observacao() != titularesVida2.get_Observacao())) + { + inicio = titularesVida1.get_Nascimento(); + fim = titularesVida2.get_Nascimento(); + if (inicio.HasValue == fim.HasValue) + { + flag2 = (inicio.HasValue ? inicio.GetValueOrDefault() != fim.GetValueOrDefault() : false); + } + else + { + flag2 = true; + } + if (!flag2 && !(titularesVida1.get_Cpf() != titularesVida2.get_Cpf()) && !(titularesVida1.get_Matricula() != titularesVida2.get_Matricula())) + { + decimal? premio = titularesVida1.get_Premio(); + decimal? capital = titularesVida2.get_Premio(); + if ((premio.GetValueOrDefault() == capital.GetValueOrDefault()) & premio.HasValue == capital.HasValue) + { + capital = titularesVida1.get_Capital(); + premio = titularesVida2.get_Capital(); + if ((capital.GetValueOrDefault() == premio.GetValueOrDefault()) & capital.HasValue == premio.HasValue) + { + TipoTitular? tipo = titularesVida1.get_Tipo(); + TipoTitular? nullable = titularesVida2.get_Tipo(); + if (tipo.GetValueOrDefault() == nullable.GetValueOrDefault() & tipo.HasValue == nullable.HasValue && (object)titularesVida1.get_Dependente() == (object)titularesVida2.get_Dependente()) + { + continue; + } + } + } + } + } + } + } + titularesVidas.Add(titularesVida1); + } + else + { + titularesVidas.Add(titularesVida1); + } + } + base.Titulares = new ObservableCollection(await this._itemServico.SaveTitulares(titularesVidas)); + } + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str2 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str5 = str2; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str5); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str6 = string.Concat(str3, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable1 = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str6, id, nullable1, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str3 = null; + return keyValuePairs; + } + + private async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + base.Titulares = new ObservableCollection(); + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + RiscosDiversos riscosDiverso = await this._itemServico.BuscaRiscosDiversos(item.get_Id()); + Item item2 = item1; + RiscosDiversos riscosDiverso1 = riscosDiverso; + if (riscosDiverso1 == null) + { + riscosDiverso1 = new RiscosDiversos(); + riscosDiverso1.set_Item(item); + } + item2.set_RiscosDiversos(riscosDiverso1); + item1 = null; + if (this.VisibilityTitulares) + { + await base.CarregarTitulares(item.get_Id()); + } + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + base.Loading(false); + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.Incluir(true); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/VidaViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/VidaViewModel.cs new file mode 100644 index 0000000..e128b48 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/Itens/VidaViewModel.cs @@ -0,0 +1,661 @@ +using Gestor.Application.Actions; +using Gestor.Application.Componentes; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros.Itens; +using Gestor.Application.ViewModels; +using Gestor.Application.ViewModels.Generic; +using Gestor.Application.ViewModels.Seguros; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros.Itens +{ + public class VidaViewModel : ItemViewModel, IDisposable + { + private readonly ItemServico _itemServico; + + private readonly VidaServico _servico; + + private bool _allowAlterarExcluir = true; + + private object _cobertura; + + private string _codigoItem; + + private Item _selectedItem = new Item(); + + private Visibility _atualizarCamposSaude; + + public bool AllowAlterarExcluir + { + get + { + return this._allowAlterarExcluir; + } + set + { + this._allowAlterarExcluir = value; + base.OnPropertyChanged("AllowAlterarExcluir"); + } + } + + public Visibility AtualizarCamposSaude + { + get + { + return this._atualizarCamposSaude; + } + set + { + this._atualizarCamposSaude = value; + base.OnPropertyChanged("AtualizarCamposSaude"); + } + } + + public object Cobertura + { + get + { + return this._cobertura; + } + set + { + this._cobertura = value; + base.OnPropertyChanged("Cobertura"); + } + } + + public string CodigoItem + { + get + { + return this._codigoItem; + } + set + { + this._codigoItem = value; + base.OnPropertyChanged("CodigoItem"); + } + } + + public bool Invoke + { + get; + set; + } + + private Item ItemSelecionado + { + get; + set; + } + + private Gestor.Model.Domain.Seguros.Ramo Ramo + { + get; + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public VidaViewModel(bool substituir = false, ManutencaoItem manutencao = null, Item itemSelecionado = null, Gestor.Model.Domain.Seguros.Ramo ramo = null, bool endossoRenovacao = false) + { + this.Invoke = itemSelecionado == null; + this.ItemSelecionado = itemSelecionado ?? ConsultaViewModel.ItemSelecionado; + this.Ramo = ramo ?? ConsultaViewModel.DocumentoSelecionado.get_Controle().get_Ramo(); + if (this.Invoke) + { + this.ItemSelecionado = this.ItemSelecionado ?? new Item(); + this.ItemSelecionado.set_Documento(ConsultaViewModel.DocumentoSelecionado); + } + this._itemServico = new ItemServico(); + this._servico = new VidaServico(); + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Combine(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + this.Seleciona(this.ItemSelecionado); + if (substituir) + { + this.Substituir(this.ItemSelecionado); + } + if (manutencao != null) + { + this.Manter(this.ItemSelecionado, manutencao); + } + this.AllowAlterarExcluir = !endossoRenovacao; + this.CarregaCobertura(); + } + + public async void CancelarAlteracao() + { + base.Loading(true); + base.AllSelected = new bool?(false); + await this.SelecionaItem(this.ItemSelecionado, false); + await this.CoberturaViewModel.CancelarAlteracao(); + base.Alterar(false); + base.Loading(false); + } + + public void CarregaCobertura() + { + this.CoberturaViewModel.Item = this.ItemSelecionado; + this.CoberturaViewModel.Ramo = this.Ramo; + this.Cobertura = new CoberturaView(this.CoberturaViewModel); + } + + public void Descarregar() + { + this.Cobertura = null; + } + + public void Dispose() + { + Gestor.Application.Actions.Actions.UpdateItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.UpdateItem, new Action(this.Seleciona)); + Gestor.Application.Actions.Actions.SubstituirItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.SubstituirItem, new Action(this.Substituir)); + Gestor.Application.Actions.Actions.ManterItem = (Action)Delegate.Remove(Gestor.Application.Actions.Actions.ManterItem, new Action(this.Manter)); + } + + public async Task Excluir() + { + bool flag; + if (this.SelectedItem == null || this.SelectedItem.get_Id() == 0) + { + flag = false; + } + else if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool flag1 = await this._servico.Delete(this.SelectedItem); + base.Loading(false); + if (flag1) + { + string str = string.Concat("EXCLUIU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " EXCLUÍDO COM SUCESSO"), true); + flag = true; + } + else + { + await base.ShowMessage("NÃO POSSÍVEL EXCLUIR O ITEM", "OK", "", false); + flag = false; + } + } + else + { + flag = false; + } + return flag; + } + + public async Task Incluir(bool substituir = false) + { + int? ordem; + List coberturas; + long? nullable; + coberturas = (this.CoberturaViewModel.Coberturas == null ? this.CoberturaViewModel.CarregaCoberturaPadrao().ToList() : this.CoberturaViewModel.Coberturas.ToList()); + List coberturas1 = coberturas; + Item item = new Item(); + item.set_Documento(this.ItemSelecionado.get_Documento()); + Item item1 = item; + ordem = (substituir ? base.ItemSubstituido.get_Ordem() : new int?(await base.QuantidadeDeItens(this.ItemSelecionado.get_Documento().get_Controle().get_Id()))); + item1.set_Ordem(ordem); + Item item2 = item; + Vida vida = new Vida(); + vida.set_Item(this.SelectedItem); + item2.set_Vida(vida); + Item item3 = item; + if (substituir) + { + nullable = new long?(base.ItemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item3.set_Substituicao(nullable); + Item item4 = item; + item1 = null; + item = null; + base.Titulares = new ObservableCollection(); + ordem = item4.get_Ordem(); + if (ordem.GetValueOrDefault() == 2) + { + if (!await base.ShowMessage("ESTA APÓLICE SERÁ UMA FROTA, DESEJA CONTINUAR?", "SIM", "NÃO", false)) + { + coberturas1 = null; + item4 = null; + return; + } + } + bool valueOrDefault = substituir; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA COPIAR OS DADOS DO ITEM?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.SelectedItem = item4; + this.SelectedItem.get_Vida().set_Item(item4); + } + else + { + this.SelectedItem.set_Id((long)0); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + } + ordem = item4.get_Ordem(); + int num = 1; + valueOrDefault = ordem.GetValueOrDefault() > num & ordem.HasValue; + if (valueOrDefault) + { + valueOrDefault = await base.ShowMessage("DESEJA REPLICAR AS COBERTURAS DO ITEM SELECIONADO?", "SIM", "NÃO", false); + } + if (!valueOrDefault) + { + this.CoberturaViewModel.CarregaPadrao(); + } + else + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + if (substituir) + { + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + coberturas1.ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + base.Alterar(true); + coberturas1 = null; + item4 = null; + } + + public void Manter(Item item, ManutencaoItem manutencao) + { + if (manutencao.get_Tipo() == 1) + { + base.ItemSubstituido = item; + } + this.Manter(manutencao); + base.Mantido = true; + } + + public void Manter(ManutencaoItem manutencao) + { + long? nullable; + object list; + bool flag; + ObservableCollection coberturas = this.CoberturaViewModel.Coberturas; + if (coberturas != null) + { + list = coberturas.ToList(); + } + else + { + list = null; + } + List nums = new List() + { + (long)6, + (long)7, + (long)9, + (long)10, + (long)47, + (long)53, + (long)66 + }; + if (this.SelectedItem.get_Vida() == null) + { + this.SelectedItem.set_Vida(new Vida()); + } + if (this.ItemSelecionado.get_Documento().get_Controle().get_Id() != this.SelectedItem.get_Documento().get_Controle().get_Id()) + { + Item selectedItem = this.SelectedItem; + if (selectedItem != null) + { + flag = selectedItem.get_Sinistros().Count() > 0; + } + else + { + flag = false; + } + if (flag && manutencao.get_Tipo() == null) + { + goto Label1; + } + if (!nums.Contains(this.Ramo.get_Id())) + { + this.SelectedItem.set_Id((long)0); + goto Label0; + } + else + { + goto Label0; + } + } + Label1: + this.SelectedItem.set_Id((long)0); + this.SelectedItem.get_Vida().set_Id((long)0); + Label0: + Item item = this.SelectedItem; + Item itemSubstituido = base.ItemSubstituido; + if (itemSubstituido != null) + { + nullable = new long?(itemSubstituido.get_Id()); + } + else + { + nullable = null; + } + item.set_Substituicao(nullable); + this.SelectedItem.set_Documento(this.ItemSelecionado.get_Documento()); + if (manutencao.get_Tipo() == null) + { + this.SelectedItem.set_Sinistrado(false); + this.SelectedItem.set_Status(""); + this.SelectedItem.set_Sinistro(null); + this.SelectedItem.set_Sinistros(null); + } + this.CoberturaViewModel.CarregaPadrao(); + this.CoberturaViewModel.Coberturas = new ObservableCollection(); + if (list != null) + { + ((List)list).ForEach((Gestor.Model.Domain.Seguros.Cobertura x) => { + x.set_Item(this.SelectedItem); + this.CoberturaViewModel.Coberturas.Add(x); + }); + } + else + { + } + base.Alterar(true); + } + + public async Task>> Salvar(List titularesGrid) + { + List> keyValuePairs; + DateTime? inicio; + string plano; + string str; + string str1; + bool flag; + bool flag1; + bool flag2; + string str2; + string str3; + Item selectedItem = this.SelectedItem; + if (string.IsNullOrWhiteSpace(this.SelectedItem.get_Descricao())) + { + plano = this.SelectedItem.get_Vida().get_Plano(); + if (plano == null) + { + plano = ""; + } + } + else + { + plano = this.SelectedItem.get_Descricao(); + } + selectedItem.set_Descricao(plano); + this.SelectedItem.set_Titulares(titularesGrid); + List> keyValuePairs1 = this.SelectedItem.Validate(); + if (keyValuePairs1.Count <= 0) + { + Item item = this.SelectedItem; + item.set_Coberturas(await this.CoberturaViewModel.LimpaCoberturas()); + item = null; + if (this.SelectedItem.get_Documento().get_Ordem() <= 0) + { + str = ""; + } + else if (base.Mantido) + { + str = string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()); + } + else + { + str = (base.ItemSubstituido != null ? string.Format("SUBSTITUIÇÃO DO ITEM {0} NO ENDOSSO ORDEM {1}", base.ItemSubstituido.get_Ordem(), this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM INCLUÍDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + } + string str4 = str; + if (this.SelectedItem.get_Id() == 0) + { + this.SelectedItem.set_Status(str4); + } + await this._itemServico.DeleteTitulares(base.ExcluirTitulares); + base.ExcluirTitulares = new List(); + str1 = (this.SelectedItem.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str3 = str1; + this.SelectedItem = await this._itemServico.Save(this.SelectedItem); + foreach (TitularesVida titularesVida in titularesGrid) + { + titularesVida.set_IdItem(this.SelectedItem.get_Id()); + } + List titularesVidas = new List(); + foreach (TitularesVida titularesVida1 in titularesGrid) + { + if (titularesVida1.get_Id() != 0) + { + TitularesVida titularesVida2 = base.OldTitulares.First((TitularesVida x) => x.get_Id() == titularesVida1.get_Id()); + if (titularesVida1.get_Codigo() == titularesVida2.get_Codigo()) + { + inicio = titularesVida1.get_Inicio(); + DateTime? fim = titularesVida2.get_Inicio(); + if (inicio.HasValue == fim.HasValue) + { + flag = (inicio.HasValue ? inicio.GetValueOrDefault() != fim.GetValueOrDefault() : false); + } + else + { + flag = true; + } + if (!flag) + { + fim = titularesVida1.get_Fim(); + inicio = titularesVida2.get_Fim(); + if (fim.HasValue == inicio.HasValue) + { + flag1 = (fim.HasValue ? fim.GetValueOrDefault() != inicio.GetValueOrDefault() : false); + } + else + { + flag1 = true; + } + if (!flag1 && !(titularesVida1.get_Fatura() != titularesVida2.get_Fatura()) && !(titularesVida1.get_Nome() != titularesVida2.get_Nome()) && !(titularesVida1.get_Observacao() != titularesVida2.get_Observacao())) + { + inicio = titularesVida1.get_Nascimento(); + fim = titularesVida2.get_Nascimento(); + if (inicio.HasValue == fim.HasValue) + { + flag2 = (inicio.HasValue ? inicio.GetValueOrDefault() != fim.GetValueOrDefault() : false); + } + else + { + flag2 = true; + } + if (!flag2 && !(titularesVida1.get_Cpf() != titularesVida2.get_Cpf()) && !(titularesVida1.get_Matricula() != titularesVida2.get_Matricula())) + { + decimal? premio = titularesVida1.get_Premio(); + decimal? capital = titularesVida2.get_Premio(); + if ((premio.GetValueOrDefault() == capital.GetValueOrDefault()) & premio.HasValue == capital.HasValue) + { + capital = titularesVida1.get_Capital(); + premio = titularesVida2.get_Capital(); + if ((capital.GetValueOrDefault() == premio.GetValueOrDefault()) & capital.HasValue == premio.HasValue) + { + TipoTitular? tipo = titularesVida1.get_Tipo(); + TipoTitular? nullable = titularesVida2.get_Tipo(); + if (tipo.GetValueOrDefault() == nullable.GetValueOrDefault() & tipo.HasValue == nullable.HasValue && (object)titularesVida1.get_Dependente() == (object)titularesVida2.get_Dependente()) + { + continue; + } + } + } + } + } + } + } + titularesVidas.Add(titularesVida1); + } + else + { + inicio = titularesVida1.get_Inicio(); + if (!inicio.HasValue) + { + continue; + } + titularesVidas.Add(titularesVida1); + } + } + base.Titulares = new ObservableCollection(await this._itemServico.SaveTitulares(titularesVidas)); + if (this._itemServico.Sucesso) + { + if (base.ItemSubstituido != null) + { + str2 = (base.Mantido ? string.Format("ITEM ALTERADO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem()) : string.Format("ITEM SUBSTITUIDO NO ENDOSSO ORDEM {0}", this.SelectedItem.get_Documento().get_Ordem())); + string str5 = str2; + await this._itemServico.Substituir(base.ItemSubstituido, this.SelectedItem.get_Id(), str5); + } + base.Mantido = false; + await this.SelecionaItem(this.SelectedItem, false); + this.ItemSelecionado = this.SelectedItem; + if (this.Invoke) + { + ConsultaViewModel.ItemSelecionado = this.SelectedItem; + } + base.ToggleSnackBar(string.Concat(this.Ramo.get_Nome(), " SALVO COM SUCESSO"), true); + string str6 = string.Concat(str3, " ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable1 = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str6, id, nullable1, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str3 = null; + return keyValuePairs; + } + + private async void Seleciona(Item item) + { + base.Loading(true); + await base.PermissaoTela(3); + await this.SelecionaItem(item, true); + base.Loading(false); + } + + public async Task SelecionaItem(Item item, bool registrar = true) + { + Visibility visibility; + if (item == null || this.LastAccessId != item.get_Id() || this.LastAccessTela != 9) + { + base.Mantido = false; + List nums = new List() + { + (long)6, + (long)7, + (long)9, + (long)10, + (long)47, + (long)53, + (long)66 + }; + if (nums.Contains(this.Ramo.get_Id())) + { + VidaViewModel vidaViewModel = this; + visibility = (this.Ramo.get_Id() == (long)9 ? Visibility.Collapsed : Visibility.Visible); + vidaViewModel.AtualizarCamposSaude = visibility; + this.CoberturaViewModel.Ramo = this.Ramo; + if (this.CoberturaViewModel.CoberturasPadrao == null) + { + await this.CoberturaViewModel.SelectionaCoberturas(); + } + if (item == null || item.get_Id() == 0) + { + this.SelectedItem = null; + this.CoberturaViewModel.Coberturas = null; + base.IsVisible = Visibility.Visible; + base.Titulares = new ObservableCollection(); + } + else + { + base.Loading(true); + item = await this._itemServico.BuscarItemPorIdAsync(item.get_Id()); + Item item1 = item; + Vida vida = await this._itemServico.BuscaVida(item.get_Id()); + item1.set_Vida(vida); + item1 = null; + await base.CarregarTitulares(item.get_Id()); + this.SelectedItem = item; + this.SelectedItem.Initialize(); + this.Initialized = true; + this.CoberturaViewModel.Item = item; + await this.CoberturaViewModel.CancelarAlteracao(); + if (registrar) + { + string str = string.Concat("ACESSOU ITEM DE DESCRIÇÃO \"", this.SelectedItem.get_Descricao(), "\""); + long id = this.SelectedItem.get_Id(); + TipoTela? nullable = new TipoTela?(3); + object[] objArray = new object[] { this.SelectedItem.get_Id(), this.SelectedItem.get_Documento().get_Id(), this.SelectedItem.get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedItem.get_Documento().get_Controle().get_Cliente().get_Id() }; + base.RegistrarAcao(str, id, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}", objArray)); + } + this.LastAccessId = this.SelectedItem.get_Id(); + this.LastAccessTela = 3; + this.CodigoItem = this.SelectedItem.get_Id().ToString(); + base.Loading(false); + } + } + } + } + + public async void Substituir(Item item) + { + base.ItemSubstituido = item; + await this.Incluir(true); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/PerfilEmpresaViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/PerfilEmpresaViewModel.cs new file mode 100644 index 0000000..0c116ab --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/PerfilEmpresaViewModel.cs @@ -0,0 +1,274 @@ +using Gestor.Application.Helpers; +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.ViewModels.Generic; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using Gestor.Model.Helper; +using Gestor.Model.Resources; +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class PerfilEmpresaViewModel : BaseViewModel + { + private readonly PerfilEmpresaServico _servico; + + private readonly Controle _controle; + + private Visibility _ativaCampos = Visibility.Collapsed; + + private string _equipamentoSeguranca = ""; + + private string _equipamentoIncendio = ""; + + private bool _enableIncluirPerfil; + + private string _dataConstrucao; + + public long CancelPerfil; + + private PerfilEmpresa _selectedPerfilEmpresa = new PerfilEmpresa(); + + public Visibility AtivaCampos + { + get + { + return this._ativaCampos; + } + set + { + this._ativaCampos = value; + base.OnPropertyChanged("AtivaCampos"); + } + } + + public string DataConstrucao + { + get + { + return this._dataConstrucao; + } + set + { + string str; + if (value != null) + { + str = value.Replace(" ", ""); + } + else + { + str = null; + } + this._dataConstrucao = str; + base.OnPropertyChanged("DataConstrucao"); + } + } + + public bool EnableIncluirPerfil + { + get + { + return this._enableIncluirPerfil; + } + set + { + this._enableIncluirPerfil = value; + base.OnPropertyChanged("EnableIncluirPerfil"); + } + } + + public string EquipamentoIncendio + { + get + { + return this._equipamentoIncendio; + } + set + { + this._equipamentoIncendio = value; + base.OnPropertyChanged("EquipamentoIncendio"); + } + } + + public string EquipamentoSeguranca + { + get + { + return this._equipamentoSeguranca; + } + set + { + this._equipamentoSeguranca = value; + base.OnPropertyChanged("EquipamentoSeguranca"); + } + } + + public PerfilEmpresa SelectedPerfilEmpresa + { + get + { + return this._selectedPerfilEmpresa; + } + set + { + long? nullable; + this._selectedPerfilEmpresa = value; + if (value != null && value.get_Id() > (long)0) + { + this.CancelPerfil = value.get_Id(); + } + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedPerfilEmpresa"); + } + } + + public PerfilEmpresaViewModel(Controle controle) + { + this._servico = new PerfilEmpresaServico(); + this._controle = controle; + this.Seleciona(controle.get_Id()); + } + + public void CancelarAlteracao() + { + base.Loading(true); + base.Alterar(false); + base.Loading(false); + } + + public async Task Excluir() + { + if (this.SelectedPerfilEmpresa != null && this.SelectedPerfilEmpresa.get_Id() != 0) + { + if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + if (await this._servico.Delete(this.SelectedPerfilEmpresa)) + { + await this.SelecionaPerfil(this._controle.get_Id()); + base.Loading(false); + this.EnableIncluirPerfil = true; + this.AtivaCampos = Visibility.Collapsed; + this.DataConstrucao = null; + base.ToggleSnackBar("PERFIL EXCLUÍDO COM SUCESSO", true); + } + else + { + base.Loading(false); + } + } + } + } + + public void Incluir() + { + PerfilEmpresa perfilEmpresa = new PerfilEmpresa(); + perfilEmpresa.set_Controle(this._controle); + perfilEmpresa.set_Cliente(this._controle.get_Cliente()); + perfilEmpresa.set_ExclusivoDeposito(new bool?(false)); + perfilEmpresa.set_DivisaTerrenoBaldio(new bool?(false)); + perfilEmpresa.set_PatrimonioHistorio(new bool?(false)); + perfilEmpresa.set_PossuiTelhado(new bool?(false)); + perfilEmpresa.set_CaixasEletronicos(new bool?(false)); + perfilEmpresa.set_Isopainel(new bool?(false)); + perfilEmpresa.set_ConstrucaoReforma(new bool?(false)); + this.SelectedPerfilEmpresa = perfilEmpresa; + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + List> keyValuePairs1 = this.SelectedPerfilEmpresa.Validate(); + keyValuePairs1 = this.ValidateCampos(keyValuePairs1); + if (keyValuePairs1.Count <= 0) + { + if (this.DataConstrucao != null && this.DataConstrucao != "") + { + this.SelectedPerfilEmpresa.set_AnoConstrucao(new DateTime?(DateTime.Parse(string.Concat("01/01/", this.DataConstrucao)))); + } + this.SelectedPerfilEmpresa = await this._servico.Save(this.SelectedPerfilEmpresa); + if (this._servico.Sucesso) + { + await this.SelecionaPerfil(this._controle.get_Id()); + base.ToggleSnackBar("PERFIL SALVO COM SUCESSO", true); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + return keyValuePairs; + } + + private async void Seleciona(long id) + { + base.Loading(true); + await base.PermissaoTela(32); + await this.SelecionaPerfil(id); + base.Loading(false); + } + + private async Task SelecionaPerfil(long id) + { + base.Loading(true); + this.SelectedPerfilEmpresa = await this._servico.BuscarPerfis(id); + if (this.SelectedPerfilEmpresa == null) + { + this.EnableIncluirPerfil = true; + this.EquipamentoSeguranca = ""; + this.EquipamentoIncendio = ""; + } + else + { + this.EquipamentoSeguranca = BindingEnumHelper.ConcatenarDescricoesEnum(this.SelectedPerfilEmpresa.get_EquipamentoSeguranca()); + this.EquipamentoIncendio = BindingEnumHelper.ConcatenarDescricoesEnum(this.SelectedPerfilEmpresa.get_EquipamentoIncendio()); + if (this.SelectedPerfilEmpresa.get_AnoConstrucao().HasValue) + { + DateTime? anoConstrucao = this.SelectedPerfilEmpresa.get_AnoConstrucao(); + this.DataConstrucao = anoConstrucao.Value.Year.ToString(); + } + } + base.Loading(false); + } + + private List> ValidateCampos(List> errorMessages) + { + int num; + int num1; + if (this.DataConstrucao == null) + { + ValidationHelper.AddValue(errorMessages, "ANO DA CONSTRUÇÃO", Messages.get_DataInvalida(), true); + } + if (!int.TryParse(this.DataConstrucao, out num)) + { + ValidationHelper.AddValue(errorMessages, "ANO DA CONSTRUÇÃO", Messages.get_DataInvalida(), true); + } + if (this.DataConstrucao != null && int.TryParse(this.DataConstrucao, out num1) && (int.Parse(this.DataConstrucao) <= 1755 || int.Parse(this.DataConstrucao) >= 9999)) + { + ValidationHelper.AddValue(errorMessages, "ANO DA CONSTRUÇÃO", Messages.get_DataInvalida(), true); + } + return errorMessages; + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/PerfilViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/PerfilViewModel.cs new file mode 100644 index 0000000..dd3313a --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/PerfilViewModel.cs @@ -0,0 +1,183 @@ +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.ViewModels.Generic; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class PerfilViewModel : BaseViewModel + { + private readonly PerfilServico _servico; + + private readonly Controle _controle; + + public long CancelPerfil; + + private Perfil _selectedPerfil = new Perfil(); + + private ObservableCollection _perfis; + + public ObservableCollection Perfis + { + get + { + return this._perfis; + } + set + { + this._perfis = value; + base.OnPropertyChanged("Perfis"); + } + } + + public Perfil SelectedPerfil + { + get + { + return this._selectedPerfil; + } + set + { + long? nullable; + this._selectedPerfil = value; + if (value != null && value.get_Id() > (long)0) + { + this.CancelPerfil = value.get_Id(); + } + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedPerfil"); + } + } + + public PerfilViewModel(Controle controle) + { + this._servico = new PerfilServico(); + this._controle = controle; + this.Seleciona(controle.get_Id()); + } + + public void CancelarAlteracao() + { + base.Loading(true); + if (this.CancelPerfil > (long)0) + { + this.SelectedPerfil = this.Perfis.FirstOrDefault((Perfil x) => x.get_Id() == this.CancelPerfil); + } + base.Alterar(false); + base.Loading(false); + } + + public async Task Excluir() + { + if (this.SelectedPerfil != null && this.SelectedPerfil.get_Id() != 0) + { + if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + bool selectedPerfil = (object)this.SelectedPerfil == (object)this.Perfis.Last(); + if (await this._servico.Delete(this.SelectedPerfil)) + { + if (selectedPerfil) + { + int num = this.Perfis.IndexOf(this.SelectedPerfil); + if (num <= 0) + { + await this.SelecionaPerfis(this._controle.get_Id(), (long)0); + } + else + { + await this.SelecionaPerfis(this._controle.get_Id(), this.Perfis[num - 1].get_Id()); + } + } + else if (this.Perfis.Count > 0) + { + await this.SelecionaPerfis(this._controle.get_Id(), this.Perfis[this.Perfis.IndexOf(this.SelectedPerfil) + 1].get_Id()); + } + base.Loading(false); + base.ToggleSnackBar("PERFIL EXCLUÍDO COM SUCESSO", true); + } + else + { + base.Loading(false); + } + } + } + } + + public void Incluir() + { + Perfil perfil = new Perfil(); + perfil.set_Controle(this._controle); + perfil.set_Cliente(this._controle.get_Cliente()); + perfil.set_UsoProfissional(new bool?(false)); + perfil.set_AntiFurto(new Antifurto?(0)); + perfil.set_Isencao(new bool?(false)); + perfil.set_SeguroVida(new bool?(false)); + perfil.set_EstenderCobertura(new bool?(false)); + this.SelectedPerfil = perfil; + base.Alterar(true); + } + + public async Task>> Salvar() + { + List> keyValuePairs; + List> keyValuePairs1 = this.SelectedPerfil.Validate(); + if (keyValuePairs1.Count <= 0) + { + this.SelectedPerfil = await this._servico.Save(this.SelectedPerfil); + if (this._servico.Sucesso) + { + await this.SelecionaPerfis(this._controle.get_Id(), this.SelectedPerfil.get_Id()); + base.ToggleSnackBar("PERFIL SALVO COM SUCESSO", true); + base.Alterar(false); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + return keyValuePairs; + } + + private async void Seleciona(long id) + { + base.Loading(true); + await base.PermissaoTela(32); + await this.SelecionaPerfis(id, (long)0); + base.Loading(false); + } + + private async Task SelecionaPerfis(long id, long perfilId = 0L) + { + Perfil perfil; + base.Loading(true); + this.Perfis = new ObservableCollection(await this._servico.BuscarPerfis(id)); + PerfilViewModel perfilViewModel = this; + perfil = (perfilId == 0 ? this.Perfis.FirstOrDefault() : this.Perfis.First((Perfil x) => x.get_Id() == perfilId)); + perfilViewModel.SelectedPerfil = perfil; + base.Loading(false); + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/SinistroViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/SinistroViewModel.cs new file mode 100644 index 0000000..c7359e8 --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/SinistroViewModel.cs @@ -0,0 +1,2104 @@ +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; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Diagnostics; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows; + +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(new Func((ConfiguracaoSistema x) => x.get_Configuracao() == 49)); + + private bool _isAnotacoes = true; + + private List _tipoPerdaAuto = new List() + { + 1, + 2, + 4, + 3, + 8 + }; + + private List _tipoPerdaVida = new List() + { + 5, + 6, + 7, + 8 + }; + + private Credencial _selectedCredencial = new Credencial(); + + private List _credenciais = new List(); + + private ObservableCollection _itens = new ObservableCollection(); + + private ObservableCollection _itensFiltrados = new ObservableCollection(); + + private ObservableCollection _parceiros = new ObservableCollection(SinistroViewModel.GerarParceiros()); + + private bool _habilitarImprimirHistorico; + + private bool _habilitarEnviarHistorico; + + private Visibility _isVisibleImprimirHistorico; + + private Visibility _isVisibleIncluir; + + private Visibility _isVisibleTerceiro = Visibility.Collapsed; + + private Visibility _visibilityAuto = Visibility.Collapsed; + + private Visibility _visibilityVida = Visibility.Collapsed; + + 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 _controles = new List(); + + private ObservableCollection _controlesFiltrados = new ObservableCollection(); + + private ControleSinistro _selectedControle = new ControleSinistro(); + + private Sinistro _selectedSinistro; + + private string _codigoSinistro; + + private string _anotacoes; + + private string _anotacoesInternas; + + private string _telefonesMecanica; + + private string _telefonesFunileiro; + + public new string Anotacoes + { + get + { + return this._anotacoes; + } + set + { + this._anotacoes = value; + base.OnPropertyChanged("Anotacoes"); + } + } + + public string AnotacoesInternas + { + get + { + return this._anotacoesInternas; + } + set + { + this._anotacoesInternas = value; + base.OnPropertyChanged("AnotacoesInternas"); + } + } + + private bool Carregando + { + get; + set; + } + + public string CodigoSinistro + { + get + { + return this._codigoSinistro; + } + set + { + this._codigoSinistro = value; + base.OnPropertyChanged("CodigoSinistro"); + } + } + + public List Controles + { + get + { + return this._controles; + } + set + { + this._controles = value; + base.EnableIncluir = (value == null ? true : value.Count == 0); + base.OnPropertyChanged("Controles"); + } + } + + public ObservableCollection ControlesFiltrados + { + get + { + return this._controlesFiltrados; + } + set + { + this._controlesFiltrados = value; + this.IsExpandedSinistro = (value != null ? value.Count > 0 : false); + base.OnPropertyChanged("ControlesFiltrados"); + } + } + + public List Credenciais + { + get + { + return this._credenciais; + } + set + { + this._credenciais = value; + base.OnPropertyChanged("Credenciais"); + } + } + + public bool EditarObservacao + { + get + { + return this._editarObservacao; + } + set + { + this._editarObservacao = value; + base.OnPropertyChanged("EditarObservacao"); + } + } + + public int FiltroItens + { + get; + set; + } + + public bool HabilitarEnviarHistorico + { + get + { + return this._habilitarEnviarHistorico; + } + set + { + this._habilitarEnviarHistorico = value; + base.OnPropertyChanged("HabilitarEnviarHistorico"); + } + } + + public bool HabilitarImprimirHistorico + { + get + { + return this._habilitarImprimirHistorico; + } + set + { + this._habilitarImprimirHistorico = value; + base.OnPropertyChanged("HabilitarImprimirHistorico"); + } + } + + public bool IsAnotacoes + { + get + { + return this._isAnotacoes; + } + set + { + this._isAnotacoes = value; + base.OnPropertyChanged("IsAnotacoes"); + } + } + + public bool IsExpandedItem + { + get + { + return this._isExpandedItem; + } + set + { + this._isExpandedItem = value; + base.OnPropertyChanged("IsExpandedItem"); + } + } + + public bool IsExpandedSinistro + { + get + { + return this._isExpandedSinistro; + } + set + { + this._isExpandedSinistro = value; + base.OnPropertyChanged("IsExpandedSinistro"); + } + } + + public bool IsReadOnlyItem + { + get + { + return this._isReadOnlyItem; + } + set + { + this._isReadOnlyItem = value; + base.OnPropertyChanged("IsReadOnlyItem"); + } + } + + public Visibility IsVisibleImprimirHistorico + { + get + { + return this._isVisibleImprimirHistorico; + } + set + { + this._isVisibleImprimirHistorico = value; + base.OnPropertyChanged("IsVisibleImprimirHistorico"); + } + } + + public Visibility IsVisibleIncluir + { + get + { + return this._isVisibleIncluir; + } + set + { + this._isVisibleIncluir = value; + base.OnPropertyChanged("IsVisibleIncluir"); + } + } + + public Visibility IsVisibleTerceiro + { + get + { + return this._isVisibleTerceiro; + } + set + { + this._isVisibleTerceiro = value; + base.OnPropertyChanged("IsVisibleTerceiro"); + } + } + + public Item ItemSelecionado + { + get; + set; + } + + public ObservableCollection Itens + { + get + { + return this._itens; + } + set + { + this._itens = value; + base.OnPropertyChanged("Itens"); + } + } + + public ObservableCollection ItensFiltrados + { + get + { + return this._itensFiltrados; + } + set + { + this._itensFiltrados = value; + this.IsExpandedItem = (value != null ? value.Count > 0 : false); + base.OnPropertyChanged("ItensFiltrados"); + } + } + + public Visibility LiquidacaoVisibility + { + get + { + return this._liquidacaoVisibility; + } + set + { + this._liquidacaoVisibility = value; + base.OnPropertyChanged("LiquidacaoVisibility"); + } + } + + public bool MostrarLista + { + get + { + return this._mostrarLista; + } + set + { + this._mostrarLista = value; + base.OnPropertyChanged("MostrarLista"); + } + } + + public ObservableCollection Parceiros + { + get + { + return this._parceiros; + } + set + { + this._parceiros = value; + base.OnPropertyChanged("Parceiros"); + } + } + + public ControleSinistro SelectedControle + { + get + { + return this._selectedControle; + } + set + { + bool count; + this._selectedControle = value; + if (value != null) + { + base.EnableButtons = value.get_Id() > (long)0; + base.EnableIncluir = value.get_Id() > (long)0; + this.IsVisibleTerceiro = (value.get_Sinistros() == null || value.get_Sinistros() != null && value.get_Sinistros().Count < 2 ? Visibility.Collapsed : Visibility.Visible); + this.IsVisibleIncluir = (value.get_Sinistros() == null || !value.get_Sinistros().Any() ? Visibility.Visible : Visibility.Collapsed); + if (this.MostrarLista) + { + count = true; + } + else + { + List controles = this.Controles; + if (controles != null) + { + count = controles.Count > 1; + } + else + { + count = false; + } + } + this.MostrarLista = count; + } + base.OnPropertyChanged("SelectedControle"); + } + } + + public Credencial SelectedCredencial + { + get + { + return this._selectedCredencial; + } + set + { + this._selectedCredencial = value; + base.OnPropertyChanged("SelectedCredencial"); + } + } + + public Item SelectedItem + { + get + { + return this._selectedItem; + } + set + { + long? nullable; + this._selectedItem = value; + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedItem"); + } + } + + public Sinistro SelectedSinistro + { + get + { + return this._selectedSinistro; + } + set + { + long? nullable; + this._selectedSinistro = value; + this.Anotacoes = string.Empty; + this.AnotacoesInternas = string.Empty; + this.HabilitarImprimirHistorico = value != null; + this.HabilitarEnviarHistorico = value != null; + this.CodigoSinistro = (this.SelectedSinistro == null || this.SelectedSinistro.get_Id() == 0 ? "" : string.Format("CÓDIGO SINISTRO {0}", this.SelectedSinistro.get_Id())); + if (value != null && value.get_Id() != 0 && (this.LastAccessId != value.get_Id() || this.LastAccessTela != 7)) + { + base.RegistrarAcao(string.Format("ACESSOU SINISTRO DE ID \"{0}\"", value.get_Id()), value.get_Id(), new TipoTela?(7), string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}\nDESCRIÇÃO: \"{5}\"", new object[] { value.get_ControleSinistro().get_Item().get_Id(), value.get_ControleSinistro().get_Item().get_Documento().get_Id(), value.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Ramo().get_Nome(), value.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Nome(), value.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Id(), value.get_Descricao() })); + this.LastAccessId = value.get_Id(); + this.LastAccessTela = 7; + } + if (value != null) + { + nullable = new long?(value.get_Id()); + } + else + { + nullable = null; + } + base.VerificarEnables(nullable); + base.OnPropertyChanged("SelectedSinistro"); + } + } + + public string TelefonesFunileiro + { + get + { + return this._telefonesFunileiro; + } + set + { + this._telefonesFunileiro = value; + base.OnPropertyChanged("TelefonesFunileiro"); + } + } + + public string TelefonesMecanica + { + get + { + return this._telefonesMecanica; + } + set + { + this._telefonesMecanica = value; + base.OnPropertyChanged("TelefonesMecanica"); + } + } + + public List TipoPerdaAuto + { + get + { + return this._tipoPerdaAuto; + } + set + { + this._tipoPerdaAuto = value; + base.OnPropertyChanged("TipoPerdaAuto"); + } + } + + public List TipoPerdaVida + { + get + { + return this._tipoPerdaVida; + } + set + { + this._tipoPerdaVida = value; + base.OnPropertyChanged("TipoPerdaVida"); + } + } + + public bool TipoSinistroEnabled + { + get + { + return this._tipoSinistroEnabled; + } + set + { + this._tipoSinistroEnabled = value; + base.OnPropertyChanged("TipoSinistroEnabled"); + } + } + + public Visibility VisibilityAuto + { + get + { + return this._visibilityAuto; + } + set + { + this._visibilityAuto = value; + base.OnPropertyChanged("VisibilityAuto"); + } + } + + public Visibility VisibilityVida + { + get + { + return this._visibilityVida; + } + set + { + this._visibilityVida = value; + base.OnPropertyChanged("VisibilityVida"); + } + } + + public SinistroViewModel(Item item, bool attached) + { + bool documento; + bool vendedorPrincipal; + this._servico = new SinistroServico(); + this._itemServico = new ItemServico(); + this._clienteServico = new ClienteServico(); + this._documentoSelecionado = (attached ? ConsultaViewModel.DocumentoSelecionado : item.get_Documento()); + this.FiltroItens = ConsultaViewModel.FiltrarItens; + this.ItemSelecionado = ConsultaViewModel.ItemSelecionado; + if (!attached) + { + this.FiltroItens = 4; + this.ItemSelecionado = item; + } + if (item != null) + { + documento = item.get_Documento(); + } + else + { + documento = false; + } + if (documento) + { + Documento documentoSelecionado = ConsultaViewModel.DocumentoSelecionado; + if (documentoSelecionado != null) + { + vendedorPrincipal = documentoSelecionado.get_VendedorPrincipal(); + } + else + { + vendedorPrincipal = false; + } + if (vendedorPrincipal) + { + item.get_Documento().set_VendedorPrincipal(ConsultaViewModel.DocumentoSelecionado.get_VendedorPrincipal()); + } + } + this.Seleciona(item); + } + + public void AbrirInfo() + { + base.ShowDrawer(new InfoDrawer(this._documentoSelecionado, false), 0, false); + } + + public async Task BuscarClienteSinistro() + { + Cliente cliente = await this._itemServico.BuscarCliente(this.SelectedItem.get_Id()); + return cliente; + } + + public async void CancelarAlteracao() + { + // + // Current member / type: System.Void Gestor.Application.ViewModels.Seguros.SinistroViewModel::CancelarAlteracao() + // File path: C:\AggerSeguros\Gestor.Application.exe + // + // Product version: 0.0.0.0 + // Exception in: System.Void CancelarAlteracao() + // + // Object reference not set to an instance of an object. + // at Telerik.JustDecompiler.Decompiler.TypeInference.TypeInferer.FindLowestCommonAncestor(ICollection`1 typeNodes) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\TypeInference\TypeInferer.cs:line 515 + // at Telerik.JustDecompiler.Decompiler.TypeInference.TypeInferer.MergeWithLowestCommonAncestor() in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\TypeInference\TypeInferer.cs:line 459 + // at Telerik.JustDecompiler.Decompiler.TypeInference.TypeInferer.ProcessSingleConstraints() in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\TypeInference\TypeInferer.cs:line 378 + // at Telerik.JustDecompiler.Decompiler.TypeInference.TypeInferer.InferTypes() in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\TypeInference\TypeInferer.cs:line 331 + // at Telerik.JustDecompiler.Decompiler.ExpressionDecompilerStep.Process(DecompilationContext theContext, BlockStatement body) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\ExpressionDecompilerStep.cs:line 104 + // at Telerik.JustDecompiler.Decompiler.DecompilationPipeline.RunInternal(MethodBody body, BlockStatement block, ILanguage language) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\DecompilationPipeline.cs:line 100 + // at Telerik.JustDecompiler.Decompiler.DecompilationPipeline.Run(MethodBody body, ILanguage language) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\DecompilationPipeline.cs:line 72 + // at Telerik.JustDecompiler.Decompiler.Extensions.DecompileStateMachine(MethodBody body, DecompilationContext enclosingContext, BaseStateMachineRemoverStep removeStateMachineStep, Func`2 stateMachineDataSelector, DecompilationContext& decompilationContext) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\Extensions.cs:line 112 + // at Telerik.JustDecompiler.Decompiler.Extensions.DecompileAsyncStateMachine(MethodBody body, DecompilationContext enclosingContext, AsyncData& asyncData) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\Extensions.cs:line 150 + // at Telerik.JustDecompiler.Steps.RebuildAsyncStatementsStep.GetMoveNextStatements() in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Steps\RebuildAsyncStatementsStep.cs:line 161 + // at Telerik.JustDecompiler.Steps.RebuildAsyncStatementsStep.Match() in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Steps\RebuildAsyncStatementsStep.cs:line 76 + // at Telerik.JustDecompiler.Steps.RebuildAsyncStatementsStep.Process(DecompilationContext context, BlockStatement body) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Steps\RebuildAsyncStatementsStep.cs:line 36 + // at Telerik.JustDecompiler.Decompiler.DecompilationPipeline.RunInternal(MethodBody body, BlockStatement block, ILanguage language) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\DecompilationPipeline.cs:line 100 + // at Telerik.JustDecompiler.Decompiler.DecompilationPipeline.Run(MethodBody body, ILanguage language) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\DecompilationPipeline.cs:line 72 + // at Telerik.JustDecompiler.Decompiler.Extensions.Decompile(MethodBody body, ILanguage language, DecompilationContext& context, TypeSpecificContext typeContext) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\Extensions.cs:line 61 + // at Telerik.JustDecompiler.Decompiler.WriterContextServices.BaseWriterContextService.DecompileMethod(ILanguage language, MethodDefinition method, TypeSpecificContext typeContext) in D:\a\CodemerxDecompile\CodemerxDecompile\src\JustDecompileEngine\src\JustDecompiler.Shared\Decompiler\WriterContextServices\BaseWriterContextService.cs:line 133 + // + // mailto: JustDecompilePublicFeedback@telerik.com + + } + + private async Task CarregarControles(Item item) + { + List controleSinistros = await this._servico.BuscarControles(item.get_Id()); + SinistroViewModel list = this; + List controleSinistros1 = controleSinistros; + list.Controles = ( + from x in controleSinistros1 + orderby x.get_DataSinistro() descending + select x).ToList(); + this.ControlesFiltrados = new ObservableCollection(this.Controles); + } + + public void CarregarParceiros() + { + List parceiros = new List(); + Parceiro parceiro = new Parceiro(); + parceiro.set_Nome("NENHUM"); + parceiros.Add(parceiro); + List parceiros1 = parceiros; + parceiros1.AddRange( + from x in Recursos.Parceiros + orderby x.get_Nome() + select x); + this.Parceiros = new ObservableCollection(parceiros1); + } + + public async void EnviarLogEmail() + { + int? nullable; + string nome; + string email; + int? ordem; + List credenciais = this.Credenciais; + if (credenciais == null) + { + credenciais = await (new BaseServico()).BuscarCredenciais(); + } + this.Credenciais = credenciais; + SinistroViewModel sinistroViewModel = this; + List credencials = this.Credenciais; + Credencial credencial = credencials.FirstOrDefault((Credencial x) => x.get_IdUsuario() == Recursos.Usuario.get_Id()); + if (credencial == null) + { + credencial = this.Credenciais.FirstOrDefault(); + } + sinistroViewModel.SelectedCredencial = credencial; + ObservableCollection observableCollection = await this._clienteServico.BuscarEmailsAsync(this.SelectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Id()); + if (observableCollection.Count != 0) + { + Documento documento = await (new ApoliceServico()).BuscarApoliceAsync(this._documentoSelecionado.get_Id(), false, false); + SinistroViewModel sinistroViewModel1 = this; + Vendedor vendedorPrincipal = documento.get_VendedorPrincipal(); + if (vendedorPrincipal != null) + { + nome = vendedorPrincipal.get_Nome(); + } + else + { + nome = null; + } + string str = sinistroViewModel1.GerarHtmlSinistro(nome); + string str1 = (new Regex(".*<\\/title>")).Replace(str, " ").Trim(); + str1 = (new Regex("(<[^>]*>)|(p\\s?{[^}]*})|(\\r)|(\\n)")).Replace(str1, " ").Trim(); + str1 = str1.Replace("@page{ size: A4;} body; -webkit-print-color-adjust: exact; }", " "); + str1 = str1.Replace("NEW P { MARGIN-BOTTOM: 0; MARGIN-TOP: 0; }", " "); + MalaDireta malaDiretum = new MalaDireta(); + malaDiretum.set_Cliente(documento.get_Controle().get_Cliente()); + malaDiretum.set_ArquivoDigital(null); + malaDiretum.set_Sinistro(this.SelectedSinistro); + malaDiretum.set_Item(this.SelectedItem); + malaDiretum.set_Apolice(documento); + malaDiretum.set_Tela(7); + ClienteEmail clienteEmail = observableCollection.FirstOrDefault<ClienteEmail>(); + if (clienteEmail != null) + { + email = clienteEmail.get_Email(); + } + else + { + email = null; + } + malaDiretum.set_Email(email); + ClienteEmail clienteEmail1 = observableCollection.FirstOrDefault<ClienteEmail>(); + if (clienteEmail1 != null) + { + ordem = clienteEmail1.get_Ordem(); + } + else + { + nullable = null; + ordem = nullable; + } + nullable = ordem; + malaDiretum.set_Ordem(nullable.GetValueOrDefault()); + MalaDireta malaDiretum1 = malaDiretum; + if (Funcoes.IsWindowOpen<HosterWindow>("ENVIO DE E-MAIL")) + { + Funcoes.Destroy<HosterWindow>("ENVIO DE E-MAIL"); + } + List<MalaDireta> malaDiretas = new List<MalaDireta>() + { + malaDiretum1 + }; + (new HosterWindow(new MalaDiretaView(malaDiretas, string.Concat("HISTÓRICO DO SINISTRO DO ITEM ", this.SelectedItem.get_Descricao()), str, null), "ENVIO DE E-MAIL", new double?((double)1200), new double?((double)600), true)).ShowDialog(); + } + else + { + await base.ShowMessage("O CLIENTE NÃO POSSUI NENHUM E-MAIL CADASTRADO", "OK", "", false); + } + observableCollection = null; + } + + public async void Excluir() + { + Sinistro sinistro; + int? nullable; + bool valueOrDefault; + bool flag; + Sinistro sinistro1; + int num; + ControleSinistro controleSinistro; + if (this.SelectedSinistro != null && this.SelectedSinistro.get_Id() != 0) + { + if (await base.ShowMessage("DESEJA EXCLUIR?", "SIM", "NÃO", false)) + { + base.Loading(true); + string str = string.Format("EXCLUIU SINISTRO DE ID \"{0}\"", this.SelectedSinistro.get_Id()); + long id = this.SelectedSinistro.get_Id(); + TipoTela? nullable1 = new TipoTela?(7); + object[] objArray = new object[] { this.SelectedSinistro.get_ControleSinistro().get_Item().get_Id(), this.SelectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Id(), this.SelectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Ramo().get_Nome(), this.SelectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Nome(), this.SelectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Id(), this.SelectedSinistro.get_Id() }; + base.RegistrarAcao(str, id, nullable1, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}\nDESCRIÇÃO: {5}", objArray)); + if (this.SelectedControle.get_Sinistros().Count == 1) + { + List<ControleSinistro> controles = this.Controles; + controles.Remove(this.SelectedControle); + SinistroServico sinistroServico = this._servico; + ControleSinistro selectedControle = this.SelectedControle; + flag = (controles == null ? true : controles.Count == 0); + if (await sinistroServico.DeleteControle(selectedControle, flag)) + { + int num1 = this.ControlesFiltrados.IndexOf(this.SelectedControle); + this.Controles.Remove(this.SelectedControle); + this.ControlesFiltrados.Remove(this.SelectedControle); + this.ControlesFiltrados = new ObservableCollection<ControleSinistro>(this.ControlesFiltrados); + if (this.ControlesFiltrados.Count <= 0) + { + this.SelectedControle = new ControleSinistro(); + base.Alterar(false); + base.EnableMenu = false; + } + else + { + SinistroViewModel sinistroViewModel = this; + if (num1 < this.ControlesFiltrados.Count) + { + ObservableCollection<ControleSinistro> controlesFiltrados = this.ControlesFiltrados; + num = (num1 == 0 ? 1 : num1); + controleSinistro = controlesFiltrados.ElementAt<ControleSinistro>(num - 1); + } + else + { + controleSinistro = this.ControlesFiltrados.Last<ControleSinistro>(); + } + sinistroViewModel.SelectedControle = controleSinistro; + } + SinistroViewModel sinistroViewModel1 = this; + ControleSinistro selectedControle1 = this.SelectedControle; + if (selectedControle1 != null) + { + List<Sinistro> sinistros = selectedControle1.get_Sinistros(); + if (sinistros != null) + { + sinistro1 = sinistros.FirstOrDefault<Sinistro>(); + } + else + { + sinistro1 = null; + } + } + else + { + sinistro1 = null; + } + sinistroViewModel1.SelectedSinistro = sinistro1; + } + else + { + return; + } + } + else if (await this._servico.Delete(this.SelectedSinistro)) + { + int num2 = this.SelectedControle.get_Sinistros().IndexOf(this.SelectedSinistro); + this.SelectedControle.get_Sinistros().Remove(this.SelectedSinistro); + long id1 = this.SelectedControle.get_Id(); + this.SelectedControle = null; + this.SelectedControle = this.ControlesFiltrados.First<ControleSinistro>((ControleSinistro x) => x.get_Id() == id1); + SinistroViewModel sinistroViewModel2 = this; + sinistro = (num2 < this.SelectedControle.get_Sinistros().Count ? this.SelectedControle.get_Sinistros().ElementAt<Sinistro>(num2) : this.SelectedControle.get_Sinistros().Last<Sinistro>()); + sinistroViewModel2.SelectedSinistro = sinistro; + } + else + { + return; + } + if (this.Controles == null || this.Controles.Count == 0) + { + ItemServico itemServico = new ItemServico(); + Item item = await itemServico.BuscarItemPorIdAsync(this.SelectedItem.get_Id()); + item.set_Sinistrado(false); + await itemServico.Save(item); + itemServico = null; + } + if (this.ItensFiltrados.Count > 0 && this.ItensFiltrados != null) + { + Item item1 = this.ItensFiltrados.First<Item>((Item x) => x.get_Id() == this.SelectedItem.get_Id()); + ControleSinistro controleSinistro1 = this.SelectedControle; + if (controleSinistro1 != null) + { + List<Sinistro> sinistros1 = controleSinistro1.get_Sinistros(); + if (sinistros1 != null) + { + nullable = new int?(sinistros1.Count); + } + else + { + nullable = null; + } + int? nullable2 = nullable; + int num3 = 0; + valueOrDefault = nullable2.GetValueOrDefault() > num3 & nullable2.HasValue; + } + else + { + valueOrDefault = false; + } + item1.set_Sinistrado(valueOrDefault); + } + this.ItensFiltrados = new ObservableCollection<Item>(this.ItensFiltrados); + base.Loading(false); + base.ToggleSnackBar("SINISTRO EXCLUÍDO COM SUCESSO", true); + } + } + } + + public List<Item> FiltrarItem(string filter) + { + this.ItensFiltrados = (string.IsNullOrWhiteSpace(filter) ? this.Itens : new ObservableCollection<Item>( + from x in this.Itens + where ValidationHelper.RemoveDiacritics(x.get_Descricao().Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)) + orderby x.get_Ordem() + select x)); + return this.ItensFiltrados.ToList<Item>(); + } + + public List<ControleSinistro> FiltrarSinistro(string filter) + { + ControleSinistro controleSinistro; + this.ControlesFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<ControleSinistro>(this.Controles) : new ObservableCollection<ControleSinistro>(this.Controles.Where<ControleSinistro>((ControleSinistro x) => { + if (ValidationHelper.RemoveDiacritics(x.get_DataSinistro().ToString().Trim()).Contains(filter)) + { + return true; + } + if (x.get_Sinistros() == null || x.get_Sinistros().Count <= 0) + { + return false; + } + return ValidationHelper.RemoveDiacritics(x.get_Sinistros()[0].get_Numero().Trim()).Contains(filter); + }).OrderBy<ControleSinistro, DateTime?>((ControleSinistro x) => x.get_DataSinistro()))); + if (this.ControlesFiltrados.Count > 0) + { + controleSinistro = this.ControlesFiltrados.First<ControleSinistro>(); + } + else + { + controleSinistro = null; + } + this.SelectedControle = controleSinistro; + return this.ControlesFiltrados.ToList<ControleSinistro>(); + } + + public string GerarHtmlSinistro(string vendedorPrincipal = "") + { + DateTime? vigencia2; + bool? culpado; + string shortDateString; + string shortTimeString; + string str; + string str1; + string str2; + bool valueOrDefault; + string shortDateString1; + string str3 = "<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
"; + string str4 = ""; + foreach (Sinistro sinistro in + from x in this.SelectedControle.get_Sinistros() + orderby x.get_TipoSinistro() + select x) + { + str3 = string.Concat(str3, "

"); + str4 = (string.IsNullOrEmpty(str4) ? "CLIENTE" : string.Concat("TERCEIRO Nº ", sinistro.get_Numero())); + str3 = string.Concat(str3, str4, "

"); + str3 = string.Concat(str3, "
"); + int num = 0; + if (str4 == "CLIENTE") + { + string[] nome = new string[] { str3, ""; + str3 = string.Concat(nome); + num = 1; + string[] documento = new string[] { str3, ""; + str3 = string.Concat(documento); + num = 0; + string[] apolice = new string[] { str3, ""; + str3 = string.Concat(apolice); + num = 1; + string[] strArrays = new string[] { str3, ""; + str3 = string.Concat(strArrays); + num = 0; + vigencia2 = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Vigencia2(); + if (vigencia2.GetValueOrDefault().ToString(new CultureInfo("pt-BR")) != "01/01/0001 00:00:00") + { + vigencia2 = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Vigencia2(); + if (vigencia2.HasValue) + { + shortDateString1 = vigencia2.GetValueOrDefault().ToShortDateString(); + } + else + { + shortDateString1 = null; + } + } + else + { + shortDateString1 = "NÃO POSSUI"; + } + string str5 = shortDateString1; + string[] strArrays1 = new string[] { str3, ""; + str3 = string.Concat(strArrays1); + num = 1; + vendedorPrincipal = (sinistro.get_ControleSinistro().get_Item().get_Documento().get_VendedorPrincipal() == null ? vendedorPrincipal : sinistro.get_ControleSinistro().get_Item().get_Documento().get_VendedorPrincipal().get_Nome()); + string[] strArrays2 = new string[] { str3, ""; + str3 = string.Concat(strArrays2); + num = 0; + string[] nome1 = new string[] { str3, ""; + str3 = string.Concat(nome1); + } + num = 1; + string[] numero = new string[] { str3, ""; + str3 = string.Concat(numero); + num = 0; + string[] strArrays3 = new string[] { str3, ""; + str3 = string.Concat(strArrays3); + num = 1; + string[] strArrays4 = new string[] { str3, ""; + str3 = string.Concat(strArrays4); + num = 0; + string[] strArrays5 = new string[] { str3, ""; + str3 = string.Concat(strArrays5); + num = 1; + string[] str6 = new string[] { str3, ""; + str3 = string.Concat(str6); + num = 0; + string[] itemSinistrado = new string[] { str3, ""; + str3 = string.Concat(itemSinistrado); + num = 1; + string[] strArrays6 = new string[] { str3, ""; + str3 = string.Concat(strArrays6); + num = 0; + string[] str7 = new string[] { str3, ""; + str3 = string.Concat(str7); + num = 1; + string[] strArrays7 = new string[] { str3, ""; + str3 = string.Concat(strArrays7); + num = 0; + string[] str8 = new string[] { str3, ""; + str3 = string.Concat(str8); + num = 1; + string[] description = new string[] { str3, ""; + str3 = string.Concat(description); + str3 = string.Concat(str3, "
CLIENTE: "; + nome[4] = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Nome(); + nome[5] = "
DOCUMENTO DO SEGURADO: "; + documento[4] = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Documento(); + documento[5] = "
APÓLICE: "; + apolice[4] = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Apolice(); + apolice[5] = "
VIGÊNCIA INICIAL: "; + DateTime vigencia1 = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Vigencia1(); + strArrays[4] = vigencia1.ToShortDateString(); + strArrays[5] = "
VIGÊNCIA FINAL: "; + strArrays1[4] = str5; + strArrays1[5] = "
VENDEDOR PRINCIPAL: "; + strArrays2[4] = vendedorPrincipal; + strArrays2[5] = "
SEGURADORA: "; + nome1[4] = sinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Seguradora().get_Nome(); + nome1[5] = "
NÚMERO SINISTRO: "; + numero[4] = sinistro.get_Numero(); + numero[5] = "
DATA DO SINISTRO: "; + vigencia2 = sinistro.get_ControleSinistro().get_DataSinistro(); + if (vigencia2.HasValue) + { + shortDateString = vigencia2.GetValueOrDefault().ToShortDateString(); + } + else + { + shortDateString = null; + } + strArrays3[4] = shortDateString; + strArrays3[5] = "
HORA DO SINISTRO: "; + vigencia2 = sinistro.get_ControleSinistro().get_HoraSinistro(); + if (vigencia2.HasValue) + { + shortTimeString = vigencia2.GetValueOrDefault().ToShortTimeString(); + } + else + { + shortTimeString = null; + } + strArrays4[4] = shortTimeString; + strArrays4[5] = "
DATA/HORA ABERTURA: "; + vigencia2 = sinistro.get_DataReclamacao(); + strArrays5[4] = vigencia2.ToString(); + strArrays5[5] = "
DATA LIQUIDAÇÃO: "; + vigencia2 = sinistro.get_DataLiquidacao(); + str6[4] = vigencia2.ToString(); + str6[5] = "
DESCRIÇÃO DO BEM SINISTRADO: "; + itemSinistrado[4] = sinistro.get_ItemSinistrado(); + itemSinistrado[5] = "
VALOR ORÇADO: "; + decimal valorOrcado = sinistro.get_ValorOrcado(); + strArrays6[4] = valorOrcado.ToString("C", new CultureInfo("pt-BR", false)); + strArrays6[5] = "
VALOR LIBERADO: "; + valorOrcado = sinistro.get_ValorLiberado(); + str7[4] = valorOrcado.ToString("C", new CultureInfo("pt-BR", false)); + str7[5] = "
VALOR PAGO: "; + valorOrcado = sinistro.get_ValorPago(); + strArrays7[4] = valorOrcado.ToString("C", new CultureInfo("pt-BR", false)); + strArrays7[5] = "
VALOR FRANQUIA: "; + valorOrcado = sinistro.get_ValorFranquia(); + str8[4] = valorOrcado.ToString("C", new CultureInfo("pt-BR", false)); + str8[5] = "
SITUAÇÃO: "; + description[4] = ValidationHelper.GetDescription(sinistro.get_StatusSinistro()); + description[5] = "
"); + if (sinistro.get_SinistroAuto() != null) + { + str3 = string.Concat(str3, "
"); + num = 0; + string[] numeroBo = new string[] { str3, ""; + str3 = string.Concat(numeroBo); + num = 1; + string[] description1 = new string[] { str3, ""; + str3 = string.Concat(description1); + num = 0; + string str9 = str3; + str1 = (num % 2 == 0 ? "WhiteSmoke" : "White"); + culpado = sinistro.get_SinistroAuto().get_Culpado(); + if (string.Concat(""; + goto Label0; + } + Label1: + str2 = "NÃO"; + Label0: + str3 = string.Concat(str9, str2); + num = 1; + string[] strArrays8 = new string[] { str3, ""; + str3 = string.Concat(strArrays8); + num = 0; + string[] endereco = new string[] { str3, ""; + str3 = string.Concat(endereco); + num = 1; + string[] envolvido = new string[] { str3, ""; + str3 = string.Concat(envolvido); + num = 0; + string[] motorista = new string[] { str3, ""; + str3 = string.Concat(motorista); + num = 1; + string[] ddd = new string[] { str3, ""; + str3 = string.Concat(ddd); + num = 0; + string[] email = new string[] { str3, ""; + str3 = string.Concat(email); + str3 = string.Concat(str3, "
NÚMERO B.O.: "; + numeroBo[4] = sinistro.get_SinistroAuto().get_NumeroBo(); + numeroBo[5] = "
TIPO PERDA: "; + description1[4] = ValidationHelper.GetDescription(sinistro.get_SinistroAuto().get_TipoPerda()); + description1[5] = "
CONSIDERA-SE CULPADO? ", culpado.ToString()) != null) + { + SinistroAuto sinistroAuto = sinistro.get_SinistroAuto(); + if (sinistroAuto != null) + { + culpado = sinistroAuto.get_Culpado(); + bool flag = false; + valueOrDefault = culpado.GetValueOrDefault() == flag & culpado.HasValue; + } + else + { + valueOrDefault = false; + } + if (valueOrDefault) + { + goto Label1; + } + str2 = "SIM
ÚLTIMO DOC. ENVIADO: "; + strArrays8[4] = string.Format("{0:dd/MM/yyyy}", sinistro.get_SinistroAuto().get_UltimoDocEnviado()); + strArrays8[5] = "
ENDEREÇO: "; + endereco[4] = sinistro.get_SinistroAuto().get_Endereco(); + endereco[5] = "
ENVOLVIDO/PROPRIETÁRIO: "; + envolvido[4] = sinistro.get_SinistroAuto().get_Envolvido(); + envolvido[5] = "
MOTORISTA: "; + motorista[4] = sinistro.get_SinistroAuto().get_Motorista(); + motorista[5] = "
TELEFONE: ("; + ddd[4] = sinistro.get_SinistroAuto().get_Ddd(); + ddd[5] = ") "; + ddd[6] = sinistro.get_SinistroAuto().get_Telefone(); + ddd[7] = "
E-MAIL: "; + email[4] = sinistro.get_SinistroAuto().get_Email(); + email[5] = "
"); + str3 = string.Concat(str3, "
"); + num = 1; + string str10 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() != null ? sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Nome() : ""); + string[] strArrays9 = new string[] { str3, ""; + str3 = string.Concat(strArrays9); + num = 0; + string str11 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Ddd1()) && string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Telefone1()) ? "" : string.Concat("(", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Ddd1(), ") ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Telefone1())); + string str12 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Ddd2()) && string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Telefone2()) ? "" : string.Concat(" / (", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Ddd2(), ") ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Telefone2())); + string str13 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Ddd3()) && string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Telefone3()) ? "" : string.Concat(" / (", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Ddd3(), ") ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Telefone3())); + string[] strArrays10 = new string[] { str3, ""; + str3 = string.Concat(strArrays10); + num = 1; + string str14 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null ? "" : sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Email()); + string[] strArrays11 = new string[] { str3, ""; + str3 = string.Concat(strArrays11); + num = 0; + string str15 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Endereco()) ? "" : sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Endereco() ?? ""); + string str16 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Numero()) ? "" : string.Concat(", ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Numero())); + string str17 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Complemento()) ? "" : string.Concat(", ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Complemento())); + string str18 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Bairro()) ? "" : string.Concat(", ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Bairro())); + string str19 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Cidade()) ? "" : string.Concat(" - ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Cidade())); + string str20 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Uf()) ? "" : string.Concat(" - ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Uf())); + string str21 = (sinistro.get_SinistroAuto().get_ParceiroMecanica() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Cep()) ? "" : string.Concat(" - ", sinistro.get_SinistroAuto().get_ParceiroMecanica().get_Cep())); + string[] strArrays12 = new string[] { str3, ""; + str3 = string.Concat(strArrays12); + str3 = string.Concat(str3, "
PARCEIRO MECÂNICA: "; + strArrays9[4] = str10; + strArrays9[5] = "
CONTATOS: "; + strArrays10[4] = str11; + strArrays10[5] = str12; + strArrays10[6] = str13; + strArrays10[7] = "
EMAIL: "; + strArrays11[4] = str14; + strArrays11[5] = "
ENDEREÇO: "; + strArrays12[4] = str15; + strArrays12[5] = str16; + strArrays12[6] = str17; + strArrays12[7] = str18; + strArrays12[8] = str19; + strArrays12[9] = str20; + strArrays12[10] = str21; + strArrays12[11] = "
"); + str3 = string.Concat(str3, "
"); + num = 1; + str10 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() != null ? sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Nome() : ""); + string[] strArrays13 = new string[] { str3, ""; + str3 = string.Concat(strArrays13); + num = 0; + str11 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Ddd1()) && string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Telefone1()) ? "" : string.Concat("(", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Ddd1(), ") ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Telefone1())); + str12 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Ddd2()) && string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Telefone2()) ? "" : string.Concat(" / (", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Ddd2(), ") ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Telefone2())); + str13 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Ddd3()) && string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Telefone3()) ? "" : string.Concat(" / (", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Ddd3(), ") ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Telefone3())); + string[] strArrays14 = new string[] { str3, ""; + str3 = string.Concat(strArrays14); + num = 1; + str14 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null ? "" : sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Email()); + string[] strArrays15 = new string[] { str3, ""; + str3 = string.Concat(strArrays15); + num = 0; + str15 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Endereco()) ? "" : sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Endereco() ?? ""); + str16 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Numero()) ? "" : string.Concat(", ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Numero())); + str17 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Complemento()) ? "" : string.Concat(", ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Complemento())); + str18 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Bairro()) ? "" : string.Concat(", ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Bairro())); + str19 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Cidade()) ? "" : string.Concat(" - ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Cidade())); + str20 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Uf()) ? "" : string.Concat(" - ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Uf())); + str21 = (sinistro.get_SinistroAuto().get_ParceiroFunilaria() == null || string.IsNullOrEmpty(sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Cep()) ? "" : string.Concat(" - ", sinistro.get_SinistroAuto().get_ParceiroFunilaria().get_Cep())); + string[] strArrays16 = new string[] { str3, ""; + str3 = string.Concat(strArrays16); + str3 = string.Concat(str3, "
PARCEIRO FUNILARIA: "; + strArrays13[4] = str10; + strArrays13[5] = "
CONTATOS: "; + strArrays14[4] = str11; + strArrays14[5] = str12; + strArrays14[6] = str13; + strArrays14[7] = "
EMAIL: "; + strArrays15[4] = str14; + strArrays15[5] = "
ENDEREÇO: "; + strArrays16[4] = str15; + strArrays16[5] = str16; + strArrays16[6] = str17; + strArrays16[7] = str18; + strArrays16[8] = str19; + strArrays16[9] = str20; + strArrays16[10] = str21; + strArrays16[11] = "
"); + } + if (sinistro.get_SinistroVida() != null) + { + str3 = string.Concat(str3, "
"); + num = 1; + string[] description2 = new string[] { str3, ""; + str3 = string.Concat(description2); + num = 0; + string[] strArrays17 = new string[] { str3, ""; + str3 = string.Concat(strArrays17); + num = 1; + string[] description3 = new string[] { str3, ""; + str3 = string.Concat(description3); + num = 0; + string[] certObito = new string[] { str3, ""; + str3 = string.Concat(certObito); + num = 1; + string[] beneficiario = new string[] { str3, ""; + str3 = string.Concat(beneficiario); + str3 = string.Concat(str3, "
TIPO PERDA: "; + description2[4] = ValidationHelper.GetDescription(sinistro.get_SinistroVida().get_TipoPerda()); + description2[5] = "
AUXÍLIO FUNERAL: "; + culpado = sinistro.get_SinistroVida().get_AuxFuneral(); + if (culpado.HasValue) + { + culpado = sinistro.get_SinistroVida().get_AuxFuneral(); + if (!culpado.Value) + { + goto Label3; + } + str = "SIM"; + goto Label2; + } + Label3: + str = "NÃO"; + Label2: + strArrays17[4] = str; + strArrays17[5] = "
ESTADO CIVIL: "; + description3[4] = ValidationHelper.GetDescription(sinistro.get_SinistroVida().get_EstadoCivil()); + description3[5] = "
CERTIDÃO DE ÓBITO: "; + certObito[4] = sinistro.get_SinistroVida().get_CertObito(); + certObito[5] = "
BENEFICIÁRIO: "; + beneficiario[4] = sinistro.get_SinistroVida().get_Beneficiario(); + beneficiario[5] = "
"); + } + if (!string.IsNullOrWhiteSpace(sinistro.get_Descricao())) + { + str3 = string.Concat(str3, "
"); + str3 = string.Concat(str3, "

DESCRIÇÃO

"); + str3 = string.Concat(str3, "
"); + str3 = string.Concat(str3, "
", sinistro.get_Descricao(), "
"); + } + if (string.IsNullOrWhiteSpace(sinistro.get_Observacao())) + { + continue; + } + str3 = string.Concat(str3, "
"); + str3 = string.Concat(str3, "

HISTÓRICO

"); + str3 = string.Concat(str3, "
"); + str3 = string.Concat(str3, "
", sinistro.get_Observacao().Replace("", "").Replace("", ""), "
"); + } + str3 = string.Concat(str3, "
"); + return str3; + } + + private static List GerarParceiros() + { + List parceiros = new List(); + Parceiro parceiro = new Parceiro(); + parceiro.set_Nome("NENHUM"); + parceiros.Add(parceiro); + parceiros.AddRange( + from x in Recursos.Parceiros + orderby x.get_Nome() + select x); + return parceiros; + } + + internal void ImprimirHistorico() + { + string nome; + Vendedor vendedorPrincipal = this._documentoSelecionado.get_VendedorPrincipal(); + if (vendedorPrincipal != null) + { + nome = vendedorPrincipal.get_Nome(); + } + else + { + nome = null; + } + string str = this.GerarHtmlSinistro(nome); + string tempPath = Path.GetTempPath(); + string str1 = string.Format("{0}{1}_{2:ddMMyyyyhhmmss}.html", tempPath, (TipoTela)7, Funcoes.GetNetworkTime()); + StreamWriter streamWriter = new StreamWriter(str1, true, Encoding.UTF8); + streamWriter.Write(str); + streamWriter.Close(); + Process.Start(str1); + } + + public async void IncluirEnvolvido() + { + Sinistro sinistro = new Sinistro(); + sinistro.set_ControleSinistro(this.SelectedControle); + sinistro.set_TipoSinistro(new TipoSinistro?(1)); + sinistro.set_Ativo(true); + sinistro.set_StatusSinistro(new StatusSinistro?(1)); + Sinistro sinistro1 = sinistro; + long id = this._documentoSelecionado.get_Controle().get_Ramo().get_Id(); + long num = id - (long)5; + if (num <= (long)5) + { + switch ((uint)num) + { + case 0: + { + sinistro1.set_SinistroAuto(new SinistroAuto()); + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + } + case 1: + case 2: + case 4: + case 5: + { + sinistro1.set_SinistroVida(new SinistroVida()); + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + } + case 3: + { + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + } + } + } + else + { + } + if (id != (long)37) + { + goto Label3; + } + sinistro1.set_SinistroAuto(new SinistroAuto()); + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + sinistro1.set_SinistroVida(new SinistroVida()); + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + Label3: + if (id != (long)53) + { + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + } + else + { + sinistro1.set_SinistroVida(new SinistroVida()); + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + return; + } + if (!await base.ShowMessage("VOCÊ DESEJA COPIAR OS DADOS DO SINISTRADO PARA O TERCEIRO?", "SIM", "NÃO", false)) + { + sinistro1.set_DataReclamacao(new DateTime?(Funcoes.GetNetworkTime())); + } + else + { + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + sinistro1.set_Descricao(this.SelectedSinistro.get_Descricao()); + sinistro1.set_DataReclamacao(this.SelectedSinistro.get_DataReclamacao()); + if (sinistro1.get_SinistroAuto() != null) + { + if (this.SelectedSinistro.get_SinistroAuto() == null) + { + this.SelectedSinistro.set_SinistroAuto(new SinistroAuto()); + } + sinistro1.get_SinistroAuto().set_Endereco(this.SelectedSinistro.get_SinistroAuto().get_Endereco()); + } + } + this.IsReadOnlyItem = false; + this.SelectedSinistro = sinistro1; + base.Alterar(true); + sinistro1 = null; + } + + public async Task IncluirSinistro() + { + Sinistro sinistro; + long id; + decimal num; + ControleSinistro controleSinistro; + if (this.SelectedItem != null) + { + DateTime networkTime = Funcoes.GetNetworkTime(); + ControleSinistro controleSinistro1 = new ControleSinistro(); + controleSinistro1.set_DataSinistro(new DateTime?(networkTime)); + controleSinistro1.set_Item(this.SelectedItem); + controleSinistro = controleSinistro1; + ObservableCollection observableCollection = await this._itemServico.BuscarCoberturasPorItemAsync(this.SelectedItem.get_Id()); + Cobertura cobertura = observableCollection.FirstOrDefault((Cobertura x) => { + if (x.get_CoberturaPadrao() == null) + { + return false; + } + return x.get_CoberturaPadrao().get_Id() == (long)1; + }); + Sinistro sinistro1 = new Sinistro(); + sinistro1.set_ControleSinistro(controleSinistro); + sinistro1.set_TipoSinistro(new TipoSinistro?(0)); + sinistro1.set_Ativo(true); + sinistro1.set_DataReclamacao(new DateTime?(networkTime)); + sinistro1.set_StatusSinistro(new StatusSinistro?(1)); + sinistro1.set_ItemSinistrado(this.SelectedItem.get_Descricao()); + num = (cobertura != null ? cobertura.get_Franquia() : decimal.Zero); + sinistro1.set_ValorFranquia(num); + sinistro = sinistro1; + id = this._documentoSelecionado.get_Controle().get_Ramo().get_Id(); + long num1 = id - (long)5; + if (num1 <= (long)5) + { + switch ((uint)num1) + { + case 0: + { + goto Label0; + } + case 1: + case 2: + case 4: + case 5: + { + goto Label1; + } + case 3: + { + goto Label2; + } + } + } + else + { + } + if (id != (long)37) + { + goto Label3; + } + Label0: + SinistroAuto sinistroAuto = new SinistroAuto(); + sinistroAuto.set_Culpado(new bool?(false)); + sinistro.set_SinistroAuto(sinistroAuto); + Label2: + this.IsReadOnlyItem = true; + this.SelectedControle = controleSinistro; + this.SelectedSinistro = sinistro; + base.Alterar(true); + } + else + { + await base.ShowMessage("NECESSÁRIO INCLUIR O ITEM ANTES DE INCLUIR UM SINISTRO.", "OK", "", false); + } + controleSinistro = null; + return; + Label1: + sinistro.set_SinistroVida(new SinistroVida()); + goto Label2; + Label3: + if (id != (long)53) + { + goto Label2; + } + else + { + goto Label1; + } + goto Label2; + } + + internal async Task> ItemFiltrar(string value) + { + List items = await Task.Run>(() => this.FiltrarItem(value)); + return items; + } + + public async Task>> Salvar() + { + List> keyValuePairs; + string str; + bool id; + bool flag; + string str1; + List> keyValuePairs1 = this.SelectedSinistro.Validate(); + if (keyValuePairs1.Count <= 0) + { + Sinistro selectedSinistro = this.SelectedSinistro; + if (selectedSinistro.get_SinistroAuto() != null) + { + Parceiro parceiroFunilaria = selectedSinistro.get_SinistroAuto().get_ParceiroFunilaria(); + if (parceiroFunilaria != null) + { + id = parceiroFunilaria.get_Id() == (long)0; + } + else + { + id = false; + } + if (id) + { + selectedSinistro.get_SinistroAuto().set_ParceiroFunilaria(null); + } + Parceiro parceiroMecanica = selectedSinistro.get_SinistroAuto().get_ParceiroMecanica(); + if (parceiroMecanica != null) + { + flag = parceiroMecanica.get_Id() == (long)0; + } + else + { + flag = false; + } + if (flag) + { + selectedSinistro.get_SinistroAuto().set_ParceiroMecanica(null); + } + } + DateTime networkTime = Funcoes.GetNetworkTime(); + if (!string.IsNullOrWhiteSpace(this.Anotacoes) && !this.Anotacoes.IsEmpty()) + { + Sinistro sinistro = selectedSinistro; + object[] nome = new object[] { Recursos.Usuario.get_Nome(), Recursos.Usuario.get_Id(), networkTime, this.Anotacoes, selectedSinistro.get_Observacao() }; + sinistro.set_Observacao(string.Format("

{0}, ID: {1}, {2:g}
{3}



{4}", nome)); + } + if (!string.IsNullOrWhiteSpace(this.AnotacoesInternas) && !this.AnotacoesInternas.IsEmpty()) + { + Sinistro sinistro1 = selectedSinistro; + object[] objArray = new object[] { Recursos.Usuario.get_Nome(), Recursos.Usuario.get_Id(), networkTime, this.AnotacoesInternas, selectedSinistro.get_ObservacaoInterna() }; + sinistro1.set_ObservacaoInterna(string.Format("

{0}, ID: {1}, {2:g}
{3}



{4}", objArray)); + } + if (selectedSinistro.get_Id() != 0) + { + selectedSinistro.set_DataAlteracao(new DateTime?(DateTime.Now)); + selectedSinistro.set_IdUsuarioAlteracao(Recursos.Usuario.get_Id()); + } + else + { + selectedSinistro.set_DataCriacao(new DateTime?(DateTime.Now)); + selectedSinistro.set_IdUsuarioCriacao(Recursos.Usuario.get_Id()); + } + str = (selectedSinistro.get_Id() == 0 ? "INCLUIU" : "ALTEROU"); + str1 = str; + Sinistro sinistro2 = await this._servico.Save(selectedSinistro, this._documentoSelecionado.get_Controle().get_Ramo().get_Id()); + selectedSinistro = sinistro2; + if (this._servico.Sucesso) + { + await this.CarregarControles(selectedSinistro.get_ControleSinistro().get_Item()); + this.SelectedControle = this.ControlesFiltrados.First((ControleSinistro x) => x.get_Id() == selectedSinistro.get_ControleSinistro().get_Id()); + this.SelectedSinistro = this.SelectedControle.get_Sinistros().First((Sinistro x) => x.get_Id() == selectedSinistro.get_Id()); + Recursos.Parceiros = this.Parceiros.ToList(); + base.Alterar(false); + base.ToggleSnackBar("SINISTRO SALVO COM SUCESSO", true); + string str2 = string.Format("{0} SINISTRO DE ID \"{1}\"", str1, selectedSinistro.get_Id()); + long num = selectedSinistro.get_Id(); + TipoTela? nullable = new TipoTela?(7); + object[] id1 = new object[] { selectedSinistro.get_ControleSinistro().get_Item().get_Id(), selectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Id(), selectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Ramo().get_Nome(), selectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Nome(), selectedSinistro.get_ControleSinistro().get_Item().get_Documento().get_Controle().get_Cliente().get_Id(), selectedSinistro.get_Descricao() }; + base.RegistrarAcao(str2, num, nullable, string.Format("ID ITEM: {0}\nID DOCUMENTO: {1}\nRAMO: {2}\nCLIENTE: {3}\nID CLIENTE: {4}\nDESCRIÇÃO: \"{5}\"", id1)); + keyValuePairs = null; + } + else + { + keyValuePairs = null; + } + } + else + { + keyValuePairs = keyValuePairs1; + } + str1 = null; + return keyValuePairs; + } + + public async void Seleciona(Item item) + { + Visibility visibility; + Visibility visibility1; + base.Loading(true); + await base.PermissaoTela(7); + this.SelectedItem = this.ItemSelecionado; + SinistroViewModel sinistroViewModel = this; + visibility = (this._documentoSelecionado.get_Controle().get_Ramo().get_Id() == (long)5 ? Visibility.Visible : Visibility.Collapsed); + sinistroViewModel.VisibilityAuto = visibility; + SinistroViewModel sinistroViewModel1 = this; + visibility1 = (this._documentoSelecionado.get_Controle().get_Ramo().get_Id() == (long)6 ? Visibility.Visible : Visibility.Collapsed); + sinistroViewModel1.VisibilityVida = visibility1; + if (item != null) + { + await this.SelecionaControles(item); + base.Loading(false); + } + else + { + base.Loading(false); + } + } + + public void SelecionaControle(ControleSinistro controle) + { + List list; + bool sinistros; + if (this.Carregando) + { + return; + } + this.SelectedControle = controle; + ControleSinistro selectedControle = this.SelectedControle; + ControleSinistro controleSinistro = this.SelectedControle; + if (controleSinistro != null) + { + List sinistros1 = controleSinistro.get_Sinistros(); + if (sinistros1 != null) + { + list = ( + from x in sinistros1 + orderby x.get_Id() + select x).ToList(); + } + else + { + list = null; + } + } + else + { + list = null; + } + selectedControle.set_Sinistros(list); + if (this.Carregando) + { + return; + } + if (controle.get_Id() != this.SelectedControle.get_Id()) + { + this.SelectedControle = controle; + } + ControleSinistro selectedControle1 = this.SelectedControle; + if (selectedControle1 != null) + { + sinistros = selectedControle1.get_Sinistros(); + } + else + { + sinistros = false; + } + if (sinistros) + { + this.TipoSinistroEnabled = (!this.SelectedControle.get_Sinistros().Any((Sinistro x) => { + TipoSinistro? tipoSinistro = x.get_TipoSinistro(); + return tipoSinistro.GetValueOrDefault() == 0 & tipoSinistro.HasValue; + }) ? true : this.SelectedControle.get_Sinistros().Count <= 1); + } + } + + public async Task SelecionaControles(Item item) + { + Sinistro sinistro; + base.Loading(true); + await this.CarregarControles(item); + if (this.ControlesFiltrados.Count <= 0) + { + this.SelectedControle = new ControleSinistro(); + base.Alterar(false); + } + else + { + this.SelectedControle = this.ControlesFiltrados.FirstOrDefault(); + } + SinistroViewModel sinistroViewModel = this; + ControleSinistro selectedControle = this.SelectedControle; + if (selectedControle != null) + { + List sinistros = selectedControle.get_Sinistros(); + if (sinistros != null) + { + sinistro = sinistros.FirstOrDefault(); + } + else + { + sinistro = null; + } + } + else + { + sinistro = null; + } + sinistroViewModel.SelectedSinistro = sinistro; + base.Loading(false); + } + + public async void SelecionaItem(Item item) + { + if (!this.Carregando) + { + this.SelectedItem = item; + if (this.SelectedItem != null) + { + if (!this.Carregando) + { + if (item.get_Id() != this.SelectedItem.get_Id()) + { + this.SelectedItem = this.ItensFiltrados.FirstOrDefault((Item x) => x.get_Id() == item.get_Id()); + } + await this.SelecionaControles(item); + } + } + } + } + + public async Task SelecionaItens(int type, Item item = null) + { + bool count; + Item item1; + base.Loading(true); + this.Carregando = true; + switch (type) + { + case 1: + case 2: + { + this.Itens = await this._itemServico.BuscarItens(this._documentoSelecionado.get_Id(), 2); + break; + } + case 3: + { + this.Itens = await this._itemServico.BuscarItens(this._documentoSelecionado.get_Controle().get_Id(), 1); + break; + } + case 4: + { + this.Itens = await this._itemServico.BuscarItens(this._documentoSelecionado.get_Controle().get_Id(), 3); + break; + } + default: + { + this.Itens = await this._itemServico.BuscarItens(this._documentoSelecionado.get_Controle().get_Id(), 0); + break; + } + } + this.ItensFiltrados = this.Itens; + if (item != null && item.get_Id() > (long)0) + { + SinistroViewModel sinistroViewModel = this; + if (this.ItensFiltrados == null || this.ItensFiltrados.Count <= 0) + { + item1 = null; + } + else + { + item1 = this.ItensFiltrados.FirstOrDefault((Item x) => x.get_Id() == item.get_Id()); + } + sinistroViewModel.SelectedItem = item1; + } + SinistroViewModel sinistroViewModel1 = this; + if (this.MostrarLista) + { + count = true; + } + else + { + ObservableCollection itens = this.Itens; + if (itens != null) + { + count = itens.Count > 1; + } + else + { + count = false; + } + } + sinistroViewModel1.MostrarLista = count; + this.Carregando = false; + base.Loading(false); + } + + internal async Task> SinistroFiltrar(string value) + { + List controleSinistros = await Task.Run>(() => this.FiltrarSinistro(value)); + return controleSinistros; + } + } +} \ No newline at end of file diff --git a/Codemerx/Gestor.Application/ViewModels/Seguros/TrocarClienteViewModel.cs b/Codemerx/Gestor.Application/ViewModels/Seguros/TrocarClienteViewModel.cs new file mode 100644 index 0000000..35881fd --- /dev/null +++ b/Codemerx/Gestor.Application/ViewModels/Seguros/TrocarClienteViewModel.cs @@ -0,0 +1,92 @@ +using Gestor.Application.Servicos.Generic; +using Gestor.Application.Servicos.Seguros; +using Gestor.Application.ViewModels.Generic; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using System; +using System.Diagnostics; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; + +namespace Gestor.Application.ViewModels.Seguros +{ + public class TrocarClienteViewModel : BaseSegurosViewModel + { + private readonly ApoliceServico _apoliceServico; + + private readonly ClienteServico _clienteServico; + + private Documento _selectedDocumento; + + private Cliente _selectedCliente; + + public Cliente SelectedCliente + { + get + { + return this._selectedCliente; + } + set + { + base.OnPropertyChanged("SelectedCliente"); + this._selectedCliente = value; + } + } + + public Documento SelectedDocumento + { + get + { + return this._selectedDocumento; + } + set + { + base.OnPropertyChanged("SelectedDocumento"); + this._selectedDocumento = value; + } + } + + public TrocarClienteViewModel() + { + this._apoliceServico = new ApoliceServico(); + this._clienteServico = new ClienteServico(); + } + + public async Task Salvar() + { + bool flag; + Cliente cliente; + Documento selectedDocumento; + if (this.SelectedCliente == null) + { + flag = false; + } + else if (this.SelectedCliente.get_Id() != this.SelectedDocumento.get_Controle().get_Cliente().get_Id()) + { + cliente = await this._clienteServico.BuscarCliente(this.SelectedDocumento.get_Controle().get_Cliente().get_Id()); + selectedDocumento = this.SelectedDocumento; + this._apoliceServico.Sucesso = true; + await this._apoliceServico.Save(selectedDocumento.get_Controle(), this.SelectedCliente); + if (this._apoliceServico.Sucesso) + { + base.RegistrarAcao(string.Format("TROCOU O CLIENTE DO DOCUMENTO DE ID {0}", this.SelectedDocumento.get_Id()), this.SelectedDocumento.get_Id(), new TipoTela?(41), string.Format("CLIENTE ANTIGO: {0}\nNOVO CLIENTE: {1} ({2})", cliente.get_Nome(), this.SelectedCliente.get_Nome(), this.SelectedCliente.get_Id())); + this.SelectedCliente = selectedDocumento.get_Controle().get_Cliente(); + this.SelectedDocumento = selectedDocumento; + flag = true; + } + else + { + flag = false; + } + } + else + { + flag = false; + } + cliente = null; + selectedDocumento = null; + return flag; + } + } +} \ No newline at end of file -- cgit v1.2.3