diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 17:17:46 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 17:17:46 +0000 |
| commit | 0440c722a221b8068bbf388c1c0c51f0faff0451 (patch) | |
| tree | 169cbf90c50ff7961db82ecb606c50c2a45a1688 /Gestor.Model/Gestor.Model.Domain.Seguros/Vendedor.cs | |
| parent | 225aa1499e37faf9d38257caabbadc68d78b427e (diff) | |
| download | gestor-master.tar.gz gestor-master.zip | |
Diffstat (limited to 'Gestor.Model/Gestor.Model.Domain.Seguros/Vendedor.cs')
| -rw-r--r-- | Gestor.Model/Gestor.Model.Domain.Seguros/Vendedor.cs | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/Gestor.Model/Gestor.Model.Domain.Seguros/Vendedor.cs b/Gestor.Model/Gestor.Model.Domain.Seguros/Vendedor.cs new file mode 100644 index 0000000..b9de3b4 --- /dev/null +++ b/Gestor.Model/Gestor.Model.Domain.Seguros/Vendedor.cs @@ -0,0 +1,245 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Globalization; +using System.Runtime.CompilerServices; +using Gestor.Model.Attributes; +using Gestor.Model.Common; +using Gestor.Model.Domain.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 Vendedor : EnderecoBase, IDomain, INotifyPropertyChanged +{ + private bool _selecionado; + + private string _nome; + + private string _documento; + + private string _conta; + + private string _agencia; + + private string _observacao; + + private string _titularConta; + + private string _documentoTitular; + + public bool Selecionado + { + get + { + return _selecionado; + } + set + { + if (value != _selecionado) + { + _selecionado = value; + OnPropertyChanged("Selecionado"); + } + } + } + + public Controle Controle { get; set; } + + public long IdEmpresa { get; set; } + + [Log(true)] + [Name(true)] + public string Nome + { + get + { + return _nome?.ToUpper(); + } + set + { + _nome = value; + } + } + + public TipoIncidenciaDesconto TipoIncidenciaDesconto { get; set; } + + public decimal? Desconto { get; set; } + + public string Documento + { + get + { + return _documento?.ToUpper().Trim(); + } + set + { + _documento = value; + } + } + + public string TitularConta + { + get + { + return _titularConta?.ToUpper(); + } + set + { + _titularConta = value; + } + } + + public string TitularDocumento + { + get + { + return _documentoTitular?.ToUpper().Trim(); + } + set + { + _documentoTitular = value; + } + } + + public Banco Banco { get; set; } + + public TipoConta TipoConta { get; set; } + + public string Conta + { + get + { + return _conta?.ToUpper().Trim(); + } + set + { + _conta = value; + } + } + + public string Agencia + { + get + { + return _agencia?.ToUpper().Trim(); + } + set + { + _agencia = value; + } + } + + public bool Corretora { get; set; } + + public bool Ativo { get; set; } + + public string Observacao + { + get + { + return _observacao?.ToUpper(); + } + set + { + _observacao = value; + } + } + + public List<VendedorTelefone> Telefones { get; set; } + + [JsonIgnore] + public Func<List<KeyValuePair<string, string>>> ValidationEvent => Validate; + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public List<KeyValuePair<string, string>> Validate() + { + List<KeyValuePair<string, string>> list = ValidationHelper.AddValue(); + if (string.IsNullOrEmpty(Nome)) + { + list.AddValue("Nome", Messages.Obrigatorio); + } + if (!string.IsNullOrWhiteSpace(Documento) && !Documento.ValidacaoDocumento()) + { + list.AddValue("Documento", Messages.Invalido); + } + if (!string.IsNullOrWhiteSpace(TitularDocumento) && !TitularDocumento.ValidacaoDocumento()) + { + list.AddValue("TitularDocumento", Messages.Invalido); + } + if (Telefones == null) + { + return list; + } + foreach (VendedorTelefone telefone in Telefones) + { + list.AddRange(telefone.Validate()); + } + return list; + } + + public List<TupleList> Log() + { + List<TupleList> list = new List<TupleList> + { + new TupleList + { + Tuples = new ObservableCollection<Tuple<string, string, string>> + { + new Tuple<string, string, string>("NOME", string.IsNullOrWhiteSpace(Nome) ? "" : Nome, ""), + new Tuple<string, string, string>("CPF", string.IsNullOrWhiteSpace(Documento) ? "" : Documento, ""), + new Tuple<string, string, string>("ATIVO", Ativo ? "SIM" : "NÃO", ""), + new Tuple<string, string, string>("BANCO", (Banco == null) ? "" : Banco.Nome, ""), + new Tuple<string, string, string>("AGÊNCIA", string.IsNullOrWhiteSpace(Agencia) ? "" : Agencia, ""), + new Tuple<string, string, string>("CONTA CORRENTE/POUPANÇA", string.IsNullOrWhiteSpace(Conta) ? "" : Conta, ""), + new Tuple<string, string, string>("TITULAR DA CONTA", string.IsNullOrWhiteSpace(TitularConta) ? "" : TitularConta, ""), + new Tuple<string, string, string>("DOCUMENTO TITULAR DA CONTA", string.IsNullOrWhiteSpace(TitularDocumento) ? "" : TitularDocumento, ""), + new Tuple<string, string, string>("TIPO CONTA", string.IsNullOrWhiteSpace(TipoConta.GetDescription()) ? "" : TipoConta.GetDescription(), ""), + new Tuple<string, string, string>("DESCONTO", (!Desconto.HasValue) ? "" : (Desconto / (decimal?)100)?.ToString("P", new CultureInfo("pt-BR", useUserOverride: false)), "") + } + } + }; + ObservableCollection<Tuple<string, string, string>> observableCollection = new ObservableCollection<Tuple<string, string, string>> + { + new Tuple<string, string, string>("CONTATOS$", "", "") + }; + if (Telefones != null && Telefones.Count != 0) + { + foreach (VendedorTelefone telefone in Telefones) + { + observableCollection.Add(new Tuple<string, string, string>($" CONTATO {Telefones.IndexOf(telefone) + 1}$", "", "")); + observableCollection.Add(new Tuple<string, string, string>(" NOME", string.IsNullOrWhiteSpace(telefone.Nome) ? "" : telefone.Nome, "")); + object item; + if (telefone.Tipo.HasValue) + { + TipoTelefone? tipo = telefone.Tipo; + item = (tipo.HasValue ? tipo.GetValueOrDefault().GetDescription() : null); + } + else + { + item = ""; + } + observableCollection.Add(new Tuple<string, string, string>(" TIPO DE TELEFONE", (string)item, "")); + observableCollection.Add(new Tuple<string, string, string>(" PREFIXO", string.IsNullOrWhiteSpace(telefone.Prefixo) ? "" : telefone.Prefixo, "")); + observableCollection.Add(new Tuple<string, string, string>(" NÚMERO DE TELEFONE", string.IsNullOrWhiteSpace(telefone.Numero) ? "" : telefone.Numero, "")); + observableCollection.Add(new Tuple<string, string, string>(" E-MAIL", string.IsNullOrWhiteSpace(telefone.Email) ? "" : telefone.Email, "")); + } + list.Add(new TupleList + { + Tuples = observableCollection + }); + } + return list; + } +} |