Abrangências: | Microsiga Protheus 10 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
O ponto de entrada permite alterar a tabela que contém dados dos tipos de hora extra cadastrados, através da rotina PONA070 (Tipo de Horas Extras). A partir do cadastro padrão, é possível alterar, por exemplo, o percentual de valorização de acordo com o sindicato do funcionário
PONXAPO.PRX
PNMTABHE - Alterar a tabela de tipos de hora extra ( [ Paramixb[1] ], [ Paramixb[2] ] ) --> aTabExtra
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
Paramixb[1] | Lógico | Carrega todos tipos de hora extra | |||||||||||||||
Paramixb[2] | Array of Record | Dados dos tipos de hora extra |
- (array_of_record)
- Dados dos tipos de hora extra
O ponto de entrada passa dois parâmetros. O primeiro é uma variável lógica que indica o formato do array e o segundo é um array que contém os dados dos tipos de hora extra.
Se a variável lógica for .T. (verdadeiro) o array será tridimensional. Se a variável for .F. (falso) o array será bidimensional.
A estrutura do array é: (bidimensional)
aArray[nCont][1] - Tipo de Hora Extra
aArray[nCont][2] - Qtde de horas mínima da faixa
aArray[nCont][3] - Qtde de horas máxima da faixa
aArray[nCont][4] - Evento autorizado
aArray[nCont][5] - Evento não autorizado
aArray[nCont][6] - Percentual de valorização
O ponto de entrada deve retornar um array com a mesma estrutura.
User Function PNMTABHE()Local aArea := GetArea()Local lTodas := Paramixb[1]Local aTabExtra := Paramixb[2]Local nCont := 0Local nTipoHE := 1Local nPercent := 6If lTodas For nCont := 1 to Len(aTabExtra[1]) If SRA->RA_SINDICA == "01"//Sindicato X Do Case Case aTabExtra[1][nCont][nTipoHE] == "1"//HE Normal aTabExtra[1][nCont][nPercent] := 50.00 Case aTabExtra[1][nCont][nTipoHE] == "2"//HE DSR aTabExtra[1][nCont][nPercent] := 100.00 Case aTabExtra[1][nCont][nTipoHE] == "3"//HE Compensado aTabExtra[1][nCont][nPercent] := 70.00 Case aTabExtra[1][nCont][nTipoHE] == "4"//HE Compensado aTabExtra[1][nCont][nPercent] := 100.00 Otherwise aTabExtra[1][nCont][nPercent] := 75.00 EndCase ElseIf SRA->RA_SINDICA == "02"//Sindicato Y //.... EndIf Next nContElse For nCont := 1 to Len(aTabExtra) If SRA->RA_SINDICA == "01"//Sindicato X Do Case Case aTabExtra[nCont][nTipoHE] == "1"//HE Normal aTabExtra[nCont][nPercent] := 50.00 Case aTabExtra[nCont][nTipoHE] == "2"//HE DSR aTabExtra[nCont][nPercent] := 100.00 Case aTabExtra[nCont][nTipoHE] == "3"//HE Compensado aTabExtra[nCont][nPercent] := 70.00 Case aTabExtra[nCont][nTipoHE] == "4"//HE Feriado aTabExtra[nCont][nPercent] := 100.00 Otherwise aTabExtra[nCont][nPercent] := 75.00 EndCase ElseIf SRA->RA_SINDICA == "02"//Sindicato Y //.... EndIf Next nContEndIF//Alert("Passou pelo PE PNMTABHE")RestArea(aArea)Return(aTabExtra)
Nome | Tipo | Escopo | Pode Alterar | descrição | ||||||||||
Array of Record | Global | Não |