summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Model/Model.Domain.Ferramentas/Recibo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Codemerx/Gestor.Model/Model.Domain.Ferramentas/Recibo.cs')
-rw-r--r--Codemerx/Gestor.Model/Model.Domain.Ferramentas/Recibo.cs202
1 files changed, 202 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Model/Model.Domain.Ferramentas/Recibo.cs b/Codemerx/Gestor.Model/Model.Domain.Ferramentas/Recibo.cs
new file mode 100644
index 0000000..c598a07
--- /dev/null
+++ b/Codemerx/Gestor.Model/Model.Domain.Ferramentas/Recibo.cs
@@ -0,0 +1,202 @@
+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;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Globalization;
+using System.Runtime.CompilerServices;
+
+namespace Gestor.Model.Domain.Ferramentas
+{
+ public class Recibo : DomainBase, IDomain
+ {
+ [Description("DATA DO RECIBO")]
+ [Log(true)]
+ public DateTime? DataRecibo
+ {
+ get;
+ set;
+ }
+
+ [Description("DOCUMENTO PAGANTE")]
+ [Log(true)]
+ public string DocumentoPagante
+ {
+ get;
+ set;
+ }
+
+ [Description("DOCUMENTO RECEBEDOR")]
+ [Log(true)]
+ public string DocumentoRecebedor
+ {
+ get;
+ set;
+ }
+
+ [Log(true)]
+ public TipoPagamento? Pagamento
+ {
+ get;
+ set;
+ }
+
+ [Log(true)]
+ public string Pagante
+ {
+ get;
+ set;
+ }
+
+ [Log(true)]
+ public string Recebedor
+ {
+ get;
+ set;
+ }
+
+ [Log(true)]
+ public string Referente
+ {
+ get;
+ set;
+ }
+
+ [Log(true)]
+ public TipoRecibo? Tipo
+ {
+ get;
+ set;
+ }
+
+ [JsonIgnore]
+ public Func<List<KeyValuePair<string, string>>> ValidationEvent
+ {
+ get
+ {
+ Recibo recibo = this;
+ return new Func<List<KeyValuePair<string, string>>>(recibo.Validate);
+ }
+ }
+
+ [Log(true)]
+ public decimal Valor
+ {
+ get;
+ set;
+ }
+
+ public Recibo()
+ {
+ }
+
+ public List<TupleList> Log()
+ {
+ string description;
+ string shortDateString;
+ List<TupleList> tupleLists = new List<TupleList>();
+ TupleList tupleList = new TupleList();
+ ObservableCollection<Tuple<string, string, string>> observableCollection = new ObservableCollection<Tuple<string, string, string>>()
+ {
+ new Tuple<string, string, string>("PAGANTE", (string.IsNullOrWhiteSpace(this.Pagante) ? "" : this.Pagante), ""),
+ new Tuple<string, string, string>("DOCUMENTO PAGANTE", (string.IsNullOrWhiteSpace(this.DocumentoPagante) ? "" : this.DocumentoPagante), ""),
+ new Tuple<string, string, string>("RECEBEDOR", (string.IsNullOrWhiteSpace(this.Recebedor) ? "" : this.Recebedor), ""),
+ new Tuple<string, string, string>("DOCUMENTO", (string.IsNullOrWhiteSpace(this.DocumentoRecebedor) ? "" : this.DocumentoRecebedor), ""),
+ new Tuple<string, string, string>("TIPO DO RECIBO", this.Tipo.GetDescription(), "")
+ };
+ TipoPagamento? pagamento = this.Pagamento;
+ if (!pagamento.HasValue)
+ {
+ description = "";
+ }
+ else
+ {
+ pagamento = this.Pagamento;
+ if (pagamento.HasValue)
+ {
+ description = pagamento.GetValueOrDefault().GetDescription();
+ }
+ else
+ {
+ description = null;
+ }
+ }
+ observableCollection.Add(new Tuple<string, string, string>("PAGAMENTO", description, ""));
+ decimal valor = this.Valor;
+ observableCollection.Add(new Tuple<string, string, string>("VALOR", valor.ToString(new CultureInfo("pt-BR")), ""));
+ DateTime? dataRecibo = this.DataRecibo;
+ if (dataRecibo.HasValue)
+ {
+ shortDateString = dataRecibo.GetValueOrDefault().ToShortDateString();
+ }
+ else
+ {
+ shortDateString = null;
+ }
+ observableCollection.Add(new Tuple<string, string, string>("DATA DO RECIBO", shortDateString, ""));
+ observableCollection.Add(new Tuple<string, string, string>("PAGANTE", (string.IsNullOrWhiteSpace(this.Pagante) ? "" : this.Pagante), ""));
+ observableCollection.Add(new Tuple<string, string, string>("RECEBEDOR", (string.IsNullOrWhiteSpace(this.Recebedor) ? "" : this.Recebedor), ""));
+ observableCollection.Add(new Tuple<string, string, string>("REFERENTE", (string.IsNullOrWhiteSpace(this.Referente) ? "" : this.Referente), ""));
+ tupleList.Tuples = observableCollection;
+ tupleLists.Add(tupleList);
+ return tupleLists;
+ }
+
+ public List<KeyValuePair<string, string>> Validate()
+ {
+ List<KeyValuePair<string, string>> keyValuePairs = ValidationHelper.AddValue();
+ if (string.IsNullOrWhiteSpace(this.Referente))
+ {
+ keyValuePairs.AddValue<string, string>("Referente|REFERENTE À(AO)", Messages.Obrigatorio, true);
+ }
+ if (this.DataRecibo.HasValue && (DateTime.Compare(this.DataRecibo.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(this.DataRecibo.Value, new DateTime(9999, 12, 31)) > 0))
+ {
+ keyValuePairs.AddValue<string, string>("DataRecibo|DATA DO RECIBO", Messages.Obrigatorio, true);
+ }
+ if (!this.DataRecibo.HasValue)
+ {
+ keyValuePairs.AddValue<string, string>("DataRecibo|DATA DO RECIBO", Messages.Obrigatorio, true);
+ }
+ if (string.IsNullOrWhiteSpace(this.DocumentoPagante))
+ {
+ keyValuePairs.AddValue<string, string>("DocumentoPagante|DOCUMENTO DO PAGANTE", Messages.Obrigatorio, true);
+ }
+ else if (!this.DocumentoPagante.ValidacaoDocumento())
+ {
+ keyValuePairs.AddValue<string, string>("DocumentoPagante|DOCUMENTO DO PAGANTE", Messages.Invalido, true);
+ }
+ if (string.IsNullOrWhiteSpace(this.DocumentoRecebedor))
+ {
+ keyValuePairs.AddValue<string, string>("DocumentoRecebedor|DOCUMENTO DO RECEBEDOR", Messages.Obrigatorio, true);
+ }
+ else if (!this.DocumentoRecebedor.ValidacaoDocumento())
+ {
+ keyValuePairs.AddValue<string, string>("DocumentoRecebedor|DOCUMENTO DO RECEBEDOR", Messages.Invalido, true);
+ }
+ if (string.IsNullOrWhiteSpace(this.Recebedor))
+ {
+ keyValuePairs.AddValue<string, string>("Recebedor", Messages.Obrigatorio, true);
+ }
+ if (string.IsNullOrWhiteSpace(this.Pagante))
+ {
+ keyValuePairs.AddValue<string, string>("Pagante", Messages.Obrigatorio, true);
+ }
+ if (!this.Pagamento.HasValue)
+ {
+ keyValuePairs.AddValue<string, string>("Pagamento|FORMA DE PAGAMENTO", Messages.Obrigatorio, true);
+ }
+ if (!string.IsNullOrWhiteSpace(this.Referente) && this.Referente.Length >= 255)
+ {
+ keyValuePairs.AddValue<string, string>("Referente|REFERENTE À(AO)", string.Format(Messages.MaiorQueLimite, 255), true);
+ }
+ return keyValuePairs;
+ }
+ }
+} \ No newline at end of file