Histórico da Página
...
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução | |||||||||
ttv_cod_empresa | character | x(3) | Código da empresa externa a ser traduzida pela matriz de tradução de unidade organizacional. | Sim | ||||||||||
ttv_cdn_emit | integer | >>>>>>>>9 | Código numérico do fornecedor do documento fiscal. | Sim | ||||||||||
ttv_cod_nota | character | x(20) | Número do documento fiscal. | Sim | ||||||||||
ttv_cod_ser_nota | character | x(5) | Série do documento fiscal. | Sim | ||||||||||
ttv_cod_natur_operac | character | x(6) | Natureza de operação do documento fiscal. | Sim | ||||||||||
ttv_cod_estab | character | x(3) | Código do estabelecimento externo a ser traduzido pela matriz de tradução de unidade organizacional. | Sim | ||||||||||
ttv_dat_aquis_bem_pat | date | 99/99/9999 | Data de emissão do documento de entrada do qual é extraído um item de um lançamento contábil. | Sim | ||||||||||
ttv_cod_cta | character | x(20) | Código do centro de custo. | Não | ||||||||||
ttv_cdn_aux | integer | >>>,>>9 | Código do centro de custo externo a ser traduzido pela matriz de tradução de centros de custo. | Não | ||||||||||
ttv_cod_origem | character | x(8) | Código da origem do documento de entrada. | Não | ||||||||||
ttv_des_aux_5 | character | x(40) | Narrativa do item do documento de entrada. | Não | ttv_val_aquis_bem_pat | decimal | ->>,>>>,>>>,>>9.99 | |||||||
character | x(60) | Chave de acesso da Nota Fiscal Eletrônica (NF-e) ou do Documento Fiscal correspondente, que será utilizada para a geração dos eventos relativos à CBS e ao IBS no sistema da NF-e. | Não | |||||||||||
character | x(60) | chave de acesso da Nota Fiscal Eletrônica (NF-e) ou do Documento Fiscal correspondente, que será utilizada para a geração dos eventos relativos à CBS e ao IBS no sistema da NF-eValor do documento de entrada. | Não | |||||||||||
ttv_val_aquis_fasb_bem_pat | decimal | ->>,>>>,>>>,>>9.99 | Valor FASB do documento de entrada. | Não | ||||||||||
ttv_val_aquis_cmifasb_bem_papat | decimal | >>,>>>,>>>,>>9.99 | Valor CMCAC FASB do documento de entrada. | Não | ||||||||||
ttv_val_ibs_municaquis_cmi_bem_pa | decimal | >>,>>>,>>>,>>9.99 | Valor CMCAC do documento de entrada. | Não | ||||||||||
ttv_val_ibs_munic | decimal | decimal | >>>,>>>,>>>,>>>,>>9.99 | Valor do IBS - Imposto sobre Bens e Serviços municipal no documento fiscal de entrada sempre que a operação envolver incidência desse tributo. | Não | |||||||||
ttv_val_ibs_estad | decimal | >>>,>>>,>>>,>>9.99 | Valor do IBS - Imposto sobre Bens e Serviços estadual no documento fiscal de entrada sempre que a operação envolver incidência desse tributo. | Não | ||||||||||
ttv_val_cbs | decimal | >>>,>>>,>>>,>>9.99 | Valor da CBS - Contribuição sobre Bens e Serviços do documento fiscal de entrada sempre que a operação envolver incidência desse tributo. | Não | ||||||||||
ttv_recnum_idseq_bemitem_pat_2 | recid/roiwd | Recid ou Rowid, caso já tenha liberação da função | Não | xml | integer | >>>>,>>9 | Número da sequência do item no XML do documento fiscal de entrada. | Não | ||||||
ttv_cod_unid_medid_item_xml | character | x(12) | Unidade de medida do item no XML do documento fiscal de entrada. | Não | ||||||||||
ttv_rec_id_bem_pat_2 | recid/roiwd | Recid ou Rowid, caso já tenha liberação da função | Não | |||||||||||
ttv_cdn_unid_bem | integer | >>>,>>9 | Quantidade do item do documento de entrada. | Sim | ||||||||||
ttv_cdn_org_bem | integer | >>>,>>9 | Número da ordem de investimentos do documento de entrada. | ttv_cdn_unid_bem | integer | >>>,>>9 | Quantidade do item do documento de entrada | Sim | ttv_cdn_org_bem | integer | >>>,>>9 | Número da ordem de investimentos | Não | |
ttv_cdn_ord_manut | integer | >>>,>>9 | Número da ordem de manutenção do documento de entrada. | Não | ||||||||||
ttv_des_bem_pat | character | x(40) | Descrição do item do documento de entrada | Sim | ||||||||||
ttv_cod_unid_negoc | character | x(3) | Código da unidade de negócio. | Não | ||||||||||
tta_num_id_ri_bem_pat | integer | >>>,>>>,>>9 | Número de identificação do bem patrimonial. | Não | ||||||||||
ttv_gera_bem_quant | logical | yes/no | Indicador de geração de bens por quantidade. | Não | ||||||||||
ttv_sequencia | integer | >>9 | Número sequencial do item do documento fiscal. | Não | ||||||||||
ttv_cod_moed_fasb | character | x(8) | Código da moeda FASB. | Não | ||||||||||
ttv_dat_fasb | date | 99/99/9999 | Data de cotação da moeda FASB. | Não | ||||||||||
ttv_cod_ccusto | character | X(8) | Centro de Custo ems5 | Sim |
2) Tabela de erros
...
Tabela Temporária
...
Descrição
...
Entrada/Saída
...
tt_log_erros
...
Conterá as informações das mensagem de erro ocorridas na criação do documento de entrada.
...
Saída
...
Atributo
...
Tipo
...
Formato
...
Descrição
...
Obrigatório
...
Evolução
Importante: Com a implantação da Reforma Tributária do Consumo, instituída pela Emenda Constitucional nº 132/2023 e regulamentada pela Lei Complementar nº 214/2025, a apropriação de créditos da CBS - Contribuição sobre Bens e Serviços e do IBS - Imposto sobre Bens e Serviços passa a exigir o correto preenchimento das informações no documento fiscal de entrada.
Isso significa que, sempre que houver a intenção de se apropriar créditos desses tributos, será obrigatória a existência de um documento fiscal de entrada vinculado ao bem patrimonial.
Além disso, para garantir a consistência fiscal e a rastreabilidade dos itens, torna-se obrigatório o preenchimento dos seguintes campos no XML do documento fiscal:
Sequência do item – tag
nItem, que identifica a posição do item na nota;Unidade de medida do item – tag
uCom(no grupodet/prod), que especifica a unidade de comercialização utilizada.
O preenchimento correto desses campos é essencial para o cumprimento das novas regras de validação estabelecidas pelas Notas Técnicas aplicáveis aos Documentos Fiscais Eletrônicos (NF-e, NFC-e, CT-e, MDF-e, NFCom, NFS-e), conforme os layouts padronizados disponíveis nos respectivos portais autorizadores.
Em decorrência dessa exigência, os seguintes campos foram incluídos na API:
ttv_cod_chave_aces_docto_fisc – Chave de Acesso do Documento Fiscal
ttv_val_ibs_munic – Valor do IBS Municipal
ttv_val_ibs_estad – Valor do IBS Estadual
ttv_val_cbs – Valor da CBS
ttv_num_seq_item_xml – Sequência do Item no XML
ttv_cod_unid_medid_item_xml – Unidade de Medida do Item no XML
2) Tabela de erros
Tabela Temporária | Descrição | Entrada/Saída |
tt_log_erros | Conterá as informações das mensagem de erro ocorridas na criação do documento de entrada. | Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_num_seq | integer | >>>,>>9 | Número sequencial. | ||
ttv_num_cod_erro | integer | >>>>,>>9 | Número do erro. | ||
ttv_des_erro | character | x(50) | Mensagem de erro. | ||
ttv_des_ajuda | character | x(50) | Mensagem de ajuda referente ao erro. |
Execução
Leitura e Criação dos Registros
Exemplo do programa para criação dos registros nas temp-tables com os documentos de entrada a serem implantados utilizando o ROWID:
{include/i_fncrowid.i}
def temp-table tt_log_erros no-undo
field ttv_num_seq as integer format ">>>,>>9" label "Seqüência" column-label "Seq"
field ttv_num_cod_erro as integer format ">>>>,>>9" label "Número" column-label "Número"
field ttv_des_erro as character format "x(50)" label "Inconsistência" column-label "Inconsistência"
field ttv_des_ajuda as character format "x(50)" label "Ajuda" column-label "Ajuda"
index tt_id
...
ttv_num_seq
...
integer
...
>>>,>>9
...
Número sequencial.
...
ttv_num_cod_erro
...
integer
...
>>>>,>>9
...
Número do erro.
...
ttv_des_erro
...
Mensagem de erro.
...
ttv_des_ajuda
...
character
...
x(50)
...
Mensagem de ajuda referente ao erro.
Execução
Leitura e Criação dos Registros
Exemplo do programa para criação dos registros nas temp-tables com os documentos de entrada a serem implantados:
{include/i_fncrowid.i}
def temp-table tt_log_erros no-undo
field ttv_num_seq as integer format ">>>,>>9" label "Seqüência" column-label "Seq"
field ascending
ttv_num_cod_erro as integer format ">>>>,>>9" label "Número" column-label "Número" ascending.
def temp-table tt_bem_invest_mga no-undo
field ttv_descod_erro empresa as character format " as char format 'x(503)" label "Inconsistência" ' label 'Empresa Externa' column-label "Inconsistência"'Empresa Ext Inicial'
field ttv_descdn_ajuda emit as character format "x(50)" label "Ajuda" column-label "Ajuda"
index tt_id as integer format '>>>>>>>>9' label 'Emitente' column-label 'Emitente'
field ttv_cod_nota as character format 'x(20)'
field ttv_cod_numser_seq nota ascendingas character format 'x(5)' label 'Série Nota' column-label 'Série Nota'
field ttv_numcod_codnatur_erro operac ascending.as character format 'x(6)' label 'Natureza Operação' column-label 'Natureza Operação'def temp-table tt_bem_invest_mga no-undo
field ttv_cod_empresa estab as char character format 'x(3)' label 'Empresa ExternaEstabelecimento' column-label 'Empresa Ext InicialEstabelecimento'
field ttv_dat_aquis_cdn_emit bem_pat as Integer as date format '>>>>>>>>999/99/9999' label 'EmitenteData Aquisição' column-label 'EmitenteData Aquisição'
field ttv_cod_nota cta as as character format 'x(20)'
field ttv_cod_ser_nota cdn_aux as character format 'x(5)' label 'S?rie Nota' column-label 'S?rie Nota' as integer format '>>>,>>9'
field ttv_cod_natur_operac origem as character format 'x(68)' label 'Natureza Opera??oOrigem' column-label 'Natureza Opera??oOrigem'
field ttv_des_codaux_estab 5 as character format 'x(340)' label 'Estabelecimento' column-label 'Estabelecimento'
field ttv_cod_chave_aces_docto_fisc as character format 'x(60)'
field ttv_datval_aquis_bem_pat as date decimal format '99/99/9999' label 'Data Aquisi??o->>,>>>,>>>,>>9.99' decimals 2 initial 0 label 'Aquisição Bem' column-label 'Data Aquisi??oAquisição Bem'
field ttv_cod_cta _val_aquis_fasb_bem_pat as character format 'x(20)'as decimal format '>>,>>>,>>>,>>9.99' decimals 2
field ttv_cdn_aux _val_aquis_cmi_bem_pat as Integer decimal format '>>,>>>,>>>,>>9.99' decimals 2
field ttv_val_codibs_origem munic as character format 'x(8)' label 'Origem' column-label 'Origem' as decimal format '>>>,>>>,>>>,>>9.99' decimals 2
field ttv_desval_auxibs_5 estad as character decimal format 'x(40)'>>>,>>>,>>>,>>9.99' decimals 2
field ttv_val_aquis_bem_pat cbs as decimal format '->>>>>,>>>,>>>,>>9.99' decimals 2 initial 0 label 'Aquisi??o Bem' column-label 'Aquisi??o Bem'
field ttv_valnum_aquis_fasbseq_bem_pat item_xml as decimal integer format '>>,>>>,>>>>>>>,>>9.99' decimals 2
field ttv_valcod_aquisunid_cmimedid_bemitem_pat xml as decimal character format '>>,>>>,>>>,>>9.99' decimals 2x(12)'
field ttv_cdn_unid_bem as Integer integer format '>>>,>>9'
field ttv_cdn_org_bem as Integer integer format '>>>,>>9'
field ttv_cdn_ord_manut as Integer integer format '>>>,>>9'
field ttv_des_bem_pat as character format 'x(40)' label 'Descri??o Descrição Bem Pat' column-label 'Descri??o Descrição Bem Pat'
field ttv_rec_id_bem_pat_2 as &IF "{&ROWID_READY}" = "YES" &THEN rowid &ELSE recid format '>>>>>>9' &ENDIF
field ttv_cod_unid_negoc as character format 'x(3)' label 'Unid Neg?cioNegócio' column-label 'Un Neg'
field tta_num_id_ri_bem_pat as integer format '>>>,>>>,>>9' initial 1 label 'Identific Bem MRI' column-label 'ID Bem MRI'
field ttv_gera_bem_quant as logical initial no label "Gerar Bem por Quantidade" column-label "Gerar Bem por Quantidade"
field ttv_sequencia as integer format '>>9' initial 0 label 'Sequencia' column-label 'Seq'
field ttv_cod_moed_fasb AS character format 'x(8)'
field ttv_dat_fasb AS as date format '99/99/9999'
field ttv_cod_ccusto AS as character format '"x(8)'
" label "Centro Custo" column-label "CCusto".
def var v_handle as handle no-undo.
create tt_bem_invest_mga.
assign tt_bem_invest_mga.ttv_cod_empresa = "10"
tt_bem_invest_mga.ttv_cod_estab = "1"
tt_bem_invest_mga.ttv_dat_aquis_bem_pat = today
tt_bem_invest_mga.ttv_cdn_emit = 1
tt_bem_invest_mga.ttv_cod_nota = "04062024"
tt_bem_invest_mga.ttv_cod_natur_operac = "6181A"
tt_bem_invest_mga.ttv_cod_ser_nota = "S"
tt_bem_invest_mga.ttv_val_aquis_bem_pat = 129.99 //VALOR DO BEM
tt_bem_invest_mga.ttv_cdn_unid_bem = 5 //QUANTIDADE
tt_bem_invest_mga.ttv_des_bem_pat = "Primeiro Bem"
tt_bem_invest_mga.ttv_cod_cta = '010701020000102'
tt_bem_invest_mga.ttv_cod_ccusto = '010702030000203'.
create tt_bem_invest_mga.
assign tt_bem_invest_mga.ttv_cod_empresa = "10"
tt_bem_invest_mga.ttv_cod_estab = "1"
tt_bem_invest_mga.ttv_dat_aquis_bem_pat = today
tt_bem_invest_mga.ttv_cdn_emit = 5
tt_bem_invest_mga.ttv_cod_nota = "04062024"
tt_bem_invest_mga.ttv_cod_natur_operac = "6181A"
tt_bem_invest_mga.ttv_cod_ser_nota = "S"
tt_bem_invest_mga.ttv_val_aquis_bem_pat = 1.99
tt_bem_invest_mga.ttv_cdn_unid_bem = 20
tt_bem_invest_mga.ttv_des_bem_pat = "Segundo Bem".
run prgfin\fas\fas791za.py persistent set v_hdl_program.
...