diff options
Diffstat (limited to 'Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs')
| -rw-r--r-- | Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs | 421 |
1 files changed, 421 insertions, 0 deletions
diff --git a/Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs b/Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs new file mode 100644 index 0000000..54176db --- /dev/null +++ b/Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs @@ -0,0 +1,421 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Globalization; +using Gestor.Model.Attributes; +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 Sinistro : DomainBase, IDomain +{ + private string _numero; + + private DateTime? _dataReclamacao; + + private string _itemSinistrado; + + private string _descricao; + + private string _observacao; + + private string _motivo; + + private string _auxiliar; + + private string _observacaoInterna; + + private DateTime? _horaReclamacao; + + public ControleSinistro ControleSinistro { get; set; } + + [Log(true)] + public SinistroAuto SinistroAuto { get; set; } + + [Log(true)] + public SinistroVida SinistroVida { get; set; } + + [Log(true)] + public string Numero + { + get + { + return _numero?.ToUpper(); + } + set + { + _numero = value; + } + } + + [Log(true)] + [Description("DATA RECLAMAÇÃO")] + public DateTime? DataReclamacao + { + get + { + return _dataReclamacao; + } + set + { + if (value.HasValue) + { + if (!HoraReclamacao.HasValue) + { + HoraReclamacao = value; + } + _dataReclamacao = DateTime.Parse($"{value.Value:d} {HoraReclamacao.Value:T}"); + } + else + { + _dataReclamacao = null; + } + } + } + + public DateTime? HoraReclamacao + { + get + { + return _horaReclamacao; + } + set + { + _horaReclamacao = value; + if (value.HasValue) + { + DataReclamacao = (DataReclamacao.HasValue ? new DateTime?(DateTime.Parse($"{DataReclamacao.Value:d} {value:T}")) : null); + } + } + } + + [Log(true)] + [Description("DATA LIQUIDAÇÃO")] + public DateTime? DataLiquidacao { get; set; } + + public bool Ativo { get; set; } + + [Log(true)] + [Description("ITEM SINISTRADO")] + public string ItemSinistrado + { + get + { + return _itemSinistrado?.ToUpper(); + } + set + { + _itemSinistrado = value; + } + } + + [Log(true)] + [Description("DESCRIÇÃO")] + public string Descricao + { + get + { + return _descricao?.ToUpper(); + } + set + { + _descricao = value; + } + } + + public string Observacao + { + get + { + return _observacao; + } + set + { + _observacao = value; + } + } + + [Log(true)] + [Description("VALOR")] + public decimal Valor { get; set; } + + [Log(true)] + [Description("MOTIVO")] + public string Motivo + { + get + { + return _motivo?.ToUpper(); + } + set + { + _motivo = value; + } + } + + [Log(true)] + [Description("VALOR ORÇADO")] + public decimal ValorOrcado { get; set; } + + [Log(true)] + [Description("VALOR LIBERADO")] + public decimal ValorLiberado { get; set; } + + [Log(true)] + [Description("VALOR PAGO")] + public decimal ValorPago { get; set; } + + [Log(true)] + [Description("VALOR FRANQUIA")] + public decimal ValorFranquia { get; set; } + + [Log(true)] + [Description("AUXILIAR")] + public string Auxiliar + { + get + { + return _auxiliar?.ToUpper(); + } + set + { + _auxiliar = value; + } + } + + [Log(true)] + [Description("VALOR SALVADO")] + public decimal? ValorSalvado { get; set; } + + public string ObservacaoInterna + { + get + { + return _observacaoInterna; + } + set + { + _observacaoInterna = value; + } + } + + [Log(true)] + [Description("STATUS")] + public StatusSinistro? StatusSinistro { get; set; } + + [Log(true)] + [Description("TIPO")] + public TipoSinistro? TipoSinistro { get; set; } + + [Log(true)] + [Description("STATUS PERSONALIZADO")] + public string StatusPersonalizado { get; set; } + + [Log(true)] + [Description("DATA CRIACAO")] + public DateTime? DataCriacao { get; set; } + + [Log(true)] + [Description("USUARIO CRIACAO")] + public long IdUsuarioCriacao { get; set; } + + [Log(true)] + [Description("DATA CRIAÇÃO")] + public DateTime? DataAlteracao { get; set; } + + [Log(true)] + [Description("USUARIO ALTERACAO")] + public long IdUsuarioAlteracao { 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 (DataReclamacao.HasValue && (DateTime.Compare(DataReclamacao.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(DataReclamacao.Value, new DateTime(9999, 12, 31)) > 0)) + { + list.AddValue("DataReclamacao", string.Format(Messages.DataInvalida)); + } + if (HoraReclamacao.HasValue && (DateTime.Compare(HoraReclamacao.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(HoraReclamacao.Value, new DateTime(9999, 12, 31)) > 0)) + { + list.AddValue("HoraReclamacao", string.Format(Messages.DataInvalida)); + } + if (DataLiquidacao.HasValue && (DateTime.Compare(DataLiquidacao.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(DataLiquidacao.Value, new DateTime(9999, 12, 31)) > 0)) + { + list.AddValue("DataLiquidacao", string.Format(Messages.DataInvalida)); + } + if (ControleSinistro != null) + { + list.AddRange(ControleSinistro.Validate()); + } + if (!DataReclamacao.HasValue) + { + list.AddValue("DataReclamacao", Messages.Obrigatorio); + } + if (StatusSinistro.GetValueOrDefault() != Gestor.Model.Common.StatusSinistro.EmAndamento && !DataLiquidacao.HasValue) + { + list.AddValue("DataLiquidacao", Messages.Obrigatorio); + } + return list; + } + + public List<TupleList> Log() + { + List<TupleList> list = new List<TupleList>(); + TupleList tupleList = new TupleList(); + ObservableCollection<Tuple<string, string, string>> observableCollection = new ObservableCollection<Tuple<string, string, string>>(); + object item; + if (TipoSinistro.HasValue) + { + TipoSinistro? tipoSinistro = TipoSinistro; + item = (tipoSinistro.HasValue ? tipoSinistro.GetValueOrDefault().GetDescription() : null); + } + else + { + item = ""; + } + observableCollection.Add(new Tuple<string, string, string>("TIPO DO SINISTRO", (string)item, "")); + observableCollection.Add(new Tuple<string, string, string>("ITEM SINISTRADO", string.IsNullOrWhiteSpace(ItemSinistrado) ? "" : ItemSinistrado, "")); + observableCollection.Add(new Tuple<string, string, string>("NÚMERO DO SINISTRO", string.IsNullOrWhiteSpace(Numero) ? "" : Numero, "")); + observableCollection.Add(new Tuple<string, string, string>("DATA DO SINISTRO", (ControleSinistro == null) ? "" : ControleSinistro?.DataSinistro?.ToShortDateString(), "")); + observableCollection.Add(new Tuple<string, string, string>("HORA DO SINISTRO", (ControleSinistro == null) ? "" : ControleSinistro?.HoraSinistro?.ToShortTimeString(), "")); + observableCollection.Add(new Tuple<string, string, string>("DATA DA RECLAMAÇÃO", (!DataReclamacao.HasValue) ? "" : DataReclamacao?.ToShortDateString(), "")); + observableCollection.Add(new Tuple<string, string, string>("HORA DA RECLAMAÇÃO", (!HoraReclamacao.HasValue) ? "" : HoraReclamacao?.ToShortTimeString(), "")); + observableCollection.Add(new Tuple<string, string, string>("DATA DE LIQUIDAÇÃO", (!DataLiquidacao.HasValue) ? "" : DataLiquidacao?.ToShortDateString(), "")); + object item2; + if (StatusSinistro.HasValue) + { + StatusSinistro? statusSinistro = StatusSinistro; + item2 = (statusSinistro.HasValue ? statusSinistro.GetValueOrDefault().GetDescription() : null); + } + else + { + item2 = ""; + } + observableCollection.Add(new Tuple<string, string, string>("SITUAÇÃO", (string)item2, "")); + observableCollection.Add(new Tuple<string, string, string>("VALOR", Valor.ToString(new CultureInfo("pt-BR")), "")); + observableCollection.Add(new Tuple<string, string, string>("VALOR ORÇADO", ValorOrcado.ToString(new CultureInfo("pt-BR")), "")); + observableCollection.Add(new Tuple<string, string, string>("VALOR LIBERADO", ValorLiberado.ToString(new CultureInfo("pt-BR")), "")); + observableCollection.Add(new Tuple<string, string, string>("VALOR PAGO", ValorPago.ToString(new CultureInfo("pt-BR")), "")); + observableCollection.Add(new Tuple<string, string, string>("VALOR SALVADO", ValorSalvado.ToString(), "")); + observableCollection.Add(new Tuple<string, string, string>("VALOR FRANQUIA", ValorFranquia.ToString(new CultureInfo("pt-BR")), "")); + observableCollection.Add(new Tuple<string, string, string>("MOTIVO", string.IsNullOrWhiteSpace(Motivo) ? "" : Motivo, "")); + observableCollection.Add(new Tuple<string, string, string>("AUXILIAR", string.IsNullOrWhiteSpace(Auxiliar) ? "" : Auxiliar, "")); + observableCollection.Add(new Tuple<string, string, string>("DESCRIÇÃO", string.IsNullOrWhiteSpace(Descricao) ? "" : Descricao, "")); + tupleList.Tuples = observableCollection; + list.Add(tupleList); + List<TupleList> list2 = list; + ObservableCollection<Tuple<string, string, string>> tuples2; + object item4; + if (SinistroAuto != null) + { + list2[0].Tuples.Add(new Tuple<string, string, string>("NÚMERO DO B.O.", string.IsNullOrWhiteSpace(SinistroAuto?.NumeroBo) ? "" : SinistroAuto?.NumeroBo, "")); + ObservableCollection<Tuple<string, string, string>> tuples = list2[0].Tuples; + object item3; + if (SinistroAuto.TipoPerda.HasValue) + { + SinistroAuto sinistroAuto = SinistroAuto; + if (sinistroAuto == null) + { + item3 = null; + } + else + { + TipoPerda? tipoPerda = sinistroAuto.TipoPerda; + item3 = (tipoPerda.HasValue ? tipoPerda.GetValueOrDefault().GetDescription() : null); + } + } + else + { + item3 = ""; + } + tuples.Add(new Tuple<string, string, string>("TIPO DE PERDA", (string)item3, "")); + tuples2 = list2[0].Tuples; + if (SinistroAuto.Culpado.HasValue) + { + SinistroAuto sinistroAuto2 = SinistroAuto; + if (sinistroAuto2 == null || sinistroAuto2.Culpado != false) + { + item4 = "SIM"; + goto IL_0571; + } + } + item4 = "NÃO"; + goto IL_0571; + } + goto IL_0912; + IL_0912: + if (SinistroVida != null) + { + ObservableCollection<Tuple<string, string, string>> tuples3 = list2[0].Tuples; + SinistroVida sinistroVida = SinistroVida; + object item5; + if (sinistroVida != null && sinistroVida.TipoPerda.HasValue) + { + SinistroVida sinistroVida2 = SinistroVida; + if (sinistroVida2 == null) + { + item5 = null; + } + else + { + TipoPerda? tipoPerda = sinistroVida2.TipoPerda; + item5 = (tipoPerda.HasValue ? tipoPerda.GetValueOrDefault().GetDescription() : null); + } + } + else + { + item5 = ""; + } + tuples3.Add(new Tuple<string, string, string>("TIPO DE PERDA", (string)item5, "")); + ObservableCollection<Tuple<string, string, string>> tuples4 = list2[0].Tuples; + SinistroVida sinistroVida3 = SinistroVida; + tuples4.Add(new Tuple<string, string, string>("AUXÍLIO FUNERAL", (sinistroVida3 == null || !sinistroVida3.AuxFuneral.HasValue) ? "" : ((SinistroVida?.AuxFuneral.Value).Value ? "SIM" : "NÃO"), "")); + ObservableCollection<Tuple<string, string, string>> tuples5 = list2[0].Tuples; + SinistroVida sinistroVida4 = SinistroVida; + object item6; + if (sinistroVida4 != null && sinistroVida4.EstadoCivil.HasValue) + { + SinistroVida sinistroVida5 = SinistroVida; + if (sinistroVida5 == null) + { + item6 = null; + } + else + { + EstadoCivil? estadoCivil = sinistroVida5.EstadoCivil; + item6 = (estadoCivil.HasValue ? estadoCivil.GetValueOrDefault().GetDescription() : null); + } + } + else + { + item6 = ""; + } + tuples5.Add(new Tuple<string, string, string>("ESTADO CIVIL", (string)item6, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("CERTIDÃO DE ÓBITO", string.IsNullOrWhiteSpace(SinistroVida?.CertObito) ? "" : SinistroVida?.CertObito, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("BENEFICIÁRIO", string.IsNullOrWhiteSpace(SinistroVida?.Beneficiario) ? "" : SinistroVida?.Beneficiario, "")); + } + return list2; + IL_0571: + tuples2.Add(new Tuple<string, string, string>("CONSIDERA-SE CULPADO?", (string)item4, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("ÚLTIMO DOC. ENVIADO", (!SinistroAuto.UltimoDocEnviado.HasValue) ? "" : SinistroAuto?.UltimoDocEnviado?.ToShortDateString(), "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("ENDEREÇO", string.IsNullOrWhiteSpace(SinistroAuto?.Endereco) ? "" : SinistroAuto?.Endereco, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("ENVOLVIDO/PROPRIETÁRIO", string.IsNullOrWhiteSpace(SinistroAuto?.Envolvido) ? "" : SinistroAuto?.Envolvido, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("MOTORISTA", string.IsNullOrWhiteSpace(SinistroAuto?.Motorista) ? "" : SinistroAuto?.Motorista, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("DDD", string.IsNullOrWhiteSpace(SinistroAuto?.Ddd) ? "" : SinistroAuto?.Ddd, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("TELEFONE", string.IsNullOrWhiteSpace(SinistroAuto?.Telefone) ? "" : SinistroAuto?.Telefone, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("E-MAIL", string.IsNullOrWhiteSpace(SinistroAuto?.Email) ? "" : SinistroAuto?.Email, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("VALOR MECÂNICA", SinistroAuto?.ValorMecanica.ToString(new CultureInfo("pt-BR")), "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("PARCEIRO MECÂNICA", (SinistroAuto?.ParceiroMecanica == null) ? "" : SinistroAuto?.ParceiroMecanica?.Nome, "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("VALOR FUNILARIA", SinistroAuto?.ValorFunilaria.ToString(new CultureInfo("pt-BR")), "")); + list2[0].Tuples.Add(new Tuple<string, string, string>("PARCEIRO FUNILARIA", (SinistroAuto?.ParceiroFunilaria == null) ? "" : SinistroAuto?.ParceiroFunilaria?.Nome, "")); + goto IL_0912; + } +} |