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á 375 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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.

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • Consultores

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
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 375 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.