Crie o seguinte gatilho pelo configurador:
Campo | Conteúdo |
---|
Campo | TFF_PERFIM | Sequencia | 001 | Cnt. Dominio | TFFTFL_VLPRPA | Tipo | Primário | Regra | U_ValFinal() | Posiciona | Não | Condição | U_ValidRec() |
Após a criação do gatilho, inclua as seguintes funções (user function):
Bloco de código |
---|
language | text |
---|
title | Exemplo de Uso |
---|
| #INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
User Function ValFinal()
Local nDataFim := Day(FwFldGet("TFF_PERFIM")) // Data final
Local nDiasTotal := Day(LastDate(FwFldGet("TFF_PERINI"))) // Total dias mês
Local nValor := FwFldGet("TFF_PRCVEN") // Preço de venda do contrato
Local nQtd := FwFldGet("TFF_QTDVEN") // Quantidade
nValor := (nValor/nDiasTotal)* nDataFim
//Arredonda o valor
nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2]) * nQtd
Return nValor
User Function ValidRec()
Local lRet := .F.
Local lIsRecorrente := FwFldGet("TFJ_CNTREC") == "1"
Local lIsItenExtra := FwfldGet("TFF_COBCTR") == "2"
//Só será executado para contratos recorrentes e não será executado para item extra
If lIsRecorrente .And. !lIsItenExtra
lRet := .T.
EndIf
Return lRet |
A função ValidRec() é criada para garantir que o gatilho não vai ser executado para contratos não recorrentes e itens extras
Se a condição criada for positiva, o gatilho será chamado e o calculo será feito. Com isso o valor da próxima parcela será reajustado conforme a data final for alterada. |