Jump to content
Fivewin Brasil

Pesquisar Tabela CEST


Valdir

Recommended Posts

Boas...

Pessoal, preciso fazer uma pesquisa na Tabela CEST onde será retornado o valor do último resultado, mesmo que parcial, encontrado.

Exemplo:

- O Cliente digita o NCM "84842000"

- Na Tabela do CEST 2018 não existe esse NCM completo, porém existe o Grupo, no qual ele pertence. Neste caso seria "8484".

Como faço uma pesquisa para encontrar todas as variáveis do NCM na Tabela CEST. ?

Obrigado.

 

Link to comment
Share on other sites

Ola, Bom dia amigos

 

Eu faço da seguinte forma:

 

Private cCEST_SQL := Space(7)
Private cNome_Natureza := Space(180)

aCEST := Array_SQL("Select codigo_cest, descri_cest FROM cest WHERE ncm_cest = ?",,{ VMNCMPRO_ESTO } )
IF Len( aCest ) == 1 .AND. !lVerifica_Cest
	MsgInfo("Encontrado somente uma ocorrencia para este NCM","Atenção...")
	cNome_CEST      := aCEST[ 1, 2 ]
	VMCEST_NCM_ESTO := aCEST[ 1, 1 ]
	Retu
Endif

aCEST := Array_SQL("Select codigo_cest, descri_cest, ncm_cest FROM cest WHERE MID( ncm_cest, 1, 6 ) = '"+Substr(VMNCMPRO_ESTO,1,6)+"'" )
IF Empty( aCEST )

	aCEST := Array_SQL("Select codigo_cest, descri_cest, ncm_cest FROM cest WHERE MID( ncm_cest, 1, 4 ) = '"+Substr(VMNCMPRO_ESTO,1,4)+"'" )

	IF Empty( aCEST )
		MsgInfo( "Não foi encontrado nenhuma ocorrencia para este NCM"+CRLF+"Provavelmente este NCM não seja Substituição Tributária","Atenção..." )
		cNome_CEST      := ''
		VMCEST_NCM_ESTO := Space(7)
		Retu
	EndIF

Endif

 

Link to comment
Share on other sites

 

Amigos...

Obrigado pelas respostas.

Jackson... seria mais ou menos por ai. Teria um exemplo em DBF ?

Abrs.

Valdir

 

Esses dias respondemos algo parecido, onde vc deve fazer um pesquisa inicialmente pelo código inteiro com bytes, se não achar, procure por 6 bytes, não achando, continue até esgotar todas as possibilidade.

mais ou menos isso , a grosso modo:

SEEK wcodncm //INTEIRO
IF FOUND()
   wdescricao := descricao
   wcest       := cest
ELSE
   SEEK SUBSTR(wcodncm,1,6) + SPACE(2) //6 BYTES, DEVE MOSTRAR TODOS OS POSSIVEIS PARA ESCOLHA
   IF FOUND()
      wcest       := cest
      wdescricao := descricao
   ELSE
      SEEK SUBSTR(wcodncm,1,4) + SPACE(4) //4 BYTES , DEVE MOSTRAR TODOS OS POSSIVEIS PARA ESCOLHA
      IF FOUND()
         wcest       := cest
         wdescricao := descricao
      ELSE
         SEEK SUBSTR(wcodncm,1,2) + SPACE(6) //2 BYTES QUE É O GENERO, , DEVE MOSTRAR TODOS OS POSSIVEIS PARA ESCOLHA
         IF FOUND()
            wcest       := cest
            wdescricao := descricao
         ENDIF
      ENDIF
   ENDIF
ENDIF

[]s,

Link to comment
Share on other sites

 

Valdir

 

Esses dias respondemos algo parecido, onde vc deve fazer um pesquisa inicialmente pelo código inteiro com bytes, se não achar, procure por 6 bytes, não achando, continue até esgotar todas as possibilidade.

mais ou menos isso , a grosso modo:

SEEK wcodncm //INTEIRO
IF FOUND()
   wdescricao := descricao
   wcest       := cest
ELSE
   SEEK SUBSTR(wcodncm,1,6) + SPACE(2) //6 BYTES, DEVE MOSTRAR TODOS OS POSSIVEIS PARA ESCOLHA
   IF FOUND()
      wcest       := cest
      wdescricao := descricao
   ELSE
      SEEK SUBSTR(wcodncm,1,4) + SPACE(4) //4 BYTES , DEVE MOSTRAR TODOS OS POSSIVEIS PARA ESCOLHA
      IF FOUND()
         wcest       := cest
         wdescricao := descricao
      ELSE
         SEEK SUBSTR(wcodncm,1,2) + SPACE(6) //2 BYTES QUE É O GENERO, , DEVE MOSTRAR TODOS OS POSSIVEIS PARA ESCOLHA
         IF FOUND()
            wcest       := cest
            wdescricao := descricao
         ENDIF
      ENDIF
   ENDIF
ENDIF

[]s,

Obrigado amigo Jorge...

É isso mesmo que estava precisando. 

Valeu. 

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...