public List <ConsultaOB> ConsultarOB(Usuario user, string unidadeGestora = "", string Gestao = "", string NumeroOB = "", int agrupamento = 0)
        {
            try
            {
                var dadosUsuarioSiafem = _siafem.ConsultarUsuarioHomologacaoProducao(user.CPF, user.Senha, true);

                USUARIO = dadosUsuarioSiafem.usuario;
                SENHA   = dadosUsuarioSiafem.senha;

                //List<ConsultaOB> retorno = new List<ConsultaOB>();
                var data = _siafem.ListarOB(USUARIO, Decrypt(SENHA), unidadeGestora, Gestao, null);
                //data.RemoveAll(item => AutorizacaoOBExiste(item.NoOB ?? item.NumeroOB, agrupamento));

                foreach (var item in data)
                {
                    ComplementarDadosOb(item);
                }

                return(data);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public ConsultaPd ComplementarDadosPd(Usuario user, string unidadeGestoraLiquidante = "", string gestaoLiquidante = "", string unidadeGestora = "", string NumeroPD = "", int agrupamento = 0, TIPO_CONSULTA_PD origem = TIPO_CONSULTA_PD.CONSULTAR, string dsNumOB = "")
        {
            if (origem == TIPO_CONSULTA_PD.ADICIONAR && ExecucaoPDExiste(NumeroPD, agrupamento))
            {
                throw new SidsException("A Execução da PD já existe em outro agrupamento.");
            }

            var dadosUsuarioSiafem = _siafem.ConsultarUsuarioHomologacaoProducao(user.CPF, user.Senha, true);

            USUARIO = dadosUsuarioSiafem.usuario;
            SENHA   = dadosUsuarioSiafem.senha;

            var data = new ConsultaPd();

            if (dsNumOB == "" || dsNumOB == null)
            {
                data = _siafem.ConsultaPD(USUARIO, Decrypt(SENHA), unidadeGestoraLiquidante, gestaoLiquidante, unidadeGestora, NumeroPD);
            }

            var dataSids = SelecionarDadosApoio(1, NumeroPD);

            if (dataSids != null)
            {
                data.NumeroAgrupamentoProgramacaoDesembolso = dataSids.NumeroAgrupamento;
                data.NumeroContrato                 = dataSids?.NumeroContrato;
                data.NumeroDocumentoGerador         = dataSids?.NumeroDocumentoGerador;
                data.IdTipoDocumento                = dataSids.DocumentoTipoId;
                data.NumeroDocumento                = dataSids?.NumeroDocumento;
                data.TransmissaoItemStatusSiafem    = dataSids?.StatusSiafem;
                data.TransmissaoItemMensagemSiafem  = dataSids?.MensagemServicoSiafem;
                data.TransmissaoItemStatusProdesp   = dataSids?.StatusConfirmacaoPagtoProdesp;
                data.TransmissaoItemMensagemProdesp = dataSids?.MensagemConfirmacaoPagtoProdesp;
                data.NumeroCnpjCpfPgto              = dataSids.NumeroCnpjcpfPagto;

                if (data.NumeroDocumentoGerador != null)
                {
                    var numeroOP = ConsultaOP(data.NumeroDocumentoGerador);
                    var partes   = numeroOP.Split(new string[] { "@" }, StringSplitOptions.None);
                    if (partes[0].Any())
                    {
                        data.NumOP = partes[0];
                    }
                    else
                    {
                        data.MensagemRetornoConsultaOP = partes[1];
                    }
                }
            }
            else
            {
                data.MensagemRetornoConsultaOP = "PD não existe na base SIDS";
            }

            return(data);
        }