Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
languagec#
themeMidnight
titleExemplo 1
linenumberstrue
#Include "Protheus.ch"

//---------------------------------------------------------------------------------------
/*/{Protheus.doc} PLPRORAT
Calcula o percentual e dias do valor de pro-rata com base no dia de vencimento da cobrança

@author TOTVS Saúde Planos
@since 09/05/2022
@version Protheus 12
/*/
//---------------------------------------------------------------------------------------
User Function PLPRORAT()

	Local dDataCalc := PARAMIXB[1]
	Local nDiaVencto := PARAMIXB[2]
	Local lBloqueio := PARAMIXB[3]

    Local lConsDtBloqueio := GetNewPar("MV_PRODTCA", .F.)
    Local nPercDias := 0
    Local nDiasUtil := 0
    Local nDay := 0
    Local nMonth := 0
    Local nYear := 0
    Local nDiasMes := 0
    Local dDtVenctoInicial := CToD(" / / ")
    Local dDtVecntoFinal := CToD(" / / ")
    
    nDay := Day(dDataCalc)
	nMonth := Month(dDataCalc)
	nYear := Year(dDataCalc)
	nDiasMes := Day(LastDay(dDataCalc))

	dDtVenctoInicial := SToD(cValToChar(nYear)+StrZero(nMonth, 2)+StrZero(nDiaVencto, 2))
	dDtVecntoFinal := (dDtVenctoInicial + nDiasMes) - 1

	If !lBloqueio // Pro-Rata de entrada
		If nDay > nDiaVencto
			nDiasUtil := DateDiffDay(dDataCalc, dDtVecntoFinal) + 1	// dDataCalc = Data de inclusão do beneficiário
		Else
			nDiasUtil := nDiasMes
		EndIf 	
	Else // Pro-Rata de saida
		nDiasUtil := DateDiffDay(dDtVenctoInicial, dDataCalc) + 1 // dDataCalc = Data de inclusãobloqueio do bloqueiobeneficiário

		If lConsDtBloqueio
			nDiasUtil -= 1 
		EndIf
	EndIf	

	nPercDias := (nDiasUtil * 100) / nDiasMes

Return {nPercDias, nDiasUtil}

...