Ir para conteúdo
  • Cadastre-se

Valdir Dill

Membros Pro
  • Total de ítens

    935
  • Registro em

  • Última visita

  • Days Won

    5

Posts postados por Valdir Dill

  1. Em 20/08/2021 at 11:54, Italo Giurizzato Junior disse:

    Valdir,

    Estamos trabalhando para padronizar os retornos e definirmos como vai ser o comportamento da propriedade sucesso.

    O valor True na propriedade Sucesso significa que o serviço foi executado e nos retornou uma resposta, não importa se o Rps foi autorizado ou rejeitado?

    É isso que precisamos definir.

     

    Boa tarde @Italo Giurizzato Junior

    Conseguimos emitir a nota (provedor ISSCuritiba). Só continua o problema de, caso a nota não seja autorizada, ele não mostrar as mensagens de erro.

    Outra coisa, o envio da nota me parece demorado, em relação ao que era antes. Percebi que o componente grava vários arquivos de envio/consulta (print anexo). São 13 arquivos, além do arquivo da nota que ele grava dentro da pasta \Notas.

    Obrigado

    acbr.png

  2. 5 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Valdir,

    Verificando o XML de retorno da consulta ao lote que você anexou consta a seguinte mensagem:

    <Codigo>E1003</Codigo>
    
    <Mensagem>Ocorreu um erro de conversão. A Alíquota informada, não é permitida para a atividade informada. - POSIÇÃO RPS - 1</Mensagem>
    
    <Correcao>Informe uma Alíquota permitida para a atividade informada.</Correcao>

    Foi informado a alíquota 2.01% para o Item da lista de serviços 17.12

    Bom dia Italo,

    Foi informado a alíquota 2.01% para o Item da lista de serviços 17.12?
    Sim e não, rs...
    Explico: nesse último teste que fiz realmente foi informado alíquota 2.01. Mas fiz outros testes com o mesmo RPS informando 2 e também 5 para esse campo. O erro retornando foi o mesmo.

    Porque tentei com 2.01? Porque baixei um XML (em anexo) de uma nota que emitimos diretamente no site da prefeitura. Nesse XML está essa alíquota de 0.0201. Mas tanto faz a alíquota (2, 2,01 ou 5), o erro é o mesmo.

    Mas minha questão não seria nem tanto em relação ao erro em si, mas em relação ao comportamento do componente que está trazendo sucesso no envio, quando o RPS foi rejeitado. Não deveria trazer VResponse = false, nesse caso?

    Obrigado!

    XMLNFseSiteISSCuritiba.XML

  3. Em 03/08/2021 at 14:01, Italo Giurizzato Junior disse:

    Bom dia Valdir,

    Favor atualizar os fontes e faça novos testes.

    Boa noite,

    Fontes atualizados e consulta do protocolo/lote agora está retornando com os dados corretos.

    Porém, agora não está mais enviando nota, rs.

    Na verdade, ao que parece, há um erro na nota, mas que eu ainda não consegui entender bem o motivo

    Estou fazendo assim:

    Var
    Vesponse : TNFSeEmiteResponse;
    begin
    AimentaCompon;
    VResponse := ACBrNFSeX1.Emitir(VLote.ToString, meAutomatico);
    if VResponse.Sucesso then  
     ShowMessage(ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Numero);

    A VResponse.Sucesso acima está retornando true, mas o lote não foi recebido, pois, pelo que parece nos arquivos, está com erro de alíquota de ISS. 
    Pelo que vi nos arquivos gerados (anexos..tem vários rs) há um problema na alíquota. Não sei o que pode ser, pois estou informando a alíquota normal.

    Nesse caso, ou seja, que a nota não foi recebida pelo WS, a VResponse.Sucesso não deveria retornar false e a VResponse.Erros[0].Descricao ter a descrição do erro para mostrar ao usuário?

     Obrigado!

    656UNICA-rps.xml 685-env-lot.xml 685-env-lot-soap.xml 685-rec.xml 685-rec-soap.xml 637650039439684226-con-lot.xml 637650039439684226-con-lot-soap.xml 637650039439684226-con-sit.xml 637650039439684226-con-sit-soap.xml 637650039439684226-lista-nfse-con-lot.xml 637650039439684226-lista-nfse-con-lot-soap.xml 637650039439684226-sit.xml 637650039439684226-sit-soap.xml

  4. 55 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Valdir,

    Procure sempre anexar o arquivo soap de envio e de retorno para que eu possa fazer uma analise melhor.

    As rotinas foram escritas conforme o layout da ABRASF, mas infelizmente tem provedor que não segue a risca o layout, ai ocorre esses erros e temos que ficar fazendo as gambiarras.

    Ok, arquivos em anexo.

    Obrigado!

    000000000000680000000000000680000001-con-nfse.xml 000000000000680000000000000680000001-con-nfse-soap.xml 000000000000680000000000000680000001-lista-nfse-con.xml 000000000000680000000000000680000001-lista-nfse-con-soap.xml

  5. 13 horas atrás, Italo Giurizzato Junior disse:

    Boa noite Valdir,

    Fiz diversas alterações nos fontes, favor atualizar, reinstalar e faça novos testes.

    Bom dia

    Fontes atualizados.

    Na consulta pelo lote, tudo certo.

    Já a consulta pelo número -> ACBrNFSeX1.ConsultarNFSeporNumero(VNumNF), está ocorrendo um access violation..

    O erro ocorre na linha 1042 da ACBrNFSeXProviderABRASFv1.pas (print anexo). 
    Se eu comentar a linha anterior (AuxNode := ANode.Childrens.FindAnyNs('Nfse')), o erro não ocorre.
    Me parece que a função ANode.Childrens.FindAnyNs('Nfse') destroi o AuxNode e aí quando vai usar novamente na linha seguinte, dá o A.V.

    acbr.png

  6. 4 horas atrás, Italo Giurizzato Junior disse:

    Boa tarde Valdir,

    Estamos canalizando todos os nossos esforços no novo componente, portanto não estamos mais dando manutenção no antigo.

    Se não me falha a memória ontem enviei alguns ajustes no novo componente referente ao provedor IPM.

    Por favor atualize os fontes e faça novos testes com o novo componente.

    Me parece que esse provedor andou alterando algumas coisas em seu webservice, isso explica de antes funcionar e agora não funciona.

    Boa noite,

    Certo @Italo Giurizzato Junior. Isso vai ser um pouco complicado ter que mudar do componente assim "na marra", rs...

    Mas, vamos lá.

     Testei com o novo acbrNFSeX. Deu alguns erros:

    Veja nos prints anexos que está dando erro de usuário/senha. Mas conferi e esses dados estão corretos. Uso os mesmos dados para fazer o login no site e lá acessa normal.

    O que etsou alimentando em relação ao login de usuário é:
    - ACBrNFSeX1.Configuracoes.Geral.Emitente.WSUser := VuserWeb
    - ACBrNFSeX1.Configuracoes.Geral.Emitente.WSSenha := VSenhaWeb
    É isso que precisa, certo?

    O erro na verdade que gera é "start tag expected, '<' not found" (print 2 anexo).
    Mas debugando dá para notar que o retorno está sendo a "usuário e senha inválidos" (print 1 anexo). 
    Acho que o erro é uma exceção quando o acbr tenta tratar o "usuário e senha inválidos".

    Então o problema é o usuário e/ou senha, mas se no XML está correto, o que poderia ser?
    Veja o anexo 332-env-lot-soap.xml. Ali mostra que o usuário e senha estão sendo enviados.

    Alguma sugestão?

    AposLinha_711_ACbrNFseXWebserviceBase_Print 2.png

    Linha_711_ACbrNFseXWebserviceBase Print 1.png

    332-env-lot-soap.xml

  7. Boa tarde,

    Estamos tendo problema no envio de NFSe (ainda componente antigo AcbrNFSe).
    O erro passou a acontecer de alguns dias para cá. Antes funcionava normal. Cliente enviava notas normalmente há bastante tempo.

    A nota é enviada, inclusive consta lá no WS. Mas na hora de consultar (logo após envio), ocorrem os seguintes erros:
    - 000202 - Código de autenticidade nao informado no arquivo de pesquisa
    - 000203 - Numero da NFSe nao informado no arquivo de pesquisa
    - 000205 - A tag cadastro nao foi informada no arquivo de pesquisa

    As rotinas que são executadas são:

     AlimentaDadosNFSe;

     VEnviou :=ACBrNFSe1.Gerar(VNumRPS, VLoteRPS, false);

     if VEnviou then
      begin
       VNotaConfirmada := ACBrNFSe1.ConsultarLoteRps(ACBrNFSe1.NotasFiscais.Items[0].NFSe.NumeroLote, ACBrNFSe1.NotasFiscais.Items[0].NFSe.Protocolo);
      end; 

      O erro o acontece ao executar ACBrNFSe1.ConsultarLoteRps(.
      Uma coisa que notei é que nesse momento, ou seja, após a consulta, o valor de ACBrNFSe1.NotasFiscais.Items[0].NFSe.NumeroLote e ACBrNFSe1.NotasFiscais.Items[0].NFSe.Protocolo, ambos estão em branco. 
      Provavelmente por isso ocorre o erro. Mas essas duas propriedades não deveriam conter os valores do lote e protocolo?

      Provedor IPM

      Obrigado!

  8. 9 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Valdir,

    A consulta a ser realizada após o cancelamento para obter o XML da NFS-e com as informações sobre o cancelamento é o ConsultarNFSePorNumero se o provedor segue a versão 1 do layout da ABRASF ou ConsultarNFSePorFaixa se o provedor segue a versão 2 do layout da ABRASF.

    Quanto ao retorno estamos ainda fazendo os ajustes necessários para que nele tenhamos as informações mínimas necessárias.

    Sendo assim lhe peço um pouco mais de paciência até que possamos concluir essas alterações. 

    Se desejar pode nos informar quais informações você julga importante obter ao consultar uma nota.

    Bom dia,

    Tranquilo Italo, vamos aguardar. Tamo junto, rs.

    Acho que os dados importantes em na consulta é o protocolo, código de verificação e status (autorizada ou cancelada).

    Obrigado!

    • Curtir 1
  9. Boa noite,

    Gostaria de uma ajuda com SPED Fiscal.

    Exemplo hipotético:
    NFe 55, cujo valor total é de R$ 100,00

    Ela tem 1 item cujo valor é de R$ 110,00
    E tem um desconto de 10,00

    - Total da nota sendo informado no campo VL_MERC do registro C100 = 100,00 (valor dos itens - o desconto)

    - O valor sendo informado em VLR_OPER  do registro C190 é = 110, (valor dos itens + frete + outras despesas),
    ou seja, sem o desconto, pois, segundo entendi no manual, o desconto não é para ser informado nesse campo ou é?

    O problema é que isso gera uma inconsistência no EFD -> "O valor total do documento fiscal deve ser igual a soma dos valores de operação VL_OPR do registro C190"
    Segundo o manual, VL_MERC de C100 deveria ser o mesmo de VLR_OPER de C190. 
    Mas como fazer então? Descontar o valor do desconto no campo VLR_OPER  do C190?

    Obrigado!

  10. 16 minutos atrás, Italo Giurizzato Junior disse:

    Bom dia Valdir,

    O consultar Lote sempre vai lhe informar se o lote foi processado com sucesso ou não.

    Para saber se a nota esta cancelada ou não você deve consultar a nota e não o lote.

    Bom dia,

    Certo.

    E como pego o resultado? No demo Acbr a opção que imagino ser a correta é a "Consultar NFSe por numero".

    Nessa opção, a procedure TfrmACBrNFSe.ChecarResposta(const Response: TNFSeWebserviceResponse) vai ter:

    if Response is TNFSeConsultaNFSeResponse then
    begin
     memoLog.Lines.Add('Modo de Envio : ' + MetodoToStr(TNFSeConsultaNFSeResponse(Response).Metodo));
     memoLog.Lines.Add('Sucesso : ' + BoolToStr(Response.Sucesso, True));
      end;

    Ou seja, consigo pegar se a consulta por número de NFSe é feita com sucesso, mas não achei como vejo a situação (autorizada ou cancelada) real da nota.

    Estou fazendo a consulta certa? Se sim, onde obter essa informação do status da nota no WS?

    Obrigado.

  11. 1 hora atrás, Italo Giurizzato Junior disse:

    Bom dia Valdir,

    Favor atualizar os fontes e faça novos testes.

    Boa tarde,

    Funcionando beleza! Obrigado!

    Agora surgiu uma outra dúvida, rs.

    Estou fazendo a consulta assim:
    - VResponseRPS := ACBrNFSeX1.ConsultarLoteRps(VProtoclo, VLote);
    - VSit := StrToSituacaoLoteRPS(VOK, TNFSeConsultaLoteRpsResponse(VResponseRPS).Situacao);

     Após a consulta, o valor de VSit  está sLoteProcessadoSucesso.
     Isso indica que o lote foi recebido com sucesso, mas não necessariamente que a nota está autorizada, certo?
     Como verifico agora se a situação dessa nota é autorizada ou talvez cancelada?

     Obrigado!

      

  12. 16 horas atrás, Valdir Dill disse:

    Boa noite,

    Segui as instruções e parece que houve progresso.

    O valor de AuxNode agora é diferente de nil e NumNFse tem valor 680, corretamente.

    Uma dúvida: como recupero o número da nota. Pelo que entendi, deveria pegar essa informação pela ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Numero, isso após fazer a consulta. Mas essa propriedade não está sendo alimentada.

    Ou seria outra forma?

    Obrigado.

     

    Não sei se tem a ver, mas, na linha AItemIndex := FindObject(AItem, TComparer<TObject>.Construct(CompNFSePorNumero)), após essa linha ser executada, o AItemIndex fica com valor -1. Vide print anexo.

    ACbr.png

  13. Em 25/07/2021 at 13:43, Italo Giurizzato Junior disse:

    Boa tarde Valdir,

    Primeiramente quero que você atualize todos os fontes de todas as pastas.

    Segundo reinstale a suíte ACBr usando o ACBrInstall_Trunk2 com a opção de apagar arquivos antigos marcada.

    Terceiro, abra o programa exemplo do novo componente, compile ele com a opção Build.

    Por fim faça o teste abaixo:

     

    Preciso que você consulte o lote cujo protocolo é 637615129589302423.

    Na rotina que estamos analisando preciso saber se o valor de AuxNode é diferente de Nil que esta na linha que procura pela tag InfNfse.

    E se o valor de AuxNode é diferente de Nil que esta na linha que procura pela tag Numero.

    Se ambos forem diferente de nil, temos que analisar o porque ele não esta lendo o numero da nota que se encontra na tag Numero.

    Boa noite,

    Segui as instruções e parece que houve progresso.

    O valor de AuxNode agora é diferente de nil e NumNFse tem valor 680, corretamente.

    Uma dúvida: como recupero o número da nota. Pelo que entendi, deveria pegar essa informação pela ACBrNFSeX1.NotasFiscais.Items[0].NFSe.Numero, isso após fazer a consulta. Mas essa propriedade não está sendo alimentada.

    Ou seria outra forma?

    Obrigado.

     

  14. 1 hora atrás, Italo Giurizzato Junior disse:

    Valdir,

    Realmente esta muito estranho.

    Ele chega na linha abaixo?

    NumNFSe := ProcessarConteudoXml(AuxNode, tcStr);

    Se sim, qual é o valor de NumNFSe?

    Não, ele pula essa linha. Veja o print anexo. No break point dessa linha NumNFSe := ProcessarConteudoXml(AuxNode, tcStr), ele não para.

    Mas na linha 529 que nem código tem, ele para. O valor de NumNFSe, nesse momento, está sem nada.

    Acbr.png

  15. 26 minutos atrás, Italo Giurizzato Junior disse:

    Valdir,

    Se essas duas variáveis são diferente de nil, com certeza ele deve ter entrado dentro do FOR.

          for I := Low(ANodeArray) to High(ANodeArray) do
          begin
            ANode := ANodeArray[I];
            AuxNode := ANode.Childrens.FindAnyNs('tcCompNfse');
    
            if AuxNode = nil then
              AuxNode := ANode.Childrens.FindAnyNs('Nfse')
            else
              AuxNode := AuxNode.Childrens.FindAnyNs('Nfse');
    
            if AuxNode <> nil then     <<<<< verifica se ele esta entrando dentro desse IF
            begin
              AuxNode := AuxNode.Childrens.FindAnyNs('InfNfse');
    //          AuxNode := AuxNode.Childrens.FindAnyNs('IdentificacaoRps');
              AuxNode := AuxNode.Childrens.FindAnyNs('Numero');
              NumNFSe := ProcessarConteudoXml(AuxNode, tcStr);
    
              ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByNFSe(NumNFSe);
    
              if Assigned(ANota) then
                ANota.XML := ANode.OuterXml
              else
              begin
                TACBrNFSeX(FAOwner).NotasFiscais.LoadFromString(ANode.OuterXml, False);
                ANota := TACBrNFSeX(FAOwner).NotasFiscais.Items[TACBrNFSeX(FAOwner).NotasFiscais.Count-1];
              end;
    
              SalvarXmlNfse(ANota);
    
              Response.Situacao := '4';
            end
            else
            begin
              AErro := Response.Erros.New;
              AErro.Codigo := Cod203;
              AErro.Descricao := Desc203;
              Exit;
            end;
          end;

     

    Está bastante esquisito. Não estou conseguindo entender direito o debug.

    Olha só, ao passar por  if AuxNode <> nil then, AuxNode tem valor nil. Mas mesmo assim ele entra nesse begin -> if AuxNode <> nil then begin...

    Além disso, tem vários pontos que o debug não para. Se eu colocar um ponto de parada na linha  if AuxNode <> nil then, ele não para ali. Bem estranho.
            
            

  16. 12 minutos atrás, Italo Giurizzato Junior disse:

    Valdir,

    Preciso saber se o valor de ANode na linha abaixo é diferente de Nil.

          ANode := Document.Root.Childrens.FindAnyNs('ListaNfse');

    E também se o valor de AnodeArray na linha abaixo é diferente de Nil.

          ANodeArray := ANode.Childrens.FindAllAnyNs('CompNfse');

     

    Sim, são diferentes. Prints anexos.

    ANode.png

    ANodeArray.png

  17. 1 hora atrás, Italo Giurizzato Junior disse:

    Boa tarde Valdir,

    Desculpe pela demora, favor atualizar os fontes e faça novos testes.

    Boa tarde,

    Ainda não está trazendo os dados da nota.
    Testado inclusive no Demo. Print anexo.

    Não sei se pode ter relação, mas debugando verifiquei que, ao passar pela função TratarRetornoConsultaLoteRps(, em uma das linhas dessa função, ele chama a seguinte:
    ANodeArray := ANode.Childrens.FindAllAnyNs('CompNfse');

    Aí vai para a função FindAllAnyNs( da ACBrXmlDocument.pas.
    Nesta função, a linha 947 (if Node.LocalName <> Name then continue), o LocalName aparece com valor "access violation...", conforme print anexo.

    Debug.png

    DemoAcbr.png

  18. Bom dia,

    Segui essa sua orientação, mas não consegui descobrir qual exatamente é a causa.

    Os arquivos são salvos em disco. Estou anexando eles aqui.
    Mas o componente não é alimentado.

    O que me parece, o problema está no fato da linha 483 da ACBrNFSeXProviderABRASFv1 -> Response.Situacao := ProcessarConteudoXml(Document.Root.Childrens.FindAnyNs('SituacaoLoteRps'), tcStr);

    Nessa linha o componente busca uma variável "SituacaoLoteRps", mas essa variável não existe no XML retornado na consulta.

    Obrigado!

    637615129589302423-con-lot.xml 637615129589302423-con-lot-soap.xml 637615129589302423-lista-nfse-con-lot.xml 637615129589302423-lista-nfse-con-lot-soap.xml

  19. Bom dia

    Estou fazendo a consulta de uma nota (ISSCuritiba) enviada anteriormente, da seguinte forma:

    ...
    Var
      VResponseRPS : TNFSeConsultaLoteRpsResponse;
      VXMLRet : String;
    begin
     VResponseRPS := ACBrNFSeX1.ConsultarLoteRps('637615129589302423', '17');
      VXMLRet := TNFSeConsultaLoteRpsResponse(VResponseRPS).XmlRetorno;

     Neste momento VXMLRet tem todos os dados da nota.

     A dúvida é: como pego o número da nota, código de verificação, data emissão, ...?
     Quais propriedades do componente devem ser lidas?
     Tentei várias formas, inclusive alimentar o ACBrNFSeX1.NotasFiscais, mas não está dando certo.

     Obrigado!

×
×
  • 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.