Árvore de páginas

Versões comparadas

Chave

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

...

Documento de API

Produto:

Datasul

Ocorrência:

Documentação de API

Nome Físicoprgfin/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 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

ttv

tta_cod_empresa

character

x(3)

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

Sim

ttv


tta_

cdn_emit

integer

>>>>>>>>9

Código numérico do fornecedor do documento fiscal.

Sim

ttv_cod_notaNúmero do documento fiscal

cod_cta_pat

character

x(

20)

18)

Código da conta patrimonial na qual o bem patrimonial está associado, conforme cadastro no FAS011AA/FAS214AA/FAS329AA - Conta Patrimonial

.

Sim

ttv


tta_

cod

num_

ser

bem_

nota

pat

character

x(5)

Série do documento fiscal.

Sim

ttv_cod_natur_operac

character

x(6)

Natureza de operação do documento fiscal.

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)

Código do estabelecimento externo a ser traduzido pela matriz de tradução de unidade organizacional.

Sim

ttv_dat_aquis
_bem_patdate
99
99/99/9999

Data da movimentação de

emissão

baixa do

documento

bem patrimonial.

Sim

ttv


tta_ind_
cod
orig_
cta
movto

character

x(

20

8)

Código do centro de custo

ttv_cdn_aux

integer

>>>,>>9

Código do centro de custo externo a ser traduzido pela matriz de tradução de centros de custo.

ttv_cod_origem

character

x(8)

Código da Origem do documento de entrada.

ttv_des_aux_5

character

x(40)

Narrativa do item do documento de entrada.

ttv_val_aquis_bem_pat

decimal

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

Valor do documento de entrada.

ttv_val_aquis_fasb_bem_pat

decimal

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

Valor FASB do documento de entrada.

ttv_val_aquis_cmi_bem_pa

decimal

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

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

ttv_cdn_ord_manut

integer

>>>,>>9

Número da ordem de manutençã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.

tta_num_id_ri_bem_pat

integer

>>>,>>>,>>9

Número de identificação do bem patrimonial.

ttv_gera_bem_quant

logical

yes/no

Indicador de geração de bens por quantidade.

ttv_sequencia

integer

>>9

Número sequencial do item do documento fiscal.

ttv_cod_moed_fasb

character

x(8)

Código da moeda FASB.

ttv_dat_fasb

date

99/99/9999

Data de cotação da moeda 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

Indicador de origem de movimento. As opções disponíveis são:

  • Devolução
  • Exaustão
  • Inutilização
  • Quebra
  • Transferência
  • Venda
  • Doaçã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

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:

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 "Sequência Bem" column-label "Sequência"
    field tta_num_seq_movto_bem_pat        as integer format ">>>>>>,>>9" initial 0 label "Sequência Movto" column-label "Sequê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 "AjudaSequê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_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.