Árvore de páginas

Versões comparadas

Chave

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

...

Observação: A partir da release 12.1.2503.

Objetivo

Excluir os movimentos de baixas gerados pelas notas fiscais de venda de ativos/imobilizados. Após a atualização da nota fiscal de venda de ativos os bens patrimoniais relacionadas a nota fiscal sofreram uma baixa por venda, o relacionamento entre nota fiscal e bem patrimonial são armazenados 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.

...

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_bemexc_investmovto_mgapat

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_lognota_errosfisc_vda

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.

...

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 -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
       as integer format ">>>,>>9" label "Seqüência" column-label "Seq"
    field ttv_num_cod_erro      tta_num_seq_bem_pat              as integer format ">>>>,>>9" label "Número" column-label "Número" ascending
    field ttv_des_erro        tta_num_seq_movto_bem_pat        ascending
    .

def temp-table tt_log_erros no-undo         as character format "x(50)" label "Inconsistência" column-label "Inconsistência"
    field ttv_desnum_ajuda seq                      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                            as character format ascending
    .

def temp-table tt_nota_fisc_vda no-undo '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.