Clipper On Line • Ver Tópico - Tabela de NCM com o CEST correspondente.

Tabela de NCM com o CEST correspondente.

Discussão sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (ECF, TEF, SINTEGRA, NF-e, ECD, EFD, etc.)

Moderador: Moderadores

 

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 23 Jun 2017 15:08

Esse convênio 60/2017 é exatamente o texto que eu postei numa mensagem anterior.
Será que a Fazenda está lendo o fórum PCToledo e viu minha mensagem? kkkkk

cest2.png
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor Jairo Maia » 23 Jun 2017 15:13

José, mas estou achando que neste século essa coisa ainda passa a ser obrigatória.

Tente se puder adaptar seu utilitário ao site do convênio 52 de 7 de Abril. O utilitário que postei acima é funcional para identificar o CEST, tudo bem. Eu também extraí a tabela pelo html do site da SEFAZ, mas acabei de pegar um erro: o CEST 3926.90.90 tem 4 CEST´s, e não 3 CEST´s como na minha tabela. Queria ver se conseguiria usando seu aplicativo atualizar minha tabela.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 23 Jun 2017 15:22

Aproveitando, a título de curiosidade e fugindo um pouco do CEST.... aquilo de tabela NCM com alíquotas... acho que não dá muito certo.
Como muita gente deve saber, NBM (Nomenclatura Brasileira de Mercadorias) foi substituída depois de 1996 pelo NCM (Nomenclatura Comum do Mercosul).
Mas as leis não.

Aqui só uma parte:

nbm.png


Isso está neste endereço, em São Paulo.

https://www.confaz.fazenda.gov.br/legislacao/aliquotas-icms-estaduais

Coisas do Brasil.....
Agora pergunto: alguém ainda tem o NBM de 1996 nos aplicativos?
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 23 Jun 2017 15:36

Tente se puder adaptar seu utilitário ao site do convênio 52 de 7 de Abril. O utilitário que postei acima é funcional para identificar o CEST, tudo bem. Eu também extraí a tabela pelo html do site da SEFAZ, mas acabei de pegar um erro: o CEST 3926.90.90 tem 4 CEST´s, e não 3 CEST´s como na minha tabela. Queria ver se conseguiria usando seu aplicativo atualizar minha tabela.


Atualizei, e ocorreu o mesmo problema.

O html está diferente nessa parte.
Enquanto os outros tem (BR) separando os códigos, esse usa espaço em branco e também parágrafo.
Então são 3 formatações diferentes para a mesma informação/coluna.

erro.png


Bom... elementar... quando chegar no nível da coluna, vou ter que testar as 3 formatações.
Exatamente esta parte vai precisar tratar as 3 situações:

aNcm  := hb_RegExSplit( "(br)", XmlNode( cXmlColList[ 3 ], "p" ) )
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 23 Jun 2017 16:18

Esse deu mais trabalho.

cest3.png


cest4.png


Bom... o problema era a coluna de NCM, então.... criar um tratamento especial pra ela.

               aNcm  := PegaNcm( cXmlColList[ 3 ] )


Já posto os fontes em seguida

Ah sim... o problema dos caracteres é porque fiz em modo console, e o modo console é em inglês e não em português.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor Jairo Maia » 23 Jun 2017 16:38

JoséQuintas escreveu:Atualizei, e ocorreu o mesmo problema.
O html está diferente nessa parte.
Enquanto os outros tem (BR) separando os códigos, esse usa espaço em branco e também parágrafo.
Putz... Que "M". Isso mesmo. Valeu a dica.

JoséQuintas escreveu:Já posto os fontes em seguida
Legal...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 23 Jun 2017 17:21

A codepage era UTF8 mesmo, fiz a conversão do jeito antigo, ajustando um por um, testando e alterando, por isso a demora.
O próprio test.prg vai mostrando os caracteres que não reconhece ou não consegue converter.
É ir alterando o fonte, acrescentando as "novidades", até ele não mostrar nada.

test.zip
(37.65 KiB) Baixado 98 vezes


test.prg -> o que gera o fonte teste.prg
test.hbp -> gera o test.exe

teste.prg -> o fonte gerado com a tabela
ze_cest.prg -> rotina de validação e de teste
testvalida.hbp -> gera o testvalida.exe

precisa ze_miscfunc.prg e ze_xmlfunc.prg, da sefazclass

https://github.com/JoseQuintas/sefazclass

No xHarbour o FOR/EACH é mais fraco, acho que precisaria mudanças nele, pelo menos nessa rotina adicional de conversão.
E se não me engano, o CreateObject() obriga a especificar a versão em MSXML2.ServerXMLHTTP.6.0
Mas não mexo com xHarbour, nem adianta me perguntar.... rs

Nota: aqui Harbour 3.4, mingw 7.1, nenhum componente adicional, nem libcurl, nem hbssl, nem hbmysql, nada, só fontes do Harbour 3.4
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 23 Jun 2017 22:52

Por causa dos testes acabei esquecendo de uma coisa:

Pra não ter que carregar a lista toda hora, uma opção é criar uma variável estática.
Algo mais ou menos assim:

FUNCTION ValidaCest()

   STATIC oCestList := {}

   IF Len( oCestList ) == 0
      oCestList := CestList()
   ENDIF


Desta forma, só vai precisar rodar a rotina de carregar o array uma única vez.
Isso se é que vai ser demorado, porque me pareceu que é rápido e nem precisaria disso.
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor Jairo Maia » 24 Jun 2017 07:07

Olá José,

Cara... muito legal seu trabalho. Parabéns e obrigado. Ficou muito bom.

JoséQuintas escreveu:Pra não ter que carregar a lista toda hora, uma opção é criar uma variável estática.
Relamente é rápido mesmo, mas com a variável estática fica melhor. Embora no meu caso vou ajustar em DBF para manter a estrutura do meu sistema.

Mantive a acentuação. Alterei a codificação para PT850 e troquei a função Ajusta() por Hb_UTF8ToStr( cTxt ). Mas se quiser manter PTISO e quiser a acentuação na descrição, pode fazer (nessa ordem):
cTxt := Hb_UTF8ToStr( cTxt )
cTxt := Win_AnsiToOEM( cTxt )


Agora um outro pedido: Não sei trabalhar com o FOR EACH, então queria saber como fazer para não entrar os códigos do anexo XXVI. O anexo 26 é somente para produtos vendidos porta a porta, e nele tem vários grupos inteiros que pode atrapalhar quando se trata de comércio. No html ele está assim: <p class="Subtitulo">ANEXO XXVI</p>. A partir desse ponto, pode interromper, já que abaixo são somente os demais anexos irrelevantes para nosso caso.

O CEST é definido nos anexos II a XXVI, sendo o XXVI somente para venda porta a porta e pode atrapalhar.

Editado:
Entendi esse FOR EACH. Vou fazer as alterações.

Valeu...
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 24 Jun 2017 08:44

Em todo caso:

Tem horas que é só porque consideramos difícil, que acabamos não aprendendo.

O FOR/NEXT trabalha com uma variável
Neste caso nCont

FOR nCont = 1 TO 10
NEXT


o FOR/EACH também.
Neste caso oElemento, que vai representar cada elemento do array

FOR EACH cElemento IN { 1, 2, 3 }
NEXT


O que confunde talvez seja usar a segunda variável, mas o FOR/NEXT também pode usar outra variável.

FOR nCont = 1 TO nTotal
NEXT


FOR EACH oElemento IN aValueList
NEXT


Vamos lembrar do velho arquivo BAT
Isso é um FOR/EACH

FOR %%A IN ( 1 2 3 ) DO ECHO %%A


E finalmente, igual na rotina de XML

FOR nCont = 1 TO AlgumCalculo()
NEXT


FOR EACH cXmlCol IN AlgumCalculo()
NEXT
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor Jairo Maia » 24 Jun 2017 13:20

JoséQuintas escreveu:Tem horas que é só porque consideramos difícil, que acabamos não aprendendo.
Pois é... Mas aqui foi uma coisa muito engraçada. No início eu tentei usar na migração o TRY/CATCH com o Harbour e nunca conseguia. Fiquei muito tempo tentando, e só depois que desisti descobri que para usar o TRY/CATCH com Harbour tinha que incluir o arquivo hbcompat.ch.

Por alguma razão minha mente entrou em bloqueio, e toda vez que eu via o FOR/EACH associava ao TRY/CATCH. Pode parecer engraçado, mas eu tinha esse bloqueio até agora pela manhã.

Fiz as alterações necessárias e atualizei minha tabela de CEST da forma que já vinha usando com os zeros a esquerda.

Quem quiser remover o ANEXO XXVI basta na função MAIN() do arquivo test.prg logo abaixo de cXml := DownloadFazenda() colocar:
 nIniXml := Hb_At( ["Subtitulo">ANEXO I</p>], cXml )
nFimXml := Hb_At( ["Subtitulo">ANEXO XXVI</p>], cXml )
cXml := SubStr( cXml, nIniXml, ( nFimXml - nIniXml ) )

Não esquecer de declarar as variáveis:
Local nFimXml, nIniXml

Valeu. Obrigado.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 24 Jun 2017 14:33

Esse porta a porta confundiu.

Se é vendedor ambulante, ele não é indústria, porque teria ST?
Mesmo que indique direto da indústria para o consumidor, de uma porta até outra, também confunde aplicar ST.

Alguma conclusão sobre essa parte?
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 24 Jun 2017 14:44

Sobre a quebra pra retirar os anexos...
Como minhas funções não são rígidas quanto à formatação do xml, basta tirar a parte final, e nem precisa de variável.

cXml := Substr( cXml, 1, At( [Subtitulo">ANEXO XXVI</p>], cXml ) )
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor Jairo Maia » 25 Jun 2017 06:33

JoséQuintas escreveu:Esse porta a porta confundiu.

Se é vendedor ambulante, ele não é indústria, porque teria ST?
Mesmo que indique direto da indústria para o consumidor, de uma porta até outra, também confunde aplicar ST.

Alguma conclusão sobre essa parte?
Imagina as empresas, Avon, Tupperware, Jequiti por exemplo. São empresas cuja atividade principal se destina a venda por marketing direto (porta a porta), e com o agravante de boa parte dos produtos serem importados.

Nesse caso, vendas internas a essas empresas são efetuadas com ST, o anexo XXVI tem praticamente tudo que é possível vender porta a porta. No caso de importação, o ICMS é recolhido por Antecipação. Isso é para garantir a tributação diretamente as empresas, já que na maioria são vendedoras autônomas, difícil de fiscalizar.

No caso de produto nacional vendido a empresas com essa atividade: Substituição Tributária = Imposto recolhido no momento da venda pelo fabricante, com cessação de cobrança nas operações posteriores.
No caso de importação: Antecipação = Imposto recolhido pelo destinatário. Se importar, o ICMS deve ser recolhido quando o produto entra no estado destino.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Tabela de NCM com o CEST correspondente.

Mensagempor JoséQuintas » 25 Jun 2017 15:43

Correção com teste prático

   // Retira anexo
   //cXml := Substr( cXml, 1, At( [VENDA DE MERCADORIAS PELO SISTEMA PORTA A PORTA], cXml ) )
   //


No commit dá pra ver exatamente a diferença

https://github.com/JoseQuintas/AllInOne/commit/cfe6851ee748bf032ca0ae6ba2bfe2a9877037d9
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Anterior Próximo



Retornar para Legislação Fiscal e Tributária

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 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