Árvore de páginas


01. DADOS GERAIS

Produto:

TOTVS Saúde Planos

Linha de Produto:

Linha Protheus 

Segmento:

Saude 

Módulo:FATURAMENTO
Função:LOTES DE COBRANÇA
Ticket:
Story:DSAUBE-18473


02. 
SITUAÇÃO/REQUISITO

Necessidade de alterar o valor percentual utilizado para o calculo de pro-rata do beneficiário, tanto na inclusão como no bloqueio do mesmo.

03. SOLUÇÃO

Implementado ponto de entrada PLPRORAT para alterar o valor do percentual no calculo do pro-rata que é utilizado no lote de cobrança ou no bloqueio do beneficiário.

04. DEMAIS INFORMAÇÕES

Ponto de entrada: PLPRORAT

Parâmetros: PARAMIXB com 3 posições

    • PARAMIXB[1]: Data para o calculo, sendo a data de inclusão caso o PARAMIXB[3] seja falso ou data de bloqueio caso o PARAMIXB[3] seja verdadeiro. (Tipo Data)
    • PARAMIXB[2]: Dia do vencimento do boleto do beneficiário, de acordo com o campo XX_VENCTO do nível de cobrança (Tipo Numérico)
    • PARAMIXB[3]: Valor Lógico, se for verdadeiro o processo é um bloqueio, se for falso o processo é uma inclusão. (Tipo Lógico)

Retorno: Array com duas posições

    • Primeira posição: Valor percentual para o calculo (Tipo Numérico) 
    • Segunda posição: Dias utilizados do pro-rata (Tipo Numérico)

Observação: É obrigatório o retorno do percentual e dos dias utilizados para funcionamento correto do processo. Por exemplo: De um percentual de 50% que será utilizado no calculo do pro-rata foram utilizados 15 dias.


Exemplo de Uso:

Script para Calculo de percentual e dias com base no vencimento do boleto, ou seja, o sistema irá calcular o dia do vencimento como o primeiro dia do mês para o calculo de pro-rata.

Exemplo: Beneficiário possui o dia 10 como vencimento do boleto, e um dependente foi incluído dia 22 de Abril, com isso o sistema irá calcular o pro-rata de entrada considerando a entrada dia 22 de Abril até o dia 9 do mês seguinte (Maio), e assim totalizando 18 dias que ele utilizou para o calculo. No processo padrão o sistema iria considerar somente do dia 22 de Abril até o dia 30 de Abril, sendo 9 dias utilizados.

Exemplo 1
#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 bloqueio do beneficiário

		If lConsDtBloqueio
			nDiasUtil -= 1 
		EndIf
	EndIf	

	nPercDias := (nDiasUtil * 100) / nDiasMes

Return {nPercDias, nDiasUtil}


05. ASSUNTOS RELACIONADOS

Lotes de Cobrança - PLSA627