Histórico da Página
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: | |||||||||||||||||
Requisito/Story/Issue (informe o requisito relacionado) : | 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.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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
Não se aplicaLotes de Cobrança - PLSA627
Templatedocumentos |
---|