Clipper On Line • Ver Tópico - Dados do Sintegra de São Paulo

Dados do Sintegra de São Paulo

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Dados do Sintegra de São Paulo

Mensagempor Kapiaba » 16 Mar 2018 11:16

Parece que já se está achando uma luz no fim do túnel, aqui:

http://fivewin.com.br/index.php?/topic/27459-classe-sintegra/

Esperando o usuário me enviar a classe completa.

Abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Dados do Sintegra de São Paulo

Mensagempor Itamar M. Lins Jr. » 16 Mar 2018 12:27

Ola!
Não entendi o titulo.
Depois vi que é apenas para verificação do contribuinte se ele está ok, ou seja poder receber NFe. (podendo comprar usando CNPJ/CPF)
Os dados do sintegra é uma coisa enorme... Agora em desuso por causa do SPED...
Pelo que entendi, na classe do Quintas tem como verificar isso.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Dados do Sintegra de São Paulo

Mensagempor JoséQuintas » 16 Mar 2018 12:43

Itamar M. Lins Jr. escreveu:Pelo que entendi, na classe do Quintas tem como verificar isso.


Pior que isso.... o Kapiaba usa um componente pago que tem isso (ou deveria ter)

É um dos serviços de NFE.
Se alguém usa componente pra emitir NFE, também tem opção de consultar cadastro da Sefaz.
Tanto faz se é a sefazclass ou flexdocs ou uninfe ou sei lá o que.

Antigamente eu fazia pelo meu servidor, e armazenava os resultados nele pra reutilização.
O fonte é dessa época, não tive tempo de atualizar ainda.
O aplicativo consultava meu servidor, e podia gravar uma requisição de consulta.
Durante os processos do aplicativo, acabava atualizando o cadastro no aplicativo.
Eu fazia rodízio de certificados..... rs

/*
ZE_SPEDCADASTROCLASS - CONSULTA CADASTRO SEFAZ

*/

#include "josequintas.ch"
#include "hbclass.ch"

CREATE CLASS ConsultaCadastroClass

   VAR  Versao        INIT ""
   VAR  VerAplic      INIT ""
   VAR  cStat         INIT ""
   VAR  cMotivo       INIT ""
   VAR  UF            INIT ""
   VAR  IE            INIT ""
   VAR  CNPJ          INIT {}
   VAR  CPF           INIT {}
   VAR  dhCons        INIT {}
   VAR  cUf           INIT {}
   VAR  InfCad        INIT {}

   ENDCLASS

CREATE CLASS InfCadClass

   VAR  IE            INIT ""
   VAR  CNPJ          INIT ""
   VAR  CPF           INIT ""
   VAR  UF            INIT ""
   VAR  cSit          INIT ""
   VAR  IndCredNfe    INIT ""
   VAR  IndCredCte    INIT ""
   VAR  xNome         INIT ""
   VAR  xFant         INIT ""
   VAR  xRegApur      INIT ""
   VAR  CNAE          INIT ""
   VAR  dIniAtiv      INIT ""
   VAR  dUltSit       INIT ""
   VAR  dBaixa        INIT ""
   VAR  IEUnica       INIT ""
   VAR  Ender
   METHOD Init()

   ENDCLASS

METHOD Init() CLASS InfCadClass

   ::Ender := EnderClass():New()

   RETURN SELF

CREATE CLASS EnderClass STATIC

   VAR  Logradouro      INIT ""
   VAR  Numero          INIT ""
   VAR  Complemento     INIT ""
   VAR  Bairro          INIT ""
   VAR  MunicipioIBGE   INIT ""
   VAR  Municipio       INIT ""
   VAR  CEP             INIT ""

   ENDCLASS

FUNCTION XmlToConsulta(cXml)

   LOCAL Consulta, oElement, cXmlInfCad, mTexto, cXmlEnder, mInfCad, mEnder

   Consulta := ConsultaCadastroClass():New()
   Consulta:Versao   := XmlNode( cXml, "versao" )
   Consulta:VerAplic := XmlNode( cXml, "verAplic" )
   Consulta:cStat    := XmlNode( cXml, "cStat" )
   Consulta:cMotivo  := XmlNode( cXml, "xMotivo" )
   Consulta:UF       := XmlNode( cXml, "UF" )
   Consulta:IE       := XmlNode( cXml, "IE" )
   Consulta:Cnpj     := XmlNode( cXml, "CNPJ" )
   Consulta:Cpf      := XmlNode( cXml, "CPF" )
   Consulta:dhCons   := XmlNode( cXml, "dhCons" )
   Consulta:cUf      := XmlNode( cXml, "cUF" )

   cXmlInfCad := {}
   mTexto := cXml
   DO WHILE .T.
      IF At( "<infCad", mTexto ) == 0
         EXIT
      ENDIF
      AAdd( cXmlInfCad, XmlNode( mTexto, "infCad" ) )
      IF "</infCad" $ mTexto
         mTexto := Substr( mTexto, At( "</infCad", mTexto ) + 5 )
      ELSE
         mTexto := ""
      ENDIF
   ENDDO
   FOR EACH oElement IN cXmlInfCad
      mInfCad := InfCadClass():New()
      mInfCad:IE           := XmlNode( oElement, "IE" )
      mInfCad:CNPJ         := XmlNode( oElement, "CNPJ" )
      mInfCad:CPF          := XmlNode( oElement, "CPF" )
      mInfCad:UF           := XmlNode( oElement, "UF" )
      mInfCad:cSit         := XmlNode( oElement, "cSit" )
      mInfCad:IndCredNfe   := XmlNode( oElement, "indCredNFe" )
      mInfCad:IndCredCte   := XmlNode( oElement, "indCredCTe" )
      mInfCad:xNome        := XmlNode( oElement, "xNome" )
      mInfCad:xFant        := XmlNode( oElement, "xFant" )
      mInfCad:xRegApur     := XmlNode( oElement, "xRegApur" )
      mInfCad:Cnae         := XmlNode( oElement, "CNAE" )
      mInfCad:dIniAtiv     := XmlNode( oElement, "dIniAtiv" )
      mInfCad:dUltSit      := XmlNode( oElement, "dUltSit" )
      mInfCad:dBaixa       := XmlNode( oElement, "dBaixa" )
      mInfCad:IEUnica      := XmlNode( oElement, "IEUnica" )
      cXmlEnder            := XmlNode( oElement, "ender" )
         mEnder               := EnderClass():New()
         mEnder:Logradouro    := XmlNode( cXmlEnder, "xLgr" )
         mEnder:Numero        := XmlNode( cXmlEnder, "nro" )
         mEnder:Complemento   := XmlNode( cXmlEnder, "xCpl" )
         mEnder:Bairro        := XmlNode( cXmlEnder, "xBairro" )
         mEnder:MunicipioIbge := XmlNode( cXmlEnder, "cMun" )
         mEnder:Municipio     := XmlNode( cXmlEnder, "xMun" )
         mEnder:CEP           := XmlNode( cXmlEnder, "CEP" )
      mInfCad:Ender        := mEnder
      AAdd( Consulta:InfCad, mInfCad )
   NEXT

   RETURN Consulta

FUNCTION SituacaoCnpjMySql( lObrigatoria )

   LOCAL mXml, mSelect, mSitFaz, mSitNfe, mSitCnae, mOk, mCadastro, nCont, cUf, cCnpj, cnMySql := ADOClass():New( AppcnServerJPA() )

   hb_Default( @lObrigatoria, .F. )
   cCnpj        := jpcadas->cdCnpj
   cUf          := jpcadas->cdUF
   mXml         := ""
   mSelect      := Select()

   IF ! ( lObrigatoria .OR. LeCnf( "CLI CONSULTA MYSQL" ) == "SIM" )
      RETURN NIL
   ENDIF
   IF Len( Trim( cCnpj ) ) <> 18
      RETURN NIL
   ENDIF
   IF Len( Trim( cUf ) ) <> 2
      RETURN NIL
   ENDIF
   IF Time() > "20:00" .OR. Dow( Date() ) == DOW_DOMINGO .OR. Dow( Date() ) == DOW_SABADO
      RETURN NIL
   ENDIF

   cnMySql:cSql := "SELECT * FROM JPCADFAZ WHERE SFCNPJ=" + StringSql( cCnpj ) + " AND SFUF=" + StringSql( cUf )
   cnMySql:Execute()
   IF cnMySql:Eof()
      IF lObrigatoria .OR. LeCnf( "CLI CONSULTA SEFAZ" ) == "SIM"
         WITH OBJECT cnMySql
            :QueryCreate()
            :QueryAdd( "SFCNPJ",      cCnpj )
            :QueryAdd( "SFUF",        cUF )
            :QueryAdd( "SFINFINC",    LogInfo() )
            :QueryAdd( "SFCONSULTAR", "S" )
            :QueryExecuteInsert( "JPCADFAZ" )
         END WITH
      ENDIF
   ELSE
      mXml := cnMySql:StringSql( "SFXML" )
      IF mXml == NIL
         mXml := ""
      ENDIF
      IF LeCnf( "CLI CONSULTA SEFAZ" ) == "SIM"
         cnMySql:cSql := "UPDATE JPCADFAZ SET SFCONSULTAR='S', SFINFINC=" + StringSql( LogInfo() ) + " WHERE SFCNPJ=" + StringSql( cCnpj ) + " AND SFUF=" + StringSql( cUF )
         cnMySql:ExecuteCmd()
      ENDIF
   ENDIF
   cnMySql:CloseRecordset()
   mCadastro := XmlToConsulta( mXml )
   IF Len( mCadastro:InfCad ) > 0
      mSitFaz  := mCadastro:InfCad[ 1 ]:cSit
      mSitNfe  := mCadastro:InfCad[ 1 ]:IndCredNfe
      mSitCnae := mCadastro:InfCad[ 1 ]:Cnae
      mOk      := .F.
      FOR nCont = 1 TO Len( mCadastro:InfCad )
         IF SoNumeros( jpcadas->cdInsEst ) == mCadastro:InfCad[ nCont ]:IE
            mSitFaz := mCadastro:InfCad[ nCont ]:cSit
            mSitNfe := mCadastro:InfCad[ nCont ]:IndCredNfe
            mSitCnae:= mCadastro:InfCad[ nCont ]:Cnae
            mOk     := .T.
         ENDIF
      NEXT
      IF ! mOk // Isento que fechou IE ou Servicos
         mSitFaz := " "
      ENDIF
      SELECT jpcadas
      BEGIN SEQUENCE WITH __BreakBlock()
         RecLock()
         REPLACE jpcadas->cdSitFaz WITH mSitFaz, ;
                 jpcadas->cdSitNfe WITH mSitNfe
         IF ! Empty( mSitCnae )
            IF ! "88889" $ mSitCnae .AND. ! "MARINGA" $ AppEmpresaNome() // ANP nao aceita o 88889
               REPLACE jpcadas->cdCnae WITH mSitCnae
            ENDIF
         ENDIF
         RecUnlock()
      END SEQUENCE
      SELECT (mSelect)
   ENDIF

   RETURN NIL

FUNCTION SituacaoCnpjSefaz( cCnpj, cUf )

   LOCAL mXml, oSefaz, mQtd, aApelidos := { "CARBOLUB", "CORDEIRO", "MARINGA", "CRISPET" }
   LOCAL cnMySql := ADOClass():New( AppcnServerJPA() )
   STATIC nNumApelido := 0

   nNumApelido += 1
   IF nNumApelido > 3
      nNumApelido := 1
   ENDIF
   oSefaz := SefazClass():New()
   mXml := oSefaz:NfeConsultaCadastro( SoNumeros( cCnpj ), cUf, NomeCertificado( aApelidos[ nNumApelido ] ) )
   cnMySql:cSql := "SELECT COUNT(*) AS QTD FROM JPCADFAZ WHERE SFUF=" + StringSql( cUF ) + " AND SFCNPJ=" + StringSql( cCnpj )
   cnMySql:Execute()
   mQtd := cnMySql:NumberSql( "QTD" )
   cnMySql:CloseRecordset()

   WITH OBJECT cnMySql
      :QueryCreate()
      :QueryAdd( "SFCONSULTAR", "N" )
      :QueryAdd( "SFXML", mXml )
      :QueryAdd( "SFINFALT", LogInfo() )
      IF mQtd == 0
         :QueryAdd( "SFUF",     cUf )
         :QueryAdd( "SFCNPJ",   cCnpj )
         :QueryAdd( "SFINFINC", LogInfo() )
         :QueryExecuteInsert( "JPCADFAZ" )
      ELSE
         :QueryExecuteUpdate( "JPCADFAZ", "SFCNPJ=" + StringSql( cCnpj ) + " AND SFUF=" + StringSql( cUF ) )
      ENDIF
   END WITH

   RETURN mXml
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Dados do Sintegra de São Paulo

Mensagempor Kapiaba » 16 Mar 2018 16:13

Mister Quintas, valeu. Flexdocs tem. Eu é que não sabia. Agora, tenho duas opções;

http://www.flexdocs.com.br/guiaNFe/WS.consultaCad2G.html

Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Dados do Sintegra de São Paulo

Mensagempor Itamar M. Lins Jr. » 16 Mar 2018 18:22

Ola!
Os "DADOS DO SINTEGRA" até onde sei, são calhamaços de informações... Tudo que vendeu via NF, NFCE, NFe... e entrou na loja, mais inventário etc...
Enfim Livros de entradas e saídas, e livro de apuração do ICMS.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Dados do Sintegra de São Paulo

Mensagempor Kapiaba » 19 Mar 2018 09:39

Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Dados do Sintegra de São Paulo

Mensagempor Itamar M. Lins Jr. » 19 Mar 2018 10:29

Ola!
http://www.sintegra.gov.br/download.html#validador
http://receita.fazenda.rs.gov.br/download/1849
Dá uma lida no leiaute do arquivo para ver como deverá ser entregue.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Dados do Sintegra de São Paulo

Mensagempor Kapiaba » 19 Mar 2018 10:35

No meu caso, os clientes só precisam disso. Para saber a situação cadastral do comprador, se esta APTO ou INAPTO(uso denegado).

itamar.png


Obg. abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Dados do Sintegra de São Paulo

Mensagempor JoséQuintas » 19 Mar 2018 10:36

Não Itamar.
Uma coisa é o arquivo do Sintegra.
Outra coisa é a consulta ao cadastro, que está na página do Sintegra, e também nesse webservice.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Dados do Sintegra de São Paulo

Mensagempor Kapiaba » 19 Mar 2018 10:38

Veja a situação cadastral deste "comprador", ele está INAPTO no sintegra, SPC, SERASA, etc.

itamar.png


É uma segurança para os clientes não venderem para "ARARAS".

Abs.
Kapiaba
Colaborador

Colaborador
 
Mensagens: 1765
Data de registro: 07 Dez 2012 15:14
Cidade/Estado: São Paulo
Curtiu: 310 vezes
Mens.Curtidas: 119 vezes

Dados do Sintegra de São Paulo

Mensagempor Itamar M. Lins Jr. » 19 Mar 2018 11:03

Ola!
Não Itamar.
Uma coisa é o arquivo do Sintegra.
Outra coisa é a consulta ao cadastro, que está na página do Sintegra, e também nesse webservice.

Eu sei, mas o sintegra não é só para consultar cadastro, é muito maior.
Assim como o NFe é enorme e tem um modulo de consulta cadastro.
Veja que o "TITULO" do post, diz "Dados do Sintegra" é uma coisa muito genérica. É a mesma coisa se fosse "Dados da NFe" e só fizesse alusão a consultar, para ver se o CNPJ/CPF estivesse habilitado.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro