using System; using System.Collections.Generic; using System.ComponentModel; using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class VendedorParcela : DomainBase, IDomain { private string _vCondRep; public bool Selecionado { get; set; } [Log(true)] public Vendedor Vendedor { get; set; } [Log(false)] public Documento Documento { get; set; } [Log(false)] public Parcela Parcela { get; set; } public string VCondRep { get { return _vCondRep?.ToUpper(); } set { _vCondRep = value; } } [Log(true)] [Description("VALOR REPASSE")] public decimal? ValorRepasse { get; set; } [Log(true)] [Description("PORCENTAGEM REPASSE")] public decimal? PorcentagemRepasse { get; set; } public decimal? ValorRepasseB { get; set; } [Log(true)] [Description("DATA DO PAGAMENTO")] public DateTime? DataPagamento { get; set; } public decimal? PorcentagemRepasseB { get; set; } [Log(true)] [Description("DATA PREVISÃO DE PAGAMENTO")] public DateTime? DataPrePagamento { get; set; } public decimal? ValorTotal { get; set; } public decimal? ValorTotalPago { get; set; } public Repasse Repasse { get; set; } public CondicaoRepasse CondicaoRepasse { get; set; } public TipoVendedor TipoVendedor { get; set; } public bool CoCorretagem { get; set; } public string RecebidoPorCompleto { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (DataPagamento.HasValue && (DateTime.Compare(DataPagamento.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(DataPagamento.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("DataPagamento", string.Format(Messages.DataInvalida)); } if (DataPrePagamento.HasValue && (DateTime.Compare(DataPrePagamento.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(DataPrePagamento.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("DataPrePagamento", string.Format(Messages.DataInvalida)); } if (Vendedor == null) { list.AddValue("Vendedor", Messages.Obrigatorio); } if (Documento == null) { list.AddValue("Documento", Messages.Obrigatorio); } if (Documento != null && Documento.Id > 0 && Parcela == null) { list.AddValue("Parcela", Messages.Obrigatorio); } if (Repasse == null) { list.AddValue("Repasse", Messages.Obrigatorio); } if (TipoVendedor == null && !CoCorretagem) { list.AddValue("TipoVendedor", Messages.Obrigatorio); } if (!PorcentagemRepasse.HasValue && !CoCorretagem) { list.AddValue("PorcentagemRepasse", Messages.Obrigatorio); } if (!ValorRepasse.HasValue) { list.AddValue("ValorRepasse", Messages.Obrigatorio); } if (Vendedor == null || Vendedor.Corretora) { return list; } if (PorcentagemRepasse.HasValue) { decimal? porcentagemRepasse = PorcentagemRepasse; if ((porcentagemRepasse.GetValueOrDefault() <= default(decimal)) & porcentagemRepasse.HasValue) { list.AddValue("PorcentagemRepasse", Messages.Invalido); } } if (ValorRepasse.HasValue) { decimal? porcentagemRepasse = ValorRepasse; if (((porcentagemRepasse.GetValueOrDefault() == default(decimal)) & porcentagemRepasse.HasValue) && !CoCorretagem) { list.AddValue("ValorRepasse", Messages.Invalido); } } if (Repasse != null && Documento != null && Documento.TipoRecebimento.GetValueOrDefault() == TipoRecebimento.Parcela && Repasse.Base.GetValueOrDefault() == BaseRepasse.Transmissao && (!Documento.Remessa.HasValue || DateTime.Compare(Documento.Remessa.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(Documento.Remessa.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("TRANSMISSÃO DA PROPOSTA", string.Format(Messages.DataInvalida)); } return list; } }