Ir para conteúdo
  • Cadastre-se

dev botao

Separação Clara de Observações e Links no Campo OutrasInformacoes


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

Recommended Posts

  • Membros Pro
Postado

Boa tarde. Tudo certo?

Como garantir que as observações do usuário e o link do sistema Fly e-Nota sejam separados de maneira clara e sem misturas no campo OutrasInformacoes do XML gerado?
ex:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;BBBBBBBBBBBBBBBBBBBBB BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB;VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVV https://e-gov.betha.com.br/e-nota/visualizarnotaeletronica?link=17182228021921171551614520964043060870504328701742036 Valor aproximado do tributo federal - R$ 0,13 (13,45%), estadual - R$ 0,00 (0,00%), municipal - R$ 0,03 (3,15%) , com base na Lei 12.741/2012 e no Decreto 8.264/2014 - Fonte: IBPT

  • Membros Pro
Postado
17 minutos atrás, Italo Giurizzato Junior disse:

Bom dia @gary.rj,

Experimente finalizar a observação do prestador com o caracter ";" (ponto e virgula).

Bom dia @Italo Giurizzato Junior, tudo certo?
Então adicionei o ";" ao final da OBS e ficou assim:

image.png.60909e9d54171ca0fa12fc34b093f31b.png

  • Consultores
Postado

Boa tarde @gary.rj,

Essa imagem é do DANFSE gerado pelo portal da prefeitura?

Se sim, é esperado que isso ocorra, pois o caracter ";" ponto e virgula é o que devemos usar no componente, mas precisamos saber qual é o caracter ou sequencia de caracteres usando pelo provedor, para que a impressão ocorra de forma correta.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado
2 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde @gary.rj,

Essa imagem é do DANFSE gerado pelo portal da prefeitura?

Se sim, é esperado que isso ocorra, pois o caracter ";" ponto e virgula é o que devemos usar no componente, mas precisamos saber qual é o caracter ou sequencia de caracteres usando pelo provedor, para que a impressão ocorra de forma correta.

Boa tarde.
Sim é o gerado pelo portal.

  • 4 semanas depois ...
  • Consultores
Postado

Bom dia @gary.rj,

Na unit Betha.Provider observe que existem duas procedures chamada Configuracao.

Uma é para a versão 1.00 e a outra para a versão 2.02

É preciso saber qual versão usado pela cidade em questão.

Ai basta colocar na procedure correta a linha que defini a quebra de linha como sendo "\s\n".

Na sua aplicação você vai continuar usando o caracter ";" (ponto e virgula).

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Bom dia. Tudo certo?

Assim?
 

procedure TACBrNFSeProviderBetha.Configuracao;
begin
  inherited Configuracao;

  ConfigGeral.DetalharServico := True;

  ConfigGeral.Particularidades.PermiteTagOutrasInformacoes := True;

  ConfigGeral.QuebradeLinha := '\s\n';

  • Membros Pro
Postado

@Italo Giurizzato Junior
Testei sim e o xml ficou assim:
ai ja coloquei #13#10 CR LF só o LF.
na unit ACBrNFSeXGravarXml_ABRASFv1 alterei ela para

 Result.AppendChild(AddNode(tcStr, '#11', 'OutrasInformacoes', 1, 255, NrOcorrOutrasInformacoes,
                                       StringReplace( NFSe.OutrasInformacoes, ';', FpAOwner.ConfigGeral.QuebradeLinha,
                                     [rfReplaceAll, rfIgnoreCase]), DSC_OUTRASINF) );
e até agora sempre tive o mesmo resultado, ainda nao descobri o que estou fazendo errado.


<OutrasInformacoes>DADOS PARA DEPOSITO\s\nAG. 01234\s\nC/C 1234567\s\nPEDIDO DE COMPRA 6363/63\s\n https://e-gov.betha.com.br/e-nota/visualizarnotaeletronica?link=17206437970702131551624520964431621468017356106434038</OutrasInformacoes>

  • Consultores
Postado

Bom dia @gary.rj,

Notei que na tag OutrasInformacoes ocorreu a troca do ";" pela sequencia "\s\n", portanto o componente esta fazendo o que deveria fazer.

A questão agora é:

Esse XML após ser enviado para o webservice do provedor e convertido para NFS-e como é que fica a impressão do DANFSE via portal e via componente?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Bom dia @gary.rj,

É que eu vi as linhas iniciais com quebras de linha achei que tinha funcionado.

Resumindo:

A impressão pelo componente fica correto, certo?

A impressão pelo site não fica, certo?

Você usou a sequencia de caracteres que o provedor disse que eles usam para quebra de linha e mesmo assim não deu certo, correto?

Se a resposta for sim para as três perguntas acima não vejo outra alternativa você voltar a entrar em contato com o provedor novamente e dizer que não funcionou a sequencia de caracteres que eles passaram.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado (editado)

O que seria a impressão pelo componente?
Emitir(aNrLote, meLoteAssincrono, True); 
seria isso?
para as outras 2 perguntas perguntas a resposta é sim.

image.thumb.png.0229ba4129e590e817fb59f4f222aa99.png

image.thumb.png.8686b9f9bee387dfbbe593f769c85ef8.png

Editado por gary.rj
  • Membros Pro
Postado (editado)

Boa tarde. tudo certo?

na verdade o que aconteceu foi que em um eu escrevi apenas abc, ai quebrou a linha 
e no outro eu escrevi:

Dados para contas 
Ag
CC

e ai so quebrou a linha quando acabou o texto da Obs. 
 

Editado por gary.rj
  • Consultores
Postado

Boa noite @gary.rj,

Desculpa não entendi nada o que você fez.

Vamos pegar o campo Discriminacao a titulo de exemplo.

Eu desejo que seja impresso:

Linha 1
Linha 2
Linha 3

Eu devo atribuir ao campo Discriminacao o conteúdo "Linha 1;Linha 2;Linha 3"

Note que estou usando o caracter ponto e virgula para indicar onde eu quero que a quebra de linha ocorra.

Essa é a regra, sempre vamos usar o caracter ponto e virgula.

Na unit do provedor diz que a quebra de linha usada pelo provedor é "\s\n".

O componente ao gerar o XML vai realizar a substituição ficando da seguinte forma no XML:

<Discriminacao>Linha 1\s\nLinha 2\s\nLinha 3</Discriminacao>

É de se esperar que o provedor reconheça a sequencia "\s\n" como quebra de linha conforme orientação do próprio provedor e consequentemente ao visualizar o DANFSE via site da prefeitura tenhamos o resultado esperado.

Informação importante: O componente não estava realizando a troca da sequencia usada pelo provedor nos campos OutrasInformacoes e InformacoesComplementares, mas realizei uma alteração nos fontes do componente para contemplar também esses dois campos. Sendo assim por favor atualize todos os fontes de todas as pastas e reinstale o ACBr, por fim compile a aplicação com a opção Build.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

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