Ir para conteúdo
  • Cadastre-se

dev botao

Novos Fontes do ACBrNFSe


  • Este tópico foi criado há 3520 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores

Boa noite Marco,

 

O componente possui na unit pnfsConversao.pas uma function onde informamos o código do serviço e este retorna a sua descrição.

 

O que eu fiz foi possibilitar uma segunda alternativa onde você determina se deseja a descrição que encontra-se na unit ou no arquivo chamado TabServicos.txt

 

O componente agora possui uma propriedade chamada TabServicosExt cujo valor padrão False.

 

Detalhe importante o arquivo TabServicos.txt tem que ser salvo na mesma pasta do executável.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Dênio,

 

Vasculhe o HD da maquina em busca do arquivo qrpt70.bpl se não me falha a memória é esta extensão.

 

Ao encontrar renomeie esse arquivo para qrpt70_xxx, isso deve resolver o problema.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa noite Marco,

 

Se aparece a mensagem de erro acusando que um identificador não esta definido, isso significa que o a unit onde encontra-se a definição a mesma não foi compilada.

 

Procure sempre compilar com a opção Build.

 

Caso você já tenha feito esse procedimento, com certeza existe uma DCU antiga perdida no HD e o Delphi a esta utilizando em vez da nova.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa noite Dênio,

 

Vasculhe o HD da maquina em busca do arquivo qrpt70.bpl se não me falha a memória é esta extensão.

 

Ao encontrar renomeie esse arquivo para qrpt70_xxx, isso deve resolver o problema.

Obrigado, achei que  funcionou, mas não, só funciona quando altero no exemplo da NFSe e retiro 'ACBrNFSeDANFSeQRClass' de Uses.

 

Mais uma coisa, com o componente seria possível passar o xml de envio de lote com as RSPs ou sempre tenho que popular o componente com as notas. Pergunto isto pois a ideia seria fazer um monitor que fique verificando uma pasta e quando detectar o arquivo faça a assinatura e transmissão, isto é possível?

 

Muito obrigado pela atenção

Editado por Dênio Galdino
Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Dênio,

 

A validação sempre é feita em cima do lote, quanto a assinatura o meu conselho caso você vai desenvolver um monitor é:

 

Em vez da sua aplicação salvar na pasta o XML do RPS, salvar um TXT com os dados do RPS.

 

O monitor lê o TXT alimenta o componente com os dados lidos e se encarrega de fazer o resto.

 

Porque fazer desta forma, pois alguns provedores requerem que o XML do RPS seja assinado e outros não, uns requer que o lote seja assinado e outros não, outros possui algumas particularidades a mais no XML ou até mesmo a inversão de uma TAG em relação a outra.

 

Quanto ao problema com o DANFSE, com certeza você deve ter alguma DCU antiga em alguma pasta que o Delphi esta tendo acesso.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde Dênio,

 

A validação sempre é feita em cima do lote, quanto a assinatura o meu conselho caso você vai desenvolver um monitor é:

 

Em vez da sua aplicação salvar na pasta o XML do RPS, salvar um TXT com os dados do RPS.

 

O monitor lê o TXT alimenta o componente com os dados lidos e se encarrega de fazer o resto.

 

Porque fazer desta forma, pois alguns provedores requerem que o XML do RPS seja assinado e outros não, uns requer que o lote seja assinado e outros não, outros possui algumas particularidades a mais no XML ou até mesmo a inversão de uma TAG em relação a outra.

 

Quanto ao problema com o DANFSE, com certeza você deve ter alguma DCU antiga em alguma pasta que o Delphi esta tendo acesso.

 

Obrigado pela resposta,

vou pensar no que é melhor e mais rápido pois a entrega deste modulo já esta atrasada. E como o sistema da empresa é em Visual FoxPro, estou um pouco limitado.

Link para o comentário
Compartilhar em outros sites

Boa tarde Dênio,

 

A validação sempre é feita em cima do lote, quanto a assinatura o meu conselho caso você vai desenvolver um monitor é:

 

Em vez da sua aplicação salvar na pasta o XML do RPS, salvar um TXT com os dados do RPS.

 

O monitor lê o TXT alimenta o componente com os dados lidos e se encarrega de fazer o resto.

 

Porque fazer desta forma, pois alguns provedores requerem que o XML do RPS seja assinado e outros não, uns requer que o lote seja assinado e outros não, outros possui algumas particularidades a mais no XML ou até mesmo a inversão de uma TAG em relação a outra.

 

Quanto ao problema com o DANFSE, com certeza você deve ter alguma DCU antiga em alguma pasta que o Delphi esta tendo acesso.

Bom Dia Italo

 

Gerei um arquivo txt com dois RPS, uso a tag 'Inicio=' para marcar o inicio do RPS e 'Final=' para marcar o final. Gostaria de na leitura do arquivo ao encontrar 'Inicio=' incluir uma nota, isto é possível?

Estou usando o seguinte código:

 

procedure TfrmDemo_ACBrNFSe.GerarNFSeTXT(pArquivo: string);

var

   ValorISS: Double;

   iFileHandle: Integer;

   iFileLength: Integer;

   iBytesRead: Integer;

   I: Integer;

   vLinha, vCampo, vValor: string;

   Buffer: PChar;

   s: TStringList;

   vDecimalSeparator: Char;

begin

   vDecimalSeparator := DecimalSeparator;

   DecimalSeparator := '.';

   ACBrNFSe1.NotasFiscais.Clear;

   iFileHandle := FileOpen(pArquivo, fmOpenRead or fmShareExclusive);

   if iFileHandle >= 0 then

   begin

      try

         try

            iFileLength := FileSeek(iFileHandle, 0, 2);

            FileSeek(iFileHandle, 0, 0);

            Buffer := PChar(AllocMem(iFileLength + 1));

            iBytesRead := FileRead(iFileHandle, Buffer^, iFileLength);

 

            s := TStringList.Create;

            s.Text := Buffer;

            FreeMem(Buffer);

            for i := 0 to s.Count - 1 do

            begin

 

               vLinha := s.Strings;

               vCampo := copy(vLinha, 1, Pos('=', vLinha) - 1);

               vValor := copy(vLinha, Pos('=', vLinha) + 1, Length(vLinha));

 

               if (vCampo = 'Lote') then

                  ACBrNFSe1.NotasFiscais.NumeroLote := Trim(copy(vLinha, 6, 10))

               else if (vCampo = 'Cnpj') then

               else if (vCampo = 'InscricaoMunicipal') then

               else if (vCampo = 'QuantidadeRps') then

               else if (vCampo = 'Inicio') then

               begin

                  ACBrNFSe1.NotasFiscais.Add;

               end

               else if (vCampo = 'Rps Id') then

               else if (vCampo = 'Numero') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.IdentificacaoRps.Numero :=

                     vValor

               else if (vCampo = 'Serie') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.SeriePrestacao := vValor

               else if (vCampo = 'Tipo') then

                  case strtoint(vValor) of

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.IdentificacaoRps.Tipo :=

                        trRPS;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.IdentificacaoRps.Tipo :=

                        trNFConjugada;

                     3: ACBrNFSe1.NotasFiscais.Add.NFSe.IdentificacaoRps.Tipo :=

                        trCupom;

                  end

               else if (vCampo = 'DataEmissao') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.DataEmissaoRps :=

                     StrToDate(copy(vValor, 1, 10))

               else if (vCampo = 'NaturezaOperacao') then

                  case StrToInt(vValor) of

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.NaturezaOperacao :=

                        noTributacaoNoMunicipio;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.NaturezaOperacao :=

                        noTributacaoForaMunicipio;

                     3: ACBrNFSe1.NotasFiscais.Add.NFSe.NaturezaOperacao :=

                        noIsencao;

                     4: ACBrNFSe1.NotasFiscais.Add.NFSe.NaturezaOperacao :=

                        noImune;

                     5: ACBrNFSe1.NotasFiscais.Add.NFSe.NaturezaOperacao :=

                        noSuspensaDecisaoJudicial;

                     6: ACBrNFSe1.NotasFiscais.Add.NFSe.NaturezaOperacao :=

                        noSuspensaProcedimentoAdministrativo;

                  end

               else if (vCampo = 'RegimeEspecialTributacao') then

                  case StrToInt(vValor) of

                     0: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retNenhum;

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retMicroempresaMunicipal;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retEstimativa;

                     3: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retSociedadeProfissionais;

                     4: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retCooperativa;

                     5: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retMicroempresarioIndividual;

                     6: ACBrNFSe1.NotasFiscais.Add.NFSe.RegimeEspecialTributacao

                        := retMicroempresarioEmpresaPP;

                  end

               else if (vCampo = 'OptanteSimplesNacional') then

                  case StrToInt(vValor) of

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.OptanteSimplesNacional

                        := snSim;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.OptanteSimplesNacional

                        := snNao;

                  end

               else if (vCampo = 'IncentivadorCultural') then

                  case StrToInt(vValor) of

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.IncentivadorCultural :=

                        snSim;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.IncentivadorCultural :=

                        snNao;

                  end

               else if (vCampo = 'Status') then

                  case StrToInt(vValor) of

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.Status := srNormal;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.Status := srCancelado;

                  end

               else if (vCampo = 'Servico ValorServicos') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorServicos

                     := StrToFloat(vValor)

               else if (vCampo = 'Servico ValorDeducoes') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorDeducoes

                     := StrToFloat(vValor)

               else if (vCampo = 'Servico ValorPis') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorPis :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico ValorCofins') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorCofins :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico ValorInss') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorInss :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico ValorIr') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorIr :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico ValorCsll') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorCsll :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico IssRetido') then

                  case StrToInt(vValor) of

                     0: ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.IssRetido

                        := stRetencao;

                     1: ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.IssRetido

                        := stNormal;

                     2: ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.IssRetido

                        := stSubstituicao;

                  end

               else if (vCampo = 'Servico ValorIssRetido') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorIssRetido

                     := StrToFloat(vValor)

               else if (vCampo = 'Servico ValorIss') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.ValorIss :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico OutrasRetencoes') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.OutrasRetencoes

                     := StrToFloat(vValor)

               else if (vCampo = 'Servico Aliquota') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.Aliquota :=

                     StrToFloat(vValor)

               else if (vCampo = 'Servico DescontoIncondicionado') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Valores.DescontoIncondicionado := StrToFloat(vValor)

               else if (vCampo = 'Servico ItemListaServico') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.ItemListaServico :=

                     vValor

               else if (vCampo = 'Servico CodigoTributacaoMunicipio') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.CodigoTributacaoMunicipio := vValor

               else if (vCampo = 'Servico Discriminacao') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.Discriminacao := vValor

               else if (vCampo = 'Servico CodigoMunicipio') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Servico.CodigoMunicipio :=

                     vValor

               else if (vCampo = 'Prestador CNPJ') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Prestador.Cnpj := vValor

               else if (vCampo = 'Prestador InscricaoMunicipal') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Prestador.InscricaoMunicipal

                     := vValor

               else if (vCampo = 'Tomador CNPJ') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.IdentificacaoTomador.CpfCnpj := vValor

               else if (vCampo = 'Tomador CPF') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.IdentificacaoTomador.CpfCnpj := vValor

               else if (vCampo = 'Tomador RazaoSocial') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.RazaoSocial := vValor

               else if (vCampo = 'Tomador Endereco') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.Endereco :=

                     vValor

               else if (vCampo = 'Tomador Numero') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.Numero :=

                     vValor

               else if (vCampo = 'Tomador Complemento') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.Complemento

                     := vValor

               else if (vCampo = 'Tomador Bairro') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.Bairro :=

                     vValor

               else if (vCampo = 'Tomador CodigoMunicipio') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.CodigoMunicipio := vValor

               else if (vCampo = 'Tomador UF') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.UF := vValor

               else if (vCampo = 'Tomador CEP') then

                  ACBrNFSe1.NotasFiscais.Add.NFSe.Tomador.Endereco.CEP := vValor

               else if (vCampo = 'Final') then

               begin

                  with ACBrNFSe1.NotasFiscais.Add.NFSe do

                  begin

 

                     Servico.Valores.ValorLiquidoNfse :=

                        Servico.Valores.ValorServicos -

                        Servico.Valores.ValorPis -

                        Servico.Valores.ValorCofins -

                        Servico.Valores.ValorInss -

                        Servico.Valores.ValorIr -

                        Servico.Valores.ValorCsll -

                        Servico.Valores.OutrasRetencoes -

                        Servico.Valores.ValorIssRetido -

                        Servico.Valores.DescontoIncondicionado -

                        Servico.Valores.DescontoCondicionado;

 

                     Servico.Valores.BaseCalculo := Servico.Valores.ValorServicos -

                     Servico.Valores.ValorDeducoes -

                     Servico.Valores.DescontoIncondicionado;

                  end;

               end;

 

            end;

         except

            FileClose(iFileHandle);

            s.Free;

            raise;

         end;

      finally

         FileClose(iFileHandle);

         DeleteFile(pArquivo);

         s.Free;

      end;

   end;

   DecimalSeparator := vDecimalSeparator;

end;

lote-Envio-0000000022.TXT

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Dênio,

 

Primeiramente quando postar alguma rotina favor postar como anexo para que o post não fique longo demais como ficou o seu.

 

Segundo porque você não utiliza a formatação de um arquivo INI, algo do tipo:

 

[Lote]

Numero=22

Cnpj=17512294000133
InscricaoMunicipal=123456789
QuantidadeRps=2
[RPS01]
RpsId=rps:41
Numero=4
Serie=1
(...)
[RPS02]
RpsId=rps:51
Numero=5
Serie=1
(...)
 
E utilize as functions nativas do Delphi para ler os campos do arquivo, acredito que desta forma vai ficar mais simples a sua rotina.
 
Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo, quero propor uma alteração no ACBrProvedorGinfesV3.pas na function TProvedorGinfesV3.GetLinkNFSe(...)

hoje está assim:

 if AAmbiente = 1
  then begin
   case ACodMunicipio of
    2304400: Result := 'http://nfse.issfortaleza.com.br/report/consultarNota?__report=nfs_ver4&cdVerificacao=' +
                       ACodVerificacao + '&numNota=' + IntToStr(ANumeroNFSe) + '&cnpjPrestador=null';
   .....
   else Result := '';
  end
  else begin
  etc...

A proposta é para ficar assim:

 if AAmbiente = 1
  then begin
   Result := 'http://visualizar.ginfes.com.br/report/consultarNota?__report=nfs_ver4&cdVerificacao=' +
             ACodVerificacao + '&numNota=' + IntToStr(ANumeroNFSe) + '&cnpjPrestador=null';
  end
  else begin
   Result := 'http://visualizar.ginfesh.com.br/report/consultarNota?__report=nfs_ver4&cdVerificacao=' +
             ACodVerificacao + '&numNota=' + IntToStr(ANumeroNFSe) + '&cnpjPrestador=null';

O Ginfes padronizou a consulta pelo site deles direto, sem ser por cidade. Peço a gentileza de alguém mais testar o caminho direto só colocando o nro da nota e o código de verificação. Aqui na cidade de Franca-SP está funcionando 100% o link genérico no ambiente de produção.

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde José Nilton Pace,

 

Comentei a rotina anterior e coloquei a sua proposta.

Já esta disponível no SVN, vamos aguardar alguma queixa.

 

Muito obrigado pela colaboração.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores

Bom dia Lucas,

 

É preciso saber se tem mais alguém com o mesmo problema e que utiliza o componente ACBrNFSe para enviar os lotes de RPS para o provedor Ginfes de Ribeirão Preto ou para outra cidade.

 

Se para outra cidade esta funcionando, logo o problema é com a cidade de Ribeirão Preto.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Italo, boa tarde.
Sou de São José do Rio Preto, e desenvolvi a emissão da NFS-e pelo ACBr.
Porém estou com um problema : meu cliente daqui de Rio Preto emitiu uma nota de serviço para o cliente dele de Campinas.
Nas configurações do componente coloquei :

ACBrNFSe.Configuracoes.WebServices.CodigoMunicipio := '3549805';   // São José do Rio Preto

 

E nas informações do serviço na nota coloquei CAMPINAS pois o serviço foi executado lá:
Servico.CodigoMunicipio := '3509502'; 

Deu certo no envio da nota para o GINFES, está lá como autorizada, porém quando fui buscar o retorno dá erro em :
ACBrNFSe.NotasFiscais.LoadFromFile('arquivo-rps.xml');
Pois, verificando nos fontes, ao buscar o Provedor que está no RPS pelo CodigoMunicipio, busca o "IssDSF" de CAMPINHAS e não o "GINFES" que seria o correto!!
Ao verificar o XML do RPS não tem nenhuma informação do CodigoMunicipio de São José do Rio Preto.

Teria como buscar essa informação do provedor pelo ACBrNFSe.Configuracoes.WebServices.CodigoMunicipio na função LerRPS em pnfsNFSeR ?

 

agradeço qualquer ajuda

Julio Cezar

Grupo CONDOR tecnologia

www.condortecnologia.com.br

Link para o comentário
Compartilhar em outros sites

  • Moderadores

 

Italo, boa tarde.

Sou de São José do Rio Preto, e desenvolvi a emissão da NFS-e pelo ACBr.

Porém estou com um problema : meu cliente daqui de Rio Preto emitiu uma nota de serviço para o cliente dele de Campinas.

Nas configurações do componente coloquei :

ACBrNFSe.Configuracoes.WebServices.CodigoMunicipio := '3549805';   // São José do Rio Preto

 

E nas informações do serviço na nota coloquei CAMPINAS pois o serviço foi executado lá:

Servico.CodigoMunicipio := '3509502'; 

Deu certo no envio da nota para o GINFES, está lá como autorizada, porém quando fui buscar o retorno dá erro em :

ACBrNFSe.NotasFiscais.LoadFromFile('arquivo-rps.xml');

Pois, verificando nos fontes, ao buscar o Provedor que está no RPS pelo CodigoMunicipio, busca o "IssDSF" de CAMPINHAS e não o "GINFES" que seria o correto!!

Ao verificar o XML do RPS não tem nenhuma informação do CodigoMunicipio de São José do Rio Preto.

Teria como buscar essa informação do provedor pelo ACBrNFSe.Configuracoes.WebServices.CodigoMunicipio na função LerRPS em pnfsNFSeR ?

 

agradeço qualquer ajuda

 

Vejo que você é novo no fórum ! seja bem vindo e por favor leia as

não precisa postar em dois locais ! Poste em um único que quando alguém ler vai responder a você

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Do seu lado direito tem dois botões "Responder" e "Mais Opções" clique nesse "Mais Opções" la tem a como anexar.

  • Curtir 1

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Glecio,

 

Muito obrigado pela colaboração.

 

Favor atualizar os fontes para que os mesmos fiquem sincronizados com o que esta no repositório.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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