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.Ferramentas/Recibo.cs | |
| parent | 225aa1499e37faf9d38257caabbadc68d78b427e (diff) | |
| download | gestor-0440c722a221b8068bbf388c1c0c51f0faff0451.tar.gz gestor-0440c722a221b8068bbf388c1c0c51f0faff0451.zip | |
Diffstat (limited to 'Gestor.Model/Gestor.Model.Domain.Ferramentas/Recibo.cs')
| -rw-r--r-- | Gestor.Model/Gestor.Model.Domain.Ferramentas/Recibo.cs | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/Gestor.Model/Gestor.Model.Domain.Ferramentas/Recibo.cs b/Gestor.Model/Gestor.Model.Domain.Ferramentas/Recibo.cs new file mode 100644 index 0000000..e02140e --- /dev/null +++ b/Gestor.Model/Gestor.Model.Domain.Ferramentas/Recibo.cs @@ -0,0 +1,134 @@ +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.Domain.Seguros; +using Gestor.Model.Helper; +using Gestor.Model.Resources; +using Gestor.Model.Validation; +using Newtonsoft.Json; + +namespace Gestor.Model.Domain.Ferramentas; + +public class Recibo : DomainBase, IDomain +{ + [Log(true)] + public TipoRecibo? Tipo { get; set; } + + [Log(true)] + public TipoPagamento? Pagamento { get; set; } + + [Log(true)] + public decimal Valor { get; set; } + + [Log(true)] + [Description("DATA DO RECIBO")] + public DateTime? DataRecibo { get; set; } + + [Log(true)] + public string Pagante { get; set; } + + [Log(true)] + [Description("DOCUMENTO PAGANTE")] + public string DocumentoPagante { get; set; } + + [Log(true)] + public string Recebedor { get; set; } + + [Log(true)] + [Description("DOCUMENTO RECEBEDOR")] + public string DocumentoRecebedor { get; set; } + + [Log(true)] + public string Referente { 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 (string.IsNullOrWhiteSpace(Referente)) + { + list.AddValue("Referente|REFERENTE À(AO)", Messages.Obrigatorio); + } + if (DataRecibo.HasValue && (DateTime.Compare(DataRecibo.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(DataRecibo.Value, new DateTime(9999, 12, 31)) > 0)) + { + list.AddValue("DataRecibo|DATA DO RECIBO", Messages.Obrigatorio); + } + if (!DataRecibo.HasValue) + { + list.AddValue("DataRecibo|DATA DO RECIBO", Messages.Obrigatorio); + } + if (string.IsNullOrWhiteSpace(DocumentoPagante)) + { + list.AddValue("DocumentoPagante|DOCUMENTO DO PAGANTE", Messages.Obrigatorio); + } + else if (!DocumentoPagante.ValidacaoDocumento()) + { + list.AddValue("DocumentoPagante|DOCUMENTO DO PAGANTE", Messages.Invalido); + } + if (string.IsNullOrWhiteSpace(DocumentoRecebedor)) + { + list.AddValue("DocumentoRecebedor|DOCUMENTO DO RECEBEDOR", Messages.Obrigatorio); + } + else if (!DocumentoRecebedor.ValidacaoDocumento()) + { + list.AddValue("DocumentoRecebedor|DOCUMENTO DO RECEBEDOR", Messages.Invalido); + } + if (string.IsNullOrWhiteSpace(Recebedor)) + { + list.AddValue("Recebedor", Messages.Obrigatorio); + } + if (string.IsNullOrWhiteSpace(Pagante)) + { + list.AddValue("Pagante", Messages.Obrigatorio); + } + if (!Pagamento.HasValue) + { + list.AddValue("Pagamento|FORMA DE PAGAMENTO", Messages.Obrigatorio); + } + if (!string.IsNullOrWhiteSpace(Referente) && Referente.Length >= 255) + { + list.AddValue("Referente|REFERENTE À(AO)", string.Format(Messages.MaiorQueLimite, 255)); + } + return list; + } + + public List<TupleList> Log() + { + List<TupleList> list = new List<TupleList>(); + TupleList tupleList = new TupleList(); + ObservableCollection<Tuple<string, string, string>> obj = new ObservableCollection<Tuple<string, string, string>> + { + new Tuple<string, string, string>("PAGANTE", string.IsNullOrWhiteSpace(Pagante) ? "" : Pagante, ""), + new Tuple<string, string, string>("DOCUMENTO PAGANTE", string.IsNullOrWhiteSpace(DocumentoPagante) ? "" : DocumentoPagante, ""), + new Tuple<string, string, string>("RECEBEDOR", string.IsNullOrWhiteSpace(Recebedor) ? "" : Recebedor, ""), + new Tuple<string, string, string>("DOCUMENTO", string.IsNullOrWhiteSpace(DocumentoRecebedor) ? "" : DocumentoRecebedor, ""), + new Tuple<string, string, string>("TIPO DO RECIBO", Tipo.GetDescription(), "") + }; + object item; + if (Pagamento.HasValue) + { + TipoPagamento? pagamento = Pagamento; + item = (pagamento.HasValue ? pagamento.GetValueOrDefault().GetDescription() : null); + } + else + { + item = ""; + } + obj.Add(new Tuple<string, string, string>("PAGAMENTO", (string)item, "")); + obj.Add(new Tuple<string, string, string>("VALOR", Valor.ToString(new CultureInfo("pt-BR")), "")); + obj.Add(new Tuple<string, string, string>("DATA DO RECIBO", DataRecibo?.ToShortDateString(), "")); + obj.Add(new Tuple<string, string, string>("PAGANTE", string.IsNullOrWhiteSpace(Pagante) ? "" : Pagante, "")); + obj.Add(new Tuple<string, string, string>("RECEBEDOR", string.IsNullOrWhiteSpace(Recebedor) ? "" : Recebedor, "")); + obj.Add(new Tuple<string, string, string>("REFERENTE", string.IsNullOrWhiteSpace(Referente) ? "" : Referente, "")); + tupleList.Tuples = obj; + list.Add(tupleList); + return list; + } +} |