Ir para conteúdo
  • Cadastre-se

Elemento 'cPaisPrestacao' na RPS para a cidade de São Paulo


Ver Solução Respondido por wilsonaaugusto,

Recommended Posts

Postado

Ao enviar o .xml do RPS para a cidade de São Paulo, usando o ACBrNFSeX, estou recebendo a falha:

Erro de Validação:  --> 1839 - Element 'cPaisPrestacao': [facet 'pattern'] The value '' is not accepted by the pattern '[A-Z]{2}'.

Estou preenchendo as seguintes propriedades:

NFSeX.Servico.CodigoMunicipio := '3550308';
NFSeX.Servico.UFPrestacao := 'SP';

NFSeX.Servico.CodigoPais := 1058;
NFSeX.Servico.xPais := 'BRASIL';

NFSeX.Servico.CodigoMunicipioLocalPrestacao := 3550308;

Tem alguma propriedade que estou deixando de preencher?

 

Postado

Descobri que se eu não preencher "NFSeX.Servico.CodigoMunicipio" (NFSeX.Servico.CodigoMunicipio := '';), ele gera a tag.

Vou testar o envio do xml para a prefeitura e ver o resultado.

Postado

Após enviar o xml, deu a mesma falha. Notei que após carregar o xml e dar a falha, o ACBrNFSeX regrava o xml com a tag vazia. Antes estava preenchida.

No "ISSSAoPaulo.LerXml.pas" temos:

  NFSe.Servico.CodigoMunicipio := ObterConteudo(ANode.Childrens.FindAnyNs('MunicipioPrestacao'), tcStr);

  if NFSe.Servico.CodigoMunicipio = '' then
    NFSe.Servico.CodigoMunicipio := NFSe.Prestador.Endereco.CodigoMunicipio;

Neste caso ele está preenchendo novamente o Servico.CodigoMunicipio antes de enviar.

Vou tentar apagar novamente após ler o xml e antes de enviar pra ver o que acontece.

Postado

Falha minha. Após ler o xml, a propriedade "CodigoMunicipio" não é preenchida quando xml de RPS. Somente se xml de NFSe. Mas a falha inicial continua acontecendo ao enviar o xml do RPS.

 

Postado

Após alguns testes, verifiquei que, ao enviar o xml do RPS, na procedure ISSSaoPaulo.Provider.TACBrNFSeProviderISSSaoPaulo.PrepararEmitir(), linha 545(LNota.GerarXML;) acontece de ser gerado um novo xml para o RPS com a tag "cPaisPrestacao" em branco que é enviado gerando a falha e, depois, sendo gravado por cima da original.

 

 

Postado

Forçando a barra e colocando :

  NFSe.Servico.CodigoPais := 1058;
  NFSe.Servico.CodigoNBS := ObterConteudo(ANode.Childrens.FindAnyNs('NBS'), tcStr);

ao final da procedure "LerXmlRps()" do "ISSSaoPaulo.LerXML.pas" funcionou mas aí veio:

Falhas(s):
Código  : 267
Mensagem: Código do país onde ocorreu a prestação do serviço no exterior não pode se referir ao Brasil. Para os casos em que a prestação de serviço ocorrer no Brasil, deve ser preenchido o campo de código do município do local da prestação do serviço no país.
Correção: Numero/Série Rps: 124648/1

Voltei à estaca zero.

  • Solution
Postado

Atualizando:

1 - No ISSSaoPaulo.GravarXml.pas, mudei

  if VersaoNFSe = ve200 then
  begin
    if NFSe.Servico.CodigoMunicipio <> '' then
      LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cLocPrestacao', 7, 7, 1,
                                              NFSe.Servico.CodigoMunicipio, ''))
    else
      LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cPaisPrestacao', 2, 2, 1,
                          CodIBGEPaisToSiglaISO2(NFSe.Servico.CodigoPais), ''));
  end;

por

  if VersaoNFSe = ve200 then
  begin
    if NFSe.Servico.CodigoMunicipio = '' then
      NFSe.Servico.CodigoMunicipio := NFSe.Tomador.Endereco.CodigoMunicipio;
    if NFSe.Servico.CodigoMunicipio <> '' then
      LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cLocPrestacao', 7, 7, 1,
                                              NFSe.Servico.CodigoMunicipio, ''))
    else
      LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cPaisPrestacao', 2, 2, 1,
                          CodIBGEPaisToSiglaISO2(NFSe.Servico.CodigoPais), ''));
  end;

e no ISSSaoPaulo.LerXml.pas, mudei

  if NFSe.Servico.CodigoMunicipio = '' then
    NFSe.Servico.CodigoMunicipio := NFSe.Prestador.Endereco.CodigoMunicipio;

por

  if NFSe.Servico.CodigoMunicipio = '' then
    NFSe.Servico.CodigoMunicipio := NFSe.Tomador.Endereco.CodigoMunicipio;

Com isso o xml do RPS está sendo gerado e enviado corretamente. Mas não acho que é a solução final, posso estar preenchendo as propriedades do componente de maneira errada.

Mas queria finalizar este tópico.

Obrigado.

 

  • Consultores
Postado

Para SP olhe em base de conhecimento tem um tópico sobre como configurar pois existem duas versões lá 

e com isso pode estar ocorrendo o erro

 

Consultora ACBr Pro

Juliomar Marchetti

Ajude o Projeto ACBr crescer - Seja Pro

discord: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br

 

MVP_NewLogo_100x100_Transparent-02.png
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 !!

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

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