Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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]

Postado
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]

  • 9 meses depois ...
Postado

Bom dia Marcos;

Também estou desenvolvendo a emissão de Guias do GNRe, porém em VB .Net, estou com o mesmo problema.

Já enviei vários emails ao SEFAZ do Rio, porém sem nenhuma resposta, vc conseguiu resolver?

  • Curtir 1
  • 3 semanas depois ...
  • Este tópico foi criado há 2856 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.