Histórico da Página
...
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/fas/fas795za |
...
Observação: A partir da release 12.1.2503.
Objetivo
Excluir os movimentos
...
gerados tanto pelo módulo do Ativo Fixo quanto pelas notas fiscais de venda de ativos/imobilizados.
...
Quando houver integração entre o Faturamento e o Ativo, os movimentos de baixa serão gerados após a atualização da nota fiscal de venda de ativos, onde os bens patrimoniais que estão relacionadas a nota fiscal sofreram
...
a baixa por venda
...
. Esse relacionamento entre nota fiscal e bem patrimonial
...
será armazenado na tabela bem_docto_faturam, caso ocorra a desatualização da nota fiscal, a baixa de venda deverá ser excluída também no modulo de ativo fixo.
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.
...
DEF VAR v_hdl_program AS HANDLE NO-UNDO.
RUN prgfin\fas\fas795za.py PERSISTENT SET v_hdl_program.
RUN pi_main_code_exc_movto_pat IN v_hdl_program (INPUT TABLE tt_exc_movto_pat,
INPUT TABLE tt_nota_fisc_vda,
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_exc_movto_pat | Esta temp | tt_bem_invest_mga | Esta temp-table conterá os registros com as informações do documento de entrada e dos itens que serão criadosdos bens patrimoniais do módulo de ativo fixo, os quais foram gerados pelas vendas de ativos/imobilizados efetuada pelo módulo da faturamento. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias. |
tt_nota_logfisc_errosvda | Esta temp-table conterá os erros ocorridos durante as validações feitas pela API no momento da inclusão do documento de entradaregistros com as informações dos itens da nota fiscal de venda de ativos/imobilizados efetuada pelo módulo da faturamento. 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:
tt_log_erros | Esta temp-table conterá os erros ocorridos durante as validações feitas pela API no momento da exclusão dos movimentos de baixas gerados pelas notas fiscais de venda de ativos/imobilizados. 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 - 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.
Retorno
A API retornará na tabela temporária tt_log_erros que conterá todos os erros encontrados ou mensagens de alerta gerados durante o processo de validação dos documentos.
...
Observações: Quando a API for executada 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.
Tabelas Temporárias
Nos atributos das tabelas temporárias de entrada e saída, o programa o programa que irá executar a api_docto_entr deverá a pi_main_code_exc_movto_pat deverá conter e criar as seguintes tabelas temporárias:
1) Criação de Documentos de entrada e itens do documento de entradaTabela de informações dos bens patrimoniais do módulo de ativo fixo - Módulo FAS
Tabela Temporária | Descrição | Entrada/Saída |
tt_bemexc_investmovto_mgapat | Conterá as informações dos documentos de entrada e seus itensbens patrimoniais do módulo de ativo fixo, os quais foram gerados pelas vendas de ativos/imobilizados efetuada pelo módulo da faturamento. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_empresa | character | x(3) | Código da empresa externa a ser traduzida pela matriz de tradução de unidade organizacional. | Sim |
tta_ |
integer
>>>>>>>>9
Sim
cod_cta_pat | character | x( |
18) | Código da conta patrimonial na qual o bem patrimonial está associado, conforme cadastro no FAS011AA/FAS214AA/FAS329AA - Conta Patrimonial |
. | Sim |
tta_ |
num_ |
bem_ |
pat |
character
x(5)
Sim
ttv_cod_natur_operac
character
x(6)
Sim
integer | >>>>>>>>9 | Número/código de identificação do bem patrimonial, conforme cadastro no FAS701AA/FAS211AA - Aquisição de Bens Patrimoniais. | Sim | ||
tta_num_seq_bem_pat | integer | >>>>9 | Número de sequência de identificação do bem patrimonial. | Sim | |
tta_num_seq_movto_bem_pat | integer | >>>>>>,>>9 | Número de sequência do movimento de baixa do bem patrimonial. | Sim | |
tta_dat_movto |
ttv_cod_estab
character
x(3)
Sim
_bem_pat | date |
99/99/9999 | Data da movimentação de |
baixa do |
bem patrimonial. | Sim |
tta_ind_ |
orig_ |
movto | character | x( |
8) |
ttv_cdn_aux
integer
>>>,>>9
ttv_cod_origem
character
x(8)
ttv_des_aux_5
character
x(40)
ttv_val_aquis_bem_pat
decimal
->>,>>>,>>>,>>9.99
ttv_val_aquis_fasb_bem_pat
decimal
>>,>>>,>>>,>>9.99
ttv_val_aquis_cmi_bem_pa
decimal
>>,>>>,>>>,>>9.99
ttv_cdn_unid_bem
integer
>>>,>>9
Sim
ttv_cdn_org_bem
integer
>>>,>>9
ttv_cdn_ord_manut
integer
>>>,>>9
ttv_des_bem_pat
character
x(40)
Sim
ttv_cod_unid_negoc
character
x(3)
tta_num_id_ri_bem_pat
integer
>>>,>>>,>>9
ttv_gera_bem_quant
logical
yes/no
ttv_sequencia
integer
>>9
ttv_cod_moed_fasb
character
x(8)
ttv_dat_fasb
date
99/99/9999
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
Indicador de origem de movimento. As opções disponíveis são:
| Sim |
2) Tabela de itens da nota fiscal de venda de ativos/imobilizados - Módulo FT
Tabela Temporária | Descrição | Entrada/Saída |
tt_exc_movto_pat | Conterá as informações dos itens da nota fiscal de venda de ativos/imobilizados efetuada pelo módulo da faturamento. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrigatório | Evolução |
tta_cod_estab_nf | character | x(5) | Código do estabelecimento da nota fiscal do módulo de Faturamento, conforme cadastro no UTB071AA/UFN206AA/UTB317AA - Estabelecimento. | Sim | |
tta_cod_ser_nf | character | x(5) | Série da nota fiscal do módulo de Faturamento. | Sim | |
tta_cod_nota_fisc | character | x(10) | Número da nota fiscal do módulo de Faturamento. | Sim | |
tta_num_seq_item | integer | >>>>9 | Número de sequência do item da nota fiscal do módulo de Faturamento. | Sim | |
tta_cod_item_nf | character | x(16) | Código do item da nota fiscal do módulo de Faturamento. | Sim |
3) 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:
def temp-table tt_exc_movto_pat no-undo
field tta_cod_empresa as character format "x(3)" label "Empresa" column-label "Empresa"
field tta_cod_cta_pat as character format "x(18)" label "Conta Patrimonial" column-label "Conta Patrimonial"
field tta_num_bem_pat as integer format ">>>>>>>>9" initial 0 label "Bem Patrimonial" column-label "Bem"
field tta_num_seq_bem_pat as integer format ">>>>9" initial 0 label "Sequência Bem" column-label "Sequência"
field tta_num_seq_movto_bem_pat as integer format ">>>>>>,>>9" initial 0 label "Sequência Movto" column-label "Sequência Movto"
field tta_dat_movto_bem_pat as date format "99/99/9999" initial today label "Data Movimento" column-label "Data Movimento"
field tta_ind_orig_movto as character format "X(08)" label "Origem Movimento" column-label "Origem Movimento"
index tt_id_bem is primary unique
tta_cod_empresa ascending
tta_cod_cta_pat ascending
tta_num_bem_pat ascending
tta_num_seq_bem_pat ascending
tta_num_seq_movto_bem_pat ascending
.
def temp-table tt_log_erros no-undo
field ttv_num_seq
...
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
...
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 integer format "x(50)>>>,>>9" label "AjudaSequência" column-label "AjudaSeq"
index tt_id
field ttv_num_cod_seq erro ascending
as integer format ">>>>,>>9" label "Número" column-label "Número"
field ttv_des_erro ttv_num_cod_erro ascending.def temp-table tt_bem_invest_mga no-undoas character format "x(50)" label "Inconsistência" column-label "Inconsistência"
field ttv_coddes_empresa ajuda as char format ' as character format "x(350)' label 'Empresa Externa' column-label 'Empresa Ext Inicial'
field ttv_cdn_emit " label "Ajuda" column-label "Ajuda"
index tt_id
ttv_num_seq ascending
as Integer format '>>>>>>>>9' label 'Emitente' column-label 'Emitente'
field ttv_num_cod_nota erro ascending
.
def temp-table tt_nota_fisc_vda no-undo as character format 'x(20)'
field ttvtta_cod_serestab_nota nf as as character format '"x(5)' " label 'Série "Estabelecimento Nota' " column-label 'Série "Estabelecimento Nota'"
field ttvtta_cod_natur_operac ser_nf as as character format '"x(65)' label 'Natureza Operação' " label "Serie Nota fiscal" column-label 'Natureza Operação'"Serie Nota fiscal"
field ttvtta_cod_estab _nota_fisc as character format '"x(310)' label 'Estabelecimento' " label "Nota Fiscal" column-label 'Estabelecimento'"Nota Fiscal"
field ttvtta_datnum_aquis_bem_pat seq_item as date format '99/99/9999' label 'Data Aquisção' column-label 'Data Aquisição'as integer format ">>>>,>>9" initial 0 label "Nr Seq Item" column-label "Seq Item"
field ttvtta_cod_item_cta nf as character format 'x(20)'"x(16)" label "Item Nota fiscal" column-label "Item Nota fiscal"
field ttvindex tt_cdnnota_aux fisc is primary unique
as Integer format '>>>,>>9'
field ttv tta_cod_estab_origem nf ascending
as character format 'x(8)' label 'Origem' column-label 'Origem'
field ttvtta_descod_auxser_5 nf ascending
as character format 'x(40)'
field ttvtta_valcod_aquis_bem_pat nota_fisc 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_cdn_unid_bem ascending
tta_num_seq_item ascending
tta_cod_item_nf ascending
.
DEFINE VARIABLE v_hdl_program AS HANDLE NO-UNDO.
DO TRANSACTION:
FIND FIRST bem_pat WHERE bem_pat.cod_empresa = "10"
as Integer format '>>>,>>9'
field ttv_cdn_org_bem as Integer format '>>>,>>9'
field ttv_cdn_ord_manut AND bem_pat.cod_cta_pat = "DEPREC"
as Integer format '>>>,>>9'
field ttv_des AND bem_pat.num_bem_pat pat = 3
as character format 'x(40)' label 'Descrição Bem Pat' column-label 'Descrição Bem Pat'
field ttv_cod_unid_negoc AND bem_pat.num_seq_bem_pat = 0
as character format 'x(3)' label 'Unid Negócio' column-label 'Un Neg'
field tta_ NO-LOCK NO-ERROR.
IF AVAIL bem_pat THEN DO:
//CHAMADA FAS726AA
FIND LAST movto_bem_pat WHERE movto_bem_pat.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 pat = bem_pat.num_id_bem_pat
AND movto_bem_pat.num_seq_incorp_bem_pat = 0
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 date format '99/99/9999'
def var v_handle as handle no-undo.
AND movto_bem_pat.dat_movto_bem_pat = today NO-LOCK NO-ERROR.
IF AVAIL movto_bem_pat THEN DO:
CREATE tt_exc_movto_pat.
ASSIGN tt_exc_movto_pat.tta_cod_empresa = bem_pat.cod_empresa
create tt_bem_invest_mga.
assign tt_bem_invest_mga.ttv_cod_empresa = "10"
tt_bemexc_investmovto_mgapat.ttvtta_cod_estab cta_pat = bem_pat.cod_cta_pat
= "1"
tt_bemexc_investmovto_mgapat.ttvtta_dat_aquisnum_bem_pat = today
tt_= bem_invest_mgapat.ttvnum_cdnbem_emit pat
= 5
tt_exc_movto_pat.tta_num_seq_bem_pat tt_= bem_invest_mga.ttv_cod_nota pat.num_seq_bem_pat
= "04062024"
tt_bemexc_investmovto_mga.ttv_cod_natur_operac = "6181A"
tt_bem_invest_mga.ttv_cod_ser_nota = "S"
pat.tta_num_seq_movto_bem_pat = movto_bem_pat.num_seq_movto_bem_pat
tt_bemexc_investmovto_mgapat.ttvtta_valdat_aquismovto_bem_pat = 129.99
tt= movto_bem_invest_mgapat.ttvdat_cdnmovto_unidbem_bem pat
= 5
tt_bemexc_investmovto_mgapat.ttvtta_desind_bemorig_pat movto = "Primeiro Bem".
create tt_bem_invest_mga.
assign tt_bem_invest_mga.ttv_cod_empresa = "10"".
END.
//CHAMADA FT2300
FIND FIRST bem_docto_faturam OF bem_pat NO-LOCK NO-ERROR.
IF AVAIL bem_docto_faturam THEN DO:
ttCREATE tt_bemnota_investfisc_mga.ttv_cod_estab = "1"vda.
ttASSIGN tt_bemnota_investfisc_mgavda.ttv_dattta_aquiscod_bemestab_pat = today
tt_nf = bem_investdocto_mgafaturam.ttvcod_cdnestab_emit nf
= 5
tt_bemnota_investfisc_mgavda.ttvtta_cod_nota ser_nf = bem_docto_faturam.cod_ser_nf
= "04062024"
tt_bemnota_investfisc_mgavda.ttvtta_cod_naturnota_operac fisc = "6181A"
tt_ bem_investdocto_mgafaturam.ttv_cod_sernota_nota fisc
= "S"
tt_bemnota_investfisc_mgavda.ttvtta_valnum_aquisseq_item = bem_docto_pat = 1.99
faturam.num_seq_item
tt_bemnota_investfisc_mgavda.ttvtta_cdncod_uniditem_bem nf = 20
tt_ bem_investdocto_mgafaturam.ttvcod_des_bem_pat = "Segundo Bem".
item_nf.
END.
END.
current-language = current-language.
RUN run prgfin\fas\fas791zafas795za.py persistent set PERSISTENT SET v_hdl_program (INPUT 1).
run RUN pi_api_criacao_docto_entr in v_hdl_program (input "ems2"_main_code_exc_movto_pat IN v_hdl_program (INPUT TABLE tt_exc_movto_pat,
input table INPUT TABLE tt_bemnota_investfisc_mgavda,
OUTPUT TABLE tt_log_erros).
FOR EACH tt_log_erros NO-LOCK:
output table MESSAGE tt_log_erros).
delete procedure v_hdl_program.
assign v_hdl_program = ?. ttv_num_seq
for each SKIP tt_log_erros no-lock:
.ttv_num_cod_erro
message "Seq.: " SKIP tt_log_erros.ttv_numdes_seq skiperro
"Cod. Erro: " SKIP tt_log_erros.ttv_num_cod_erro skipdes_ajuda
VIEW-AS ALERT-BOX.
"Descrição Erro: " tt_log_erros.ttv_des_erro skip
"Ajuda: " tt_log_erros.ttv_des_ajuda skip
view-as alert-box.
endEND.
IF VALID-HANDLE(v_hdl_program) THEN DO:
DELETE PROCEDURE v_hdl_program.
END.
assign v_hdl_program = ?
END.