Contexto do PEArgumentos e contexto de execução não confirmados. Não suponha que exista um array de títulos, valores ou vencimentos em PARAMIXB; a estrutura usada no exemplo foi criada exclusivamente para o exercício.
AdvPL GuiaF060CPM()Permite tratar o cálculo de prazo médio em FINA060/FINA061. Exemplo independente de média ponderada e critérios para homologar a integração.
O índice oficial Financeiro P12 associa F060CPM a FINA060/FINA061 para cálculo de prazo médio; a ficha específica permanece em construção. (TOTVS, s.d., ref. 1) A documentação funcional situa essas rotinas na geração e manutenção de borderôs, incluindo opções de transmissão por API. (TOTVS, 2023, ref. 2) Esse contexto não determina quando o PE executa nem o que recebe. A notação F060CPM() identifica o ponto de entrada; a chamada completa, o formato de PARAMIXB e o retorno não foram confirmados nas fontes públicas localizadas. O exemplo abaixo é um exercício editorial independente: mostra uma possível média ponderada por valor, sem afirmar que essa é a fórmula do Protheus. Conteúdo em revisão, com pesquisa baseada em evidência indexada e acesso integral limitado.
F060CPM()Contexto do PEArgumentos e contexto de execução não confirmados. Não suponha que exista um array de títulos, valores ou vencimentos em PARAMIXB; a estrutura usada no exemplo foi criada exclusivamente para o exercício.
Tipo, unidade e consumo do retorno do PE não confirmados. O exemplo não implementa F060CPM e não define o retorno exigido pelo chamador.
#Include "Protheus.ch"
User Function ExF060CPM()
Local aCasos := {{1000, 30}, {3000, 60}}
Local nIndice := 0
Local nTotalValor := 0
Local nTotalPonderado := 0
Local nPrazoMedio := Nil
// Cada linha autoral contém {valor fictício, prazo em dias}.
// Esse formato não representa PARAMIXB nem a fórmula do padrão.
For nIndice := 1 To Len(aCasos)
nTotalValor += aCasos[nIndice][1]
nTotalPonderado += aCasos[nIndice][1] * aCasos[nIndice][2]
Next nIndice
// Sem base positiva, não adotamos zero como prazo calculado.
If nTotalValor > 0
nPrazoMedio := nTotalPonderado / nTotalValor
ConOut("Prazo medio do exercicio: " + AllTrim(Str(nPrazoMedio, 10, 2)))
EndIf
Return
O conjunto fictício resulta em 52,5 dias: (1000 × 30 + 3000 × 60) ÷ 4000. A média simples seria 45 dias; essa diferença ajuda a detectar hipóteses de ponderação distintas. O exemplo não usa datas reais, não grava borderô e não foi compilado nem executado em Protheus.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de seus titulares. O AdvPL Guia é independente e utiliza citações limitadas, atribuídas e justificadas por finalidade educativa. Consulte os Termos de Uso. Termos de Uso
Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.