01. DADOS GERAIS
| Linha de Produto: | Microsiga Protheus® |
|---|---|
| Segmento: | Serviços |
| Módulo: | Financeiro |
| Rotina: | FINA080 - Baixa a Pagar Manual |
02. DESCRIÇÃO
O ponto de entrada F80L9816 foi disponibilizado para atender a Lei 9.816 de 1999, onde é possível que seja informada a taxa do câmbio a ser utilizada na formação da base de calculo do IRRF, que não é necessariamente a taxa utilizada na baixa do título a pagar. Ele será executado nas baixa manuais do contas a pagar e em sua respectiva rotina automática (Execauto - FINA080).
Além dos parâmetros informados no ponto de entrada, pode-se utilizar de qualquer informação disponível do Título a Pagar (campos da tabela SE2) e Fornecedor (campos da tabela SA2) que esta sendo processado, pois os registros estarão posicionados.
Observação:
O ponto de entrada F80L9816 esta disponível para execução durante a baixa manual (FINA080) de qualquer título, cabe a quem for implementar criar os critérios e regras para o uso da nova taxa.
Para as demais rotinas, como por exemplo a baixa automática (FINA090), deve ser utilizado o ponto de entrada FBXL9816 (disponível no programa FINXIMP com data igual ou superior a 29/12/2023).
03. PARÂMETROS
| Nome | Tipo | Descrição |
|---|---|---|
| PARAMIXB[1] | Caracter | Chave do título - SE2→(E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA) |
| PARAMIXB[2] | Data | Data do Pagamento |
| PARAMIXB[3] | Data | Data do Débito |
| PARAMIXB[4] | Numérico | Código da Operação = 4 - Baixa Manual |
04. RETORNO
| Tipo | Descrição |
|---|---|
| Numérico | Taxa a ser utilizada para compor a base de cálculo do IRRF. No caso de não haver mudança da taxa padrão do sistema, retornar 0 (zero). |
05. EXEMPLO DE UTILIZAÇÃO
#INCLUDE "PROTHEUS.CH"
User Function F80L9816() as numeric
Local cChave := ParamIXB[1] as character
Local dDtBaixa := ParamIXB[2] as date
Local dDtDebito := ParamIXB[3] as date
Local nOpc := ParamIXB[4] as numeric
Local dDtTaxa := dDataBase as date
Local aArea := GetArea() as array
Local aAreaSED := {} as array
Local nTaxa := 0 as numeric
dDtTaxa:=dDtBaixa-2
If SA2->A2_TIPO=='X' .And. SE2->E2_MOEDA > 1
dbSelectArea('SED')
aAreaSED := SED->(GetArea())
SED->(dbSetOrder(1))
SED->(dbSeek(xFilial('SED')+SE2->E2_NATUREZ))
If SED->ED_CALCIRF=='S'
//-- Retorna taxa na data solicitada
nTaxa:=RecMoeda(dDtTaxa,SE2->E2_MOEDA)
EndIF
RestArea(aAreaSED)
EndIF
RestArea(aArea)
Return(nTaxa)
06. DEMAIS INFORMAÇÕES
IRRF - Taxa Cambial no cálculo do imposto para fornecedor estrangeiro
F080TXIR - Ponto de entrada para informar taxa em baixas manuais (rotina automática)