galegoga's post in [ACBR-9006] NFS-e Distribuição consulta por cnpj was marked as the answer
17 Março
Efetuei as modificações nos arquivos para implementar a funcionalidade.
É necessário comparar.
Meu código não está na última revisão.
Alterações:
ACBrNFex.pas:
TACBrNFSeX = class(TACBrDFe)
private
procedure ConsultarDFe(const aCNPJ: String; aNSU: Integer); overload;
end;
procedure TACBrNFSeX.ConsultarDFe(const aCNPJ: String; aNSU: Integer);
begin
if not Assigned(FProvider) then
raise EACBrNFSeException.Create(ERR_SEM_PROVEDOR);
if (Length(aCNPJ) > 0) and (Length(aCNPJ) <> 14) then
raise EACBrNFSeException.Create('Cnpj inválido');
FWebService.ConsultarDFe.Clear;
FWebService.ConsultarDFe.NSU := aNSU;
FWebService.ConsultarDFe.Cnpj := aCNPJ;
FProvider.ConsultarDFe;
end;
ACBrNFSeXWebServicesResponse.pas:
// Adição do campo Cnpj
TNFSeConsultarDFeResponse = class(TNFSeWebserviceResponse)
private
FCnpj: string;
public
property Cnpj: String read FCnpj write FCnpj;
end;
procedure TNFSeConsultarDFeResponse.Clear;
begin
inherited Clear;
FCnpj := '';
NSU := -1;
ChaveNFSe := '';
end;
PadraoNacional.Provider.pas
// adição da condicional Cnpj
procedure TACBrNFSeProviderPadraoNacional.PrepararConsultarDFe(
Response: TNFSeConsultarDFeResponse);
begin
if Response.ChaveNFSe <> '' then
FpPath := '/NFSe/' + Response.ChaveNFSe + '/Eventos'
else if Response.Cnpj <> '' then
FpPath := '/DFe/' + IntToStr(Response.NSU)+'?cnpjConsulta='+Response.Cnpj
else
FpPath := '/DFe/' + IntToStr(Response.NSU);
Response.ArquivoEnvio := FpPath;
FpMethod := 'GET';
end;
ACBrNFSeX.pas
ACBrNFSeXWebservicesResponse.pas
PadraoNacional.Provider.pas