Á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_PERINI
Sequencia001
Cnt. Dominio

TFF_VLPRPA

TipoPrimário
RegraU_CalcValor()
PosicionaNão
CondicaoU_Condicao()


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


#INCLUDE #INCLUDE "PROTHEUS.CH"
#INCLUDE #INCLUDE "FWMVCDEF.CH"

User Function CalcValorUser Function CalcValor()
Local nDataIni      Local nDataIni      := Day Day(FwFldGet("TFF_PERINI")) //dia de inicio do contrato
Local nDataFim      Local nDataFim      :=  Day  Day(LastDate(FwFldGet("TFF_PERINI"))) // ultimo dia do mes
Local nValor        Local nValor        := FwFldGet FwFldGet("TFF_PRCVEN"// preço de venda do contrato
nValor 
nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1)

//Arredonda o valor
nValor nValor := Round Round(nValor,TamSX3("TFL_VLPRPA")[2])Return nValor


Return nValor


User Function CondicaoUser Function Condicao()
Local lRet  Local lRet  := .F.
Local lIsRecorrente Local lIsRecorrente := FwFldGet FwFldGet("TFJ_CNTREC") == "1"
Local lIsItenExtra  Local lIsItenExtra  := FwfldGet FwfldGet("TFF_COBCTR") == "2"

//Só será executado para contratos recorrentes e não será executado para item extra
If lIsRecorrente If lIsRecorrente .And. !lIsItenExtra
    lRet     lRet := .T.
EndIf
Return lRet
Return lRet

A função Condição() é 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 ao ser informado uma data de inicio do contrato(TFF_PERINI), o calculo será feito conforme o dia e o valor(TFF_PRCVEN).


...