Ir para conteúdo
  • Cadastre-se

Valter FC

Membros
  • Total de ítens

    23
  • Registro em

  • Última visita

Tudo que Valter FC postou

  1. Olá. Estou achando que foi um problema de deploy, porque em meus testes locais eu não consigo simular esse erro. Pode fechar, fazendo o favor, e desculpe o transtorno.
  2. Olá. Estou passando pelo problema cStat=204 "Duplicidade de CTe" quando preencho os campos de Reforma Tributária em homologação. Tentei modos Assíncrono e Síncrono, mesmo resultado. Na consulta, retorna que foi autorizado. Resumindo, estou enviando <IBSCBS><CST>510</CST><cClassTrib>410002</cClassTrib></IBSCBS> e na consulta retorna corretamente esses valores. Quando envio sem os campos da Reforma Tributária, retorna o cStat=100. Alguém está passando pelo mesmo problema?
  3. Pra mim funcionou. Muito obrigado.
  4. Olá. Estou com o mesmo erro: ACBrUpdate\Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fast\ACBrNFeDANFEFRDM.pas(46) Fatal: F1026 File not found: 'C:\Program Files (x86)\Embarcadero\Studio\15.0\lib\win32\release\frPrinter.dcu'
  5. "Desculpe, não podemos mostrar este conteúdo, porque você não tem permissão para vê-lo."
  6. Pelo menos na última vez que vi somente tinha as classes de comunicação do Java com a ACBrLib, essas eu estou utilizando. Tive de implementar todas as classes para gerar o INI ou XML, porque isto não tem qualquer exemplo. O Exemplo parte do suposto que você já tenha o XML ou INI prontos. De qualquer forma, como não estava funcionando, carreguei o INI que gerei no componente em Delphi e depois mandei exportar, pra ver quais campos ele completava, e coloquei diretamente o carregamento desse INI exportado no ACBrLib, e dá esse erro. E para complementar as informações, estou utilizando o OpenJDK 17, no Windows 10, com ACBrLib compilada em 64bits. Para compilar as DLL`s, estou utilizando o fpcupdeluxe lazarus, porque preciso compilar as DLL`s em 64bits para utilizar depois no Linux. Outro fato interessante é que, quando rodo o teste de Status, se tiver algum erro, esse é apresentado corretamente. Mas se estiver tudo certo, os campos de status retornam todos em branco, sem qualquer erro, mas também nenhuma informação de status.
  7. Eu tentando implementar o ACBrLibNFe em Java. Confesso que falta muita informação de como fazê-lo. Estou gerando o arquivo NFe.ini de acordo com o modelo, ao carregar o INI, ocorre este erro. java.lang.Exception: "" is an invalid integer at com.acbr.ACBrLibBase.checkResult(ACBrLibBase.java:116) at com.acbr.nfe.ACBrNFe.carregarIni(ACBrNFe.java:287) ... O erro é muito genérico. Criei um projeto utilizando o componente NFe diretamente e fiz a carga do NFe.ini, não ocorreu nenhum erro. ACBrLibExemplo.ini NFeExemplo.ini
  8. Boa tarde. Funcionou nos meus testes. Obrigado.
  9. Bom dia. Então, só para demonstrar o fluxo: - envio o arquivo de pagamento - processo o retorno do arquivo (geralmente no dia seguinte) e pego o nosso número (o componente já faz esta leitura do retorno) - processo o arquivo de conciliação bancária (SegmentoE) e, através do nosso número, consigo confirmar que o título entrou no dia A leitura da conciliação não é obrigatória, mas serve como confirmação do pagamento. Obrigado.
  10. Olá, tudo bem? Gostaria de saber se existe algum motivo especial para o SegmentoE / Conciliação Bancária, estar desativado no ACBrPagFor ? Eu precisei implementar, então descomentei os trechos do código do SegmentoE e corrigi alguns bugs. Para o meu caso, funcionou, então estou anexando para possível aprovação. ACBrPagFor_SegmentoE.zip
  11. Boa tarde Italo. Testei aqui, funcionou. Valeu.
  12. Boa tarde. Estou testando o ACBrNFSeX para a emitir para prefeitura de São Paulo. Estou testando ainda em homologação, mas como São Paulo não tem homologação, estou usando o parâmetro "meTeste" no envio. Como retorno, estou tendo este XML de exemplo: <RetornoXML><RetornoEnvioLoteRPS> <Cabecalho> <Sucesso>false</Sucesso> <InformacoesLote>...</InformacoesLote> </Cabecalho> <Erro> <Codigo>1204</Codigo> <Descricao>Valor Total de Serviços não confere com o enviado (0).</Descricao> </Erro> </RetornoEnvioLoteRPS></RetornoXML> O retorno de ACBrNFSeX1.WebService.Emite.Alertas.count e ACBrNFSeX1.WebService.Emite.Erros.count está voltando zerado. Testei com código próprio, mas depois simulei no projeto "ACBrNFSeX_Exemplo" e tive o mesmo resultado. Analisei o código, e vi que a procedure "TACBrNFSeProviderISSSaoPaulo.ProcessarMensagemErros" não está encontrando as tags de erro e alertas. Adicionei um código, para testar (tomei como base o TACBrNFSeProviderABRASFv2.ProcessarMensagemErros): ANode := RootNode.Childrens.FindAnyNs('RetornoEnvioLoteRPS'); if Assigned(ANode) then ANodeArray := ANode.Childrens.FindAllAnyNs(AMessageTag) else ANodeArray := RootNode.Childrens.FindAllAnyNs(AMessageTag); Agora funcionou. Não testei para os Alertas, teria que mexer também. Não usei a variável "AListTag" porque ela está vazia na chamada. Imagino que o mesmo problema possa ocorrer também no envio normal.
  13. Sim, essa consulta está com problemas. FObjNFSeX.ConsultarNFSePorFaixa( '245', '245' ); Voltou como sucesso (não está errado?): FObjNFSeX.WebService.ConsultaNFSe.Sucesso = true Porém voltou erros: FObjNFSeX.WebService.ConsultaNFSe.Erros.Count = 2 FObjNFSeX.NotasFiscais.Count = 0 E o erro é o mesmo reportado anteriormente ("NFS-e não encontrada ..."). Mas acredito que descobri o problema: O arquivo "ACBrNFSeXProviderABRASFv2.pas", tem um "if OnlyNumber(Response.InfConsultaNFSe.NumeroIniNFSe) <> OnlyNumber(Response.InfConsultaNFSe.NumeroFinNFSe) then", comentei, e passou. Parece que para Maringá a TAG "NumeroNfseFinal" tem de ser enviada. <ConsultarNfseFaixaEnvio xmlns="http://www.abrasf.org.br/nfse.xsd"> <Prestador> <CpfCnpj> <Cnpj>05112399000116</Cnpj> </CpfCnpj> <InscricaoMunicipal>94421</InscricaoMunicipal> </Prestador> <Faixa> <NumeroNfseInicial>245</NumeroNfseInicial> <NumeroNfseFinal>245</NumeroNfseFinal> </Faixa> <Pagina>1</Pagina> </ConsultarNfseFaixaEnvio> Assim funciona.
  14. Bom dia Italo. Foi cancelada sim. Fiz a consulta pelo RPS, e voltou corretamente: FObjNFSeX.ConsultarNFSeporRps( '223', 'RPS', '1' ); // retornou // FObjNFSeX.NotasFiscais.Items[0].NFSe.SituacaoNFSe = snCancelado // FObjNFSeX.WebService.ConsultaNFSeporRps.NumeroNota = 245 // FObjNFSeX.WebService.ConsultaNFSeporRps.DescSituacao = 'Nota Cancelada'
  15. Boa tarde Italo. Era bem isso que estava procurando. Ativei o parâmetro: FObjNFSeX.Configuracoes.Geral.ConsultaAposCancelar := True; Porém não encontrou a NFSe na consulta. XML de Cancelamento: <CancelarNfseResposta> <RetCancelamento> <NfseCancelamento versao="2.01"> <Confirmacao> <Pedido> <InfPedidoCancelamento> <IdentificacaoNfse> <Numero>245</Numero> <CpfCnpj> <Cnpj>05112399000116</Cnpj> </CpfCnpj> <InscricaoMunicipal>94421</InscricaoMunicipal> <CodigoMunicipio>4115200</CodigoMunicipio> </IdentificacaoNfse> <CodigoCancelamento>1</CodigoCancelamento> </InfPedidoCancelamento> </Pedido> <DataHora>2021-11-10T16:48:06</DataHora> </Confirmacao> </NfseCancelamento> </RetCancelamento> </CancelarNfseResposta> XML de Consulta: <ConsultarNfseFaixaEnvio> <Prestador> <CpfCnpj> <Cnpj>05112399000116</Cnpj> </CpfCnpj> <InscricaoMunicipal>94421</InscricaoMunicipal> </Prestador> <Faixa> <NumeroNfseInicial>245</NumeroNfseInicial> </Faixa> <Pagina>1</Pagina> </ConsultarNfseFaixaEnvio> XML Retorno Consulta: <ConsultarNfseFaixaResposta> <ListaMensagemRetorno> <MensagemRetorno> <Codigo>E212</Codigo> <Mensagem>NFS-e não encontrada.</Mensagem> <Correcao>Não existe NFS-e emitida com o número do documento ou do RPS ou período pesquisado.</Correcao> </MensagemRetorno> </ListaMensagemRetorno> </ConsultarNfseFaixaResposta> OBS: Eu removi o "<?xml version="1.0" encoding="UTF-8"?>" e os "xmlns" para ficar mais fácil entender os XML´s.
  16. Bom dia. Estou realizando um cancelamento de NFSe com o componente ACBrNFSeX para a prefeitura de Maringá/PR. // Carga da NFSe FObjNFSeX.NotasFiscais.LoadFromString(qry.FieldByName('xml').AsString); // OK - aqui está com a NFSe // FObjNFSeX.NotasFiscais.count = 1 // realizado o cancelamento with infCancelamento do begin NumeroNFSe := qry.FieldByName('numero').AsString; CodCancelamento := '1'; NumeroLote := qry.FieldByName('idlote').AsString; end; FObjNFSeX.CancelarNFSe(infCancelamento); _ok := FObjNFSeX.WebService.CancelaNFSe.Sucesso; // aqui está TRUE // aqui a NFSe desaparace // FObjNFSeX.NotasFiscais.count = 0 O Retorno do cancelamento é apenas o XML de cancelamento FObjNFSeX.WebService.CancelaNFSe.XmlRetorno <CancelarNfseResposta><RetCancelamento><NfseCancelamento> ... </NfseCancelamento></RetCancelamento></CancelarNfseResposta> Não existe uma forma de obter o XML completo, com o cancelamento incluído? Se faço uma consulta, obtenho o XML completo.
  17. Bom dia. Estou enviando quebra de linha no campo "ItemListaServico", e está ocorrendo tudo perfeitamente. Se pego a visualização da NFSe pelo site da prefeitura de Maringá/PR, está voltando corretamente: Se baixo o XML pelo site da prefeitura, também está correto (simplifiquei o XML): <?xml version="1.0" encoding="UTF-8"?> <ConsultarNfseServicoPrestadoResposta><Discriminacao>Cod.: 002734 - Descricao: PRESTACAO DE SERV. PARA DESENV. DE SOFTWARE - Qtde.: 1 - Vlr. Unit.: 2,43 - Vlr. Desc.: 0 Obs.: Linha 1 Linha 2 Linha 3 Linha 4 </Discriminacao> Conforme dá para notar, a prefeitura retorna as quebras de linha normalmente. Fiz um debug no ACBr, e notei que no retorno SOAP também é retornado as quebras de linha. O problema é que o ACBr está removendo as quebras de linha do retorno. Encontrei este código no arquivo ACBrXmlBase.pas: function TratarXmlRetorno(const aXML: string): string; begin Result := StrToXml(aXML); ... end; ... function StrToXml(const AXML: string): string; begin ... Result := FaststringReplace(Result, ''#$A'', '', [rfReplaceAll]); //AQUI ESTÁ REMOVENDO A QUEBRA DE LINHA Result := FaststringReplace(Result, ''#$A#$A'', '', [rfReplaceAll]); end; Se eu usar o XML antes de enviar ( _xml := FObjNFSeX.NotasFiscais.Items[0].GerarXML; ), não tenho os dados da NFSe gerada, então teria de pegar do retorno. Usando desta forma: retorno := FObjNFSeX.Emitir(IntToStr(idlote)); Se eu pegar o "retorno.EnvelopeRetorno" e fizer eu mesmo a limpeza do SOAP, eu acredito que consiga o resultado. Alguns outros problemas: - FObjNFSeX.NotasFiscais.Items[0].XMLNFSe - não retorna nada (no ACBrNFSe voltava) - FObjNFSeX.NotasFiscais.Items[0].NFSe.Protocolo - não retorna nada (o XML tem o protocolo) Hoje estou pegando o retorno de FObjNFSeX.NotasFiscais.Items[0].XMLOriginal Estou gerando um RPS. Exemplo que pode ser visto online no site da prefeitura: https://api.hom-ecity.maringa.pr.gov.br/v1/print/nfe/05112399000116/206/EDBDEBD81 Tem alguma solução/sugestão para isso? NFSe_xmls.zip
  18. Italo, funcionou perfeitamente. Muito obrigado.
  19. Boa tarde Italo. Achei: é "\s\n". Só não sei onde colocar sem alterar o fonte. Eu coloquei em ISSe.GravarXml.pas procedure TNFSeW_ISSe.Configuracao; begin inherited Configuracao; ... // outros códigos FAOwner.ConfigGeral.QuebradeLinha := '\s\n'; end; Com essa alteração, ficou assim o resultado:
  20. Bom dia pessoal. Estamos utilizando a descriminação do serviço com quebra de linha, para a prefeitura de Maringá/PR. if (Servico.Discriminacao <> '') then Servico.Discriminacao := Servico.Discriminacao + System.sLineBreak; Servico.Discriminacao := Servico.Discriminacao + 'Cod.: ' + qryItens.FieldByName('prd_cod').AsString + ' - Descrição: ' + UpperCase(qryItens.FieldByName('prd_descricao').AsString) + ' - Qtde.: ' + qryItens.FieldByName('itm_qtde').AsString + ' - Vlr. Unit.: ' + qryItens.FieldByName('itm_vlrunitario').AsString + ' - Vlr. Desc.: ' + FormatFloat('#,##0.00', qryItens.FieldByName('itm_vlrdesconto').AsFloat); // observação if (qryIde.FieldByName('obsconhecimento').AsString <> '') then begin if (Servico.Discriminacao <> '') then Servico.Discriminacao := Servico.Discriminacao + System.sLineBreak; Servico.Discriminacao := Servico.Discriminacao + 'Obs.:' + System.sLineBreak + qryIde.FieldByName('obsconhecimento').AsString; end; O campo do banco "obsconhecimento" está preenchido assim, utilizando quebra de linha: Primeira linha da observação Segunda linha da observação O XML gerado está ficando assim: <Discriminacao>Cod.: 002524 - Descricao: PRESTACAO DE SERVICO PARA DES DE SOFTWARE INDUSTRI - Qtde.: 1 - Vlr. Unit.: 1,23 - Vlr. Desc.: 0,00;Obs.:;Primeira linha da observacao;Segunda linha da observacao</Discriminacao> A geração da NFSe pelo link da prefeitura não está retornando as quebras de linha (a consulta no site também não mostra as quebras): Pelo que entendi, o ACBr troca as quebras de linha para ";". A prefeitura não deveria trocar na visualização os ";" por quebras de linha? Será que o caracter de quebra de linha da Prefeitura de Maringá/PR está realmente correto? Agora estou utilizando o ACBrNFSeX, mas quando utilizava o ACBrNFSe também ocorria o mesmo problema.
  21. Boa tarde Italo. Aquela alteração que eu tinha citado foi em tempo de execução, ou seja, via Debug Ctrl+F7 do Delphi, e não alteração do fonte... Fiz a alteração que você sugeriu no arquivo ISSe.GravarXml.pas, e funcionou normalmente. Muito obrigado.
  22. Olá pessoal. Antes estava utilizando o componente NFSe sem problemas. Migrei para o novo componente NFSeX, e está ocorrendo o seguinte problema: Código: E104 Mensagem: Item da lista inválido. Correção: O campo item da lista de serviço deverá ter tamanho máximo de 5 caracteres. Código: E30 Mensagem: Item da lista de serviço inexistente. Correção: Consulte a legislação vigente para saber o item da lista de serviço que deverá ser informado. Notei que no XML, antes o campo "ItemListaServico" não possuía nenhuma pontuação, e agora está com um "." (ponto), por exemplo, antes estava assim "<ItemListaServico>0101</ItemListaServico>" (ACBrNFSe) agora está assim "<ItemListaServico>01.01</ItemListaServico>" (ACBrNFSeX). Utilizando o Ctrl+F7, alterei a propriedade "FormatoItemListaServico" para "filsSemFormatacao", dentro de "TNFSeW_ABRASFv2.GerarServico" arquivo "ACBrNFSeXGravarXml_ABRASFv2.pas", e funcionou corretamente. Alguma sugestão de configuração ou é um Bug? A cidade é Maringá/PR.
×
×
  • 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.