Á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ísico
Prgfin
prgfin/fas/
fas735zf
fas735zh

 


Objetivo

Criar bens no módulo de Ativo Fixo do EMS 5.

 


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.

...

DEFINE VARIABLE v_hdl_program AS HANDLE      NO-UNDO.

 


RUN prgfin\fas\fas735zh.py PERSISTENT SET v_hdl_program.

RUN pi_main_api_criacao_bem_pat_8 10 IN v_hdl_program

                                        (INPUT 1,

...

                                         INPUT TABLE tt_criacao_bem_pat_val_resid,

                                         INPUT TABLE tt_criacao_bem_pat_api_7

                                         OUTPUT v_cod_return,

...

DELETE PROCEDURE v_hdl_program.

...


Parâmetros

Parâmetro

Descrição

p_num_vers_integr_api

Será utilizado para determinar se o programa que está chamando está íntegro com as definições correntes da API;

p_cod_matriz_trad_org_ext

Deve ser informada a matriz de tradução de unidade organizacional

P_cod_matriz_Trad_ccusto_ext

Deve ser informada a matriz de tradução de centros de custo

P_cod_matriz_trad_finalid_Ext

Deve ser informada a matriz de tradução de finalidade econômica

P_log_ctbz

Deve ser YES para assinalar o movimento como contabilizado. Deve ser NO para que o movimento de implenatação seja contabilizado

tt_criacao_bem_pat_item_api

Esta temp-table conterá os registros dos itens das notas fiscais vinculadas ao bem. 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 do bem. Deverá ser definida conforme os atributos mencionados a seguir, na seção Tabelas Temporárias.

tt_criacao_bem_pat_api_7Esta temp-table contem os registros dos bens que serão criados

P_cod_return

Retorna string “OK” se não ocorreram erros.

P_des_mensagem

Caso tenha ocorrido erro, retorna a mensagem de erro que provocou erro na criação dos bens. Normalmente erros da matriz de tradução são apresentados nesta mensagem. Erros deste tipo inviabilizam a criação de todos os bens na temp-table.

Observações:

-       Devem ser geradas algumas temp-tables definidas como “new shared” no programa que chamará a API. Estas temp-tables conterão as informações sobre os movimentos bens que serão importados implantados no Ativo Fixo. 

Retorno

A API retornará na tabela temporária tt_erros_criacao_bem_pat_api_1 todos os erros encontrados ou mensagens de alerta gerados durante o processo de validação dos movimentos.

...

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.

 


Tabelas Temporárias

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_criacao_bem_pat_api_

5

7

Conterá as informações dos bens a serem

importados

implantados.

New Shared

 

local



Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

tta_cod_unid_organ_ext

character

x(3)

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

Sim

 


tta_cod_cta_pat

character

x(18)

Conta patrimonial

Sim

 


tta_num_bem_pat

integer

>>>>>>>>9

Número do bem. Caso seja informado 0 (zero) será atribuído automaticamente o número do próximo bem de acordo com parâmetros do ativo fixo.

Não

 


tta_num_seq_bem_pat

integer

>>>>9

Seqüência do bem. (idem observação acima).

Não

 


tta_des_bem_pat

character

x(40)

Descrição do bem

Sim

 


tta_dat_aquis_bem_pat

date

99/99/9999

Data de aquisição do bem

Sim

 


tta_cod_plano_ccusto

character

x(8)

Código do plano de centros de custo

Sim

 


tta_cod_ccusto_ext

character

x(8)

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

Sim

 


tta_cod_estab_ext

character

x(8)

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

Sim

 


tta_cod_unid_negoc_ext

character

x(8)

Código da Unidade de negócio

Sim

 


tta_cod_finalid_econ_ext

character

x(8)

Código da finalidade externa. (moeda do bem a ser traduzida pela matriz de tradução de finalidade)

Sim

 


ttv_val_aquis_bem_pat

decimal

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

Valor de aquisição do bem

(o valor do bem pode ser positivo no caso de bens do Ativo imobilizado ou negativo se o bem referir-se a item do patrimônio líquido)

Sim

 


ttv_log_erro

logical

Sim/Não

Indicador de erro no bem. Deve ser criado como “Não”

Sim

 


tta_qtd_bem_pat_represen

decimal

>>>>>>>>9

Quantidade de bens

Não

 


tta_cdn_fornecedor

Integer

>>>,>>>,>>9

Código numérico do fornecedor do bem

Não

 


tta_cod_docto_entr

character

x(8)

Número da nota fiscal

Não

 


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

Não

 


tta_num_id_bem_pat

Integer

>>,>>>,>>9

Este atributo retorna o número interno do bem. Não precisa ter o seu valor informado. Serve apenas como uma referência para localizar o bem criado na base de dados. Deve ser criado como 0 (zero)

Sim

 


tta_des_narrat_Bem_pat

character

x(2000)

Narrativa do bem

Não

 


tta_log_bem_imptdo

logical

Sim/Não

Este atributo indica se o bem foi importado ou não.

Sim

 


tta_log_cr_pis

logical

Sim/Não

Este atributo indica se o bem credita ou não PIS.

Obs.: Este atributo será utilizado somente no Brasil

Sim

 


tta_log_cr_cofins

logical

Sim/Não

Este atributo indica se o bem credita ou não COFINS.

Obs.: Este atributo será utilizado somente no Brasil

Sim

 


tta_num_parc_pis_cofins

integer

99

Este atributo indica se o credito de PIS e COFINS é parcelado.

Obs.: Depende que o Bem credite PIS ou COFINS.

O valor passado deverá ser 00 para não credita e 12 ou 48 vezes.

Sim

 


tta_val_cr_pis

decimal

>>>,>>>,>>9.99

Valor do PIS que a empresa poderá creditar

Sim

 


tta_val_cr_cofins

decimal

>>>,>>>,>>9.99

Valor do COFINS que a empresa poderá creditar

Sim

 


ttv_log_cr_csll

logical

Sim/Não

Credita CSLL

Sim

X

ttv_num_exerc_cr_csll

integer

99

Exerc. Crédito CSLL

Sim

X

 

def new shared temp-table tt_criacao_bem_pat_api_5 no-undo

    field tta_cod_unid_organ_ext           as character format "x(3)" label "Unid Organ Externa" column-label "Unid Organ Externa"

    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_des_bem_pat                  as character format "x(40)" label "Descri‡Æo Bem Pat" column-label "Descri‡Æo Bem Pat"

    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisi‡Æo" column-label "Dat Aquis"

    field tta_cod_plano_ccusto             as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"

    field tta_cod_ccusto_ext               as character format "x(8)" label "Centro Custo Externo" column-label "CCusto Externo"

    field tta_cod_estab_ext                as character format "x(8)" label "Estabelecimento Exte" column-label "Estabelecimento Ext"

    field tta_cod_unid_negoc_ext           as character format "x(8)" label "Unid Neg¢cio Externa" column-label "Unid Neg¢cio Externa"

    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"

    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_log_erro                     as logical format "Sim/NÆo" initial yes

    field tta_qtd_bem_pat_represen         as decimal format ">>>>>>>>9" initial 1 label "Quantidade Bens Representados" column-label "Bem Represen"

    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(3)" 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_num_id_bem_pat               as integer format ">>,>>>,>>9" initial 0 label "Identifica‡Æo Bem" column-label "Identifica‡Æo Bem"

    field tta_des_narrat_bem_pat           as character format "x(2000)" label "Narrativa Bem" column-label "Narrativa Bem"

    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 ttv_num_parc_pis_cofins          as integer format "99" initial 0 label "Nro Parcelas" column-label "Nro Parcelas"

    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 ttv_log_cr_csll                  as logical format "Sim/NÆo" initial no label "Credita CSLL" column-label "Credita CSLL"

    field ttv_num_exerc_cr_csll            as integer format "99" label "Exerc. Cr‚dito CSLL" column-label "Exerc. Cr‚dito CSLL".

 

 

2) Tabela de erros

Tabela Temporária

Descrição

Entrada/Saída

tt_erros_criacao_bem_pat_api_1

Conterá as informações dos movimentos que não foram importados com a respectiva mensagem de erro.

New Shared

 

tta_dat_calc_patdate99/99/9999Data de início de cálulo do bemNão
tta_cb3_ident_visualcharx(20)Número da plaquetaNão
tta_cod_estado_fisic_bem_patcharx(8)Estado físico do bemNão
tta_cod_espec_bemchar x(6)Espécie do bemNão
tta_cod_marcacharx(6)Marca do bemNão
tta_cod_modelochar x(8)Modelo do bemNão
tta_dat_avaliac_apol_segurodate99/99/9999Data de avaliação da apólice de seguroNão
tta_val_avaliac_apol_segurodecimal->>,>>>,>>>,>>9.99Valor de avaliação da apólice de seguroNão
tta_cod_licenc_usocharx(8)Licença de usoNão
tta_cod_especif_teccharx(8)Especificação técnicaNão
tta_cod_arrendadorcharx(6)ArrendadorNão
tta_cod_contrat_leascharx(12)Contrato de LeasingNão
tta_cod_localizcharx(12)Localização do bemNão
tta_cod_imagemcharx(30)Imagem do bemNão
ttv_rec_idrecid>>>>>>9Recid do registro do bem criado na temp-tableSim

 

 

 

2) Tabela de erros

Tabela Temporária

Descrição

Entrada/Saída

tt_erros_criacao_bem_pat_api_1

Conterá as informações dos movimentos que não foram importados com a respectiva mensagem de erro.

New Shared

 

 

Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

tta_cod_unid_organ_ext

character

x(3)

Unid Organ Externa



tta_cod_cta_pat

character

x(18)

Conta Patrimonial



tta_num_bem_pat

integer

>>>>>>>>9

Bem Patrimonial



tta_num_seq_bem_pat

integer

>>>>9

Sequência Bem



tta_des_bem_pat

character

x(40)

Descrição Bem Patrimonial



tta_dat_aquis_bem_pat

date

99/99/9999

Data Aquisição



tta_cod_finalid_econ_ext

character

x(8)

Finalid Econ Externa



ttv_des_mensagem

character

x(50)

Mensagem de erro para o bem com a chave formada pelos atributos acima nesta temp table.





3) Itens de Documento de Entrada vinculados ao Bem

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 ao bem.

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_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 ao bem

Sim


 


4) Valores Residuais do Bem

Tabela Temporária

Descrição

Entrada/Saída

tt_criacao_bem_pat_val_resid

Conterá os registros dos valores residuais do bem.

Entrada

...



Atributo

Tipo

Formato

Descrição

Obrigatório

Evolução

tta

ttv_

cod_unid_organ_ext

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(

3

7)

Unid Organ Externa

 

 

Código do tipo de cálculo

Sim


tta_cod_

cta

cenar_

pat

ctbl

character

x(

18

8)

Conta Patrimonial

 

 

Código do cenário contábil

Sim


tta_

num

cod_

bem

finalid_

pat

econ

integer

>>>>>>>>9

Bem Patrimonial

 

 

tta_num_seq_bem_pat

integer

>>>>9

Sequência Bem

 

 

tta_des_bem_pat

character

x(40)

Descrição Bem Patrimonial

 

 

tta_dat_aquis_bem_pat

date

99/99/9999

Data Aquisição

 

 

tta_cod_finalid_econ_ext

character

x(8)

Finalid Econ Externa

 

 

ttv_des_mensagem

character

x(50)

Mensagem de erro para o bem com a chave formada pelos atributos acima nesta temp table.

 

 

 

def new shared temp-table tt_erros_criacao_bem_pat_api_1 no-undo

    field tta_cod_unid_organ_ext           as character format "x(3)" label "Unid Organ Externa" column-label "Unid Organ Externa"

    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_des_bem_pat                  as character format "x(40)" label "Descri‡Æo Bem Pat" column-label "Descri‡Æo Bem Pat"

    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisi‡Æo" column-label "Dat Aquis"

    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"

    field ttv_des_mensagem                 as character format "x(50)" label "Mensagem" column-label "Mensagem".

 

 

3) Itens de Documento de Entrada vinculados ao Bem

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 ao bem.

Entrada

 

 

...

Atributo

...

Tipo

...

Formato

...

Descrição

...

Obrigatório

...

Evolução

character

X(10)

Código da finalidade econômica

Sim


tta_val_resid_min

decimal

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

Valor residual mínimo

Sim


 


Execução


Na execução da API ocorrem as seguintes validações:

  • Versão de integração
    • API verificará se o programa chamador está integro com a API. Isto ocorre através da verificação da versão de integração passada como parâmetro
  • Estabelecimento
    • Será verificado se o estabelecimento é válido
  • Unidade de Negócio
    • Será verificado se a unidade de negócio é válida e se está vinculada ao estabelecimento
  • Centro de Custo
    • Valida o centro de custo informado e verifica se o usuário tem permissão para acessá-lo
  • Conta patrimonial
    • Verifica se a conta patrimonial informada é válida
  • Finalidade Econômica
    • Verifica se a finalidade econômica existe na matriz de tradução de finalidade informada
  • Fornecedor
    • Verifica, caso informado, se o fornecedor é válido
  • Documento de entrada (nota fiscal)
    • Verifica, caso informado, se o documento existem no sistema
  • Itens documento de entrada
    • Verifica, caso informado, se os itens de documento de entrada existem no sistema
    • Verifica se a quantidade dos itens de documento de entrada está disponível para vinculação
  • Número e sequência do bem
    • Verifica, caso informado, se já não existe um bem com o mesmo número no sistema. (levando em conta que a chave completa do bem é empresa, conta patrimonial, número do bem e sequência)
  • Data de cálculo
    • Quando informada será utilizada como data de início de cálculo do bem. Caso não seja informada a data de início de cálculos será a data de aquisição
  • Indicador econômico da apólice seguros
    • Caso não seja informado, será utilizado o indicador econômico informado para o bem
  • Data de avaliação da apólice de seguros
    • Caso não seja informado, será utilizado o valor original informado para o bem
  • Estado físico do bem
    • Valida se o estado físico informado existe no sistema
  • Espécie do bem
    • Valida se a espécie informada existe no sistema
  • Marca do bem
    • Valida se a marca informada existe no sistema
  • Modelo do bem
    • Valida se o modelo informado existe no sistema
  • Licença de uso
    • Valida se a licença de uso informada existe no sistema
  • Especificação técnica do bem
    • Valida se a especificação técnica informada existe para o bem
  • Arrendador
    • Valida se o arrendador informado existe no sistema
  • Contrato de leasing
    • Valida se o contrato de leasing informado existe no sistema
  • Localização do bem
    • Valida se a localização informada existe no sistema


Leitura e Criação dos Registros



Exemplo do programa para criação dos registros nas temp-tables com os bens a serem implantados:

DEF NEW shared

...

ttv_rec_bem

...

recid

...

 

...

temp-table tt_criacao_bem_pat_api_5

...

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 ao bem

...

Sim

...

 

no-undo
    field tta_cod_unid_organ_ext           as character format "x(5)" label "Unid Organ Externa" column-label "Unid Organ Externa"
    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_des_bem_pat                  as character format "x(40)" label "Descrição Bem Pat" column-label "Descrição Bem Pat"
    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisição" column-label "Dat Aquis"
    field tta_cod_plano_ccusto             as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"
    field tta_cod_ccusto_ext               as character format "x(8)" label "Centro Custo Externo" column-label "CCusto Externo"
    field tta_cod_estab_ext                as character format "x(8)" label "Estabelecimento Exte" column-label "Estabelecimento Ext"
    field tta_cod_unid_negoc_ext           as character format "x(8)" label "Unid Negócio Externa" column-label "Unid Negócio Externa"
    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"
    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_log_erro                     as logical format "Sim/Não" initial yes
    field tta_qtd_bem_pat_represen         as decimal format ">>>>>>>>9" initial 1 label "Quantidade Bens Representados" column-label "Bem Represen"
    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_num_id_bem_pat               as integer format ">>,>>>,>>9" initial 0 label "Identificação Bem" column-label "Identificação Bem"
    field tta_des_narrat_bem_pat           as character format "x(2000)" label "Narrativa Bem" column-label "Narrativa Bem"
    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 ttv_num_parc_pis_cofins          as integer format "999" initial 0 label "Nro Parcelas" column-label "Nro Parcelas"
    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 ttv_log_cr_csll                  as logical format "Sim/Não" initial no label "Credita CSLL" column-label "Credita CSLL"
    field ttv_num_exerc_cr_csll            as integer format "99" label "Exerc. Crédito CSLL" column-label "Exerc. Crédito CSLL"
    .

def temp-table tt_criacao_bem_pat_api_7 no-undo
    field tta_cod_unid_organ_ext           as character format "x(5)" label "Unid Organ Externa" column-label "Unid Organ Externa"
    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_des_bem_pat                  as character format "x(40)" label "Descrição Bem Pat" column-label "Descrição Bem Pat"
    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisição" column-label "Dat Aquis"
    field tta_cod_plano_ccusto             as character format "x(8)" label "Plano Centros Custo" column-label "Plano Centros Custo"
    field tta_cod_ccusto_ext               as character format "x(8)" label "Centro Custo Externo" column-label "CCusto Externo"
    field tta_cod_estab_ext                as character format "x(8)" label "Estabelecimento Exte" column-label "Estabelecimento Ext"
    field tta_cod_unid_negoc_ext           as character format "x(8)" label "Unid Negócio Externa" column-label "Unid Negócio Externa"
    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"
    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_log_erro                     as logical format "Sim/Não" initial yes
    field tta_qtd_bem_pat_represen         as decimal format ">>>>>>>>9" initial 1 label "Quantidade Bens Representados" column-label "Bem Represen"
    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_num_id_bem_pat               as integer format ">>,>>>,>>9" initial 0 label "Identificação Bem" column-label "Identificação Bem"
    field tta_des_narrat_bem_pat           as character format "x(2000)" label "Narrativa Bem" column-label "Narrativa Bem"
    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 ttv_num_parc_pis_cofins          as integer format "999" initial 0 label "Nro Parcelas" column-label "Nro Parcelas"
    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_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"
    field ttv_log_cr_csll                  as logical format "Sim/Não" initial no label "Credita CSLL" column-label "Credita CSLL"
    field ttv_num_exerc_cr_csll            as integer format "99" label "Exerc. Crédito CSLL" column-label "Exerc. Crédito CSLL"
    field tta_dat_calc_pat                 as date format "99/99/9999" initial today label "Data Cálculo" column-label "Data Cálculo"
    field tta_cb3_ident_visual             as Character format "x(20)" initial ? label "Número Plaqueta" column-label "Número Plaqueta"
    field tta_cod_estado_fisic_bem_pat     as character format "x(8)" label "Estado Físico" column-label "Estado Físico"
    field tta_cod_espec_bem                as character format "x(6)" label "Espécie Bem Patrimonial" column-label "Espécie"
    field tta_cod_marca                    as character format "x(6)" label "Marca" column-label "Marca"
    field tta_cod_modelo                   as character format "x(8)" label "Modelo" column-label "Modelo"
    field tta_dat_avaliac_apol_seguro      as date format "99/99/9999" initial today label "Data Avaliação Apol" column-label "Data Avaliação Apol"
    field tta_val_avaliac_apol_seguro      as decimal format "->>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Avaliação Apol" column-label "Valor Avaliação Apol"
    field tta_cod_licenc_uso               as character format "x(12)" label "Licença Uso" column-label "Licen Uso"
    field tta_cod_especif_tec              as character format "x(8)" label "Especificação Técnica" column-label "Especificação Técnica"
    field tta_cod_arrendador               as character format "x(6)" label "Arrendador" column-label "Arrendador"
    field tta_cod_contrat_leas             as character format "x(12)" label "Contrato Leasing" column-label "Contr Leas"
    field tta_cod_localiz                  as character format "x(12)" label "Localização" column-label "Localização"
    field tta_cod_imagem                   as character format "x(30)" label "Imagem" column-label "Imagem"
    field ttv_rec_id                              as recid
    .

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
    .

def temp-table tt_criacao_bem_pat_val_resid no-undo
    field ttv_rec_bem                      as recid format ">>>>>>9"
    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
          ttv_rec_bem                      ascending
          tta_cod_tip_calc                 ascending
          tta_cod_cenar_ctbl               ascending
          tta_cod_finalid_econ             ascending
    .


DEF NEW shared temp-table tt_erros_criacao_bem_pat_api_1 no-undo
    field tta_cod_unid_organ_ext           as character format "x(5)" label "Unid Organ Externa" column-label "Unid Organ Externa"
    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_des_bem_pat                  as character format "x(40)" label "Descrição Bem Pat" column-label "Descrição Bem Pat"
    field tta_dat_aquis_bem_pat            as date format "99/99/9999" initial today label "Data Aquisição" column-label "Dat Aquis"
    field tta_cod_finalid_econ_ext         as character format "x(8)" label "Finalid Econ Externa" column-label "Finalidade Externa"
    field ttv_des_mensagem                 as character format "x(50)" label "Mensagem" column-label "Mensagem"
    .


def var v_hdl_program AS HANDLE NO-UNDO.
def var p_cod_return   as char.
def var p_des_mensagem as char format "x(50)".


 
        create tt_criacao_bem_pat_api_7.
        assign tt_criacao_bem_pat_api_7.tta_cod_unid_organ_Ext       = "10"
               tt_criacao_bem_pat_api_7.tta_cod_Cta_pat              = "034"
               tt_criacao_bem_pat_api_7.tta_num_bem_pat              = 220815
               tt_criacao_bem_pat_api_7.tta_num_seq_bem_pat          = 1
               tt_criacao_bem_pat_api_7.tta_des_bem_pat              = "Teste API - " + STRING(TODAY) + ' # ' + STRING(TIME,"hh:mm")
               tt_criacao_bem_pat_api_7.tta_dat_aquis_bem_pat        = TODAY - 31
               tt_criacao_bem_pat_api_7.tta_cod_plano_ccusto         = "Alfa"
               tt_criacao_bem_pat_api_7.tta_cod_ccusto_ext           = "31400"
               tt_criacao_bem_pat_api_7.tta_cod_estab_ext            = "1"
               tt_criacao_bem_pat_api_7.tta_cod_unid_negoc_ext       = "999"
               tt_criacao_bem_pat_api_7.tta_cod_finalid_econ_ext     = "0"
               tt_criacao_bem_pat_api_7.ttv_val_aquis_bem_pat        = 10000
               tt_criacao_bem_pat_api_7.ttv_log_erro                 = no
               tt_criacao_bem_pat_api_7.tta_qtd_Bem_pat_represen     = 1
               tt_criacao_bem_pat_api_7.tta_cdn_fornecedor           = 1
               tt_criacao_bem_pat_api_7.tta_num_id_bem_pat           = 0
               tt_criacao_bem_pat_api_7.tta_des_narrat_Bem_pat       = ""
               tt_criacao_bem_pat_api_7.tta_log_cr_cofins            = NO
               tt_criacao_bem_pat_api_7.tta_log_cr_pis               = NO
               tt_criacao_bem_pat_api_7.ttv_num_parc_pis_cofins      = 0
               tt_criacao_bem_pat_api_7.tta_val_cr_pis               = 0
               tt_criacao_bem_pat_api_7.tta_val_cr_cofins            = 0
               tt_criacao_bem_pat_api_7.tta_cod_docto_entr           = "3232"
               tt_criacao_bem_pat_api_7.tta_cod_ser_nota             = 'u'
               tt_criacao_bem_pat_api_7.tta_num_item_docto_entr      = 20
               tt_criacao_bem_pat_api_7.tta_dat_calc_pat             = TODAY - 15
               tt_criacao_bem_pat_api_7.tta_cb3_ident_visual         = '12345678'
               tt_criacao_bem_pat_api_7.tta_cod_estado_fisic_bem_pat = "ATIVO"
               tt_criacao_bem_pat_api_7.tta_cod_espec_bem            = '004' 
               tt_criacao_bem_pat_api_7.tta_cod_marca                = 'COMPAQ'
               tt_criacao_bem_pat_api_7.tta_cod_modelo               = "LS1"
               tt_criacao_bem_pat_api_7.tta_dat_avaliac_apol_seguro  = TODAY - 10
               tt_criacao_bem_pat_api_7.tta_val_avaliac_apol_seguro  = 5000
               tt_criacao_bem_pat_api_7.tta_cod_licenc_uso           = '1'
               tt_criacao_bem_pat_api_7.tta_cod_especif_tec          = '1'
               tt_criacao_bem_pat_api_7.tta_cod_arrendador           = '10'
               tt_criacao_bem_pat_api_7.tta_cod_contrat_leas         = '120220'
               tt_criacao_bem_pat_api_7.tta_cod_localiz              = 'VIDRO-01'
               tt_criacao_bem_pat_api_7.tta_cod_imagem               = '0.30.600'
               tt_criacao_bem_pat_api_7.ttv_rec_id                   = RECID(tt_criacao_bem_pat_api_7).

        CREATE tt_criacao_bem_pat_item_api.
        ASSIGN tt_criacao_bem_pat_item_api.ttv_rec_bem             = tt_criacao_bem_pat_api_7.ttv_rec_id
               tt_criacao_bem_pat_item_api.tta_cdn_fornecedor      = 1 
               tt_criacao_bem_pat_item_api.tta_cod_docto_entr      = "3232"
               tt_criacao_bem_pat_item_api.tta_cod_ser_nota        = "u"
               tt_criacao_bem_pat_item_api.tta_num_item_docto_entr = 20
               tt_criacao_bem_pat_item_api.tta_qtd_item_docto_entr = 1.
        
        
        run prgfin\fas\fas735zh.py PERSISTENT SET v_hdl_program.

        run pi_main_api_criacao_bem_pat_10 IN v_hdl_program 
                                          (input 1, 
                                           input "EMS2" /*matriz traudcao*/, 
                                           input "EMS2" /*matriz ccusto*/,
                                           input "EMS2" /*matriz finalidade econ.*/,
                                           input NO /*contabiliza*/,
                                           INPUT TABLE tt_criacao_bem_pat_item_api,
                                           INPUT TABLE tt_criacao_bem_pat_val_resid,
                                           INPUT TABLE tt_criacao_bem_pat_api_7,
                                           output p_cod_return,
                                           output p

 

 

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(3)" 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.

 

 

4) Valores Residuais do Bem

Tabela Temporária

Descrição

Entrada/Saída

tt_criacao_bem_pat_val_resid

Conterá os registros dos valores residuais do bem.

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

 

 

def temp-table tt_criacao_bem_pat_val_resid no-undo

    field ttv_rec_bem                      as recid format ">>>>>>9"

    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

          ttv_rec_bem                      ascending

          tta_cod_tip_calc                 ascending

          tta_cod_cenar_ctbl               ascending

          tta_cod_finalid_econ             ascending.

 

Execução

 

Na execução da API ocorrem as seguintes validações:

  1. 1.     Versão de integração

Programa verificará se o programa chamador está integro com a API, e isto ocorre através da verificação da versão de integração passada como parâmetro;

 

  1. 2.     Estabelecimento

Será verificado se o estabelecimento é válido;

 

  1. 3.     Unidade de negócio

Valida se o unidade de negócio é válida e se a mesma está vinculada ao estabelecimento;

 

  1. 4.     Centro de custo

Valida o centro de custo informado e se o usuário possui permissão para acessá-lo;

 

  1. 5.     Conta patrimonial

Valida se a conta patrimonial informada é válida

 

  1. 6.     Finalidade econômica

Se a finalidade econômica informada existe na matriz de tradução de finalidade;

 

  1. 7.     Fornecedor

Verifica, caso informado, se o fornecedor é válido;

 

  1. 8.     Documento de entrada (Nota Fiscal)

Valida se os itens dos documentos de entrada informados existem no sistema;

 

  1. 9.     Quantidade dos Itens de Documento de entrada

Valida se a quantidade dos itens dos documentos de entrada está disponível para vinculação;

 

  1. 10.  Número do bem e seqüência do bem.

Verifica , caso informado, se já não existe um bem com o mesmo número no sistema. (levando em conta que a chave completa do bem é empresa, conta patrimonial, número do bem e seqüência);

 

 

Leitura e Criação dos Registros

 

 

Exemplo de criação de bens:

 

def var v_cod_return as char.

def var v_des_mensagem as char format "x(50)".

def var v_hdl_program as handle no-undo.

 

create tt_criacao_bem_pat_api_5.

assign tt_criacao_bem_pat_api_5.tta_cod_unid_organ_ext   = "1"

       tt_criacao_bem_pat_api_5.tta_cod_cta_pat          = "moveis e equip"

       tt_criacao_bem_pat_api_5.tta_num_bem_pat          = 0

       tt_criacao_bem_pat_api_5.tta_num_seq_bem_pat      = 0

       tt_criacao_bem_pat_api_5.tta_des_bem_pat          = "Torno Industrial Nardelli"

       tt_criacao_bem_pat_api_5.tta_dat_aquis_bem_pat    = 07/25/2000

       tt_criacao_bem_pat_api_5.tta_cod_plano_ccusto     = "móveis"

       tt_criacao_bem_pat_api_5.tta_cod_estab_ext        = "1"

       tt_criacao_bem_pat_api_5.tta_cod_unid_negoc_ext   = "ADM"

       tt_criacao_bem_pat_api_5.tta_cod_finalid_econ_ext = "0"

       tt_criacao_bem_pat_api_5.ttv_val_aquis_bem_pat    = 2575.88

       tt_criacao_bem_pat_api_5.ttv_log_erro             = no

       tt_criacao_bem_pat_api_5.tta_qtd_bem_pat_represen = 1

       tt_criacao_bem_pat_api_5.tta_cdn_fornecedor       = 0

       tt_criacao_bem_pat_api_5.tta_cod_docto_entr       = ""

       tt_criacao_bem_pat_api_5.tta_cod_ser_nota         = ""

       tt_criacao_bem_pat_api_5.tta_num_item_docto_entr  = 0

       tt_criacao_bem_pat_api_5.tta_num_id_bem_pat       = 0

       tt_criacao_bem_pat_api_5.tta_des_narrat_bem_pat   = ""

tt_criacao_bem_pat_api_5.tta_val_cr_pis           = 500

tt_criacao_bem_pat_api_5.tta_val_cr_cofins        = 500

tt_criacao_bem_pat_api_5.ttv_log_cr_csll          = no

tt_criacao_bem_pat_api_5.ttv_num_exerc_cr_csll    = 0.

 

create tt_criacao_bem_pat_item_api.

assign tt_criacao_bem_pat_item_api.ttv_rec_bem             = recid(tt_criacao_bem_pat_api_5)

       tt_criacao_bem_pat_item_api.tta_cdn_fornecedor      = 1

       tt_criacao_bem_pat_item_api.tta_cod_docto_entr      = "100"

       tt_criacao_bem_pat_item_api.tta_cod_ser_nota        = ""

       tt_criacao_bem_pat_item_api.tta_num_item_docto_entr = 10

       tt_criacao_bem_pat_item_api.tta_qtd_item_docto_entr = 1.

 

create tt_criacao_bem_pat_item_api.

assign tt_criacao_bem_pat_item_api.ttv_rec_bem             = recid(tt_criacao_bem_pat_api_5)

       tt_criacao_bem_pat_item_api.tta_cdn_fornecedor      = 1

       tt_criacao_bem_pat_item_api.tta_cod_docto_entr      = "100"

       tt_criacao_bem_pat_item_api.tta_cod_ser_nota        = ""

       tt_criacao_bem_pat_item_api.tta_num_item_docto_entr = 20

       tt_criacao_bem_pat_item_api.tta_qtd_item_docto_entr = 3.

 

create tt_criacao_bem_pat_val_resid.

assign tt_criacao_bem_pat_val_resid.ttv_rec_bem          = recid(tt_criacao_bem_pat_api_5)

       tt_criacao_bem_pat_val_resid.tta_cod_tip_calc     = "DPFIS95"

       tt_criacao_bem_pat_val_resid.tta_cod_cenar_ctbl   = "FISCAL"

       tt_criacao_bem_pat_val_resid.tta_cod_finalid_econ = "Corrente"

       tt_criacao_bem_pat_val_resid.tta_val_resid_min    = 500.

      

run prgfin/fas/fas735zh.py persistent set v_hdl_program.

 

run pi_main_api_criacao_bem_pat_8 in v_hdl_program

                                   (input 1,

                                   input "EMS2" /*matriz traudcao*/,

                                   input "EMS2" /*matriz ccusto*/,

                                   input "EMS2" /*matriz finalidade econ.*/,

                                   input no /*contabiliza*/,

                                   input table tt_criacao_bem_pat_item_api,

                                   input table tt_criacao_bem_pat_val_resid,

                                   output v_cod_return,

                                   output v_des_mensagem).

if v_cod_return = "nok" then do:

...

   else disp v_des_mensagem.

end. 


delete object v_hdl_program.

assign v_hdl_program = ?.