Crie o seguinte gatilho pelo configurador.
Campo | Conteúdo |
---|
Campo | TFF_PERINI | Sequencia | 001 | Cnt. Dominio | TFF_VLPRPA | Tipo | Primário | Regra | U_CalcValor() | Posiciona | Não | Condicao | U_Condicao() |
Após a criação do gatilho, inclua as seguintes funções (user function).
Bloco de código |
---|
| #INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"
User Function CalcValor()
Local nDataIni := Day(FwFldGet("TFF_PERINI")) //dia de inicio do contrato
Local nDataFim := Day(LastDate(FwFldGet("TFF_PERINI")))30 // ultimo diaQtd de dias para calculo do mesVlr dia.
Local nValor := FwFldGet("TFF_PRCVEN") // preço de venda do contrato
Local nQtd := FwFldGet("TFF_QTDVEN") // preço de venda do contrato
Local nDtFimMes := Day(FwFldGet("TFF_PERFIM")) // dia de fim do contrato
If Month(FwFldGet("TFF_PERFIM")) == Month(FwFldGet("TFF_PERINI")) .And. Year(FwFldGet("TFF_PERFIM")) == Year(FwFldGet("TFF_PERINI"))
nValor := (nValor/nDataFim)*((nDtFimMes-nDataIni)+1)
Else
nValor := (nValor/nDataFim)*((nDataFim-nDataIni)+1)
EndIf
//Arredonda o valor
nValor := nValor * nQtd
nValor := Round(nValor,TamSX3("TFL_VLPRPA")[2])
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 Só será executado para contratos recorrentes e não será executado para item extra
If lIsRecorrente .And. !lIsItenExtra
lRet lRet := .T.
EndIf
Return lRetReturn lRet |
Informações |
---|
| Veja abaixo de uma forma mais detalhada como será feito o calculo do valor da próxima parcela Valor do Posto é de R$4.500,00 O dia de inicio do posto é 15/04/2021 O calculo a ser feito será ((4500 / 30) * (30-15) ) ((150) * (15)) = 2250 onde o resultado do valor da próxima parcela será de R$2.250,00 |
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).
|