Ponto de entrada GPAVOSMED
Linha de Produto: | Microsiga Protheus |
Segmento: | Recursos Humanos |
Módulo: | SIGAGPE |
Tickets relacionados | 1257904 |
Requisito/Story/Issue (informe o requisito relacionado): | DRHPAG-5398 |
Descrição
Ponto de entrada criado antes da montagem dos arrays dos tipos de médias para que seja possível alterar a quantidade de avos considerados para divisão das médias.
Exemplo: Rescisão com aviso prévio indenizado. Por padrão o Protheus não considerará o avo do aviso na divisão para encontrar o valor da média, sendo assim, se o valor total para médias for de 2000 reais, o trabalhador for admitido em 01/01/2017 e a rescisão de for em 31/03/2017, a média de férias proporcionais será 2000 / 3, resultando em 666,66. Para que seja considerado um avo a mais na divisão, referente ao aviso, será necessário alterar a respectiva posição no array de férias proporcionais de 3 para 4.
Segue o que representa cada posição do array passado como parâmetro para o ponto de entrada cujos valores podem ser alterados:
- Posição 1: Férias Vencidas;
- Posição 2: Férias Proporcionais;
- Posição 3: 13° salário;
- Posição 4: Rescisão - Aviso Prévio;
- Posição 5: Licença Maternidade.
Segue o trecho do fonte que chama o ponto de entrada:
-------------------------------------------------------------------------------------------------
//--Carrega verbas com incidencia para Media
IF ( SRA->RA_CATFUNC == "H" .AND. SRA->(COLUMNPOS( "RA_HOJORVA" )) > 0 .AND. SRA->RA_HOJORVA == "1" )
Pd := {}
Endif
//Ponto de entrada para alterar a quantidade de avos para divisão das médias
If ExistBlock("GPAVOSMED")
nQualMedPE := Execblock("GPAVOSMED",.F.,.F.,nQualMed)
If ValType(nQualMedPE) == "A" .And. Len(nQualMedPE) == 6
nQualMed := nQualMedPE
EndIf
EndIf
If cFilPd != FwxFilial("SRV") .OR. Empty(Pd)
cFilPd := FwxFilial("SRV") //#SRA->RA_FILIAL
Pd := {}
fCargaPro(cFilPd,@Pd,acodfol)
EndIf
-------------------------------------------------------------------------------------------------
Ponto de Entrada - Exemplo:
#INCLUDE "PROTHEUS.CH"
User Function GPAVOSMED()
Local nFator := If (M->RG_DFERAVI == 2.5,1,0)
If AllTrim(M->RG_TPAVISO ) $ "I" .And. nFator > 0
PARAMIXB[2]+= nFator
PARAMIXB[3]+= nFator
Endif
/*
PARAMIXB[1] := 4 //Ferias vencidas
PARAMIXB[2] := 4 //Ferias proporcionais
PARAMIXB[3] := 4 //13o. Salario indenizado
PARAMIXB[4] := 4 //Aviso Prévio
PARAMIXB[5] := 4 //Licença Maternidade
*/
Return PARAMIXB