Ir para conteúdo
  • Cadastre-se

dev botao

Quebra de linha na impressão via site - Prefeitura RJ


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

Recommended Posts

Bom dia!
Conforme fora relatado no tópico abaixo, o webservice da prefeitura do Rio de Janeiro define as quebras de linhas com o próprio #13#10, não podendo ser removido ou substituído por ponto e vírgula, por exemplo, como faz o parse do ACBrNFSe atualmente (de forma correta, seguindo os padrões de tratamento do xml, mas que acaba embaralhando a discriminação do serviço ao visualizar via site).

Esbarrei com o mesmo problema, pois quase todos os nossos clientes são da cidade do Rio de Janeiro e todos utilizam a impressão via site da prefeitura.
E como no tópico relacionado não houve solução, mas um paliativo de alinhamento do dado com "." ou "_", então decidi abrir este tópico para apresentar a solução que encontrei e avaliarem se pode ser ajustado nos fontes.

Conforme o Ítalo havia sugerido inicialmente, realizei a seguinte alteração na unit pnfsNFSeW_ABRASFv1 (linhas 374 e 436), mas deixando o parâmetro dinâmico somente para o município do RJ:

Citar

    Gerador.wCampoNFSe(tcStr, '#32', 'Discriminacao', 01, 2000, 1,
                    StringReplace( NFSe.Servico.ItemServico.Discriminacao, ';', FQuebradeLinha, [rfReplaceAll, rfIgnoreCase] ),
                      DSC_DISCR, (NFSe.PrestadorServico.Endereco.CodigoMunicipio <> '3304557'));


Para que o dado não fique sem o parse com tratamento de retirada de acentos e espaços, ao alimentar o componente, sempre chamo a seguinte função de pcnAuxiliar para o texto de discriminação:

Citar

NFSe.Servico.Discriminacao := FiltrarTextoXML(ACBrNFSe.Configuracoes.Geral.RetirarEspacos, sDiscriminacao, ACBrNFSe.Configuracoes.Geral.RetirarAcentos, False);

 

Além disso, no arquivo RJ.ini, deixei vazio o parâmetro de quebra de linha:
"QuebradeLinha="

E o mais importante:
Como o webservice da prefeitura do RJ não exige a assinatura dos documentos e sempre enviamos assim quando fazíamos por fora do ACBr, então alterei para 0 todas as opções de assinatura no mesmo arquivo "RJ.ini", pois era o principal problema relatado no tópico anterior, devido o método de assinatura remover as quebras de linha (#13#10) do XML. 

Feito isso, a NFS-e foi transmitida com sucesso e com as devidas quebras de linha.

Em anexo estão a unit e o arquivo RJ.ini com as alterações realizadas para avaliação.

 

RJ.ini pnfsNFSeW_ABRASFv1.pas

Link para o comentário
Compartilhar em outros sites

  • Administradores
  • Solution

Bom dia.

Suas alterações foram adicionadas ao svn pelo @Italo Jurisato Junior

Att.

  • Obrigado 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 1
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...