Histórico da Página
...
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 inclusãobloqueio do bloqueiobeneficiá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 |
---|