Ficha de Conteúdo de Importação - Primo do SPED
Moderador: Moderadores
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Ficha de Conteúdo de Importação - Primo do SPED
Amiguinhos,
Resolução do Senado Federal 13/2012
Atualizada em: 05/02/2013
Em 26 de abril de 2012, foi publicada a Resolução no 13 do Senado Federal, que reduz para 4%, a partir de 01/01/2013, a alíquota do ICMS incidente nas operações interestaduais com produtos importados.
De acordo com a Resolução, será de 4% a alíquota do ICMS nas operações interestaduais com bens e mercadorias importados do exterior que, após seu desembaraço aduaneiro, não tenham sido submetidos a processo de industrialização ou, ainda que submetidos a qualquer processo de industrialização, resultem em mercadorias ou bens com Conteúdo de Importação superior a 40%.
Nos termos da Resolução SF no 13/2012, mantém-se as atuais alíquotas interestaduais de 7% ou 12%, conforme o caso, aos bens e mercadorias importados do exterior que não tenham similar nacional (Resolução Camex n.º 79/2012); aos bens produzidos em conformidade com os processos produtivos básicos - Decreto-Lei 288/67- ZFM, Lei 8.248/91 – Informática e Automação e Lei 11.484/2007 – PADIS/PATVD e respectivas atualizações; e às operações que destinem gás natural importado do exterior a outros Estados.
Manual do Usuario
Validador FCI
Resolução do Senado Federal 13/2012
Atualizada em: 05/02/2013
Em 26 de abril de 2012, foi publicada a Resolução no 13 do Senado Federal, que reduz para 4%, a partir de 01/01/2013, a alíquota do ICMS incidente nas operações interestaduais com produtos importados.
De acordo com a Resolução, será de 4% a alíquota do ICMS nas operações interestaduais com bens e mercadorias importados do exterior que, após seu desembaraço aduaneiro, não tenham sido submetidos a processo de industrialização ou, ainda que submetidos a qualquer processo de industrialização, resultem em mercadorias ou bens com Conteúdo de Importação superior a 40%.
Nos termos da Resolução SF no 13/2012, mantém-se as atuais alíquotas interestaduais de 7% ou 12%, conforme o caso, aos bens e mercadorias importados do exterior que não tenham similar nacional (Resolução Camex n.º 79/2012); aos bens produzidos em conformidade com os processos produtivos básicos - Decreto-Lei 288/67- ZFM, Lei 8.248/91 – Informática e Automação e Lei 11.484/2007 – PADIS/PATVD e respectivas atualizações; e às operações que destinem gás natural importado do exterior a outros Estados.
Manual do Usuario
Validador FCI
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Ficha de Conteúdo de Importação - Primo do SPED
Amiguinhos,
Seguindo a linha de SPED PIS COFINS sem mistério dou seguimento adicionando material para reforço do tema que entra em voga real logo mais.
PASSO 1Coloco o conjunto de funções que geram as tabelas conforme informações dos campos de cada registro do layout FCI.
Rotina de uso:
PASSO 2Conjunto de funções que salva os registros nas tabelas, conforme a sua rotina, laço de leitura, etc:
Rotina de uso, exemplificando somente a primeira função:
PASSO 3Conjunto de funções que pegam os dados dos registros contidos em cada tabela, concatenado o resultado:
Rotina de uso:
Com os trechos acima já é possivel gerar os registros que irão compor o arquivo digital FCI que deve ser validado, assinado e enviado a sistema da receita.
Alguma literatura relevante:
Como calcular o conteúdo de importação...
Algumas tabelas relevantes:
TIPI 2012, outra tabela
NCM
Lista de Bens Sem Similar Nacional
Glossário:
TEC - Tarifa Externa Comum
NCM - Nomenclatura Comum do Mercosul
LETEC - Lista de Exceções à Tarifa Externa Comum
LEBIT - Lista de Exceções de Bens de Informática e de Telecomunicações
Seguindo a linha de SPED PIS COFINS sem mistério dou seguimento adicionando material para reforço do tema que entra em voga real logo mais.
PASSO 1Coloco o conjunto de funções que geram as tabelas conforme informações dos campos de cada registro do layout FCI.
Código: Selecionar todos
FUNCTION FISCOTabelaR0000()
// *** Estrutura do Registro R0000 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Identifica o tipo de registro ?0000
AADD( Estru, { 'CAMPO02' , 'C', 0014, 00 } ) // 02 - CNPJ do estabelecimento
AADD( Estru, { 'CAMPO03' , 'C', 0255, 00 } ) // 03 - Nome (Fantasia) ou RazãoSocial do C
AADD( Estru, { 'CAMPO04' , 'C', 0004, 00 } ) // 04 - Versão de leiaute do arquivo
AADD( Estru, { 'CAMPO05' , 'C', 0047, 00 } ) // 05 - Hash Code do arquivo
AADD( Estru, { 'CAMPO06' , 'C', 0020, 00 } ) // 06 - Data em que o arquivo foi aceito
AADD( Estru, { 'CAMPO07' , 'C', 0036, 00 } ) // 07 - Código de recepção do
AADD( Estru, { 'CAMPO08' , 'C', 0020, 00 } ) // 08 - Data que o arquivo foi validado
AADD( Estru, { 'CAMPO09' , 'C', 0020, 00 } ) // 09 - Indicador de validação do arquivo
dbCreate( 'R0000.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR0001()
// *** Estrutura do Registro R0001 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Identifica o tipo de registro ?0001
AADD( Estru, { 'CAMPO02' , 'C', 0150, 00 } ) // 02 - Texto padrão em caracteres UTF-
dbCreate( 'R0001.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR0010()
// *** Estrutura do Registro R0010 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Identifica o tipo de registro ?0010
AADD( Estru, { 'CAMPO02' , 'C', 0014, 00 } ) // 02 - CNPJ do contribuinte
AADD( Estru, { 'CAMPO03' , 'C', 0255, 00 } ) // 03 - Razão Social do contribuinte
AADD( Estru, { 'CAMPO04' , 'C', 0020, 00 } ) // 04 - Inscrição Estadual
AADD( Estru, { 'CAMPO05' , 'C', 0255, 00 } ) // 05 - Endereço do estabelecimento
AADD( Estru, { 'CAMPO06' , 'C', 0008, 00 } ) // 06 - CEP do Estabelecimento
AADD( Estru, { 'CAMPO07' , 'C', 0255, 00 } ) // 07 - Município do estabelecimento
AADD( Estru, { 'CAMPO08' , 'C', 0002, 00 } ) // 08 - Unidade da Federação
dbCreate( 'R0010.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR0990()
// *** Estrutura do Registro R0990 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Carrega campo ?0990?
AADD( Estru, { 'CAMPO02' , 'C', 0002, 00 } ) // 02 - Quantidades
dbCreate( 'R0990.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR5001()
// *** Estrutura do Registro R5001 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Campo fixo "5001"
dbCreate( 'R5001.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR5020()
// *** Estrutura do Registro R5020 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Registro 5020:
AADD( Estru, { 'CAMPO02' , 'C', 0255, 00 } ) // 02 - Descrição da mercadoria
AADD( Estru, { 'CAMPO03' , 'C', 0008, 00 } ) // 03 - Código Comum do MERCOSUL
AADD( Estru, { 'CAMPO04' , 'C', 0050, 00 } ) // 04 - Código do produto no estabeleciment
AADD( Estru, { 'CAMPO05' , 'C', 0014, 00 } ) // 05 - Código
AADD( Estru, { 'CAMPO06' , 'C', 0006, 00 } ) // 06 - Unidade a que se refere
AADD( Estru, { 'CAMPO07' , 'C', 0015, 02 } ) // 07 - Valor
AADD( Estru, { 'CAMPO08' , 'C', 0015, 02 } ) // 08 - Valor
AADD( Estru, { 'CAMPO09' , 'C', 0006, 02 } ) // 09 - do
AADD( Estru, { 'CAMPO10' , 'C', 0036, 00 } ) // 10 - Código
AADD( Estru, { 'CAMPO11' , 'C', 0020, 00 } ) // 11 - Indicador
dbCreate( 'R5020.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR5990()
// *** Estrutura do Registro R5990 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Campo fixo ?5990?
AADD( Estru, { 'CAMPO02' , 'C', 0006, 00 } ) // 02 - Quantidades de linha do bloco 5
dbCreate( 'R5990.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR9001()
// *** Estrutura do Registro R9001 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Texto fixo contendo ?9001?
dbCreate( 'R9001.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR9900()
// *** Estrutura do Registro R9900 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Texto fixo
AADD( Estru, { 'CAMPO02' , 'C', 0004, 00 } ) // 02 - Tipo do registro
AADD( Estru, { 'CAMPO03' , 'C', 0008, 00 } ) // 03 - registros
dbCreate( 'R9900.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR9990()
// *** Estrutura do Registro R9990 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Texto fixo contendo ?9990?
AADD( Estru, { 'CAMPO02' , 'C', 0002, 00 } ) // 02 - Quantidade total de linhas
dbCreate( 'R9990.DBF', Estru )
RETURN NIL
FUNCTION FISCOTabelaR9999()
// *** Estrutura do Registro R9999 ***
LOCAL Estru := {}
AADD( Estru, { 'CAMPO01' , 'C', 0004, 00 } ) // 01 - Texto fixo contendo ?9999?
AADD( Estru, { 'CAMPO02' , 'C', 0008, 00 } ) // 02 - Quantidade total de linhas
dbCreate( 'R9999.DBF', Estru )
RETURN NIL
Código: Selecionar todos
FUNCTION GeraFISCOTabelas()
FISCOTabelaR0000()
FISCOTabelaR0001()
FISCOTabelaR0010()
FISCOTabelaR0990()
FISCOTabelaR5001()
FISCOTabelaR5020()
FISCOTabelaR5990()
FISCOTabelaR9001()
FISCOTabelaR9900()
FISCOTabelaR9990()
FISCOTabelaR9999()
RETURN NIL
Código: Selecionar todos
FUNCTION FISCOSalvaR0000()
// *** Estrutura do Registro R0000 ***
R0000->( dbAppend() )
R0000->CAMPO01 := '0000' // 01 - Identifica o tipo de registro ?0000
R0000->CAMPO02 := M->CNPJ_CONTRIBUINTE // 02 - CNPJ do estabelecimento
R0000->CAMPO03 := M->NOME_CONTRIBUINTE // 03 - Nome (Fantasia) ou RazãoSocial do C
R0000->CAMPO04 := M->VERSAO_LEIAUTE // 04 - Versão de leiaute do arquivo
R0000->CAMPO05 := M->HASH_HASH CODE // 05 - Hash Code do arquivo
R0000->CAMPO06 := M->DT_RECEPCAO_ARQUIVO // 06 - Data em que o arquivo foi aceito
R0000->CAMPO07 := M->COD_RECEPCAO_ARQUIVO // 07 - Código de recepção do
R0000->CAMPO08 := M->DT_VALIDACAO_ARQUIVO // 08 - Data que o arquivo foi validado
R0000->CAMPO09 := M->IN_VALIDACAO_ARQUIVO // 09 - Indicador de validação do arquivo
R0000->( dbCommit() )
//
M->AREA0000 := Select()
M->QTD_LIN_0 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
dbSelectArea('R0990')
FISCOSalvaR0990()
M->REG_BLC := '0000'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA0000)
RETURN nil
FUNCTION FISCOSalvaR0001()
// *** Estrutura do Registro R0001 ***
R0001->( dbAppend() )
R0001->CAMPO01 := '0001' // 01 - Identifica o tipo de registro ?0001
R0001->CAMPO02 := M->TEXTO_PADRAO_UTF8 // 02 - Texto padrão em caracteres UTF-
R0001->( dbCommit() )
//
M->AREA0001 := Select()
M->QTD_LIN_0 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
dbSelectArea('R0990')
FISCOSalvaR0990()
M->REG_BLC := '0001'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA0001)
RETURN nil
FUNCTION FISCOSalvaR0010()
// *** Estrutura do Registro R0010 ***
R0010->( dbAppend() )
R0010->CAMPO01 := '0010' // 01 - Identifica o tipo de registro ?0010
R0010->CAMPO02 := M->CNPJ_CONTRIBUINTE // 02 - CNPJ do contribuinte
R0010->CAMPO03 := M->NOME_RAZAO_SOCIAL // 03 - Razão Social do contribuinte
R0010->CAMPO04 := M->INSCRI€ÇO_ESTADUAL // 04 - Inscrição Estadual
R0010->CAMPO05 := M->ENDERE€O_ESTABELECIMENTO // 05 - Endereço do estabelecimento
R0010->CAMPO06 := M->CEP // 06 - CEP do Estabelecimento
R0010->CAMPO07 := M->MUNICÖPIO // 07 - Município do estabelecimento
R0010->CAMPO08 := M->UF // 08 - Unidade da Federação
R0010->( dbCommit() )
//
M->AREA0010 := Select()
M->QTD_LIN_0 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
dbSelectArea('R0990')
FISCOSalvaR0990()
M->REG_BLC := '0010'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA0010)
RETURN nil
FUNCTION FISCOSalvaR0990()
// *** Estrutura do Registro R0990 ***
if recco() = 0
M->QTD_LIN_0 := '1'
R0990->( dbAppend() )
else
M->QTD_LIN_0 := alltrim(str(val(R0990->CAMPO02) + 1,6))
R0990->( dbRLock() )
endif
R0990->CAMPO01 := '0990' // 01 - Carrega campo ?0990?
R0990->CAMPO02 := M->QUANTIDADE_LINHAS // 02 - Quantidades
R0990->( dbCommit() )
//
M->AREA0990 := Select()
M->QTD_LIN_0 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
M->REG_BLC := '0990'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA0990)
RETURN nil
FUNCTION FISCOSalvaR5001()
// *** Estrutura do Registro R5001 ***
R5001->( dbAppend() )
R5001->CAMPO01 := '5001' // 01 - Campo fixo "5001"
R5001->( dbCommit() )
//
M->AREA5001 := Select()
M->QTD_LIN_5 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
dbSelectArea('R5990')
FISCOSalvaR5990()
M->REG_BLC := '5001'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA5001)
RETURN nil
FUNCTION FISCOSalvaR5020()
// *** Estrutura do Registro R5020 ***
R5020->( dbAppend() )
R5020->CAMPO01 := '5020' // 01 - Registro 5020:
R5020->CAMPO02 := M->NOME_MERCADORIA // 02 - Descrição da mercadoria
R5020->CAMPO03 := M->CODIGO_NCM // 03 - Código Comum do MERCOSUL
R5020->CAMPO04 := M->CODIGO_MERCADORIA // 04 - Código do produto no estabeleciment
R5020->CAMPO05 := M->CODIGO_GTIN // 05 - Código
R5020->CAMPO06 := M->UNIDADE_MERCADORIA // 06 - Unidade a que se refere
R5020->CAMPO07 := M->VALOR_SAIDA_MERCADORIA_INTERESTADU // 07 - Valor
R5020->CAMPO08 := M->VALOR_PARCELA_IMPORTADA_EXTERIOR // 08 - Valor
R5020->CAMPO09 := M->CONTEUDO_IMPORTACAO_CI // 09 - do
R5020->CAMPO10 := M->CODIGO_FCI // 10 - Código
R5020->CAMPO11 := M->IN_VALIDACAO_FICHA // 11 - Indicador
R5020->( dbCommit() )
//
M->AREA5020 := Select()
M->QTD_LIN_5 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
dbSelectArea('R5990')
FISCOSalvaR5990()
M->REG_BLC := '5020'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA5020)
RETURN nil
FUNCTION FISCOSalvaR5990()
// *** Estrutura do Registro R5990 ***
if recco() = 0
M->QTD_LIN_5 := '1'
R5990->( dbAppend() )
else
M->QTD_LIN_5 := alltrim(str(val(R5990->CAMPO02) + 1,6))
R5990->( dbRLock() )
endif
R5990->CAMPO01 := '5990' // 01 - Campo fixo ?5990?
R5990->CAMPO02 := M->QUANTIDADE_LINHAS // 02 - Quantidades de linha do bloco 5
R5990->( dbCommit() )
//
M->AREA5990 := Select()
M->QTD_LIN_5 := '1'
M->QTD_LIN_9 := '1'
M->QTD_REG_BLC := '1'
M->REG_BLC := '5990'
dbSelectArea('R9900')
FISCOSalvaR9900()
dbSelectArea(M->AREA5990)
RETURN nil
Código: Selecionar todos
FUNCTION GeraFISCOSalva()
// *** Estrutura do Registro R0000 ***
// Preencher as variaveis com dados antes de repassar
M->REG := '0000' // 01 - Identifica o tipo de registro ?0000
M->CNPJ_CONTRIBUINTE := '' // 02 - CNPJ do estabelecimento
M->NOME_CONTRIBUINTE := '' // 03 - Nome (Fantasia) ou RazãoSocial do C
M->VERSAO_LEIAUTE := '' // 04 - Versão de leiaute do arquivo
M->HASH_HASH CODE := '' // 05 - Hash Code do arquivo
M->DT_RECEPCAO_ARQUIVO := '' // 06 - Data em que o arquivo foi aceito
M->COD_RECEPCAO_ARQUIVO := '' // 07 - Código de recepção do
M->DT_VALIDACAO_ARQUIVO := '' // 08 - Data que o arquivo foi validado
M->IN_VALIDACAO_ARQUIVO := '' // 09 - Indicador de validação do arquivo
FISCOSalvaR0000()
...
FISCOSalvaR0001()
...
FISCOSalvaR0010()
...
FISCOSalvaR0990()
...
FISCOSalvaR5001()
...
do while ...
FISCOSalvaR5020()
...
FISCOSalvaR5990()
enddo
...
FISCOSalvaR9001()
...
FISCOSalvaR9900()
...
FISCOSalvaR9990()
RETURN NIL
Código: Selecionar todos
FUNCTION FISCORegistroR0000()
// *** Estrutura do Registro R0000 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R0000->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Identifica o tipo de registro ?0000
cTrailler := cTrailler + StrFill( R0000->CAMPO02 , 0014, ' ', 'R' ) + cSeparator // 02 - CNPJ do estabelecimento
cTrailler := cTrailler + StrFill( R0000->CAMPO03 , 0255, ' ', 'R' ) + cSeparator // 03 - Nome (Fantasia) ou RazãoSocial do C
cTrailler := cTrailler + StrFill( R0000->CAMPO04 , 0004, ' ', 'R' ) + cSeparator // 04 - Versão de leiaute do arquivo
cTrailler := cTrailler + StrFill( R0000->CAMPO05 , 0047, ' ', 'R' ) + cSeparator // 05 - Hash Code do arquivo
cTrailler := cTrailler + StrFill( R0000->CAMPO06 , 0020, ' ', 'R' ) + cSeparator // 06 - Data em que o arquivo foi aceito
cTrailler := cTrailler + StrFill( R0000->CAMPO07 , 0036, ' ', 'R' ) + cSeparator // 07 - Código de recepção do
cTrailler := cTrailler + StrFill( R0000->CAMPO08 , 0020, ' ', 'R' ) + cSeparator // 08 - Data que o arquivo foi validado
cTrailler := cTrailler + StrFill( R0000->CAMPO09 , 0020, ' ', 'R' ) + cSeparator // 09 - Indicador de validação do arquivo
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR0001()
// *** Estrutura do Registro R0001 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R0001->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Identifica o tipo de registro ?0001
cTrailler := cTrailler + StrFill( R0001->CAMPO02 , 0150, ' ', 'R' ) + cSeparator // 02 - Texto padrão em caracteres UTF-
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR0010()
// *** Estrutura do Registro R0010 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R0010->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Identifica o tipo de registro ?0010
cTrailler := cTrailler + StrFill( R0010->CAMPO02 , 0014, ' ', 'R' ) + cSeparator // 02 - CNPJ do contribuinte
cTrailler := cTrailler + StrFill( R0010->CAMPO03 , 0255, ' ', 'R' ) + cSeparator // 03 - Razão Social do contribuinte
cTrailler := cTrailler + StrFill( R0010->CAMPO04 , 0020, ' ', 'R' ) + cSeparator // 04 - Inscrição Estadual
cTrailler := cTrailler + StrFill( R0010->CAMPO05 , 0255, ' ', 'R' ) + cSeparator // 05 - Endereço do estabelecimento
cTrailler := cTrailler + StrFill( R0010->CAMPO06 , 0008, '0', 'L' ) + cSeparator // 06 - CEP do Estabelecimento
cTrailler := cTrailler + StrFill( R0010->CAMPO07 , 0255, ' ', 'R' ) + cSeparator // 07 - Município do estabelecimento
cTrailler := cTrailler + StrFill( R0010->CAMPO08 , 0002, ' ', 'R' ) + cSeparator // 08 - Unidade da Federação
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR0990()
// *** Estrutura do Registro R0990 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R0990->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Carrega campo ?0990?
cTrailler := cTrailler + StrFill( R0990->CAMPO02 , 0002, '0', 'L' ) + cSeparator // 02 - Quantidades
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR5001()
// *** Estrutura do Registro R5001 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R5001->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Campo fixo "5001"
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR5020()
// *** Estrutura do Registro R5020 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R5020->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Registro 5020:
cTrailler := cTrailler + StrFill( R5020->CAMPO02 , 0255, ' ', 'R' ) + cSeparator // 02 - Descrição da mercadoria
cTrailler := cTrailler + StrFill( R5020->CAMPO03 , 0008, '0', 'L' ) + cSeparator // 03 - Código Comum do MERCOSUL
cTrailler := cTrailler + StrFill( R5020->CAMPO04 , 0050, ' ', 'R' ) + cSeparator // 04 - Código do produto no estabeleciment
cTrailler := cTrailler + StrFill( R5020->CAMPO05 , 0014, '0', 'L' ) + cSeparator // 05 - Código
cTrailler := cTrailler + StrFill( R5020->CAMPO06 , 0006, ' ', 'R' ) + cSeparator // 06 - Unidade a que se refere
cTrailler := cTrailler + StrFill( R5020->CAMPO07 , 0015, '0', 'L' ) + cSeparator // 07 - Valor
cTrailler := cTrailler + StrFill( R5020->CAMPO08 , 0015, '0', 'L' ) + cSeparator // 08 - Valor
cTrailler := cTrailler + StrFill( R5020->CAMPO09 , 0006, '0', 'L' ) + cSeparator // 09 - do
cTrailler := cTrailler + StrFill( R5020->CAMPO10 , 0036, ' ', 'R' ) + cSeparator // 10 - Código
cTrailler := cTrailler + StrFill( R5020->CAMPO11 , 0020, ' ', 'R' ) + cSeparator // 11 - Indicador
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR5990()
// *** Estrutura do Registro R5990 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R5990->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Campo fixo ?5990?
cTrailler := cTrailler + StrFill( R5990->CAMPO02 , 0006, '0', 'L' ) + cSeparator // 02 - Quantidades de linha do bloco 5
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR9001()
// *** Estrutura do Registro R9001 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R9001->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Texto fixo contendo ?9001?
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR9900()
// *** Estrutura do Registro R9900 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R9900->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Texto fixo
cTrailler := cTrailler + StrFill( R9900->CAMPO02 , 0004, ' ', 'R' ) + cSeparator // 02 - Tipo do registro
cTrailler := cTrailler + StrFill( R9900->CAMPO03 , 0008, '0', 'L' ) + cSeparator // 03 - registros
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR9990()
// *** Estrutura do Registro R9990 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R9990->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Texto fixo contendo ?9990?
cTrailler := cTrailler + StrFill( R9990->CAMPO02 , 0002, '0', 'L' ) + cSeparator // 02 - Quantidade total de linhas
cTrailler := cTrailler + cCRLF
RETURN cTrailler
FUNCTION FISCORegistroR9999()
// *** Estrutura do Registro R9999 ***
LOCAL cCRLF := chr(13)+chr(10), cSeparator := '|'
cTrailler := cSeparator
cTrailler := cTrailler + StrFill( R9999->CAMPO01 , 0004, ' ', 'R' ) + cSeparator // 01 - Texto fixo contendo ?9999?
cTrailler := cTrailler + StrFill( R9999->CAMPO02 , 0008, '0', 'L' ) + cSeparator // 02 - Quantidade total de linhas
cTrailler := cTrailler + cCRLF
RETURN cTrailler
Código: Selecionar todos
FUNCTION GeraFISCORegistros(SPEDhandle)
dbSelectArea('R0000'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR0000() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R0001'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR0001() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R0010'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR0010() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R0990'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR0990() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R5001'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR5001() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R5020'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR5020() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R5990'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR5990() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R9001'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR9001() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R9900'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR9900() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R9990'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR9990() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
dbSelectArea('R9999'); dbGotop(); do while .not. eof(); cFISCORegistro := alltrim( FISCORegistroR9999() ); fWrite( SPEDhandle, cFISCORegistro, len( cFISCORegistro ) ); dbSkip(); enddo
RETURN NIL
Alguma literatura relevante:
Como calcular o conteúdo de importação...
Algumas tabelas relevantes:
TIPI 2012, outra tabela
NCM
Lista de Bens Sem Similar Nacional
Glossário:
TEC - Tarifa Externa Comum
NCM - Nomenclatura Comum do Mercosul
LETEC - Lista de Exceções à Tarifa Externa Comum
LEBIT - Lista de Exceções de Bens de Informática e de Telecomunicações
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Ficha de Conteúdo de Importação - Primo do SPED
Bom dia,
Estou preenchendo o registro 0001 campo 02 com o conteudo:
0001|Texto em caracteres UTF-8: (dígrafo BR)'ção',(dígrafo espanhol-enhe)'ñ',(trema)'Ü',(ordinais)'ªº',(ligamento s+z alemão)'ß'.
Conforme descrito no manual da FCI.
Na versão anterior o validador apresentava erro porém permitia gerar o arquivo para posterior transmissão.
A nova versão apresenta erro e não permite gerar o arquivo para transmissão, conforme segue:
2|Erro|0001|Existem caracteres que não obedecem ao conjunto “pt-BR” do padrão UTF-8, no arquivo 022013.txt especificamente na(s) linha(s) 2. Deve obedecer ao preenchimento da seguinte forma para o campo TEXTO_PADRAO_UTF8 com formato: Texto; obrigatório: Sim; tamanho máximo de/até: 150.|TEXTO_PADRAO_UTF8|Texto padrão em caracteres UTF-8.
Por favor me informe como preencheu este registro.
Obrigado,
Estou preenchendo o registro 0001 campo 02 com o conteudo:
0001|Texto em caracteres UTF-8: (dígrafo BR)'ção',(dígrafo espanhol-enhe)'ñ',(trema)'Ü',(ordinais)'ªº',(ligamento s+z alemão)'ß'.
Conforme descrito no manual da FCI.
Na versão anterior o validador apresentava erro porém permitia gerar o arquivo para posterior transmissão.
A nova versão apresenta erro e não permite gerar o arquivo para transmissão, conforme segue:
2|Erro|0001|Existem caracteres que não obedecem ao conjunto “pt-BR” do padrão UTF-8, no arquivo 022013.txt especificamente na(s) linha(s) 2. Deve obedecer ao preenchimento da seguinte forma para o campo TEXTO_PADRAO_UTF8 com formato: Texto; obrigatório: Sim; tamanho máximo de/até: 150.|TEXTO_PADRAO_UTF8|Texto padrão em caracteres UTF-8.
Por favor me informe como preencheu este registro.
Obrigado,
Ficha de Conteúdo de Importação - Primo do SPED
Resolvido, era necessário utilizar função para Converter a string de origem em CP1252 ( Windows 1252 code-page ) para a codificação UTF-8 ( 8-bit Unicode Transformation Format ).
Obrigado,
Obrigado,
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Ficha de Conteúdo de Importação - Primo do SPED
Amigos, qual eh a finalidade da ficha de conteudo de importacao ? Quando serah usada ?
Marcos Roberto
NetService Software
NetService Software
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Ficha de Conteúdo de Importação - Primo do SPED
Amiguinho,
Quando o seu cliente efetuar uma transação comercial com outro estado na qual ele esteja comercializando/revendendo item que tenha uma composição de 41% à 100% de parte importada.
- Neste caso a aliquota da transação será de 4%.
- Deverá ser preenchida a FCI com informações de valores, percentuais, etc relativo ao item com conteúdo importado.
Cada FCI conterá um numero de controle, mas ainda não foi definido pelo fisco como obteremos tal numero.
Cada item na NF-e que possuir teor de importação terá sua respectiva FCI.
Até que seja regulamentada a forma de colocar estas informações no corpo do XML da NF-e, as informações deverão ser inclusas na tag infAdProd de cada tag det.
Se uma nota possuir 10 itens e destes 3 tenham teor importado, estes 3 itens deverão ter os dados da FCI calculados e imputados nas respectivas tags infAdProd.
Quando o seu cliente efetuar uma transação comercial com outro estado na qual ele esteja comercializando/revendendo item que tenha uma composição de 41% à 100% de parte importada.
- Neste caso a aliquota da transação será de 4%.
- Deverá ser preenchida a FCI com informações de valores, percentuais, etc relativo ao item com conteúdo importado.
Cada FCI conterá um numero de controle, mas ainda não foi definido pelo fisco como obteremos tal numero.
Cada item na NF-e que possuir teor de importação terá sua respectiva FCI.
Até que seja regulamentada a forma de colocar estas informações no corpo do XML da NF-e, as informações deverão ser inclusas na tag infAdProd de cada tag det.
Se uma nota possuir 10 itens e destes 3 tenham teor importado, estes 3 itens deverão ter os dados da FCI calculados e imputados nas respectivas tags infAdProd.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Ficha de Conteúdo de Importação - Primo do SPED
jenivan escreveu:Resolvido, era necessário utilizar função para Converter a string de origem em CP1252 ( Windows 1252 code-page ) para a codificação UTF-8 ( 8-bit Unicode Transformation Format ).
Obrigado,
Estou com o mesmo problema e gostaria de saber qual foi essa função utilizada. Se for possível com algum exemplo.
Grata,
-
marcos.gurupi
- Usuário Nível 4

- Mensagens: 939
- Registrado em: 06 Jul 2004 11:53
- Localização: Gurupi-TO
Ficha de Conteúdo de Importação - Primo do SPED
Eh isso passa a ser obrigatorio quando?
Marcos Roberto
NetService Software
NetService Software
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Ficha de Conteúdo de Importação - Primo do SPED
Amiguinho,
No inicio do post diz desde quando.
No inicio do post diz desde quando.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Ficha de Conteúdo de Importação - Primo do SPED
Bom dia Rochinha, por gentileza, você já tem isto em FiveWin?
http://fivewin.com.br/index.php?/topic/ ... tacao-fci/
Obg, abs.
http://fivewin.com.br/index.php?/topic/ ... tacao-fci/
Obg, abs.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Ficha de Conteúdo de Importação - Primo do SPED
Amiguinhos,
Com base no codigo fonte que disponibilizo é possivel gerar os .PRGs das funções de geração da FCI.
O FCI.DBF contém os registros do manual e o executável irá usá-lo para gerar os .PRGs com funções que agregadas ao seu sistema farão a geração do arquivo no layout.
Caso ocorram alterações no layout bastará acrescentar os campos novos, ou faltantes ao FCI.DBF e re-gerar os fontes.
Façam download do validador atualizado e do manual do usuário
FCI significa Ficha de Conteúdo de Importação e portanto só é necessária aos clientes que revendem ou produzem produtos que contenham material importado em seu conteúdo.
Uma Mão-na-Roda.
Com base no codigo fonte que disponibilizo é possivel gerar os .PRGs das funções de geração da FCI.
O FCI.DBF contém os registros do manual e o executável irá usá-lo para gerar os .PRGs com funções que agregadas ao seu sistema farão a geração do arquivo no layout.
Caso ocorram alterações no layout bastará acrescentar os campos novos, ou faltantes ao FCI.DBF e re-gerar os fontes.
Façam download do validador atualizado e do manual do usuário
FCI significa Ficha de Conteúdo de Importação e portanto só é necessária aos clientes que revendem ou produzem produtos que contenham material importado em seu conteúdo.
Uma Mão-na-Roda.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
