Ir para conteúdo
  • Cadastre-se

dev botao

[WSDL] - GNRe RJ Enviar Dados


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

Recommended Posts

Boa tarde a todos,

Estou tentando consumir o webservice do Rio de Janeiro para emissão de Guias do GNRe mas venho tendo um

pouco de dificuldade.

O que estou fazendo:

procedure TFrmPrincipal.GerarRJ;
const
url_rj:string='http://www1.fazenda.rj.gov.br/projetoGCTBradesco/br/gov/rj/sef/gct/webservice/GerarDocumentoArrecadacaoWS.jws?WSDL';
codigo_produto:integer=469; { 469 - Produtos alimentícios }
var
idx:integer;
wsrjEmit:WSGnreRJ.Emitente;
wsrjDocs:WSGnreRJ.ArrayOfDocumento;
wsrjItens:WSGnreRJ.ArrayOfItemPagamento;

wsrj:WSGnreRJ.GerarDocumentoArrecadacaoWS;
wsrjRetorno:WSGnreRJ.ChamadaDadosWebServiceRefLote;
begin
try
   wsrjEmit := WSGnreRJ.Emitente.Create;

   wsrjEmit.CnpjEmitente := StrToInt64(getCNPJ(QryEmpresa.FieldByName('EMP_CNPJ').AsString));
   wsrjEmit.Email        := QryEmpresa.FieldByName('EMP_EMAIL').AsString;

   SetLength(wsrjDocs, 1);
   wsrjDocs[0] := WSGnreRJ.Documento.Create;
   wsrjDocs[0].DataPagamento := FormatDateTime('dd/mm/yyyy', IncDay(Date(),1));
   wsrjDocs[0].TipoDocumento := 2; { 1. DARJ, 2. GNRE }
   wsrjDocs[0].TipoPagamento := 1; { 1. ICMS/FCP }

   try
      QryNotasFiscais.DisableControls;
      QryNotasFiscais.First;
      while not QryNotasFiscais.Eof do
         begin
         if ( QryNotasFiscais.FieldByName('VEN_SELECIONADO').AsInteger = 1 ) then
            begin
            idx :=Length(wsrjItens);
            SetLength(wsrjItens, idx+1);
            wsrjItens[idx] := WSGnreRJ.ItemPagamento.Create;

            wsrjItens[idx].CepContribuinte := StrToIntDef(SoNumeros(QryEmpresa.FieldByName('EMP_CEP').AsString),0);
            wsrjItens[idx].Cnpj :=  wsrjEmit.CnpjEmitente;
            wsrjItens[idx].CodigoProduto := codigo_produto;
            wsrjItens[idx].DataFatoGerador := FormatDateTime('dd/mm/yyyy', QryNotasFiscais.FieldByName('VEN_FATURAMENTO').AsDateTime);
            wsrjItens[idx].DataVencimento := wsrjDocs[0].DataPagamento;
            wsrjItens[idx].EnderecoContribuinte  := TiraAcento(QryEmpresa.FieldByName('EMP_ENDERECO').AsString + ', ' + QryEmpresa.FieldByName('EMP_NUMERO').AsString);
            wsrjItens[idx].MunicipioContribuinte := TiraAcento(QryEmpresa.FieldByName('CID_DESCRICAO').AsString);
            wsrjItens[idx].UfContribuinte := TiraAcento(QryEmpresa.FieldByName('CID_UF').AsString);
            wsrjItens[idx].Natureza := 3; { 3. Diferencial de Alíquota }
            wsrjItens[idx].NaturezaQualificacao := 1; { 1. Normal }
            wsrjItens[idx].NomeRazaoSocial := TiraAcento(QryEmpresa.FieldByName('EMP_RAZAO').AsString);
            wsrjItens[idx].NotaFiscalCnpj  := wsrjEmit.CnpjEmitente;
            wsrjItens[idx].NotaFiscalDataEmissao := wsrjItens[idx].DataFatoGerador;
            wsrjItens[idx].NotaFiscalNumero := QryNotasFiscais.FieldByName('VEN_NF').AsInteger;
            wsrjItens[idx].NotaFiscalSerie := QryNotasFiscais.FieldByName('VEN_SERIE').AsInteger;
            wsrjItens[idx].NotaFiscalTipo := 'NF-e'; { M - Manual, PD - Processamento de Dados, NF-e - Nota Fiscal Eletrônica }
            wsrjItens[idx].NumControleContribuinte := QryNotasFiscais.FieldByName('VEN_NF').AsString + QryNotasFiscais.FieldByName('VEN_SERIE').AsString;
            wsrjItens[idx].PeriodoReferenciaAno := StrToInt( Copy(wsrjItens[idx].DataFatoGerador,7,4) );
            wsrjItens[idx].PeriodoReferenciaMes := StrToInt( Copy(wsrjItens[idx].DataFatoGerador,4,2) );
            wsrjItens[idx].TipoId := 1; {1. CNPJ, 2. CPF, 3. Passaporte}
            wsrjItens[idx].ValorFECPPrincipal := QryNotasFiscais.FieldByName('VALOR_FCP').AsFloat;
            wsrjItens[idx].ValorICMSPrincipal := QryNotasFiscais.FieldByName('VALOR_DESTINATARIO').AsFloat;
            wsrjItens[idx].ValorTotal := wsrjItens[idx].ValorICMSPrincipal + wsrjItens[idx].ValorFECPPrincipal;
            end;
         QryNotasFiscais.Next;
         end;
   finally
      QryNotasFiscais.EnableControls;
   end;

   if (Length(wsrjItens) > 0) then
      begin
      wsrjDocs[0].ItensPagamentos := wsrjItens;

      Request.URL := url_rj;
      wsrj := Request as GerarDocumentoArrecadacaoWS;
      wsrj := GetGerarDocumentoArrecadacaoWS(true, '', Request);
      wsrjRetorno := wsrj.enviarDados(wsrjEmit, wsrjDocs);

      Memo1.Lines.Add('----------------');
      Memo1.Lines.Add('IdSessao: '+wsrjRetorno.IdSessao);
      Memo1.Lines.Add('Cod. Retorno: ' + IntToStr( wsrjRetorno.Retorno.CodigoRetorno ));
      Memo1.Lines.Add('Msg. Retorno: ' + wsrjRetorno.Retorno.MensagemRetorno);
      end;
finally
   wsrjEmit.Free;
end;
end;

 

Unit do webservice: WSGnreRJ.pas

O erro:

erro.png.1d545a315f85e6aeb3d177e2b0d08b6

Ocorre na linha:

wsrjRetorno := wsrj.enviarDados(wsrjEmit, wsrjDocs);

 

Tentei ver o que havia nesse XML no evento beforepost do meu objeto Request(THTTPRIO) dessa forma:

procedure TFrmPrincipal.RequestBeforeExecute(const MethodName: string;
  SOAPRequest: TStream);
var
xml:TXMLDocument;
begin
try
   xml := TXMLDocument.Create(Self);
   xml.XML.Add( WideString(SOAPRequest) );
   xml.SaveToFile('C:\temp\Request.xml');
finally
   xml.Free;
end;
end;

Porém o parâmetro SOAPRequest vem vazio, como se a requisição fosse sem nenhum dado.

=========================================================================

Meu ambiente:

Windows 10

Delphi 2010

=========================================================================

 

Obrigado pela força galera,

[]'s

Marcos Gerene

[email protected]

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Não sei se alguém conseguiu fazer testes ou enviar para o estado do RJ com o ACBrGNRE!

teria que dar uma pesquisada aqui no fórum!

Mas estava olhando a unit e ela não pertence ao projeto!

 

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

21 minutos atrás, Juliomar Marchetti disse:

Não sei se alguém conseguiu fazer testes ou enviar para o estado do RJ com o ACBrGNRE!

teria que dar uma pesquisada aqui no fórum!

Mas estava olhando a unit e ela não pertence ao projeto!

 

Boa tarde @Juliomar Marchetti,

Justamente por isso postei em Object Pascal - Delphi & Lazarus , minha dúvida é sobre o consumo do webservice, não tem relação alguma com o ACBrGNRe.

[]'s

  • Curtir 1

Marcos Gerene

[email protected]

Link para o comentário
Compartilhar em outros sites

  • 9 meses depois ...
  • 3 semanas depois ...
  • Este tópico foi criado há 2639 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.

The popup will be closed in 10 segundos...