Jump to content
Fivewin Brasil

Consulta PIS/COFINS


dorneles

Recommended Posts

Amiguinhos,

3 horas atrás, dorneles disse:

alguem faz consulta da aliquota de pis/cofins pelo codigo de barra? se sim oque vcs usa

Os cara só qué coisa dificiu!

dorneles tempos atrás coloquei para download uma tabela NCM com MVA,PIS,COFINS,Depreciação,etc e você poderia usá-la para esta pesquisa.

Caso não tenha NCM no item mas ele tenha um GTIN/EAN válido você poderia usar a API da Bluesoft para trazer o NCM e então pesquisar na base disponibilizada.

         cNCMCosmos := "https://api.cosmos.bluesoft.com.br/gtins/"+M->EANGTIN+".json"
         AUTH_TOKEN := "Faça seu cadastro na BlueSoft e consiga um token privado"
         strMsg := ""
         oNCMCosmos:= TOleAuto():New( "Microsoft.XMLHTTP" )
         oNCMCosmos:Open( "GET", cNCMCosmos, .F. )
         oNCMCosmos:setRequestHeader( "Content-Type", "application/json;charset=UTF-8" )
         oNCMCosmos:setRequestHeader( "User-Agent", "Cosmos-API-Request" )
         oNCMCosmos:setRequestHeader( "X-Cosmos-Token", AUTH_TOKEN )
         oNCMCosmos:Send( strMsg )
         cNCMCosmos:= oNCMCosmos:ResponseText()
         cNCMCosmos:= substr( cNCMCosmos, AT(["ncm":{"code"],cNCMCosmos)+15, 8 )

Faça a pesquisa do NCM na tabela e puxe o PIS/COFINS configurado. Compare com os valores obtidos com seu contador.

A função NCMCST() recebe NCM e NBM, já que através do NBM eu tenho desmembrados o mesmo NCM(mas isto não vem ao caso) mas a mesma pode pesquisar somente pelo NCM.

FUNCTION NCMCST( _nCmfiscal_, _nBmfiscal_ )
   // Base Legal
   // PIS – Lei Complementar nº 7, de 7 de setembro de 1970.
   // COFINS – Lei Complementar nº 70, de 30 de dezembro de 1991.
   oldArea    := select()
   cNCMIPI    := charrem( ".", _nCmfiscal_ )
   nNCMIPI    := 0
   nNCMPIS    := 0
   nNCMCOFINS := 0
   dbSelectArea( "NCM" )
   // Pesquisa pelos dois campos
   OrdSetFocus( 1 ) // Pesquisa por campos NCMFiscal e NBMFiscal
   dbSeek( charrem( ".", _nCmfiscal_ )+charrem( ".", _nBmfiscal_ ) )
   if !found()
         OrdSetFocus( 2 ) // Pesquisa somente pelo campo NCMFiscal
         dbSeek( charrem( ".", _nCmfiscal_ ) )
         if !found()
            cNCMIPI    := "99" // "99999900" // Tentar passar o cupom mesmo com falha de NCM
            nNCMIPI    := 0
            nNCMPIS    := 0
            nNCMCOFINS := 0
         else
            nNCMIPI    := NCM->ALIQUOTA // PESQ(es->ncmfiscal+es->nbmfiscal,"NCM",1,"ALIQUOTA")
            nNCMPIS    := iif( IsField( "PIS" )   , NCM->PIS   , 0 )
            nNCMCOFINS := iif( IsField( "COFINS" ), NCM->COFINS, 0 )
         endif
         OrdSetFocus( 1 )
   else
      nNCMIPI    := NCM->ALIQUOTA // PESQ(es->ncmfiscal+es->nbmfiscal,"NCM",1,"ALIQUOTA")
      nNCMPIS    := NCM->PIS
      nNCMCOFINS := NCM->COFINS
   endif
   dbSelectArea( oldArea )
   return { nNCMIPI, nNCMPIS, nNCMCOFINS, cNCMIPI }

Function IsField( cField ) // Verifica existencia de campo na estrutura
  Return( fieldpos( cField ) != 0 ) 

Pegue o arquivo NCM.ZIP

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