Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicoprgfin/fas/fas791ZAfas791za


Observação: A partir da release 12.1.2411.

Objetivo

Criar os documentos de entrada no módulo de Ativo Fixo do EMS 5.

Obs.: Essas informações poderão serem consultadas e manutenidas pelo programa FAS068AA - Manutenção Documento de Entrada.

Funcionamento

Na forma padrão, realiza-se a chamada através de um comando RUN normal, armazenando o programa em uma variável através do comando PERSISTENT e em seguida executando uma PROCEDURE deste programa, passando-se os parâmetros com as informações necessárias.

A sintaxe para a chamada da API é:

DEF VAR v_hdl_program AS HANDLE NO-UNDO.
RUN prgfin\fas\fas791za.py PERSISTENT SET v_hdl_program.
RUN pi_api_criacao_docto_entr IN v_hdl_program (input "ems2",
                                           

...

   input table tt_bem_invest_mga,
                                           

...

   output table tt_log_erros).
DELETE PROCEDURE v_hdl_program.

...


Parâmetros

Parâmetro

Descrição

Código Matriz Tradução Organização Externa

Neste parâmetro deverá ser informada a matriz de tradução da organização externa.

tt_bem_invest_mga

Esta temp-table conterá os registros com as informações do documento de entrada e dos itens que serão criados. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias.

tt_log_erros

Esta temp-table conterá os erros ocorridos durante as validações feitas pela API no momento da inclusão do documento de entrada. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. Não deverá ser alimentada ao chamar a API.

Observações:

- Deve ser gerada a temp-table no programa que chamará a API. Esta temp-table conterá as informações sobre os documentos de entrada e os itens do documento que serão implantados no Ativo Fixo.

...

Quando ocorrer algum erro antes da criação dos documentos de entrada e seus itens, os mesmos não serão criados.

...

Tabela Temporária

Descrição

Entrada/Saída

tt_bem_invest_mga

Conterá as informações dos documentos de entrada e seus itens.

Entrada

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

ttv_cod_empresa

integer

>>,>>>,>>9

Número de Identificação do Bem ao

character

x(3)

Código da empresa externa a ser traduzida pela matriz de tradução de unidade organizacional

qual a incorporação será vinculada

.

Sim


ttv_cdn_emit

integer

>>,>>>,>>9

>>>>>>>>9

Código numérico do fornecedor do documento fiscal
Número da sequência da incorporação do bem
.

Sim


ttv_cod_nota

ttv_cod_ser_nota

character

x(20)

Número do documento fiscal.

Sim

ttv_cod_natur_operac


ttv_cod

_estab

_ser_nota

character

x(5)

Série do documento fiscal.

Sim


ttv_

dat

cod_

aquis_bem_pat

ttv_cod_cta

natur_operac

character

x(6)

Natureza de operação do documento fiscal.

Sim

ttv_cdn_aux


ttv_cod_

origem

ttv_des_aux_5

ttv_val_aquis_bem_pat

ttv_val_aquis_fasb_bem_pat

ttv_val_aquis_fasb_bem_pat

ttv_cdn_unid_bem

ttv_cdn_org_bem

ttv_cdn_ord_manut

ttv_des_bem_pat

ttv_des_bem_pat

ttv_cod_unid_negoc

tta_num_id_ri_bem_pat

ttv_gera_bem_quant

ttv_sequencia

ttv_cod_moed_fasb

ttv_dat_fasb

4) 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

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_cod_chave_aces_docto_fisc

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


ttv_ind_gera_event_imob_item

character

x(15)

Indica se o evento de Imobilização do item do documento de entrada da Reforma Tributária (211130) deve ser gerado.

As opções disponíveis são:

  • Não Gerar

  • Gerar

  • Gerado

Não


ttv_val_aquis_bem_pat

decimal

->>,>>>,>>>,>>9.99

Valor 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_cmi_bem_pa

decimal

>>,>>>,>>>,>>9.99

Valor CMCAC do documento de entrada.

Não


ttv_val_ibs_munic

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

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


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 grupo det/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

characterx(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:

/*-- Filtro RECID x ROWID Aplicado --*/
{include/i_fncrowid.i}
def temp-table tt_bem_invest_mga no-undo
    field ttv_cod_empresa                  as char format 'x(3)' label 'Empresa Externa' column-label 'Empresa Ext Inicial'
    field ttv_cdn_emit                     as integer format '>>>>>>>>9' label 'Emitente' column-label 'Emitente'
    field ttv_cod_nota                     as character format 'x(20)'
    field ttv_cod_ser_nota                 as character format 'x(5)' label 'Série Nota' column-label 'Série Nota'
    field ttv_cod_natur_operac             as character format 'x(6)' label 'Natureza Operação' column-label 'Natureza Operação'
    field ttv_cod_estab                    as character format 'x(3)' label 'Estabelecimento' column-label 'Estabelecimento'
    field ttv_dat_aquis_bem_pat            as date format '99/99/9999' label 'Data Aquisição' column-label 'Data Aquisição'
    field ttv_cod_cta                      as character format 'x(20)'
    field ttv_cdn_aux                      as integer format '>>>,>>9'
    field ttv_cod_origem                   as character format 'x(8)' label 'Origem' column-label 'Origem'
    field ttv_des_aux_5                    as character format 'x(40)'
    field ttv_cod_chave_aces_docto_fisc    as character format 'x(60)' label "Chave Acesso NFE" column-label "Chave Acesso NFE"
    field ttv_ind_gera_event_imob_item     as character format 'x(15)' label 'Gera Event Imob Item' column-label 'Gera Event Imob Item'
    field ttv_val_aquis_bem_pat            as decimal format '->>,>>>,>>>,>>9.99' decimals 2 initial 0 label 'Aquisição Bem' column-label 'Aquisição Bem'
    field ttv_val_aquis_fasb_bem_pat       as decimal format '>>,>>>,>>>,>>9.99' decimals 2
    field ttv_val_aquis_cmi_bem_pat        as decimal format '>>,>>>,>>>,>>9.99' decimals 2
    field ttv_val_ibs_munic                as decimal format '>>>,>>>,>>>,>>9.99' decimals 2
    field ttv_val_ibs_estad                as decimal format '>>>,>>>,>>>,>>9.99' decimals 2
    field ttv_val_cbs                      as decimal format '>>>,>>>,>>>,>>9.99' decimals 2
    field ttv_num_seq_item_xml             as integer format '>>>>,>>9'
    field ttv_cod_unid_medid_item_xml      as character format 'x(12)'
    field ttv_cdn_unid_bem                 as integer format '>>>,>>9'
    field ttv_cdn_org_bem                  as integer format '>>>,>>9'
    field ttv_cdn_ord_manut                as integer format '>>>,>>9'
    field ttv_des_bem_pat                  as character format 'x(40)' label 'Descrição Bem Pat' column-label 'Descrição Bem Pat'
    field ttv_rec_id_bem_pat_2             as &IF "{&ROWID_READY}" = "YES" &THEN rowid &ELSE recid &ENDIF
    field ttv_cod_unid_negoc               as character format 'x(3)' label 'Unid Negó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_cotac_fasb               as date format '99/99/9999'
    field ttv_cod_ccusto                   as character format "x(8)" label "Centro Custo" column-label "CCusto".

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

def var v_hdl_program    as handle no-undo.

create tt_bem_invest_mga.
assign tt_bem_invest_mga.ttv_cod_empresa               = "1"
       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                  = "12345678"
       tt_bem_invest_mga.ttv_cod_natur_operac          = "6181A"
       tt_bem_invest_mga.ttv_cod_ser_nota              = "S"
       tt_bem_invest_mga.ttv_cod_chave_aces_docto_fisc = '34221001442721000333-44-001-000005418-1-17417368-1'
       tt_bem_invest_mga.ttv_ind_gera_event_imob_item  = 'Gerado'
       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_val_ibs_munic             = 12.34
       tt_bem_invest_mga.ttv_val_ibs_estad             = 24.56
       tt_bem_invest_mga.ttv_val_cbs                   = 36.78
       tt_bem_invest_mga.ttv_num_seq_item_xml          = 965
       tt_bem_invest_mga.ttv_cod_unid_medid_item_xml   = 'KG'
       tt_bem_invest_mga.ttv_des_bem_pat               = "Primeiro Bem"
       tt_bem_invest_mga.ttv_cod_cta                   = '010701010000101'.

create

...

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:

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

...

tt_bem_invest_mga.
assign tt_bem_invest_mga.ttv_cod_

...

empresa               = "1"
     

...

  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                  = "

...

12345678"
     

...

  tt_bem_invest_mga.ttv_cod_natur_

...

operac          = "6181A"
     

...

  tt_bem_invest_mga.ttv_cod_

...

ser_nota              = "S"
     

...

  tt_bem_invest_mga.ttv_cod_

...

chave_

...

aces_

...

docto_

...

fisc = '65221001442721000333-44-001-000005418-1-17417368-1'
       tt_bem_invest_mga.ttv_ind_gera_

...

event_

...

imob_

...

item  

...

= 'Gerar'
       tt_bem_invest_mga.ttv_

...

val_aquis_bem_

...

pat        

...

 = 655569.99 //VALOR DO BEM
       tt_bem_invest_mga.

...

ttv_

...

cdn_

...

unid_bem              = 34 //QUANTIDADE
       tt_bem_invest_mga.ttv_val_

...

ibs_

...

munic            

...

 = 42.34
     

...

  tt_bem_invest_mga.ttv_

...

val_

...

ibs_estad             = 54.56
       tt_bem_invest_mga.ttv_

...

val_

...

cbs                   =

...

 66.78
     

...

  tt_bem_invest_mga.ttv_

...

num_seq_item_xml          = 465
       tt_bem_invest_mga.ttv_cod_unid_

...

medid_item_xml   = 'M2'
       tt_bem_invest_mga.ttv_

...

cdn_

...

unid_bem              = 20
       tt_bem_invest_mga.ttv_

...

des_bem_pat

...

        

...

       = "Segundo Bem"
       tt_bem_invest_mga.ttv_

...

cod_cta                   = '010701010000101'.

run prgfin\fas\fas791za.py persistent set v_hdl_program.

run pi_api_criacao_docto_entr in v_hdl_program (input "ems2",
   

...

                                             input-output table tt_bem_invest_mga,
                                             

...

   output table tt_log_erros).
delete procedure v_hdl_program.

...

assign v_hdl_program = ?.

...



for each tt_log_erros no-lock:
   

...

 message "Seq.:  " tt_log_erros.ttv_num_seq skip
           

...

 "Cod. Erro: " tt_log_erros.ttv_num_cod_erro skip
           

...

 "Descrição Erro: " tt_log_erros.ttv_des_erro skip

...


           

...

 "Ajuda: " tt_log_erros.ttv_des_ajuda skip
   

...

CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Tela XXX
    1. Outras Ações / Ações relacionadas
  4. Tela XXX
    1. Principais Campos e Parâmetros
  5. Tabelas utilizadas

01. VISÃO GERAL

02. EXEMPLO DE UTILIZAÇÃO

03. TELA XXXXX

Outras Ações / Ações relacionadas

...

04. TELA XXXXX

Principais Campos e Parâmetros

...

Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaque.
TituloIMPORTANTE!

...

         view-as alert-box.
end.