Page tree

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:

  1. Posição 1: Férias Vencidas;
  2. Posição 2: Férias Proporcionais;
  3. Posição 3: 13° salário;
  4. Posição 4: Rescisão - Aviso Prévio;
  5. 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    

 

-------------------------------------------------------------------------------------------------

 

IMPORTANTE:
O ponto de entrada deve SEMPRE retornar um array que contenha os dados já existentes no array nQualMed sem alterar o seu tamanho, apenas seu conteúdo se necessário. O array retornado deve SEMPRE retornar as 6 posições já existentes no parâmetro passado como referência, não podendo ser retirada nem adicionada nenhuma posição.

 

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