Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Favor renomear o arquivo Smaradp -> Smarapd e na tabela cidades mudar as cidades abaixo pois esta com nome de provedor incorreto, o resto funcionou corretamente.

[3202405]
Nome=Guarapari
UF=ES
Provedor=Smarapd
NomeURL_H=servicos-pmg.guarapari.es.gov.br:9999
NomeURL_P=servicos-pmg.guarapari.es.gov.br:9999

[3205002]
Nome=Serra
UF=ES
Provedor=Smarapd
NomeURL_H=apps.serra.es.gov.br:8080
NomeURL_P=apps.serra.es.gov.br:8080

[3201308]
Nome=Cariacica
UF=ES
Provedor=Smarapd
NomeURL_H=servicos.cariacica.es.gov.br:8080
NomeURL_P=servicos.cariacica.es.gov.br:8080

Cidades.ini

Smarapd.ini

Editado por Renan Eustaquio
  • 2 semanas depois ...
Postado (editado)

Precisei alterar a leitura das NFSe da Smarapd pois da forma que estava só lia a primeira NFSe do arquivo, porém não sei como disponibilizar as correções:

 

Na na função PosNFSe dentro da unit ACBrNFSeNotasFiscais alterei a seguinte linha:

de: Result := Pos('</tbnfd>', AXMLString); 

para:   Result := Pos('</nfdok>', AXMLString);

 

e na função LerNFSe_Smarapd dentro da unit pnfsNFSeR alterei a linha:

de: IdentificacaoPrestador.Cnpj               := Trim(copy(vLinha,pos('CPF/CNPJ:',vLinha)+10,length(vLinha)-1));

para: IdentificacaoPrestador.Cnpj               := OnlyNumber(Trim(copy(vLinha,pos('CPF/CNPJ:',vLinha)+10,length(vLinha)-1)));

 

Editado por pcbonetti
  • 1 mês depois ...
  • 2 semanas depois ...
Postado

Olá @Italo Jurisato Junior tudo bem ?

A natureza de operação é tratada como enum.

  TnfseNaturezaOperacao = ( no1, no2, no3, no4, no5, no6, no7, no9, no11, no12, no14, .......

No manual do Smarapd temos mais naturezas do que o previsto nos enums do componente. Por exemplo 512, 611, 612, 615, 715. Estes são apenas alguns mas são um total de 17 códigos.

Devemos prever todos estes códigos como enum no componente ?

Na classe que constrói o XML foi necessário fazer a seguinte alteração

Gerador.wCampoNFSe(tcStr,     '', 'codnaturezaoperacao',       01, 12, 1, NaturezaOperacaoToStr(FNFSe.NaturezaOperacao), '');

Qualquer dúvida fico a disposição,

Abraços,

pnfsNFSeW_SMARAPD.pas

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

Postado

Olá Italo, tudo bem ?

Estou enviando mais uma alteração, o provedor smarapd permite o envio das condições de pagamento e de outras informações

procedure TNFSeW_SMARAPD.GerarCondicaoPagamento;
var
  i: Integer;
begin
  Gerador.wGrupoNFSe('tbfatura');
  for i := 0 to FNFSe.CondicaoPagamento.Parcelas.Count - 1 do
    begin
      Gerador.wGrupoNFSe('fatura');
      Gerador.wCampoNFSe(tcStr,    '', 'numfatura',        01, 12, 1, FNFSe.CondicaoPagamento.Parcelas.Items[i].Parcela, '');
      Gerador.wCampoNFSe(tcDatVcto,'', 'vencimentofatura', 01, 12, 1, FNFSe.CondicaoPagamento.Parcelas.Items[i].DataVencimento, '');
      Gerador.wCampoNFSe(tcDe2,    '', 'valorfatura',      01, 12, 1, FNFSe.CondicaoPagamento.Parcelas.Items[i].Valor, '');
      Gerador.wGrupoNFSe('/fatura');
    end;
  Gerador.wGrupoNFSe('/tbfatura');
end;    

 

procedure TNFSeW_SMARAPD.GerarTomador;
begin
.
.
.
.
  Gerador.wCampoNFSe(tcStr, '', 'observacao',                01, 110, 1, FNFSe.OutrasInformacoes,'');
end;

Eu não consegui transmitir ainda no ambiente de produção, pois o cliente que eu estou integrando precisa de e-CPF, mas no ambiente de homologação fiz a transmissão e o processamento do RPS com sucesso enviando estas informações no XML

Segue o arquivo alterado em anexo,

Fico a disposição

Abraços

 

pnfsNFSeW_SMARAPD.pas

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

Postado

Olá Italo, tudo bem ?

Obrigado. Só mais uma sugestão. 

Para gerar o link da NF segue as alterações no arquivo ini

[LinkNFSe]					  
Producao=http://%NomeURL_P%/tbw/loginWeb.jsp?execobj=NFENotaFiscalBuscarDireto&cnpj=%CNPJ%&numero=%NumeroNFSe%&chave=%ChaveAcesso%
Homologacao=http://%NomeURL_P%/tbw/loginWeb.jsp?execobj=NFENotaFiscalBuscarDireto&cnpj=%CNPJ%&numero=%NumeroNFSe%&chave=%ChaveAcesso%

Segue o arquivo ini em anexo

Abraços,

Smarapd.ini

logo-keruak.png

 André Medeiros

 Estratégia & Negócios
 +55 11 3010 0000

url-keruak.pngfacebook-keruak.pngespaco.pnglinkedin-keruak.png

  • 2 meses depois ...
Postado

Bom dia pessoal,

Estou ressuscitando o tópico porque estou apanhando com o bendito do SmaraPD. Vocês também tiveram problema com o envio da senha ?

Estou tentando transmitir pela propriedade Geral.SenhaWeb a senha de acesso do meu usuário criptografada com SHA1 conforme orientação do manual, mas recebo a mensagem "senha inválida"  no momento da transmissão.

O suporte da SmaraPD não tem sido de grande ajuda, eles só falam que eu devo ler o manual e mais nada.

Eu criei uma função para encriptação da senha utilizando o Turbopower LockBox 3:

function HashSenhaSHA1(sSenha: WideString): WideString;
var
  bytes : TBytes;
  i, P, Sz: integer;
  aByte: byte;
  s: string;
  SHA1 : THash;
  Lib : TCryptographicLibrary;
begin
  Lib := TCryptographicLibrary.Create(nil);
  SHA1 := THash.Create(nil);
  SHA1.CryptoLibrary := Lib;
  SHA1.HashId := 'native.hash.SHA-1';
  SHA1.Begin_Hash;
  SHA1.HashString(sSenha);

  if not assigned(SHA1.HashOutputValue) then
      result := 'nil'
  else
  begin
    SetLength(Bytes, 20);
    Sz := SHA1.HashOutputValue.Size;

    if Sz <> 20 then
      result := Format('wrong size: %d', [Sz])
    else
    begin
       P := 0;
       SHA1.HashOutputValue.Position := 0;

       while SHA1.HashOutputValue.Read(aByte, 1) = 1 do
       begin
         bytes[P] := aByte;
         Inc(P);
       end;

       result := TNetEncoding.Base64.EncodeBytesToString(bytes);
    end;
  end;

  SHA1.Destroy;
  Lib.Destroy;
end;

 

Postado

Pessoal, desculpe a mensagem anterior, só agora debugando os fontes eu percebo que o próprio ACBRNFSe aplica o Hash à senha. Eu consegui passar pelo erro de senha, mas tenho um retorno que o campo "codatividade" não foi preenchido.

Olhando os fontes do ACBr não consigo encontrar qual campo do componente deve ser preenchido para que a informação seja enviada no XML. Alguém pode me ajudar ?

 

 

 

 

 

  • 4 semanas depois ...
Postado

Bom dia. Alguém tem os schemas ou contato desse provedor para disponibilizar. Estou tentando fazer a integração com Cubatão/SP, mas não esta prosperando...

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

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.