Jump to content
Fivewin Brasil

Geração GNRE com FlexDocs


HERGON

Recommended Posts

Bom dia

Eu achei essa rotina em meus arquivos

Nunca usei mas derrepente pode ajudar

function pacognre()
   // Parametrizacao de uso
   cPath          := cFilePath( GetModuleFileName( GetInstance() ) )
   //
   cPathNFE       := VerifyINI( "PATHS", "PathNFE"         , cPath + "\NF-e\remessa\NFE"          , cPath + "\" + "nfw.ini", .f.)
   cPathGNRE      := VerifyINI( "PATHS", "PathGNRE"        , cPath + "\NF-e\remessa\GNRE"         , cPath + "\" + "nfw.ini", .f.)
   // Dados da empresa
   cClNome        := VerifyINI( "EMPRESA", "Nome"    , "5VOLUTION.COM"            , cPath + "\" + "nfw.ini", .f. )
   cClEndereco    := VerifyINI( "EMPRESA", "Endereco", "R Des M C Costa Leite, 25", cPath + "\" + "nfw.ini", .f. )
   cClBairro      := VerifyINI( "EMPRESA", "Bairro"  , "Pirituba"                 , cPath + "\" + "nfw.ini", .f. )
   cClCidade      := VerifyINI( "EMPRESA", "Cidade"  , "Sao Paulo"                , cPath + "\" + "nfw.ini", .f. )
   cClCEP         := VerifyINI( "EMPRESA", "CEP"     , "05171-560"                , cPath + "\" + "nfw.ini", .f. )
   cClEstado      := VerifyINI( "EMPRESA", "Estado"  , "SP"                       , cPath + "\" + "nfw.ini", .f. )
   cClCNPJ        := VerifyINI( "EMPRESA", "CNPJ"    , "18.066.611/0001-06"       , cPath + "\" + "nfw.ini", .f. )
   cClInscr       := VerifyINI( "EMPRESA", "IE"      , "142.365.346.110"          , cPath + "\" + "nfw.ini", .f. )
   cClIM          := VerifyINI( "EMPRESA", "IM"      , "4.743.049-4"              , cPath + "\" + "nfw.ini", .f. )
   //
   cCodUF         := VerifyINI( "NFELETRONICA", "cCodUF" , "35"  , cPath + "\" + "nfw.ini", .f.)

   oGNRE := tGNRE():new()

   oGNRE:nLote                             := 0  // Se numero de lote for igual a ZERO sera gerada uma guia unica, o contratio gera lote com varias guias
   oGNRE:Homologacao                       := .t. // Se homologacao direciona para webservices especificos  

   oGNRE:c01_UfFavorecida                  := 26 // Contém a sigla da UF favorecida. Campo com 2 dígitos. (Ver ANEXO 1, na aba 'Anexos')
   oGNRE:c02_receita                       := 1000099 // Contém o código da receita. Campo numérico com 6 dígitos. (Consultar na aba 'Regras de Preenchimento')
   oGNRE:c25_detalhamentoReceita           := 10101010 // Contém o código do detalhamento da receita. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento').
   oGNRE:c26_produto                       := "TESTE DE PROD" // Contém o código do produto. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento').
   oGNRE:c27_tipoIdentificacaoEmitente     := 1 // Contém o código do tipo de identificação do contribuinte emitente (Responsável pelo Pagamento do Tributo). Campo numérico com 1 dígito. (Ver ANEXO 2, na aba 'Anexos'). Caso a identificação seja pela inscrição estadual, esse campo e sua tag poderão ser omitidos.
   oGNRE:c03_idContribuinteEmitente        := 41819055000105 // Contém o número do documento de identificação do contribuinte emitente. O CPF/ CNPJ não deverá conter espaços, pontos ou traços e apenas um documento poderá ser colocado no arquivo. Caso a identificação seja pela inscrição estadual, esse campo e sua tag poderão ser omitidos. Caso a identificação seja pelo CNPJ, a tag de CPF e de Inscrição Estadual poderão ser omitidas. Caso a identificação seja pelo CPF, os campos e as tags de CNPJ e de Inscrição Estadual poderão ser omitidos.
                                                             // Exemplos:
                                                             // CNPJ : <CNPJ>11111111111111</CNPJ>
                                                             // CPF : <CPF>11111111111</CPF>
   oGNRE:c28_tipoDocOrigem                 := 10 // Contém o código do tipo de documento de origem. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija documento de origem, esse campo e sua tag poderão ser omitidos.
   oGNRE:c04_docOrigem                     := 5656 // Contém o número contido no documento de origem. Campo numérico sem espaços, traços, pontos ou vírgulas. A quantidade de dígitos corresponde a quantidade de dígitos do número. Caso a receita não exija documento de origem, esse campo e sua tag poderão ser omitidos.
   oGNRE:c06_valorPrincipal                := 10.99 // Contém o valor original da guia. Digitar apenas números. Usar ponto (".") como separador de decimal, e este deve ter 2 números. Caso a receita não exija valor principal, esse campo e sua tag poderão ser omitidos.
   oGNRE:c10_valorTotal                    := 12.52 // Contém valor total da guia (valor original + encargos). Digitar apenas números. Usar ponto (".") como separador de decimal, e este deve ter 2 números. Caso a receita não exija valor total, esse campo e sua tag poderão ser omitidos. Para calcular os encargos, procurar informações na Sefaz do Estado da UF favorecida.
   oGNRE:c14_dataVencimento                := "2015-05-01" // Contém a data que o contribuinte deve pagar o tributo de acordo com a legislação de cada UF. Formato: AAAA-MM-DD.
   oGNRE:c15_convenio                      := 546456 // Contém o número do convênio. Sem espaços, traços, pontos ou vírgulas. Este campo não é obrigatório e o tamanho do campo corresponde ao número do convênio. No caso de não ter essa informação, esse campo e sua tag poderão ser omitidos.
   oGNRE:c16_razaoSocialEmitente           := "GNRE PHP EMITENTE" // Contém o nome da razão social do contribuinte emitente. No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
   oGNRE:c17_inscricaoEstadualEmitente     := 56756 // Contém a inscrição estadual do contribuinte emitente na UF favorecida. Campo numérico sem espaços ou traços. Caso seja inscrito na UF Favorecida, preencher este campo. Caso contrário, esse campo e sua tag poderão ser omitidos.
   oGNRE:c18_enderecoEmitente              := "Queens St" // Contém o endereço do contribuinte emitente. No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
   oGNRE:c19_municipioEmitente             := 5300108 // Contém o código do município de localização do contribuinte emitente. Campo numérico. (Consultar no site do IBGE). O IBGE informará o código do município no formato "EEmmmmd". Tirar os 2 primeiros números que indicam o número do Estado e só colocar os 5 números restantes, ficando no formato "mmmmd".
                                                      // A cidade Recife tem o código 2611606, você tirará os dígitos "26" e colocará no arquivo de lote apenas os dígitos "11606".
   oGNRE:c20_ufEnderecoEmitente            := "DF" // Contém a UF de localização do contribuinte emitente. Campo com 2 dígitos. (Ver ANEXO 1, na aba 'Anexos'). No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
   oGNRE:c21_cepEmitente                   := "08215917" // Contém o CEP do contribuinte emitente com 8 dígitos. Digitar apenas números. Esse campo não é obrigatório. No caso da identificação do contribuinte ser por inscrição estadual, esse campo e sua tag poderão ser omitidos.
   oGNRE:c22_telefoneEmitente              := 1199999999 // Contém o telefone do contribuinte emitente. Colocar o DDD e o número do telefone. Digitar apenas números. Esse campo não é obrigatório. No caso de não ter essa informação, esse campo e sua tag poderão ser omitidos. Onde: 11 => DDD e 22222222 => Telefone
   oGNRE:c34_tipoIdentificacaoDestinatario := 1 // Contém o código do tipo de identificação do contribuinte destinatário. Campo numérico com 1 dígito. (Ver ANEXO 2, na aba 'Anexos'). Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
   oGNRE:c35_idContribuinteDestinatario    := 86268158000162 // Contém o número do documento de identificação do contribuinte destinatário. O CPF/ CNPJ não deverá conter espaços, pontos ou traços e apenas um documento poderá ser colocado no arquivo. Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
   oGNRE:c36_inscricaoEstadualDestinatario := 10809181 // Contém a inscrição estadual do contribuinte destinatário. Campo numérico sem espaços ou traços. Caso seja inscrito na UF Favorecida, preencher este campo. Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
   oGNRE:c37_razaoSocialDestinatario       := "RAZAO SOCIAL GNRE PHP DESTINATARIO" // Contém o nome da firma ou a razão social do contribuinte destinatário. Caso a receita não exija destinatário, esse campo e sua tag poderão ser omitidos.
   oGNRE:c38_municipioDestinatario         := 2702306 // Contém o município de localização do contribuinte destinatário. Campo numérico. (Consultar no site do IBGE). O IBGE informará o código do município no formato "EEmmmmd". Tirar os 2 primeiros números que indicam o número do Estado e só colocar os 5 números restantes, ficando no formato "mmmmd".
   oGNRE:c33_dataPagamento                 := "2015-11-30" // Contém a data que o contribuinte irá pagar o tributo.Formato: AAAA-MM-DD.
 //oGNRE:c05_referencia                    := "" // Contém as informações do período de referência. Caso a receita não exija período de referência, esse campo e sua tag poderão ser omitidos.
   oGNRE:mes                               := "05" // Contém o mês de referência da apuração. Campo numérico com 2 dígitos. (Ver ANEXO 3, na aba 'Anexos'). Caso a receita não exija mês de período de referência, esse campo e sua tag poderão ser omitidos.
   oGNRE:ano                               := 2015 // Contém o ano de referência da apuração. Campo numérico com 4 dígitos. Caso a receita não exija ano de período de referência, esse campo e sua tag poderão ser omitidos.
   oGNRE:parcela                           := 2 // Contém o número da parcela do débito. Campo numérico com tamanho máximo de 3 dígitos. Caso a receita não exija parcela no período de referência, esse campo e sua tag poderão ser omitidos.
   oGNRE:periodo                           := 2014 // Contém o código do período. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija código do período, esse campo e sua tag poderão ser omitidos
   // Nao importantes
   //c39_camposExtras                        := "" // Lista de campos extras. Poderá ter no máximo 3 campos extras por guia. Caso a receita não exija campos extras, esse campo e sua tag poderão ser omitidos.
   //oGNRE:codigo                            := 0 // Contém o código do campo extra. Campo numérico. A quantidade de dígitos corresponde a quantidade de dígitos do código. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija campos extras, esse campo e sua tag poderão ser omitidos.
   //oGNRE:tipo                              := "" // Contém o tipo do campo extra. Campo com um caracter. (Consultar na aba 'Regras de Preenchimento'). Caso a receita não exija campos extras, esse campo e sua tag poderão ser omitidos.
   //oGNRE:valor                             := 0.00 // Contém o valor solicitado no campo extra. Se for do tipo Data 'D', o formato é: AAAA-MM-DD. Se for do tipo Númerico 'N', usar ponto (".") como separador de decimal, e este deve ter 2 números.
   //oGNRE:c42_identificadorGuia             := 0 // Contém o identificador da guia no lote. O valor deste campo deverá ser informado pelo contribuinte para a identificação da guia. Esta informação é opcional e deve conter apenas números (até 10 posições).
   
   //     $lote = new Lote();
   //     $lote->addGuia($guia);
   oGNRE:AdicionaGuia()

   oGNRE:Serializa()

   ? oGNRE:MostraXML()
   
   oGNRE:Enviar()
   
return .t.

CREATE CLASS tGNRE
   VAR nLote
   VAR cFileName
   VAR Homologacao
   VAR aGNRERegistros
   VAR aGNRERegExtras
   VAR c01_UfFavorecida
   VAR c02_receita
   VAR c25_detalhamentoReceita
   VAR c26_produto
   VAR c27_tipoIdentificacaoEmitente
   VAR c03_idContribuinteEmitente
   VAR c28_tipoDocOrigem
   VAR c04_docOrigem
   VAR c06_valorPrincipal
   VAR c10_valorTotal
   VAR c14_dataVencimento
   VAR c15_convenio
   VAR c16_razaoSocialEmitente
   VAR c17_inscricaoEstadualEmitente
   VAR c18_enderecoEmitente
   VAR c19_municipioEmitente
   VAR c20_ufEnderecoEmitente
   VAR c21_cepEmitente
   VAR c22_telefoneEmitente
   VAR c34_tipoIdentificacaoDestinatario
   VAR c35_idContribuinteDestinatario
   VAR c36_inscricaoEstadualDestinatario
   VAR c37_razaoSocialDestinatario
   VAR c38_municipioDestinatario
   VAR c33_dataPagamento
 //VAR c05_referencia
   VAR mes
   VAR ano
   VAR parcela
   VAR periodo
   //
   METHOD New
   METHOD AdicionaGuia
   METHOD Serializa
   METHOD MostraXML
   //
   METHOD Enviar
   METHOD Consulta
END CLASS

METHOD New( cGNREFileName ) CLASS tGNRE
   if cGNREFileName == nil
      ::cFileName := "GNRE.TXT"
   else
      ::cFileName := cGNREFileName
   endif
   ::nLote := 0
   ::Homologacao := .f.
   ::aGNRERegistros := {}
   ::aGNRERegExtras := {}
RETURN( self )
 
METHOD AdicionaGuia() CLASS tGNRE
   aadd( ::aGNRERegistros, { ::c01_UfFavorecida                  ,;
                             ::c02_receita                       ,;
                             ::c25_detalhamentoReceita           ,;
                             ::c26_produto                       ,;
                             ::c27_tipoIdentificacaoEmitente     ,;
                             ::c03_idContribuinteEmitente        ,;
                             ::c28_tipoDocOrigem                 ,;
                             ::c04_docOrigem                     ,;
                             ::c06_valorPrincipal                ,;
                             ::c10_valorTotal                    ,;
                             ::c14_dataVencimento                ,;
                             ::c15_convenio                      ,;
                             ::c16_razaoSocialEmitente           ,;
                             ::c17_inscricaoEstadualEmitente     ,;
                             ::c18_enderecoEmitente              ,;
                             ::c19_municipioEmitente             ,;
                             ::c20_ufEnderecoEmitente            ,;
                             ::c21_cepEmitente                   ,;
                             ::c22_telefoneEmitente              ,;
                             ::c34_tipoIdentificacaoDestinatario ,;
                             ::c35_idContribuinteDestinatario    ,;
                             ::c36_inscricaoEstadualDestinatario ,;
                             ::c37_razaoSocialDestinatario       ,;
                             ::c38_municipioDestinatario         ,;
                             ::c33_dataPagamento                 ,;
                             ::mes                               ,;
                             ::ano                               ,;
                             ::parcela                           ,;
                             ::periodo                           })
   //aadd( ::aGNRERegExtras, { ::c39_camposExtras                  ,;
   //                          ::codigo                            ,;
   //                          ::tipo                              ,;
   //                          ::valor                             ,;
   //                          ::c42_identificadorGuia             })
   return ::aGNRERegistros

METHOD Serializa() CLASS tGNRE
   local aGNRE := ::aGNRERegistros
   local nGNRE := fCreate( ::cFileName )
   cResultado := "" // [<?xml version="1.0" encoding="utf-8"?>] + CRLF
   if ::nLote > 0
      //cResultado := cResultado + [            <TLote_GNRE xmlns="http://www.gnre.pe.gov.br">] + CRLF
      //cResultado := cResultado + [                <guias>]  + CRLF
      //
   endif
   FOR I = 1 TO LEN(aGNRE)
     //cResultado := cResultado + [            <guias>] + CRLF
       cResultado := cResultado + [               <TDadosGNRE>] + CRLF
       cResultado := cResultado + [                  <c01_UfFavorecida>] + alltrim(str(aGNRE[01])) + [</c01_UfFavorecida>] + CRLF
       cResultado := cResultado + [                  <c02_receita>] + alltrim(str(aGNRE[02])) + [</c02_receita>] + CRLF
       cResultado := cResultado + [                  <c25_detalhamentoReceita>] + alltrim(str(aGNRE[03])) + [</c25_detalhamentoReceita>] + CRLF
       cResultado := cResultado + [                  <c26_produto>] + alltrim(aGNRE[04]) + [</c26_produto>] + CRLF
       cResultado := cResultado + [                  <c27_tipoIdentificacaoEmitente>] + alltrim(str(aGNRE[05])) + [</c27_tipoIdentificacaoEmitente>] + CRLF
       cResultado := cResultado + [                  <c03_idContribuinteEmitente>] + CRLF
       cResultado := cResultado + [                     <CNPJ>] + alltrim(str(aGNRE[06])) + [</CNPJ>] + CRLF
       cResultado := cResultado + [                  </c03_idContribuinteEmitente>] + CRLF
       cResultado := cResultado + [                  <c28_tipoDocOrigem>] + alltrim(str(aGNRE[07])) + [</c28_tipoDocOrigem>] + CRLF
       cResultado := cResultado + [                  <c04_docOrigem>] + alltrim(str(aGNRE[08])) + [</c04_docOrigem>] + CRLF
       cResultado := cResultado + [                  <c06_valorPrincipal>] + alltrim(str(aGNRE[09],2)) + [</c06_valorPrincipal>] + CRLF
       cResultado := cResultado + [                  <c10_valorTotal>] + alltrim(str(aGNRE[10],2)) + [</c10_valorTotal>] + CRLF
       cResultado := cResultado + [                  <c14_dataVencimento>] + alltrim(aGNRE[11]) + [</c14_dataVencimento>] + CRLF
       cResultado := cResultado + [                  <c15_convenio>] + alltrim(str(aGNRE[12])) + [</c15_convenio>] + CRLF
       cResultado := cResultado + [                  <c16_razaoSocialEmitente>] + alltrim(aGNRE[13]) + [</c16_razaoSocialEmitente>] + CRLF
       cResultado := cResultado + [                  <c17_inscricaoEstadualEmitente>] + alltrim(str(aGNRE[14])) + [</c17_inscricaoEstadualEmitente>] + CRLF
       cResultado := cResultado + [                  <c18_enderecoEmitente>] + alltrim(aGNRE[15]) + [</c18_enderecoEmitente>] + CRLF
       cResultado := cResultado + [                  <c19_municipioEmitente>] + alltrim(str(aGNRE[16])) + [</c19_municipioEmitente>] + CRLF
       cResultado := cResultado + [                  <c20_ufEnderecoEmitente>] + alltrim(aGNRE[17]) + [</c20_ufEnderecoEmitente>] + CRLF
       cResultado := cResultado + [                  <c21_cepEmitente>] + alltrim(aGNRE[18]) + [</c21_cepEmitente>] + CRLF
       cResultado := cResultado + [                  <c22_telefoneEmitente>] + alltrim(str(aGNRE[19])) + [</c22_telefoneEmitente>] + CRLF
       cResultado := cResultado + [                  <c34_tipoIdentificacaoDestinatario>] + alltrim(str(aGNRE[20])) + [</c34_tipoIdentificacaoDestinatario>] + CRLF
       cResultado := cResultado + [                  <c35_idContribuinteDestinatario>] + CRLF
       cResultado := cResultado + [                     <CNPJ>] + alltrim(str(aGNRE[21])) + [</CNPJ>] + CRLF
       cResultado := cResultado + [                  </c35_idContribuinteDestinatario>] + CRLF
       cResultado := cResultado + [                  <c36_inscricaoEstadualDestinatario>] + alltrim(str(aGNRE[22])) + [</c36_inscricaoEstadualDestinatario>] + CRLF
       cResultado := cResultado + [                  <c37_razaoSocialDestinatario>] + alltrim(aGNRE[23]) + [</c37_razaoSocialDestinatario>] + CRLF
       cResultado := cResultado + [                  <c38_municipioDestinatario>] + alltrim(str(aGNRE[24])) + [</c38_municipioDestinatario>] + CRLF
       cResultado := cResultado + [                  <c33_dataPagamento>] + alltrim(aGNRE[25]) + [</c33_dataPagamento>] + CRLF
       cResultado := cResultado + [                  <c05_referencia>] + CRLF
       cResultado := cResultado + [                     <mes>] + alltrim(aGNRE[26]) + [</mes>] + CRLF
       cResultado := cResultado + [                     <ano>] + alltrim(str(aGNRE[27])) + [</ano>] + CRLF
       cResultado := cResultado + [                     <parcela>] + alltrim(str(aGNRE[28])) + [</parcela>] + CRLF
       cResultado := cResultado + [                     <periodo>] + alltrim(str(aGNRE[29])) + [</periodo>] + CRLF
       cResultado := cResultado + [                  </c05_referencia>] + CRLF
       /*
       cResultado := cResultado + [                        <c39_camposExtras>]
       cResultado := cResultado + [                            <campoExtra>]
       cResultado := cResultado + [                                <codigo>16</codigo>]
       cResultado := cResultado + [                                <tipo>T</tipo>]
       cResultado := cResultado + [                                <valor>1200012</valor>]
       cResultado := cResultado + [                            </campoExtra>]
       cResultado := cResultado + [                            <campoExtra>]
       cResultado := cResultado + [                                <codigo>15</codigo>]
       cResultado := cResultado + [                                <tipo>D</tipo>]
       cResultado := cResultado + [                                <valor>2015-03-02</valor>]
       cResultado := cResultado + [                            </campoExtra>]
       cResultado := cResultado + [                            <campoExtra>]
       cResultado := cResultado + [                                <codigo>10</codigo>]
       cResultado := cResultado + [                                <tipo>T</tipo>]
       cResultado := cResultado + [                                <valor>17.21</valor>]
       cResultado := cResultado + [                            </campoExtra>]
       cResultado := cResultado + [                        </c39_camposExtras>]
       */
       cResultado := cResultado + [               </TDadosGNRE>] + CRLF
   NEXT
   if ::nLote > 0
      //
      //cResultado := cResultado + [                </guias>] + CRLF
      //cResultado := cResultado + [            </TLote_GNRE>] + CRLF
   endif
   fWrite( nGNRE, cResultado, LEN(cResultado) )
   fClose( nGNRE )
   return cResultado

METHOD MostraXML() CLASS tGNRE
   return MemoRead( ::cFileName )

METHOD Enviar() CLASS tGNRE
   LOCAL cResultado
   cURL := iif( ::Homologacao, "http://www.gnre-he.sp.gov.br", "http://www.gnre.sp.gov.br" )
   //
   cResultado := [<?xml version="1.0" encoding="utf-8"?>]
   //
   cResultado := cResultado + [<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">] + CRLF
   cResultado := cResultado + [   <soap12:Header>] + CRLF
   cResultado := cResultado + [      <gnreCabecMsg xmlns="http://www.gnre.pe.gov.br/wsdl/processar">] + CRLF
   cResultado := cResultado + [         <versaoDados>1.00</versaoDados>] + CRLF
   cResultado := cResultado + [      </gnreCabecMsg>] + CRLF
   cResultado := cResultado + [   </soap12:Header>] + CRLF
   cResultado := cResultado + [   <soap12:Body>] + CRLF
   cResultado := cResultado + [      <gnreDadosMsg xmlns="http://www.gnre.pe.gov.br/webservice/GnreLoteRecepcao">] + CRLF
   cResultado := cResultado + [         <TLote_GNRE xmlns="] + cURL + [">] + CRLF
   cResultado := cResultado + [            <guias>]  + CRLF
   cResultado := cResultado + ::MostraXML()  + CRLF
   cResultado := cResultado + [            </guias>] + CRLF
   cResultado := cResultado + [         </TLote_GNRE>] + CRLF
   cResultado := cResultado + [      </gnreDadosMsg>] + CRLF
   cResultado := cResultado + [   </soap12:Body>] + CRLF
   cResultado := cResultado + [</soap12:Envelope>] + CRLF
   //
   //?"Enviar",  cResultado
   cResultado := GNREWebService( cResultado, "POST", cURL, "" ) // cSoapAction )
   return cResultado

METHOD Consulta( cProtocolo, cUsuario, cSenha, cCNPJ, cCategoria ) CLASS tGNRE
   LOCAL cResultado
   //
   cResultado :=              [<?xml version="1.0" encoding="utf-8"?>]
   cResultado := ""
   //
   return cResultado

Function GNREWebService( cXMLFile, cMethod, cURL, cSoapAction )
   DEFAULT cMethod := "POST", cSoapAction := cURL
   DEFAULT cURL    := "http://www.gnre.pe.gov.br/wsdl/processar"
   oEDXSend:= TOLEAuto():New( "Microsoft.XMLHTTP" )
   oEDXSend:Open( cMethod, cURL, .F. )
   //oEDXSend:setrequestheader( "SOAPAction", cSoapAction )
   //oEDXSend:setrequestheader( "content-type", "text/xml" )
   oEDXSend:Send( cXMLFile )
   cResultado := oEDXSend:ResponseText()
   return cResultado
   
   
function VerifyINI( _section_, _entry_, _var_, _inifile_, _grava_ )
   oIni := TIni():New( _inifile_ )
   if _grava_ = .t.
      oIni:Set( _section_, _entry_, _var_ )
   endif
   return oIni:Get( _section_, _entry_, _var_, _var_ )   

function Consulta_sintegra()
local oDlglink,oDlgxml
                                                                                

 *cRioGrandeSul := ( "https://www.sefaz.rs.gov.br/NFE/NFE-CCC.aspx" )
 cRioGrandeSul := ( "https://dfe-portal.svrs.rs.gov.br/BPE/CCC")
 
 
  MsgRun( ( "Conectando a Página da SEFAZ.            " ), ;
                                "Conectando a Página da SEFAZ. Aguarde... ",   ;
                  { || ShellExecute(GetActiveWindow(),"open",'"'+cRioGrandeSul+'"', 0 ) } ) 
 
 
 
 
 *  REDEFINE BUTTONBMP oRioGrandeSul    ID 320 OF oDlgLink                       ;
 *           ACTION( ( MsgRun( ( "Conectando a Página da SEFAZ.            " ), ;
 *                               "Conectando a Página da SEFAZ. Aguarde... ",   ;
 *                 { || ShellExecute(GetActiveWindow(),"open",'"'+cRioGrandeSul+'"', 0 ) } ) ) )
 *
 *  oRioGrandeSul:cToolTip := OemToAnsi( "Sefaz do Estado do Rio Grande do Sul" )
 
*   cValidSefazRS := ( "https://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx" )
*  
*   REDEFINE BUTTONBMP oValidSefazRS ID 301 OF oDlgXml WHEN( lLigaBtnDesab )   ;
*            ACTION( ShellExecute(GetActiveWindow(),"open",'"'+cValidSefazRS+'"', 0 ) )

*   oValidSefazRS:cToolTip := OemToAnsi( "Validador de Arquivos *.XML da SEFAZ/RS" )
   
retur(.t.)
 // http://www.odaircontador.cnt.br/2015/12/tabela-do-fundo-de-combate-pobreza-icms.html
 // https://blog.quantosobra.com.br/emitir-nota-fiscal-passo-passo-como-emitir-uma-nota-fiscal-eletronica/
 
 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...