Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações
titleExemplo de Uso

Crie o seguinte gatilho pelo configurador:


CampoConteúdo
CampoTFF_PERFIM
Sequencia001
Cnt. Dominio

TFLTFF_VLPRPA

TipoPrimário
RegraU_ValFinal()
PosicionaNão
CondiçãoU_ValidRec()


Após a criação do gatilho, inclua as seguintes funções (user function):


Bloco de código
languagetext
titleExemplo 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.

...