Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/fas/fas715ZB |
Criar incorporações no módulo de Ativo Fixo.
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\fas715zb.py PERSISTENT SET v_hdl_program.
run pi_api_incorp_bem_pat_2 IN v_hdl_program (input table tt_integr_incorp_bem_pat,
input table tt_integr_val_origin_bem_pat,
input table tt_integr_val_resid_incorp,
output table tt_log_erros_int_inc_bem_pat,
input table tt_criacao_bem_pat_item_api).
DELETE PROCEDURE v_hdl_program.
Parâmetro | Descrição |
tt_integr_incorp_bem_pat | Esta temp-table conterá os registros de incorporações que serão criadas no Ativo Fixo. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
tt_integr_val_origin_bem_pat | Esta temp-table conterá os registros com os valores originais das incorporações que serão criadas. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
tt_criacao_bem_pat_val_resid | Esta temp-table conterá os registros sobre os valores residuais das incorporações. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
tt_log_erros_int_inc_bem_pat | Esta temp-table conterá os erros ocorridos durante as validações feitas pela API no momento da inclusão da incorporação. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. Não deverá ser alimentada ao chamar a API. |
tt_criacao_bem_pat_item_api | Esta temp-table contem os registros com os itens do documento de entrada vinculado à incorporação que está sendo criada. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
Observações:
- Devem ser geradas algumas temp-tables no programa que chamará a API. Estas temp-tables conterão as informações sobre as incorporações que serão implantados no Ativo Fixo.
A API retornará na tabela temporária tt_log_erros_int_inc_bem_pat todos os erros encontrados ou mensagens de alerta gerados durante o processo de validação dos movimentos.
Quando ocorrer algum erro antes da criação das incorporações, as mesmas não serão criadas.
Observações: Quando a API for executado por um programa externo, logo após a chamada da API, deverá ser criado um tratamento para impressão dos erros. E para a correta visualização dos erros, todos os campos desta tabela devem ser impressos.
Nos atributos das tabelas temporárias de entrada e saída:
O programa que irá executar a api_criar_bem_pat deverá conter e criar as seguintes tabelas temporárias:
1) Criação de Bem Patrimonial via API
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_incorp_bem_pat | Conterá as informações das incorporações a serem implantadas. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_num_id_bem_pat | integer | >>,>>>,>>9 | Número de Identificação do Bem ao qual a incorporação será vinculada | Sim | |
tta_num_seq_incorp_bem_pat | integer | >>,>>>,>>9 | Número da sequência da incorporação | Sim | |
tta_cod_cenar_ctbl | character | x(8) | Código do cenário contábil da incorporação | Não | |
tta_dat_incorp_bem_pat | date | 99/99/9999 | Data da Incorporação | Sim | |
tta_ind_incorp_bem_pat | character | x(20) | Tipo da incorporação | Sim | |
tta_des_incorp_bem_pat | character | x(40) | Descrição da incorporação | Sim | |
tta_cod_incent_fisc | character | x(8) | Código do do incentivo fiscal da incorporação | Não | |
tta_cod_indic_econ | character | x(8) | Moeda da incorporação | Sim | |
tta_val_incorp_bem_pat | decimal | ->>,>>>,>>>,>>9.99 | Valor da incorporação | Sim | |
tta_cod_tip_calc_reaval | character | x(8) | Tipo de cálculo de reavaliação da incorporação | Não | |
tta_val_perc_anual_dpr | decimal | >>>>9.999 | Percentual anual de depreciação | Não | |
ttv_val_perc_anual_dpr_incevda | decimal | >>>>9.9999 | Percentual anual de depreciação incentivada | Não | |
ttv_qtd_unid_vida_util | decimal | >>>>,>>>,>>9.99 | Quantidade de unidades da vida útil da incorporação | Não | |
tta_val_perc_anual_reduc_sdo | decimal | ->>,>>>,>>>,>>9.99 | Percentual anual de depreciação redução de saldo | Não | |
tta_cod_cta_pat | character | x(18) | Código da conta patrimonial | Não | |
tta_cdn_fornecedor | integer | >>>,>>>,>>9 | Número do Fornecedor | Não | |
tta_cod_pais | character | x(3) | Código do país | Não | |
tta_log_bem_imptdo | logical | Sim/Não | Bem Importado? | Não | |
tta_log_cr_pis | logical | Sim/Não | Credita PIS? | Não | |
tta_log_cr_cofins | logical | Sim/Não | Credita COFINS? | Não | |
tta_num_parc_pis_cofins | ingteger | 999 | Número de parcelas de PIS/COFINS | Não | |
tta_num_parc_desc | integer | 999 | Número de parcelas de PIS/COFINS já descontadas | Não | |
tta_val_cr_pis | decimal | >>>,>>>,>>9.99 | Valor do crédito PIS | Não | |
tta_val_cr_cofins | decimal | >>>,>>>,>>9.99 | Valor do crédito COFINS | Não | |
tta_log_cr_csll | logical | Sim/Não | Credita CSLL? | Não | |
tta_num_exerc_csll | integer | >>9 | Número do exercício CSLL | Não | |
ttv_ind_tip_operac | character | x(35) | Tipo da operação | Sim | |
ttv_rec_integr_incorp_bem_pat | recid | >>>>>>9 | Identificador interno do registro da temp-table criada | Sim | |
tta_val_base_pis | decimal | >>>,>>>,>>9.99 | Valor da base PIS | Não | |
tta_val_base_cofins | decimal | >>>,>>>,>>9.99 | Valor da base COFINS | Não |
2) Valores originais da incorporação
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_val_origin_bem_pat | Conterá os registros dos valores originais da incorporação | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_rec_integr_incorp_bem_pat | recid | >>>>>>9 | RECID do registro da temp-table tt_integr_incorp_bem_pat, referente a incorporação ao qual o valor original será vinculado | Sim | |
tta_cod_cenar_ctbl | character | x(8) | Código do cenário contábil | Sim | |
tta_cod_finalid_econ | character | x(10) | Código da finalidade econômica | Sim | |
tta_dat_calc_pat | date | 99/99/9999 | Data do valor original (normalmente igual a data da incorporação) | Sim | |
tta_val_original | decimal | ->>>>>,>>>,>>9.99 | Valor original da incorporação na finalidade informada | Sim | |
tta_dat_cotac_indic_econ | date | 99/99/9999 | Data da Cotação | Sim | |
tta_val_cotac_indic_econ | decimal | >>>>,>>9.9999999999 | Valor da cotação | Sim |
3) Valores Residuais da incorporação
Tabela Temporária | Descrição | Entrada/Saída |
tt_criacao_bem_pat_val_resid | Conterá os registros dos valores residuais da incorporação. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_rec_bem | recid | RECID do registro da temp-table tt_criacao_bem_pat_api_5, referente ao bem ao qual o item será vinculado | Sim | ||
tta_cod_tip_calc | character | x(7) | Código do tipo de cálculo | Sim | |
tta_cod_cenar_ctbl | character | x(8) | Código do cenário contábil | Sim | |
tta_cod_finalid_econ | character | X(10) | Código da finalidade econômica | Sim | |
tta_val_resid_min | decimal | >>>>,>>>,>>>,>>9.99 | Valor residual mínimo | Sim |
4) Tabela de erros
Tabela Temporária | Descrição | Entrada/Saída |
tt_log_erros_int_inc_bem_pat | Conterá as informações dos movimentos que não foram importados com a respectiva mensagem de erro. | Saída |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_rec_integr_incorp_bem_pat | recid | x(3) | Unid Organ Externa | ||
ttv_num_erro | integer | x(18) | número do erro | ||
ttv_des_msg_erro | character | x(60) | Mensagem de erro | ||
tta_des_msg_ajuda | character | x(40) | Mensagem de ajuda |
5) Itens de Documento de Entrada vinculados a incorporação
Tabela Temporária | Descrição | Entrada/Saída |
tt_criacao_bem_pat_item_api | Conterá os registros dos itens das notas fiscais que serão vinculados a incorporação. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
ttv_rec_bem | recid | >>>>>>9 | RECID do registro da temp-table tt_integr_incorp_bem_pat, referente a incorporação ao qual o item será vinculado | Sim | |
tta_cdn_fornecedor | integer | >>>,>>>,>>9 | Código do fornecedor | Sim | |
tta_cod_docto_entr | character | x(8) | Código da nota fiscal | Sim | |
tta_cod_ser_nota | character | X(3) | Série da nota fiscal | Não | |
tta_num_item_docto_entr | integer | >>>,>>9 | Número do item da nota fiscal | Sim | |
tta_qtd_item_docto_entr | Decimal | >>>>>>>>9 | Quantidade do item vinculado a incorporação | Sim |
Leitura e Criação dos Registros
Exemplo do programa para criação dos registros nas temp-tables com os bens a serem implantados:
DEF temp-table tt_integr_incorp_bem_pat no-undo
field tta_num_id_bem_pat as integer format ">>,>>>,>>9" initial 0 label "Identificação Bem" column-label "Identificação Bem"
field tta_num_seq_incorp_bem_pat as integer format ">>,>>>>,>>9" initial 0 label "Sequência Incorp" column-label "Sequência Incorp"
field tta_cod_cenar_ctbl as character format "x(8)" label "Cenário Contábil" column-label "Cenário Contábil"
field tta_dat_incorp_bem_pat as date format "99/99/9999" initial today label "Data Incorporação" column-label "Data Incorporação"
field tta_ind_incorp_bem_pat as character format "x(20)" initial "Reavaliação" label "Tipo Incorporação" column-label "Tipo Incorporação"
field tta_des_incorp_bem_pat as character format "x(40)" label "Descrição Incorp" column-label "Descrição Incorp"
field tta_cod_incent_fisc as character format "x(8)" label "Incentivo Fiscal" column-label "Incentivo Fiscal"
field tta_cod_indic_econ as character format "x(8)" label "Moeda" column-label "Moeda"
field tta_val_incorp_bem_pat as decimal format "->>,>>>,>>>,>>9.99" decimals 4 initial 0 label "Valor Incorporação" column-label "Valor Incorporação"
field tta_cod_tip_calc_reaval as character format "x(8)" label "Tipo Cálculo Reaval" column-label "Tipo Cálculo Reaval"
field tta_val_perc_anual_dpr as decimal format ">>>>9.999" decimals 3 initial 0 label "Percentual Anual" column-label "Perc Ano Dpr"
field tta_val_perc_anual_dpr_incevda as decimal format ">>>>9.9999" decimals 4 initial 0 label "Perc Anual Dpr Incen" column-label "Perc Anual Dpr Incen"
field tta_qtd_unid_vida_util as decimal format ">>>>,>>>,>>9.99" decimals 2 initial 0 label "Vida Útil (Unidades)" column-label "Unid Vida Útil"
field tta_val_perc_anual_reduc_sdo as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Perc Redução Saldo" column-label "Perc Redução Saldo"
field tta_cod_cta_pat as character format "x(18)" label "Conta Patrimonial" column-label "Conta Patrimonial"
field tta_cdn_fornecedor as Integer format ">>>,>>>,>>9" initial 0 label "Fornecedor" column-label "Fornecedor"
field tta_cod_pais as character format "x(3)" label "País" column-label "País"
field tta_log_bem_imptdo as logical format "Sim/Não" initial no label "Bem Importado" column-label "Bem Importado"
field tta_log_cr_pis as logical format "Sim/Não" initial no label "Credita PIS" column-label "Credita PIS"
field tta_log_cr_cofins as logical format "Sim/Não" initial no label "Credita COFINS" column-label "Credita COFINS"
field tta_num_parc_pis_cofins as integer format "999" initial 0 label "Nr Parcelas" column-label "Nr Parcelas"
field tta_num_parc_desc as integer format "999" initial 0 label "Parc Descontadas" column-label "Parc Descontadas"
field tta_val_cr_pis as decimal format ">>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Cred PIS/PASEP" column-label "Vl Cred PIS/PASEP"
field tta_val_cr_cofins as decimal format ">>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Crédito COFINS" column-label "Credito COFINS"
field tta_log_cr_csll as logical format "Sim/Não" initial no label "Credita CSLL" column-label "Credita CSLL"
field tta_num_exerc_cr_csll as integer format ">>9" initial 0 label "Exercicios Créd CSLL" column-label "Exer Cr CSLL"
field tta_ind_tip_operac as character format "X(35)" initial "Nota de Débito" label "Tipo Operação" column-label "Tipo Operação"
field ttv_rec_integr_incorp_bem_pat as recid format ">>>>>>9"
field tta_val_base_pis as decimal format ">>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Base PIS/PASEP" column-label "Vl Base PIS/PASEP"
field tta_val_base_cofins as decimal format ">>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Base COFINS" column-label "Base COFINS"
.
def temp-table tt_integr_val_origin_bem_pat no-undo
field ttv_rec_integr_incorp_bem_pat as recid format ">>>>>>9"
field tta_cod_cenar_ctbl as character format "x(8)" label "Cenário Contábil" column-label "Cenário Contábil"
field tta_cod_finalid_econ as character format "x(10)" label "Finalidade" column-label "Finalidade"
field tta_dat_calc_pat as date format "99/99/9999" initial today label "Data Cálculo" column-label "Data Cálculo"
field tta_val_original as decimal format "->>>>>,>>>,>>9.99" decimals 4 initial 0 label "Valor Original" column-label "Valor Original"
field tta_dat_cotac_indic_econ as date format "99/99/9999" initial ? label "Data Cotação" column-label "Data Cotação"
field tta_val_cotac_indic_econ as decimal format ">>>>,>>9.9999999999" decimals 10 initial 0 label "Cotação" column-label "Cotação"
.
def temp-table tt_integr_val_resid_incorp no-undo
field tta_num_id_bem_pat as integer format ">>,>>>,>>9" initial 0 label "Identificação Bem" column-label "Identificação Bem"
field tta_num_seq_incorp_bem_pat as integer format ">>,>>>>,>>9" initial 0 label "Sequência Incorp" column-label "Sequência Incorp"
field tta_cod_tip_calc as character format "x(7)" label "Tipo Cálculo" column-label "Tipo Cálculo"
field tta_cod_cenar_ctbl as character format "x(8)" label "Cenário Contábil" column-label "Cenário Contábil"
field tta_cod_finalid_econ as character format "x(10)" label "Finalidade" column-label "Finalidade"
field tta_val_resid_min as decimal format "->>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Residual Mínimo" column-label "Residual"
index tt_id is primary unique
tta_num_id_bem_pat ascending
tta_num_seq_incorp_bem_pat ascending
tta_cod_tip_calc ascending
tta_cod_cenar_ctbl ascending
tta_cod_finalid_econ ascending
.
def temp-table tt_log_erros_int_inc_bem_pat no-undo
field ttv_rec_integr_incorp_bem_pat as recid format ">>>>>>9"
field ttv_num_erro as integer format ">>>>,>>9"
field ttv_des_msg_erro as character format "x(60)" label "Mensagem Erro" column-label "Inconsistência"
field ttv_des_msg_ajuda as character format "x(40)" label "Mensagem Ajuda" column-label "Mensagem Ajuda"
.
def temp-table tt_criacao_bem_pat_item_api no-undo
field ttv_rec_bem as recid format ">>>>>>9"
field tta_cdn_fornecedor as Integer format ">>>,>>>,>>9" initial 0 label "Fornecedor" column-label "Fornecedor"
field tta_cod_docto_entr as character format "x(8)" label "Docto Entrada" column-label "Docto Entrada"
field tta_cod_ser_nota as character format "x(5)" label "Série Nota" column-label "Série Nota"
field tta_num_item_docto_entr as integer format ">>>,>>9" initial 0 label "Numero Item" column-label "Num Item"
field tta_qtd_item_docto_entr as decimal format ">>>>>>>>9" initial 0 label "Qtde Item Docto" column-label "Qtde Item Docto"
index tt_id is primary unique
ttv_rec_bem ascending
tta_cdn_fornecedor ascending
tta_cod_docto_entr ascending
tta_cod_ser_nota ascending
tta_num_item_docto_entr ascending
.
FIND bem_pat EXCLUSIVE-LOCK
WHERE bem_pat.cod_empresa = '10'
AND bem_pat.cod_cta_pat = '034'
AND bem_pat.num_bem_pat = 221215
AND bem_pat.num_seq_bem_pat = 1 NO-ERROR.
ASSIGN bem_pat.cod_estab = '1'.
create tt_integr_incorp_bem_pat.
assign tt_integr_incorp_bem_pat.tta_num_id_bem_pat = bem_pat.num_id_bem_pat
tt_integr_incorp_bem_pat.tta_num_seq_incorp_bem_pat = 1
tt_integr_incorp_bem_pat.tta_cod_cenar_ctbl = 'fiscal'
tt_integr_incorp_bem_pat.tta_dat_incorp_bem_pat = 01/15/22
tt_integr_incorp_bem_pat.tta_ind_incorp_bem_pat = "Adição" /*l_adicao*/
tt_integr_incorp_bem_pat.tta_des_incorp_bem_pat = 'teste api'
tt_integr_incorp_bem_pat.tta_cod_indic_econ = "REAL"
tt_integr_incorp_bem_pat.tta_val_incorp_bem_pat = 200
tt_integr_incorp_bem_pat.tta_val_perc_anual_dpr = 20
tt_integr_incorp_bem_pat.tta_ind_tip_operac = "Inclusão" /*l_inclusao*/
tt_integr_incorp_bem_pat.tta_cdn_fornecedor = 1
tt_integr_incorp_bem_pat.tta_cod_pais = 'BRA'
tt_integr_incorp_bem_pat.tta_log_bem_imptdo = NO
tt_integr_incorp_bem_pat.tta_log_cr_pis = YES
tt_integr_incorp_bem_pat.tta_log_cr_cofins = YES
tt_integr_incorp_bem_pat.tta_num_parc_pis_cofins = 48
tt_integr_incorp_bem_pat.tta_num_parc_desc = 0
tt_integr_incorp_bem_pat.tta_val_cr_pis = 100
tt_integr_incorp_bem_pat.tta_val_cr_cofins = 760
tt_integr_incorp_bem_pat.tta_log_cr_csll = NO
tt_integr_incorp_bem_pat.tta_num_exerc_cr_csll = 0
tt_integr_incorp_bem_pat.tta_val_base_pis = 1000
tt_integr_incorp_bem_pat.tta_val_base_cofins = 1000
tt_integr_incorp_bem_pat.ttv_rec_integr_incorp_bem_pat = recid(tt_integr_incorp_bem_pat).
create tt_integr_val_origin_bem_pat.
assign tt_integr_val_origin_bem_pat.ttv_rec_integr_incorp_bem_pat = recid(tt_integr_incorp_bem_pat)
tt_integr_val_origin_bem_pat.tta_cod_cenar_ctbl = tt_integr_incorp_bem_pat.tta_cod_cenar_ctbl
tt_integr_val_origin_bem_pat.tta_cod_finalid_econ = "Corrente"
tt_integr_val_origin_bem_pat.tta_dat_calc_pat = 01/15/22
tt_integr_val_origin_bem_pat.tta_val_original = 500
tt_integr_val_origin_bem_pat.tta_dat_cotac_indic_econ = 01/15/22
tt_integr_val_origin_bem_pat.tta_val_cotac_indic_econ = 1.
CREATE tt_criacao_bem_pat_item_api.
ASSIGN tt_criacao_bem_pat_item_api.ttv_rec_bem = tt_integr_val_origin_bem_pat.ttv_rec_integr_incorp_bem_pat
tt_criacao_bem_pat_item_api.tta_cdn_fornecedor = 1
tt_criacao_bem_pat_item_api.tta_cod_docto_entr = "151222"
tt_criacao_bem_pat_item_api.tta_cod_ser_nota = "1"
tt_criacao_bem_pat_item_api.tta_num_item_docto_entr = 20
tt_criacao_bem_pat_item_api.tta_qtd_item_docto_entr = 10.
DEF VAR v_hdl_program AS HANDLE NO-UNDO.
run prgfin\fas\fas715zb.py PERSISTENT SET v_hdl_program.
run pi_api_incorp_bem_pat_2 IN v_hdl_program (input table tt_integr_incorp_bem_pat,
input table tt_integr_val_origin_bem_pat,
input table tt_integr_val_resid_incorp,
output table tt_log_erros_int_inc_bem_pat,
INPUT TABLE tt_criacao_bem_pat_item_api).
FOR EACH tt_log_erros_int_inc_bem_pat:
MESSAGE tt_log_erros_int_inc_bem_pat.ttv_des_msg_ajuda VIEW-AS ALERT-BOX.
END.
delete object v_hdl_program.
assign v_hdl_program = ?.