Histórico da Página
Documento de API
Produto: | Datasul |
Ocorrência: | Documentação de API |
Nome Físico | prgfin/apb/apb925za.py |
Objetivo
API para automatizar a substituição de notas por duplicatas, permitindo que sejam realizadas várias substituições ao mesmo tempo com as mesmas validações executadas pelo processo manual (on-line). Ou seja, efetuar a substituição de várias notas por uma única duplicata ou, substituir uma única nota em várias duplicatas em diferentes vencimentos de um mesmo fornecedor.
Parâmetros de Entrada
p_num_vers_integr_api : será utilizado para determinar se o programa que está chamando está íntegro com as definições correntes da API;
...
tt_integr_apb_impto_impl_pend1 pend5: se refere ao recebimento de todas as informações necessárias para a vinculação de impostos à duplicata.
...
tt_params_generic_api: Conterá campos novos das temp-tables passadas como parâmetro.
Funcionamento
A sintaxe para executar a API/BO em modo persistente é:
...
run pi_main_code_apb925za_04 in 05in v_hdl_apb925za (Input 4,
Input table tt_integr_apb_lote_fatura_3,
...
Input table tt_integr_apb_impto_impl_pend1pend5,
input-output table tt_log_erros_atualiz,
...
A variável denominada v_hdl_apb925za irá receber o “handle” do programa, permitindo o acesso aos “métodos” internos da API.
Tabela Temporária
tt_integr_apb_lote_fatura_3 | Conterá as informações referentes aos lotes de Substituição da Nota Fiscal por Duplicata. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
tta_cod_estab | character | “x(3)” | Estabelecimento. |
tta_cod_refer | character | “x(10)” | Referência. |
tta_cod_espec_docto | character | “x(3)” | Espécie Documento. |
tta_dat_transacao | date | 99/99/9999 | Data de Transação. |
tta_ind_origin_tit_ap | character | “x(3)” | Indica Origem. Exemplo: “APB”. |
tta_cod_estab_ext | character | “x(8)” | Estabelecimento Externo. Não possui tratamento. |
tta_val_tot_lote_impl_tit_ap | decimal | ">>,>>>,>>>,>>9.99" | Valor Total do Movimento. |
tta_cod_empresa | character | “x(3)” | Empresa. |
ttv_cod_empresa_ext | character | “x(3)” | Empresa Externa. Não possui tratamento. |
tta_cod_finalid_econ_ext | character | “x(8)” | Finalidade Econômica Externa. Não possui tratamento. |
tta_cod_indic_econ | character | “x(8)” | Moeda. |
ttv_log_atualiza_refer_apb | logical | "Sim/Não" | Atualiza Referência. Se a Substituição deverá ser atualizada ou não. |
ttv_log_elimina_lote | logical | "Sim/Não" | Elimina Lote. Em caso de ser apresentado alguma validação, o lote será eliminado e não ficará pendente. |
tta_cdn_fornecedor | integer | ">>>,>>>,>>9" | Número Fornecedor. |
tta_num_fatur_ap | integer | ">>>>,>>>,>>9" | Número da Fatura. |
tta_qtd_parcela | decimal | "->9" | Quantidade de Parcelas. |
tta_cod_histor_padr | character | “x(8)” | Histórico Padrão. |
tta_cod_histor_padr_dupl | character | “x(8)” | Histórico Padrão da Duplicata. |
ttv_ind_matriz_fornec | character | “x(8)” | Permitirá ou não a seleção de títulos por Matriz. Exemplo: ‘Fornecedor’. |
ttv_rec_integr_apb_lote_impl | recid | ">>>>>>9" | Recid. Deverá ser informado: RECID(tt_integr_apb_lote_fatura_3). |
ttv_log_vinc_impto_auto | logical | "Sim/Não" | Vincula PIS/COFINS/CSLL automaticamente. |
ttv_log_fatur_emis_darf | logical | "Sim/Não" | Indica se a Fatura é de DARF DARF. |
| |||
ttv_log_fornec_dif | logical | "Sim/Não" | Indica se irá utilizar fornecedor diferente para as novas duplicatas |
Definição:
def temp-table tt_integr_apb_lote_fatura_3 no-undo
...
tta_cod_estab_ext ascending
.
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_apb_item_lote_fatura | Conterá as informações referentes as Duplicatas geradas pela Substituição. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_rec_integr_apb_lote_impl | recid | ">>>>>>9" | Identificador do lote. Receberá: tt_integr_apb_lote_fatura_3.ttv_rec_integr_apb_lote_impl. |
tta_num_seq_refer | integer | ">>>9" | Sequência. |
tta_cdn_fornecedor | Integer | “>>>,>>>,>>9” | Código do Fornecedor. Não receberá valor se for PEF ou Antecipação. |
tta_cod_ser_docto | character | “x(3”)/”x(5)”** | Código da Série Documento. Não receberá valor se for PEF ou Antecipação. |
tta_cod_tit_ap | character | “x(10)”/“x(16)”** | Código do Título. Não receberá valor se for PEF ou Antecipação. |
tta_cod_parcela | character | “x(02)” | Parcela. |
tta_dat_emis_docto | date | "99/99/9999" | Data de Emissão. |
tta_dat_vencto_tit_ap | date | "99/99/9999" | Data de Vencimento. |
tta_dat_prev_pagto | date | "99/99/9999" | Data Prevista de Pagamento. |
tta_dat_desconto | date | "99/99/9999" | Data de Desconto. |
tta_cod_indic_econ | character | "x(8)" | Moeda. |
tta_val_tit_ap | decimal | "->>>,>>>,>>9.99" | Valor do Título. |
tta_val_desconto | decimal | "->>>,>>>,>>9.99" | Valor de Desconto. |
tta_val_perc_desc | decimal | ">9.999999" | Percentual de Desconto. |
tta_num_dias_atraso | integer | ">9" | Dias de Atraso. |
tta_val_juros_dia_atraso | decimal | "->>>,>>>,>>9.99" | Valor de Juros. |
tta_val_perc_juros_dia_atraso | decimal | ">9.999999" | Percentual de Juros por Dia de Atraso. |
tta_val_perc_multa_atraso | decimal | ">9.99" | Percentual de Multa por Atraso. |
tta_cod_portador | character | "x(5)" | Portador. |
tta_cod_apol_seguro | character | "x(12)" | Apólice de Seguro. |
tta_cod_seguradora | character | "x(8)" | Seguradora. |
tta_cod_arrendador | character | "x(6)" | Arrendador. |
tta_cod_contrat_leas | character | "x(12)" | Contrato de Leasing. |
tta_des_text_histor | character | "x(2000)" | Histórico. |
tta_num_id_tit_ap | integer | "9999999999" | Identificador do Título. |
tta_num_id_movto_tit_ap | integer | "9999999999" | Identificador do Movimento do Título. |
tta_num_id_movto_cta_corren | integer | "9999999999" | Identificador do Movimento da Conta Corrente. |
ttv_qtd_parc_tit_ap | decimal | ">>9" | Quantidade de Parcelas. |
ttv_num_dias | integer | ">>>>,>>9" | Número de Dias. |
ttv_ind_vencto_previs | character | "x(4)" | Cálculo Vencimento. |
ttv_log_gerad | logical | "Sim/Não" | Gerado. |
tta_cod_finalid_econ_ext | character | "x(8)" | Finalidade Externa. |
tta_cod_portad_ext | character | "x(8)" | Portador Externo. |
tta_cod_modalid_ext | character | "x(8)" | Modalidade Externa. |
tta_cod_cart_bcia | character | "x(3)" | Carteira. |
tta_cod_forma_pagto | character | "x(3)" | Forma de Pagamento. |
tta_val_cotac_indic_econ | decimal | ">>>>,>>9.9999999999" | Cotação. |
ttv_num_ord_invest | integer | ">>>>>,>>9" | Ordem de Investimento. |
tta_cod_livre_1 | character | "x(100)" | Campo Livre. |
tta_cod_livre_2 | character | "x(100)" | Campo Livre. |
tta_dat_livre_1 | date | "99/99/9999" | Campo Livre. |
tta_dat_livre_2 | date | "99/99/9999" | Campo Livre. |
tta_log_livre_1 | logical | "Sim/Não" | Campo Livre. |
tta_log_livre_2 | logical | "Sim/Não" | Campo Livre. |
tta_num_livre_1 | integer | ">>>>>9" | Campo Livre. |
tta_num_livre_2 | integer | ">>>>>9" | Campo Livre. |
tta_val_livre_1 | decimal | ">>>,>>>,>>9.9999" | Campo Livre. |
tta_val_livre_2 | decimal | ">>>,>>>,>>9.9999" | Campo Livre. |
ttv_rec_integr_apb_item_lote | recid | ">>>>>>9" | Identificador do item. |
ttv_val_1099 | decimal | "->>,>>>,>>>,>>9.99" | Valor Imposto 1099 relacionado a localização EUA. |
tta_cod_tax_ident_number | character | "x(15)" | Tax Id Number. |
tta_ind_tip_trans_1099 | character | "x(50)" | Tipo Transação 1099. |
Definição:
def temp-table tt_integr_apb_item_lote_fatura no-undo
...
tta_num_seq_refer ascending
.
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_apb_relacto_fatura | Conterá as informações referentes aos documentos Substituídos. Deverá ser informada a chave de identificação do título, que poderá ser de espécie “Nota Fiscal”, “Imposto Retido” ou “Normal”. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_rec_integr_apb_lote_impl | recid | ">>>>>>9" | Identificador do lote. Receberá: tt_integr_apb_lote_fatura_3.ttv_rec_integr_apb_lote_impl. |
tta_cod_estab_tit_ap_pai | character | "x(3)" | Estabelecimento do Título Pai. |
tta_cdn_fornec_pai | Integer | “>>>,>>>,>>9” | Código do Fornecedor do Título Pai. |
tta_cod_espec_docto_nf | character | "x(8)" | Espécie da Nota Fiscal. |
tta_cod_ser_docto_nf | character | "x(8)" | Série da Nota Fiscal. |
tta_cod_tit_ap | character | “x(10)” | Código do Título. |
tta_cod_parc_nf | character | “x(8)” | Parcela da Nota Fiscal. |
tta_ind_motiv_acerto_val | character | "x(12)" | Motivo do Acerto de Valor. |
ttv_log_bxo_estab_tit | logical | “Sim/Não” | Baixa no Estabelecimento do Título. |
Definição:
def temp-table tt_integr_apb_relacto_fatura no-undo
...
tta_cod_parc_nf ascending
.
Tabela Temporária | Descrição | Entrada/Saída |
tt_integr_apb_impto_impl_ |
pend5 | Conterá as informações dos impostos relacionados as duplicatas geradas. Sendo que o valor destes impostos irão abater o saldo dos títulos relacionados; implantando no sistema um título normal contendo o saldo e outro título de imposto com o valor abatido. | Entrada |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_rec_integr_apb_item_lote | recid | “>>>>>>9” | Identificador do Item. Deverá receber: tt_integr_apb_item_lote_fatura.ttv_rec_integr_apb_item_lote. |
ttv_rec_antecip_pef_pend | recid | “>>>>>>9” | Identificador da |
Antecipação. Deverá receber: ? |
tta_cod_pais | character | “x(3)” | Código País. |
tta_cod_unid_federac | character | “x(3)” | Unidade Federação. |
tta_cod_imposto | character | “x(5)” | Código Imposto. |
tta_cod_classif_impto | character | “x(5)” | Código da Classificação do Imposto. |
tta_ind_clas_impto | character | “x(14)” | Indicador da Classe do Imposto. |
tta_cod_plano_cta_ctbl | character | “x(8)” | Código do Plano de Contas. |
tta_cod_cta_ctbl | character | “x(20)” | Código da Conta Contábil. |
tta_cod_espec_docto | character | “x(3)” | Código da Espécie do Documento. |
tta_cod_ser_docto | character | “x(3)” | Código da Série do Documento. |
tta_cod_tit_ap | character | “x(10)” | Código do Título. |
tta_cod_parcela | character | “x(2)” | Parcela. |
tta_val_rendto_tribut | decimal | “>,>>>,>>>,>>9.99” | Valor do Rendimento Tributável. |
tta_val_deduc_inss | decimal | “>,>>>,>>>,>>9.99” | Valor da Dedução INSS. |
tta_val_deduc_depend | decimal | “>,>>>,>>>,>>9.99” | Valor da Dedução de Dependentes. |
tta_val_deduc_pensao | decimal | “>,>>>,>>>,>>9.99” | Valor Dedução Pensão. |
tta_val_outras_deduc_impto | decimal | “>,>>>,>>>,>>9.99” | Valor de Outras Deduções. |
tta_val_base_liq_impto | decimal | “>,>>>,>>>,>>9.99” | Valor da Base Líquida Imposto. |
tta_val_aliq_impto | decimal | “>9.99” | Valor da Alíquota. |
tta_val_impto_ja_recolhid | decimal | “>,>>>,>>>,>>9.99” | Valor do Imposto Já Recolhido. |
tta_val_imposto | decimal | “>,>>>,>>>,>>9.99” | Valor Imposto. |
tta_dat_vencto_tit_ap | date | “99/99/9999” | Data Vencimento. |
tta_cod_indic_econ | character | “x(8)” | Código do Indicador Econômico (Moeda). |
tta_val_impto_indic_econ_impto | decimal | “->>>,>>>,>>9.99” | Valor do Imposto no Indicador Econômico do Imposto. |
tta_des_text_histor | character | “x(2000)” | Texto do Histórico (Padrão ou Informado). |
tta_cdn_fornec_favorec | Integer | “>>>,>>>,>>9” | Código do Fornecedor Favorecido. |
tta_val_deduc_faixa_impto | decimal | “>,>>>,>>>,>>9.99” | Valor Dedução na Faixa do Imposto. |
tta_num_id_tit_ap | integer | "9999999999" | Número de Identificação do Título a Pagar implantado. |
tta_num_id_movto_tit_ap | integer | "9999999999" | Número de Identificação do Movimento gerado pela implantação do Título a Pagar. |
tta_num_id_movto_cta_corren | integer | "9999999999" | Número de Identificação do Movimento da Conta Corrente gerado no Caixa e Bancos pelo movimento de implantação do Título a Pagar. |
tta_cod_pais_ext | character | “x(20)” | Código do país Externo. |
tta_cod_cta_ctbl_ext | character | “x(20)” | Código da Conta Contábil Externa. |
tta_cod_sub_cta_ctbl_ext | character | “x(15)” | Código da Subconta Externa. Este campo deverá ser obrigatoriamente preenchido caso o campo tta_cod_cta_ctbl_ext estiver preenchido. |
ttv_cod_tip_fluxo_financ_ext | character | “x( |
Código do Tipo Fluxo Financeiro Externo.
12)” | Código do Tipo Fluxo Financeiro Externo. | ||||
tta_val_nao_retid | decimal | ">>>,>>>,>>>,>>9.99" | Valor Não Retido. Este campo deverá ser preenchido exclusivamente para geração de dados para a legislação REINF. Caso o título seja de Mão de Obra Empreitada. | ||
tta_cod_process_judic | character | "x(20)" | Número Pocesso Judicial. Este campo deverá ser preenchido exclusivamente para geração de dados para a legislação REINF. Caso o título seja de Mão de Obra Empreitada. | ||
ttv_rec_integr_apb_impto_pend | recid | “>>>>>>9” | Identificador do imposto pendente. |
Observação: Caso o imposto seja retido e a forma de retenção seja tabela progressiva, o imposto será calculado da seguinte maneira:
- Apenas será considerado o valor do rendimento tributável, desconsiderando a alíquota e o valor do imposto informado na temp-table. Para o cálculo do valor do imposto, será considerada a alíquota da tabela progressiva do imposto, e o valor do imposto será calculado com base no acumulado da pessoa, caso o mesmo exista, mais o valor informado no rendimento tributável.
Definição:
def temp-table tt_integr_apb_impto_impl_pend1 pend5 no-undo
field ttv_rec_integr_apb_item_lote as recid format ">>>>>>9"
...
field tta_cod_sub_cta_ctbl_ext as character format "x(15)" label "Sub Conta Externa" column-label "Sub Conta Externa"
field ttv_cod_tip_fluxo_financ_ext _fluxo_financ_ext as character format "x(12)" label "Tipo Fluxo Financ" column-label "Tipo Fluxo Financ"
field tta_val_nao_retid as decimal format ">>>,>>>,>>>,>>9.99" decimals 2 initial 0 label "Valor Não Retido" column-label "Vl Não Retid"
field tta_cod_process_judic as character format "x(1220)" label "Tipo Fluxo FinancNr Processo Judicial" column-label "Tipo Fluxo Financ"Nr Proc Judic"
field ttv_rec_integr_apb_impto_pend as recid format ">>>>>>9"
index tt_impto_impl_pend_ap_integr is primary unique
...
tta_cod_classif_impto ascending
.
Legislação REINF
Tabela Temporária | Descrição | Entrada/Saída |
tt_log_erros_atualiz
| Conterá as informações referentes aos erros encontrados durante as validações para a substituição dos títulos. | Entrada / Saída |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
tta_cod_estab | character | “x(3)” | Estabelecimento |
tta_cod_refer | character | “x(10)” | Referência |
tta_num_seq_refer | integer | “>>>9” | Sequência |
ttv_num_mensagem | integer | “>>>>,>>9” | Número do erro |
ttv_des_msg_erro | character | “x(60)” | Mensagem Erro |
ttv_des_msg_ajuda | character | “x(40)” | Mensagem Ajuda |
ttv_ind_tip_relacto | character | “x(15)” | Tipo Relacionamento |
ttv_num_relacto | integer | “>>>>,>>9” | Relacionamento |
Observação: Num primeiro passo, os títulos são validados, conforme as parametrizações recebidas. Ao encontrar algum erro, um registro correspondente ao erro é gravado na tabela temporária tt_log_erros_atualiz e é dado continuidade ao processo de validação visando encontrar o maior número de erros possíveis; então o processo é interrompido quando não se é mais possível continuar as validações.
...
Quando a API for executada por um programa externo, logo após a chamada da API, deverá ser criado um tratamento para impressão dos erros. E para a correta visualização dos erros, todos os campos desta tabela devem ser impressos.
Definição:
def temp-table tt_log_erros_atualiz no-undo
...
field ttv_num_relacto as integer format ">>>>,>>9" label "Relacionamento" column-label "Relacionamento"
.
Tabela Temporária | Descrição | Entrada/Saída |
tt_params_generic_api | Conterá campos novos das temp-tables passadas como parâmetro. | Entrada / Saída |
Atributo | Tipo | Formato | Descrição | Obrig. | Evol. |
ttv_rec_id | recid | >>>>>>9 |
ttv_cod_tabela | character | X(28) | Tabela |
ttv_cod_campo | character | X(25) | Campo |
ttv_cod_valor | character | X(8) | Valor |
Definição:
def temp-table tt_params_generic_api no-undo
...
ttv_cod_campo ascending
Exemplo Criação temp-table tt_params_generic_api para campo SAFRA:
...