summaryrefslogtreecommitdiff
path: root/Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 17:17:46 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 17:17:46 +0000
commit0440c722a221b8068bbf388c1c0c51f0faff0451 (patch)
tree169cbf90c50ff7961db82ecb606c50c2a45a1688 /Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs
parent225aa1499e37faf9d38257caabbadc68d78b427e (diff)
downloadgestor-0440c722a221b8068bbf388c1c0c51f0faff0451.tar.gz
gestor-0440c722a221b8068bbf388c1c0c51f0faff0451.zip
some dllsHEADmaster
Diffstat (limited to 'Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs')
-rw-r--r--Gestor.Model/Gestor.Model.Domain.Seguros/Sinistro.cs421
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;
+ }
+}