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.Domain.Generic; using Gestor.Model.Domain.Seguros; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Ferramentas; public class NotaFiscal : DomainBase { private bool _selecionado; public bool Selecionado { get { return _selecionado; } set { if (value != _selecionado) { _selecionado = value; OnPropertyChanged("Selecionado"); } } } [Log(true)] public long? IdExtrato { get; set; } [Log(true)] public Seguradora Seguradora { get; set; } [Log(true)] [Description("ISS")] public decimal Iss { get; set; } [Log(true)] [Description("VALOR LÍQUIDO")] public decimal ValorLiquido { get; set; } [Log(true)] [Description("VALOR BRUTO")] public decimal ValorBruto { get; set; } [Log(true)] [Description("DATA")] public DateTime? Data { get; set; } [Log(true)] [Description("OBS")] public string Obs { get; set; } [Log(true)] [Description("ESTIPULANTE")] public Estipulante Estipulante { get; set; } [Log(true)] [Description("EXTRATO")] public string Extrato { get; set; } [Log(true)] [Description("IR")] public decimal Ir { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } public List> Validate() { List> list = ValidationHelper.AddValue(); if (Seguradora == null || string.IsNullOrEmpty(Seguradora.Nome)) { list.AddValue("Seguradora", Messages.Obrigatorio); } return list; } public List Log() { return new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("SEGURADORA", string.IsNullOrWhiteSpace(Seguradora.Nome) ? "" : Seguradora.Nome, ""), new Tuple("ESTIPULANTE", string.IsNullOrWhiteSpace(Estipulante?.Nome) ? "" : Estipulante?.Nome, ""), new Tuple("ISS", Iss.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""), new Tuple("VALOR LÍQUIDO", ValorLiquido.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""), new Tuple("VALOR BRUTO", ValorBruto.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""), new Tuple("DATA", (!Data.HasValue) ? "" : Data?.ToShortDateString(), "") } } }; } }