Ir para conteúdo
  • Cadastre-se

dev botao

Consulta NFSeX por periodo


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 590 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia Amigos,
Estou migrando o ACBrNFSe para ACBrNFSeX e ao fazer a consulta de um lote estou recebendo este retorno. (Estou usando a consulta por periodo, do programa demo da acbr). 

 

Requisição Ambiente: 1

Cidade : Anapolis/GO

Provedor: ISSNet

Versão: 2.04

Método Executado: ConsultarNFSePorFaixa

Parâmetros de Envio Num. Ini. NFSe: Num. Fin. NFSe:

Data Inicial : 06/04/2023 Data Final : 06/04/2023

Parâmetros de Retorno Sucesso : False

Erro(s):

Código : X800

Mensagem: Erro de Validação: Error parsing '' as nonNegativeInteger datatype. The element '{http://www.abrasf.org.br/nfse.xsd%7DNumeroNfseInicial' with value '' failed to parse.

  • Consultores
  • Solution
Postado

Boa tarde,

Como você esta tendo erro de validação vamos ao Schema usando pelo provedor.

	<xsd:element name="ConsultarNfseFaixaEnvio">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Pedido" minOccurs="1" maxOccurs="1">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="Prestador" type="tcIdentificacaoPessoaEmpresa"
								minOccurs="1" maxOccurs="1" />
							<xsd:element name="Faixa" 
								minOccurs="1" maxOccurs="1">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="NumeroNfseInicial" type="tsNumeroNfse"
											minOccurs="1" maxOccurs="1" />
										<xsd:element name="NumeroNfseFinal" type="tsNumeroNfse"
											minOccurs="1" maxOccurs="1" />
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="Pagina" type="tsPagina" 
								minOccurs="1" maxOccurs="1"/>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element ref="dsig:Signature" minOccurs="0" maxOccurs="1" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

Como você pode ver, não esta previsto uma consulta por período somente por faixa de numeração de notas.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Foi o que imaginei, 
Então esta função que tem no demo:

 

Citar

 ACBrNFSe1.ConsultarNFSeporPeriodo(StrToDateDef(DataIni, 0),
    StrToDateDef(DataFin, 0), StrToIntDef(NumPagina, 1), NumLote);
 

Não existe? 
Existe uma função para isso?

Na verdade eu não consegui obter êxito em nenhuma função que tem no demo. Achei que poderia estar faltando alguma coisa na configuração.

  • Consultores
Postado

Boa noite,

5 horas atrás, digitosistemas disse:

Então esta função que tem no demo:

Não existe? 

O programa de exemplo possui exemplos para atender a todos os provedores, vai depender dos métodos que o provedor implementou.

Você pode ver no wsdl do provedor quais foram disponibilizados e pode também verificar o que foi implementado no componente, conforme abaixo.

../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/ISSNet.Provider.pas

TACBrNFSeXWebserviceISSNet204 = class(TACBrNFSeXWebserviceSoap11)

  public
    function Recepcionar(ACabecalho, AMSG: String): string; override;
    function RecepcionarSincrono(ACabecalho, AMSG: String): string; override;
    function GerarNFSe(ACabecalho, AMSG: String): string; override;
    function ConsultarLote(ACabecalho, AMSG: String): string; override;
    function ConsultarNFSePorRps(ACabecalho, AMSG: String): string; override;
    function ConsultarNFSePorFaixa(ACabecalho, AMSG: String): string; override;
    function ConsultarNFSeServicoPrestado(ACabecalho, AMSG: String): string; override;
    function ConsultarNFSeServicoTomado(ACabecalho, AMSG: String): string; override;
    function Cancelar(ACabecalho, AMSG: String): string; override;
    function SubstituirNFSe(ACabecalho, AMSG: String): string; override;

    function TratarXmlRetornado(const aXML: string): string; override;
  end;

Este provedor possui a opção de consulta por faixa de números, conforme destacado abaixo.

procedure TACBrNFSeProviderABRASFv2.PrepararConsultaNFSeporFaixa(Response: TNFSeConsultaNFSeResponse);
var
  aParams: TNFSeParamsResponse;
  XmlConsulta, xNumFinal, NameSpace, Prefixo, PrefixoTS: string;
begin
.
.
.
 xNumFinal := '<' + PrefixoTS + 'NumeroNfseFinal>' +
                    OnlyNumber(Response.InfConsultaNFSe.NumeroFinNFSe) +
                 '</' + PrefixoTS + 'NumeroNfseFinal>'
  else
    xNumFinal := '';

  XmlConsulta := '<' + Prefixo + 'Faixa>' +
                   '<' + PrefixoTS + 'NumeroNfseInicial>' +
                      OnlyNumber(Response.InfConsultaNFSe.NumeroIniNFSe) +
                   '</' + PrefixoTS + 'NumeroNfseInicial>' +
                   xNumFinal +
                 '</' + Prefixo + 'Faixa>';

  aParams := TNFSeParamsResponse.Create;

 

  • Curtir 2
  • Este tópico foi criado há 590 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.