Ir para conteúdo
  • Cadastre-se

Valter FC

Membros
  • Total de ítens

    16
  • Registro em

  • Última visita

Últimos Visitantes

O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.

Valter FC's Achievements

Apprentice

Apprentice (3/14)

  • Reacting Well Rare
  • One Year In
  • Collaborator Rare
  • First Post
  • Conversation Starter

Recent Badges

4

Reputação

1

Community Answers

  1. 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.
  2. 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
  3. 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.
  4. 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.
  5. 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'
  6. 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.
  7. 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.
  8. 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
  9. 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:
  10. 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.
  11. 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.
×
×
  • 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.