private static List <FiltroGridViewModel> GetFiltroGridViewModel(ProgramacaoDesembolso entity, IEnumerable <DocumentoTipo> tpdocumentos)
        {
            var lista = new List <FiltroGridViewModel>();

            var obj = new FiltroGridViewModel();

            obj.Id = entity.Id.ToString();
            obj.NumeroAgrupamento       = entity.NumeroAgrupamento == default(int) ? string.Empty : entity.NumeroAgrupamento.ToString("D5");
            obj.NumSiafemProgDesembolso = entity.NumeroSiafem;
            obj.AgrupamentoId           = entity.Id;
            obj.TipoDespesa             = entity.CodigoDespesa;
            obj.DocumentoTipo           = tpdocumentos.FirstOrDefault(w => w.Id == entity.DocumentoTipoId)?.Descricao;
            obj.NumeroDocumento         = entity.NumeroDocumento;
            obj.Total                       = entity.ProgramacaoDesembolsoTipoId == 2 ? entity.Valor : entity.Eventos.Sum(x => x.ValorUnitario);
            obj.DataVencimento              = (entity.DataVencimento == DateTime.MinValue) ? string.Empty : entity.DataVencimento.ToShortDateString();
            obj.Data                        = entity.DataCadastro.ToShortDateString();
            obj.StatusSiafem                = string.IsNullOrEmpty(entity.StatusSiafem) || entity.StatusSiafem.Equals("N") ? "Não Transmitido" : (entity.StatusSiafem.Equals("E") ? "Erro" : "Sucesso");
            obj.Bloqueio                    = entity.Bloqueio;
            obj.MensagemSiafem              = entity.MensagemServicoSiafem;
            obj.CadastroCompleto            = entity.CadastroCompleto;
            obj.TransmitirSiafem            = entity.TransmitirSiafem;
            obj.TransmitidoSiafem           = entity.TransmitidoSiafem;
            obj.StatusOp                    = string.Format("{0}{1}{2}", (entity.Cancelado ? "Cancel" : ""), (entity.Cancelado && entity.Bloqueio ? "/" : ""), (entity.Bloqueio ? "Bloq" : ""));
            obj.CanceladoOp                 = entity.Cancelado;
            obj.ProgramacaoDesembolsoTipoId = entity.ProgramacaoDesembolsoTipoId;
            obj.DocumentoTipoId             = entity.DocumentoTipoId;
            obj.NumeroDocumentoGerador      = entity.NumeroDocumentoGerador;
            var nrContrato = entity.NumeroContrato?.Replace(".", "").Replace("-", "");

            obj.NumeroContrato = Convert.ToInt32(nrContrato);

            lista.Add(obj);

            return(lista);
        }
        private static IEnumerable <FiltroGridViewModel> GetFiltroGridViewModelAgrupamento(ProgramacaoDesembolso entity, IEnumerable <DocumentoTipo> tpdocumentos)
        {
            var lista = new List <FiltroGridViewModel>();

            foreach (var x in entity.Agrupamentos)
            {
                var obj = new FiltroGridViewModel();

                obj.Id = Convert.ToString(x.Id);
                obj.NumeroAgrupamento       = x.NumeroAgrupamento.ToString("D5");
                obj.NumSiafemProgDesembolso = x.NumeroSiafem;
                obj.AgrupamentoId           = entity.Id;
                obj.TipoDespesa             = x.CodigoDespesa;
                obj.DocumentoTipo           = tpdocumentos.FirstOrDefault(w => w.Id == x.DocumentoTipoId)?.Descricao;
                obj.NumeroDocumento         = x.NumeroDocumento;
                obj.Total                       = x.Valor;
                obj.DataVencimento              = x.DataVencimento.ToShortDateString();
                obj.Data                        = entity.DataCadastro.ToShortDateString();
                obj.StatusSiafem                = string.IsNullOrEmpty(x.StatusSiafem) || x.StatusSiafem.Equals("N") ? "Não Transmitido" : (x.StatusSiafem.Equals("E") ? "Erro" : "Sucesso");
                obj.Bloqueio                    = x.Bloqueio;
                obj.CanceladoOp                 = x.Cancelado;
                obj.StatusOp                    = string.Format("{0}{1}{2}", (x.Cancelado ? "Cancel" : ""), (x.Cancelado && x.Bloqueio ? "/" : ""), (x.Bloqueio ? "Bloq" : ""));
                obj.MensagemSiafem              = x.MensagemServicoSiafem;
                obj.CadastroCompleto            = entity.CadastroCompleto;
                obj.TransmitirSiafem            = entity.TransmitirSiafem;
                obj.TransmitidoSiafem           = x.TransmitidoSiafem;
                obj.ProgramacaoDesembolsoTipoId = entity.ProgramacaoDesembolsoTipoId;
                obj.DocumentoTipoId             = x.DocumentoTipoId;

                lista.Add(obj);
            }


            return(lista);
        }
        public FiltroGridViewModel CreateInstance(ReclassificacaoRetencao entity, IEnumerable <ReclassificacaoRetencaoTipo> reclassificacaoRetencaoTps, IEnumerable <ReclassificacaoRetencaoEvento> recRetEventos)
        {
            var obj = new FiltroGridViewModel();

            obj.Id           = Convert.ToString(entity.Id);
            obj.NumeroSiafem = entity.NumeroSiafem;
            obj.ReclassificacaoRetencaoTipo = reclassificacaoRetencaoTps.FirstOrDefault(w => w.Id == entity.ReclassificacaoRetencaoTipoId)?.Descricao;
            obj.NormalEstorno                 = string.IsNullOrWhiteSpace(entity.NormalEstorno) ? string.Empty : (entity.NormalEstorno.Equals("1") ? "Normal" : "Estorno");
            obj.Total                         = entity.ReclassificacaoRetencaoTipoId == 2 ? Convert.ToDecimal(entity.Eventos.Sum(x => x.ValorUnitario)) / 100 : Convert.ToDecimal(entity.Valor) / 100;
            obj.Data                          = entity.DataCadastro.ToShortDateString();
            obj.StatusSiafem                  = string.IsNullOrEmpty(entity.StatusSiafem) || entity.StatusSiafem.Equals("N") ? "Não Transmitido" : entity.StatusSiafem.Equals("E") ? "Erro" : "Sucesso";
            obj.TransmitidoSiafem             = entity.TransmitidoSiafem;
            obj.TransmitirSiafem              = entity.TransmitirSiafem;
            obj.MensagemSiafem                = entity.MensagemServicoSiafem;
            obj.CadastroCompleto              = entity.CadastroCompleto;
            obj.OrigemReclassificacaoRetencao = entity.Origem.GetEnumDescription();
            obj.AgrupamentoConfirmacao        = entity.AgrupamentoConfirmacao?.ToString();

            return(obj);
        }