rVenda_Consultar

Realiza uma consulta de NFC-e no servidor do NFePack por CNPJ, modelo, série e número do documento

Método

int CALL rVenda_Consultar(emissor_nfce* e, const char *cnpj, const char *modelo, const char *serie, const char *numero, char *chave, char *situacaoOperacao, char *status, char *protocolo, char *digval, char *urlConsulta, char *codigoErro, char *descricaoErro, char * podeReutilizarNumero, const char *reservado1, const char *reservado2);

Parâmetros

Nome Descrição
e
Handle para o emissor_nfce
cnpj
CNPJ do emissor.
modelo
Modelo do documento (65,55).
serie
Série do documento.
numero
Número do documento.
chave
O Buffer qie receberá a Chave do documento consultado
situacaoOperacao
O Buffer que receberá a Situação da Operação da NF-e
1 - Sucesso
2 - Erro
3 - Denegada
4 - Sem Valor - Cancelada ou Inutilizda
5 - Não Localizada
6 - Em Processamento
(2 Caracteres máx.).
status
O Buffer que receberá o status da NFC-e contido no servidor do NFePack (2 Caracteres máx.)
protocolo
O Buffer que receberá o protocolo da NFC-e (15 Caracteres máx.)
digval
O Buffer que receberá o DigVal da NFC-e (28 Caracteres máx.)
urlConsulta
O Buffer que receberá a url de consulta da NFC-e (640 Caracteres máx.)
codigoErro
O Buffer que contém a código do erro. (5 Caracteres máx.)
descricaoErro
O Buffer que contém a descrição da rejeição, quando a NF-e está rejeitada. (510 Caracteres máx.)
podeReutilizarNumero
O Buffer que contém a indicação se é possível reutilizar o número, quando não controlado pelo NFCePack (0: Não pode, 1; Pode)
reservado1
Reservado para uso futuro
reservado2
Reservado para uso futuro

Retornos

Codigo Descrição
1 OK
10311 Erro inesperado ao consultar a nota.
10315 Problema na comunicação com o servidor. (Uma reconsulta pode resolver o problema)
10205 Erro ao processar resposta do web service de integracação. (versões do agente e retaguarda incompatíveis pode ocasionar este problema)
10318 Falha na rotina da retaguarda (parâmetros de erro serão preenchidos com o erro da retaguarda)

Exemplos

//-------------Exemplo Simples------------
char[] chave = new char[44+1];
char[] situacaoOperacao = new char[2+1];
char[] status = new char[2+1];
char[] protocolo = new char[15+1];
char[] digVal = new char[28+1];
char[] codigoErro = new char[5+1];
char[] descricaoErro = new char[512+1];
char[] podeReutilizarNumero = new char[1+1];
char[] urlConsulta = new char[640+1];
int retorno = rVenda_ConsultarPorChave( handleEmissor,
                                        "00000000000000",
                                           65,
                                           223,
                                           5675,
                                           chave
                                        situacaoOperacao,
                                        status, protocolo,
                                        digVal,
                                        urlConsulta,
                                        codigoErro,
                                        descricaoErro,
                                        podeReutilizarNumero,
                                        "", "");

//-------------Exemplo com tratamentos-------------
int numeroDeTentativas = 3;
int retorno = 0;
for(int i = 0; i < numeroDeTentativas; i++) {
    retorno = rVenda_ConsultarPorChave( handleEmissor,
                                        "00000000000000",
                                           65,
                                           223,
                                           5675,
                                        situacaoOperacao,
                                        status,
                                        protocolo,
                                        digVal,
                                        urlConsulta,
                                        codigoErro,
                                        descricaoErro,
                                        podeReutilizarNumero,
                                        "", "");
    if(retorno == 1) break;
    sleep(2);
}
if(retorno == 1) {
    tratar_resposta();
    //se não encontrar a nota para os valores informados o retorno é '1' e a situacaoOperacao é '5'
}
else {
    tratar_quando_nao_consegue_consultar();
}