Histórico da Página
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico |
prgfin/fas/ |
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_7 | Esta 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_ |
7 | Conterá as informações dos bens a serem |
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_pat | date | 99/99/9999 | Data de início de cálulo do bem | Não | |
tta_cb3_ident_visual | char | x(20) | Número da plaqueta | Não | |
tta_cod_estado_fisic_bem_pat | char | x(8) | Estado físico do bem | Não | |
tta_cod_espec_bem | char | x(6) | Espécie do bem | Não | |
tta_cod_marca | char | x(6) | Marca do bem | Não | |
tta_cod_modelo | char | x(8) | Modelo do bem | Não | |
tta_dat_avaliac_apol_seguro | date | 99/99/9999 | Data de avaliação da apólice de seguro | Não | |
tta_val_avaliac_apol_seguro | decimal | ->>,>>>,>>>,>>9.99 | Valor de avaliação da apólice de seguro | Não | |
tta_cod_licenc_uso | char | x(8) | Licença de uso | Não | |
tta_cod_especif_tec | char | x(8) | Especificação técnica | Não | |
tta_cod_arrendador | char | x(6) | Arrendador | Não | |
tta_cod_contrat_leas | char | x(12) | Contrato de Leasing | Não | |
tta_cod_localiz | char | x(12) | Localização do bem | Não | |
tta_cod_imagem | char | x(30) | Imagem do bem | Não | |
ttv_rec_id | recid | >>>>>>9 | Recid do registro do bem criado na temp-table | Sim |
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 |
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) |
Unid Organ Externa
Código do tipo de cálculo | Sim | |
tta_cod_ |
cenar_ |
ctbl | character | x( |
8) |
Conta Patrimonial
Código do cenário contábil | Sim | |
tta_ |
cod_ |
finalid_ |
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. 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;
- 2. Estabelecimento
Será verificado se o estabelecimento é válido;
- 3. Unidade de negócio
Valida se o unidade de negócio é válida e se a mesma está vinculada ao estabelecimento;
- 4. Centro de custo
Valida o centro de custo informado e se o usuário possui permissão para acessá-lo;
- 5. Conta patrimonial
Valida se a conta patrimonial informada é válida
- 6. Finalidade econômica
Se a finalidade econômica informada existe na matriz de tradução de finalidade;
- 7. Fornecedor
Verifica, caso informado, se o fornecedor é válido;
- 8. Documento de entrada (Nota Fiscal)
Valida se os itens dos documentos de entrada informados existem no sistema;
- 9. Quantidade dos Itens de Documento de entrada
Valida se a quantidade dos itens dos documentos de entrada está disponível para vinculação;
- 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 = ?.