using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class Vida : DomainBase, IDomain { private string _plano; public Item Item { get; set; } public string Plano { get { return _plano?.ToUpper(); } set { _plano = value; } } public int? Socios { get; set; } public int? Funcionarios { get; set; } public decimal? CapitalSocios { get; set; } public decimal? CapitalFuncionarios { get; set; } public string Observacao { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (string.IsNullOrWhiteSpace(Plano)) { list.AddValue("Plano", Messages.Obrigatorio); } if (Item?.Documento == null) { return list; } long id = Item.Documento.Controle.Ramo.Id; if (id == 7 || id == 10 || id == 53) { if (!Socios.HasValue || Socios < 0) { list.AddValue("Socios|SÓCIOS", Messages.Obrigatorio); } if (!Funcionarios.HasValue || Funcionarios < 0) { list.AddValue("Funcionarios|FUNCIONÁRIOS", Messages.Obrigatorio); } if (CapitalSocios.HasValue) { decimal? capitalSocios = CapitalSocios; if (!((capitalSocios.GetValueOrDefault() < default(decimal)) & capitalSocios.HasValue)) { goto IL_0133; } } list.AddValue("CapitalSocios|CAPITAL SÓCIO", Messages.Obrigatorio); goto IL_0133; } goto IL_017e; IL_017e: return list; IL_0133: if (CapitalFuncionarios.HasValue) { decimal? capitalSocios = CapitalFuncionarios; if (!((capitalSocios.GetValueOrDefault() < default(decimal)) & capitalSocios.HasValue)) { goto IL_017e; } } list.AddValue("CapitalFuncionarios|CAPITAL FUNCIONÁRIO", Messages.Obrigatorio); goto IL_017e; } public static List Log(Item item) { List list = new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("PLANO", string.IsNullOrWhiteSpace(item.Vida.Plano) ? "" : item.Vida.Plano, ""), new Tuple("DESCRIÇÃO", string.IsNullOrWhiteSpace(item.Descricao) ? "" : item.Descricao.ToUpper(), ""), new Tuple("SÓCIOS", (!item.Vida.Socios.HasValue) ? "" : item.Vida.Socios?.ToString(), ""), new Tuple("CAPITAL SÓCIO", (!item.Vida.CapitalSocios.HasValue) ? "" : item.Vida.CapitalSocios?.ToString(), ""), new Tuple("FUNCIONÁRIOS", (!item.Vida.Funcionarios.HasValue) ? "" : item.Vida.Funcionarios?.ToString(), ""), new Tuple("CAPITAL FUNCIONÁRIOS", (!item.Vida.CapitalFuncionarios.HasValue) ? "" : item.Vida.CapitalFuncionarios?.ToString(), ""), new Tuple("QUANTIDADE DE TITULARES", (!item.Vida.Socios.HasValue) ? "" : item.Vida.Socios?.ToString(), ""), new Tuple("QUANTIDADE DE BENEFICIÁRIOS", (!item.Vida.Funcionarios.HasValue) ? "" : item.Vida.Funcionarios?.ToString(), "") } } }; ObservableCollection> observableCollection = new ObservableCollection> { new Tuple("COBERTURAS$", "", "") }; foreach (Cobertura cobertura in item.Coberturas) { observableCollection.Add(new Tuple($" COBERTURA {item.Coberturas.IndexOf(cobertura) + 1}$", "", "")); observableCollection.Add(new Tuple(" OBSERVAÇÃO", string.IsNullOrWhiteSpace(cobertura.Observacao) ? "" : cobertura.Observacao.ToUpper(), "")); observableCollection.Add(new Tuple(" PRÊMIO", cobertura.Premio.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), "")); observableCollection.Add(new Tuple(" FRANQUIA", cobertura.Franquia.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), "")); observableCollection.Add(new Tuple(" L.M.I.", cobertura.Lmi.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), "")); } list.Add(new TupleList { Tuples = observableCollection }); return list; } }