Página 1 de 1
Tabela relacionada de ncms extintos em 31/03/2017
Enviado: 09 Abr 2017 09:58
por rubens
Bom dia...
Alguém tem uma tabela relacionando os ncms extintos agora em 31/03 com ncms válidos?
Tipo
NCM antigo -> NCM (novo/válido)
Obrigado
Rubens
Tabela relacionada de ncms extintos em 31/03/2017
Enviado: 09 Abr 2017 11:50
por fladimir
usa a função do ACBr pra baixar os válidos atuais e compara com a tua...
Tabela relacionada de ncms extintos em 31/03/2017
Enviado: 09 Abr 2017 17:28
por rubens
Não é bem esse o problema Fladimir...
O negócio é que deu mais de 06 páginas de ncms extintos.. Dai isso no cliente tá sendo um atropelo... Eu tenho a tabela de ncms válidos... o negócio é que os caras querem tudo de mão beijada... e na realidade se tivesse um jeito de facilitar isso eu faria... seria um diferencial... enquanto outros sistemas tem que fazer na unha ou esperar uma nova comprar par corrigir o meu sistema "trocaria" todos os ncms extintos... mas acho que não vou encontra isso pronto não... o jeito é ou zerar os produtos com ncms extintos e imprimir uma listagem para o cliente corrigir, ou deixar ele corrigir conforme vai aparecendo os erros na hora de enviar nfe ou nfce...
Obrigado
Tabela relacionada de ncms extintos em 31/03/2017
Enviado: 09 Abr 2017 18:04
por JoséQuintas
usa a função do ACBr pra baixar os válidos atuais e compara com a tua...

Código: Selecionar todos
/*
--------------------------------------------------
PEDI0300 - Importa NCM 2017 Fazenda
2017.04.07 - José Quintas
--------------------------------------------------
201.04.07.2200 - Criação
--------------------------------------------------
*/
#include "jpa.ch"
PROCEDURE PEDI0300
LOCAL acFiles, cFileExcel, cSheetName, nQtd, nQtdTotal, cNcm, dValIni, dValAte, cnExcel, cSql := "", lBegin := .F.
LOCAL cnMySql := ADOClass():New( AppcnMySqlSite() )
acFiles := Directory( "IMPORTA\*.xls" )
IF Len( acFiles ) == 0
MsgStop( "Planilha Tabela NCM não encontrada na pasta IMPORTA\" )
RETURN
ENDIF
cFileExcel := hb_cwd() + "IMPORTA\" + acFiles[ 1, 1 ]
SayScroll( cFileExcel )
IF ! Mensagem( "Confirma processo?", "S,N" ) == "S"
RETURN
ENDIF
SayScroll( "Importando dados" )
cnMySql:Open()
cnMySql:ExecuteCmd( JPPRONCMCreateMySql() )
cnMySql:ExecuteCmd( "TRUNCATE TABLE JPPRONCM" )
cnExcel := ADOClass():New( ExcelConnection( cFileExcel ) )
cnExcel:Open()
cSheetName := "[NCM_2012-2017 x uTrib$]"
cnExcel:cSql := "SELECT COUNT(*) AS QTD FROM " + cSheetName
nQtdTotal := cnExcel:ReturnValueAndClose( "QTD" )
cnExcel:cSql := "SELECT * FROM " + cSheetName
cnExcel:Execute()
nQtd := 0
cnExcel:MoveFirst()
cnExcel:MoveNext() // pula titulo
GrafTempo( "Importando NCM" )
cnMySql:Execute( "INSERT INTO JPPRONCM ( PNCODIGO, PNVALDE, PNVALATE ) VALUES ( '00000000', '2000-01-01', NULL )" )
DO WHILE ! cnExcel:Eof()
GrafTempo( nQtd, nQtdTotal )
nQtd += 1
cNcm := cnExcel:StringSql( 0 )
dValIni := Ctod( cnExcel:StringSql( 1 ) )
dValAte := Ctod( cnExcel:StringSql( 2 ) )
IF Val( cNcm ) > 0
cNcm := StrZero( Val( cNcm ), 8 )
IF Len( cSql ) == 0
cSql := "INSERT IGNORE INTO JPPRONCM ( PNCODIGO, PNVALDE, PNVALATE ) VALUES "
lBegin := .T.
ENDIF
IF ! lBegin
cSql += ", "
ENDIF
lBegin := .F.
cSql += "( " + ;
StringSql( cNcm ) + ", " + ;
DateSql( dValIni ) + ", " + ;
DateSql( dValAte ) + " )"
IF Len( cSql ) > MYSQL_MAX_CMDINSERT
cnMySql:ExecuteCmd( cSql )
cSql := ""
lBegin := .T.
ENDIF
ENDIF
cnExcel:MoveNext()
ENDDO
cnExcel:CloseConnection()
IF Len( cSql ) > 0
cnMySql:ExecuteCmd( cSql )
ENDIF
cnMySql:CloseConnection()
MsgExclamation( "Fim da importação! Verificados " + LTrim( Str( nQtd ) ) + " NCMs" )
RETURN
Nota:
Nenhum cliente reclamou até agora, então não tinha feito nada antes sobre isso..... rs
Nesse caso é direto do Excel para o MySql do meu site.
Tabela relacionada de ncms extintos em 31/03/2017
Enviado: 10 Abr 2017 01:17
por fladimir
Não sei se entendi direito...
Até o momento não tive problemas de caos digamos assim.
O q tenho usado é a rotina q baixa a tabela nova e tenho uma rotina q o cliente escolhe trocar NCM de para ai informa o NCM ou produto q ele quer q troque o NCM (pode ser um NCM inválido q deixou de existir) e escolhe na tabela atualizada para qual irá trocar, com isto troca todos, ou seja, no dia a dia encontrou NCM inválido ele pode informar e já trocar todos q tem no cadastro de produtos automaticamente por outro valido, ai facilita a correção.
Tb tenho faço o seguinte, faz uma checagem no cadastro de produtos, filtrando todos os NCMs q não são mais válidos ai o cliente vai e informa para qual vai trocar (conforme acima) e pronto ele consegue arrumar facilmente sem muito trabalho.
Pq por mais q tenham por exemplo 1000 NCMs extintos suponhamos, como é por segmento, as vezes um determinado ramo tem uns 150 q por sua vez na base do cliente tem 100 q filtrando (comparando com os validos saberemos quais são inválidos) depois fazendo o cliente escolher DE -> Para tipo NCM 1993.23.42 (nem sei se tem) para 5034.42.33... trocar todos? Sim pronto akele já foi geral, e assim por diante.
Assim não resolveria?
Tabela relacionada de ncms extintos em 31/03/2017
Enviado: 10 Abr 2017 08:31
por rubens
Bom dia...
Vou fazer isso mesmo... tinha pensado nisso mas como bom brasileiro... esperava a solução mais fácil.. kkkkk
Quintas esta tabela já tenho em excel...
Já importei para o sistema.
Eu recebo um e-mail quando ocorre um erro com o envio de nfce. MAs tem usuário que judia muito... cheguei a receber 15 emails de erro com a tentativa de envio de nfce e fui ver o cliente tentando enviar a mesma nfce, sem corrigir o ncm... liguei para ele e disse que não sabia... tá bem claro na mensagem de erro que é exibida na tela...
Obrigado...
Rubens