summaryrefslogtreecommitdiff
path: root/Gestor.Model/Gestor.Model.Domain.Seguros/Patrimonial.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Gestor.Model/Gestor.Model.Domain.Seguros/Patrimonial.cs')
-rw-r--r--Gestor.Model/Gestor.Model.Domain.Seguros/Patrimonial.cs451
1 files changed, 451 insertions, 0 deletions
diff --git a/Gestor.Model/Gestor.Model.Domain.Seguros/Patrimonial.cs b/Gestor.Model/Gestor.Model.Domain.Seguros/Patrimonial.cs
new file mode 100644
index 0000000..5779e69
--- /dev/null
+++ b/Gestor.Model/Gestor.Model.Domain.Seguros/Patrimonial.cs
@@ -0,0 +1,451 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Globalization;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Helper;
+using Gestor.Model.Resources;
+using Gestor.Model.Validation;
+using Newtonsoft.Json;
+
+namespace Gestor.Model.Domain.Seguros;
+
+public class Patrimonial : EnderecoBase, IDomain
+{
+ private string _bens;
+
+ private string _imobiliaria;
+
+ private string _locatario;
+
+ private string _locatario2;
+
+ private string _locatario3;
+
+ private string _cpfLocatario1;
+
+ private string _cpfLocatario2;
+
+ private string _cpfLocatario3;
+
+ private string _contato;
+
+ private string _prefixo;
+
+ private string _telefone;
+
+ private TipoMoradia _tipoResidencia;
+
+ public Item Item { get; set; }
+
+ public string Bens
+ {
+ get
+ {
+ return _bens?.ToUpper();
+ }
+ set
+ {
+ _bens = value;
+ }
+ }
+
+ public TipoMoradia TipoMoradia
+ {
+ get
+ {
+ return _tipoResidencia;
+ }
+ set
+ {
+ _tipoResidencia = value;
+ }
+ }
+
+ public Utilizacao? Utilizacao { get; set; }
+
+ public string Imobiliaria
+ {
+ get
+ {
+ return _imobiliaria?.ToUpper();
+ }
+ set
+ {
+ _imobiliaria = value;
+ }
+ }
+
+ public string Contato
+ {
+ get
+ {
+ return _contato?.ToUpper();
+ }
+ set
+ {
+ _contato = value;
+ }
+ }
+
+ public TipoTelefone? Tipo { get; set; }
+
+ public string Prefixo
+ {
+ get
+ {
+ return _prefixo?.ToUpper().Trim();
+ }
+ set
+ {
+ _prefixo = value;
+ }
+ }
+
+ public string Telefone
+ {
+ get
+ {
+ return _telefone?.ToUpper().Trim();
+ }
+ set
+ {
+ _telefone = value;
+ }
+ }
+
+ public string Locatario1
+ {
+ get
+ {
+ return _locatario?.ToUpper();
+ }
+ set
+ {
+ _locatario = value;
+ }
+ }
+
+ public string CpfLocatario1
+ {
+ get
+ {
+ return _cpfLocatario1?.ToUpper();
+ }
+ set
+ {
+ _cpfLocatario1 = value;
+ }
+ }
+
+ public string PrefixoLocatario1 { get; set; }
+
+ public string TelefoneLocatario1 { get; set; }
+
+ public string Locatario2
+ {
+ get
+ {
+ return _locatario2?.ToUpper();
+ }
+ set
+ {
+ _locatario2 = value;
+ }
+ }
+
+ public string CpfLocatario2
+ {
+ get
+ {
+ return _cpfLocatario2?.ToUpper();
+ }
+ set
+ {
+ _cpfLocatario2 = value;
+ }
+ }
+
+ public string PrefixoLocatario2 { get; set; }
+
+ public string TelefoneLocatario2 { get; set; }
+
+ public string Locatario3
+ {
+ get
+ {
+ return _locatario3?.ToUpper();
+ }
+ set
+ {
+ _locatario3 = value;
+ }
+ }
+
+ public string CpfLocatario3
+ {
+ get
+ {
+ return _cpfLocatario3?.ToUpper();
+ }
+ set
+ {
+ _cpfLocatario3 = value;
+ }
+ }
+
+ public string PrefixoLocatario3 { get; set; }
+
+ public string TelefoneLocatario3 { get; set; }
+
+ [JsonIgnore]
+ public Func<List<KeyValuePair<string, string>>> ValidationEvent => Validate;
+
+ public List<KeyValuePair<string, string>> Validate()
+ {
+ List<KeyValuePair<string, string>> list = ValidationHelper.AddValue();
+ if (!string.IsNullOrWhiteSpace(Imobiliaria) && Imobiliaria.Length > 60)
+ {
+ list.AddValue("Imobiliaria", string.Format(Messages.MaiorQueLimite, 60));
+ }
+ if (!string.IsNullOrWhiteSpace(Locatario1) && Locatario1.Length > 100)
+ {
+ list.AddValue("Locatario1", string.Format(Messages.MaiorQueLimite, 100));
+ }
+ if (!string.IsNullOrWhiteSpace(Locatario2) && Locatario2.Length > 100)
+ {
+ list.AddValue("Locatario2", string.Format(Messages.MaiorQueLimite, 100));
+ }
+ if (!string.IsNullOrWhiteSpace(Locatario3) && Locatario3.Length > 100)
+ {
+ list.AddValue("Locatario3", string.Format(Messages.MaiorQueLimite, 100));
+ }
+ if (!string.IsNullOrWhiteSpace(CpfLocatario1) && !CpfLocatario1.ValidacaoDocumento())
+ {
+ list.AddValue("CpfLocatario1", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(CpfLocatario2) && !CpfLocatario2.ValidacaoDocumento())
+ {
+ list.AddValue("CpfLocatario2", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(CpfLocatario3) && !CpfLocatario3.ValidacaoDocumento())
+ {
+ list.AddValue("CpfLocatario3", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(Contato) && Contato.Length > 60)
+ {
+ list.AddValue("Contato", string.Format(Messages.MaiorQueLimite, 60));
+ }
+ if (!string.IsNullOrWhiteSpace(Prefixo) && !Prefixo.ValidacaoPrefixo())
+ {
+ list.AddValue("Prefixo", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(Telefone) && !Telefone.ValidacaoTelefone())
+ {
+ list.AddValue("Telefone", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(PrefixoLocatario1) && !PrefixoLocatario1.ValidacaoPrefixo())
+ {
+ list.AddValue("PrefixoLocatario1", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(TelefoneLocatario1) && !TelefoneLocatario1.ValidacaoTelefone())
+ {
+ list.AddValue("TelefoneLocatario1", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(PrefixoLocatario2) && !PrefixoLocatario2.ValidacaoPrefixo())
+ {
+ list.AddValue("PrefixoLocatario2", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(TelefoneLocatario2) && !TelefoneLocatario2.ValidacaoTelefone())
+ {
+ list.AddValue("TelefoneLocatario2", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(PrefixoLocatario3) && !PrefixoLocatario3.ValidacaoPrefixo())
+ {
+ list.AddValue("PrefixoLocatario3", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(TelefoneLocatario3) && !TelefoneLocatario3.ValidacaoTelefone())
+ {
+ list.AddValue("TelefoneLocatario3", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(base.Bairro) && base.Bairro.Length > 60)
+ {
+ list.AddValue("Bairro", string.Format(Messages.MaiorQueLimite, 60));
+ }
+ if (!string.IsNullOrWhiteSpace(base.Cidade) && base.Cidade.Length > 30)
+ {
+ list.AddValue("Cidade", string.Format(Messages.MaiorQueLimite, 30));
+ }
+ if (!string.IsNullOrWhiteSpace(base.Numero) && base.Numero.Length > 10)
+ {
+ list.AddValue("Numero", string.Format(Messages.MaiorQueLimite, 10));
+ }
+ if (string.IsNullOrWhiteSpace(base.Cep))
+ {
+ list.AddValue("Cep", Messages.Obrigatorio);
+ }
+ else if (!base.Cep.ValidacaoCep())
+ {
+ list.AddValue("Cep", Messages.Invalido);
+ }
+ if (string.IsNullOrWhiteSpace(base.Endereco))
+ {
+ list.AddValue("Endereco", Messages.Obrigatorio);
+ }
+ if (string.IsNullOrWhiteSpace(base.Numero))
+ {
+ list.AddValue("Numero", Messages.Obrigatorio);
+ }
+ if (string.IsNullOrWhiteSpace(base.Bairro))
+ {
+ list.AddValue("Bairro", Messages.Obrigatorio);
+ }
+ if (string.IsNullOrWhiteSpace(base.Cidade))
+ {
+ list.AddValue("Cidade", Messages.Obrigatorio);
+ }
+ if (string.IsNullOrWhiteSpace(base.Estado))
+ {
+ list.AddValue("Estado", Messages.Obrigatorio);
+ }
+ else if (!base.Estado.ValidacaoEstado())
+ {
+ list.AddValue("Estado", Messages.Invalido);
+ }
+ return list;
+ }
+
+ public List<KeyValuePair<string, string>> ValidateGarantia()
+ {
+ List<KeyValuePair<string, string>> list = ValidationHelper.AddValue();
+ if (!string.IsNullOrWhiteSpace(Locatario1) && Locatario1.Length > 100)
+ {
+ list.AddValue("Locatario1", string.Format(Messages.MaiorQueLimite, 100));
+ }
+ if (!string.IsNullOrWhiteSpace(Locatario2) && Locatario2.Length > 100)
+ {
+ list.AddValue("Locatario2", string.Format(Messages.MaiorQueLimite, 100));
+ }
+ if (!string.IsNullOrWhiteSpace(Locatario3) && Locatario3.Length > 100)
+ {
+ list.AddValue("Locatario3", string.Format(Messages.MaiorQueLimite, 100));
+ }
+ if (!string.IsNullOrWhiteSpace(CpfLocatario1) && !CpfLocatario1.ValidacaoDocumento())
+ {
+ list.AddValue("CpfLocatario1", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(CpfLocatario2) && !CpfLocatario2.ValidacaoDocumento())
+ {
+ list.AddValue("CpfLocatario2", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(CpfLocatario3) && !CpfLocatario3.ValidacaoDocumento())
+ {
+ list.AddValue("CpfLocatario3", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(PrefixoLocatario1) && !PrefixoLocatario1.ValidacaoPrefixo())
+ {
+ list.AddValue("PrefixoLocatario1", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(TelefoneLocatario1) && !TelefoneLocatario1.ValidacaoTelefone())
+ {
+ list.AddValue("TelefoneLocatario1", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(PrefixoLocatario2) && !PrefixoLocatario2.ValidacaoPrefixo())
+ {
+ list.AddValue("PrefixoLocatario2", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(TelefoneLocatario2) && !TelefoneLocatario2.ValidacaoTelefone())
+ {
+ list.AddValue("TelefoneLocatario2", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(PrefixoLocatario3) && !PrefixoLocatario3.ValidacaoPrefixo())
+ {
+ list.AddValue("PrefixoLocatario3", Messages.Invalido);
+ }
+ if (!string.IsNullOrWhiteSpace(TelefoneLocatario3) && !TelefoneLocatario3.ValidacaoTelefone())
+ {
+ list.AddValue("TelefoneLocatario3", Messages.Invalido);
+ }
+ return list;
+ }
+
+ public static List<TupleList> Log(Item item)
+ {
+ List<TupleList> list = new List<TupleList>
+ {
+ new TupleList
+ {
+ Tuples = new ObservableCollection<Tuple<string, string, string>>
+ {
+ new Tuple<string, string, string>("CEP", string.IsNullOrWhiteSpace(item.Patrimonial.Cep) ? "" : item.Patrimonial.Cep, ""),
+ new Tuple<string, string, string>("ENDEREÇO", string.IsNullOrWhiteSpace(item.Patrimonial.Endereco) ? "" : item.Patrimonial.Endereco.ToUpper(), ""),
+ new Tuple<string, string, string>("NÚMERO", string.IsNullOrWhiteSpace(item.Patrimonial.Numero) ? "" : item.Patrimonial.Numero, ""),
+ new Tuple<string, string, string>("COMPLEMENTO", string.IsNullOrWhiteSpace(item.Patrimonial.Complemento) ? "" : item.Patrimonial.Complemento.ToUpper(), ""),
+ new Tuple<string, string, string>("BAIRRO", string.IsNullOrWhiteSpace(item.Patrimonial.Bairro) ? "" : item.Patrimonial.Bairro.ToUpper(), ""),
+ new Tuple<string, string, string>("CIDADE", string.IsNullOrWhiteSpace(item.Patrimonial.Cidade) ? "" : item.Patrimonial.Cidade.ToUpper(), ""),
+ new Tuple<string, string, string>("ESTADO", string.IsNullOrWhiteSpace(item.Patrimonial.Estado) ? "" : item.Patrimonial.Estado.ToUpper(), ""),
+ new Tuple<string, string, string>("BENS", string.IsNullOrWhiteSpace(item.Patrimonial.Bens) ? "" : item.Patrimonial.Bens.ToUpper(), ""),
+ new Tuple<string, string, string>("OBSERVAÇÕES", string.IsNullOrWhiteSpace(item.Patrimonial.Item.Observacao) ? "" : item.Patrimonial.Item.Observacao.ToUpper(), "")
+ }
+ }
+ };
+ if (item.Documento.Controle.Ramo.Id == 15)
+ {
+ ObservableCollection<Tuple<string, string, string>> tuples = list[0].Tuples;
+ object item2;
+ if (item.Patrimonial.Utilizacao.HasValue)
+ {
+ Utilizacao? utilizacao = item.Patrimonial.Utilizacao;
+ item2 = (utilizacao.HasValue ? utilizacao.GetValueOrDefault().GetDescription() : null);
+ }
+ else
+ {
+ item2 = "";
+ }
+ tuples.Add(new Tuple<string, string, string>("UTILIZAÇÃO", (string)item2, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("IMOBILIÁRIA", string.IsNullOrWhiteSpace(item.Patrimonial.Imobiliaria) ? "" : item.Patrimonial.Imobiliaria.ToUpper(), ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("CONTATO", string.IsNullOrWhiteSpace(item.Patrimonial.Contato) ? "" : item.Patrimonial.Contato.ToUpper(), ""));
+ ObservableCollection<Tuple<string, string, string>> tuples2 = list[0].Tuples;
+ object item3;
+ if (item.Patrimonial.Tipo.HasValue)
+ {
+ TipoTelefone? tipo = item.Patrimonial.Tipo;
+ item3 = (tipo.HasValue ? tipo.GetValueOrDefault().GetDescription() : null);
+ }
+ else
+ {
+ item3 = "";
+ }
+ tuples2.Add(new Tuple<string, string, string>("TIPO TELEFONE", (string)item3, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("PREFIXO", string.IsNullOrWhiteSpace(item.Patrimonial.Prefixo) ? "" : item.Patrimonial.Prefixo.ToUpper(), ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("NÚMERO", string.IsNullOrWhiteSpace(item.Patrimonial.Telefone) ? "" : item.Patrimonial.Telefone.ToUpper(), ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("LOCATÁRIO 1", string.IsNullOrWhiteSpace(item.Patrimonial.Locatario1) ? "" : item.Patrimonial.Locatario1.ToUpper(), ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("PREFIXO LOCATÁRIO 1", string.IsNullOrWhiteSpace(item.Patrimonial.PrefixoLocatario1) ? "" : item.Patrimonial.PrefixoLocatario1, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("NÚMERO LOCATÁRIO 1", string.IsNullOrWhiteSpace(item.Patrimonial.TelefoneLocatario1) ? "" : item.Patrimonial.TelefoneLocatario1, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("LOCATÁRIO 2", string.IsNullOrWhiteSpace(item.Patrimonial.Locatario2) ? "" : item.Patrimonial.Locatario2.ToUpper(), ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("PREFIXO LOCATÁRIO 2", string.IsNullOrWhiteSpace(item.Patrimonial.PrefixoLocatario2) ? "" : item.Patrimonial.PrefixoLocatario2, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("NÚMERO LOCATÁRIO 2", string.IsNullOrWhiteSpace(item.Patrimonial.TelefoneLocatario2) ? "" : item.Patrimonial.TelefoneLocatario2, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("LOCATÁRIO 3", string.IsNullOrWhiteSpace(item.Patrimonial.Locatario3) ? "" : item.Patrimonial.Locatario3.ToUpper(), ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("PREFIXO LOCATÁRIO 3", string.IsNullOrWhiteSpace(item.Patrimonial.PrefixoLocatario3) ? "" : item.Patrimonial.PrefixoLocatario3, ""));
+ list[0].Tuples.Add(new Tuple<string, string, string>("NÚMERO LOCATÁRIO 3", string.IsNullOrWhiteSpace(item.Patrimonial.TelefoneLocatario3) ? "" : item.Patrimonial.TelefoneLocatario3, ""));
+ }
+ ObservableCollection<Tuple<string, string, string>> observableCollection = new ObservableCollection<Tuple<string, string, string>>
+ {
+ new Tuple<string, string, string>("COBERTURAS$", "", "")
+ };
+ foreach (Cobertura cobertura in item.Coberturas)
+ {
+ observableCollection.Add(new Tuple<string, string, string>($" COBERTURA {item.Coberturas.IndexOf(cobertura) + 1}$", "", ""));
+ observableCollection.Add(new Tuple<string, string, string>(" OBSERVAÇÃO", string.IsNullOrWhiteSpace(cobertura.Observacao) ? "" : cobertura.Observacao.ToUpper(), ""));
+ observableCollection.Add(new Tuple<string, string, string>(" PRÊMIO", cobertura.Premio.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""));
+ observableCollection.Add(new Tuple<string, string, string>(" FRANQUIA", cobertura.Franquia.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""));
+ observableCollection.Add(new Tuple<string, string, string>(" L.M.I.", cobertura.Lmi.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""));
+ }
+ list.Add(new TupleList
+ {
+ Tuples = observableCollection
+ });
+ return list;
+ }
+}